#include <stdlib.h>
#include <string.h>

#include "trace_writer_local.hpp"

// To validate our prototypes
#define GL_GLEXT_PROTOTYPES
#define EGL_EGLEXT_PROTOTYPES

#include "glproc.hpp"
#include "glsize.hpp"
#include "eglsize.hpp"

static __eglMustCastToProperFunctionPointerType _wrapProcAddress(const char * procName, __eglMustCastToProperFunctionPointerType procPtr);

#ifdef _WIN32
#  include <malloc.h> // alloca
#  ifndef alloca
#    define alloca _alloca
#  endif
#else
#  include <alloca.h> // alloca
#endif


/*
 * g_WrappedObjects is already protected by trace::LocalWriter::mutex
 * This lock is hold during the beginEnter/endEnter and beginLeave/endLeave sections
 */
static std::map<void *, void *> g_WrappedObjects;
#include <algorithm>
#include "cxx_compat.hpp"

#include "gltrace.hpp"
#include "gltrace_arrays.hpp"
#include "glmemshadow.hpp"
#include "gltrace_unpack_compressed.hpp"

static inline bool _need_user_arrays(gltrace::Context *_ctx)
{
    if (!_ctx->user_arrays) {
        return false;
    }

    glfeatures::Profile profile = _ctx->profile;
    bool es1 = profile.es() && profile.major == 1;

    // glSecondaryColorPointer
  if (profile.desktop()) {
    if (_glIsEnabled(GL_SECONDARY_COLOR_ARRAY) &&
        _glGetInteger(GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // glFogCoordPointer
  if (profile.desktop()) {
    if (_glIsEnabled(GL_FOG_COORD_ARRAY) &&
        _glGetInteger(GL_FOG_COORD_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // glEdgeFlagPointer
  if (profile.desktop()) {
    if (_glIsEnabled(GL_EDGE_FLAG_ARRAY) &&
        _glGetInteger(GL_EDGE_FLAG_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // glTexCoordPointer
  if ((profile.desktop() || es1)) {
    GLint max_units = 0;
    if (_ctx->profile.desktop())
        _glGetIntegerv(GL_MAX_TEXTURE_COORDS, &max_units);
    else
        _glGetIntegerv(GL_MAX_TEXTURE_UNITS, &max_units);
    GLint client_active_texture = GL_TEXTURE0;
    if (max_units > 0) {
        _glGetIntegerv(GL_CLIENT_ACTIVE_TEXTURE, &client_active_texture);
    }
    GLint unit = 0;
    do {
        GLint texture = GL_TEXTURE0 + unit;
        if (max_units > 0) {
            _glClientActiveTexture(texture);
        }
    if (_glIsEnabled(GL_TEXTURE_COORD_ARRAY) &&
        _glGetInteger(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) == 0) {
    if (max_units > 0) {
        _glClientActiveTexture(client_active_texture);
    }
        return true;
    }
    } while (++unit < max_units);
    if (max_units > 0) {
        _glClientActiveTexture(client_active_texture);
    }
  }

    // glIndexPointer
  if (profile.desktop()) {
    if (_glIsEnabled(GL_INDEX_ARRAY) &&
        _glGetInteger(GL_INDEX_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // glColorPointer
  if ((profile.desktop() || es1)) {
    if (_glIsEnabled(GL_COLOR_ARRAY) &&
        _glGetInteger(GL_COLOR_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // glNormalPointer
  if ((profile.desktop() || es1)) {
    if (_glIsEnabled(GL_NORMAL_ARRAY) &&
        _glGetInteger(GL_NORMAL_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // glVertexPointer
  if ((profile.desktop() || es1)) {
    if (_glIsEnabled(GL_VERTEX_ARRAY) &&
        _glGetInteger(GL_VERTEX_ARRAY_BUFFER_BINDING) == 0) {
        return true;
    }
  }

    // ES1 does not support generic vertex attributes
    if (es1)
        return false;

    // glVertexAttribPointer
    GLint _max_vertex_attribs = _glGetInteger(GL_MAX_VERTEX_ATTRIBS);
    for (GLint index = 0; index < _max_vertex_attribs; ++index) {
        if (_glGetVertexAttribi(index, GL_VERTEX_ATTRIB_ARRAY_ENABLED) &&
            _glGetVertexAttribi(index, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) == 0) {
            return true;
        }
    }

    return false;
}

static void _trace_user_arrays(gltrace::Context *_ctx, GLuint count, bool instanced=false, GLuint instancecount=1);

void APIENTRY _fake_glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
void APIENTRY _fake_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
void APIENTRY _fake_glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
void APIENTRY _fake_glNewList(GLuint list, GLenum mode);
void APIENTRY _fake_glEndList(void);
void APIENTRY _fake_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap);
void APIENTRY _fake_glDisableClientState(GLenum array);
void APIENTRY _fake_glEnableClientState(GLenum array);
void APIENTRY _fake_glClientActiveTexture(GLenum texture);
void APIENTRY _fake_glBindBuffer(GLenum target, GLuint buffer);
void APIENTRY _fake_glBindAttribLocation(GLuint program, GLuint index, const GLchar * name);
void APIENTRY _fake_glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB * name);
void APIENTRY _fake_glStringMarkerGREMEDY(GLsizei len, const GLvoid * string);

inline void
_fakeStringMarker(const std::string &s) {
    _fake_glStringMarkerGREMEDY(s.length(), s.data());
}

// whether glMapBufferRange(GL_MAP_WRITE_BIT) has ever been called
static bool _checkBufferMapRange = false;

// whether glBufferParameteriAPPLE(GL_BUFFER_FLUSHING_UNMAP_APPLE, GL_FALSE) has ever been called
static bool _checkBufferFlushingUnmapAPPLE = false;

static bool
is_symbolic_pname(GLenum pname) {
    switch (pname) {
    case GL_LIST_MODE:
    case GL_POLYGON_MODE:
    case GL_CULL_FACE_MODE:
    case GL_FRONT_FACE:
    case GL_SHADE_MODEL:
    case GL_COLOR_MATERIAL_FACE:
    case GL_COLOR_MATERIAL_PARAMETER:
    case GL_FOG_MODE:
    case GL_DEPTH_FUNC:
    case GL_STENCIL_FUNC:
    case GL_STENCIL_FAIL:
    case GL_STENCIL_PASS_DEPTH_FAIL:
    case GL_STENCIL_PASS_DEPTH_PASS:
    case GL_MATRIX_MODE:
    case GL_ALPHA_TEST_FUNC:
    case GL_BLEND_DST:
    case GL_BLEND_SRC:
    case GL_LOGIC_OP_MODE:
    case GL_DRAW_BUFFER:
    case GL_READ_BUFFER:
    case GL_RENDER_MODE:
    case GL_PERSPECTIVE_CORRECTION_HINT:
    case GL_POINT_SMOOTH_HINT:
    case GL_LINE_SMOOTH_HINT:
    case GL_POLYGON_SMOOTH_HINT:
    case GL_FOG_HINT:
    case GL_FEEDBACK_BUFFER_TYPE:
    case GL_TEXTURE_INTERNAL_FORMAT:
    case GL_TEXTURE_TARGET:
    case GL_TEXTURE_ENV_MODE:
    case GL_TEXTURE_GEN_MODE:
    case GL_TEXTURE_MAG_FILTER:
    case GL_TEXTURE_MIN_FILTER:
    case GL_TEXTURE_WRAP_S:
    case GL_TEXTURE_WRAP_T:
    case GL_BLEND_EQUATION:
    case GL_CONVOLUTION_BORDER_MODE:
    case GL_CONVOLUTION_FORMAT:
    case GL_HISTOGRAM_FORMAT:
    case GL_MINMAX_FORMAT:
    case GL_TEXTURE_WRAP_R:
    case GL_VERTEX_ARRAY_TYPE:
    case GL_NORMAL_ARRAY_TYPE:
    case GL_COLOR_ARRAY_TYPE:
    case GL_INDEX_ARRAY_TYPE:
    case GL_TEXTURE_COORD_ARRAY_TYPE:
    case GL_BLEND_DST_RGB:
    case GL_BLEND_SRC_RGB:
    case GL_BLEND_DST_ALPHA:
    case GL_BLEND_SRC_ALPHA:
    case GL_COLOR_TABLE_FORMAT:
    case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
    case GL_GENERATE_MIPMAP_HINT:
    case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
    case GL_LIGHT_MODEL_COLOR_CONTROL:
    case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
    case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
    case GL_RESET_NOTIFICATION_STRATEGY:
    case GL_LAYER_PROVOKING_VERTEX:
    case GL_VIEWPORT_INDEX_PROVOKING_VERTEX:
    case GL_INTERNALFORMAT_PREFERRED:
    case GL_INTERNALFORMAT_RED_TYPE:
    case GL_INTERNALFORMAT_GREEN_TYPE:
    case GL_INTERNALFORMAT_BLUE_TYPE:
    case GL_INTERNALFORMAT_ALPHA_TYPE:
    case GL_INTERNALFORMAT_DEPTH_TYPE:
    case GL_INTERNALFORMAT_STENCIL_TYPE:
    case GL_FRAMEBUFFER_RENDERABLE:
    case GL_FRAMEBUFFER_RENDERABLE_LAYERED:
    case GL_FRAMEBUFFER_BLEND:
    case GL_READ_PIXELS:
    case GL_READ_PIXELS_FORMAT:
    case GL_READ_PIXELS_TYPE:
    case GL_TEXTURE_IMAGE_FORMAT:
    case GL_TEXTURE_IMAGE_TYPE:
    case GL_GET_TEXTURE_IMAGE_FORMAT:
    case GL_GET_TEXTURE_IMAGE_TYPE:
    case GL_MANUAL_GENERATE_MIPMAP:
    case GL_AUTO_GENERATE_MIPMAP:
    case GL_COLOR_ENCODING:
    case GL_SRGB_READ:
    case GL_SRGB_WRITE:
    case GL_SRGB_DECODE_ARB:
    case GL_FILTER:
    case GL_VERTEX_TEXTURE:
    case GL_TESS_CONTROL_TEXTURE:
    case GL_TESS_EVALUATION_TEXTURE:
    case GL_GEOMETRY_TEXTURE:
    case GL_FRAGMENT_TEXTURE:
    case GL_COMPUTE_TEXTURE:
    case GL_TEXTURE_SHADOW:
    case GL_TEXTURE_GATHER:
    case GL_TEXTURE_GATHER_SHADOW:
    case GL_SHADER_IMAGE_LOAD:
    case GL_SHADER_IMAGE_STORE:
    case GL_SHADER_IMAGE_ATOMIC:
    case GL_IMAGE_COMPATIBILITY_CLASS:
    case GL_IMAGE_PIXEL_FORMAT:
    case GL_IMAGE_PIXEL_TYPE:
    case GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST:
    case GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST:
    case GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE:
    case GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE:
    case GL_CLEAR_BUFFER:
    case GL_TEXTURE_VIEW:
    case GL_VIEW_COMPATIBILITY_CLASS:
    case GL_CONTEXT_RELEASE_BEHAVIOR:
    case GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH:
    case GL_TEXTURE_MEMORY_LAYOUT_INTEL:
    case GL_TANGENT_ARRAY_TYPE_EXT:
    case GL_BINORMAL_ARRAY_TYPE_EXT:
    case GL_FOG_COORD_SRC:
    case GL_FOG_COORD_ARRAY_TYPE:
    case GL_SECONDARY_COLOR_ARRAY_TYPE:
    case GL_ACTIVE_TEXTURE:
    case GL_CLIENT_ACTIVE_TEXTURE:
    case GL_TEXTURE_COMPRESSION_HINT:
    case GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT:
    case GL_MULTISAMPLE_FILTER_HINT_NV:
    case GL_FOG_DISTANCE_MODE_NV:
    case GL_COMBINE_RGB:
    case GL_COMBINE_ALPHA:
    case GL_SRC0_RGB:
    case GL_SRC1_RGB:
    case GL_SRC2_RGB:
    case GL_SOURCE3_RGB_NV:
    case GL_SRC0_ALPHA:
    case GL_SRC1_ALPHA:
    case GL_SRC2_ALPHA:
    case GL_SOURCE3_ALPHA_NV:
    case GL_OPERAND0_RGB:
    case GL_OPERAND1_RGB:
    case GL_OPERAND2_RGB:
    case GL_OPERAND3_RGB_NV:
    case GL_OPERAND0_ALPHA:
    case GL_OPERAND1_ALPHA:
    case GL_OPERAND2_ALPHA:
    case GL_OPERAND3_ALPHA_NV:
    case GL_TEXTURE_STORAGE_HINT_APPLE:
    case GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN:
    case GL_VERTEX_ATTRIB_ARRAY_TYPE:
    case GL_COMPRESSED_TEXTURE_FORMATS:
    case GL_WEIGHT_ARRAY_TYPE_ARB:
    case GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV:
    case GL_SHADER_OPERATION_NV:
    case GL_CULL_MODES_NV:
    case GL_PREVIOUS_TEXTURE_INPUT_NV:
    case GL_BUFFER_USAGE:
    case GL_ELEMENT_ARRAY_TYPE_ATI:
    case GL_BUMP_TARGET_ATI:
    case GL_VARIANT_ARRAY_TYPE_EXT:
    case GL_PROGRAM_BINARY_FORMATS:
    case GL_STENCIL_BACK_FUNC:
    case GL_STENCIL_BACK_FAIL:
    case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
    case GL_STENCIL_BACK_PASS_DEPTH_PASS:
    case GL_DRAW_BUFFER0:
    case GL_DRAW_BUFFER1:
    case GL_DRAW_BUFFER2:
    case GL_DRAW_BUFFER3:
    case GL_DRAW_BUFFER4:
    case GL_DRAW_BUFFER5:
    case GL_DRAW_BUFFER6:
    case GL_DRAW_BUFFER7:
    case GL_DRAW_BUFFER8:
    case GL_DRAW_BUFFER9:
    case GL_DRAW_BUFFER10:
    case GL_DRAW_BUFFER11:
    case GL_DRAW_BUFFER12:
    case GL_DRAW_BUFFER13:
    case GL_DRAW_BUFFER14:
    case GL_DRAW_BUFFER15:
    case GL_BLEND_EQUATION_ALPHA:
    case GL_MATRIX_INDEX_ARRAY_TYPE_ARB:
    case GL_DEPTH_TEXTURE_MODE:
    case GL_TEXTURE_COMPARE_MODE:
    case GL_TEXTURE_COMPARE_FUNC:
    case GL_POINT_SPRITE_R_MODE_NV:
    case GL_PROGRAM_FORMAT_ARB:
    case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
    case GL_BUFFER_ACCESS:
    case GL_ACTIVE_STENCIL_FACE_EXT:
    case GL_GEOMETRY_INPUT_TYPE:
    case GL_GEOMETRY_OUTPUT_TYPE:
    case GL_CLAMP_VERTEX_COLOR:
    case GL_CLAMP_FRAGMENT_COLOR:
    case GL_CLAMP_READ_COLOR:
    case GL_ELEMENT_ARRAY_TYPE_APPLE:
    case GL_UNIFORM_TYPE:
    case GL_TEXTURE_SRGB_DECODE_EXT:
    case GL_OBJECT_TYPE_ARB:
    case GL_SHADER_TYPE:
    case GL_IMPLEMENTATION_COLOR_READ_TYPE:
    case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
    case GL_TEXTURE_RED_TYPE:
    case GL_TEXTURE_GREEN_TYPE:
    case GL_TEXTURE_BLUE_TYPE:
    case GL_TEXTURE_ALPHA_TYPE:
    case GL_TEXTURE_LUMINANCE_TYPE:
    case GL_TEXTURE_INTENSITY_TYPE:
    case GL_TEXTURE_DEPTH_TYPE:
    case GL_TEXTURE_BUFFER_FORMAT_ARB:
    case GL_TRANSFORM_FEEDBACK_BUFFER_MODE:
    case GL_POINT_SPRITE_COORD_ORIGIN:
    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
    case GL_RENDERBUFFER_INTERNAL_FORMAT:
    case GL_GEOMETRY_INPUT_TYPE_ARB:
    case GL_GEOMETRY_OUTPUT_TYPE_ARB:
    case GL_NAMED_STRING_TYPE_ARB:
    case GL_SHADER_BINARY_FORMATS:
    case GL_TEXTURE_SWIZZLE_R:
    case GL_TEXTURE_SWIZZLE_G:
    case GL_TEXTURE_SWIZZLE_B:
    case GL_TEXTURE_SWIZZLE_A:
    case GL_TEXTURE_SWIZZLE_RGBA:
    case GL_PROVOKING_VERTEX:
    case GL_TESS_GEN_MODE:
    case GL_TESS_GEN_SPACING:
    case GL_TESS_GEN_VERTEX_ORDER:
    case GL_TESS_GEN_POINT_MODE:
    case GL_WINDOW_RECTANGLE_MODE_EXT:
    case GL_IMAGE_BINDING_ACCESS:
    case GL_TEXTURE_ASTC_DECODE_PRECISION_EXT:
    case GL_IMAGE_BINDING_FORMAT:
    case GL_DEPTH_STENCIL_TEXTURE_MODE:
    case GL_TYPE:
    case GL_CLIP_ORIGIN:
    case GL_CLIP_DEPTH_MODE:
    case GL_TEXTURE_REDUCTION_MODE_ARB:
        return true;
    default:
        return false;
    }
}

template<class T>
static inline bool
is_symbolic_param(T param) {
    return static_cast<T>(static_cast<GLenum>(param)) == param;
}

static size_t
_gl_param_size(GLenum pname) {
    switch (pname) {
    case GL_CURRENT_COLOR: return 4;
    case GL_CURRENT_INDEX: return 1;
    case GL_CURRENT_NORMAL: return 3;
    case GL_CURRENT_TEXTURE_COORDS: return 4;
    case GL_CURRENT_RASTER_COLOR: return 4;
    case GL_CURRENT_RASTER_INDEX: return 1;
    case GL_CURRENT_RASTER_TEXTURE_COORDS: return 4;
    case GL_CURRENT_RASTER_POSITION: return 4;
    case GL_CURRENT_RASTER_POSITION_VALID: return 1;
    case GL_CURRENT_RASTER_DISTANCE: return 1;
    case GL_POINT_SMOOTH: return 1;
    case GL_POINT_SIZE: return 1;
    case GL_POINT_SIZE_RANGE: return 2;
    case GL_POINT_SIZE_GRANULARITY: return 1;
    case GL_LINE_SMOOTH: return 1;
    case GL_LINE_WIDTH: return 1;
    case GL_LINE_WIDTH_RANGE: return 2;
    case GL_LINE_WIDTH_GRANULARITY: return 1;
    case GL_LINE_STIPPLE: return 1;
    case GL_LINE_STIPPLE_PATTERN: return 1;
    case GL_LINE_STIPPLE_REPEAT: return 1;
    case GL_LIST_MODE: return 1;
    case GL_MAX_LIST_NESTING: return 1;
    case GL_LIST_BASE: return 1;
    case GL_LIST_INDEX: return 1;
    case GL_POLYGON_MODE: return 2;
    case GL_POLYGON_SMOOTH: return 1;
    case GL_POLYGON_STIPPLE: return 1;
    case GL_EDGE_FLAG: return 1;
    case GL_CULL_FACE: return 1;
    case GL_CULL_FACE_MODE: return 1;
    case GL_FRONT_FACE: return 1;
    case GL_LIGHTING: return 1;
    case GL_LIGHT_MODEL_LOCAL_VIEWER: return 1;
    case GL_LIGHT_MODEL_TWO_SIDE: return 1;
    case GL_LIGHT_MODEL_AMBIENT: return 4;
    case GL_SHADE_MODEL: return 1;
    case GL_COLOR_MATERIAL_FACE: return 1;
    case GL_COLOR_MATERIAL_PARAMETER: return 1;
    case GL_COLOR_MATERIAL: return 1;
    case GL_FOG: return 1;
    case GL_FOG_INDEX: return 1;
    case GL_FOG_DENSITY: return 1;
    case GL_FOG_START: return 1;
    case GL_FOG_END: return 1;
    case GL_FOG_MODE: return 1;
    case GL_FOG_COLOR: return 4;
    case GL_DEPTH_RANGE: return 2;
    case GL_DEPTH_TEST: return 1;
    case GL_DEPTH_WRITEMASK: return 1;
    case GL_DEPTH_CLEAR_VALUE: return 1;
    case GL_DEPTH_FUNC: return 1;
    case GL_ACCUM_CLEAR_VALUE: return 4;
    case GL_STENCIL_TEST: return 1;
    case GL_STENCIL_CLEAR_VALUE: return 1;
    case GL_STENCIL_FUNC: return 1;
    case GL_STENCIL_VALUE_MASK: return 1;
    case GL_STENCIL_FAIL: return 1;
    case GL_STENCIL_PASS_DEPTH_FAIL: return 1;
    case GL_STENCIL_PASS_DEPTH_PASS: return 1;
    case GL_STENCIL_REF: return 1;
    case GL_STENCIL_WRITEMASK: return 1;
    case GL_MATRIX_MODE: return 1;
    case GL_NORMALIZE: return 1;
    case GL_VIEWPORT: return 4;
    case GL_MODELVIEW_STACK_DEPTH: return 1;
    case GL_PROJECTION_STACK_DEPTH: return 1;
    case GL_TEXTURE_STACK_DEPTH: return 1;
    case GL_MODELVIEW_MATRIX: return 16;
    case GL_PROJECTION_MATRIX: return 16;
    case GL_TEXTURE_MATRIX: return 16;
    case GL_ATTRIB_STACK_DEPTH: return 1;
    case GL_CLIENT_ATTRIB_STACK_DEPTH: return 1;
    case GL_ALPHA_TEST: return 1;
    case GL_ALPHA_TEST_FUNC: return 1;
    case GL_ALPHA_TEST_REF: return 1;
    case GL_DITHER: return 1;
    case GL_BLEND_DST: return 1;
    case GL_BLEND_SRC: return 1;
    case GL_BLEND: return 1;
    case GL_LOGIC_OP_MODE: return 1;
    case GL_INDEX_LOGIC_OP: return 1;
    case GL_COLOR_LOGIC_OP: return 1;
    case GL_AUX_BUFFERS: return 1;
    case GL_DRAW_BUFFER: return 1;
    case GL_READ_BUFFER: return 1;
    case GL_SCISSOR_BOX: return 4;
    case GL_SCISSOR_TEST: return 1;
    case GL_INDEX_CLEAR_VALUE: return 1;
    case GL_INDEX_WRITEMASK: return 1;
    case GL_COLOR_CLEAR_VALUE: return 4;
    case GL_COLOR_WRITEMASK: return 4;
    case GL_INDEX_MODE: return 1;
    case GL_RGBA_MODE: return 1;
    case GL_DOUBLEBUFFER: return 1;
    case GL_STEREO: return 1;
    case GL_RENDER_MODE: return 1;
    case GL_PERSPECTIVE_CORRECTION_HINT: return 1;
    case GL_POINT_SMOOTH_HINT: return 1;
    case GL_LINE_SMOOTH_HINT: return 1;
    case GL_POLYGON_SMOOTH_HINT: return 1;
    case GL_FOG_HINT: return 1;
    case GL_TEXTURE_GEN_S: return 1;
    case GL_TEXTURE_GEN_T: return 1;
    case GL_TEXTURE_GEN_R: return 1;
    case GL_TEXTURE_GEN_Q: return 1;
    case GL_PIXEL_MAP_I_TO_I_SIZE: return 1;
    case GL_PIXEL_MAP_S_TO_S_SIZE: return 1;
    case GL_PIXEL_MAP_I_TO_R_SIZE: return 1;
    case GL_PIXEL_MAP_I_TO_G_SIZE: return 1;
    case GL_PIXEL_MAP_I_TO_B_SIZE: return 1;
    case GL_PIXEL_MAP_I_TO_A_SIZE: return 1;
    case GL_PIXEL_MAP_R_TO_R_SIZE: return 1;
    case GL_PIXEL_MAP_G_TO_G_SIZE: return 1;
    case GL_PIXEL_MAP_B_TO_B_SIZE: return 1;
    case GL_PIXEL_MAP_A_TO_A_SIZE: return 1;
    case GL_UNPACK_SWAP_BYTES: return 1;
    case GL_UNPACK_LSB_FIRST: return 1;
    case GL_UNPACK_ROW_LENGTH: return 1;
    case GL_UNPACK_SKIP_ROWS: return 1;
    case GL_UNPACK_SKIP_PIXELS: return 1;
    case GL_UNPACK_ALIGNMENT: return 1;
    case GL_PACK_SWAP_BYTES: return 1;
    case GL_PACK_LSB_FIRST: return 1;
    case GL_PACK_ROW_LENGTH: return 1;
    case GL_PACK_SKIP_ROWS: return 1;
    case GL_PACK_SKIP_PIXELS: return 1;
    case GL_PACK_ALIGNMENT: return 1;
    case GL_MAP_COLOR: return 1;
    case GL_MAP_STENCIL: return 1;
    case GL_INDEX_SHIFT: return 1;
    case GL_INDEX_OFFSET: return 1;
    case GL_RED_SCALE: return 1;
    case GL_RED_BIAS: return 1;
    case GL_ZOOM_X: return 1;
    case GL_ZOOM_Y: return 1;
    case GL_GREEN_SCALE: return 1;
    case GL_GREEN_BIAS: return 1;
    case GL_BLUE_SCALE: return 1;
    case GL_BLUE_BIAS: return 1;
    case GL_ALPHA_SCALE: return 1;
    case GL_ALPHA_BIAS: return 1;
    case GL_DEPTH_SCALE: return 1;
    case GL_DEPTH_BIAS: return 1;
    case GL_MAX_EVAL_ORDER: return 1;
    case GL_MAX_LIGHTS: return 1;
    case GL_MAX_CLIP_DISTANCES: return 1;
    case GL_MAX_TEXTURE_SIZE: return 1;
    case GL_MAX_PIXEL_MAP_TABLE: return 1;
    case GL_MAX_ATTRIB_STACK_DEPTH: return 1;
    case GL_MAX_MODELVIEW_STACK_DEPTH: return 1;
    case GL_MAX_NAME_STACK_DEPTH: return 1;
    case GL_MAX_PROJECTION_STACK_DEPTH: return 1;
    case GL_MAX_TEXTURE_STACK_DEPTH: return 1;
    case GL_MAX_VIEWPORT_DIMS: return 2;
    case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: return 1;
    case GL_SUBPIXEL_BITS: return 1;
    case GL_INDEX_BITS: return 1;
    case GL_RED_BITS: return 1;
    case GL_GREEN_BITS: return 1;
    case GL_BLUE_BITS: return 1;
    case GL_ALPHA_BITS: return 1;
    case GL_DEPTH_BITS: return 1;
    case GL_STENCIL_BITS: return 1;
    case GL_ACCUM_RED_BITS: return 1;
    case GL_ACCUM_GREEN_BITS: return 1;
    case GL_ACCUM_BLUE_BITS: return 1;
    case GL_ACCUM_ALPHA_BITS: return 1;
    case GL_NAME_STACK_DEPTH: return 1;
    case GL_AUTO_NORMAL: return 1;
    case GL_MAP1_COLOR_4: return 1;
    case GL_MAP1_INDEX: return 1;
    case GL_MAP1_NORMAL: return 1;
    case GL_MAP1_TEXTURE_COORD_1: return 1;
    case GL_MAP1_TEXTURE_COORD_2: return 1;
    case GL_MAP1_TEXTURE_COORD_3: return 1;
    case GL_MAP1_TEXTURE_COORD_4: return 1;
    case GL_MAP1_VERTEX_3: return 1;
    case GL_MAP1_VERTEX_4: return 1;
    case GL_MAP2_COLOR_4: return 1;
    case GL_MAP2_INDEX: return 1;
    case GL_MAP2_NORMAL: return 1;
    case GL_MAP2_TEXTURE_COORD_1: return 1;
    case GL_MAP2_TEXTURE_COORD_2: return 1;
    case GL_MAP2_TEXTURE_COORD_3: return 1;
    case GL_MAP2_TEXTURE_COORD_4: return 1;
    case GL_MAP2_VERTEX_3: return 1;
    case GL_MAP2_VERTEX_4: return 1;
    case GL_MAP1_GRID_DOMAIN: return 2;
    case GL_MAP1_GRID_SEGMENTS: return 1;
    case GL_MAP2_GRID_DOMAIN: return 4;
    case GL_MAP2_GRID_SEGMENTS: return 2;
    case GL_TEXTURE_1D: return 1;
    case GL_TEXTURE_2D: return 1;
    case GL_FEEDBACK_BUFFER_POINTER: return 1;
    case GL_FEEDBACK_BUFFER_SIZE: return 1;
    case GL_FEEDBACK_BUFFER_TYPE: return 1;
    case GL_SELECTION_BUFFER_POINTER: return 1;
    case GL_SELECTION_BUFFER_SIZE: return 1;
    case GL_TEXTURE_WIDTH: return 1;
    case GL_TEXTURE_HEIGHT: return 1;
    case GL_TEXTURE_INTERNAL_FORMAT: return 1;
    case GL_TEXTURE_BORDER_COLOR: return 4;
    case GL_TEXTURE_BORDER: return 1;
    case GL_TEXTURE_TARGET: return 1;
    case GL_AMBIENT: return 4;
    case GL_DIFFUSE: return 4;
    case GL_SPECULAR: return 4;
    case GL_POSITION: return 4;
    case GL_SPOT_DIRECTION: return 3;
    case GL_SPOT_EXPONENT: return 1;
    case GL_SPOT_CUTOFF: return 1;
    case GL_CONSTANT_ATTENUATION: return 1;
    case GL_LINEAR_ATTENUATION: return 1;
    case GL_QUADRATIC_ATTENUATION: return 1;
    case GL_EMISSION: return 4;
    case GL_SHININESS: return 1;
    case GL_AMBIENT_AND_DIFFUSE: return 4;
    case GL_COLOR_INDEXES: return 3;
    case GL_VENDOR: return 1;
    case GL_RENDERER: return 1;
    case GL_VERSION: return 1;
    case GL_EXTENSIONS: return 1;
    case GL_TEXTURE_ENV_MODE: return 1;
    case GL_TEXTURE_ENV_COLOR: return 4;
    case GL_TEXTURE_GEN_MODE: return 1;
    case GL_OBJECT_PLANE: return 4;
    case GL_EYE_PLANE: return 4;
    case GL_TEXTURE_MAG_FILTER: return 1;
    case GL_TEXTURE_MIN_FILTER: return 1;
    case GL_TEXTURE_WRAP_S: return 1;
    case GL_TEXTURE_WRAP_T: return 1;
    case GL_POLYGON_OFFSET_UNITS: return 1;
    case GL_POLYGON_OFFSET_POINT: return 1;
    case GL_POLYGON_OFFSET_LINE: return 1;
    case GL_CLIP_DISTANCE0: return 1;
    case GL_CLIP_DISTANCE1: return 1;
    case GL_CLIP_DISTANCE2: return 1;
    case GL_CLIP_DISTANCE3: return 1;
    case GL_CLIP_DISTANCE4: return 1;
    case GL_CLIP_DISTANCE5: return 1;
    case GL_CLIP_DISTANCE6: return 1;
    case GL_CLIP_DISTANCE7: return 1;
    case GL_LIGHT0: return 1;
    case GL_LIGHT1: return 1;
    case GL_LIGHT2: return 1;
    case GL_LIGHT3: return 1;
    case GL_LIGHT4: return 1;
    case GL_LIGHT5: return 1;
    case GL_LIGHT6: return 1;
    case GL_LIGHT7: return 1;
    case GL_BLEND_COLOR: return 4;
    case GL_BLEND_EQUATION: return 1;
    case GL_PACK_CMYK_HINT_EXT: return 1;
    case GL_UNPACK_CMYK_HINT_EXT: return 1;
    case GL_CONVOLUTION_1D: return 1;
    case GL_CONVOLUTION_2D: return 1;
    case GL_SEPARABLE_2D: return 1;
    case GL_CONVOLUTION_BORDER_MODE: return 1;
    case GL_CONVOLUTION_FILTER_SCALE: return 4;
    case GL_CONVOLUTION_FILTER_BIAS: return 4;
    case GL_CONVOLUTION_FORMAT: return 1;
    case GL_CONVOLUTION_WIDTH: return 1;
    case GL_CONVOLUTION_HEIGHT: return 1;
    case GL_MAX_CONVOLUTION_WIDTH: return 1;
    case GL_MAX_CONVOLUTION_HEIGHT: return 1;
    case GL_POST_CONVOLUTION_RED_SCALE: return 1;
    case GL_POST_CONVOLUTION_GREEN_SCALE: return 1;
    case GL_POST_CONVOLUTION_BLUE_SCALE: return 1;
    case GL_POST_CONVOLUTION_ALPHA_SCALE: return 1;
    case GL_POST_CONVOLUTION_RED_BIAS: return 1;
    case GL_POST_CONVOLUTION_GREEN_BIAS: return 1;
    case GL_POST_CONVOLUTION_BLUE_BIAS: return 1;
    case GL_POST_CONVOLUTION_ALPHA_BIAS: return 1;
    case GL_HISTOGRAM: return 1;
    case GL_HISTOGRAM_WIDTH: return 1;
    case GL_HISTOGRAM_FORMAT: return 1;
    case GL_HISTOGRAM_RED_SIZE: return 1;
    case GL_HISTOGRAM_GREEN_SIZE: return 1;
    case GL_HISTOGRAM_BLUE_SIZE: return 1;
    case GL_HISTOGRAM_ALPHA_SIZE: return 1;
    case GL_HISTOGRAM_LUMINANCE_SIZE: return 1;
    case GL_HISTOGRAM_SINK: return 1;
    case GL_MINMAX: return 1;
    case GL_MINMAX_FORMAT: return 1;
    case GL_MINMAX_SINK: return 1;
    case GL_POLYGON_OFFSET_FILL: return 1;
    case GL_POLYGON_OFFSET_FACTOR: return 1;
    case GL_POLYGON_OFFSET_BIAS_EXT: return 1;
    case GL_RESCALE_NORMAL: return 1;
    case GL_TEXTURE_RED_SIZE: return 1;
    case GL_TEXTURE_GREEN_SIZE: return 1;
    case GL_TEXTURE_BLUE_SIZE: return 1;
    case GL_TEXTURE_ALPHA_SIZE: return 1;
    case GL_TEXTURE_LUMINANCE_SIZE: return 1;
    case GL_TEXTURE_INTENSITY_SIZE: return 1;
    case GL_TEXTURE_PRIORITY: return 1;
    case GL_TEXTURE_RESIDENT: return 1;
    case GL_TEXTURE_BINDING_1D: return 1;
    case GL_TEXTURE_BINDING_2D: return 1;
    case GL_TEXTURE_BINDING_3D: return 1;
    case GL_PACK_SKIP_IMAGES: return 1;
    case GL_PACK_IMAGE_HEIGHT: return 1;
    case GL_UNPACK_SKIP_IMAGES: return 1;
    case GL_UNPACK_IMAGE_HEIGHT: return 1;
    case GL_TEXTURE_3D: return 1;
    case GL_TEXTURE_DEPTH: return 1;
    case GL_TEXTURE_WRAP_R: return 1;
    case GL_MAX_3D_TEXTURE_SIZE: return 1;
    case GL_VERTEX_ARRAY: return 1;
    case GL_NORMAL_ARRAY: return 1;
    case GL_COLOR_ARRAY: return 1;
    case GL_INDEX_ARRAY: return 1;
    case GL_TEXTURE_COORD_ARRAY: return 1;
    case GL_EDGE_FLAG_ARRAY: return 1;
    case GL_VERTEX_ARRAY_SIZE: return 1;
    case GL_VERTEX_ARRAY_TYPE: return 1;
    case GL_VERTEX_ARRAY_STRIDE: return 1;
    case GL_VERTEX_ARRAY_COUNT_EXT: return 1;
    case GL_NORMAL_ARRAY_TYPE: return 1;
    case GL_NORMAL_ARRAY_STRIDE: return 1;
    case GL_NORMAL_ARRAY_COUNT_EXT: return 1;
    case GL_COLOR_ARRAY_SIZE: return 1;
    case GL_COLOR_ARRAY_TYPE: return 1;
    case GL_COLOR_ARRAY_STRIDE: return 1;
    case GL_COLOR_ARRAY_COUNT_EXT: return 1;
    case GL_INDEX_ARRAY_TYPE: return 1;
    case GL_INDEX_ARRAY_STRIDE: return 1;
    case GL_INDEX_ARRAY_COUNT_EXT: return 1;
    case GL_TEXTURE_COORD_ARRAY_SIZE: return 1;
    case GL_TEXTURE_COORD_ARRAY_TYPE: return 1;
    case GL_TEXTURE_COORD_ARRAY_STRIDE: return 1;
    case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: return 1;
    case GL_EDGE_FLAG_ARRAY_STRIDE: return 1;
    case GL_EDGE_FLAG_ARRAY_COUNT_EXT: return 1;
    case GL_VERTEX_ARRAY_POINTER: return 1;
    case GL_NORMAL_ARRAY_POINTER: return 1;
    case GL_COLOR_ARRAY_POINTER: return 1;
    case GL_INDEX_ARRAY_POINTER: return 1;
    case GL_TEXTURE_COORD_ARRAY_POINTER: return 1;
    case GL_EDGE_FLAG_ARRAY_POINTER: return 1;
    case GL_INTERLACE_SGIX: return 1;
    case GL_DETAIL_TEXTURE_2D_BINDING_SGIS: return 1;
    case GL_MULTISAMPLE: return 1;
    case GL_SAMPLE_ALPHA_TO_COVERAGE: return 1;
    case GL_SAMPLE_ALPHA_TO_ONE: return 1;
    case GL_SAMPLE_COVERAGE: return 1;
    case GL_SAMPLE_BUFFERS: return 1;
    case GL_SAMPLES: return 1;
    case GL_SAMPLE_COVERAGE_VALUE: return 1;
    case GL_SAMPLE_COVERAGE_INVERT: return 1;
    case GL_SAMPLE_PATTERN_EXT: return 1;
    case GL_COLOR_MATRIX: return 16;
    case GL_COLOR_MATRIX_STACK_DEPTH: return 1;
    case GL_MAX_COLOR_MATRIX_STACK_DEPTH: return 1;
    case GL_POST_COLOR_MATRIX_RED_SCALE: return 1;
    case GL_POST_COLOR_MATRIX_GREEN_SCALE: return 1;
    case GL_POST_COLOR_MATRIX_BLUE_SCALE: return 1;
    case GL_POST_COLOR_MATRIX_ALPHA_SCALE: return 1;
    case GL_POST_COLOR_MATRIX_RED_BIAS: return 1;
    case GL_POST_COLOR_MATRIX_GREEN_BIAS: return 1;
    case GL_POST_COLOR_MATRIX_BLUE_BIAS: return 1;
    case GL_POST_COLOR_MATRIX_ALPHA_BIAS: return 1;
    case GL_TEXTURE_COLOR_TABLE_SGI: return 1;
    case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB: return 1;
    case GL_BLEND_DST_RGB: return 1;
    case GL_BLEND_SRC_RGB: return 1;
    case GL_BLEND_DST_ALPHA: return 1;
    case GL_BLEND_SRC_ALPHA: return 1;
    case GL_COLOR_TABLE: return 1;
    case GL_POST_CONVOLUTION_COLOR_TABLE: return 1;
    case GL_POST_COLOR_MATRIX_COLOR_TABLE: return 1;
    case GL_COLOR_TABLE_SCALE: return 4;
    case GL_COLOR_TABLE_BIAS: return 4;
    case GL_COLOR_TABLE_FORMAT: return 1;
    case GL_COLOR_TABLE_WIDTH: return 1;
    case GL_COLOR_TABLE_RED_SIZE: return 1;
    case GL_COLOR_TABLE_GREEN_SIZE: return 1;
    case GL_COLOR_TABLE_BLUE_SIZE: return 1;
    case GL_COLOR_TABLE_ALPHA_SIZE: return 1;
    case GL_COLOR_TABLE_LUMINANCE_SIZE: return 1;
    case GL_COLOR_TABLE_INTENSITY_SIZE: return 1;
    case GL_MAX_ELEMENTS_VERTICES: return 1;
    case GL_MAX_ELEMENTS_INDICES: return 1;
    case GL_TEXTURE_INDEX_SIZE_EXT: return 1;
    case GL_CLIP_VOLUME_CLIPPING_HINT_EXT: return 1;
    case GL_POINT_SIZE_MIN: return 1;
    case GL_POINT_SIZE_MAX: return 1;
    case GL_POINT_FADE_THRESHOLD_SIZE: return 1;
    case GL_POINT_DISTANCE_ATTENUATION: return 3;
    case GL_FOG_FUNC_POINTS_SGIS: return 1;
    case GL_MAX_FOG_FUNC_POINTS_SGIS: return 1;
    case GL_PACK_SKIP_VOLUMES_SGIS: return 1;
    case GL_PACK_IMAGE_DEPTH_SGIS: return 1;
    case GL_UNPACK_SKIP_VOLUMES_SGIS: return 1;
    case GL_UNPACK_IMAGE_DEPTH_SGIS: return 1;
    case GL_TEXTURE_4D_SGIS: return 1;
    case GL_MAX_4D_TEXTURE_SIZE_SGIS: return 1;
    case GL_PIXEL_TEX_GEN_SGIX: return 1;
    case GL_TEXTURE_MIN_LOD: return 1;
    case GL_TEXTURE_MAX_LOD: return 1;
    case GL_TEXTURE_BASE_LEVEL: return 1;
    case GL_TEXTURE_MAX_LEVEL: return 1;
    case GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX: return 1;
    case GL_PIXEL_TILE_CACHE_INCREMENT_SGIX: return 1;
    case GL_PIXEL_TILE_WIDTH_SGIX: return 1;
    case GL_PIXEL_TILE_HEIGHT_SGIX: return 1;
    case GL_PIXEL_TILE_GRID_WIDTH_SGIX: return 1;
    case GL_PIXEL_TILE_GRID_HEIGHT_SGIX: return 1;
    case GL_PIXEL_TILE_GRID_DEPTH_SGIX: return 1;
    case GL_PIXEL_TILE_CACHE_SIZE_SGIX: return 1;
    case GL_SPRITE_SGIX: return 1;
    case GL_SPRITE_MODE_SGIX: return 1;
    case GL_SPRITE_AXIS_SGIX: return 3;
    case GL_SPRITE_TRANSLATION_SGIX: return 3;
    case GL_TEXTURE_4D_BINDING_SGIS: return 1;
    case GL_CONVOLUTION_BORDER_COLOR: return 4;
    case GL_OCCLUSION_TEST_HP: return 1;
    case GL_OCCLUSION_TEST_RESULT_HP: return 1;
    case GL_TEXTURE_CLIPMAP_CENTER_SGIX: return 2;
    case GL_TEXTURE_CLIPMAP_FRAME_SGIX: return 1;
    case GL_TEXTURE_CLIPMAP_OFFSET_SGIX: return 2;
    case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX: return 3;
    case GL_TEXTURE_CLIPMAP_DEPTH_SGIX: return 1;
    case GL_MAX_CLIPMAP_DEPTH_SGIX: return 1;
    case GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX: return 1;
    case GL_POST_TEXTURE_FILTER_BIAS_SGIX: return 1;
    case GL_POST_TEXTURE_FILTER_SCALE_SGIX: return 1;
    case GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX: return 2;
    case GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX: return 2;
    case GL_REFERENCE_PLANE_SGIX: return 1;
    case GL_REFERENCE_PLANE_EQUATION_SGIX: return 4;
    case GL_IR_INSTRUMENT1_SGIX: return 1;
    case GL_INSTRUMENT_MEASUREMENTS_SGIX: return 1;
    case GL_CALLIGRAPHIC_FRAGMENT_SGIX: return 1;
    case GL_FRAMEZOOM_SGIX: return 1;
    case GL_FRAMEZOOM_FACTOR_SGIX: return 1;
    case GL_MAX_FRAMEZOOM_FACTOR_SGIX: return 1;
    case GL_TEXTURE_LOD_BIAS_S_SGIX: return 1;
    case GL_TEXTURE_LOD_BIAS_T_SGIX: return 1;
    case GL_TEXTURE_LOD_BIAS_R_SGIX: return 1;
    case GL_GENERATE_MIPMAP: return 1;
    case GL_GENERATE_MIPMAP_HINT: return 1;
    case GL_DEFORMATIONS_MASK_SGIX: return 1;
    case GL_FOG_OFFSET_SGIX: return 1;
    case GL_FOG_OFFSET_VALUE_SGIX: return 4;
    case GL_TEXTURE_COMPARE_SGIX: return 1;
    case GL_TEXTURE_COMPARE_OPERATOR_SGIX: return 1;
    case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: return 1;
    case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: return 1;
    case GL_CULL_VERTEX_EXT: return 1;
    case GL_CULL_VERTEX_EYE_POSITION_EXT: return 4;
    case GL_CULL_VERTEX_OBJECT_POSITION_EXT: return 4;
    case GL_TEXTURE_COLOR_WRITEMASK_SGIS: return 4;
    case GL_LIGHT_MODEL_COLOR_CONTROL: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: return 1;
    case GL_MAJOR_VERSION: return 1;
    case GL_MINOR_VERSION: return 1;
    case GL_NUM_EXTENSIONS: return 1;
    case GL_CONTEXT_FLAGS: return 1;
    case GL_BUFFER_IMMUTABLE_STORAGE: return 1;
    case GL_BUFFER_STORAGE_FLAGS: return 1;
    case GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED: return 1;
    case GL_DEBUG_OUTPUT_SYNCHRONOUS: return 1;
    case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: return 1;
    case GL_DEBUG_CALLBACK_FUNCTION: return 1;
    case GL_DEBUG_CALLBACK_USER_PARAM: return 1;
    case GL_RESET_NOTIFICATION_STRATEGY: return 1;
    case GL_PROGRAM_BINARY_RETRIEVABLE_HINT: return 1;
    case GL_PROGRAM_SEPARABLE: return 1;
    case GL_ACTIVE_PROGRAM: return 1;
    case GL_PROGRAM_PIPELINE_BINDING: return 1;
    case GL_MAX_VIEWPORTS: return 1;
    case GL_VIEWPORT_SUBPIXEL_BITS: return 1;
    case GL_VIEWPORT_BOUNDS_RANGE: return 2;
    case GL_LAYER_PROVOKING_VERTEX: return 1;
    case GL_VIEWPORT_INDEX_PROVOKING_VERTEX: return 1;
    case GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: return 1;
    case GL_MAX_COMPUTE_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_COMPUTE_ATOMIC_COUNTERS: return 1;
    case GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS: return 1;
    case GL_COMPUTE_WORK_GROUP_SIZE: return 3;
    case GL_MAX_DEBUG_GROUP_STACK_DEPTH: return 1;
    case GL_DEBUG_GROUP_STACK_DEPTH: return 1;
    case GL_MAX_UNIFORM_LOCATIONS: return 1;
    case GL_INTERNALFORMAT_SUPPORTED: return 1;
    case GL_INTERNALFORMAT_PREFERRED: return 1;
    case GL_INTERNALFORMAT_RED_SIZE: return 1;
    case GL_INTERNALFORMAT_GREEN_SIZE: return 1;
    case GL_INTERNALFORMAT_BLUE_SIZE: return 1;
    case GL_INTERNALFORMAT_ALPHA_SIZE: return 1;
    case GL_INTERNALFORMAT_DEPTH_SIZE: return 1;
    case GL_INTERNALFORMAT_STENCIL_SIZE: return 1;
    case GL_INTERNALFORMAT_SHARED_SIZE: return 1;
    case GL_INTERNALFORMAT_RED_TYPE: return 1;
    case GL_INTERNALFORMAT_GREEN_TYPE: return 1;
    case GL_INTERNALFORMAT_BLUE_TYPE: return 1;
    case GL_INTERNALFORMAT_ALPHA_TYPE: return 1;
    case GL_INTERNALFORMAT_DEPTH_TYPE: return 1;
    case GL_INTERNALFORMAT_STENCIL_TYPE: return 1;
    case GL_MAX_WIDTH: return 1;
    case GL_MAX_HEIGHT: return 1;
    case GL_MAX_DEPTH: return 1;
    case GL_MAX_LAYERS: return 1;
    case GL_MAX_COMBINED_DIMENSIONS: return 1;
    case GL_COLOR_COMPONENTS: return 1;
    case GL_DEPTH_COMPONENTS: return 1;
    case GL_STENCIL_COMPONENTS: return 1;
    case GL_COLOR_RENDERABLE: return 1;
    case GL_DEPTH_RENDERABLE: return 1;
    case GL_STENCIL_RENDERABLE: return 1;
    case GL_FRAMEBUFFER_RENDERABLE: return 1;
    case GL_FRAMEBUFFER_RENDERABLE_LAYERED: return 1;
    case GL_FRAMEBUFFER_BLEND: return 1;
    case GL_READ_PIXELS: return 1;
    case GL_READ_PIXELS_FORMAT: return 1;
    case GL_READ_PIXELS_TYPE: return 1;
    case GL_TEXTURE_IMAGE_FORMAT: return 1;
    case GL_TEXTURE_IMAGE_TYPE: return 1;
    case GL_GET_TEXTURE_IMAGE_FORMAT: return 1;
    case GL_GET_TEXTURE_IMAGE_TYPE: return 1;
    case GL_MIPMAP: return 1;
    case GL_MANUAL_GENERATE_MIPMAP: return 1;
    case GL_AUTO_GENERATE_MIPMAP: return 1;
    case GL_COLOR_ENCODING: return 1;
    case GL_SRGB_READ: return 1;
    case GL_SRGB_WRITE: return 1;
    case GL_SRGB_DECODE_ARB: return 1;
    case GL_FILTER: return 1;
    case GL_VERTEX_TEXTURE: return 1;
    case GL_TESS_CONTROL_TEXTURE: return 1;
    case GL_TESS_EVALUATION_TEXTURE: return 1;
    case GL_GEOMETRY_TEXTURE: return 1;
    case GL_FRAGMENT_TEXTURE: return 1;
    case GL_COMPUTE_TEXTURE: return 1;
    case GL_TEXTURE_SHADOW: return 1;
    case GL_TEXTURE_GATHER: return 1;
    case GL_TEXTURE_GATHER_SHADOW: return 1;
    case GL_SHADER_IMAGE_LOAD: return 1;
    case GL_SHADER_IMAGE_STORE: return 1;
    case GL_SHADER_IMAGE_ATOMIC: return 1;
    case GL_IMAGE_TEXEL_SIZE: return 1;
    case GL_IMAGE_COMPATIBILITY_CLASS: return 1;
    case GL_IMAGE_PIXEL_FORMAT: return 1;
    case GL_IMAGE_PIXEL_TYPE: return 1;
    case GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST: return 1;
    case GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST: return 1;
    case GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE: return 1;
    case GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE: return 1;
    case GL_TEXTURE_COMPRESSED_BLOCK_WIDTH: return 1;
    case GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT: return 1;
    case GL_TEXTURE_COMPRESSED_BLOCK_SIZE: return 1;
    case GL_CLEAR_BUFFER: return 1;
    case GL_TEXTURE_VIEW: return 1;
    case GL_VIEW_COMPATIBILITY_CLASS: return 1;
    case GL_VERTEX_ATTRIB_BINDING: return 1;
    case GL_VERTEX_ATTRIB_RELATIVE_OFFSET: return 1;
    case GL_VERTEX_BINDING_DIVISOR: return 1;
    case GL_VERTEX_BINDING_OFFSET: return 1;
    case GL_VERTEX_BINDING_STRIDE: return 1;
    case GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET: return 1;
    case GL_MAX_VERTEX_ATTRIB_BINDINGS: return 1;
    case GL_TEXTURE_VIEW_MIN_LEVEL: return 1;
    case GL_TEXTURE_VIEW_NUM_LEVELS: return 1;
    case GL_TEXTURE_VIEW_MIN_LAYER: return 1;
    case GL_TEXTURE_VIEW_NUM_LAYERS: return 1;
    case GL_TEXTURE_IMMUTABLE_LEVELS: return 1;
    case GL_MAX_VERTEX_ATTRIB_STRIDE: return 1;
    case GL_MAX_LABEL_LENGTH: return 1;
    case GL_SPARSE_BUFFER_PAGE_SIZE_ARB: return 1;
    case GL_MAX_CULL_DISTANCES: return 1;
    case GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES: return 1;
    case GL_CONTEXT_RELEASE_BEHAVIOR: return 1;
    case GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH: return 1;
    case GL_CONVOLUTION_HINT_SGIX: return 1;
    case GL_PIXEL_TEX_GEN_MODE_SGIX: return 1;
    case GL_TEXTURE_APPLICATION_MODE_EXT: return 1;
    case GL_TEXTURE_LIGHT_EXT: return 1;
    case GL_TEXTURE_MATERIAL_FACE_EXT: return 1;
    case GL_TEXTURE_MATERIAL_PARAMETER_EXT: return 1;
    case GL_PIXEL_TEXTURE_SGIS: return 1;
    case GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS: return 1;
    case GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS: return 1;
    case GL_PIXEL_GROUP_COLOR_SGIS: return 1;
    case GL_TEXTURE_MAX_CLAMP_S_SGIX: return 1;
    case GL_TEXTURE_MAX_CLAMP_T_SGIX: return 1;
    case GL_TEXTURE_MAX_CLAMP_R_SGIX: return 1;
    case GL_TEXTURE_MEMORY_LAYOUT_INTEL: return 1;
    case GL_FRAGMENT_LIGHTING_SGIX: return 1;
    case GL_FRAGMENT_COLOR_MATERIAL_SGIX: return 1;
    case GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX: return 1;
    case GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX: return 1;
    case GL_MAX_FRAGMENT_LIGHTS_SGIX: return 1;
    case GL_MAX_ACTIVE_LIGHTS_SGIX: return 1;
    case GL_CURRENT_RASTER_NORMAL_SGIX: return 1;
    case GL_LIGHT_ENV_MODE_SGIX: return 1;
    case GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX: return 1;
    case GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX: return 1;
    case GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX: return 4;
    case GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX: return 1;
    case GL_FRAGMENT_LIGHT0_SGIX: return 1;
    case GL_TANGENT_ARRAY_TYPE_EXT: return 1;
    case GL_BINORMAL_ARRAY_TYPE_EXT: return 1;
    case GL_TANGENT_ARRAY_POINTER_EXT: return 1;
    case GL_BINORMAL_ARRAY_POINTER_EXT: return 1;
    case GL_FOG_COORD_SRC: return 1;
    case GL_CURRENT_FOG_COORD: return 1;
    case GL_FOG_COORD_ARRAY_TYPE: return 1;
    case GL_FOG_COORD_ARRAY_STRIDE: return 1;
    case GL_FOG_COORD_ARRAY: return 1;
    case GL_COLOR_SUM: return 1;
    case GL_CURRENT_SECONDARY_COLOR: return 4;
    case GL_SECONDARY_COLOR_ARRAY_SIZE: return 1;
    case GL_SECONDARY_COLOR_ARRAY_TYPE: return 1;
    case GL_SECONDARY_COLOR_ARRAY_STRIDE: return 1;
    case GL_SECONDARY_COLOR_ARRAY: return 1;
    case GL_ALIASED_POINT_SIZE_RANGE: return 2;
    case GL_ALIASED_LINE_WIDTH_RANGE: return 2;
    case GL_ACTIVE_TEXTURE: return 1;
    case GL_CLIENT_ACTIVE_TEXTURE: return 1;
    case GL_MAX_TEXTURE_UNITS: return 1;
    case GL_TRANSPOSE_MODELVIEW_MATRIX: return 16;
    case GL_TRANSPOSE_PROJECTION_MATRIX: return 16;
    case GL_TRANSPOSE_TEXTURE_MATRIX: return 16;
    case GL_TRANSPOSE_COLOR_MATRIX: return 16;
    case GL_MAX_RENDERBUFFER_SIZE: return 1;
    case GL_TEXTURE_COMPRESSION_HINT: return 1;
    case GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER: return 1;
    case GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER: return 1;
    case GL_TEXTURE_RECTANGLE: return 1;
    case GL_TEXTURE_BINDING_RECTANGLE: return 1;
    case GL_MAX_RECTANGLE_TEXTURE_SIZE: return 1;
    case GL_MAX_TEXTURE_LOD_BIAS: return 1;
    case GL_TEXTURE_MAX_ANISOTROPY_EXT: return 1;
    case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: return 1;
    case GL_TEXTURE_LOD_BIAS: return 1;
    case GL_MAX_SHININESS_NV: return 1;
    case GL_MAX_SPOT_EXPONENT_NV: return 1;
    case GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT: return 1;
    case GL_TEXTURE_CUBE_MAP: return 1;
    case GL_TEXTURE_BINDING_CUBE_MAP: return 1;
    case GL_MAX_CUBE_MAP_TEXTURE_SIZE: return 1;
    case GL_VERTEX_ARRAY_RANGE_NV: return 1;
    case GL_VERTEX_ARRAY_RANGE_LENGTH_NV: return 1;
    case GL_VERTEX_ARRAY_RANGE_VALID_NV: return 1;
    case GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV: return 1;
    case GL_VERTEX_ARRAY_RANGE_POINTER_NV: return 1;
    case GL_CONSTANT_COLOR0_NV: return 4;
    case GL_CONSTANT_COLOR1_NV: return 4;
    case GL_MULTISAMPLE_FILTER_HINT_NV: return 1;
    case GL_MAX_GENERAL_COMBINERS_NV: return 1;
    case GL_NUM_GENERAL_COMBINERS_NV: return 1;
    case GL_COLOR_SUM_CLAMP_NV: return 1;
    case GL_PRIMITIVE_RESTART_NV: return 1;
    case GL_PRIMITIVE_RESTART_INDEX_NV: return 1;
    case GL_FOG_DISTANCE_MODE_NV: return 1;
    case GL_COMBINE_RGB: return 1;
    case GL_COMBINE_ALPHA: return 1;
    case GL_RGB_SCALE: return 1;
    case GL_SRC0_RGB: return 1;
    case GL_SRC1_RGB: return 1;
    case GL_SRC2_RGB: return 1;
    case GL_SOURCE3_RGB_NV: return 1;
    case GL_SRC0_ALPHA: return 1;
    case GL_SRC1_ALPHA: return 1;
    case GL_SRC2_ALPHA: return 1;
    case GL_SOURCE3_ALPHA_NV: return 1;
    case GL_OPERAND0_RGB: return 1;
    case GL_OPERAND1_RGB: return 1;
    case GL_OPERAND2_RGB: return 1;
    case GL_OPERAND3_RGB_NV: return 1;
    case GL_OPERAND0_ALPHA: return 1;
    case GL_OPERAND1_ALPHA: return 1;
    case GL_OPERAND2_ALPHA: return 1;
    case GL_OPERAND3_ALPHA_NV: return 1;
    case GL_VERTEX_ARRAY_BINDING: return 1;
    case GL_TEXTURE_RANGE_LENGTH_APPLE: return 1;
    case GL_TEXTURE_RANGE_POINTER_APPLE: return 1;
    case GL_TEXTURE_STORAGE_HINT_APPLE: return 1;
    case GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN: return 1;
    case GL_VERTEX_PROGRAM_ARB: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_ENABLED: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_SIZE: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_STRIDE: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_TYPE: return 1;
    case GL_CURRENT_VERTEX_ATTRIB: return 4;
    case GL_PROGRAM_LENGTH_ARB: return 1;
    case GL_PROGRAM_STRING_ARB: return 1;
    case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB: return 1;
    case GL_MAX_PROGRAM_MATRICES_ARB: return 1;
    case GL_CURRENT_MATRIX_STACK_DEPTH_ARB: return 1;
    case GL_CURRENT_MATRIX_ARB: return 16;
    case GL_PROGRAM_POINT_SIZE: return 1;
    case GL_VERTEX_PROGRAM_TWO_SIDE: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_POINTER: return 1;
    case GL_PROGRAM_TARGET_NV: return 1;
    case GL_PROGRAM_RESIDENT_NV: return 1;
    case GL_VERTEX_PROGRAM_BINDING_NV: return 1;
    case GL_PROGRAM_ERROR_POSITION_ARB: return 1;
    case GL_DEPTH_CLAMP: return 1;
    case GL_VERTEX_ATTRIB_ARRAY0_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY1_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY2_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY3_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY4_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY5_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY6_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY7_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY8_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY9_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY10_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY11_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY12_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY13_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY14_NV: return 1;
    case GL_VERTEX_ATTRIB_ARRAY15_NV: return 1;
    case GL_PROGRAM_BINDING_ARB: return 1;
    case GL_TEXTURE_COMPRESSED_IMAGE_SIZE: return 1;
    case GL_TEXTURE_COMPRESSED: return 1;
    case GL_NUM_COMPRESSED_TEXTURE_FORMATS: return 1;
    case GL_COMPRESSED_TEXTURE_FORMATS: return _glGetInteger(GL_NUM_COMPRESSED_TEXTURE_FORMATS);
    case GL_MAX_VERTEX_UNITS_ARB: return 1;
    case GL_ACTIVE_VERTEX_UNITS_ARB: return 1;
    case GL_WEIGHT_SUM_UNITY_ARB: return 1;
    case GL_VERTEX_BLEND_ARB: return 1;
    case GL_CURRENT_WEIGHT_ARB: return 1;
    case GL_WEIGHT_ARRAY_TYPE_ARB: return 1;
    case GL_WEIGHT_ARRAY_STRIDE_ARB: return 1;
    case GL_WEIGHT_ARRAY_SIZE_ARB: return 1;
    case GL_WEIGHT_ARRAY_POINTER_ARB: return 1;
    case GL_WEIGHT_ARRAY_ARB: return 1;
    case GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV: return 1;
    case GL_SHADER_OPERATION_NV: return 1;
    case GL_CULL_MODES_NV: return 4;
    case GL_OFFSET_TEXTURE_MATRIX_NV: return 4;
    case GL_OFFSET_TEXTURE_SCALE_NV: return 1;
    case GL_OFFSET_TEXTURE_BIAS_NV: return 1;
    case GL_PREVIOUS_TEXTURE_INPUT_NV: return 1;
    case GL_CONST_EYE_NV: return 3;
    case GL_MODELVIEW2_ARB: return 16;
    case GL_MODELVIEW3_ARB: return 16;
    case GL_MODELVIEW4_ARB: return 16;
    case GL_MODELVIEW5_ARB: return 16;
    case GL_MODELVIEW6_ARB: return 16;
    case GL_MODELVIEW7_ARB: return 16;
    case GL_MODELVIEW8_ARB: return 16;
    case GL_MODELVIEW9_ARB: return 16;
    case GL_MODELVIEW10_ARB: return 16;
    case GL_MODELVIEW11_ARB: return 16;
    case GL_MODELVIEW12_ARB: return 16;
    case GL_MODELVIEW13_ARB: return 16;
    case GL_MODELVIEW14_ARB: return 16;
    case GL_MODELVIEW15_ARB: return 16;
    case GL_MODELVIEW16_ARB: return 16;
    case GL_MODELVIEW17_ARB: return 16;
    case GL_MODELVIEW18_ARB: return 16;
    case GL_MODELVIEW19_ARB: return 16;
    case GL_MODELVIEW20_ARB: return 16;
    case GL_MODELVIEW21_ARB: return 16;
    case GL_MODELVIEW22_ARB: return 16;
    case GL_MODELVIEW23_ARB: return 16;
    case GL_MODELVIEW24_ARB: return 16;
    case GL_MODELVIEW25_ARB: return 16;
    case GL_MODELVIEW26_ARB: return 16;
    case GL_MODELVIEW27_ARB: return 16;
    case GL_MODELVIEW28_ARB: return 16;
    case GL_MODELVIEW29_ARB: return 16;
    case GL_MODELVIEW30_ARB: return 16;
    case GL_MODELVIEW31_ARB: return 16;
    case GL_PROGRAM_BINARY_LENGTH: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_LONG: return 1;
    case GL_PACK_INVERT_MESA: return 1;
    case GL_BUFFER_SIZE: return 1;
    case GL_BUFFER_USAGE: return 1;
    case GL_ELEMENT_ARRAY_TYPE_ATI: return 1;
    case GL_BUMP_TARGET_ATI: return 1;
    case GL_VERTEX_SHADER_BINDING_EXT: return 1;
    case GL_VARIANT_ARRAY_TYPE_EXT: return 1;
    case GL_VBO_FREE_MEMORY_ATI: return 4;
    case GL_TEXTURE_FREE_MEMORY_ATI: return 4;
    case GL_RENDERBUFFER_FREE_MEMORY_ATI: return 4;
    case GL_NUM_PROGRAM_BINARY_FORMATS: return 1;
    case GL_PROGRAM_BINARY_FORMATS: return 0;
    case GL_STENCIL_BACK_FUNC: return 1;
    case GL_STENCIL_BACK_FAIL: return 1;
    case GL_STENCIL_BACK_PASS_DEPTH_FAIL: return 1;
    case GL_STENCIL_BACK_PASS_DEPTH_PASS: return 1;
    case GL_FRAGMENT_PROGRAM_ARB: return 1;
    case GL_PROGRAM_ALU_INSTRUCTIONS_ARB: return 1;
    case GL_PROGRAM_TEX_INSTRUCTIONS_ARB: return 1;
    case GL_PROGRAM_TEX_INDIRECTIONS_ARB: return 1;
    case GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: return 1;
    case GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: return 1;
    case GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: return 1;
    case GL_RGBA_FLOAT_MODE_ARB: return 1;
    case GL_MAX_DRAW_BUFFERS: return 1;
    case GL_DRAW_BUFFER0: return 1;
    case GL_DRAW_BUFFER1: return 1;
    case GL_DRAW_BUFFER2: return 1;
    case GL_DRAW_BUFFER3: return 1;
    case GL_DRAW_BUFFER4: return 1;
    case GL_DRAW_BUFFER5: return 1;
    case GL_DRAW_BUFFER6: return 1;
    case GL_DRAW_BUFFER7: return 1;
    case GL_DRAW_BUFFER8: return 1;
    case GL_DRAW_BUFFER9: return 1;
    case GL_DRAW_BUFFER10: return 1;
    case GL_DRAW_BUFFER11: return 1;
    case GL_DRAW_BUFFER12: return 1;
    case GL_DRAW_BUFFER13: return 1;
    case GL_DRAW_BUFFER14: return 1;
    case GL_DRAW_BUFFER15: return 1;
    case GL_BLEND_EQUATION_ALPHA: return 1;
    case GL_MATRIX_PALETTE_ARB: return 1;
    case GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB: return 1;
    case GL_MAX_PALETTE_MATRICES_ARB: return 1;
    case GL_CURRENT_PALETTE_MATRIX_ARB: return 1;
    case GL_MATRIX_INDEX_ARRAY_ARB: return 1;
    case GL_CURRENT_MATRIX_INDEX_ARB: return 1;
    case GL_MATRIX_INDEX_ARRAY_SIZE_ARB: return 1;
    case GL_MATRIX_INDEX_ARRAY_TYPE_ARB: return 1;
    case GL_MATRIX_INDEX_ARRAY_STRIDE_ARB: return 1;
    case GL_MATRIX_INDEX_ARRAY_POINTER_ARB: return 1;
    case GL_TEXTURE_DEPTH_SIZE: return 1;
    case GL_DEPTH_TEXTURE_MODE: return 1;
    case GL_TEXTURE_COMPARE_MODE: return 1;
    case GL_TEXTURE_COMPARE_FUNC: return 1;
    case GL_TEXTURE_CUBE_MAP_SEAMLESS: return 1;
    case GL_POINT_SPRITE: return 1;
    case GL_COORD_REPLACE: return 1;
    case GL_POINT_SPRITE_R_MODE_NV: return 1;
    case GL_QUERY_COUNTER_BITS: return 1;
    case GL_CURRENT_QUERY: return 1;
    case GL_QUERY_RESULT: return 1;
    case GL_QUERY_RESULT_AVAILABLE: return 1;
    case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV: return 1;
    case GL_MAX_VERTEX_ATTRIBS: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: return 1;
    case GL_MAX_TESS_CONTROL_INPUT_COMPONENTS: return 1;
    case GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS: return 1;
    case GL_MAX_TEXTURE_COORDS: return 1;
    case GL_MAX_TEXTURE_IMAGE_UNITS: return 1;
    case GL_FRAGMENT_PROGRAM_BINDING_NV: return 1;
    case GL_PROGRAM_ERROR_STRING_ARB: return 1;
    case GL_PROGRAM_FORMAT_ARB: return 1;
    case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV: return 1;
    case GL_DEPTH_BOUNDS_TEST_EXT: return 1;
    case GL_DEPTH_BOUNDS_EXT: return 2;
    case GL_ARRAY_BUFFER_BINDING: return 1;
    case GL_ELEMENT_ARRAY_BUFFER_BINDING: return 1;
    case GL_VERTEX_ARRAY_BUFFER_BINDING: return 1;
    case GL_NORMAL_ARRAY_BUFFER_BINDING: return 1;
    case GL_COLOR_ARRAY_BUFFER_BINDING: return 1;
    case GL_INDEX_ARRAY_BUFFER_BINDING: return 1;
    case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: return 1;
    case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING: return 1;
    case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING: return 1;
    case GL_FOG_COORD_ARRAY_BUFFER_BINDING: return 1;
    case GL_WEIGHT_ARRAY_BUFFER_BINDING: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: return 1;
    case GL_PROGRAM_INSTRUCTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_INSTRUCTIONS_ARB: return 1;
    case GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB: return 1;
    case GL_PROGRAM_TEMPORARIES_ARB: return 1;
    case GL_MAX_PROGRAM_TEMPORARIES_ARB: return 1;
    case GL_PROGRAM_NATIVE_TEMPORARIES_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB: return 1;
    case GL_PROGRAM_PARAMETERS_ARB: return 1;
    case GL_MAX_PROGRAM_PARAMETERS_ARB: return 1;
    case GL_PROGRAM_NATIVE_PARAMETERS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB: return 1;
    case GL_PROGRAM_ATTRIBS_ARB: return 1;
    case GL_MAX_PROGRAM_ATTRIBS_ARB: return 1;
    case GL_PROGRAM_NATIVE_ATTRIBS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB: return 1;
    case GL_PROGRAM_ADDRESS_REGISTERS_ARB: return 1;
    case GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB: return 1;
    case GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: return 1;
    case GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: return 1;
    case GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB: return 1;
    case GL_MAX_PROGRAM_ENV_PARAMETERS_ARB: return 1;
    case GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB: return 1;
    case GL_TRANSPOSE_CURRENT_MATRIX_ARB: return 16;
    case GL_BUFFER_ACCESS: return 1;
    case GL_BUFFER_MAPPED: return 1;
    case GL_BUFFER_MAP_POINTER: return 1;
    case GL_PIXEL_PACK_BUFFER_BINDING: return 1;
    case GL_PIXEL_UNPACK_BUFFER_BINDING: return 1;
    case GL_TEXTURE_STENCIL_SIZE: return 1;
    case GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV: return 1;
    case GL_MAX_PROGRAM_CALL_DEPTH_NV: return 1;
    case GL_MAX_PROGRAM_IF_DEPTH_NV: return 1;
    case GL_MAX_PROGRAM_LOOP_DEPTH_NV: return 1;
    case GL_MAX_PROGRAM_LOOP_COUNT_NV: return 1;
    case GL_MAX_DUAL_SOURCE_DRAW_BUFFERS: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_INTEGER: return 1;
    case GL_VERTEX_ATTRIB_ARRAY_DIVISOR: return 1;
    case GL_MAX_ARRAY_TEXTURE_LAYERS: return 1;
    case GL_MIN_PROGRAM_TEXEL_OFFSET: return 1;
    case GL_MAX_PROGRAM_TEXEL_OFFSET: return 1;
    case GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV: return 1;
    case GL_MAX_PROGRAM_RESULT_COMPONENTS_NV: return 1;
    case GL_STENCIL_TEST_TWO_SIDE_EXT: return 1;
    case GL_ACTIVE_STENCIL_FACE_EXT: return 1;
    case GL_GEOMETRY_VERTICES_OUT: return 1;
    case GL_GEOMETRY_INPUT_TYPE: return 1;
    case GL_GEOMETRY_OUTPUT_TYPE: return 1;
    case GL_SAMPLER_BINDING: return 1;
    case GL_CLAMP_VERTEX_COLOR: return 1;
    case GL_CLAMP_FRAGMENT_COLOR: return 1;
    case GL_CLAMP_READ_COLOR: return 1;
    case GL_ELEMENT_ARRAY_TYPE_APPLE: return 1;
    case GL_PURGEABLE_APPLE: return 1;
    case GL_UNIFORM_BUFFER_BINDING: return 1;
    case GL_UNIFORM_BUFFER_START: return 1;
    case GL_UNIFORM_BUFFER_SIZE: return 1;
    case GL_MAX_VERTEX_UNIFORM_BLOCKS: return 1;
    case GL_MAX_GEOMETRY_UNIFORM_BLOCKS: return 1;
    case GL_MAX_FRAGMENT_UNIFORM_BLOCKS: return 1;
    case GL_MAX_COMBINED_UNIFORM_BLOCKS: return 1;
    case GL_MAX_UNIFORM_BUFFER_BINDINGS: return 1;
    case GL_MAX_UNIFORM_BLOCK_SIZE: return 1;
    case GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: return 1;
    case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: return 1;
    case GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH: return 1;
    case GL_ACTIVE_UNIFORM_BLOCKS: return 1;
    case GL_UNIFORM_TYPE: return 1;
    case GL_UNIFORM_SIZE: return 1;
    case GL_UNIFORM_NAME_LENGTH: return 1;
    case GL_UNIFORM_BLOCK_INDEX: return 1;
    case GL_UNIFORM_OFFSET: return 1;
    case GL_UNIFORM_ARRAY_STRIDE: return 1;
    case GL_UNIFORM_MATRIX_STRIDE: return 1;
    case GL_UNIFORM_IS_ROW_MAJOR: return 1;
    case GL_UNIFORM_BLOCK_BINDING: return 1;
    case GL_UNIFORM_BLOCK_DATA_SIZE: return 1;
    case GL_UNIFORM_BLOCK_NAME_LENGTH: return 1;
    case GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS: return 1;
    case GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: return 1;
    case GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: return 1;
    case GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER: return 1;
    case GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: return 1;
    case GL_TEXTURE_SRGB_DECODE_EXT: return 1;
    case GL_FRAGMENT_SHADER: return 1;
    case GL_VERTEX_SHADER: return 1;
    case GL_PROGRAM_OBJECT_ARB: return 1;
    case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_VERTEX_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_VARYING_COMPONENTS: return 1;
    case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: return 1;
    case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: return 1;
    case GL_OBJECT_TYPE_ARB: return 1;
    case GL_SHADER_TYPE: return 1;
    case GL_DELETE_STATUS: return 1;
    case GL_COMPILE_STATUS: return 1;
    case GL_LINK_STATUS: return 1;
    case GL_VALIDATE_STATUS: return 1;
    case GL_INFO_LOG_LENGTH: return 1;
    case GL_ATTACHED_SHADERS: return 1;
    case GL_ACTIVE_UNIFORMS: return 1;
    case GL_ACTIVE_UNIFORM_MAX_LENGTH: return 1;
    case GL_SHADER_SOURCE_LENGTH: return 1;
    case GL_ACTIVE_ATTRIBUTES: return 1;
    case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: return 1;
    case GL_SHADING_LANGUAGE_VERSION: return 1;
    case GL_CURRENT_PROGRAM: return 1;
    case GL_IMPLEMENTATION_COLOR_READ_TYPE: return 1;
    case GL_IMPLEMENTATION_COLOR_READ_FORMAT: return 1;
    case GL_TEXTURE_CROP_RECT_OES: return 4;
    case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: return 1;
    case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: return 1;
    case GL_TEXTURE_RED_TYPE: return 1;
    case GL_TEXTURE_GREEN_TYPE: return 1;
    case GL_TEXTURE_BLUE_TYPE: return 1;
    case GL_TEXTURE_ALPHA_TYPE: return 1;
    case GL_TEXTURE_LUMINANCE_TYPE: return 1;
    case GL_TEXTURE_INTENSITY_TYPE: return 1;
    case GL_TEXTURE_DEPTH_TYPE: return 1;
    case GL_TEXTURE_1D_ARRAY: return 1;
    case GL_TEXTURE_2D_ARRAY: return 1;
    case GL_TEXTURE_BINDING_1D_ARRAY: return 1;
    case GL_TEXTURE_BINDING_2D_ARRAY: return 1;
    case GL_MAX_PROGRAM_OUTPUT_VERTICES_NV: return 1;
    case GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV: return 1;
    case GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS: return 1;
    case GL_TEXTURE_BUFFER: return 1;
    case GL_MAX_TEXTURE_BUFFER_SIZE: return 1;
    case GL_TEXTURE_BINDING_BUFFER: return 1;
    case GL_TEXTURE_BUFFER_DATA_STORE_BINDING: return 1;
    case GL_TEXTURE_BUFFER_FORMAT_ARB: return 1;
    case GL_ANY_SAMPLES_PASSED: return 1;
    case GL_SAMPLE_SHADING: return 1;
    case GL_MIN_SAMPLE_SHADING_VALUE: return 1;
    case GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: return 1;
    case GL_TRANSFORM_FEEDBACK_BUFFER_MODE: return 1;
    case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: return 1;
    case GL_TRANSFORM_FEEDBACK_VARYINGS: return 1;
    case GL_TRANSFORM_FEEDBACK_BUFFER_START: return 1;
    case GL_TRANSFORM_FEEDBACK_BUFFER_SIZE: return 1;
    case GL_RASTERIZER_DISCARD: return 1;
    case GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: return 1;
    case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: return 1;
    case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: return 1;
    case GL_POINT_SPRITE_COORD_ORIGIN: return 1;
    case GL_DRAW_FRAMEBUFFER_BINDING: return 1;
    case GL_RENDERBUFFER_BINDING: return 1;
    case GL_READ_FRAMEBUFFER: return 1;
    case GL_DRAW_FRAMEBUFFER: return 1;
    case GL_READ_FRAMEBUFFER_BINDING: return 1;
    case GL_RENDERBUFFER_SAMPLES: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: return 1;
    case GL_MAX_COLOR_ATTACHMENTS: return 1;
    case GL_RENDERBUFFER_WIDTH: return 1;
    case GL_RENDERBUFFER_HEIGHT: return 1;
    case GL_RENDERBUFFER_INTERNAL_FORMAT: return 1;
    case GL_RENDERBUFFER_RED_SIZE: return 1;
    case GL_RENDERBUFFER_GREEN_SIZE: return 1;
    case GL_RENDERBUFFER_BLUE_SIZE: return 1;
    case GL_RENDERBUFFER_ALPHA_SIZE: return 1;
    case GL_RENDERBUFFER_DEPTH_SIZE: return 1;
    case GL_RENDERBUFFER_STENCIL_SIZE: return 1;
    case GL_MAX_SAMPLES: return 1;
    case GL_PRIMITIVE_RESTART_FIXED_INDEX: return 1;
    case GL_ANY_SAMPLES_PASSED_CONSERVATIVE: return 1;
    case GL_MAX_ELEMENT_INDEX: return 1;
    case GL_RGBA_INTEGER_MODE_EXT: return 1;
    case GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV: return 1;
    case GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV: return 1;
    case GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV: return 1;
    case GL_MAX_PROGRAM_GENERIC_RESULTS_NV: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_LAYERED: return 1;
    case GL_FRAMEBUFFER_SRGB: return 1;
    case GL_FRAMEBUFFER_SRGB_CAPABLE_EXT: return 1;
    case GL_GEOMETRY_SHADER: return 1;
    case GL_GEOMETRY_VERTICES_OUT_ARB: return 1;
    case GL_GEOMETRY_INPUT_TYPE_ARB: return 1;
    case GL_GEOMETRY_OUTPUT_TYPE_ARB: return 1;
    case GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB: return 1;
    case GL_MAX_VERTEX_VARYING_COMPONENTS_ARB: return 1;
    case GL_MAX_GEOMETRY_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_GEOMETRY_OUTPUT_VERTICES: return 1;
    case GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: return 1;
    case GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT: return 1;
    case GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT: return 1;
    case GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT: return 1;
    case GL_ACTIVE_SUBROUTINES: return 1;
    case GL_ACTIVE_SUBROUTINE_UNIFORMS: return 1;
    case GL_MAX_SUBROUTINES: return 1;
    case GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS: return 1;
    case GL_NAMED_STRING_LENGTH_ARB: return 1;
    case GL_NAMED_STRING_TYPE_ARB: return 1;
    case GL_MAX_BINDABLE_UNIFORM_SIZE_EXT: return 1;
    case GL_UNIFORM_BUFFER_BINDING_EXT: return 1;
    case GL_SHADER_BINARY_FORMATS: return _glGetInteger(GL_NUM_SHADER_BINARY_FORMATS);
    case GL_NUM_SHADER_BINARY_FORMATS: return 1;
    case GL_SHADER_COMPILER: return 1;
    case GL_MAX_VERTEX_UNIFORM_VECTORS: return 1;
    case GL_MAX_VARYING_VECTORS: return 1;
    case GL_MAX_FRAGMENT_UNIFORM_VECTORS: return 1;
    case GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV: return 1;
    case GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS: return 1;
    case GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED: return 1;
    case GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE: return 1;
    case GL_TRANSFORM_FEEDBACK_BINDING: return 1;
    case GL_TIMESTAMP: return 1;
    case GL_TEXTURE_SWIZZLE_R: return 1;
    case GL_TEXTURE_SWIZZLE_G: return 1;
    case GL_TEXTURE_SWIZZLE_B: return 1;
    case GL_TEXTURE_SWIZZLE_A: return 1;
    case GL_TEXTURE_SWIZZLE_RGBA: return 4;
    case GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS: return 1;
    case GL_ACTIVE_SUBROUTINE_MAX_LENGTH: return 1;
    case GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH: return 1;
    case GL_NUM_COMPATIBLE_SUBROUTINES: return 1;
    case GL_COMPATIBLE_SUBROUTINES: return 1;
    case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: return 1;
    case GL_PROVOKING_VERTEX: return 1;
    case GL_SAMPLE_POSITION: return 2;
    case GL_SAMPLE_MASK: return 1;
    case GL_SAMPLE_MASK_VALUE: return 1;
    case GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV: return 1;
    case GL_MAX_SAMPLE_MASK_WORDS: return 1;
    case GL_MAX_GEOMETRY_SHADER_INVOCATIONS: return 1;
    case GL_MIN_FRAGMENT_INTERPOLATION_OFFSET: return 1;
    case GL_MAX_FRAGMENT_INTERPOLATION_OFFSET: return 1;
    case GL_FRAGMENT_INTERPOLATION_OFFSET_BITS: return 1;
    case GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET: return 1;
    case GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET: return 1;
    case GL_MAX_TRANSFORM_FEEDBACK_BUFFERS: return 1;
    case GL_MAX_VERTEX_STREAMS: return 1;
    case GL_PATCH_VERTICES: return 1;
    case GL_PATCH_DEFAULT_INNER_LEVEL: return 2;
    case GL_PATCH_DEFAULT_OUTER_LEVEL: return 4;
    case GL_TESS_CONTROL_OUTPUT_VERTICES: return 1;
    case GL_TESS_GEN_MODE: return 1;
    case GL_TESS_GEN_SPACING: return 1;
    case GL_TESS_GEN_VERTEX_ORDER: return 1;
    case GL_TESS_GEN_POINT_MODE: return 1;
    case GL_MAX_PATCH_VERTICES: return 1;
    case GL_MAX_TESS_GEN_LEVEL: return 1;
    case GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS: return 1;
    case GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS: return 1;
    case GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: return 1;
    case GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS: return 1;
    case GL_MAX_TESS_PATCH_COMPONENTS: return 1;
    case GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS: return 1;
    case GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS: return 1;
    case GL_TESS_EVALUATION_SHADER: return 1;
    case GL_TESS_CONTROL_SHADER: return 1;
    case GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS: return 1;
    case GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS: return 1;
    case GL_WINDOW_RECTANGLE_EXT: return 4;
    case GL_WINDOW_RECTANGLE_MODE_EXT: return 1;
    case GL_MAX_WINDOW_RECTANGLES_EXT: return 1;
    case GL_NUM_WINDOW_RECTANGLES_EXT: return 1;
    case GL_BUFFER_GPU_ADDRESS_NV: return 1;
    case GL_MAX_SHADER_BUFFER_ADDRESS_NV: return 1;
    case GL_COPY_READ_BUFFER: return 1;
    case GL_COPY_WRITE_BUFFER: return 1;
    case GL_MAX_IMAGE_UNITS: return 1;
    case GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: return 1;
    case GL_IMAGE_BINDING_NAME: return 1;
    case GL_IMAGE_BINDING_LEVEL: return 1;
    case GL_IMAGE_BINDING_LAYERED: return 1;
    case GL_IMAGE_BINDING_LAYER: return 1;
    case GL_IMAGE_BINDING_ACCESS: return 1;
    case GL_DRAW_INDIRECT_BUFFER_BINDING: return 1;
    case GL_TEXTURE_ASTC_DECODE_PRECISION_EXT: return 1;
    case GL_PRIMITIVE_RESTART: return 1;
    case GL_PRIMITIVE_RESTART_INDEX: return 1;
    case GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB: return 1;
    case GL_TEXTURE_CUBE_MAP_ARRAY: return 1;
    case GL_TEXTURE_BINDING_CUBE_MAP_ARRAY: return 1;
    case GL_DEPTH_CLAMP_NEAR_AMD: return 1;
    case GL_DEPTH_CLAMP_FAR_AMD: return 1;
    case GL_VIDEO_BUFFER_BINDING_NV: return 1;
    case GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX: return 1;
    case GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX: return 1;
    case GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX: return 1;
    case GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX: return 1;
    case GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX: return 1;
    case GL_MAX_IMAGE_SAMPLES: return 1;
    case GL_IMAGE_BINDING_FORMAT: return 1;
    case GL_MIN_MAP_BUFFER_ALIGNMENT: return 1;
    case GL_MAX_VERTEX_IMAGE_UNIFORMS: return 1;
    case GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS: return 1;
    case GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS: return 1;
    case GL_MAX_GEOMETRY_IMAGE_UNIFORMS: return 1;
    case GL_MAX_FRAGMENT_IMAGE_UNIFORMS: return 1;
    case GL_MAX_COMBINED_IMAGE_UNIFORMS: return 1;
    case GL_SHADER_STORAGE_BUFFER: return 1;
    case GL_SHADER_STORAGE_BUFFER_BINDING: return 1;
    case GL_SHADER_STORAGE_BUFFER_START: return 1;
    case GL_SHADER_STORAGE_BUFFER_SIZE: return 1;
    case GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: return 1;
    case GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS: return 1;
    case GL_MAX_SHADER_STORAGE_BLOCK_SIZE: return 1;
    case GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT: return 1;
    case GL_DEPTH_STENCIL_TEXTURE_MODE: return 1;
    case GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS: return 1;
    case GL_DISPATCH_INDIRECT_BUFFER_BINDING: return 1;
    case GL_TEXTURE_BINDING_2D_MULTISAMPLE: return 1;
    case GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY: return 1;
    case GL_TEXTURE_SAMPLES: return 1;
    case GL_TEXTURE_FIXED_SAMPLE_LOCATIONS: return 1;
    case GL_MAX_COLOR_TEXTURE_SAMPLES: return 1;
    case GL_MAX_DEPTH_TEXTURE_SAMPLES: return 1;
    case GL_MAX_INTEGER_SAMPLES: return 1;
    case GL_MAX_SERVER_WAIT_TIMEOUT: return 1;
    case GL_BUFFER_ACCESS_FLAGS: return 1;
    case GL_BUFFER_MAP_LENGTH: return 1;
    case GL_BUFFER_MAP_OFFSET: return 1;
    case GL_MAX_VERTEX_OUTPUT_COMPONENTS: return 1;
    case GL_MAX_GEOMETRY_INPUT_COMPONENTS: return 1;
    case GL_MAX_GEOMETRY_OUTPUT_COMPONENTS: return 1;
    case GL_MAX_FRAGMENT_INPUT_COMPONENTS: return 1;
    case GL_CONTEXT_PROFILE_MASK: return 1;
    case GL_UNPACK_COMPRESSED_BLOCK_WIDTH: return 1;
    case GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: return 1;
    case GL_UNPACK_COMPRESSED_BLOCK_DEPTH: return 1;
    case GL_UNPACK_COMPRESSED_BLOCK_SIZE: return 1;
    case GL_PACK_COMPRESSED_BLOCK_WIDTH: return 1;
    case GL_PACK_COMPRESSED_BLOCK_HEIGHT: return 1;
    case GL_PACK_COMPRESSED_BLOCK_DEPTH: return 1;
    case GL_PACK_COMPRESSED_BLOCK_SIZE: return 1;
    case GL_TEXTURE_IMMUTABLE_FORMAT: return 1;
    case GL_RENDERBUFFER_SAMPLES_IMG: return 1;
    case GL_MAX_SAMPLES_IMG: return 1;
    case GL_TEXTURE_SAMPLES_IMG: return 1;
    case GL_MAX_DEBUG_MESSAGE_LENGTH: return 1;
    case GL_MAX_DEBUG_LOGGED_MESSAGES: return 1;
    case GL_DEBUG_LOGGED_MESSAGES: return 1;
    case GL_QUERY_BUFFER_BINDING: return 1;
    case GL_QUERY_RESULT_NO_WAIT: return 1;
    case GL_MAX_SPARSE_TEXTURE_SIZE_ARB: return 1;
    case GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB: return 1;
    case GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS: return 1;
    case GL_TEXTURE_BUFFER_OFFSET: return 1;
    case GL_TEXTURE_BUFFER_SIZE: return 1;
    case GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT: return 1;
    case GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB: return 1;
    case GL_MAX_SHADER_COMPILER_THREADS_ARB: return 1;
    case GL_COMPLETION_STATUS_ARB: return 1;
    case GL_COMPUTE_SHADER: return 1;
    case GL_MAX_COMPUTE_UNIFORM_BLOCKS: return 1;
    case GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS: return 1;
    case GL_MAX_COMPUTE_IMAGE_UNIFORMS: return 1;
    case GL_MAX_COMPUTE_WORK_GROUP_COUNT: return 3;
    case GL_MAX_COMPUTE_WORK_GROUP_SIZE: return 3;
    case GL_PRIMITIVE_BOUNDING_BOX_EXT: return 8;
    case GL_ATOMIC_COUNTER_BUFFER_BINDING: return 1;
    case GL_ATOMIC_COUNTER_BUFFER_START: return 1;
    case GL_ATOMIC_COUNTER_BUFFER_SIZE: return 1;
    case GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_VERTEX_ATOMIC_COUNTERS: return 1;
    case GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS: return 1;
    case GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS: return 1;
    case GL_MAX_GEOMETRY_ATOMIC_COUNTERS: return 1;
    case GL_MAX_FRAGMENT_ATOMIC_COUNTERS: return 1;
    case GL_MAX_COMBINED_ATOMIC_COUNTERS: return 1;
    case GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE: return 1;
    case GL_ACTIVE_ATOMIC_COUNTER_BUFFERS: return 1;
    case GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: return 1;
    case GL_DEBUG_OUTPUT: return 1;
    case GL_IS_PER_PATCH: return 1;
    case GL_ACTIVE_RESOURCES: return 1;
    case GL_MAX_NAME_LENGTH: return 1;
    case GL_MAX_NUM_ACTIVE_VARIABLES: return 1;
    case GL_MAX_NUM_COMPATIBLE_SUBROUTINES: return 1;
    case GL_NAME_LENGTH: return 1;
    case GL_TYPE: return 1;
    case GL_ARRAY_SIZE: return 1;
    case GL_OFFSET: return 1;
    case GL_BLOCK_INDEX: return 1;
    case GL_ARRAY_STRIDE: return 1;
    case GL_MATRIX_STRIDE: return 1;
    case GL_IS_ROW_MAJOR: return 1;
    case GL_ATOMIC_COUNTER_BUFFER_INDEX: return 1;
    case GL_BUFFER_BINDING: return 1;
    case GL_BUFFER_DATA_SIZE: return 1;
    case GL_NUM_ACTIVE_VARIABLES: return 1;
    case GL_ACTIVE_VARIABLES: return 1;
    case GL_REFERENCED_BY_VERTEX_SHADER: return 1;
    case GL_REFERENCED_BY_TESS_CONTROL_SHADER: return 1;
    case GL_REFERENCED_BY_TESS_EVALUATION_SHADER: return 1;
    case GL_REFERENCED_BY_GEOMETRY_SHADER: return 1;
    case GL_REFERENCED_BY_FRAGMENT_SHADER: return 1;
    case GL_REFERENCED_BY_COMPUTE_SHADER: return 1;
    case GL_TOP_LEVEL_ARRAY_SIZE: return 1;
    case GL_TOP_LEVEL_ARRAY_STRIDE: return 1;
    case GL_LOCATION: return 1;
    case GL_LOCATION_INDEX: return 1;
    case GL_FRAMEBUFFER_DEFAULT_WIDTH: return 1;
    case GL_FRAMEBUFFER_DEFAULT_HEIGHT: return 1;
    case GL_FRAMEBUFFER_DEFAULT_LAYERS: return 1;
    case GL_FRAMEBUFFER_DEFAULT_SAMPLES: return 1;
    case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS: return 1;
    case GL_MAX_FRAMEBUFFER_WIDTH: return 1;
    case GL_MAX_FRAMEBUFFER_HEIGHT: return 1;
    case GL_MAX_FRAMEBUFFER_LAYERS: return 1;
    case GL_MAX_FRAMEBUFFER_SAMPLES: return 1;
    case GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB: return 1;
    case GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB: return 1;
    case GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB: return 1;
    case GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB: return 2;
    case GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB: return 1;
    case GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB: return 1;
    case GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB: return 1;
    case GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB: return 1;
    case GL_CLIP_ORIGIN: return 1;
    case GL_CLIP_DEPTH_MODE: return 1;
    case GL_TEXTURE_REDUCTION_MODE_ARB: return 1;
    case GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB: return 2;
    case GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB: return 1;
    case GL_SPIR_V_BINARY: return 1;
    case GL_SPIR_V_EXTENSIONS: return _glGetInteger(GL_NUM_SPIR_V_EXTENSIONS);
    case GL_NUM_SPIR_V_EXTENSIONS: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: return 1;
    case GL_MAX_VIEWS_OVR: return 1;
    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: return 1;
    case GL_RASTER_POSITION_UNCLIPPED_IBM: return 1;
    default:
        os::log("apitrace: warning: %s: unknown GLenum 0x%04X\n", __FUNCTION__, pname);
        return 1;
    }
}

static GLenum
getBufferBinding(GLenum target) {
    switch (target) {
    case GL_ARRAY_BUFFER:
        return GL_ARRAY_BUFFER_BINDING;
    case GL_ATOMIC_COUNTER_BUFFER:
        return GL_ATOMIC_COUNTER_BUFFER_BINDING;
    case GL_COPY_READ_BUFFER:
        return GL_COPY_READ_BUFFER_BINDING;
    case GL_COPY_WRITE_BUFFER:
        return GL_COPY_WRITE_BUFFER_BINDING;
    case GL_DRAW_INDIRECT_BUFFER:
        return GL_DRAW_INDIRECT_BUFFER_BINDING;
    case GL_DISPATCH_INDIRECT_BUFFER:
        return GL_DISPATCH_INDIRECT_BUFFER_BINDING;
    case GL_ELEMENT_ARRAY_BUFFER:
        return GL_ELEMENT_ARRAY_BUFFER_BINDING;
    case GL_PIXEL_PACK_BUFFER:
        return GL_PIXEL_PACK_BUFFER_BINDING;
    case GL_PIXEL_UNPACK_BUFFER:
        return GL_PIXEL_UNPACK_BUFFER_BINDING;
    case GL_QUERY_BUFFER:
        return GL_QUERY_BUFFER_BINDING;
    case GL_SHADER_STORAGE_BUFFER:
        return GL_SHADER_STORAGE_BUFFER_BINDING;
    case GL_TEXTURE_BUFFER:
        return GL_TEXTURE_BUFFER_BINDING;
    case GL_TRANSFORM_FEEDBACK_BUFFER:
        return GL_TRANSFORM_FEEDBACK_BUFFER_BINDING;
    case GL_UNIFORM_BUFFER:
        return GL_UNIFORM_BUFFER_BINDING;
    default:
        assert(false);
        return 0;
    }
}

static GLint
getBufferName(GLenum target) {
    GLint bufferName = 0;
    _glGetIntegerv(getBufferBinding(target), &bufferName);
    assert(bufferName != 0);
    return bufferName;
}

static inline bool
can_unpack_subimage(void) {
    gltrace::Context *_ctx = gltrace::getContext();
    return _ctx->features.unpack_subimage;
}

extern "C" PUBLIC
void APIENTRY
glNotifyMappedBufferRangeVMWX(const void * start, GLsizeiptr length) {
    trace::fakeMemcpy(start, length);
}


static const trace::EnumValue _enumEGLBoolean_values[] = {
    {"EGL_FALSE", EGL_FALSE},
    {"EGL_TRUE", EGL_TRUE},
};

static const trace::EnumSig _enumEGLBoolean_sig = {
    17, 2, _enumEGLBoolean_values
};

static const trace::EnumValue _enumint39_values[] = {
    {"EGL_RGB_BUFFER", EGL_RGB_BUFFER},
    {"EGL_LUMINANCE_BUFFER", EGL_LUMINANCE_BUFFER},
};

static const trace::EnumSig _enumint39_sig = {
    25, 2, _enumint39_values
};

static const trace::EnumValue _enumint40_values[] = {
    {"EGL_DONT_CARE", EGL_DONT_CARE},
    {"EGL_NONE", EGL_NONE},
    {"EGL_SLOW_CONFIG", EGL_SLOW_CONFIG},
    {"EGL_NON_CONFORMANT_CONFIG", EGL_NON_CONFORMANT_CONFIG},
};

static const trace::EnumSig _enumint40_sig = {
    26, 4, _enumint40_values
};

static const trace::BitmaskFlag _bitmaskint31_flags[] = {
    {"EGL_OPENGL_ES_BIT", (unsigned long long)EGL_OPENGL_ES_BIT},
    {"EGL_OPENVG_BIT", (unsigned long long)EGL_OPENVG_BIT},
    {"EGL_OPENGL_ES2_BIT", (unsigned long long)EGL_OPENGL_ES2_BIT},
    {"EGL_OPENGL_BIT", (unsigned long long)EGL_OPENGL_BIT},
    {"EGL_OPENGL_ES3_BIT", (unsigned long long)EGL_OPENGL_ES3_BIT},
};

static const trace::BitmaskSig _bitmaskint31_sig = {
    19, 5, _bitmaskint31_flags
};

static const trace::EnumValue _enumint41_values[] = {
    {"EGL_DONT_CARE", EGL_DONT_CARE},
    {"EGL_TRUE", EGL_TRUE},
    {"EGL_FALSE", EGL_FALSE},
};

static const trace::EnumSig _enumint41_sig = {
    27, 3, _enumint41_values
};

static const trace::BitmaskFlag _bitmaskint30_flags[] = {
    {"EGL_MULTISAMPLE_RESOLVE_BOX_BIT", (unsigned long long)EGL_MULTISAMPLE_RESOLVE_BOX_BIT},
    {"EGL_PBUFFER_BIT", (unsigned long long)EGL_PBUFFER_BIT},
    {"EGL_PIXMAP_BIT", (unsigned long long)EGL_PIXMAP_BIT},
    {"EGL_SWAP_BEHAVIOR_PRESERVED_BIT", (unsigned long long)EGL_SWAP_BEHAVIOR_PRESERVED_BIT},
    {"EGL_VG_ALPHA_FORMAT_PRE_BIT", (unsigned long long)EGL_VG_ALPHA_FORMAT_PRE_BIT},
    {"EGL_VG_COLORSPACE_LINEAR_BIT", (unsigned long long)EGL_VG_COLORSPACE_LINEAR_BIT},
    {"EGL_WINDOW_BIT", (unsigned long long)EGL_WINDOW_BIT},
};

static const trace::BitmaskSig _bitmaskint30_sig = {
    18, 7, _bitmaskint30_flags
};

static const trace::EnumValue _enumint42_values[] = {
    {"EGL_NONE", EGL_NONE},
    {"EGL_TRANSPARENT_RGB", EGL_TRANSPARENT_RGB},
};

static const trace::EnumSig _enumint42_sig = {
    28, 2, _enumint42_values
};

static const trace::EnumValue _enumEGLenum_values[] = {
    {"EGL_DISPLAY_SCALING", EGL_DISPLAY_SCALING},
    {"EGL_SUCCESS", EGL_SUCCESS},
    {"EGL_NOT_INITIALIZED", EGL_NOT_INITIALIZED},
    {"EGL_BAD_ACCESS", EGL_BAD_ACCESS},
    {"EGL_BAD_ALLOC", EGL_BAD_ALLOC},
    {"EGL_BAD_ATTRIBUTE", EGL_BAD_ATTRIBUTE},
    {"EGL_BAD_CONFIG", EGL_BAD_CONFIG},
    {"EGL_BAD_CONTEXT", EGL_BAD_CONTEXT},
    {"EGL_BAD_CURRENT_SURFACE", EGL_BAD_CURRENT_SURFACE},
    {"EGL_BAD_DISPLAY", EGL_BAD_DISPLAY},
    {"EGL_BAD_MATCH", EGL_BAD_MATCH},
    {"EGL_BAD_NATIVE_PIXMAP", EGL_BAD_NATIVE_PIXMAP},
    {"EGL_BAD_NATIVE_WINDOW", EGL_BAD_NATIVE_WINDOW},
    {"EGL_BAD_PARAMETER", EGL_BAD_PARAMETER},
    {"EGL_BAD_SURFACE", EGL_BAD_SURFACE},
    {"EGL_CONTEXT_LOST", EGL_CONTEXT_LOST},
    {"EGL_BUFFER_SIZE", EGL_BUFFER_SIZE},
    {"EGL_ALPHA_SIZE", EGL_ALPHA_SIZE},
    {"EGL_BLUE_SIZE", EGL_BLUE_SIZE},
    {"EGL_GREEN_SIZE", EGL_GREEN_SIZE},
    {"EGL_RED_SIZE", EGL_RED_SIZE},
    {"EGL_DEPTH_SIZE", EGL_DEPTH_SIZE},
    {"EGL_STENCIL_SIZE", EGL_STENCIL_SIZE},
    {"EGL_CONFIG_CAVEAT", EGL_CONFIG_CAVEAT},
    {"EGL_CONFIG_ID", EGL_CONFIG_ID},
    {"EGL_LEVEL", EGL_LEVEL},
    {"EGL_MAX_PBUFFER_HEIGHT", EGL_MAX_PBUFFER_HEIGHT},
    {"EGL_MAX_PBUFFER_PIXELS", EGL_MAX_PBUFFER_PIXELS},
    {"EGL_MAX_PBUFFER_WIDTH", EGL_MAX_PBUFFER_WIDTH},
    {"EGL_NATIVE_RENDERABLE", EGL_NATIVE_RENDERABLE},
    {"EGL_NATIVE_VISUAL_ID", EGL_NATIVE_VISUAL_ID},
    {"EGL_NATIVE_VISUAL_TYPE", EGL_NATIVE_VISUAL_TYPE},
    {"EGL_SAMPLES", EGL_SAMPLES},
    {"EGL_SAMPLE_BUFFERS", EGL_SAMPLE_BUFFERS},
    {"EGL_SURFACE_TYPE", EGL_SURFACE_TYPE},
    {"EGL_TRANSPARENT_TYPE", EGL_TRANSPARENT_TYPE},
    {"EGL_TRANSPARENT_BLUE_VALUE", EGL_TRANSPARENT_BLUE_VALUE},
    {"EGL_TRANSPARENT_GREEN_VALUE", EGL_TRANSPARENT_GREEN_VALUE},
    {"EGL_TRANSPARENT_RED_VALUE", EGL_TRANSPARENT_RED_VALUE},
    {"EGL_NONE", EGL_NONE},
    {"EGL_BIND_TO_TEXTURE_RGB", EGL_BIND_TO_TEXTURE_RGB},
    {"EGL_BIND_TO_TEXTURE_RGBA", EGL_BIND_TO_TEXTURE_RGBA},
    {"EGL_MIN_SWAP_INTERVAL", EGL_MIN_SWAP_INTERVAL},
    {"EGL_MAX_SWAP_INTERVAL", EGL_MAX_SWAP_INTERVAL},
    {"EGL_LUMINANCE_SIZE", EGL_LUMINANCE_SIZE},
    {"EGL_ALPHA_MASK_SIZE", EGL_ALPHA_MASK_SIZE},
    {"EGL_COLOR_BUFFER_TYPE", EGL_COLOR_BUFFER_TYPE},
    {"EGL_RENDERABLE_TYPE", EGL_RENDERABLE_TYPE},
    {"EGL_MATCH_NATIVE_PIXMAP", EGL_MATCH_NATIVE_PIXMAP},
    {"EGL_CONFORMANT", EGL_CONFORMANT},
    {"EGL_MATCH_FORMAT_KHR", EGL_MATCH_FORMAT_KHR},
    {"EGL_SLOW_CONFIG", EGL_SLOW_CONFIG},
    {"EGL_NON_CONFORMANT_CONFIG", EGL_NON_CONFORMANT_CONFIG},
    {"EGL_TRANSPARENT_RGB", EGL_TRANSPARENT_RGB},
    {"EGL_VENDOR", EGL_VENDOR},
    {"EGL_VERSION", EGL_VERSION},
    {"EGL_EXTENSIONS", EGL_EXTENSIONS},
    {"EGL_HEIGHT", EGL_HEIGHT},
    {"EGL_WIDTH", EGL_WIDTH},
    {"EGL_LARGEST_PBUFFER", EGL_LARGEST_PBUFFER},
    {"EGL_DRAW", EGL_DRAW},
    {"EGL_READ", EGL_READ},
    {"EGL_CORE_NATIVE_ENGINE", EGL_CORE_NATIVE_ENGINE},
    {"EGL_NO_TEXTURE", EGL_NO_TEXTURE},
    {"EGL_TEXTURE_RGB", EGL_TEXTURE_RGB},
    {"EGL_TEXTURE_RGBA", EGL_TEXTURE_RGBA},
    {"EGL_TEXTURE_2D", EGL_TEXTURE_2D},
    {"EGL_Y_INVERTED_NOK", EGL_Y_INVERTED_NOK},
    {"EGL_TEXTURE_FORMAT", EGL_TEXTURE_FORMAT},
    {"EGL_TEXTURE_TARGET", EGL_TEXTURE_TARGET},
    {"EGL_MIPMAP_TEXTURE", EGL_MIPMAP_TEXTURE},
    {"EGL_MIPMAP_LEVEL", EGL_MIPMAP_LEVEL},
    {"EGL_BACK_BUFFER", EGL_BACK_BUFFER},
    {"EGL_SINGLE_BUFFER", EGL_SINGLE_BUFFER},
    {"EGL_RENDER_BUFFER", EGL_RENDER_BUFFER},
    {"EGL_COLORSPACE", EGL_COLORSPACE},
    {"EGL_ALPHA_FORMAT", EGL_ALPHA_FORMAT},
    {"EGL_COLORSPACE_sRGB", EGL_COLORSPACE_sRGB},
    {"EGL_COLORSPACE_LINEAR", EGL_COLORSPACE_LINEAR},
    {"EGL_ALPHA_FORMAT_NONPRE", EGL_ALPHA_FORMAT_NONPRE},
    {"EGL_ALPHA_FORMAT_PRE", EGL_ALPHA_FORMAT_PRE},
    {"EGL_CLIENT_APIS", EGL_CLIENT_APIS},
    {"EGL_RGB_BUFFER", EGL_RGB_BUFFER},
    {"EGL_LUMINANCE_BUFFER", EGL_LUMINANCE_BUFFER},
    {"EGL_HORIZONTAL_RESOLUTION", EGL_HORIZONTAL_RESOLUTION},
    {"EGL_VERTICAL_RESOLUTION", EGL_VERTICAL_RESOLUTION},
    {"EGL_PIXEL_ASPECT_RATIO", EGL_PIXEL_ASPECT_RATIO},
    {"EGL_SWAP_BEHAVIOR", EGL_SWAP_BEHAVIOR},
    {"EGL_BUFFER_PRESERVED", EGL_BUFFER_PRESERVED},
    {"EGL_BUFFER_DESTROYED", EGL_BUFFER_DESTROYED},
    {"EGL_OPENVG_IMAGE", EGL_OPENVG_IMAGE},
    {"EGL_CONTEXT_CLIENT_TYPE", EGL_CONTEXT_CLIENT_TYPE},
    {"EGL_CONTEXT_MAJOR_VERSION", EGL_CONTEXT_MAJOR_VERSION},
    {"EGL_MULTISAMPLE_RESOLVE", EGL_MULTISAMPLE_RESOLVE},
    {"EGL_MULTISAMPLE_RESOLVE_DEFAULT", EGL_MULTISAMPLE_RESOLVE_DEFAULT},
    {"EGL_MULTISAMPLE_RESOLVE_BOX", EGL_MULTISAMPLE_RESOLVE_BOX},
    {"EGL_CL_EVENT_HANDLE", EGL_CL_EVENT_HANDLE},
    {"EGL_GL_COLORSPACE", EGL_GL_COLORSPACE},
    {"EGL_OPENGL_ES_API", EGL_OPENGL_ES_API},
    {"EGL_OPENVG_API", EGL_OPENVG_API},
    {"EGL_OPENGL_API", EGL_OPENGL_API},
    {"EGL_NATIVE_PIXMAP_KHR", EGL_NATIVE_PIXMAP_KHR},
    {"EGL_GL_TEXTURE_2D", EGL_GL_TEXTURE_2D},
    {"EGL_GL_TEXTURE_3D", EGL_GL_TEXTURE_3D},
    {"EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X", EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X},
    {"EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X", EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X},
    {"EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y", EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y},
    {"EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y},
    {"EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z", EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z},
    {"EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z},
    {"EGL_GL_RENDERBUFFER", EGL_GL_RENDERBUFFER},
    {"EGL_VG_PARENT_IMAGE_KHR", EGL_VG_PARENT_IMAGE_KHR},
    {"EGL_GL_TEXTURE_LEVEL", EGL_GL_TEXTURE_LEVEL},
    {"EGL_GL_TEXTURE_ZOFFSET", EGL_GL_TEXTURE_ZOFFSET},
    {"EGL_POST_SUB_BUFFER_SUPPORTED_NV", EGL_POST_SUB_BUFFER_SUPPORTED_NV},
    {"EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT", EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT},
    {"EGL_FORMAT_RGB_565_EXACT_KHR", EGL_FORMAT_RGB_565_EXACT_KHR},
    {"EGL_FORMAT_RGB_565_KHR", EGL_FORMAT_RGB_565_KHR},
    {"EGL_FORMAT_RGBA_8888_EXACT_KHR", EGL_FORMAT_RGBA_8888_EXACT_KHR},
    {"EGL_FORMAT_RGBA_8888_KHR", EGL_FORMAT_RGBA_8888_KHR},
    {"EGL_MAP_PRESERVE_PIXELS_KHR", EGL_MAP_PRESERVE_PIXELS_KHR},
    {"EGL_LOCK_USAGE_HINT_KHR", EGL_LOCK_USAGE_HINT_KHR},
    {"EGL_BITMAP_POINTER_KHR", EGL_BITMAP_POINTER_KHR},
    {"EGL_BITMAP_PITCH_KHR", EGL_BITMAP_PITCH_KHR},
    {"EGL_BITMAP_ORIGIN_KHR", EGL_BITMAP_ORIGIN_KHR},
    {"EGL_BITMAP_PIXEL_RED_OFFSET_KHR", EGL_BITMAP_PIXEL_RED_OFFSET_KHR},
    {"EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR", EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR},
    {"EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR", EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR},
    {"EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR", EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR},
    {"EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR", EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR},
    {"EGL_LOWER_LEFT_KHR", EGL_LOWER_LEFT_KHR},
    {"EGL_UPPER_LEFT_KHR", EGL_UPPER_LEFT_KHR},
    {"EGL_IMAGE_PRESERVED", EGL_IMAGE_PRESERVED},
    {"EGL_COVERAGE_BUFFERS_NV", EGL_COVERAGE_BUFFERS_NV},
    {"EGL_COVERAGE_SAMPLES_NV", EGL_COVERAGE_SAMPLES_NV},
    {"EGL_DEPTH_ENCODING_NV", EGL_DEPTH_ENCODING_NV},
    {"EGL_DEPTH_ENCODING_NONLINEAR_NV", EGL_DEPTH_ENCODING_NONLINEAR_NV},
    {"EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV", EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV},
    {"EGL_SYNC_STATUS_NV", EGL_SYNC_STATUS_NV},
    {"EGL_SIGNALED_NV", EGL_SIGNALED_NV},
    {"EGL_UNSIGNALED_NV", EGL_UNSIGNALED_NV},
    {"EGL_ALREADY_SIGNALED_NV", EGL_ALREADY_SIGNALED_NV},
    {"EGL_TIMEOUT_EXPIRED_NV", EGL_TIMEOUT_EXPIRED_NV},
    {"EGL_CONDITION_SATISFIED_NV", EGL_CONDITION_SATISFIED_NV},
    {"EGL_SYNC_TYPE_NV", EGL_SYNC_TYPE_NV},
    {"EGL_SYNC_CONDITION_NV", EGL_SYNC_CONDITION_NV},
    {"EGL_SYNC_FENCE_NV", EGL_SYNC_FENCE_NV},
    {"EGL_SYNC_PRIOR_COMMANDS_COMPLETE", EGL_SYNC_PRIOR_COMMANDS_COMPLETE},
    {"EGL_SYNC_STATUS", EGL_SYNC_STATUS},
    {"EGL_SIGNALED", EGL_SIGNALED},
    {"EGL_UNSIGNALED", EGL_UNSIGNALED},
    {"EGL_TIMEOUT_EXPIRED", EGL_TIMEOUT_EXPIRED},
    {"EGL_CONDITION_SATISFIED", EGL_CONDITION_SATISFIED},
    {"EGL_SYNC_TYPE", EGL_SYNC_TYPE},
    {"EGL_SYNC_CONDITION", EGL_SYNC_CONDITION},
    {"EGL_SYNC_FENCE", EGL_SYNC_FENCE},
    {"EGL_SYNC_REUSABLE_KHR", EGL_SYNC_REUSABLE_KHR},
    {"EGL_CONTEXT_MINOR_VERSION", EGL_CONTEXT_MINOR_VERSION},
    {"EGL_CONTEXT_FLAGS_KHR", EGL_CONTEXT_FLAGS_KHR},
    {"EGL_CONTEXT_OPENGL_PROFILE_MASK", EGL_CONTEXT_OPENGL_PROFILE_MASK},
    {"EGL_SYNC_CL_EVENT", EGL_SYNC_CL_EVENT},
    {"EGL_SYNC_CL_EVENT_COMPLETE", EGL_SYNC_CL_EVENT_COMPLETE},
    {"EGL_CONTEXT_PRIORITY_LEVEL_IMG", EGL_CONTEXT_PRIORITY_LEVEL_IMG},
    {"EGL_CONTEXT_PRIORITY_HIGH_IMG", EGL_CONTEXT_PRIORITY_HIGH_IMG},
    {"EGL_CONTEXT_PRIORITY_MEDIUM_IMG", EGL_CONTEXT_PRIORITY_MEDIUM_IMG},
    {"EGL_CONTEXT_PRIORITY_LOW_IMG", EGL_CONTEXT_PRIORITY_LOW_IMG},
    {"EGL_BITMAP_PIXEL_SIZE_KHR", EGL_BITMAP_PIXEL_SIZE_KHR},
    {"EGL_COVERAGE_SAMPLE_RESOLVE_NV", EGL_COVERAGE_SAMPLE_RESOLVE_NV},
    {"EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV", EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV},
    {"EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV", EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV},
    {"EGL_MULTIVIEW_VIEW_COUNT_EXT", EGL_MULTIVIEW_VIEW_COUNT_EXT},
    {"EGL_AUTO_STEREO_NV", EGL_AUTO_STEREO_NV},
    {"EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT", EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT},
    {"EGL_BUFFER_AGE_KHR", EGL_BUFFER_AGE_KHR},
    {"EGL_PLATFORM_DEVICE_EXT", EGL_PLATFORM_DEVICE_EXT},
    {"EGL_NATIVE_BUFFER_ANDROID", EGL_NATIVE_BUFFER_ANDROID},
    {"EGL_PLATFORM_ANDROID_KHR", EGL_PLATFORM_ANDROID_KHR},
    {"EGL_RECORDABLE_ANDROID", EGL_RECORDABLE_ANDROID},
    {"EGL_SYNC_NATIVE_FENCE_ANDROID", EGL_SYNC_NATIVE_FENCE_ANDROID},
    {"EGL_SYNC_NATIVE_FENCE_FD_ANDROID", EGL_SYNC_NATIVE_FENCE_FD_ANDROID},
    {"EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID", EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID},
    {"EGL_FRAMEBUFFER_TARGET_ANDROID", EGL_FRAMEBUFFER_TARGET_ANDROID},
    {"EGL_CONTEXT_OPENGL_DEBUG", EGL_CONTEXT_OPENGL_DEBUG},
    {"EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE", EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE},
    {"EGL_CONTEXT_OPENGL_ROBUST_ACCESS", EGL_CONTEXT_OPENGL_ROBUST_ACCESS},
    {"EGL_CONTEXT_OPENGL_NO_ERROR_KHR", EGL_CONTEXT_OPENGL_NO_ERROR_KHR},
    {"EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR", EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR},
    {"EGL_NO_RESET_NOTIFICATION", EGL_NO_RESET_NOTIFICATION},
    {"EGL_LOSE_CONTEXT_ON_RESET", EGL_LOSE_CONTEXT_ON_RESET},
    {"EGL_DRM_BUFFER_FORMAT_MESA", EGL_DRM_BUFFER_FORMAT_MESA},
    {"EGL_DRM_BUFFER_USE_MESA", EGL_DRM_BUFFER_USE_MESA},
    {"EGL_DRM_BUFFER_FORMAT_ARGB32_MESA", EGL_DRM_BUFFER_FORMAT_ARGB32_MESA},
    {"EGL_DRM_BUFFER_MESA", EGL_DRM_BUFFER_MESA},
    {"EGL_DRM_BUFFER_STRIDE_MESA", EGL_DRM_BUFFER_STRIDE_MESA},
    {"EGL_PLATFORM_X11_KHR", EGL_PLATFORM_X11_KHR},
    {"EGL_WAYLAND_BUFFER_WL", EGL_WAYLAND_BUFFER_WL},
    {"EGL_PLATFORM_X11_SCREEN_KHR", EGL_PLATFORM_X11_SCREEN_KHR},
    {"EGL_WAYLAND_PLANE_WL", EGL_WAYLAND_PLANE_WL},
    {"EGL_PLATFORM_GBM_KHR", EGL_PLATFORM_GBM_KHR},
    {"EGL_TEXTURE_Y_U_V_WL", EGL_TEXTURE_Y_U_V_WL},
    {"EGL_PLATFORM_WAYLAND_KHR", EGL_PLATFORM_WAYLAND_KHR},
    {"EGL_TEXTURE_Y_UV_WL", EGL_TEXTURE_Y_UV_WL},
    {"EGL_TEXTURE_Y_XUXV_WL", EGL_TEXTURE_Y_XUXV_WL},
    {"EGL_TEXTURE_EXTERNAL_WL", EGL_TEXTURE_EXTERNAL_WL},
    {"EGL_WAYLAND_Y_INVERTED_WL", EGL_WAYLAND_Y_INVERTED_WL},
    {"EGL_STREAM_FIFO_LENGTH_KHR", EGL_STREAM_FIFO_LENGTH_KHR},
    {"EGL_STREAM_TIME_NOW_KHR", EGL_STREAM_TIME_NOW_KHR},
    {"EGL_STREAM_TIME_CONSUMER_KHR", EGL_STREAM_TIME_CONSUMER_KHR},
    {"EGL_STREAM_TIME_PRODUCER_KHR", EGL_STREAM_TIME_PRODUCER_KHR},
    {"EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE", EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE},
    {"EGL_FIXED_SIZE_ANGLE", EGL_FIXED_SIZE_ANGLE},
    {"EGL_CONSUMER_LATENCY_USEC_KHR", EGL_CONSUMER_LATENCY_USEC_KHR},
    {"EGL_PRODUCER_FRAME_KHR", EGL_PRODUCER_FRAME_KHR},
    {"EGL_CONSUMER_FRAME_KHR", EGL_CONSUMER_FRAME_KHR},
    {"EGL_STREAM_STATE_KHR", EGL_STREAM_STATE_KHR},
    {"EGL_STREAM_STATE_CREATED_KHR", EGL_STREAM_STATE_CREATED_KHR},
    {"EGL_STREAM_STATE_CONNECTING_KHR", EGL_STREAM_STATE_CONNECTING_KHR},
    {"EGL_STREAM_STATE_EMPTY_KHR", EGL_STREAM_STATE_EMPTY_KHR},
    {"EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR", EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR},
    {"EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR", EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR},
    {"EGL_STREAM_STATE_DISCONNECTED_KHR", EGL_STREAM_STATE_DISCONNECTED_KHR},
    {"EGL_BAD_STREAM_KHR", EGL_BAD_STREAM_KHR},
    {"EGL_BAD_STATE_KHR", EGL_BAD_STATE_KHR},
    {"EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR", EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR},
    {"EGL_SYNC_NEW_FRAME_NV", EGL_SYNC_NEW_FRAME_NV},
    {"EGL_BAD_DEVICE_EXT", EGL_BAD_DEVICE_EXT},
    {"EGL_DEVICE_EXT", EGL_DEVICE_EXT},
    {"EGL_BAD_OUTPUT_LAYER_EXT", EGL_BAD_OUTPUT_LAYER_EXT},
    {"EGL_BAD_OUTPUT_PORT_EXT", EGL_BAD_OUTPUT_PORT_EXT},
    {"EGL_SWAP_INTERVAL_EXT", EGL_SWAP_INTERVAL_EXT},
    {"EGL_DRM_DEVICE_FILE_EXT", EGL_DRM_DEVICE_FILE_EXT},
    {"EGL_DRM_CRTC_EXT", EGL_DRM_CRTC_EXT},
    {"EGL_DRM_PLANE_EXT", EGL_DRM_PLANE_EXT},
    {"EGL_DRM_CONNECTOR_EXT", EGL_DRM_CONNECTOR_EXT},
    {"EGL_OPENWF_DEVICE_ID_EXT", EGL_OPENWF_DEVICE_ID_EXT},
    {"EGL_OPENWF_PIPELINE_ID_EXT", EGL_OPENWF_PIPELINE_ID_EXT},
    {"EGL_OPENWF_PORT_ID_EXT", EGL_OPENWF_PORT_ID_EXT},
    {"EGL_LINUX_DMA_BUF_EXT", EGL_LINUX_DMA_BUF_EXT},
    {"EGL_LINUX_DRM_FOURCC_EXT", EGL_LINUX_DRM_FOURCC_EXT},
    {"EGL_DMA_BUF_PLANE0_FD_EXT", EGL_DMA_BUF_PLANE0_FD_EXT},
    {"EGL_DMA_BUF_PLANE0_OFFSET_EXT", EGL_DMA_BUF_PLANE0_OFFSET_EXT},
    {"EGL_DMA_BUF_PLANE0_PITCH_EXT", EGL_DMA_BUF_PLANE0_PITCH_EXT},
    {"EGL_DMA_BUF_PLANE1_FD_EXT", EGL_DMA_BUF_PLANE1_FD_EXT},
    {"EGL_DMA_BUF_PLANE1_OFFSET_EXT", EGL_DMA_BUF_PLANE1_OFFSET_EXT},
    {"EGL_DMA_BUF_PLANE1_PITCH_EXT", EGL_DMA_BUF_PLANE1_PITCH_EXT},
    {"EGL_DMA_BUF_PLANE2_FD_EXT", EGL_DMA_BUF_PLANE2_FD_EXT},
    {"EGL_DMA_BUF_PLANE2_OFFSET_EXT", EGL_DMA_BUF_PLANE2_OFFSET_EXT},
    {"EGL_DMA_BUF_PLANE2_PITCH_EXT", EGL_DMA_BUF_PLANE2_PITCH_EXT},
    {"EGL_YUV_COLOR_SPACE_HINT_EXT", EGL_YUV_COLOR_SPACE_HINT_EXT},
    {"EGL_SAMPLE_RANGE_HINT_EXT", EGL_SAMPLE_RANGE_HINT_EXT},
    {"EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT", EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT},
    {"EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT", EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT},
    {"EGL_ITU_REC601_EXT", EGL_ITU_REC601_EXT},
    {"EGL_ITU_REC709_EXT", EGL_ITU_REC709_EXT},
    {"EGL_ITU_REC2020_EXT", EGL_ITU_REC2020_EXT},
    {"EGL_YUV_FULL_RANGE_EXT", EGL_YUV_FULL_RANGE_EXT},
    {"EGL_YUV_NARROW_RANGE_EXT", EGL_YUV_NARROW_RANGE_EXT},
    {"EGL_YUV_CHROMA_SITING_0_EXT", EGL_YUV_CHROMA_SITING_0_EXT},
    {"EGL_YUV_CHROMA_SITING_0_5_EXT", EGL_YUV_CHROMA_SITING_0_5_EXT},
    {"EGL_DISCARD_SAMPLES_ARM", EGL_DISCARD_SAMPLES_ARM},
    {"EGL_SURFACE_COMPRESSION_PLANE1_EXT", EGL_SURFACE_COMPRESSION_PLANE1_EXT},
    {"EGL_SURFACE_COMPRESSION_PLANE2_EXT", EGL_SURFACE_COMPRESSION_PLANE2_EXT},
    {"EGL_PROTECTED_CONTENT_EXT", EGL_PROTECTED_CONTENT_EXT},
    {"EGL_YUV_BUFFER_EXT", EGL_YUV_BUFFER_EXT},
    {"EGL_YUV_ORDER_EXT", EGL_YUV_ORDER_EXT},
    {"EGL_YUV_ORDER_YUV_EXT", EGL_YUV_ORDER_YUV_EXT},
    {"EGL_YUV_ORDER_YVU_EXT", EGL_YUV_ORDER_YVU_EXT},
    {"EGL_YUV_ORDER_YUYV_EXT", EGL_YUV_ORDER_YUYV_EXT},
    {"EGL_YUV_ORDER_UYVY_EXT", EGL_YUV_ORDER_UYVY_EXT},
    {"EGL_YUV_ORDER_YVYU_EXT", EGL_YUV_ORDER_YVYU_EXT},
    {"EGL_YUV_ORDER_VYUY_EXT", EGL_YUV_ORDER_VYUY_EXT},
    {"EGL_YUV_ORDER_AYUV_EXT", EGL_YUV_ORDER_AYUV_EXT},
    {"EGL_YUV_CSC_STANDARD_EXT", EGL_YUV_CSC_STANDARD_EXT},
    {"EGL_YUV_CSC_STANDARD_601_EXT", EGL_YUV_CSC_STANDARD_601_EXT},
    {"EGL_YUV_CSC_STANDARD_709_EXT", EGL_YUV_CSC_STANDARD_709_EXT},
    {"EGL_YUV_CSC_STANDARD_2020_EXT", EGL_YUV_CSC_STANDARD_2020_EXT},
    {"EGL_YUV_NUMBER_OF_PLANES_EXT", EGL_YUV_NUMBER_OF_PLANES_EXT},
    {"EGL_YUV_SUBSAMPLE_EXT", EGL_YUV_SUBSAMPLE_EXT},
    {"EGL_YUV_SUBSAMPLE_4_2_0_EXT", EGL_YUV_SUBSAMPLE_4_2_0_EXT},
    {"EGL_YUV_SUBSAMPLE_4_2_2_EXT", EGL_YUV_SUBSAMPLE_4_2_2_EXT},
    {"EGL_YUV_SUBSAMPLE_4_4_4_EXT", EGL_YUV_SUBSAMPLE_4_4_4_EXT},
    {"EGL_YUV_DEPTH_RANGE_EXT", EGL_YUV_DEPTH_RANGE_EXT},
    {"EGL_YUV_DEPTH_RANGE_LIMITED_EXT", EGL_YUV_DEPTH_RANGE_LIMITED_EXT},
    {"EGL_YUV_DEPTH_RANGE_FULL_EXT", EGL_YUV_DEPTH_RANGE_FULL_EXT},
    {"EGL_YUV_PLANE_BPP_EXT", EGL_YUV_PLANE_BPP_EXT},
    {"EGL_YUV_PLANE_BPP_0_EXT", EGL_YUV_PLANE_BPP_0_EXT},
    {"EGL_YUV_PLANE_BPP_8_EXT", EGL_YUV_PLANE_BPP_8_EXT},
    {"EGL_YUV_PLANE_BPP_10_EXT", EGL_YUV_PLANE_BPP_10_EXT},
    {"EGL_NV_context_priority_realtime", EGL_NV_context_priority_realtime},
    {"EGL_DRM_RENDER_NODE_FILE_EXT", EGL_DRM_RENDER_NODE_FILE_EXT},
    {"EGL_OBJECT_THREAD_KHR", EGL_OBJECT_THREAD_KHR},
    {"EGL_OBJECT_DISPLAY_KHR", EGL_OBJECT_DISPLAY_KHR},
    {"EGL_OBJECT_CONTEXT_KHR", EGL_OBJECT_CONTEXT_KHR},
    {"EGL_OBJECT_SURFACE_KHR", EGL_OBJECT_SURFACE_KHR},
    {"EGL_OBJECT_IMAGE_KHR", EGL_OBJECT_IMAGE_KHR},
    {"EGL_OBJECT_SYNC_KHR", EGL_OBJECT_SYNC_KHR},
    {"EGL_OBJECT_STREAM_KHR", EGL_OBJECT_STREAM_KHR},
    {"EGL_DEBUG_CALLBACK_KHR", EGL_DEBUG_CALLBACK_KHR},
    {"EGL_DEBUG_MSG_CRITICAL_KHR", EGL_DEBUG_MSG_CRITICAL_KHR},
    {"EGL_DEBUG_MSG_ERROR_KHR", EGL_DEBUG_MSG_ERROR_KHR},
    {"EGL_DEBUG_MSG_WARN_KHR", EGL_DEBUG_MSG_WARN_KHR},
    {"EGL_DEBUG_MSG_INFO_KHR", EGL_DEBUG_MSG_INFO_KHR},
    {"EGL_DMA_BUF_PLANE3_FD_EXT", EGL_DMA_BUF_PLANE3_FD_EXT},
    {"EGL_DMA_BUF_PLANE3_OFFSET_EXT", EGL_DMA_BUF_PLANE3_OFFSET_EXT},
    {"EGL_DMA_BUF_PLANE3_PITCH_EXT", EGL_DMA_BUF_PLANE3_PITCH_EXT},
    {"EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT", EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT},
    {"EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT", EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT},
    {"EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT", EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT},
    {"EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT", EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT},
    {"EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT", EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT},
    {"EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT", EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT},
    {"EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT", EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT},
    {"EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT", EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT},
    {"EGL_SURFACE_COMPRESSION_EXT", EGL_SURFACE_COMPRESSION_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT},
    {"EGL_COLOR_FORMAT_HI", EGL_COLOR_FORMAT_HI},
    {"EGL_COLOR_RGB_HI", EGL_COLOR_RGB_HI},
    {"EGL_COLOR_RGBA_HI", EGL_COLOR_RGBA_HI},
    {"EGL_COLOR_ARGB_HI", EGL_COLOR_ARGB_HI},
    {"EGL_CLIENT_PIXMAP_POINTER_HI", EGL_CLIENT_PIXMAP_POINTER_HI},
};

static const trace::EnumSig _enumEGLenum_sig = {
    16, 333, _enumEGLenum_values
};

static const trace::BitmaskFlag _bitmaskint44_flags[] = {
    {"EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR", (unsigned long long)EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR},
    {"EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR", (unsigned long long)EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR},
    {"EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR", (unsigned long long)EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR},
};

static const trace::BitmaskSig _bitmaskint44_sig = {
    20, 3, _bitmaskint44_flags
};

static const trace::BitmaskFlag _bitmaskint45_flags[] = {
    {"EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT", (unsigned long long)EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT},
    {"EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT", (unsigned long long)EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT},
};

static const trace::BitmaskSig _bitmaskint45_sig = {
    21, 2, _bitmaskint45_flags
};

static const trace::BitmaskFlag _bitmaskint46_flags[] = {
    {"EGL_CONTEXT_PRIORITY_HIGH_IMG", (unsigned long long)EGL_CONTEXT_PRIORITY_HIGH_IMG},
    {"EGL_CONTEXT_PRIORITY_MEDIUM_IMG", (unsigned long long)EGL_CONTEXT_PRIORITY_MEDIUM_IMG},
    {"EGL_CONTEXT_PRIORITY_LOW_IMG", (unsigned long long)EGL_CONTEXT_PRIORITY_LOW_IMG},
    {"EGL_CONTEXT_PRIORITY_REALTIME_NV", (unsigned long long)EGL_CONTEXT_PRIORITY_REALTIME_NV},
};

static const trace::BitmaskSig _bitmaskint46_sig = {
    22, 4, _bitmaskint46_flags
};

static const trace::EnumValue _enumint35_values[] = {
    {"EGL_NO_TEXTURE", EGL_NO_TEXTURE},
    {"EGL_TEXTURE_RGB", EGL_TEXTURE_RGB},
    {"EGL_TEXTURE_RGBA", EGL_TEXTURE_RGBA},
    {"EGL_TEXTURE_Y_U_V_WL", EGL_TEXTURE_Y_U_V_WL},
    {"EGL_TEXTURE_Y_UV_WL", EGL_TEXTURE_Y_UV_WL},
    {"EGL_TEXTURE_Y_XUXV_WL", EGL_TEXTURE_Y_XUXV_WL},
    {"EGL_TEXTURE_EXTERNAL_WL", EGL_TEXTURE_EXTERNAL_WL},
};

static const trace::EnumSig _enumint35_sig = {
    21, 7, _enumint35_values
};

static const trace::EnumValue _enumint34_values[] = {
    {"EGL_TEXTURE_2D", EGL_TEXTURE_2D},
    {"EGL_NO_TEXTURE", EGL_NO_TEXTURE},
};

static const trace::EnumSig _enumint34_sig = {
    20, 2, _enumint34_values
};

static const trace::EnumValue _enumint32_values[] = {
    {"EGL_VG_ALPHA_FORMAT_NONPRE", EGL_VG_ALPHA_FORMAT_NONPRE},
    {"EGL_VG_ALPHA_FORMAT_PRE", EGL_VG_ALPHA_FORMAT_PRE},
};

static const trace::EnumSig _enumint32_sig = {
    18, 2, _enumint32_values
};

static const trace::EnumValue _enumint33_values[] = {
    {"EGL_VG_COLORSPACE_sRGB", EGL_VG_COLORSPACE_sRGB},
    {"EGL_VG_COLORSPACE_LINEAR", EGL_VG_COLORSPACE_LINEAR},
};

static const trace::EnumSig _enumint33_sig = {
    19, 2, _enumint33_values
};

static const trace::EnumValue _enumint43_values[] = {
    {"EGL_SINGLE_BUFFER", EGL_SINGLE_BUFFER},
    {"EGL_BACK_BUFFER", EGL_BACK_BUFFER},
};

static const trace::EnumSig _enumint43_sig = {
    29, 2, _enumint43_values
};

static const trace::EnumValue _enumint38_values[] = {
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT},
    {"EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT", EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT},
};

static const trace::EnumSig _enumint38_sig = {
    24, 14, _enumint38_values
};

static const trace::EnumValue _enumint51_values[] = {
    {"EGL_ITU_REC601_EXT", EGL_ITU_REC601_EXT},
    {"EGL_ITU_REC709_EXT", EGL_ITU_REC709_EXT},
    {"EGL_ITU_REC2020_EXT", EGL_ITU_REC2020_EXT},
};

static const trace::EnumSig _enumint51_sig = {
    31, 3, _enumint51_values
};

static const trace::EnumValue _enumint52_values[] = {
    {"EGL_YUV_FULL_RANGE_EXT", EGL_YUV_FULL_RANGE_EXT},
    {"EGL_YUV_NARROW_RANGE_EXT", EGL_YUV_NARROW_RANGE_EXT},
};

static const trace::EnumSig _enumint52_sig = {
    32, 2, _enumint52_values
};

static const trace::EnumValue _enumint53_values[] = {
    {"EGL_YUV_CHROMA_SITING_0_EXT", EGL_YUV_CHROMA_SITING_0_EXT},
    {"EGL_YUV_CHROMA_SITING_0_5_EXT", EGL_YUV_CHROMA_SITING_0_5_EXT},
};

static const trace::EnumSig _enumint53_sig = {
    33, 2, _enumint53_values
};

static const trace::EnumValue _enumint54_values[] = {
    {"EGL_YUV_CHROMA_SITING_0_EXT", EGL_YUV_CHROMA_SITING_0_EXT},
    {"EGL_YUV_CHROMA_SITING_0_5_EXT", EGL_YUV_CHROMA_SITING_0_5_EXT},
};

static const trace::EnumSig _enumint54_sig = {
    34, 2, _enumint54_values
};

static const trace::BitmaskFlag _bitmaskint29_flags[] = {
};

static const trace::BitmaskSig _bitmaskint29_sig = {
    17, 0, _bitmaskint29_flags
};

static const trace::BitmaskFlag _bitmaskEGLuint64KHR1_flags[] = {
};

static const trace::BitmaskSig _bitmaskEGLuint64KHR1_sig = {
    16, 0, _bitmaskEGLuint64KHR1_flags
};

static const char * _structstructEGLClientPixmapHI_members[4] = {
    "pData",
    "iWidth",
    "iHeight",
    "iStride",
};
static const trace::StructSig _structstructEGLClientPixmapHI_sig = {
    1, "struct EGLClientPixmapHI", 4, _structstructEGLClientPixmapHI_members
};

static const trace::BitmaskFlag _bitmaskint49_flags[] = {
    {"EGL_READ_SURFACE_BIT_KHR", (unsigned long long)EGL_READ_SURFACE_BIT_KHR},
    {"EGL_WRITE_SURFACE_BIT_KHR", (unsigned long long)EGL_WRITE_SURFACE_BIT_KHR},
};

static const trace::BitmaskSig _bitmaskint49_sig = {
    24, 2, _bitmaskint49_flags
};

static const trace::BitmaskFlag _bitmaskint50_flags[] = {
    {"EGL_SIGNALED_NV", (unsigned long long)EGL_SIGNALED_NV},
    {"EGL_UNSIGNALED_NV", (unsigned long long)EGL_UNSIGNALED_NV},
};

static const trace::BitmaskSig _bitmaskint50_sig = {
    25, 2, _bitmaskint50_flags
};

static const trace::EnumValue _enumint47_values[] = {
    {"EGL_DRM_BUFFER_FORMAT_ARGB32_MESA", EGL_DRM_BUFFER_FORMAT_ARGB32_MESA},
};

static const trace::EnumSig _enumint47_sig = {
    30, 1, _enumint47_values
};

static const trace::BitmaskFlag _bitmaskint48_flags[] = {
    {"EGL_DRM_BUFFER_USE_SCANOUT_MESA", (unsigned long long)EGL_DRM_BUFFER_USE_SCANOUT_MESA},
    {"EGL_DRM_BUFFER_USE_SHARE_MESA", (unsigned long long)EGL_DRM_BUFFER_USE_SHARE_MESA},
};

static const trace::BitmaskSig _bitmaskint48_sig = {
    23, 2, _bitmaskint48_flags
};

static const trace::EnumValue _enumGLenum_values[] = {
    {"GL_ZERO", GL_ZERO},
    {"GL_ONE", GL_ONE},
    {"GL_RESTART_PATH_NV", GL_RESTART_PATH_NV},
    {"GL_DUP_FIRST_CUBIC_CURVE_TO_NV", GL_DUP_FIRST_CUBIC_CURVE_TO_NV},
    {"GL_DUP_LAST_CUBIC_CURVE_TO_NV", GL_DUP_LAST_CUBIC_CURVE_TO_NV},
    {"GL_RECT_NV", GL_RECT_NV},
    {"GL_RELATIVE_RECT_NV", GL_RELATIVE_RECT_NV},
    {"GL_CIRCULAR_CCW_ARC_TO_NV", GL_CIRCULAR_CCW_ARC_TO_NV},
    {"GL_CIRCULAR_CW_ARC_TO_NV", GL_CIRCULAR_CW_ARC_TO_NV},
    {"GL_CIRCULAR_TANGENT_ARC_TO_NV", GL_CIRCULAR_TANGENT_ARC_TO_NV},
    {"GL_ARC_TO_NV", GL_ARC_TO_NV},
    {"GL_RELATIVE_ARC_TO_NV", GL_RELATIVE_ARC_TO_NV},
    {"GL_ACCUM", GL_ACCUM},
    {"GL_LOAD", GL_LOAD},
    {"GL_RETURN", GL_RETURN},
    {"GL_MULT", GL_MULT},
    {"GL_ADD", GL_ADD},
    {"GL_NEVER", GL_NEVER},
    {"GL_LESS", GL_LESS},
    {"GL_EQUAL", GL_EQUAL},
    {"GL_LEQUAL", GL_LEQUAL},
    {"GL_GREATER", GL_GREATER},
    {"GL_NOTEQUAL", GL_NOTEQUAL},
    {"GL_GEQUAL", GL_GEQUAL},
    {"GL_ALWAYS", GL_ALWAYS},
    {"GL_SRC_COLOR", GL_SRC_COLOR},
    {"GL_ONE_MINUS_SRC_COLOR", GL_ONE_MINUS_SRC_COLOR},
    {"GL_SRC_ALPHA", GL_SRC_ALPHA},
    {"GL_ONE_MINUS_SRC_ALPHA", GL_ONE_MINUS_SRC_ALPHA},
    {"GL_DST_ALPHA", GL_DST_ALPHA},
    {"GL_ONE_MINUS_DST_ALPHA", GL_ONE_MINUS_DST_ALPHA},
    {"GL_DST_COLOR", GL_DST_COLOR},
    {"GL_ONE_MINUS_DST_COLOR", GL_ONE_MINUS_DST_COLOR},
    {"GL_SRC_ALPHA_SATURATE", GL_SRC_ALPHA_SATURATE},
    {"GL_FRONT_LEFT", GL_FRONT_LEFT},
    {"GL_FRONT_RIGHT", GL_FRONT_RIGHT},
    {"GL_BACK_LEFT", GL_BACK_LEFT},
    {"GL_BACK_RIGHT", GL_BACK_RIGHT},
    {"GL_FRONT", GL_FRONT},
    {"GL_BACK", GL_BACK},
    {"GL_LEFT", GL_LEFT},
    {"GL_RIGHT", GL_RIGHT},
    {"GL_FRONT_AND_BACK", GL_FRONT_AND_BACK},
    {"GL_AUX0", GL_AUX0},
    {"GL_AUX1", GL_AUX1},
    {"GL_AUX2", GL_AUX2},
    {"GL_AUX3", GL_AUX3},
    {"GL_INVALID_ENUM", GL_INVALID_ENUM},
    {"GL_INVALID_VALUE", GL_INVALID_VALUE},
    {"GL_INVALID_OPERATION", GL_INVALID_OPERATION},
    {"GL_STACK_OVERFLOW", GL_STACK_OVERFLOW},
    {"GL_STACK_UNDERFLOW", GL_STACK_UNDERFLOW},
    {"GL_OUT_OF_MEMORY", GL_OUT_OF_MEMORY},
    {"GL_INVALID_FRAMEBUFFER_OPERATION", GL_INVALID_FRAMEBUFFER_OPERATION},
    {"GL_CONTEXT_LOST", GL_CONTEXT_LOST},
    {"GL_2D", GL_2D},
    {"GL_3D", GL_3D},
    {"GL_3D_COLOR", GL_3D_COLOR},
    {"GL_3D_COLOR_TEXTURE", GL_3D_COLOR_TEXTURE},
    {"GL_4D_COLOR_TEXTURE", GL_4D_COLOR_TEXTURE},
    {"GL_PASS_THROUGH_TOKEN", GL_PASS_THROUGH_TOKEN},
    {"GL_POINT_TOKEN", GL_POINT_TOKEN},
    {"GL_LINE_TOKEN", GL_LINE_TOKEN},
    {"GL_POLYGON_TOKEN", GL_POLYGON_TOKEN},
    {"GL_BITMAP_TOKEN", GL_BITMAP_TOKEN},
    {"GL_DRAW_PIXEL_TOKEN", GL_DRAW_PIXEL_TOKEN},
    {"GL_COPY_PIXEL_TOKEN", GL_COPY_PIXEL_TOKEN},
    {"GL_LINE_RESET_TOKEN", GL_LINE_RESET_TOKEN},
    {"GL_EXP", GL_EXP},
    {"GL_EXP2", GL_EXP2},
    {"GL_CW", GL_CW},
    {"GL_CCW", GL_CCW},
    {"GL_COEFF", GL_COEFF},
    {"GL_ORDER", GL_ORDER},
    {"GL_DOMAIN", GL_DOMAIN},
    {"GL_CURRENT_COLOR", GL_CURRENT_COLOR},
    {"GL_CURRENT_INDEX", GL_CURRENT_INDEX},
    {"GL_CURRENT_NORMAL", GL_CURRENT_NORMAL},
    {"GL_CURRENT_TEXTURE_COORDS", GL_CURRENT_TEXTURE_COORDS},
    {"GL_CURRENT_RASTER_COLOR", GL_CURRENT_RASTER_COLOR},
    {"GL_CURRENT_RASTER_INDEX", GL_CURRENT_RASTER_INDEX},
    {"GL_CURRENT_RASTER_TEXTURE_COORDS", GL_CURRENT_RASTER_TEXTURE_COORDS},
    {"GL_CURRENT_RASTER_POSITION", GL_CURRENT_RASTER_POSITION},
    {"GL_CURRENT_RASTER_POSITION_VALID", GL_CURRENT_RASTER_POSITION_VALID},
    {"GL_CURRENT_RASTER_DISTANCE", GL_CURRENT_RASTER_DISTANCE},
    {"GL_POINT_SMOOTH", GL_POINT_SMOOTH},
    {"GL_POINT_SIZE", GL_POINT_SIZE},
    {"GL_POINT_SIZE_RANGE", GL_POINT_SIZE_RANGE},
    {"GL_POINT_SIZE_GRANULARITY", GL_POINT_SIZE_GRANULARITY},
    {"GL_LINE_SMOOTH", GL_LINE_SMOOTH},
    {"GL_LINE_WIDTH", GL_LINE_WIDTH},
    {"GL_LINE_WIDTH_RANGE", GL_LINE_WIDTH_RANGE},
    {"GL_LINE_WIDTH_GRANULARITY", GL_LINE_WIDTH_GRANULARITY},
    {"GL_LINE_STIPPLE", GL_LINE_STIPPLE},
    {"GL_LINE_STIPPLE_PATTERN", GL_LINE_STIPPLE_PATTERN},
    {"GL_LINE_STIPPLE_REPEAT", GL_LINE_STIPPLE_REPEAT},
    {"GL_LIST_MODE", GL_LIST_MODE},
    {"GL_MAX_LIST_NESTING", GL_MAX_LIST_NESTING},
    {"GL_LIST_BASE", GL_LIST_BASE},
    {"GL_LIST_INDEX", GL_LIST_INDEX},
    {"GL_POLYGON_MODE", GL_POLYGON_MODE},
    {"GL_POLYGON_SMOOTH", GL_POLYGON_SMOOTH},
    {"GL_POLYGON_STIPPLE", GL_POLYGON_STIPPLE},
    {"GL_EDGE_FLAG", GL_EDGE_FLAG},
    {"GL_CULL_FACE", GL_CULL_FACE},
    {"GL_CULL_FACE_MODE", GL_CULL_FACE_MODE},
    {"GL_FRONT_FACE", GL_FRONT_FACE},
    {"GL_LIGHTING", GL_LIGHTING},
    {"GL_LIGHT_MODEL_LOCAL_VIEWER", GL_LIGHT_MODEL_LOCAL_VIEWER},
    {"GL_LIGHT_MODEL_TWO_SIDE", GL_LIGHT_MODEL_TWO_SIDE},
    {"GL_LIGHT_MODEL_AMBIENT", GL_LIGHT_MODEL_AMBIENT},
    {"GL_SHADE_MODEL", GL_SHADE_MODEL},
    {"GL_COLOR_MATERIAL_FACE", GL_COLOR_MATERIAL_FACE},
    {"GL_COLOR_MATERIAL_PARAMETER", GL_COLOR_MATERIAL_PARAMETER},
    {"GL_COLOR_MATERIAL", GL_COLOR_MATERIAL},
    {"GL_FOG", GL_FOG},
    {"GL_FOG_INDEX", GL_FOG_INDEX},
    {"GL_FOG_DENSITY", GL_FOG_DENSITY},
    {"GL_FOG_START", GL_FOG_START},
    {"GL_FOG_END", GL_FOG_END},
    {"GL_FOG_MODE", GL_FOG_MODE},
    {"GL_FOG_COLOR", GL_FOG_COLOR},
    {"GL_DEPTH_RANGE", GL_DEPTH_RANGE},
    {"GL_DEPTH_TEST", GL_DEPTH_TEST},
    {"GL_DEPTH_WRITEMASK", GL_DEPTH_WRITEMASK},
    {"GL_DEPTH_CLEAR_VALUE", GL_DEPTH_CLEAR_VALUE},
    {"GL_DEPTH_FUNC", GL_DEPTH_FUNC},
    {"GL_ACCUM_CLEAR_VALUE", GL_ACCUM_CLEAR_VALUE},
    {"GL_STENCIL_TEST", GL_STENCIL_TEST},
    {"GL_STENCIL_CLEAR_VALUE", GL_STENCIL_CLEAR_VALUE},
    {"GL_STENCIL_FUNC", GL_STENCIL_FUNC},
    {"GL_STENCIL_VALUE_MASK", GL_STENCIL_VALUE_MASK},
    {"GL_STENCIL_FAIL", GL_STENCIL_FAIL},
    {"GL_STENCIL_PASS_DEPTH_FAIL", GL_STENCIL_PASS_DEPTH_FAIL},
    {"GL_STENCIL_PASS_DEPTH_PASS", GL_STENCIL_PASS_DEPTH_PASS},
    {"GL_STENCIL_REF", GL_STENCIL_REF},
    {"GL_STENCIL_WRITEMASK", GL_STENCIL_WRITEMASK},
    {"GL_MATRIX_MODE", GL_MATRIX_MODE},
    {"GL_NORMALIZE", GL_NORMALIZE},
    {"GL_VIEWPORT", GL_VIEWPORT},
    {"GL_MODELVIEW_STACK_DEPTH", GL_MODELVIEW_STACK_DEPTH},
    {"GL_PROJECTION_STACK_DEPTH", GL_PROJECTION_STACK_DEPTH},
    {"GL_TEXTURE_STACK_DEPTH", GL_TEXTURE_STACK_DEPTH},
    {"GL_MODELVIEW_MATRIX", GL_MODELVIEW_MATRIX},
    {"GL_PROJECTION_MATRIX", GL_PROJECTION_MATRIX},
    {"GL_TEXTURE_MATRIX", GL_TEXTURE_MATRIX},
    {"GL_ATTRIB_STACK_DEPTH", GL_ATTRIB_STACK_DEPTH},
    {"GL_CLIENT_ATTRIB_STACK_DEPTH", GL_CLIENT_ATTRIB_STACK_DEPTH},
    {"GL_ALPHA_TEST", GL_ALPHA_TEST},
    {"GL_ALPHA_TEST_FUNC", GL_ALPHA_TEST_FUNC},
    {"GL_ALPHA_TEST_REF", GL_ALPHA_TEST_REF},
    {"GL_DITHER", GL_DITHER},
    {"GL_BLEND_DST", GL_BLEND_DST},
    {"GL_BLEND_SRC", GL_BLEND_SRC},
    {"GL_BLEND", GL_BLEND},
    {"GL_LOGIC_OP_MODE", GL_LOGIC_OP_MODE},
    {"GL_INDEX_LOGIC_OP", GL_INDEX_LOGIC_OP},
    {"GL_COLOR_LOGIC_OP", GL_COLOR_LOGIC_OP},
    {"GL_AUX_BUFFERS", GL_AUX_BUFFERS},
    {"GL_DRAW_BUFFER", GL_DRAW_BUFFER},
    {"GL_READ_BUFFER", GL_READ_BUFFER},
    {"GL_SCISSOR_BOX", GL_SCISSOR_BOX},
    {"GL_SCISSOR_TEST", GL_SCISSOR_TEST},
    {"GL_INDEX_CLEAR_VALUE", GL_INDEX_CLEAR_VALUE},
    {"GL_INDEX_WRITEMASK", GL_INDEX_WRITEMASK},
    {"GL_COLOR_CLEAR_VALUE", GL_COLOR_CLEAR_VALUE},
    {"GL_COLOR_WRITEMASK", GL_COLOR_WRITEMASK},
    {"GL_INDEX_MODE", GL_INDEX_MODE},
    {"GL_RGBA_MODE", GL_RGBA_MODE},
    {"GL_DOUBLEBUFFER", GL_DOUBLEBUFFER},
    {"GL_STEREO", GL_STEREO},
    {"GL_RENDER_MODE", GL_RENDER_MODE},
    {"GL_PERSPECTIVE_CORRECTION_HINT", GL_PERSPECTIVE_CORRECTION_HINT},
    {"GL_POINT_SMOOTH_HINT", GL_POINT_SMOOTH_HINT},
    {"GL_LINE_SMOOTH_HINT", GL_LINE_SMOOTH_HINT},
    {"GL_POLYGON_SMOOTH_HINT", GL_POLYGON_SMOOTH_HINT},
    {"GL_FOG_HINT", GL_FOG_HINT},
    {"GL_TEXTURE_GEN_S", GL_TEXTURE_GEN_S},
    {"GL_TEXTURE_GEN_T", GL_TEXTURE_GEN_T},
    {"GL_TEXTURE_GEN_R", GL_TEXTURE_GEN_R},
    {"GL_TEXTURE_GEN_Q", GL_TEXTURE_GEN_Q},
    {"GL_PIXEL_MAP_I_TO_I", GL_PIXEL_MAP_I_TO_I},
    {"GL_PIXEL_MAP_S_TO_S", GL_PIXEL_MAP_S_TO_S},
    {"GL_PIXEL_MAP_I_TO_R", GL_PIXEL_MAP_I_TO_R},
    {"GL_PIXEL_MAP_I_TO_G", GL_PIXEL_MAP_I_TO_G},
    {"GL_PIXEL_MAP_I_TO_B", GL_PIXEL_MAP_I_TO_B},
    {"GL_PIXEL_MAP_I_TO_A", GL_PIXEL_MAP_I_TO_A},
    {"GL_PIXEL_MAP_R_TO_R", GL_PIXEL_MAP_R_TO_R},
    {"GL_PIXEL_MAP_G_TO_G", GL_PIXEL_MAP_G_TO_G},
    {"GL_PIXEL_MAP_B_TO_B", GL_PIXEL_MAP_B_TO_B},
    {"GL_PIXEL_MAP_A_TO_A", GL_PIXEL_MAP_A_TO_A},
    {"GL_PIXEL_MAP_I_TO_I_SIZE", GL_PIXEL_MAP_I_TO_I_SIZE},
    {"GL_PIXEL_MAP_S_TO_S_SIZE", GL_PIXEL_MAP_S_TO_S_SIZE},
    {"GL_PIXEL_MAP_I_TO_R_SIZE", GL_PIXEL_MAP_I_TO_R_SIZE},
    {"GL_PIXEL_MAP_I_TO_G_SIZE", GL_PIXEL_MAP_I_TO_G_SIZE},
    {"GL_PIXEL_MAP_I_TO_B_SIZE", GL_PIXEL_MAP_I_TO_B_SIZE},
    {"GL_PIXEL_MAP_I_TO_A_SIZE", GL_PIXEL_MAP_I_TO_A_SIZE},
    {"GL_PIXEL_MAP_R_TO_R_SIZE", GL_PIXEL_MAP_R_TO_R_SIZE},
    {"GL_PIXEL_MAP_G_TO_G_SIZE", GL_PIXEL_MAP_G_TO_G_SIZE},
    {"GL_PIXEL_MAP_B_TO_B_SIZE", GL_PIXEL_MAP_B_TO_B_SIZE},
    {"GL_PIXEL_MAP_A_TO_A_SIZE", GL_PIXEL_MAP_A_TO_A_SIZE},
    {"GL_UNPACK_SWAP_BYTES", GL_UNPACK_SWAP_BYTES},
    {"GL_UNPACK_LSB_FIRST", GL_UNPACK_LSB_FIRST},
    {"GL_UNPACK_ROW_LENGTH", GL_UNPACK_ROW_LENGTH},
    {"GL_UNPACK_SKIP_ROWS", GL_UNPACK_SKIP_ROWS},
    {"GL_UNPACK_SKIP_PIXELS", GL_UNPACK_SKIP_PIXELS},
    {"GL_UNPACK_ALIGNMENT", GL_UNPACK_ALIGNMENT},
    {"GL_PACK_SWAP_BYTES", GL_PACK_SWAP_BYTES},
    {"GL_PACK_LSB_FIRST", GL_PACK_LSB_FIRST},
    {"GL_PACK_ROW_LENGTH", GL_PACK_ROW_LENGTH},
    {"GL_PACK_SKIP_ROWS", GL_PACK_SKIP_ROWS},
    {"GL_PACK_SKIP_PIXELS", GL_PACK_SKIP_PIXELS},
    {"GL_PACK_ALIGNMENT", GL_PACK_ALIGNMENT},
    {"GL_MAP_COLOR", GL_MAP_COLOR},
    {"GL_MAP_STENCIL", GL_MAP_STENCIL},
    {"GL_INDEX_SHIFT", GL_INDEX_SHIFT},
    {"GL_INDEX_OFFSET", GL_INDEX_OFFSET},
    {"GL_RED_SCALE", GL_RED_SCALE},
    {"GL_RED_BIAS", GL_RED_BIAS},
    {"GL_ZOOM_X", GL_ZOOM_X},
    {"GL_ZOOM_Y", GL_ZOOM_Y},
    {"GL_GREEN_SCALE", GL_GREEN_SCALE},
    {"GL_GREEN_BIAS", GL_GREEN_BIAS},
    {"GL_BLUE_SCALE", GL_BLUE_SCALE},
    {"GL_BLUE_BIAS", GL_BLUE_BIAS},
    {"GL_ALPHA_SCALE", GL_ALPHA_SCALE},
    {"GL_ALPHA_BIAS", GL_ALPHA_BIAS},
    {"GL_DEPTH_SCALE", GL_DEPTH_SCALE},
    {"GL_DEPTH_BIAS", GL_DEPTH_BIAS},
    {"GL_MAX_EVAL_ORDER", GL_MAX_EVAL_ORDER},
    {"GL_MAX_LIGHTS", GL_MAX_LIGHTS},
    {"GL_MAX_CLIP_DISTANCES", GL_MAX_CLIP_DISTANCES},
    {"GL_MAX_TEXTURE_SIZE", GL_MAX_TEXTURE_SIZE},
    {"GL_MAX_PIXEL_MAP_TABLE", GL_MAX_PIXEL_MAP_TABLE},
    {"GL_MAX_ATTRIB_STACK_DEPTH", GL_MAX_ATTRIB_STACK_DEPTH},
    {"GL_MAX_MODELVIEW_STACK_DEPTH", GL_MAX_MODELVIEW_STACK_DEPTH},
    {"GL_MAX_NAME_STACK_DEPTH", GL_MAX_NAME_STACK_DEPTH},
    {"GL_MAX_PROJECTION_STACK_DEPTH", GL_MAX_PROJECTION_STACK_DEPTH},
    {"GL_MAX_TEXTURE_STACK_DEPTH", GL_MAX_TEXTURE_STACK_DEPTH},
    {"GL_MAX_VIEWPORT_DIMS", GL_MAX_VIEWPORT_DIMS},
    {"GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", GL_MAX_CLIENT_ATTRIB_STACK_DEPTH},
    {"GL_SUBPIXEL_BITS", GL_SUBPIXEL_BITS},
    {"GL_INDEX_BITS", GL_INDEX_BITS},
    {"GL_RED_BITS", GL_RED_BITS},
    {"GL_GREEN_BITS", GL_GREEN_BITS},
    {"GL_BLUE_BITS", GL_BLUE_BITS},
    {"GL_ALPHA_BITS", GL_ALPHA_BITS},
    {"GL_DEPTH_BITS", GL_DEPTH_BITS},
    {"GL_STENCIL_BITS", GL_STENCIL_BITS},
    {"GL_ACCUM_RED_BITS", GL_ACCUM_RED_BITS},
    {"GL_ACCUM_GREEN_BITS", GL_ACCUM_GREEN_BITS},
    {"GL_ACCUM_BLUE_BITS", GL_ACCUM_BLUE_BITS},
    {"GL_ACCUM_ALPHA_BITS", GL_ACCUM_ALPHA_BITS},
    {"GL_NAME_STACK_DEPTH", GL_NAME_STACK_DEPTH},
    {"GL_AUTO_NORMAL", GL_AUTO_NORMAL},
    {"GL_MAP1_COLOR_4", GL_MAP1_COLOR_4},
    {"GL_MAP1_INDEX", GL_MAP1_INDEX},
    {"GL_MAP1_NORMAL", GL_MAP1_NORMAL},
    {"GL_MAP1_TEXTURE_COORD_1", GL_MAP1_TEXTURE_COORD_1},
    {"GL_MAP1_TEXTURE_COORD_2", GL_MAP1_TEXTURE_COORD_2},
    {"GL_MAP1_TEXTURE_COORD_3", GL_MAP1_TEXTURE_COORD_3},
    {"GL_MAP1_TEXTURE_COORD_4", GL_MAP1_TEXTURE_COORD_4},
    {"GL_MAP1_VERTEX_3", GL_MAP1_VERTEX_3},
    {"GL_MAP1_VERTEX_4", GL_MAP1_VERTEX_4},
    {"GL_MAP2_COLOR_4", GL_MAP2_COLOR_4},
    {"GL_MAP2_INDEX", GL_MAP2_INDEX},
    {"GL_MAP2_NORMAL", GL_MAP2_NORMAL},
    {"GL_MAP2_TEXTURE_COORD_1", GL_MAP2_TEXTURE_COORD_1},
    {"GL_MAP2_TEXTURE_COORD_2", GL_MAP2_TEXTURE_COORD_2},
    {"GL_MAP2_TEXTURE_COORD_3", GL_MAP2_TEXTURE_COORD_3},
    {"GL_MAP2_TEXTURE_COORD_4", GL_MAP2_TEXTURE_COORD_4},
    {"GL_MAP2_VERTEX_3", GL_MAP2_VERTEX_3},
    {"GL_MAP2_VERTEX_4", GL_MAP2_VERTEX_4},
    {"GL_MAP1_GRID_DOMAIN", GL_MAP1_GRID_DOMAIN},
    {"GL_MAP1_GRID_SEGMENTS", GL_MAP1_GRID_SEGMENTS},
    {"GL_MAP2_GRID_DOMAIN", GL_MAP2_GRID_DOMAIN},
    {"GL_MAP2_GRID_SEGMENTS", GL_MAP2_GRID_SEGMENTS},
    {"GL_TEXTURE_1D", GL_TEXTURE_1D},
    {"GL_TEXTURE_2D", GL_TEXTURE_2D},
    {"GL_FEEDBACK_BUFFER_POINTER", GL_FEEDBACK_BUFFER_POINTER},
    {"GL_FEEDBACK_BUFFER_SIZE", GL_FEEDBACK_BUFFER_SIZE},
    {"GL_FEEDBACK_BUFFER_TYPE", GL_FEEDBACK_BUFFER_TYPE},
    {"GL_SELECTION_BUFFER_POINTER", GL_SELECTION_BUFFER_POINTER},
    {"GL_SELECTION_BUFFER_SIZE", GL_SELECTION_BUFFER_SIZE},
    {"GL_TEXTURE_WIDTH", GL_TEXTURE_WIDTH},
    {"GL_TEXTURE_HEIGHT", GL_TEXTURE_HEIGHT},
    {"GL_TEXTURE_INTERNAL_FORMAT", GL_TEXTURE_INTERNAL_FORMAT},
    {"GL_TEXTURE_BORDER_COLOR", GL_TEXTURE_BORDER_COLOR},
    {"GL_TEXTURE_BORDER", GL_TEXTURE_BORDER},
    {"GL_TEXTURE_TARGET", GL_TEXTURE_TARGET},
    {"GL_DONT_CARE", GL_DONT_CARE},
    {"GL_FASTEST", GL_FASTEST},
    {"GL_NICEST", GL_NICEST},
    {"GL_AMBIENT", GL_AMBIENT},
    {"GL_DIFFUSE", GL_DIFFUSE},
    {"GL_SPECULAR", GL_SPECULAR},
    {"GL_POSITION", GL_POSITION},
    {"GL_SPOT_DIRECTION", GL_SPOT_DIRECTION},
    {"GL_SPOT_EXPONENT", GL_SPOT_EXPONENT},
    {"GL_SPOT_CUTOFF", GL_SPOT_CUTOFF},
    {"GL_CONSTANT_ATTENUATION", GL_CONSTANT_ATTENUATION},
    {"GL_LINEAR_ATTENUATION", GL_LINEAR_ATTENUATION},
    {"GL_QUADRATIC_ATTENUATION", GL_QUADRATIC_ATTENUATION},
    {"GL_COMPILE", GL_COMPILE},
    {"GL_COMPILE_AND_EXECUTE", GL_COMPILE_AND_EXECUTE},
    {"GL_BYTE", GL_BYTE},
    {"GL_UNSIGNED_BYTE", GL_UNSIGNED_BYTE},
    {"GL_SHORT", GL_SHORT},
    {"GL_UNSIGNED_SHORT", GL_UNSIGNED_SHORT},
    {"GL_INT", GL_INT},
    {"GL_UNSIGNED_INT", GL_UNSIGNED_INT},
    {"GL_FLOAT", GL_FLOAT},
    {"GL_2_BYTES", GL_2_BYTES},
    {"GL_3_BYTES", GL_3_BYTES},
    {"GL_4_BYTES", GL_4_BYTES},
    {"GL_DOUBLE", GL_DOUBLE},
    {"GL_HALF_FLOAT", GL_HALF_FLOAT},
    {"GL_FIXED", GL_FIXED},
    {"GL_INT64_ARB", GL_INT64_ARB},
    {"GL_UNSIGNED_INT64_ARB", GL_UNSIGNED_INT64_ARB},
    {"GL_CLEAR", GL_CLEAR},
    {"GL_AND", GL_AND},
    {"GL_AND_REVERSE", GL_AND_REVERSE},
    {"GL_COPY", GL_COPY},
    {"GL_AND_INVERTED", GL_AND_INVERTED},
    {"GL_NOOP", GL_NOOP},
    {"GL_XOR", GL_XOR},
    {"GL_OR", GL_OR},
    {"GL_NOR", GL_NOR},
    {"GL_EQUIV", GL_EQUIV},
    {"GL_INVERT", GL_INVERT},
    {"GL_OR_REVERSE", GL_OR_REVERSE},
    {"GL_COPY_INVERTED", GL_COPY_INVERTED},
    {"GL_OR_INVERTED", GL_OR_INVERTED},
    {"GL_NAND", GL_NAND},
    {"GL_SET", GL_SET},
    {"GL_EMISSION", GL_EMISSION},
    {"GL_SHININESS", GL_SHININESS},
    {"GL_AMBIENT_AND_DIFFUSE", GL_AMBIENT_AND_DIFFUSE},
    {"GL_COLOR_INDEXES", GL_COLOR_INDEXES},
    {"GL_MODELVIEW", GL_MODELVIEW},
    {"GL_PROJECTION", GL_PROJECTION},
    {"GL_TEXTURE", GL_TEXTURE},
    {"GL_COLOR", GL_COLOR},
    {"GL_DEPTH", GL_DEPTH},
    {"GL_STENCIL", GL_STENCIL},
    {"GL_COLOR_INDEX", GL_COLOR_INDEX},
    {"GL_STENCIL_INDEX", GL_STENCIL_INDEX},
    {"GL_DEPTH_COMPONENT", GL_DEPTH_COMPONENT},
    {"GL_RED", GL_RED},
    {"GL_GREEN", GL_GREEN},
    {"GL_BLUE", GL_BLUE},
    {"GL_ALPHA", GL_ALPHA},
    {"GL_RGB", GL_RGB},
    {"GL_RGBA", GL_RGBA},
    {"GL_LUMINANCE", GL_LUMINANCE},
    {"GL_LUMINANCE_ALPHA", GL_LUMINANCE_ALPHA},
    {"GL_BITMAP", GL_BITMAP},
    {"GL_POINT", GL_POINT},
    {"GL_LINE", GL_LINE},
    {"GL_FILL", GL_FILL},
    {"GL_RENDER", GL_RENDER},
    {"GL_FEEDBACK", GL_FEEDBACK},
    {"GL_SELECT", GL_SELECT},
    {"GL_FLAT", GL_FLAT},
    {"GL_SMOOTH", GL_SMOOTH},
    {"GL_KEEP", GL_KEEP},
    {"GL_REPLACE", GL_REPLACE},
    {"GL_INCR", GL_INCR},
    {"GL_DECR", GL_DECR},
    {"GL_VENDOR", GL_VENDOR},
    {"GL_RENDERER", GL_RENDERER},
    {"GL_VERSION", GL_VERSION},
    {"GL_EXTENSIONS", GL_EXTENSIONS},
    {"GL_S", GL_S},
    {"GL_T", GL_T},
    {"GL_R", GL_R},
    {"GL_Q", GL_Q},
    {"GL_MODULATE", GL_MODULATE},
    {"GL_DECAL", GL_DECAL},
    {"GL_TEXTURE_ENV_MODE", GL_TEXTURE_ENV_MODE},
    {"GL_TEXTURE_ENV_COLOR", GL_TEXTURE_ENV_COLOR},
    {"GL_TEXTURE_ENV", GL_TEXTURE_ENV},
    {"GL_EYE_LINEAR", GL_EYE_LINEAR},
    {"GL_OBJECT_LINEAR", GL_OBJECT_LINEAR},
    {"GL_SPHERE_MAP", GL_SPHERE_MAP},
    {"GL_TEXTURE_GEN_MODE", GL_TEXTURE_GEN_MODE},
    {"GL_OBJECT_PLANE", GL_OBJECT_PLANE},
    {"GL_EYE_PLANE", GL_EYE_PLANE},
    {"GL_NEAREST", GL_NEAREST},
    {"GL_LINEAR", GL_LINEAR},
    {"GL_NEAREST_MIPMAP_NEAREST", GL_NEAREST_MIPMAP_NEAREST},
    {"GL_LINEAR_MIPMAP_NEAREST", GL_LINEAR_MIPMAP_NEAREST},
    {"GL_NEAREST_MIPMAP_LINEAR", GL_NEAREST_MIPMAP_LINEAR},
    {"GL_LINEAR_MIPMAP_LINEAR", GL_LINEAR_MIPMAP_LINEAR},
    {"GL_TEXTURE_MAG_FILTER", GL_TEXTURE_MAG_FILTER},
    {"GL_TEXTURE_MIN_FILTER", GL_TEXTURE_MIN_FILTER},
    {"GL_TEXTURE_WRAP_S", GL_TEXTURE_WRAP_S},
    {"GL_TEXTURE_WRAP_T", GL_TEXTURE_WRAP_T},
    {"GL_CLAMP", GL_CLAMP},
    {"GL_REPEAT", GL_REPEAT},
    {"GL_POLYGON_OFFSET_UNITS", GL_POLYGON_OFFSET_UNITS},
    {"GL_POLYGON_OFFSET_POINT", GL_POLYGON_OFFSET_POINT},
    {"GL_POLYGON_OFFSET_LINE", GL_POLYGON_OFFSET_LINE},
    {"GL_R3_G3_B2", GL_R3_G3_B2},
    {"GL_V2F", GL_V2F},
    {"GL_V3F", GL_V3F},
    {"GL_C4UB_V2F", GL_C4UB_V2F},
    {"GL_C4UB_V3F", GL_C4UB_V3F},
    {"GL_C3F_V3F", GL_C3F_V3F},
    {"GL_N3F_V3F", GL_N3F_V3F},
    {"GL_C4F_N3F_V3F", GL_C4F_N3F_V3F},
    {"GL_T2F_V3F", GL_T2F_V3F},
    {"GL_T4F_V4F", GL_T4F_V4F},
    {"GL_T2F_C4UB_V3F", GL_T2F_C4UB_V3F},
    {"GL_T2F_C3F_V3F", GL_T2F_C3F_V3F},
    {"GL_T2F_N3F_V3F", GL_T2F_N3F_V3F},
    {"GL_T2F_C4F_N3F_V3F", GL_T2F_C4F_N3F_V3F},
    {"GL_T4F_C4F_N3F_V4F", GL_T4F_C4F_N3F_V4F},
    {"GL_CLIP_DISTANCE0", GL_CLIP_DISTANCE0},
    {"GL_CLIP_DISTANCE1", GL_CLIP_DISTANCE1},
    {"GL_CLIP_DISTANCE2", GL_CLIP_DISTANCE2},
    {"GL_CLIP_DISTANCE3", GL_CLIP_DISTANCE3},
    {"GL_CLIP_DISTANCE4", GL_CLIP_DISTANCE4},
    {"GL_CLIP_DISTANCE5", GL_CLIP_DISTANCE5},
    {"GL_CLIP_DISTANCE6", GL_CLIP_DISTANCE6},
    {"GL_CLIP_DISTANCE7", GL_CLIP_DISTANCE7},
    {"GL_LIGHT0", GL_LIGHT0},
    {"GL_LIGHT1", GL_LIGHT1},
    {"GL_LIGHT2", GL_LIGHT2},
    {"GL_LIGHT3", GL_LIGHT3},
    {"GL_LIGHT4", GL_LIGHT4},
    {"GL_LIGHT5", GL_LIGHT5},
    {"GL_LIGHT6", GL_LIGHT6},
    {"GL_LIGHT7", GL_LIGHT7},
    {"GL_ABGR_EXT", GL_ABGR_EXT},
    {"GL_CONSTANT_COLOR", GL_CONSTANT_COLOR},
    {"GL_ONE_MINUS_CONSTANT_COLOR", GL_ONE_MINUS_CONSTANT_COLOR},
    {"GL_CONSTANT_ALPHA", GL_CONSTANT_ALPHA},
    {"GL_ONE_MINUS_CONSTANT_ALPHA", GL_ONE_MINUS_CONSTANT_ALPHA},
    {"GL_BLEND_COLOR", GL_BLEND_COLOR},
    {"GL_FUNC_ADD", GL_FUNC_ADD},
    {"GL_MIN", GL_MIN},
    {"GL_MAX", GL_MAX},
    {"GL_BLEND_EQUATION", GL_BLEND_EQUATION},
    {"GL_FUNC_SUBTRACT", GL_FUNC_SUBTRACT},
    {"GL_FUNC_REVERSE_SUBTRACT", GL_FUNC_REVERSE_SUBTRACT},
    {"GL_CMYK_EXT", GL_CMYK_EXT},
    {"GL_CMYKA_EXT", GL_CMYKA_EXT},
    {"GL_PACK_CMYK_HINT_EXT", GL_PACK_CMYK_HINT_EXT},
    {"GL_UNPACK_CMYK_HINT_EXT", GL_UNPACK_CMYK_HINT_EXT},
    {"GL_CONVOLUTION_1D", GL_CONVOLUTION_1D},
    {"GL_CONVOLUTION_2D", GL_CONVOLUTION_2D},
    {"GL_SEPARABLE_2D", GL_SEPARABLE_2D},
    {"GL_CONVOLUTION_BORDER_MODE", GL_CONVOLUTION_BORDER_MODE},
    {"GL_CONVOLUTION_FILTER_SCALE", GL_CONVOLUTION_FILTER_SCALE},
    {"GL_CONVOLUTION_FILTER_BIAS", GL_CONVOLUTION_FILTER_BIAS},
    {"GL_REDUCE", GL_REDUCE},
    {"GL_CONVOLUTION_FORMAT", GL_CONVOLUTION_FORMAT},
    {"GL_CONVOLUTION_WIDTH", GL_CONVOLUTION_WIDTH},
    {"GL_CONVOLUTION_HEIGHT", GL_CONVOLUTION_HEIGHT},
    {"GL_MAX_CONVOLUTION_WIDTH", GL_MAX_CONVOLUTION_WIDTH},
    {"GL_MAX_CONVOLUTION_HEIGHT", GL_MAX_CONVOLUTION_HEIGHT},
    {"GL_POST_CONVOLUTION_RED_SCALE", GL_POST_CONVOLUTION_RED_SCALE},
    {"GL_POST_CONVOLUTION_GREEN_SCALE", GL_POST_CONVOLUTION_GREEN_SCALE},
    {"GL_POST_CONVOLUTION_BLUE_SCALE", GL_POST_CONVOLUTION_BLUE_SCALE},
    {"GL_POST_CONVOLUTION_ALPHA_SCALE", GL_POST_CONVOLUTION_ALPHA_SCALE},
    {"GL_POST_CONVOLUTION_RED_BIAS", GL_POST_CONVOLUTION_RED_BIAS},
    {"GL_POST_CONVOLUTION_GREEN_BIAS", GL_POST_CONVOLUTION_GREEN_BIAS},
    {"GL_POST_CONVOLUTION_BLUE_BIAS", GL_POST_CONVOLUTION_BLUE_BIAS},
    {"GL_POST_CONVOLUTION_ALPHA_BIAS", GL_POST_CONVOLUTION_ALPHA_BIAS},
    {"GL_HISTOGRAM", GL_HISTOGRAM},
    {"GL_PROXY_HISTOGRAM", GL_PROXY_HISTOGRAM},
    {"GL_HISTOGRAM_WIDTH", GL_HISTOGRAM_WIDTH},
    {"GL_HISTOGRAM_FORMAT", GL_HISTOGRAM_FORMAT},
    {"GL_HISTOGRAM_RED_SIZE", GL_HISTOGRAM_RED_SIZE},
    {"GL_HISTOGRAM_GREEN_SIZE", GL_HISTOGRAM_GREEN_SIZE},
    {"GL_HISTOGRAM_BLUE_SIZE", GL_HISTOGRAM_BLUE_SIZE},
    {"GL_HISTOGRAM_ALPHA_SIZE", GL_HISTOGRAM_ALPHA_SIZE},
    {"GL_HISTOGRAM_LUMINANCE_SIZE", GL_HISTOGRAM_LUMINANCE_SIZE},
    {"GL_HISTOGRAM_SINK", GL_HISTOGRAM_SINK},
    {"GL_MINMAX", GL_MINMAX},
    {"GL_MINMAX_FORMAT", GL_MINMAX_FORMAT},
    {"GL_MINMAX_SINK", GL_MINMAX_SINK},
    {"GL_TABLE_TOO_LARGE", GL_TABLE_TOO_LARGE},
    {"GL_UNSIGNED_BYTE_3_3_2", GL_UNSIGNED_BYTE_3_3_2},
    {"GL_UNSIGNED_SHORT_4_4_4_4", GL_UNSIGNED_SHORT_4_4_4_4},
    {"GL_UNSIGNED_SHORT_5_5_5_1", GL_UNSIGNED_SHORT_5_5_5_1},
    {"GL_UNSIGNED_INT_8_8_8_8", GL_UNSIGNED_INT_8_8_8_8},
    {"GL_UNSIGNED_INT_10_10_10_2", GL_UNSIGNED_INT_10_10_10_2},
    {"GL_POLYGON_OFFSET_FILL", GL_POLYGON_OFFSET_FILL},
    {"GL_POLYGON_OFFSET_FACTOR", GL_POLYGON_OFFSET_FACTOR},
    {"GL_POLYGON_OFFSET_BIAS_EXT", GL_POLYGON_OFFSET_BIAS_EXT},
    {"GL_RESCALE_NORMAL", GL_RESCALE_NORMAL},
    {"GL_ALPHA4", GL_ALPHA4},
    {"GL_ALPHA8", GL_ALPHA8},
    {"GL_ALPHA12", GL_ALPHA12},
    {"GL_ALPHA16", GL_ALPHA16},
    {"GL_LUMINANCE4", GL_LUMINANCE4},
    {"GL_LUMINANCE8", GL_LUMINANCE8},
    {"GL_LUMINANCE12", GL_LUMINANCE12},
    {"GL_LUMINANCE16", GL_LUMINANCE16},
    {"GL_LUMINANCE4_ALPHA4", GL_LUMINANCE4_ALPHA4},
    {"GL_LUMINANCE6_ALPHA2", GL_LUMINANCE6_ALPHA2},
    {"GL_LUMINANCE8_ALPHA8", GL_LUMINANCE8_ALPHA8},
    {"GL_LUMINANCE12_ALPHA4", GL_LUMINANCE12_ALPHA4},
    {"GL_LUMINANCE12_ALPHA12", GL_LUMINANCE12_ALPHA12},
    {"GL_LUMINANCE16_ALPHA16", GL_LUMINANCE16_ALPHA16},
    {"GL_INTENSITY", GL_INTENSITY},
    {"GL_INTENSITY4", GL_INTENSITY4},
    {"GL_INTENSITY8", GL_INTENSITY8},
    {"GL_INTENSITY12", GL_INTENSITY12},
    {"GL_INTENSITY16", GL_INTENSITY16},
    {"GL_RGB2_EXT", GL_RGB2_EXT},
    {"GL_RGB4", GL_RGB4},
    {"GL_RGB5", GL_RGB5},
    {"GL_RGB8", GL_RGB8},
    {"GL_RGB10", GL_RGB10},
    {"GL_RGB12", GL_RGB12},
    {"GL_RGB16", GL_RGB16},
    {"GL_RGBA2", GL_RGBA2},
    {"GL_RGBA4", GL_RGBA4},
    {"GL_RGB5_A1", GL_RGB5_A1},
    {"GL_RGBA8", GL_RGBA8},
    {"GL_RGB10_A2", GL_RGB10_A2},
    {"GL_RGBA12", GL_RGBA12},
    {"GL_RGBA16", GL_RGBA16},
    {"GL_TEXTURE_RED_SIZE", GL_TEXTURE_RED_SIZE},
    {"GL_TEXTURE_GREEN_SIZE", GL_TEXTURE_GREEN_SIZE},
    {"GL_TEXTURE_BLUE_SIZE", GL_TEXTURE_BLUE_SIZE},
    {"GL_TEXTURE_ALPHA_SIZE", GL_TEXTURE_ALPHA_SIZE},
    {"GL_TEXTURE_LUMINANCE_SIZE", GL_TEXTURE_LUMINANCE_SIZE},
    {"GL_TEXTURE_INTENSITY_SIZE", GL_TEXTURE_INTENSITY_SIZE},
    {"GL_REPLACE_EXT", GL_REPLACE_EXT},
    {"GL_PROXY_TEXTURE_1D", GL_PROXY_TEXTURE_1D},
    {"GL_PROXY_TEXTURE_2D", GL_PROXY_TEXTURE_2D},
    {"GL_TEXTURE_TOO_LARGE_EXT", GL_TEXTURE_TOO_LARGE_EXT},
    {"GL_TEXTURE_PRIORITY", GL_TEXTURE_PRIORITY},
    {"GL_TEXTURE_RESIDENT", GL_TEXTURE_RESIDENT},
    {"GL_TEXTURE_BINDING_1D", GL_TEXTURE_BINDING_1D},
    {"GL_TEXTURE_BINDING_2D", GL_TEXTURE_BINDING_2D},
    {"GL_TEXTURE_BINDING_3D", GL_TEXTURE_BINDING_3D},
    {"GL_PACK_SKIP_IMAGES", GL_PACK_SKIP_IMAGES},
    {"GL_PACK_IMAGE_HEIGHT", GL_PACK_IMAGE_HEIGHT},
    {"GL_UNPACK_SKIP_IMAGES", GL_UNPACK_SKIP_IMAGES},
    {"GL_UNPACK_IMAGE_HEIGHT", GL_UNPACK_IMAGE_HEIGHT},
    {"GL_TEXTURE_3D", GL_TEXTURE_3D},
    {"GL_PROXY_TEXTURE_3D", GL_PROXY_TEXTURE_3D},
    {"GL_TEXTURE_DEPTH", GL_TEXTURE_DEPTH},
    {"GL_TEXTURE_WRAP_R", GL_TEXTURE_WRAP_R},
    {"GL_MAX_3D_TEXTURE_SIZE", GL_MAX_3D_TEXTURE_SIZE},
    {"GL_VERTEX_ARRAY", GL_VERTEX_ARRAY},
    {"GL_NORMAL_ARRAY", GL_NORMAL_ARRAY},
    {"GL_COLOR_ARRAY", GL_COLOR_ARRAY},
    {"GL_INDEX_ARRAY", GL_INDEX_ARRAY},
    {"GL_TEXTURE_COORD_ARRAY", GL_TEXTURE_COORD_ARRAY},
    {"GL_EDGE_FLAG_ARRAY", GL_EDGE_FLAG_ARRAY},
    {"GL_VERTEX_ARRAY_SIZE", GL_VERTEX_ARRAY_SIZE},
    {"GL_VERTEX_ARRAY_TYPE", GL_VERTEX_ARRAY_TYPE},
    {"GL_VERTEX_ARRAY_STRIDE", GL_VERTEX_ARRAY_STRIDE},
    {"GL_VERTEX_ARRAY_COUNT_EXT", GL_VERTEX_ARRAY_COUNT_EXT},
    {"GL_NORMAL_ARRAY_TYPE", GL_NORMAL_ARRAY_TYPE},
    {"GL_NORMAL_ARRAY_STRIDE", GL_NORMAL_ARRAY_STRIDE},
    {"GL_NORMAL_ARRAY_COUNT_EXT", GL_NORMAL_ARRAY_COUNT_EXT},
    {"GL_COLOR_ARRAY_SIZE", GL_COLOR_ARRAY_SIZE},
    {"GL_COLOR_ARRAY_TYPE", GL_COLOR_ARRAY_TYPE},
    {"GL_COLOR_ARRAY_STRIDE", GL_COLOR_ARRAY_STRIDE},
    {"GL_COLOR_ARRAY_COUNT_EXT", GL_COLOR_ARRAY_COUNT_EXT},
    {"GL_INDEX_ARRAY_TYPE", GL_INDEX_ARRAY_TYPE},
    {"GL_INDEX_ARRAY_STRIDE", GL_INDEX_ARRAY_STRIDE},
    {"GL_INDEX_ARRAY_COUNT_EXT", GL_INDEX_ARRAY_COUNT_EXT},
    {"GL_TEXTURE_COORD_ARRAY_SIZE", GL_TEXTURE_COORD_ARRAY_SIZE},
    {"GL_TEXTURE_COORD_ARRAY_TYPE", GL_TEXTURE_COORD_ARRAY_TYPE},
    {"GL_TEXTURE_COORD_ARRAY_STRIDE", GL_TEXTURE_COORD_ARRAY_STRIDE},
    {"GL_TEXTURE_COORD_ARRAY_COUNT_EXT", GL_TEXTURE_COORD_ARRAY_COUNT_EXT},
    {"GL_EDGE_FLAG_ARRAY_STRIDE", GL_EDGE_FLAG_ARRAY_STRIDE},
    {"GL_EDGE_FLAG_ARRAY_COUNT_EXT", GL_EDGE_FLAG_ARRAY_COUNT_EXT},
    {"GL_VERTEX_ARRAY_POINTER", GL_VERTEX_ARRAY_POINTER},
    {"GL_NORMAL_ARRAY_POINTER", GL_NORMAL_ARRAY_POINTER},
    {"GL_COLOR_ARRAY_POINTER", GL_COLOR_ARRAY_POINTER},
    {"GL_INDEX_ARRAY_POINTER", GL_INDEX_ARRAY_POINTER},
    {"GL_TEXTURE_COORD_ARRAY_POINTER", GL_TEXTURE_COORD_ARRAY_POINTER},
    {"GL_EDGE_FLAG_ARRAY_POINTER", GL_EDGE_FLAG_ARRAY_POINTER},
    {"GL_INTERLACE_SGIX", GL_INTERLACE_SGIX},
    {"GL_DETAIL_TEXTURE_2D_SGIS", GL_DETAIL_TEXTURE_2D_SGIS},
    {"GL_DETAIL_TEXTURE_2D_BINDING_SGIS", GL_DETAIL_TEXTURE_2D_BINDING_SGIS},
    {"GL_LINEAR_DETAIL_SGIS", GL_LINEAR_DETAIL_SGIS},
    {"GL_LINEAR_DETAIL_ALPHA_SGIS", GL_LINEAR_DETAIL_ALPHA_SGIS},
    {"GL_LINEAR_DETAIL_COLOR_SGIS", GL_LINEAR_DETAIL_COLOR_SGIS},
    {"GL_DETAIL_TEXTURE_LEVEL_SGIS", GL_DETAIL_TEXTURE_LEVEL_SGIS},
    {"GL_DETAIL_TEXTURE_MODE_SGIS", GL_DETAIL_TEXTURE_MODE_SGIS},
    {"GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS", GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS},
    {"GL_MULTISAMPLE", GL_MULTISAMPLE},
    {"GL_SAMPLE_ALPHA_TO_COVERAGE", GL_SAMPLE_ALPHA_TO_COVERAGE},
    {"GL_SAMPLE_ALPHA_TO_ONE", GL_SAMPLE_ALPHA_TO_ONE},
    {"GL_SAMPLE_COVERAGE", GL_SAMPLE_COVERAGE},
    {"GL_1PASS_EXT", GL_1PASS_EXT},
    {"GL_2PASS_0_EXT", GL_2PASS_0_EXT},
    {"GL_2PASS_1_EXT", GL_2PASS_1_EXT},
    {"GL_4PASS_0_EXT", GL_4PASS_0_EXT},
    {"GL_4PASS_1_EXT", GL_4PASS_1_EXT},
    {"GL_4PASS_2_EXT", GL_4PASS_2_EXT},
    {"GL_4PASS_3_EXT", GL_4PASS_3_EXT},
    {"GL_SAMPLE_BUFFERS", GL_SAMPLE_BUFFERS},
    {"GL_SAMPLES", GL_SAMPLES},
    {"GL_SAMPLE_COVERAGE_VALUE", GL_SAMPLE_COVERAGE_VALUE},
    {"GL_SAMPLE_COVERAGE_INVERT", GL_SAMPLE_COVERAGE_INVERT},
    {"GL_SAMPLE_PATTERN_EXT", GL_SAMPLE_PATTERN_EXT},
    {"GL_LINEAR_SHARPEN_SGIS", GL_LINEAR_SHARPEN_SGIS},
    {"GL_LINEAR_SHARPEN_ALPHA_SGIS", GL_LINEAR_SHARPEN_ALPHA_SGIS},
    {"GL_LINEAR_SHARPEN_COLOR_SGIS", GL_LINEAR_SHARPEN_COLOR_SGIS},
    {"GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS", GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS},
    {"GL_COLOR_MATRIX", GL_COLOR_MATRIX},
    {"GL_COLOR_MATRIX_STACK_DEPTH", GL_COLOR_MATRIX_STACK_DEPTH},
    {"GL_MAX_COLOR_MATRIX_STACK_DEPTH", GL_MAX_COLOR_MATRIX_STACK_DEPTH},
    {"GL_POST_COLOR_MATRIX_RED_SCALE", GL_POST_COLOR_MATRIX_RED_SCALE},
    {"GL_POST_COLOR_MATRIX_GREEN_SCALE", GL_POST_COLOR_MATRIX_GREEN_SCALE},
    {"GL_POST_COLOR_MATRIX_BLUE_SCALE", GL_POST_COLOR_MATRIX_BLUE_SCALE},
    {"GL_POST_COLOR_MATRIX_ALPHA_SCALE", GL_POST_COLOR_MATRIX_ALPHA_SCALE},
    {"GL_POST_COLOR_MATRIX_RED_BIAS", GL_POST_COLOR_MATRIX_RED_BIAS},
    {"GL_POST_COLOR_MATRIX_GREEN_BIAS", GL_POST_COLOR_MATRIX_GREEN_BIAS},
    {"GL_POST_COLOR_MATRIX_BLUE_BIAS", GL_POST_COLOR_MATRIX_BLUE_BIAS},
    {"GL_POST_COLOR_MATRIX_ALPHA_BIAS", GL_POST_COLOR_MATRIX_ALPHA_BIAS},
    {"GL_TEXTURE_COLOR_TABLE_SGI", GL_TEXTURE_COLOR_TABLE_SGI},
    {"GL_PROXY_TEXTURE_COLOR_TABLE_SGI", GL_PROXY_TEXTURE_COLOR_TABLE_SGI},
    {"GL_TEXTURE_ENV_BIAS_SGIX", GL_TEXTURE_ENV_BIAS_SGIX},
    {"GL_TEXTURE_COMPARE_FAIL_VALUE_ARB", GL_TEXTURE_COMPARE_FAIL_VALUE_ARB},
    {"GL_BLEND_DST_RGB", GL_BLEND_DST_RGB},
    {"GL_BLEND_SRC_RGB", GL_BLEND_SRC_RGB},
    {"GL_BLEND_DST_ALPHA", GL_BLEND_DST_ALPHA},
    {"GL_BLEND_SRC_ALPHA", GL_BLEND_SRC_ALPHA},
    {"GL_422_EXT", GL_422_EXT},
    {"GL_422_REV_EXT", GL_422_REV_EXT},
    {"GL_422_AVERAGE_EXT", GL_422_AVERAGE_EXT},
    {"GL_422_REV_AVERAGE_EXT", GL_422_REV_AVERAGE_EXT},
    {"GL_COLOR_TABLE", GL_COLOR_TABLE},
    {"GL_POST_CONVOLUTION_COLOR_TABLE", GL_POST_CONVOLUTION_COLOR_TABLE},
    {"GL_POST_COLOR_MATRIX_COLOR_TABLE", GL_POST_COLOR_MATRIX_COLOR_TABLE},
    {"GL_PROXY_COLOR_TABLE", GL_PROXY_COLOR_TABLE},
    {"GL_PROXY_POST_CONVOLUTION_COLOR_TABLE", GL_PROXY_POST_CONVOLUTION_COLOR_TABLE},
    {"GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE", GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE},
    {"GL_COLOR_TABLE_SCALE", GL_COLOR_TABLE_SCALE},
    {"GL_COLOR_TABLE_BIAS", GL_COLOR_TABLE_BIAS},
    {"GL_COLOR_TABLE_FORMAT", GL_COLOR_TABLE_FORMAT},
    {"GL_COLOR_TABLE_WIDTH", GL_COLOR_TABLE_WIDTH},
    {"GL_COLOR_TABLE_RED_SIZE", GL_COLOR_TABLE_RED_SIZE},
    {"GL_COLOR_TABLE_GREEN_SIZE", GL_COLOR_TABLE_GREEN_SIZE},
    {"GL_COLOR_TABLE_BLUE_SIZE", GL_COLOR_TABLE_BLUE_SIZE},
    {"GL_COLOR_TABLE_ALPHA_SIZE", GL_COLOR_TABLE_ALPHA_SIZE},
    {"GL_COLOR_TABLE_LUMINANCE_SIZE", GL_COLOR_TABLE_LUMINANCE_SIZE},
    {"GL_COLOR_TABLE_INTENSITY_SIZE", GL_COLOR_TABLE_INTENSITY_SIZE},
    {"GL_BGR", GL_BGR},
    {"GL_BGRA", GL_BGRA},
    {"GL_COLOR_INDEX1_EXT", GL_COLOR_INDEX1_EXT},
    {"GL_COLOR_INDEX2_EXT", GL_COLOR_INDEX2_EXT},
    {"GL_COLOR_INDEX4_EXT", GL_COLOR_INDEX4_EXT},
    {"GL_COLOR_INDEX8_EXT", GL_COLOR_INDEX8_EXT},
    {"GL_COLOR_INDEX12_EXT", GL_COLOR_INDEX12_EXT},
    {"GL_COLOR_INDEX16_EXT", GL_COLOR_INDEX16_EXT},
    {"GL_MAX_ELEMENTS_VERTICES", GL_MAX_ELEMENTS_VERTICES},
    {"GL_MAX_ELEMENTS_INDICES", GL_MAX_ELEMENTS_INDICES},
    {"GL_PHONG_WIN", GL_PHONG_WIN},
    {"GL_PHONG_HINT_WIN", GL_PHONG_HINT_WIN},
    {"GL_FOG_SPECULAR_TEXTURE_WIN", GL_FOG_SPECULAR_TEXTURE_WIN},
    {"GL_TEXTURE_INDEX_SIZE_EXT", GL_TEXTURE_INDEX_SIZE_EXT},
    {"GL_PARAMETER_BUFFER_ARB", GL_PARAMETER_BUFFER_ARB},
    {"GL_PARAMETER_BUFFER_BINDING_ARB", GL_PARAMETER_BUFFER_BINDING_ARB},
    {"GL_CLIP_VOLUME_CLIPPING_HINT_EXT", GL_CLIP_VOLUME_CLIPPING_HINT_EXT},
    {"GL_DUAL_ALPHA4_SGIS", GL_DUAL_ALPHA4_SGIS},
    {"GL_DUAL_ALPHA8_SGIS", GL_DUAL_ALPHA8_SGIS},
    {"GL_DUAL_ALPHA12_SGIS", GL_DUAL_ALPHA12_SGIS},
    {"GL_DUAL_ALPHA16_SGIS", GL_DUAL_ALPHA16_SGIS},
    {"GL_DUAL_LUMINANCE4_SGIS", GL_DUAL_LUMINANCE4_SGIS},
    {"GL_DUAL_LUMINANCE8_SGIS", GL_DUAL_LUMINANCE8_SGIS},
    {"GL_DUAL_LUMINANCE12_SGIS", GL_DUAL_LUMINANCE12_SGIS},
    {"GL_DUAL_LUMINANCE16_SGIS", GL_DUAL_LUMINANCE16_SGIS},
    {"GL_DUAL_INTENSITY4_SGIS", GL_DUAL_INTENSITY4_SGIS},
    {"GL_DUAL_INTENSITY8_SGIS", GL_DUAL_INTENSITY8_SGIS},
    {"GL_DUAL_INTENSITY12_SGIS", GL_DUAL_INTENSITY12_SGIS},
    {"GL_DUAL_INTENSITY16_SGIS", GL_DUAL_INTENSITY16_SGIS},
    {"GL_DUAL_LUMINANCE_ALPHA4_SGIS", GL_DUAL_LUMINANCE_ALPHA4_SGIS},
    {"GL_DUAL_LUMINANCE_ALPHA8_SGIS", GL_DUAL_LUMINANCE_ALPHA8_SGIS},
    {"GL_QUAD_ALPHA4_SGIS", GL_QUAD_ALPHA4_SGIS},
    {"GL_QUAD_ALPHA8_SGIS", GL_QUAD_ALPHA8_SGIS},
    {"GL_QUAD_LUMINANCE4_SGIS", GL_QUAD_LUMINANCE4_SGIS},
    {"GL_QUAD_LUMINANCE8_SGIS", GL_QUAD_LUMINANCE8_SGIS},
    {"GL_QUAD_INTENSITY4_SGIS", GL_QUAD_INTENSITY4_SGIS},
    {"GL_QUAD_INTENSITY8_SGIS", GL_QUAD_INTENSITY8_SGIS},
    {"GL_DUAL_TEXTURE_SELECT_SGIS", GL_DUAL_TEXTURE_SELECT_SGIS},
    {"GL_QUAD_TEXTURE_SELECT_SGIS", GL_QUAD_TEXTURE_SELECT_SGIS},
    {"GL_POINT_SIZE_MIN", GL_POINT_SIZE_MIN},
    {"GL_POINT_SIZE_MAX", GL_POINT_SIZE_MAX},
    {"GL_POINT_FADE_THRESHOLD_SIZE", GL_POINT_FADE_THRESHOLD_SIZE},
    {"GL_POINT_DISTANCE_ATTENUATION", GL_POINT_DISTANCE_ATTENUATION},
    {"GL_FOG_FUNC_SGIS", GL_FOG_FUNC_SGIS},
    {"GL_FOG_FUNC_POINTS_SGIS", GL_FOG_FUNC_POINTS_SGIS},
    {"GL_MAX_FOG_FUNC_POINTS_SGIS", GL_MAX_FOG_FUNC_POINTS_SGIS},
    {"GL_CLAMP_TO_BORDER", GL_CLAMP_TO_BORDER},
    {"GL_TEXTURE_MULTI_BUFFER_HINT_SGIX", GL_TEXTURE_MULTI_BUFFER_HINT_SGIX},
    {"GL_CLAMP_TO_EDGE", GL_CLAMP_TO_EDGE},
    {"GL_PACK_SKIP_VOLUMES_SGIS", GL_PACK_SKIP_VOLUMES_SGIS},
    {"GL_PACK_IMAGE_DEPTH_SGIS", GL_PACK_IMAGE_DEPTH_SGIS},
    {"GL_UNPACK_SKIP_VOLUMES_SGIS", GL_UNPACK_SKIP_VOLUMES_SGIS},
    {"GL_UNPACK_IMAGE_DEPTH_SGIS", GL_UNPACK_IMAGE_DEPTH_SGIS},
    {"GL_TEXTURE_4D_SGIS", GL_TEXTURE_4D_SGIS},
    {"GL_PROXY_TEXTURE_4D_SGIS", GL_PROXY_TEXTURE_4D_SGIS},
    {"GL_TEXTURE_4DSIZE_SGIS", GL_TEXTURE_4DSIZE_SGIS},
    {"GL_TEXTURE_WRAP_Q_SGIS", GL_TEXTURE_WRAP_Q_SGIS},
    {"GL_MAX_4D_TEXTURE_SIZE_SGIS", GL_MAX_4D_TEXTURE_SIZE_SGIS},
    {"GL_PIXEL_TEX_GEN_SGIX", GL_PIXEL_TEX_GEN_SGIX},
    {"GL_TEXTURE_MIN_LOD", GL_TEXTURE_MIN_LOD},
    {"GL_TEXTURE_MAX_LOD", GL_TEXTURE_MAX_LOD},
    {"GL_TEXTURE_BASE_LEVEL", GL_TEXTURE_BASE_LEVEL},
    {"GL_TEXTURE_MAX_LEVEL", GL_TEXTURE_MAX_LEVEL},
    {"GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX", GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX},
    {"GL_PIXEL_TILE_CACHE_INCREMENT_SGIX", GL_PIXEL_TILE_CACHE_INCREMENT_SGIX},
    {"GL_PIXEL_TILE_WIDTH_SGIX", GL_PIXEL_TILE_WIDTH_SGIX},
    {"GL_PIXEL_TILE_HEIGHT_SGIX", GL_PIXEL_TILE_HEIGHT_SGIX},
    {"GL_PIXEL_TILE_GRID_WIDTH_SGIX", GL_PIXEL_TILE_GRID_WIDTH_SGIX},
    {"GL_PIXEL_TILE_GRID_HEIGHT_SGIX", GL_PIXEL_TILE_GRID_HEIGHT_SGIX},
    {"GL_PIXEL_TILE_GRID_DEPTH_SGIX", GL_PIXEL_TILE_GRID_DEPTH_SGIX},
    {"GL_PIXEL_TILE_CACHE_SIZE_SGIX", GL_PIXEL_TILE_CACHE_SIZE_SGIX},
    {"GL_FILTER4_SGIS", GL_FILTER4_SGIS},
    {"GL_TEXTURE_FILTER4_SIZE_SGIS", GL_TEXTURE_FILTER4_SIZE_SGIS},
    {"GL_SPRITE_SGIX", GL_SPRITE_SGIX},
    {"GL_SPRITE_MODE_SGIX", GL_SPRITE_MODE_SGIX},
    {"GL_SPRITE_AXIS_SGIX", GL_SPRITE_AXIS_SGIX},
    {"GL_SPRITE_TRANSLATION_SGIX", GL_SPRITE_TRANSLATION_SGIX},
    {"GL_SPRITE_AXIAL_SGIX", GL_SPRITE_AXIAL_SGIX},
    {"GL_SPRITE_OBJECT_ALIGNED_SGIX", GL_SPRITE_OBJECT_ALIGNED_SGIX},
    {"GL_SPRITE_EYE_ALIGNED_SGIX", GL_SPRITE_EYE_ALIGNED_SGIX},
    {"GL_TEXTURE_4D_BINDING_SGIS", GL_TEXTURE_4D_BINDING_SGIS},
    {"GL_IGNORE_BORDER_HP", GL_IGNORE_BORDER_HP},
    {"GL_CONSTANT_BORDER", GL_CONSTANT_BORDER},
    {"GL_REPLICATE_BORDER", GL_REPLICATE_BORDER},
    {"GL_CONVOLUTION_BORDER_COLOR", GL_CONVOLUTION_BORDER_COLOR},
    {"GL_IMAGE_SCALE_X_HP", GL_IMAGE_SCALE_X_HP},
    {"GL_IMAGE_SCALE_Y_HP", GL_IMAGE_SCALE_Y_HP},
    {"GL_IMAGE_TRANSLATE_X_HP", GL_IMAGE_TRANSLATE_X_HP},
    {"GL_IMAGE_TRANSLATE_Y_HP", GL_IMAGE_TRANSLATE_Y_HP},
    {"GL_IMAGE_ROTATE_ANGLE_HP", GL_IMAGE_ROTATE_ANGLE_HP},
    {"GL_IMAGE_ROTATE_ORIGIN_X_HP", GL_IMAGE_ROTATE_ORIGIN_X_HP},
    {"GL_IMAGE_ROTATE_ORIGIN_Y_HP", GL_IMAGE_ROTATE_ORIGIN_Y_HP},
    {"GL_IMAGE_MAG_FILTER_HP", GL_IMAGE_MAG_FILTER_HP},
    {"GL_IMAGE_MIN_FILTER_HP", GL_IMAGE_MIN_FILTER_HP},
    {"GL_IMAGE_CUBIC_WEIGHT_HP", GL_IMAGE_CUBIC_WEIGHT_HP},
    {"GL_CUBIC_HP", GL_CUBIC_HP},
    {"GL_AVERAGE_HP", GL_AVERAGE_HP},
    {"GL_IMAGE_TRANSFORM_2D_HP", GL_IMAGE_TRANSFORM_2D_HP},
    {"GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP", GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP},
    {"GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP", GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP},
    {"GL_OCCLUSION_TEST_HP", GL_OCCLUSION_TEST_HP},
    {"GL_OCCLUSION_TEST_RESULT_HP", GL_OCCLUSION_TEST_RESULT_HP},
    {"GL_TEXTURE_LIGHTING_MODE_HP", GL_TEXTURE_LIGHTING_MODE_HP},
    {"GL_TEXTURE_POST_SPECULAR_HP", GL_TEXTURE_POST_SPECULAR_HP},
    {"GL_TEXTURE_PRE_SPECULAR_HP", GL_TEXTURE_PRE_SPECULAR_HP},
    {"GL_LINEAR_CLIPMAP_LINEAR_SGIX", GL_LINEAR_CLIPMAP_LINEAR_SGIX},
    {"GL_TEXTURE_CLIPMAP_CENTER_SGIX", GL_TEXTURE_CLIPMAP_CENTER_SGIX},
    {"GL_TEXTURE_CLIPMAP_FRAME_SGIX", GL_TEXTURE_CLIPMAP_FRAME_SGIX},
    {"GL_TEXTURE_CLIPMAP_OFFSET_SGIX", GL_TEXTURE_CLIPMAP_OFFSET_SGIX},
    {"GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX", GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX},
    {"GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX", GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX},
    {"GL_TEXTURE_CLIPMAP_DEPTH_SGIX", GL_TEXTURE_CLIPMAP_DEPTH_SGIX},
    {"GL_MAX_CLIPMAP_DEPTH_SGIX", GL_MAX_CLIPMAP_DEPTH_SGIX},
    {"GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX", GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX},
    {"GL_POST_TEXTURE_FILTER_BIAS_SGIX", GL_POST_TEXTURE_FILTER_BIAS_SGIX},
    {"GL_POST_TEXTURE_FILTER_SCALE_SGIX", GL_POST_TEXTURE_FILTER_SCALE_SGIX},
    {"GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX", GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX},
    {"GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX", GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX},
    {"GL_REFERENCE_PLANE_SGIX", GL_REFERENCE_PLANE_SGIX},
    {"GL_REFERENCE_PLANE_EQUATION_SGIX", GL_REFERENCE_PLANE_EQUATION_SGIX},
    {"GL_IR_INSTRUMENT1_SGIX", GL_IR_INSTRUMENT1_SGIX},
    {"GL_INSTRUMENT_BUFFER_POINTER_SGIX", GL_INSTRUMENT_BUFFER_POINTER_SGIX},
    {"GL_INSTRUMENT_MEASUREMENTS_SGIX", GL_INSTRUMENT_MEASUREMENTS_SGIX},
    {"GL_LIST_PRIORITY_SGIX", GL_LIST_PRIORITY_SGIX},
    {"GL_CALLIGRAPHIC_FRAGMENT_SGIX", GL_CALLIGRAPHIC_FRAGMENT_SGIX},
    {"GL_PIXEL_TEX_GEN_Q_CEILING_SGIX", GL_PIXEL_TEX_GEN_Q_CEILING_SGIX},
    {"GL_PIXEL_TEX_GEN_Q_ROUND_SGIX", GL_PIXEL_TEX_GEN_Q_ROUND_SGIX},
    {"GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX", GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX},
    {"GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX", GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX},
    {"GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX", GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX},
    {"GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX", GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX},
    {"GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX", GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX},
    {"GL_FRAMEZOOM_SGIX", GL_FRAMEZOOM_SGIX},
    {"GL_FRAMEZOOM_FACTOR_SGIX", GL_FRAMEZOOM_FACTOR_SGIX},
    {"GL_MAX_FRAMEZOOM_FACTOR_SGIX", GL_MAX_FRAMEZOOM_FACTOR_SGIX},
    {"GL_TEXTURE_LOD_BIAS_S_SGIX", GL_TEXTURE_LOD_BIAS_S_SGIX},
    {"GL_TEXTURE_LOD_BIAS_T_SGIX", GL_TEXTURE_LOD_BIAS_T_SGIX},
    {"GL_TEXTURE_LOD_BIAS_R_SGIX", GL_TEXTURE_LOD_BIAS_R_SGIX},
    {"GL_GENERATE_MIPMAP", GL_GENERATE_MIPMAP},
    {"GL_GENERATE_MIPMAP_HINT", GL_GENERATE_MIPMAP_HINT},
    {"GL_GEOMETRY_DEFORMATION_SGIX", GL_GEOMETRY_DEFORMATION_SGIX},
    {"GL_TEXTURE_DEFORMATION_SGIX", GL_TEXTURE_DEFORMATION_SGIX},
    {"GL_DEFORMATIONS_MASK_SGIX", GL_DEFORMATIONS_MASK_SGIX},
    {"GL_MAX_DEFORMATION_ORDER_SGIX", GL_MAX_DEFORMATION_ORDER_SGIX},
    {"GL_FOG_OFFSET_SGIX", GL_FOG_OFFSET_SGIX},
    {"GL_FOG_OFFSET_VALUE_SGIX", GL_FOG_OFFSET_VALUE_SGIX},
    {"GL_TEXTURE_COMPARE_SGIX", GL_TEXTURE_COMPARE_SGIX},
    {"GL_TEXTURE_COMPARE_OPERATOR_SGIX", GL_TEXTURE_COMPARE_OPERATOR_SGIX},
    {"GL_TEXTURE_LEQUAL_R_SGIX", GL_TEXTURE_LEQUAL_R_SGIX},
    {"GL_TEXTURE_GEQUAL_R_SGIX", GL_TEXTURE_GEQUAL_R_SGIX},
    {"GL_DEPTH_COMPONENT16", GL_DEPTH_COMPONENT16},
    {"GL_DEPTH_COMPONENT24", GL_DEPTH_COMPONENT24},
    {"GL_DEPTH_COMPONENT32", GL_DEPTH_COMPONENT32},
    {"GL_ARRAY_ELEMENT_LOCK_FIRST_EXT", GL_ARRAY_ELEMENT_LOCK_FIRST_EXT},
    {"GL_ARRAY_ELEMENT_LOCK_COUNT_EXT", GL_ARRAY_ELEMENT_LOCK_COUNT_EXT},
    {"GL_CULL_VERTEX_EXT", GL_CULL_VERTEX_EXT},
    {"GL_CULL_VERTEX_EYE_POSITION_EXT", GL_CULL_VERTEX_EYE_POSITION_EXT},
    {"GL_CULL_VERTEX_OBJECT_POSITION_EXT", GL_CULL_VERTEX_OBJECT_POSITION_EXT},
    {"GL_IUI_V2F_EXT", GL_IUI_V2F_EXT},
    {"GL_IUI_V3F_EXT", GL_IUI_V3F_EXT},
    {"GL_IUI_N3F_V2F_EXT", GL_IUI_N3F_V2F_EXT},
    {"GL_IUI_N3F_V3F_EXT", GL_IUI_N3F_V3F_EXT},
    {"GL_T2F_IUI_V2F_EXT", GL_T2F_IUI_V2F_EXT},
    {"GL_T2F_IUI_V3F_EXT", GL_T2F_IUI_V3F_EXT},
    {"GL_T2F_IUI_N3F_V2F_EXT", GL_T2F_IUI_N3F_V2F_EXT},
    {"GL_T2F_IUI_N3F_V3F_EXT", GL_T2F_IUI_N3F_V3F_EXT},
    {"GL_INDEX_TEST_EXT", GL_INDEX_TEST_EXT},
    {"GL_INDEX_TEST_FUNC_EXT", GL_INDEX_TEST_FUNC_EXT},
    {"GL_INDEX_TEST_REF_EXT", GL_INDEX_TEST_REF_EXT},
    {"GL_INDEX_MATERIAL_EXT", GL_INDEX_MATERIAL_EXT},
    {"GL_INDEX_MATERIAL_PARAMETER_EXT", GL_INDEX_MATERIAL_PARAMETER_EXT},
    {"GL_INDEX_MATERIAL_FACE_EXT", GL_INDEX_MATERIAL_FACE_EXT},
    {"GL_YCRCB_422_SGIX", GL_YCRCB_422_SGIX},
    {"GL_YCRCB_444_SGIX", GL_YCRCB_444_SGIX},
    {"GL_WRAP_BORDER_SUN", GL_WRAP_BORDER_SUN},
    {"GL_UNPACK_CONSTANT_DATA_SUNX", GL_UNPACK_CONSTANT_DATA_SUNX},
    {"GL_TEXTURE_CONSTANT_DATA_SUNX", GL_TEXTURE_CONSTANT_DATA_SUNX},
    {"GL_TRIANGLE_LIST_SUN", GL_TRIANGLE_LIST_SUN},
    {"GL_REPLACEMENT_CODE_SUN", GL_REPLACEMENT_CODE_SUN},
    {"GL_GLOBAL_ALPHA_SUN", GL_GLOBAL_ALPHA_SUN},
    {"GL_GLOBAL_ALPHA_FACTOR_SUN", GL_GLOBAL_ALPHA_FACTOR_SUN},
    {"GL_TEXTURE_COLOR_WRITEMASK_SGIS", GL_TEXTURE_COLOR_WRITEMASK_SGIS},
    {"GL_EYE_DISTANCE_TO_POINT_SGIS", GL_EYE_DISTANCE_TO_POINT_SGIS},
    {"GL_OBJECT_DISTANCE_TO_POINT_SGIS", GL_OBJECT_DISTANCE_TO_POINT_SGIS},
    {"GL_EYE_DISTANCE_TO_LINE_SGIS", GL_EYE_DISTANCE_TO_LINE_SGIS},
    {"GL_OBJECT_DISTANCE_TO_LINE_SGIS", GL_OBJECT_DISTANCE_TO_LINE_SGIS},
    {"GL_EYE_POINT_SGIS", GL_EYE_POINT_SGIS},
    {"GL_OBJECT_POINT_SGIS", GL_OBJECT_POINT_SGIS},
    {"GL_EYE_LINE_SGIS", GL_EYE_LINE_SGIS},
    {"GL_OBJECT_LINE_SGIS", GL_OBJECT_LINE_SGIS},
    {"GL_LIGHT_MODEL_COLOR_CONTROL", GL_LIGHT_MODEL_COLOR_CONTROL},
    {"GL_SINGLE_COLOR", GL_SINGLE_COLOR},
    {"GL_SEPARATE_SPECULAR_COLOR", GL_SEPARATE_SPECULAR_COLOR},
    {"GL_SHARED_TEXTURE_PALETTE_EXT", GL_SHARED_TEXTURE_PALETTE_EXT},
    {"GL_FOG_SCALE_SGIX", GL_FOG_SCALE_SGIX},
    {"GL_FOG_SCALE_VALUE_SGIX", GL_FOG_SCALE_VALUE_SGIX},
    {"GL_TEXT_FRAGMENT_SHADER_ATI", GL_TEXT_FRAGMENT_SHADER_ATI},
    {"GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING", GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING},
    {"GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE", GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE},
    {"GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE", GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE},
    {"GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE},
    {"GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE},
    {"GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE},
    {"GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE},
    {"GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE},
    {"GL_FRAMEBUFFER_DEFAULT", GL_FRAMEBUFFER_DEFAULT},
    {"GL_FRAMEBUFFER_UNDEFINED", GL_FRAMEBUFFER_UNDEFINED},
    {"GL_DEPTH_STENCIL_ATTACHMENT", GL_DEPTH_STENCIL_ATTACHMENT},
    {"GL_MAJOR_VERSION", GL_MAJOR_VERSION},
    {"GL_MINOR_VERSION", GL_MINOR_VERSION},
    {"GL_NUM_EXTENSIONS", GL_NUM_EXTENSIONS},
    {"GL_CONTEXT_FLAGS", GL_CONTEXT_FLAGS},
    {"GL_BUFFER_IMMUTABLE_STORAGE", GL_BUFFER_IMMUTABLE_STORAGE},
    {"GL_BUFFER_STORAGE_FLAGS", GL_BUFFER_STORAGE_FLAGS},
    {"GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED", GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED},
    {"GL_INDEX", GL_INDEX},
    {"GL_COMPRESSED_RED", GL_COMPRESSED_RED},
    {"GL_COMPRESSED_RG", GL_COMPRESSED_RG},
    {"GL_RG", GL_RG},
    {"GL_RG_INTEGER", GL_RG_INTEGER},
    {"GL_R8", GL_R8},
    {"GL_R16", GL_R16},
    {"GL_RG8", GL_RG8},
    {"GL_RG16", GL_RG16},
    {"GL_R16F", GL_R16F},
    {"GL_R32F", GL_R32F},
    {"GL_RG16F", GL_RG16F},
    {"GL_RG32F", GL_RG32F},
    {"GL_R8I", GL_R8I},
    {"GL_R8UI", GL_R8UI},
    {"GL_R16I", GL_R16I},
    {"GL_R16UI", GL_R16UI},
    {"GL_R32I", GL_R32I},
    {"GL_R32UI", GL_R32UI},
    {"GL_RG8I", GL_RG8I},
    {"GL_RG8UI", GL_RG8UI},
    {"GL_RG16I", GL_RG16I},
    {"GL_RG16UI", GL_RG16UI},
    {"GL_RG32I", GL_RG32I},
    {"GL_RG32UI", GL_RG32UI},
    {"GL_SYNC_CL_EVENT_ARB", GL_SYNC_CL_EVENT_ARB},
    {"GL_SYNC_CL_EVENT_COMPLETE_ARB", GL_SYNC_CL_EVENT_COMPLETE_ARB},
    {"GL_DEBUG_OUTPUT_SYNCHRONOUS", GL_DEBUG_OUTPUT_SYNCHRONOUS},
    {"GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH", GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH},
    {"GL_DEBUG_CALLBACK_FUNCTION", GL_DEBUG_CALLBACK_FUNCTION},
    {"GL_DEBUG_CALLBACK_USER_PARAM", GL_DEBUG_CALLBACK_USER_PARAM},
    {"GL_DEBUG_SOURCE_API", GL_DEBUG_SOURCE_API},
    {"GL_DEBUG_SOURCE_WINDOW_SYSTEM", GL_DEBUG_SOURCE_WINDOW_SYSTEM},
    {"GL_DEBUG_SOURCE_SHADER_COMPILER", GL_DEBUG_SOURCE_SHADER_COMPILER},
    {"GL_DEBUG_SOURCE_THIRD_PARTY", GL_DEBUG_SOURCE_THIRD_PARTY},
    {"GL_DEBUG_SOURCE_APPLICATION", GL_DEBUG_SOURCE_APPLICATION},
    {"GL_DEBUG_SOURCE_OTHER", GL_DEBUG_SOURCE_OTHER},
    {"GL_DEBUG_TYPE_ERROR", GL_DEBUG_TYPE_ERROR},
    {"GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR", GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR},
    {"GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR", GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR},
    {"GL_DEBUG_TYPE_PORTABILITY", GL_DEBUG_TYPE_PORTABILITY},
    {"GL_DEBUG_TYPE_PERFORMANCE", GL_DEBUG_TYPE_PERFORMANCE},
    {"GL_DEBUG_TYPE_OTHER", GL_DEBUG_TYPE_OTHER},
    {"GL_LOSE_CONTEXT_ON_RESET", GL_LOSE_CONTEXT_ON_RESET},
    {"GL_GUILTY_CONTEXT_RESET", GL_GUILTY_CONTEXT_RESET},
    {"GL_INNOCENT_CONTEXT_RESET", GL_INNOCENT_CONTEXT_RESET},
    {"GL_UNKNOWN_CONTEXT_RESET", GL_UNKNOWN_CONTEXT_RESET},
    {"GL_RESET_NOTIFICATION_STRATEGY", GL_RESET_NOTIFICATION_STRATEGY},
    {"GL_PROGRAM_BINARY_RETRIEVABLE_HINT", GL_PROGRAM_BINARY_RETRIEVABLE_HINT},
    {"GL_PROGRAM_SEPARABLE", GL_PROGRAM_SEPARABLE},
    {"GL_ACTIVE_PROGRAM", GL_ACTIVE_PROGRAM},
    {"GL_PROGRAM_PIPELINE_BINDING", GL_PROGRAM_PIPELINE_BINDING},
    {"GL_MAX_VIEWPORTS", GL_MAX_VIEWPORTS},
    {"GL_VIEWPORT_SUBPIXEL_BITS", GL_VIEWPORT_SUBPIXEL_BITS},
    {"GL_VIEWPORT_BOUNDS_RANGE", GL_VIEWPORT_BOUNDS_RANGE},
    {"GL_LAYER_PROVOKING_VERTEX", GL_LAYER_PROVOKING_VERTEX},
    {"GL_VIEWPORT_INDEX_PROVOKING_VERTEX", GL_VIEWPORT_INDEX_PROVOKING_VERTEX},
    {"GL_UNDEFINED_VERTEX", GL_UNDEFINED_VERTEX},
    {"GL_NO_RESET_NOTIFICATION", GL_NO_RESET_NOTIFICATION},
    {"GL_MAX_COMPUTE_SHARED_MEMORY_SIZE", GL_MAX_COMPUTE_SHARED_MEMORY_SIZE},
    {"GL_MAX_COMPUTE_UNIFORM_COMPONENTS", GL_MAX_COMPUTE_UNIFORM_COMPONENTS},
    {"GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS", GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_COMPUTE_ATOMIC_COUNTERS", GL_MAX_COMPUTE_ATOMIC_COUNTERS},
    {"GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS", GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS},
    {"GL_COMPUTE_WORK_GROUP_SIZE", GL_COMPUTE_WORK_GROUP_SIZE},
    {"GL_DEBUG_TYPE_MARKER", GL_DEBUG_TYPE_MARKER},
    {"GL_DEBUG_TYPE_PUSH_GROUP", GL_DEBUG_TYPE_PUSH_GROUP},
    {"GL_DEBUG_TYPE_POP_GROUP", GL_DEBUG_TYPE_POP_GROUP},
    {"GL_DEBUG_SEVERITY_NOTIFICATION", GL_DEBUG_SEVERITY_NOTIFICATION},
    {"GL_MAX_DEBUG_GROUP_STACK_DEPTH", GL_MAX_DEBUG_GROUP_STACK_DEPTH},
    {"GL_DEBUG_GROUP_STACK_DEPTH", GL_DEBUG_GROUP_STACK_DEPTH},
    {"GL_MAX_UNIFORM_LOCATIONS", GL_MAX_UNIFORM_LOCATIONS},
    {"GL_INTERNALFORMAT_SUPPORTED", GL_INTERNALFORMAT_SUPPORTED},
    {"GL_INTERNALFORMAT_PREFERRED", GL_INTERNALFORMAT_PREFERRED},
    {"GL_INTERNALFORMAT_RED_SIZE", GL_INTERNALFORMAT_RED_SIZE},
    {"GL_INTERNALFORMAT_GREEN_SIZE", GL_INTERNALFORMAT_GREEN_SIZE},
    {"GL_INTERNALFORMAT_BLUE_SIZE", GL_INTERNALFORMAT_BLUE_SIZE},
    {"GL_INTERNALFORMAT_ALPHA_SIZE", GL_INTERNALFORMAT_ALPHA_SIZE},
    {"GL_INTERNALFORMAT_DEPTH_SIZE", GL_INTERNALFORMAT_DEPTH_SIZE},
    {"GL_INTERNALFORMAT_STENCIL_SIZE", GL_INTERNALFORMAT_STENCIL_SIZE},
    {"GL_INTERNALFORMAT_SHARED_SIZE", GL_INTERNALFORMAT_SHARED_SIZE},
    {"GL_INTERNALFORMAT_RED_TYPE", GL_INTERNALFORMAT_RED_TYPE},
    {"GL_INTERNALFORMAT_GREEN_TYPE", GL_INTERNALFORMAT_GREEN_TYPE},
    {"GL_INTERNALFORMAT_BLUE_TYPE", GL_INTERNALFORMAT_BLUE_TYPE},
    {"GL_INTERNALFORMAT_ALPHA_TYPE", GL_INTERNALFORMAT_ALPHA_TYPE},
    {"GL_INTERNALFORMAT_DEPTH_TYPE", GL_INTERNALFORMAT_DEPTH_TYPE},
    {"GL_INTERNALFORMAT_STENCIL_TYPE", GL_INTERNALFORMAT_STENCIL_TYPE},
    {"GL_MAX_WIDTH", GL_MAX_WIDTH},
    {"GL_MAX_HEIGHT", GL_MAX_HEIGHT},
    {"GL_MAX_DEPTH", GL_MAX_DEPTH},
    {"GL_MAX_LAYERS", GL_MAX_LAYERS},
    {"GL_MAX_COMBINED_DIMENSIONS", GL_MAX_COMBINED_DIMENSIONS},
    {"GL_COLOR_COMPONENTS", GL_COLOR_COMPONENTS},
    {"GL_DEPTH_COMPONENTS", GL_DEPTH_COMPONENTS},
    {"GL_STENCIL_COMPONENTS", GL_STENCIL_COMPONENTS},
    {"GL_COLOR_RENDERABLE", GL_COLOR_RENDERABLE},
    {"GL_DEPTH_RENDERABLE", GL_DEPTH_RENDERABLE},
    {"GL_STENCIL_RENDERABLE", GL_STENCIL_RENDERABLE},
    {"GL_FRAMEBUFFER_RENDERABLE", GL_FRAMEBUFFER_RENDERABLE},
    {"GL_FRAMEBUFFER_RENDERABLE_LAYERED", GL_FRAMEBUFFER_RENDERABLE_LAYERED},
    {"GL_FRAMEBUFFER_BLEND", GL_FRAMEBUFFER_BLEND},
    {"GL_READ_PIXELS", GL_READ_PIXELS},
    {"GL_READ_PIXELS_FORMAT", GL_READ_PIXELS_FORMAT},
    {"GL_READ_PIXELS_TYPE", GL_READ_PIXELS_TYPE},
    {"GL_TEXTURE_IMAGE_FORMAT", GL_TEXTURE_IMAGE_FORMAT},
    {"GL_TEXTURE_IMAGE_TYPE", GL_TEXTURE_IMAGE_TYPE},
    {"GL_GET_TEXTURE_IMAGE_FORMAT", GL_GET_TEXTURE_IMAGE_FORMAT},
    {"GL_GET_TEXTURE_IMAGE_TYPE", GL_GET_TEXTURE_IMAGE_TYPE},
    {"GL_MIPMAP", GL_MIPMAP},
    {"GL_MANUAL_GENERATE_MIPMAP", GL_MANUAL_GENERATE_MIPMAP},
    {"GL_AUTO_GENERATE_MIPMAP", GL_AUTO_GENERATE_MIPMAP},
    {"GL_COLOR_ENCODING", GL_COLOR_ENCODING},
    {"GL_SRGB_READ", GL_SRGB_READ},
    {"GL_SRGB_WRITE", GL_SRGB_WRITE},
    {"GL_SRGB_DECODE_ARB", GL_SRGB_DECODE_ARB},
    {"GL_FILTER", GL_FILTER},
    {"GL_VERTEX_TEXTURE", GL_VERTEX_TEXTURE},
    {"GL_TESS_CONTROL_TEXTURE", GL_TESS_CONTROL_TEXTURE},
    {"GL_TESS_EVALUATION_TEXTURE", GL_TESS_EVALUATION_TEXTURE},
    {"GL_GEOMETRY_TEXTURE", GL_GEOMETRY_TEXTURE},
    {"GL_FRAGMENT_TEXTURE", GL_FRAGMENT_TEXTURE},
    {"GL_COMPUTE_TEXTURE", GL_COMPUTE_TEXTURE},
    {"GL_TEXTURE_SHADOW", GL_TEXTURE_SHADOW},
    {"GL_TEXTURE_GATHER", GL_TEXTURE_GATHER},
    {"GL_TEXTURE_GATHER_SHADOW", GL_TEXTURE_GATHER_SHADOW},
    {"GL_SHADER_IMAGE_LOAD", GL_SHADER_IMAGE_LOAD},
    {"GL_SHADER_IMAGE_STORE", GL_SHADER_IMAGE_STORE},
    {"GL_SHADER_IMAGE_ATOMIC", GL_SHADER_IMAGE_ATOMIC},
    {"GL_IMAGE_TEXEL_SIZE", GL_IMAGE_TEXEL_SIZE},
    {"GL_IMAGE_COMPATIBILITY_CLASS", GL_IMAGE_COMPATIBILITY_CLASS},
    {"GL_IMAGE_PIXEL_FORMAT", GL_IMAGE_PIXEL_FORMAT},
    {"GL_IMAGE_PIXEL_TYPE", GL_IMAGE_PIXEL_TYPE},
    {"GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST", GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST},
    {"GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST", GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST},
    {"GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE", GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE},
    {"GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE", GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE},
    {"GL_TEXTURE_COMPRESSED_BLOCK_WIDTH", GL_TEXTURE_COMPRESSED_BLOCK_WIDTH},
    {"GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT", GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT},
    {"GL_TEXTURE_COMPRESSED_BLOCK_SIZE", GL_TEXTURE_COMPRESSED_BLOCK_SIZE},
    {"GL_CLEAR_BUFFER", GL_CLEAR_BUFFER},
    {"GL_TEXTURE_VIEW", GL_TEXTURE_VIEW},
    {"GL_VIEW_COMPATIBILITY_CLASS", GL_VIEW_COMPATIBILITY_CLASS},
    {"GL_FULL_SUPPORT", GL_FULL_SUPPORT},
    {"GL_CAVEAT_SUPPORT", GL_CAVEAT_SUPPORT},
    {"GL_IMAGE_CLASS_4_X_32", GL_IMAGE_CLASS_4_X_32},
    {"GL_IMAGE_CLASS_2_X_32", GL_IMAGE_CLASS_2_X_32},
    {"GL_IMAGE_CLASS_1_X_32", GL_IMAGE_CLASS_1_X_32},
    {"GL_IMAGE_CLASS_4_X_16", GL_IMAGE_CLASS_4_X_16},
    {"GL_IMAGE_CLASS_2_X_16", GL_IMAGE_CLASS_2_X_16},
    {"GL_IMAGE_CLASS_1_X_16", GL_IMAGE_CLASS_1_X_16},
    {"GL_IMAGE_CLASS_4_X_8", GL_IMAGE_CLASS_4_X_8},
    {"GL_IMAGE_CLASS_2_X_8", GL_IMAGE_CLASS_2_X_8},
    {"GL_IMAGE_CLASS_1_X_8", GL_IMAGE_CLASS_1_X_8},
    {"GL_IMAGE_CLASS_11_11_10", GL_IMAGE_CLASS_11_11_10},
    {"GL_IMAGE_CLASS_10_10_10_2", GL_IMAGE_CLASS_10_10_10_2},
    {"GL_VIEW_CLASS_128_BITS", GL_VIEW_CLASS_128_BITS},
    {"GL_VIEW_CLASS_96_BITS", GL_VIEW_CLASS_96_BITS},
    {"GL_VIEW_CLASS_64_BITS", GL_VIEW_CLASS_64_BITS},
    {"GL_VIEW_CLASS_48_BITS", GL_VIEW_CLASS_48_BITS},
    {"GL_VIEW_CLASS_32_BITS", GL_VIEW_CLASS_32_BITS},
    {"GL_VIEW_CLASS_24_BITS", GL_VIEW_CLASS_24_BITS},
    {"GL_VIEW_CLASS_16_BITS", GL_VIEW_CLASS_16_BITS},
    {"GL_VIEW_CLASS_8_BITS", GL_VIEW_CLASS_8_BITS},
    {"GL_VIEW_CLASS_S3TC_DXT1_RGB", GL_VIEW_CLASS_S3TC_DXT1_RGB},
    {"GL_VIEW_CLASS_S3TC_DXT1_RGBA", GL_VIEW_CLASS_S3TC_DXT1_RGBA},
    {"GL_VIEW_CLASS_S3TC_DXT3_RGBA", GL_VIEW_CLASS_S3TC_DXT3_RGBA},
    {"GL_VIEW_CLASS_S3TC_DXT5_RGBA", GL_VIEW_CLASS_S3TC_DXT5_RGBA},
    {"GL_VIEW_CLASS_RGTC1_RED", GL_VIEW_CLASS_RGTC1_RED},
    {"GL_VIEW_CLASS_RGTC2_RG", GL_VIEW_CLASS_RGTC2_RG},
    {"GL_VIEW_CLASS_BPTC_UNORM", GL_VIEW_CLASS_BPTC_UNORM},
    {"GL_VIEW_CLASS_BPTC_FLOAT", GL_VIEW_CLASS_BPTC_FLOAT},
    {"GL_VERTEX_ATTRIB_BINDING", GL_VERTEX_ATTRIB_BINDING},
    {"GL_VERTEX_ATTRIB_RELATIVE_OFFSET", GL_VERTEX_ATTRIB_RELATIVE_OFFSET},
    {"GL_VERTEX_BINDING_DIVISOR", GL_VERTEX_BINDING_DIVISOR},
    {"GL_VERTEX_BINDING_OFFSET", GL_VERTEX_BINDING_OFFSET},
    {"GL_VERTEX_BINDING_STRIDE", GL_VERTEX_BINDING_STRIDE},
    {"GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET", GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET},
    {"GL_MAX_VERTEX_ATTRIB_BINDINGS", GL_MAX_VERTEX_ATTRIB_BINDINGS},
    {"GL_TEXTURE_VIEW_MIN_LEVEL", GL_TEXTURE_VIEW_MIN_LEVEL},
    {"GL_TEXTURE_VIEW_NUM_LEVELS", GL_TEXTURE_VIEW_NUM_LEVELS},
    {"GL_TEXTURE_VIEW_MIN_LAYER", GL_TEXTURE_VIEW_MIN_LAYER},
    {"GL_TEXTURE_VIEW_NUM_LAYERS", GL_TEXTURE_VIEW_NUM_LAYERS},
    {"GL_TEXTURE_IMMUTABLE_LEVELS", GL_TEXTURE_IMMUTABLE_LEVELS},
    {"GL_BUFFER", GL_BUFFER},
    {"GL_SHADER", GL_SHADER},
    {"GL_PROGRAM", GL_PROGRAM},
    {"GL_QUERY", GL_QUERY},
    {"GL_PROGRAM_PIPELINE", GL_PROGRAM_PIPELINE},
    {"GL_MAX_VERTEX_ATTRIB_STRIDE", GL_MAX_VERTEX_ATTRIB_STRIDE},
    {"GL_SAMPLER", GL_SAMPLER},
    {"GL_DISPLAY_LIST", GL_DISPLAY_LIST},
    {"GL_MAX_LABEL_LENGTH", GL_MAX_LABEL_LENGTH},
    {"GL_NUM_SHADING_LANGUAGE_VERSIONS", GL_NUM_SHADING_LANGUAGE_VERSIONS},
    {"GL_QUERY_TARGET", GL_QUERY_TARGET},
    {"GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB", GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB},
    {"GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB", GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB},
    {"GL_VERTICES_SUBMITTED_ARB", GL_VERTICES_SUBMITTED_ARB},
    {"GL_PRIMITIVES_SUBMITTED_ARB", GL_PRIMITIVES_SUBMITTED_ARB},
    {"GL_VERTEX_SHADER_INVOCATIONS_ARB", GL_VERTEX_SHADER_INVOCATIONS_ARB},
    {"GL_TESS_CONTROL_SHADER_PATCHES_ARB", GL_TESS_CONTROL_SHADER_PATCHES_ARB},
    {"GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB", GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB},
    {"GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB", GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB},
    {"GL_FRAGMENT_SHADER_INVOCATIONS_ARB", GL_FRAGMENT_SHADER_INVOCATIONS_ARB},
    {"GL_COMPUTE_SHADER_INVOCATIONS_ARB", GL_COMPUTE_SHADER_INVOCATIONS_ARB},
    {"GL_CLIPPING_INPUT_PRIMITIVES_ARB", GL_CLIPPING_INPUT_PRIMITIVES_ARB},
    {"GL_CLIPPING_OUTPUT_PRIMITIVES_ARB", GL_CLIPPING_OUTPUT_PRIMITIVES_ARB},
    {"GL_SPARSE_BUFFER_PAGE_SIZE_ARB", GL_SPARSE_BUFFER_PAGE_SIZE_ARB},
    {"GL_MAX_CULL_DISTANCES", GL_MAX_CULL_DISTANCES},
    {"GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES", GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES},
    {"GL_CONTEXT_RELEASE_BEHAVIOR", GL_CONTEXT_RELEASE_BEHAVIOR},
    {"GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH", GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH},
    {"GL_DEPTH_PASS_INSTRUMENT_SGIX", GL_DEPTH_PASS_INSTRUMENT_SGIX},
    {"GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX", GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX},
    {"GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX", GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX},
    {"GL_CONVOLUTION_HINT_SGIX", GL_CONVOLUTION_HINT_SGIX},
    {"GL_YCRCB_SGIX", GL_YCRCB_SGIX},
    {"GL_YCRCBA_SGIX", GL_YCRCBA_SGIX},
    {"GL_ALPHA_MIN_SGIX", GL_ALPHA_MIN_SGIX},
    {"GL_ALPHA_MAX_SGIX", GL_ALPHA_MAX_SGIX},
    {"GL_SCALEBIAS_HINT_SGIX", GL_SCALEBIAS_HINT_SGIX},
    {"GL_ASYNC_MARKER_SGIX", GL_ASYNC_MARKER_SGIX},
    {"GL_PIXEL_TEX_GEN_MODE_SGIX", GL_PIXEL_TEX_GEN_MODE_SGIX},
    {"GL_ASYNC_HISTOGRAM_SGIX", GL_ASYNC_HISTOGRAM_SGIX},
    {"GL_MAX_ASYNC_HISTOGRAM_SGIX", GL_MAX_ASYNC_HISTOGRAM_SGIX},
    {"GL_PIXEL_TRANSFORM_2D_EXT", GL_PIXEL_TRANSFORM_2D_EXT},
    {"GL_PIXEL_MAG_FILTER_EXT", GL_PIXEL_MAG_FILTER_EXT},
    {"GL_PIXEL_MIN_FILTER_EXT", GL_PIXEL_MIN_FILTER_EXT},
    {"GL_PIXEL_CUBIC_WEIGHT_EXT", GL_PIXEL_CUBIC_WEIGHT_EXT},
    {"GL_CUBIC_EXT", GL_CUBIC_EXT},
    {"GL_AVERAGE_EXT", GL_AVERAGE_EXT},
    {"GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT", GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT},
    {"GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT", GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT},
    {"GL_PIXEL_TRANSFORM_2D_MATRIX_EXT", GL_PIXEL_TRANSFORM_2D_MATRIX_EXT},
    {"GL_FRAGMENT_MATERIAL_EXT", GL_FRAGMENT_MATERIAL_EXT},
    {"GL_FRAGMENT_NORMAL_EXT", GL_FRAGMENT_NORMAL_EXT},
    {"GL_FRAGMENT_COLOR_EXT", GL_FRAGMENT_COLOR_EXT},
    {"GL_ATTENUATION_EXT", GL_ATTENUATION_EXT},
    {"GL_SHADOW_ATTENUATION_EXT", GL_SHADOW_ATTENUATION_EXT},
    {"GL_TEXTURE_APPLICATION_MODE_EXT", GL_TEXTURE_APPLICATION_MODE_EXT},
    {"GL_TEXTURE_LIGHT_EXT", GL_TEXTURE_LIGHT_EXT},
    {"GL_TEXTURE_MATERIAL_FACE_EXT", GL_TEXTURE_MATERIAL_FACE_EXT},
    {"GL_TEXTURE_MATERIAL_PARAMETER_EXT", GL_TEXTURE_MATERIAL_PARAMETER_EXT},
    {"GL_PIXEL_TEXTURE_SGIS", GL_PIXEL_TEXTURE_SGIS},
    {"GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS", GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS},
    {"GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS", GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS},
    {"GL_PIXEL_GROUP_COLOR_SGIS", GL_PIXEL_GROUP_COLOR_SGIS},
    {"GL_ASYNC_TEX_IMAGE_SGIX", GL_ASYNC_TEX_IMAGE_SGIX},
    {"GL_ASYNC_DRAW_PIXELS_SGIX", GL_ASYNC_DRAW_PIXELS_SGIX},
    {"GL_ASYNC_READ_PIXELS_SGIX", GL_ASYNC_READ_PIXELS_SGIX},
    {"GL_MAX_ASYNC_TEX_IMAGE_SGIX", GL_MAX_ASYNC_TEX_IMAGE_SGIX},
    {"GL_MAX_ASYNC_DRAW_PIXELS_SGIX", GL_MAX_ASYNC_DRAW_PIXELS_SGIX},
    {"GL_MAX_ASYNC_READ_PIXELS_SGIX", GL_MAX_ASYNC_READ_PIXELS_SGIX},
    {"GL_UNSIGNED_BYTE_2_3_3_REV", GL_UNSIGNED_BYTE_2_3_3_REV},
    {"GL_UNSIGNED_SHORT_5_6_5", GL_UNSIGNED_SHORT_5_6_5},
    {"GL_UNSIGNED_SHORT_5_6_5_REV", GL_UNSIGNED_SHORT_5_6_5_REV},
    {"GL_UNSIGNED_SHORT_4_4_4_4_REV", GL_UNSIGNED_SHORT_4_4_4_4_REV},
    {"GL_UNSIGNED_SHORT_1_5_5_5_REV", GL_UNSIGNED_SHORT_1_5_5_5_REV},
    {"GL_UNSIGNED_INT_8_8_8_8_REV", GL_UNSIGNED_INT_8_8_8_8_REV},
    {"GL_UNSIGNED_INT_2_10_10_10_REV", GL_UNSIGNED_INT_2_10_10_10_REV},
    {"GL_TEXTURE_MAX_CLAMP_S_SGIX", GL_TEXTURE_MAX_CLAMP_S_SGIX},
    {"GL_TEXTURE_MAX_CLAMP_T_SGIX", GL_TEXTURE_MAX_CLAMP_T_SGIX},
    {"GL_TEXTURE_MAX_CLAMP_R_SGIX", GL_TEXTURE_MAX_CLAMP_R_SGIX},
    {"GL_MIRRORED_REPEAT", GL_MIRRORED_REPEAT},
    {"GL_RGB_S3TC", GL_RGB_S3TC},
    {"GL_RGB4_S3TC", GL_RGB4_S3TC},
    {"GL_RGBA_S3TC", GL_RGBA_S3TC},
    {"GL_RGBA4_S3TC", GL_RGBA4_S3TC},
    {"GL_RGBA_DXT5_S3TC", GL_RGBA_DXT5_S3TC},
    {"GL_RGBA4_DXT5_S3TC", GL_RGBA4_DXT5_S3TC},
    {"GL_VERTEX_PRECLIP_SGIX", GL_VERTEX_PRECLIP_SGIX},
    {"GL_VERTEX_PRECLIP_HINT_SGIX", GL_VERTEX_PRECLIP_HINT_SGIX},
    {"GL_COMPRESSED_RGB_S3TC_DXT1_EXT", GL_COMPRESSED_RGB_S3TC_DXT1_EXT},
    {"GL_COMPRESSED_RGBA_S3TC_DXT1_EXT", GL_COMPRESSED_RGBA_S3TC_DXT1_EXT},
    {"GL_COMPRESSED_RGBA_S3TC_DXT3_EXT", GL_COMPRESSED_RGBA_S3TC_DXT3_EXT},
    {"GL_COMPRESSED_RGBA_S3TC_DXT5_EXT", GL_COMPRESSED_RGBA_S3TC_DXT5_EXT},
    {"GL_PARALLEL_ARRAYS_INTEL", GL_PARALLEL_ARRAYS_INTEL},
    {"GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL", GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL},
    {"GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL", GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL},
    {"GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL", GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL},
    {"GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL", GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL},
    {"GL_PERFQUERY_DONOT_FLUSH_INTEL", GL_PERFQUERY_DONOT_FLUSH_INTEL},
    {"GL_PERFQUERY_FLUSH_INTEL", GL_PERFQUERY_FLUSH_INTEL},
    {"GL_PERFQUERY_WAIT_INTEL", GL_PERFQUERY_WAIT_INTEL},
    {"GL_TEXTURE_MEMORY_LAYOUT_INTEL", GL_TEXTURE_MEMORY_LAYOUT_INTEL},
    {"GL_FRAGMENT_LIGHTING_SGIX", GL_FRAGMENT_LIGHTING_SGIX},
    {"GL_FRAGMENT_COLOR_MATERIAL_SGIX", GL_FRAGMENT_COLOR_MATERIAL_SGIX},
    {"GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX", GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX},
    {"GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX", GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX},
    {"GL_MAX_FRAGMENT_LIGHTS_SGIX", GL_MAX_FRAGMENT_LIGHTS_SGIX},
    {"GL_MAX_ACTIVE_LIGHTS_SGIX", GL_MAX_ACTIVE_LIGHTS_SGIX},
    {"GL_CURRENT_RASTER_NORMAL_SGIX", GL_CURRENT_RASTER_NORMAL_SGIX},
    {"GL_LIGHT_ENV_MODE_SGIX", GL_LIGHT_ENV_MODE_SGIX},
    {"GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX", GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX},
    {"GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX", GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX},
    {"GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX", GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX},
    {"GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX", GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX},
    {"GL_FRAGMENT_LIGHT0_SGIX", GL_FRAGMENT_LIGHT0_SGIX},
    {"GL_FRAGMENT_LIGHT1_SGIX", GL_FRAGMENT_LIGHT1_SGIX},
    {"GL_FRAGMENT_LIGHT2_SGIX", GL_FRAGMENT_LIGHT2_SGIX},
    {"GL_FRAGMENT_LIGHT3_SGIX", GL_FRAGMENT_LIGHT3_SGIX},
    {"GL_FRAGMENT_LIGHT4_SGIX", GL_FRAGMENT_LIGHT4_SGIX},
    {"GL_FRAGMENT_LIGHT5_SGIX", GL_FRAGMENT_LIGHT5_SGIX},
    {"GL_FRAGMENT_LIGHT6_SGIX", GL_FRAGMENT_LIGHT6_SGIX},
    {"GL_FRAGMENT_LIGHT7_SGIX", GL_FRAGMENT_LIGHT7_SGIX},
    {"GL_PACK_RESAMPLE_SGIX", GL_PACK_RESAMPLE_SGIX},
    {"GL_UNPACK_RESAMPLE_SGIX", GL_UNPACK_RESAMPLE_SGIX},
    {"GL_RESAMPLE_DECIMATE_SGIX", GL_RESAMPLE_DECIMATE_SGIX},
    {"GL_RESAMPLE_REPLICATE_SGIX", GL_RESAMPLE_REPLICATE_SGIX},
    {"GL_RESAMPLE_ZERO_FILL_SGIX", GL_RESAMPLE_ZERO_FILL_SGIX},
    {"GL_TANGENT_ARRAY_EXT", GL_TANGENT_ARRAY_EXT},
    {"GL_BINORMAL_ARRAY_EXT", GL_BINORMAL_ARRAY_EXT},
    {"GL_CURRENT_TANGENT_EXT", GL_CURRENT_TANGENT_EXT},
    {"GL_CURRENT_BINORMAL_EXT", GL_CURRENT_BINORMAL_EXT},
    {"GL_TANGENT_ARRAY_TYPE_EXT", GL_TANGENT_ARRAY_TYPE_EXT},
    {"GL_TANGENT_ARRAY_STRIDE_EXT", GL_TANGENT_ARRAY_STRIDE_EXT},
    {"GL_BINORMAL_ARRAY_TYPE_EXT", GL_BINORMAL_ARRAY_TYPE_EXT},
    {"GL_BINORMAL_ARRAY_STRIDE_EXT", GL_BINORMAL_ARRAY_STRIDE_EXT},
    {"GL_TANGENT_ARRAY_POINTER_EXT", GL_TANGENT_ARRAY_POINTER_EXT},
    {"GL_BINORMAL_ARRAY_POINTER_EXT", GL_BINORMAL_ARRAY_POINTER_EXT},
    {"GL_MAP1_TANGENT_EXT", GL_MAP1_TANGENT_EXT},
    {"GL_MAP2_TANGENT_EXT", GL_MAP2_TANGENT_EXT},
    {"GL_MAP1_BINORMAL_EXT", GL_MAP1_BINORMAL_EXT},
    {"GL_MAP2_BINORMAL_EXT", GL_MAP2_BINORMAL_EXT},
    {"GL_NEAREST_CLIPMAP_NEAREST_SGIX", GL_NEAREST_CLIPMAP_NEAREST_SGIX},
    {"GL_NEAREST_CLIPMAP_LINEAR_SGIX", GL_NEAREST_CLIPMAP_LINEAR_SGIX},
    {"GL_LINEAR_CLIPMAP_NEAREST_SGIX", GL_LINEAR_CLIPMAP_NEAREST_SGIX},
    {"GL_FOG_COORD_SRC", GL_FOG_COORD_SRC},
    {"GL_FOG_COORD", GL_FOG_COORD},
    {"GL_FRAGMENT_DEPTH", GL_FRAGMENT_DEPTH},
    {"GL_CURRENT_FOG_COORD", GL_CURRENT_FOG_COORD},
    {"GL_FOG_COORD_ARRAY_TYPE", GL_FOG_COORD_ARRAY_TYPE},
    {"GL_FOG_COORD_ARRAY_STRIDE", GL_FOG_COORD_ARRAY_STRIDE},
    {"GL_FOG_COORD_ARRAY_POINTER", GL_FOG_COORD_ARRAY_POINTER},
    {"GL_FOG_COORD_ARRAY", GL_FOG_COORD_ARRAY},
    {"GL_COLOR_SUM", GL_COLOR_SUM},
    {"GL_CURRENT_SECONDARY_COLOR", GL_CURRENT_SECONDARY_COLOR},
    {"GL_SECONDARY_COLOR_ARRAY_SIZE", GL_SECONDARY_COLOR_ARRAY_SIZE},
    {"GL_SECONDARY_COLOR_ARRAY_TYPE", GL_SECONDARY_COLOR_ARRAY_TYPE},
    {"GL_SECONDARY_COLOR_ARRAY_STRIDE", GL_SECONDARY_COLOR_ARRAY_STRIDE},
    {"GL_SECONDARY_COLOR_ARRAY_POINTER", GL_SECONDARY_COLOR_ARRAY_POINTER},
    {"GL_SECONDARY_COLOR_ARRAY", GL_SECONDARY_COLOR_ARRAY},
    {"GL_CURRENT_RASTER_SECONDARY_COLOR", GL_CURRENT_RASTER_SECONDARY_COLOR},
    {"GL_ALIASED_POINT_SIZE_RANGE", GL_ALIASED_POINT_SIZE_RANGE},
    {"GL_ALIASED_LINE_WIDTH_RANGE", GL_ALIASED_LINE_WIDTH_RANGE},
    {"GL_SCREEN_COORDINATES_REND", GL_SCREEN_COORDINATES_REND},
    {"GL_INVERTED_SCREEN_W_REND", GL_INVERTED_SCREEN_W_REND},
    {"GL_TEXTURE0", GL_TEXTURE0},
    {"GL_TEXTURE1", GL_TEXTURE1},
    {"GL_TEXTURE2", GL_TEXTURE2},
    {"GL_TEXTURE3", GL_TEXTURE3},
    {"GL_TEXTURE4", GL_TEXTURE4},
    {"GL_TEXTURE5", GL_TEXTURE5},
    {"GL_TEXTURE6", GL_TEXTURE6},
    {"GL_TEXTURE7", GL_TEXTURE7},
    {"GL_TEXTURE8", GL_TEXTURE8},
    {"GL_TEXTURE9", GL_TEXTURE9},
    {"GL_TEXTURE10", GL_TEXTURE10},
    {"GL_TEXTURE11", GL_TEXTURE11},
    {"GL_TEXTURE12", GL_TEXTURE12},
    {"GL_TEXTURE13", GL_TEXTURE13},
    {"GL_TEXTURE14", GL_TEXTURE14},
    {"GL_TEXTURE15", GL_TEXTURE15},
    {"GL_TEXTURE16", GL_TEXTURE16},
    {"GL_TEXTURE17", GL_TEXTURE17},
    {"GL_TEXTURE18", GL_TEXTURE18},
    {"GL_TEXTURE19", GL_TEXTURE19},
    {"GL_TEXTURE20", GL_TEXTURE20},
    {"GL_TEXTURE21", GL_TEXTURE21},
    {"GL_TEXTURE22", GL_TEXTURE22},
    {"GL_TEXTURE23", GL_TEXTURE23},
    {"GL_TEXTURE24", GL_TEXTURE24},
    {"GL_TEXTURE25", GL_TEXTURE25},
    {"GL_TEXTURE26", GL_TEXTURE26},
    {"GL_TEXTURE27", GL_TEXTURE27},
    {"GL_TEXTURE28", GL_TEXTURE28},
    {"GL_TEXTURE29", GL_TEXTURE29},
    {"GL_TEXTURE30", GL_TEXTURE30},
    {"GL_TEXTURE31", GL_TEXTURE31},
    {"GL_ACTIVE_TEXTURE", GL_ACTIVE_TEXTURE},
    {"GL_CLIENT_ACTIVE_TEXTURE", GL_CLIENT_ACTIVE_TEXTURE},
    {"GL_MAX_TEXTURE_UNITS", GL_MAX_TEXTURE_UNITS},
    {"GL_TRANSPOSE_MODELVIEW_MATRIX", GL_TRANSPOSE_MODELVIEW_MATRIX},
    {"GL_TRANSPOSE_PROJECTION_MATRIX", GL_TRANSPOSE_PROJECTION_MATRIX},
    {"GL_TRANSPOSE_TEXTURE_MATRIX", GL_TRANSPOSE_TEXTURE_MATRIX},
    {"GL_TRANSPOSE_COLOR_MATRIX", GL_TRANSPOSE_COLOR_MATRIX},
    {"GL_SUBTRACT", GL_SUBTRACT},
    {"GL_MAX_RENDERBUFFER_SIZE", GL_MAX_RENDERBUFFER_SIZE},
    {"GL_COMPRESSED_ALPHA", GL_COMPRESSED_ALPHA},
    {"GL_COMPRESSED_LUMINANCE", GL_COMPRESSED_LUMINANCE},
    {"GL_COMPRESSED_LUMINANCE_ALPHA", GL_COMPRESSED_LUMINANCE_ALPHA},
    {"GL_COMPRESSED_INTENSITY", GL_COMPRESSED_INTENSITY},
    {"GL_COMPRESSED_RGB", GL_COMPRESSED_RGB},
    {"GL_COMPRESSED_RGBA", GL_COMPRESSED_RGBA},
    {"GL_TEXTURE_COMPRESSION_HINT", GL_TEXTURE_COMPRESSION_HINT},
    {"GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER},
    {"GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER},
    {"GL_ALL_COMPLETED_NV", GL_ALL_COMPLETED_NV},
    {"GL_FENCE_STATUS_NV", GL_FENCE_STATUS_NV},
    {"GL_FENCE_CONDITION_NV", GL_FENCE_CONDITION_NV},
    {"GL_TEXTURE_RECTANGLE", GL_TEXTURE_RECTANGLE},
    {"GL_TEXTURE_BINDING_RECTANGLE", GL_TEXTURE_BINDING_RECTANGLE},
    {"GL_PROXY_TEXTURE_RECTANGLE", GL_PROXY_TEXTURE_RECTANGLE},
    {"GL_MAX_RECTANGLE_TEXTURE_SIZE", GL_MAX_RECTANGLE_TEXTURE_SIZE},
    {"GL_DEPTH_STENCIL", GL_DEPTH_STENCIL},
    {"GL_UNSIGNED_INT_24_8", GL_UNSIGNED_INT_24_8},
    {"GL_MAX_TEXTURE_LOD_BIAS", GL_MAX_TEXTURE_LOD_BIAS},
    {"GL_TEXTURE_MAX_ANISOTROPY_EXT", GL_TEXTURE_MAX_ANISOTROPY_EXT},
    {"GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT},
    {"GL_TEXTURE_FILTER_CONTROL", GL_TEXTURE_FILTER_CONTROL},
    {"GL_TEXTURE_LOD_BIAS", GL_TEXTURE_LOD_BIAS},
    {"GL_MODELVIEW1_STACK_DEPTH_EXT", GL_MODELVIEW1_STACK_DEPTH_EXT},
    {"GL_COMBINE4_NV", GL_COMBINE4_NV},
    {"GL_MAX_SHININESS_NV", GL_MAX_SHININESS_NV},
    {"GL_MAX_SPOT_EXPONENT_NV", GL_MAX_SPOT_EXPONENT_NV},
    {"GL_MODELVIEW1_MATRIX_EXT", GL_MODELVIEW1_MATRIX_EXT},
    {"GL_INCR_WRAP", GL_INCR_WRAP},
    {"GL_DECR_WRAP", GL_DECR_WRAP},
    {"GL_VERTEX_WEIGHTING_EXT", GL_VERTEX_WEIGHTING_EXT},
    {"GL_MODELVIEW1_ARB", GL_MODELVIEW1_ARB},
    {"GL_CURRENT_VERTEX_WEIGHT_EXT", GL_CURRENT_VERTEX_WEIGHT_EXT},
    {"GL_VERTEX_WEIGHT_ARRAY_EXT", GL_VERTEX_WEIGHT_ARRAY_EXT},
    {"GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT", GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT},
    {"GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT", GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT},
    {"GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT", GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT},
    {"GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT", GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT},
    {"GL_NORMAL_MAP", GL_NORMAL_MAP},
    {"GL_REFLECTION_MAP", GL_REFLECTION_MAP},
    {"GL_TEXTURE_CUBE_MAP", GL_TEXTURE_CUBE_MAP},
    {"GL_TEXTURE_BINDING_CUBE_MAP", GL_TEXTURE_BINDING_CUBE_MAP},
    {"GL_TEXTURE_CUBE_MAP_POSITIVE_X", GL_TEXTURE_CUBE_MAP_POSITIVE_X},
    {"GL_TEXTURE_CUBE_MAP_NEGATIVE_X", GL_TEXTURE_CUBE_MAP_NEGATIVE_X},
    {"GL_TEXTURE_CUBE_MAP_POSITIVE_Y", GL_TEXTURE_CUBE_MAP_POSITIVE_Y},
    {"GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", GL_TEXTURE_CUBE_MAP_NEGATIVE_Y},
    {"GL_TEXTURE_CUBE_MAP_POSITIVE_Z", GL_TEXTURE_CUBE_MAP_POSITIVE_Z},
    {"GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", GL_TEXTURE_CUBE_MAP_NEGATIVE_Z},
    {"GL_PROXY_TEXTURE_CUBE_MAP", GL_PROXY_TEXTURE_CUBE_MAP},
    {"GL_MAX_CUBE_MAP_TEXTURE_SIZE", GL_MAX_CUBE_MAP_TEXTURE_SIZE},
    {"GL_VERTEX_ARRAY_RANGE_NV", GL_VERTEX_ARRAY_RANGE_NV},
    {"GL_VERTEX_ARRAY_RANGE_LENGTH_NV", GL_VERTEX_ARRAY_RANGE_LENGTH_NV},
    {"GL_VERTEX_ARRAY_RANGE_VALID_NV", GL_VERTEX_ARRAY_RANGE_VALID_NV},
    {"GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV", GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV},
    {"GL_VERTEX_ARRAY_RANGE_POINTER_NV", GL_VERTEX_ARRAY_RANGE_POINTER_NV},
    {"GL_REGISTER_COMBINERS_NV", GL_REGISTER_COMBINERS_NV},
    {"GL_VARIABLE_A_NV", GL_VARIABLE_A_NV},
    {"GL_VARIABLE_B_NV", GL_VARIABLE_B_NV},
    {"GL_VARIABLE_C_NV", GL_VARIABLE_C_NV},
    {"GL_VARIABLE_D_NV", GL_VARIABLE_D_NV},
    {"GL_VARIABLE_E_NV", GL_VARIABLE_E_NV},
    {"GL_VARIABLE_F_NV", GL_VARIABLE_F_NV},
    {"GL_VARIABLE_G_NV", GL_VARIABLE_G_NV},
    {"GL_CONSTANT_COLOR0_NV", GL_CONSTANT_COLOR0_NV},
    {"GL_CONSTANT_COLOR1_NV", GL_CONSTANT_COLOR1_NV},
    {"GL_PRIMARY_COLOR_NV", GL_PRIMARY_COLOR_NV},
    {"GL_SECONDARY_COLOR_NV", GL_SECONDARY_COLOR_NV},
    {"GL_SPARE0_NV", GL_SPARE0_NV},
    {"GL_SPARE1_NV", GL_SPARE1_NV},
    {"GL_DISCARD_NV", GL_DISCARD_NV},
    {"GL_E_TIMES_F_NV", GL_E_TIMES_F_NV},
    {"GL_SPARE0_PLUS_SECONDARY_COLOR_NV", GL_SPARE0_PLUS_SECONDARY_COLOR_NV},
    {"GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV", GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV},
    {"GL_MULTISAMPLE_FILTER_HINT_NV", GL_MULTISAMPLE_FILTER_HINT_NV},
    {"GL_PER_STAGE_CONSTANTS_NV", GL_PER_STAGE_CONSTANTS_NV},
    {"GL_UNSIGNED_IDENTITY_NV", GL_UNSIGNED_IDENTITY_NV},
    {"GL_UNSIGNED_INVERT_NV", GL_UNSIGNED_INVERT_NV},
    {"GL_EXPAND_NORMAL_NV", GL_EXPAND_NORMAL_NV},
    {"GL_EXPAND_NEGATE_NV", GL_EXPAND_NEGATE_NV},
    {"GL_HALF_BIAS_NORMAL_NV", GL_HALF_BIAS_NORMAL_NV},
    {"GL_HALF_BIAS_NEGATE_NV", GL_HALF_BIAS_NEGATE_NV},
    {"GL_SIGNED_IDENTITY_NV", GL_SIGNED_IDENTITY_NV},
    {"GL_SIGNED_NEGATE_NV", GL_SIGNED_NEGATE_NV},
    {"GL_SCALE_BY_TWO_NV", GL_SCALE_BY_TWO_NV},
    {"GL_SCALE_BY_FOUR_NV", GL_SCALE_BY_FOUR_NV},
    {"GL_SCALE_BY_ONE_HALF_NV", GL_SCALE_BY_ONE_HALF_NV},
    {"GL_BIAS_BY_NEGATIVE_ONE_HALF_NV", GL_BIAS_BY_NEGATIVE_ONE_HALF_NV},
    {"GL_COMBINER_INPUT_NV", GL_COMBINER_INPUT_NV},
    {"GL_COMBINER_MAPPING_NV", GL_COMBINER_MAPPING_NV},
    {"GL_COMBINER_COMPONENT_USAGE_NV", GL_COMBINER_COMPONENT_USAGE_NV},
    {"GL_COMBINER_AB_DOT_PRODUCT_NV", GL_COMBINER_AB_DOT_PRODUCT_NV},
    {"GL_COMBINER_CD_DOT_PRODUCT_NV", GL_COMBINER_CD_DOT_PRODUCT_NV},
    {"GL_COMBINER_MUX_SUM_NV", GL_COMBINER_MUX_SUM_NV},
    {"GL_COMBINER_SCALE_NV", GL_COMBINER_SCALE_NV},
    {"GL_COMBINER_BIAS_NV", GL_COMBINER_BIAS_NV},
    {"GL_COMBINER_AB_OUTPUT_NV", GL_COMBINER_AB_OUTPUT_NV},
    {"GL_COMBINER_CD_OUTPUT_NV", GL_COMBINER_CD_OUTPUT_NV},
    {"GL_COMBINER_SUM_OUTPUT_NV", GL_COMBINER_SUM_OUTPUT_NV},
    {"GL_MAX_GENERAL_COMBINERS_NV", GL_MAX_GENERAL_COMBINERS_NV},
    {"GL_NUM_GENERAL_COMBINERS_NV", GL_NUM_GENERAL_COMBINERS_NV},
    {"GL_COLOR_SUM_CLAMP_NV", GL_COLOR_SUM_CLAMP_NV},
    {"GL_COMBINER0_NV", GL_COMBINER0_NV},
    {"GL_COMBINER1_NV", GL_COMBINER1_NV},
    {"GL_COMBINER2_NV", GL_COMBINER2_NV},
    {"GL_COMBINER3_NV", GL_COMBINER3_NV},
    {"GL_COMBINER4_NV", GL_COMBINER4_NV},
    {"GL_COMBINER5_NV", GL_COMBINER5_NV},
    {"GL_COMBINER6_NV", GL_COMBINER6_NV},
    {"GL_COMBINER7_NV", GL_COMBINER7_NV},
    {"GL_PRIMITIVE_RESTART_NV", GL_PRIMITIVE_RESTART_NV},
    {"GL_PRIMITIVE_RESTART_INDEX_NV", GL_PRIMITIVE_RESTART_INDEX_NV},
    {"GL_FOG_DISTANCE_MODE_NV", GL_FOG_DISTANCE_MODE_NV},
    {"GL_EYE_RADIAL_NV", GL_EYE_RADIAL_NV},
    {"GL_EYE_PLANE_ABSOLUTE_NV", GL_EYE_PLANE_ABSOLUTE_NV},
    {"GL_EMBOSS_LIGHT_NV", GL_EMBOSS_LIGHT_NV},
    {"GL_EMBOSS_CONSTANT_NV", GL_EMBOSS_CONSTANT_NV},
    {"GL_EMBOSS_MAP_NV", GL_EMBOSS_MAP_NV},
    {"GL_RED_MIN_CLAMP_INGR", GL_RED_MIN_CLAMP_INGR},
    {"GL_GREEN_MIN_CLAMP_INGR", GL_GREEN_MIN_CLAMP_INGR},
    {"GL_BLUE_MIN_CLAMP_INGR", GL_BLUE_MIN_CLAMP_INGR},
    {"GL_ALPHA_MIN_CLAMP_INGR", GL_ALPHA_MIN_CLAMP_INGR},
    {"GL_RED_MAX_CLAMP_INGR", GL_RED_MAX_CLAMP_INGR},
    {"GL_GREEN_MAX_CLAMP_INGR", GL_GREEN_MAX_CLAMP_INGR},
    {"GL_BLUE_MAX_CLAMP_INGR", GL_BLUE_MAX_CLAMP_INGR},
    {"GL_ALPHA_MAX_CLAMP_INGR", GL_ALPHA_MAX_CLAMP_INGR},
    {"GL_INTERLACE_READ_INGR", GL_INTERLACE_READ_INGR},
    {"GL_COMBINE", GL_COMBINE},
    {"GL_COMBINE_RGB", GL_COMBINE_RGB},
    {"GL_COMBINE_ALPHA", GL_COMBINE_ALPHA},
    {"GL_RGB_SCALE", GL_RGB_SCALE},
    {"GL_ADD_SIGNED", GL_ADD_SIGNED},
    {"GL_INTERPOLATE", GL_INTERPOLATE},
    {"GL_CONSTANT", GL_CONSTANT},
    {"GL_PRIMARY_COLOR", GL_PRIMARY_COLOR},
    {"GL_PREVIOUS", GL_PREVIOUS},
    {"GL_SRC0_RGB", GL_SRC0_RGB},
    {"GL_SRC1_RGB", GL_SRC1_RGB},
    {"GL_SRC2_RGB", GL_SRC2_RGB},
    {"GL_SOURCE3_RGB_NV", GL_SOURCE3_RGB_NV},
    {"GL_SRC0_ALPHA", GL_SRC0_ALPHA},
    {"GL_SRC1_ALPHA", GL_SRC1_ALPHA},
    {"GL_SRC2_ALPHA", GL_SRC2_ALPHA},
    {"GL_SOURCE3_ALPHA_NV", GL_SOURCE3_ALPHA_NV},
    {"GL_OPERAND0_RGB", GL_OPERAND0_RGB},
    {"GL_OPERAND1_RGB", GL_OPERAND1_RGB},
    {"GL_OPERAND2_RGB", GL_OPERAND2_RGB},
    {"GL_OPERAND3_RGB_NV", GL_OPERAND3_RGB_NV},
    {"GL_OPERAND0_ALPHA", GL_OPERAND0_ALPHA},
    {"GL_OPERAND1_ALPHA", GL_OPERAND1_ALPHA},
    {"GL_OPERAND2_ALPHA", GL_OPERAND2_ALPHA},
    {"GL_OPERAND3_ALPHA_NV", GL_OPERAND3_ALPHA_NV},
    {"GL_PACK_SUBSAMPLE_RATE_SGIX", GL_PACK_SUBSAMPLE_RATE_SGIX},
    {"GL_UNPACK_SUBSAMPLE_RATE_SGIX", GL_UNPACK_SUBSAMPLE_RATE_SGIX},
    {"GL_PIXEL_SUBSAMPLE_4444_SGIX", GL_PIXEL_SUBSAMPLE_4444_SGIX},
    {"GL_PIXEL_SUBSAMPLE_2424_SGIX", GL_PIXEL_SUBSAMPLE_2424_SGIX},
    {"GL_PIXEL_SUBSAMPLE_4242_SGIX", GL_PIXEL_SUBSAMPLE_4242_SGIX},
    {"GL_PERTURB_EXT", GL_PERTURB_EXT},
    {"GL_TEXTURE_NORMAL_EXT", GL_TEXTURE_NORMAL_EXT},
    {"GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE", GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE},
    {"GL_TRANSFORM_HINT_APPLE", GL_TRANSFORM_HINT_APPLE},
    {"GL_UNPACK_CLIENT_STORAGE_APPLE", GL_UNPACK_CLIENT_STORAGE_APPLE},
    {"GL_BUFFER_OBJECT_APPLE", GL_BUFFER_OBJECT_APPLE},
    {"GL_STORAGE_CLIENT_APPLE", GL_STORAGE_CLIENT_APPLE},
    {"GL_VERTEX_ARRAY_BINDING", GL_VERTEX_ARRAY_BINDING},
    {"GL_TEXTURE_RANGE_LENGTH_APPLE", GL_TEXTURE_RANGE_LENGTH_APPLE},
    {"GL_TEXTURE_RANGE_POINTER_APPLE", GL_TEXTURE_RANGE_POINTER_APPLE},
    {"GL_YCBCR_422_APPLE", GL_YCBCR_422_APPLE},
    {"GL_UNSIGNED_SHORT_8_8_APPLE", GL_UNSIGNED_SHORT_8_8_APPLE},
    {"GL_UNSIGNED_SHORT_8_8_REV_APPLE", GL_UNSIGNED_SHORT_8_8_REV_APPLE},
    {"GL_TEXTURE_STORAGE_HINT_APPLE", GL_TEXTURE_STORAGE_HINT_APPLE},
    {"GL_STORAGE_PRIVATE_APPLE", GL_STORAGE_PRIVATE_APPLE},
    {"GL_STORAGE_CACHED_APPLE", GL_STORAGE_CACHED_APPLE},
    {"GL_STORAGE_SHARED_APPLE", GL_STORAGE_SHARED_APPLE},
    {"GL_REPLACEMENT_CODE_ARRAY_SUN", GL_REPLACEMENT_CODE_ARRAY_SUN},
    {"GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN", GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN},
    {"GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN", GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN},
    {"GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN", GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN},
    {"GL_R1UI_V3F_SUN", GL_R1UI_V3F_SUN},
    {"GL_R1UI_C4UB_V3F_SUN", GL_R1UI_C4UB_V3F_SUN},
    {"GL_R1UI_C3F_V3F_SUN", GL_R1UI_C3F_V3F_SUN},
    {"GL_R1UI_N3F_V3F_SUN", GL_R1UI_N3F_V3F_SUN},
    {"GL_R1UI_C4F_N3F_V3F_SUN", GL_R1UI_C4F_N3F_V3F_SUN},
    {"GL_R1UI_T2F_V3F_SUN", GL_R1UI_T2F_V3F_SUN},
    {"GL_R1UI_T2F_N3F_V3F_SUN", GL_R1UI_T2F_N3F_V3F_SUN},
    {"GL_R1UI_T2F_C4F_N3F_V3F_SUN", GL_R1UI_T2F_C4F_N3F_V3F_SUN},
    {"GL_SLICE_ACCUM_SUN", GL_SLICE_ACCUM_SUN},
    {"GL_QUAD_MESH_SUN", GL_QUAD_MESH_SUN},
    {"GL_TRIANGLE_MESH_SUN", GL_TRIANGLE_MESH_SUN},
    {"GL_VERTEX_PROGRAM_ARB", GL_VERTEX_PROGRAM_ARB},
    {"GL_VERTEX_STATE_PROGRAM_NV", GL_VERTEX_STATE_PROGRAM_NV},
    {"GL_VERTEX_ATTRIB_ARRAY_ENABLED", GL_VERTEX_ATTRIB_ARRAY_ENABLED},
    {"GL_VERTEX_ATTRIB_ARRAY_SIZE", GL_VERTEX_ATTRIB_ARRAY_SIZE},
    {"GL_VERTEX_ATTRIB_ARRAY_STRIDE", GL_VERTEX_ATTRIB_ARRAY_STRIDE},
    {"GL_VERTEX_ATTRIB_ARRAY_TYPE", GL_VERTEX_ATTRIB_ARRAY_TYPE},
    {"GL_CURRENT_VERTEX_ATTRIB", GL_CURRENT_VERTEX_ATTRIB},
    {"GL_PROGRAM_LENGTH_ARB", GL_PROGRAM_LENGTH_ARB},
    {"GL_PROGRAM_STRING_ARB", GL_PROGRAM_STRING_ARB},
    {"GL_MODELVIEW_PROJECTION_NV", GL_MODELVIEW_PROJECTION_NV},
    {"GL_IDENTITY_NV", GL_IDENTITY_NV},
    {"GL_INVERSE_NV", GL_INVERSE_NV},
    {"GL_TRANSPOSE_NV", GL_TRANSPOSE_NV},
    {"GL_INVERSE_TRANSPOSE_NV", GL_INVERSE_TRANSPOSE_NV},
    {"GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB", GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB},
    {"GL_MAX_PROGRAM_MATRICES_ARB", GL_MAX_PROGRAM_MATRICES_ARB},
    {"GL_MATRIX0_NV", GL_MATRIX0_NV},
    {"GL_MATRIX1_NV", GL_MATRIX1_NV},
    {"GL_MATRIX2_NV", GL_MATRIX2_NV},
    {"GL_MATRIX3_NV", GL_MATRIX3_NV},
    {"GL_MATRIX4_NV", GL_MATRIX4_NV},
    {"GL_MATRIX5_NV", GL_MATRIX5_NV},
    {"GL_MATRIX6_NV", GL_MATRIX6_NV},
    {"GL_MATRIX7_NV", GL_MATRIX7_NV},
    {"GL_CURRENT_MATRIX_STACK_DEPTH_ARB", GL_CURRENT_MATRIX_STACK_DEPTH_ARB},
    {"GL_CURRENT_MATRIX_ARB", GL_CURRENT_MATRIX_ARB},
    {"GL_PROGRAM_POINT_SIZE", GL_PROGRAM_POINT_SIZE},
    {"GL_VERTEX_PROGRAM_TWO_SIDE", GL_VERTEX_PROGRAM_TWO_SIDE},
    {"GL_PROGRAM_PARAMETER_NV", GL_PROGRAM_PARAMETER_NV},
    {"GL_VERTEX_ATTRIB_ARRAY_POINTER", GL_VERTEX_ATTRIB_ARRAY_POINTER},
    {"GL_PROGRAM_TARGET_NV", GL_PROGRAM_TARGET_NV},
    {"GL_PROGRAM_RESIDENT_NV", GL_PROGRAM_RESIDENT_NV},
    {"GL_TRACK_MATRIX_NV", GL_TRACK_MATRIX_NV},
    {"GL_TRACK_MATRIX_TRANSFORM_NV", GL_TRACK_MATRIX_TRANSFORM_NV},
    {"GL_VERTEX_PROGRAM_BINDING_NV", GL_VERTEX_PROGRAM_BINDING_NV},
    {"GL_PROGRAM_ERROR_POSITION_ARB", GL_PROGRAM_ERROR_POSITION_ARB},
    {"GL_OFFSET_TEXTURE_RECTANGLE_NV", GL_OFFSET_TEXTURE_RECTANGLE_NV},
    {"GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV", GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV},
    {"GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV", GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV},
    {"GL_DEPTH_CLAMP", GL_DEPTH_CLAMP},
    {"GL_VERTEX_ATTRIB_ARRAY0_NV", GL_VERTEX_ATTRIB_ARRAY0_NV},
    {"GL_VERTEX_ATTRIB_ARRAY1_NV", GL_VERTEX_ATTRIB_ARRAY1_NV},
    {"GL_VERTEX_ATTRIB_ARRAY2_NV", GL_VERTEX_ATTRIB_ARRAY2_NV},
    {"GL_VERTEX_ATTRIB_ARRAY3_NV", GL_VERTEX_ATTRIB_ARRAY3_NV},
    {"GL_VERTEX_ATTRIB_ARRAY4_NV", GL_VERTEX_ATTRIB_ARRAY4_NV},
    {"GL_VERTEX_ATTRIB_ARRAY5_NV", GL_VERTEX_ATTRIB_ARRAY5_NV},
    {"GL_VERTEX_ATTRIB_ARRAY6_NV", GL_VERTEX_ATTRIB_ARRAY6_NV},
    {"GL_VERTEX_ATTRIB_ARRAY7_NV", GL_VERTEX_ATTRIB_ARRAY7_NV},
    {"GL_VERTEX_ATTRIB_ARRAY8_NV", GL_VERTEX_ATTRIB_ARRAY8_NV},
    {"GL_VERTEX_ATTRIB_ARRAY9_NV", GL_VERTEX_ATTRIB_ARRAY9_NV},
    {"GL_VERTEX_ATTRIB_ARRAY10_NV", GL_VERTEX_ATTRIB_ARRAY10_NV},
    {"GL_VERTEX_ATTRIB_ARRAY11_NV", GL_VERTEX_ATTRIB_ARRAY11_NV},
    {"GL_VERTEX_ATTRIB_ARRAY12_NV", GL_VERTEX_ATTRIB_ARRAY12_NV},
    {"GL_VERTEX_ATTRIB_ARRAY13_NV", GL_VERTEX_ATTRIB_ARRAY13_NV},
    {"GL_VERTEX_ATTRIB_ARRAY14_NV", GL_VERTEX_ATTRIB_ARRAY14_NV},
    {"GL_VERTEX_ATTRIB_ARRAY15_NV", GL_VERTEX_ATTRIB_ARRAY15_NV},
    {"GL_MAP1_VERTEX_ATTRIB0_4_NV", GL_MAP1_VERTEX_ATTRIB0_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB1_4_NV", GL_MAP1_VERTEX_ATTRIB1_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB2_4_NV", GL_MAP1_VERTEX_ATTRIB2_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB3_4_NV", GL_MAP1_VERTEX_ATTRIB3_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB4_4_NV", GL_MAP1_VERTEX_ATTRIB4_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB5_4_NV", GL_MAP1_VERTEX_ATTRIB5_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB6_4_NV", GL_MAP1_VERTEX_ATTRIB6_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB7_4_NV", GL_MAP1_VERTEX_ATTRIB7_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB8_4_NV", GL_MAP1_VERTEX_ATTRIB8_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB9_4_NV", GL_MAP1_VERTEX_ATTRIB9_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB10_4_NV", GL_MAP1_VERTEX_ATTRIB10_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB11_4_NV", GL_MAP1_VERTEX_ATTRIB11_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB12_4_NV", GL_MAP1_VERTEX_ATTRIB12_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB13_4_NV", GL_MAP1_VERTEX_ATTRIB13_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB14_4_NV", GL_MAP1_VERTEX_ATTRIB14_4_NV},
    {"GL_MAP1_VERTEX_ATTRIB15_4_NV", GL_MAP1_VERTEX_ATTRIB15_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB0_4_NV", GL_MAP2_VERTEX_ATTRIB0_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB1_4_NV", GL_MAP2_VERTEX_ATTRIB1_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB2_4_NV", GL_MAP2_VERTEX_ATTRIB2_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB3_4_NV", GL_MAP2_VERTEX_ATTRIB3_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB4_4_NV", GL_MAP2_VERTEX_ATTRIB4_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB5_4_NV", GL_MAP2_VERTEX_ATTRIB5_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB6_4_NV", GL_MAP2_VERTEX_ATTRIB6_4_NV},
    {"GL_PROGRAM_BINDING_ARB", GL_PROGRAM_BINDING_ARB},
    {"GL_MAP2_VERTEX_ATTRIB8_4_NV", GL_MAP2_VERTEX_ATTRIB8_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB9_4_NV", GL_MAP2_VERTEX_ATTRIB9_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB10_4_NV", GL_MAP2_VERTEX_ATTRIB10_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB11_4_NV", GL_MAP2_VERTEX_ATTRIB11_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB12_4_NV", GL_MAP2_VERTEX_ATTRIB12_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB13_4_NV", GL_MAP2_VERTEX_ATTRIB13_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB14_4_NV", GL_MAP2_VERTEX_ATTRIB14_4_NV},
    {"GL_MAP2_VERTEX_ATTRIB15_4_NV", GL_MAP2_VERTEX_ATTRIB15_4_NV},
    {"GL_TEXTURE_COMPRESSED_IMAGE_SIZE", GL_TEXTURE_COMPRESSED_IMAGE_SIZE},
    {"GL_TEXTURE_COMPRESSED", GL_TEXTURE_COMPRESSED},
    {"GL_NUM_COMPRESSED_TEXTURE_FORMATS", GL_NUM_COMPRESSED_TEXTURE_FORMATS},
    {"GL_COMPRESSED_TEXTURE_FORMATS", GL_COMPRESSED_TEXTURE_FORMATS},
    {"GL_MAX_VERTEX_UNITS_ARB", GL_MAX_VERTEX_UNITS_ARB},
    {"GL_ACTIVE_VERTEX_UNITS_ARB", GL_ACTIVE_VERTEX_UNITS_ARB},
    {"GL_WEIGHT_SUM_UNITY_ARB", GL_WEIGHT_SUM_UNITY_ARB},
    {"GL_VERTEX_BLEND_ARB", GL_VERTEX_BLEND_ARB},
    {"GL_CURRENT_WEIGHT_ARB", GL_CURRENT_WEIGHT_ARB},
    {"GL_WEIGHT_ARRAY_TYPE_ARB", GL_WEIGHT_ARRAY_TYPE_ARB},
    {"GL_WEIGHT_ARRAY_STRIDE_ARB", GL_WEIGHT_ARRAY_STRIDE_ARB},
    {"GL_WEIGHT_ARRAY_SIZE_ARB", GL_WEIGHT_ARRAY_SIZE_ARB},
    {"GL_WEIGHT_ARRAY_POINTER_ARB", GL_WEIGHT_ARRAY_POINTER_ARB},
    {"GL_WEIGHT_ARRAY_ARB", GL_WEIGHT_ARRAY_ARB},
    {"GL_DOT3_RGB", GL_DOT3_RGB},
    {"GL_DOT3_RGBA", GL_DOT3_RGBA},
    {"GL_COMPRESSED_RGB_FXT1_3DFX", GL_COMPRESSED_RGB_FXT1_3DFX},
    {"GL_COMPRESSED_RGBA_FXT1_3DFX", GL_COMPRESSED_RGBA_FXT1_3DFX},
    {"GL_MULTISAMPLE_3DFX", GL_MULTISAMPLE_3DFX},
    {"GL_SAMPLE_BUFFERS_3DFX", GL_SAMPLE_BUFFERS_3DFX},
    {"GL_SAMPLES_3DFX", GL_SAMPLES_3DFX},
    {"GL_EVAL_2D_NV", GL_EVAL_2D_NV},
    {"GL_EVAL_TRIANGULAR_2D_NV", GL_EVAL_TRIANGULAR_2D_NV},
    {"GL_MAP_TESSELLATION_NV", GL_MAP_TESSELLATION_NV},
    {"GL_MAP_ATTRIB_U_ORDER_NV", GL_MAP_ATTRIB_U_ORDER_NV},
    {"GL_MAP_ATTRIB_V_ORDER_NV", GL_MAP_ATTRIB_V_ORDER_NV},
    {"GL_EVAL_FRACTIONAL_TESSELLATION_NV", GL_EVAL_FRACTIONAL_TESSELLATION_NV},
    {"GL_EVAL_VERTEX_ATTRIB0_NV", GL_EVAL_VERTEX_ATTRIB0_NV},
    {"GL_EVAL_VERTEX_ATTRIB1_NV", GL_EVAL_VERTEX_ATTRIB1_NV},
    {"GL_EVAL_VERTEX_ATTRIB2_NV", GL_EVAL_VERTEX_ATTRIB2_NV},
    {"GL_EVAL_VERTEX_ATTRIB3_NV", GL_EVAL_VERTEX_ATTRIB3_NV},
    {"GL_EVAL_VERTEX_ATTRIB4_NV", GL_EVAL_VERTEX_ATTRIB4_NV},
    {"GL_EVAL_VERTEX_ATTRIB5_NV", GL_EVAL_VERTEX_ATTRIB5_NV},
    {"GL_EVAL_VERTEX_ATTRIB6_NV", GL_EVAL_VERTEX_ATTRIB6_NV},
    {"GL_EVAL_VERTEX_ATTRIB7_NV", GL_EVAL_VERTEX_ATTRIB7_NV},
    {"GL_EVAL_VERTEX_ATTRIB8_NV", GL_EVAL_VERTEX_ATTRIB8_NV},
    {"GL_EVAL_VERTEX_ATTRIB9_NV", GL_EVAL_VERTEX_ATTRIB9_NV},
    {"GL_EVAL_VERTEX_ATTRIB10_NV", GL_EVAL_VERTEX_ATTRIB10_NV},
    {"GL_EVAL_VERTEX_ATTRIB11_NV", GL_EVAL_VERTEX_ATTRIB11_NV},
    {"GL_EVAL_VERTEX_ATTRIB12_NV", GL_EVAL_VERTEX_ATTRIB12_NV},
    {"GL_EVAL_VERTEX_ATTRIB13_NV", GL_EVAL_VERTEX_ATTRIB13_NV},
    {"GL_EVAL_VERTEX_ATTRIB14_NV", GL_EVAL_VERTEX_ATTRIB14_NV},
    {"GL_EVAL_VERTEX_ATTRIB15_NV", GL_EVAL_VERTEX_ATTRIB15_NV},
    {"GL_MAX_MAP_TESSELLATION_NV", GL_MAX_MAP_TESSELLATION_NV},
    {"GL_MAX_RATIONAL_EVAL_ORDER_NV", GL_MAX_RATIONAL_EVAL_ORDER_NV},
    {"GL_MAX_PROGRAM_PATCH_ATTRIBS_NV", GL_MAX_PROGRAM_PATCH_ATTRIBS_NV},
    {"GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV", GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV},
    {"GL_UNSIGNED_INT_S8_S8_8_8_NV", GL_UNSIGNED_INT_S8_S8_8_8_NV},
    {"GL_UNSIGNED_INT_8_8_S8_S8_REV_NV", GL_UNSIGNED_INT_8_8_S8_S8_REV_NV},
    {"GL_DSDT_MAG_INTENSITY_NV", GL_DSDT_MAG_INTENSITY_NV},
    {"GL_SHADER_CONSISTENT_NV", GL_SHADER_CONSISTENT_NV},
    {"GL_TEXTURE_SHADER_NV", GL_TEXTURE_SHADER_NV},
    {"GL_SHADER_OPERATION_NV", GL_SHADER_OPERATION_NV},
    {"GL_CULL_MODES_NV", GL_CULL_MODES_NV},
    {"GL_OFFSET_TEXTURE_MATRIX_NV", GL_OFFSET_TEXTURE_MATRIX_NV},
    {"GL_OFFSET_TEXTURE_SCALE_NV", GL_OFFSET_TEXTURE_SCALE_NV},
    {"GL_OFFSET_TEXTURE_BIAS_NV", GL_OFFSET_TEXTURE_BIAS_NV},
    {"GL_PREVIOUS_TEXTURE_INPUT_NV", GL_PREVIOUS_TEXTURE_INPUT_NV},
    {"GL_CONST_EYE_NV", GL_CONST_EYE_NV},
    {"GL_PASS_THROUGH_NV", GL_PASS_THROUGH_NV},
    {"GL_CULL_FRAGMENT_NV", GL_CULL_FRAGMENT_NV},
    {"GL_OFFSET_TEXTURE_2D_NV", GL_OFFSET_TEXTURE_2D_NV},
    {"GL_DEPENDENT_AR_TEXTURE_2D_NV", GL_DEPENDENT_AR_TEXTURE_2D_NV},
    {"GL_DEPENDENT_GB_TEXTURE_2D_NV", GL_DEPENDENT_GB_TEXTURE_2D_NV},
    {"GL_SURFACE_STATE_NV", GL_SURFACE_STATE_NV},
    {"GL_DOT_PRODUCT_NV", GL_DOT_PRODUCT_NV},
    {"GL_DOT_PRODUCT_DEPTH_REPLACE_NV", GL_DOT_PRODUCT_DEPTH_REPLACE_NV},
    {"GL_DOT_PRODUCT_TEXTURE_2D_NV", GL_DOT_PRODUCT_TEXTURE_2D_NV},
    {"GL_DOT_PRODUCT_TEXTURE_3D_NV", GL_DOT_PRODUCT_TEXTURE_3D_NV},
    {"GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV", GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV},
    {"GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV", GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV},
    {"GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV", GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV},
    {"GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV", GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV},
    {"GL_HILO_NV", GL_HILO_NV},
    {"GL_DSDT_NV", GL_DSDT_NV},
    {"GL_DSDT_MAG_NV", GL_DSDT_MAG_NV},
    {"GL_DSDT_MAG_VIB_NV", GL_DSDT_MAG_VIB_NV},
    {"GL_HILO16_NV", GL_HILO16_NV},
    {"GL_SIGNED_HILO_NV", GL_SIGNED_HILO_NV},
    {"GL_SIGNED_HILO16_NV", GL_SIGNED_HILO16_NV},
    {"GL_SIGNED_RGBA_NV", GL_SIGNED_RGBA_NV},
    {"GL_SIGNED_RGBA8_NV", GL_SIGNED_RGBA8_NV},
    {"GL_SURFACE_REGISTERED_NV", GL_SURFACE_REGISTERED_NV},
    {"GL_SIGNED_RGB_NV", GL_SIGNED_RGB_NV},
    {"GL_SIGNED_RGB8_NV", GL_SIGNED_RGB8_NV},
    {"GL_SURFACE_MAPPED_NV", GL_SURFACE_MAPPED_NV},
    {"GL_SIGNED_LUMINANCE_NV", GL_SIGNED_LUMINANCE_NV},
    {"GL_SIGNED_LUMINANCE8_NV", GL_SIGNED_LUMINANCE8_NV},
    {"GL_SIGNED_LUMINANCE_ALPHA_NV", GL_SIGNED_LUMINANCE_ALPHA_NV},
    {"GL_SIGNED_LUMINANCE8_ALPHA8_NV", GL_SIGNED_LUMINANCE8_ALPHA8_NV},
    {"GL_SIGNED_ALPHA_NV", GL_SIGNED_ALPHA_NV},
    {"GL_SIGNED_ALPHA8_NV", GL_SIGNED_ALPHA8_NV},
    {"GL_SIGNED_INTENSITY_NV", GL_SIGNED_INTENSITY_NV},
    {"GL_SIGNED_INTENSITY8_NV", GL_SIGNED_INTENSITY8_NV},
    {"GL_DSDT8_NV", GL_DSDT8_NV},
    {"GL_DSDT8_MAG8_NV", GL_DSDT8_MAG8_NV},
    {"GL_DSDT8_MAG8_INTENSITY8_NV", GL_DSDT8_MAG8_INTENSITY8_NV},
    {"GL_SIGNED_RGB_UNSIGNED_ALPHA_NV", GL_SIGNED_RGB_UNSIGNED_ALPHA_NV},
    {"GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV", GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV},
    {"GL_HI_SCALE_NV", GL_HI_SCALE_NV},
    {"GL_LO_SCALE_NV", GL_LO_SCALE_NV},
    {"GL_DS_SCALE_NV", GL_DS_SCALE_NV},
    {"GL_DT_SCALE_NV", GL_DT_SCALE_NV},
    {"GL_MAGNITUDE_SCALE_NV", GL_MAGNITUDE_SCALE_NV},
    {"GL_VIBRANCE_SCALE_NV", GL_VIBRANCE_SCALE_NV},
    {"GL_HI_BIAS_NV", GL_HI_BIAS_NV},
    {"GL_LO_BIAS_NV", GL_LO_BIAS_NV},
    {"GL_DS_BIAS_NV", GL_DS_BIAS_NV},
    {"GL_DT_BIAS_NV", GL_DT_BIAS_NV},
    {"GL_MAGNITUDE_BIAS_NV", GL_MAGNITUDE_BIAS_NV},
    {"GL_VIBRANCE_BIAS_NV", GL_VIBRANCE_BIAS_NV},
    {"GL_TEXTURE_BORDER_VALUES_NV", GL_TEXTURE_BORDER_VALUES_NV},
    {"GL_TEXTURE_HI_SIZE_NV", GL_TEXTURE_HI_SIZE_NV},
    {"GL_TEXTURE_LO_SIZE_NV", GL_TEXTURE_LO_SIZE_NV},
    {"GL_TEXTURE_DS_SIZE_NV", GL_TEXTURE_DS_SIZE_NV},
    {"GL_TEXTURE_DT_SIZE_NV", GL_TEXTURE_DT_SIZE_NV},
    {"GL_TEXTURE_MAG_SIZE_NV", GL_TEXTURE_MAG_SIZE_NV},
    {"GL_MODELVIEW2_ARB", GL_MODELVIEW2_ARB},
    {"GL_MODELVIEW3_ARB", GL_MODELVIEW3_ARB},
    {"GL_MODELVIEW4_ARB", GL_MODELVIEW4_ARB},
    {"GL_MODELVIEW5_ARB", GL_MODELVIEW5_ARB},
    {"GL_MODELVIEW6_ARB", GL_MODELVIEW6_ARB},
    {"GL_MODELVIEW7_ARB", GL_MODELVIEW7_ARB},
    {"GL_MODELVIEW8_ARB", GL_MODELVIEW8_ARB},
    {"GL_MODELVIEW9_ARB", GL_MODELVIEW9_ARB},
    {"GL_MODELVIEW10_ARB", GL_MODELVIEW10_ARB},
    {"GL_MODELVIEW11_ARB", GL_MODELVIEW11_ARB},
    {"GL_MODELVIEW12_ARB", GL_MODELVIEW12_ARB},
    {"GL_MODELVIEW13_ARB", GL_MODELVIEW13_ARB},
    {"GL_MODELVIEW14_ARB", GL_MODELVIEW14_ARB},
    {"GL_MODELVIEW15_ARB", GL_MODELVIEW15_ARB},
    {"GL_MODELVIEW16_ARB", GL_MODELVIEW16_ARB},
    {"GL_MODELVIEW17_ARB", GL_MODELVIEW17_ARB},
    {"GL_MODELVIEW18_ARB", GL_MODELVIEW18_ARB},
    {"GL_MODELVIEW19_ARB", GL_MODELVIEW19_ARB},
    {"GL_MODELVIEW20_ARB", GL_MODELVIEW20_ARB},
    {"GL_MODELVIEW21_ARB", GL_MODELVIEW21_ARB},
    {"GL_MODELVIEW22_ARB", GL_MODELVIEW22_ARB},
    {"GL_MODELVIEW23_ARB", GL_MODELVIEW23_ARB},
    {"GL_MODELVIEW24_ARB", GL_MODELVIEW24_ARB},
    {"GL_MODELVIEW25_ARB", GL_MODELVIEW25_ARB},
    {"GL_MODELVIEW26_ARB", GL_MODELVIEW26_ARB},
    {"GL_MODELVIEW27_ARB", GL_MODELVIEW27_ARB},
    {"GL_MODELVIEW28_ARB", GL_MODELVIEW28_ARB},
    {"GL_MODELVIEW29_ARB", GL_MODELVIEW29_ARB},
    {"GL_MODELVIEW30_ARB", GL_MODELVIEW30_ARB},
    {"GL_MODELVIEW31_ARB", GL_MODELVIEW31_ARB},
    {"GL_DOT3_RGB_EXT", GL_DOT3_RGB_EXT},
    {"GL_PROGRAM_BINARY_LENGTH", GL_PROGRAM_BINARY_LENGTH},
    {"GL_MIRROR_CLAMP_EXT", GL_MIRROR_CLAMP_EXT},
    {"GL_MIRROR_CLAMP_TO_EDGE", GL_MIRROR_CLAMP_TO_EDGE},
    {"GL_MODULATE_ADD_ATI", GL_MODULATE_ADD_ATI},
    {"GL_MODULATE_SIGNED_ADD_ATI", GL_MODULATE_SIGNED_ADD_ATI},
    {"GL_MODULATE_SUBTRACT_ATI", GL_MODULATE_SUBTRACT_ATI},
    {"GL_SET_AMD", GL_SET_AMD},
    {"GL_REPLACE_VALUE_AMD", GL_REPLACE_VALUE_AMD},
    {"GL_STENCIL_OP_VALUE_AMD", GL_STENCIL_OP_VALUE_AMD},
    {"GL_STENCIL_BACK_OP_VALUE_AMD", GL_STENCIL_BACK_OP_VALUE_AMD},
    {"GL_VERTEX_ATTRIB_ARRAY_LONG", GL_VERTEX_ATTRIB_ARRAY_LONG},
    {"GL_OCCLUSION_QUERY_EVENT_MASK_AMD", GL_OCCLUSION_QUERY_EVENT_MASK_AMD},
    {"GL_YCBCR_MESA", GL_YCBCR_MESA},
    {"GL_PACK_INVERT_MESA", GL_PACK_INVERT_MESA},
    {"GL_TEXTURE_1D_STACK_MESAX", GL_TEXTURE_1D_STACK_MESAX},
    {"GL_TEXTURE_2D_STACK_MESAX", GL_TEXTURE_2D_STACK_MESAX},
    {"GL_PROXY_TEXTURE_1D_STACK_MESAX", GL_PROXY_TEXTURE_1D_STACK_MESAX},
    {"GL_PROXY_TEXTURE_2D_STACK_MESAX", GL_PROXY_TEXTURE_2D_STACK_MESAX},
    {"GL_TEXTURE_1D_STACK_BINDING_MESAX", GL_TEXTURE_1D_STACK_BINDING_MESAX},
    {"GL_TEXTURE_2D_STACK_BINDING_MESAX", GL_TEXTURE_2D_STACK_BINDING_MESAX},
    {"GL_STATIC_ATI", GL_STATIC_ATI},
    {"GL_DYNAMIC_ATI", GL_DYNAMIC_ATI},
    {"GL_PRESERVE_ATI", GL_PRESERVE_ATI},
    {"GL_DISCARD_ATI", GL_DISCARD_ATI},
    {"GL_BUFFER_SIZE", GL_BUFFER_SIZE},
    {"GL_BUFFER_USAGE", GL_BUFFER_USAGE},
    {"GL_ARRAY_OBJECT_BUFFER_ATI", GL_ARRAY_OBJECT_BUFFER_ATI},
    {"GL_ARRAY_OBJECT_OFFSET_ATI", GL_ARRAY_OBJECT_OFFSET_ATI},
    {"GL_ELEMENT_ARRAY_ATI", GL_ELEMENT_ARRAY_ATI},
    {"GL_ELEMENT_ARRAY_TYPE_ATI", GL_ELEMENT_ARRAY_TYPE_ATI},
    {"GL_ELEMENT_ARRAY_POINTER_ATI", GL_ELEMENT_ARRAY_POINTER_ATI},
    {"GL_MAX_VERTEX_STREAMS_ATI", GL_MAX_VERTEX_STREAMS_ATI},
    {"GL_VERTEX_STREAM0_ATI", GL_VERTEX_STREAM0_ATI},
    {"GL_VERTEX_STREAM1_ATI", GL_VERTEX_STREAM1_ATI},
    {"GL_VERTEX_STREAM2_ATI", GL_VERTEX_STREAM2_ATI},
    {"GL_VERTEX_STREAM3_ATI", GL_VERTEX_STREAM3_ATI},
    {"GL_VERTEX_STREAM4_ATI", GL_VERTEX_STREAM4_ATI},
    {"GL_VERTEX_STREAM5_ATI", GL_VERTEX_STREAM5_ATI},
    {"GL_VERTEX_STREAM6_ATI", GL_VERTEX_STREAM6_ATI},
    {"GL_VERTEX_STREAM7_ATI", GL_VERTEX_STREAM7_ATI},
    {"GL_VERTEX_SOURCE_ATI", GL_VERTEX_SOURCE_ATI},
    {"GL_BUMP_ROT_MATRIX_ATI", GL_BUMP_ROT_MATRIX_ATI},
    {"GL_BUMP_ROT_MATRIX_SIZE_ATI", GL_BUMP_ROT_MATRIX_SIZE_ATI},
    {"GL_BUMP_NUM_TEX_UNITS_ATI", GL_BUMP_NUM_TEX_UNITS_ATI},
    {"GL_BUMP_TEX_UNITS_ATI", GL_BUMP_TEX_UNITS_ATI},
    {"GL_DUDV_ATI", GL_DUDV_ATI},
    {"GL_DU8DV8_ATI", GL_DU8DV8_ATI},
    {"GL_BUMP_ENVMAP_ATI", GL_BUMP_ENVMAP_ATI},
    {"GL_BUMP_TARGET_ATI", GL_BUMP_TARGET_ATI},
    {"GL_VERTEX_SHADER_EXT", GL_VERTEX_SHADER_EXT},
    {"GL_VERTEX_SHADER_BINDING_EXT", GL_VERTEX_SHADER_BINDING_EXT},
    {"GL_OP_INDEX_EXT", GL_OP_INDEX_EXT},
    {"GL_OP_NEGATE_EXT", GL_OP_NEGATE_EXT},
    {"GL_OP_DOT3_EXT", GL_OP_DOT3_EXT},
    {"GL_OP_DOT4_EXT", GL_OP_DOT4_EXT},
    {"GL_OP_MUL_EXT", GL_OP_MUL_EXT},
    {"GL_OP_ADD_EXT", GL_OP_ADD_EXT},
    {"GL_OP_MADD_EXT", GL_OP_MADD_EXT},
    {"GL_OP_FRAC_EXT", GL_OP_FRAC_EXT},
    {"GL_OP_MAX_EXT", GL_OP_MAX_EXT},
    {"GL_OP_MIN_EXT", GL_OP_MIN_EXT},
    {"GL_OP_SET_GE_EXT", GL_OP_SET_GE_EXT},
    {"GL_OP_SET_LT_EXT", GL_OP_SET_LT_EXT},
    {"GL_OP_CLAMP_EXT", GL_OP_CLAMP_EXT},
    {"GL_OP_FLOOR_EXT", GL_OP_FLOOR_EXT},
    {"GL_OP_ROUND_EXT", GL_OP_ROUND_EXT},
    {"GL_OP_EXP_BASE_2_EXT", GL_OP_EXP_BASE_2_EXT},
    {"GL_OP_LOG_BASE_2_EXT", GL_OP_LOG_BASE_2_EXT},
    {"GL_OP_POWER_EXT", GL_OP_POWER_EXT},
    {"GL_OP_RECIP_EXT", GL_OP_RECIP_EXT},
    {"GL_OP_RECIP_SQRT_EXT", GL_OP_RECIP_SQRT_EXT},
    {"GL_OP_SUB_EXT", GL_OP_SUB_EXT},
    {"GL_OP_CROSS_PRODUCT_EXT", GL_OP_CROSS_PRODUCT_EXT},
    {"GL_OP_MULTIPLY_MATRIX_EXT", GL_OP_MULTIPLY_MATRIX_EXT},
    {"GL_OP_MOV_EXT", GL_OP_MOV_EXT},
    {"GL_OUTPUT_VERTEX_EXT", GL_OUTPUT_VERTEX_EXT},
    {"GL_OUTPUT_COLOR0_EXT", GL_OUTPUT_COLOR0_EXT},
    {"GL_OUTPUT_COLOR1_EXT", GL_OUTPUT_COLOR1_EXT},
    {"GL_OUTPUT_TEXTURE_COORD0_EXT", GL_OUTPUT_TEXTURE_COORD0_EXT},
    {"GL_OUTPUT_TEXTURE_COORD1_EXT", GL_OUTPUT_TEXTURE_COORD1_EXT},
    {"GL_OUTPUT_TEXTURE_COORD2_EXT", GL_OUTPUT_TEXTURE_COORD2_EXT},
    {"GL_OUTPUT_TEXTURE_COORD3_EXT", GL_OUTPUT_TEXTURE_COORD3_EXT},
    {"GL_OUTPUT_TEXTURE_COORD4_EXT", GL_OUTPUT_TEXTURE_COORD4_EXT},
    {"GL_OUTPUT_TEXTURE_COORD5_EXT", GL_OUTPUT_TEXTURE_COORD5_EXT},
    {"GL_OUTPUT_TEXTURE_COORD6_EXT", GL_OUTPUT_TEXTURE_COORD6_EXT},
    {"GL_OUTPUT_TEXTURE_COORD7_EXT", GL_OUTPUT_TEXTURE_COORD7_EXT},
    {"GL_OUTPUT_TEXTURE_COORD8_EXT", GL_OUTPUT_TEXTURE_COORD8_EXT},
    {"GL_OUTPUT_TEXTURE_COORD9_EXT", GL_OUTPUT_TEXTURE_COORD9_EXT},
    {"GL_OUTPUT_TEXTURE_COORD10_EXT", GL_OUTPUT_TEXTURE_COORD10_EXT},
    {"GL_OUTPUT_TEXTURE_COORD11_EXT", GL_OUTPUT_TEXTURE_COORD11_EXT},
    {"GL_OUTPUT_TEXTURE_COORD12_EXT", GL_OUTPUT_TEXTURE_COORD12_EXT},
    {"GL_OUTPUT_TEXTURE_COORD13_EXT", GL_OUTPUT_TEXTURE_COORD13_EXT},
    {"GL_OUTPUT_TEXTURE_COORD14_EXT", GL_OUTPUT_TEXTURE_COORD14_EXT},
    {"GL_OUTPUT_TEXTURE_COORD15_EXT", GL_OUTPUT_TEXTURE_COORD15_EXT},
    {"GL_OUTPUT_TEXTURE_COORD16_EXT", GL_OUTPUT_TEXTURE_COORD16_EXT},
    {"GL_OUTPUT_TEXTURE_COORD17_EXT", GL_OUTPUT_TEXTURE_COORD17_EXT},
    {"GL_OUTPUT_TEXTURE_COORD18_EXT", GL_OUTPUT_TEXTURE_COORD18_EXT},
    {"GL_OUTPUT_TEXTURE_COORD19_EXT", GL_OUTPUT_TEXTURE_COORD19_EXT},
    {"GL_OUTPUT_TEXTURE_COORD20_EXT", GL_OUTPUT_TEXTURE_COORD20_EXT},
    {"GL_OUTPUT_TEXTURE_COORD21_EXT", GL_OUTPUT_TEXTURE_COORD21_EXT},
    {"GL_OUTPUT_TEXTURE_COORD22_EXT", GL_OUTPUT_TEXTURE_COORD22_EXT},
    {"GL_OUTPUT_TEXTURE_COORD23_EXT", GL_OUTPUT_TEXTURE_COORD23_EXT},
    {"GL_OUTPUT_TEXTURE_COORD24_EXT", GL_OUTPUT_TEXTURE_COORD24_EXT},
    {"GL_OUTPUT_TEXTURE_COORD25_EXT", GL_OUTPUT_TEXTURE_COORD25_EXT},
    {"GL_OUTPUT_TEXTURE_COORD26_EXT", GL_OUTPUT_TEXTURE_COORD26_EXT},
    {"GL_OUTPUT_TEXTURE_COORD27_EXT", GL_OUTPUT_TEXTURE_COORD27_EXT},
    {"GL_OUTPUT_TEXTURE_COORD28_EXT", GL_OUTPUT_TEXTURE_COORD28_EXT},
    {"GL_OUTPUT_TEXTURE_COORD29_EXT", GL_OUTPUT_TEXTURE_COORD29_EXT},
    {"GL_OUTPUT_TEXTURE_COORD30_EXT", GL_OUTPUT_TEXTURE_COORD30_EXT},
    {"GL_OUTPUT_TEXTURE_COORD31_EXT", GL_OUTPUT_TEXTURE_COORD31_EXT},
    {"GL_OUTPUT_FOG_EXT", GL_OUTPUT_FOG_EXT},
    {"GL_SCALAR_EXT", GL_SCALAR_EXT},
    {"GL_VECTOR_EXT", GL_VECTOR_EXT},
    {"GL_MATRIX_EXT", GL_MATRIX_EXT},
    {"GL_VARIANT_EXT", GL_VARIANT_EXT},
    {"GL_INVARIANT_EXT", GL_INVARIANT_EXT},
    {"GL_LOCAL_CONSTANT_EXT", GL_LOCAL_CONSTANT_EXT},
    {"GL_LOCAL_EXT", GL_LOCAL_EXT},
    {"GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT", GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT},
    {"GL_MAX_VERTEX_SHADER_VARIANTS_EXT", GL_MAX_VERTEX_SHADER_VARIANTS_EXT},
    {"GL_MAX_VERTEX_SHADER_INVARIANTS_EXT", GL_MAX_VERTEX_SHADER_INVARIANTS_EXT},
    {"GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT", GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT},
    {"GL_MAX_VERTEX_SHADER_LOCALS_EXT", GL_MAX_VERTEX_SHADER_LOCALS_EXT},
    {"GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT", GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT},
    {"GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT", GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT},
    {"GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT", GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT},
    {"GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT", GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT},
    {"GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT", GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT},
    {"GL_VERTEX_SHADER_INSTRUCTIONS_EXT", GL_VERTEX_SHADER_INSTRUCTIONS_EXT},
    {"GL_VERTEX_SHADER_VARIANTS_EXT", GL_VERTEX_SHADER_VARIANTS_EXT},
    {"GL_VERTEX_SHADER_INVARIANTS_EXT", GL_VERTEX_SHADER_INVARIANTS_EXT},
    {"GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT", GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT},
    {"GL_VERTEX_SHADER_LOCALS_EXT", GL_VERTEX_SHADER_LOCALS_EXT},
    {"GL_VERTEX_SHADER_OPTIMIZED_EXT", GL_VERTEX_SHADER_OPTIMIZED_EXT},
    {"GL_X_EXT", GL_X_EXT},
    {"GL_Y_EXT", GL_Y_EXT},
    {"GL_Z_EXT", GL_Z_EXT},
    {"GL_W_EXT", GL_W_EXT},
    {"GL_NEGATIVE_X_EXT", GL_NEGATIVE_X_EXT},
    {"GL_NEGATIVE_Y_EXT", GL_NEGATIVE_Y_EXT},
    {"GL_NEGATIVE_Z_EXT", GL_NEGATIVE_Z_EXT},
    {"GL_NEGATIVE_W_EXT", GL_NEGATIVE_W_EXT},
    {"GL_ZERO_EXT", GL_ZERO_EXT},
    {"GL_ONE_EXT", GL_ONE_EXT},
    {"GL_NEGATIVE_ONE_EXT", GL_NEGATIVE_ONE_EXT},
    {"GL_NORMALIZED_RANGE_EXT", GL_NORMALIZED_RANGE_EXT},
    {"GL_FULL_RANGE_EXT", GL_FULL_RANGE_EXT},
    {"GL_CURRENT_VERTEX_EXT", GL_CURRENT_VERTEX_EXT},
    {"GL_MVP_MATRIX_EXT", GL_MVP_MATRIX_EXT},
    {"GL_VARIANT_VALUE_EXT", GL_VARIANT_VALUE_EXT},
    {"GL_VARIANT_DATATYPE_EXT", GL_VARIANT_DATATYPE_EXT},
    {"GL_VARIANT_ARRAY_STRIDE_EXT", GL_VARIANT_ARRAY_STRIDE_EXT},
    {"GL_VARIANT_ARRAY_TYPE_EXT", GL_VARIANT_ARRAY_TYPE_EXT},
    {"GL_VARIANT_ARRAY_EXT", GL_VARIANT_ARRAY_EXT},
    {"GL_VARIANT_ARRAY_POINTER_EXT", GL_VARIANT_ARRAY_POINTER_EXT},
    {"GL_INVARIANT_VALUE_EXT", GL_INVARIANT_VALUE_EXT},
    {"GL_INVARIANT_DATATYPE_EXT", GL_INVARIANT_DATATYPE_EXT},
    {"GL_LOCAL_CONSTANT_VALUE_EXT", GL_LOCAL_CONSTANT_VALUE_EXT},
    {"GL_LOCAL_CONSTANT_DATATYPE_EXT", GL_LOCAL_CONSTANT_DATATYPE_EXT},
    {"GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD", GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD},
    {"GL_PN_TRIANGLES_ATI", GL_PN_TRIANGLES_ATI},
    {"GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI", GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI},
    {"GL_PN_TRIANGLES_POINT_MODE_ATI", GL_PN_TRIANGLES_POINT_MODE_ATI},
    {"GL_PN_TRIANGLES_NORMAL_MODE_ATI", GL_PN_TRIANGLES_NORMAL_MODE_ATI},
    {"GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI", GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI},
    {"GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI", GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI},
    {"GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI", GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI},
    {"GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI", GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI},
    {"GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI", GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI},
    {"GL_3DC_X_AMD", GL_3DC_X_AMD},
    {"GL_3DC_XY_AMD", GL_3DC_XY_AMD},
    {"GL_VBO_FREE_MEMORY_ATI", GL_VBO_FREE_MEMORY_ATI},
    {"GL_TEXTURE_FREE_MEMORY_ATI", GL_TEXTURE_FREE_MEMORY_ATI},
    {"GL_RENDERBUFFER_FREE_MEMORY_ATI", GL_RENDERBUFFER_FREE_MEMORY_ATI},
    {"GL_NUM_PROGRAM_BINARY_FORMATS", GL_NUM_PROGRAM_BINARY_FORMATS},
    {"GL_PROGRAM_BINARY_FORMATS", GL_PROGRAM_BINARY_FORMATS},
    {"GL_STENCIL_BACK_FUNC", GL_STENCIL_BACK_FUNC},
    {"GL_STENCIL_BACK_FAIL", GL_STENCIL_BACK_FAIL},
    {"GL_STENCIL_BACK_PASS_DEPTH_FAIL", GL_STENCIL_BACK_PASS_DEPTH_FAIL},
    {"GL_STENCIL_BACK_PASS_DEPTH_PASS", GL_STENCIL_BACK_PASS_DEPTH_PASS},
    {"GL_FRAGMENT_PROGRAM_ARB", GL_FRAGMENT_PROGRAM_ARB},
    {"GL_PROGRAM_ALU_INSTRUCTIONS_ARB", GL_PROGRAM_ALU_INSTRUCTIONS_ARB},
    {"GL_PROGRAM_TEX_INSTRUCTIONS_ARB", GL_PROGRAM_TEX_INSTRUCTIONS_ARB},
    {"GL_PROGRAM_TEX_INDIRECTIONS_ARB", GL_PROGRAM_TEX_INDIRECTIONS_ARB},
    {"GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB", GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB},
    {"GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB", GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB},
    {"GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB", GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB},
    {"GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB", GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB},
    {"GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB", GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB},
    {"GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB", GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB", GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB", GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB", GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB},
    {"GL_RGBA32F", GL_RGBA32F},
    {"GL_RGB32F", GL_RGB32F},
    {"GL_ALPHA32F_ARB", GL_ALPHA32F_ARB},
    {"GL_INTENSITY32F_ARB", GL_INTENSITY32F_ARB},
    {"GL_LUMINANCE32F_ARB", GL_LUMINANCE32F_ARB},
    {"GL_LUMINANCE_ALPHA32F_ARB", GL_LUMINANCE_ALPHA32F_ARB},
    {"GL_RGBA16F", GL_RGBA16F},
    {"GL_RGB16F", GL_RGB16F},
    {"GL_ALPHA16F_ARB", GL_ALPHA16F_ARB},
    {"GL_INTENSITY16F_ARB", GL_INTENSITY16F_ARB},
    {"GL_LUMINANCE16F_ARB", GL_LUMINANCE16F_ARB},
    {"GL_LUMINANCE_ALPHA16F_ARB", GL_LUMINANCE_ALPHA16F_ARB},
    {"GL_RGBA_FLOAT_MODE_ARB", GL_RGBA_FLOAT_MODE_ARB},
    {"GL_MAX_DRAW_BUFFERS", GL_MAX_DRAW_BUFFERS},
    {"GL_DRAW_BUFFER0", GL_DRAW_BUFFER0},
    {"GL_DRAW_BUFFER1", GL_DRAW_BUFFER1},
    {"GL_DRAW_BUFFER2", GL_DRAW_BUFFER2},
    {"GL_DRAW_BUFFER3", GL_DRAW_BUFFER3},
    {"GL_DRAW_BUFFER4", GL_DRAW_BUFFER4},
    {"GL_DRAW_BUFFER5", GL_DRAW_BUFFER5},
    {"GL_DRAW_BUFFER6", GL_DRAW_BUFFER6},
    {"GL_DRAW_BUFFER7", GL_DRAW_BUFFER7},
    {"GL_DRAW_BUFFER8", GL_DRAW_BUFFER8},
    {"GL_DRAW_BUFFER9", GL_DRAW_BUFFER9},
    {"GL_DRAW_BUFFER10", GL_DRAW_BUFFER10},
    {"GL_DRAW_BUFFER11", GL_DRAW_BUFFER11},
    {"GL_DRAW_BUFFER12", GL_DRAW_BUFFER12},
    {"GL_DRAW_BUFFER13", GL_DRAW_BUFFER13},
    {"GL_DRAW_BUFFER14", GL_DRAW_BUFFER14},
    {"GL_DRAW_BUFFER15", GL_DRAW_BUFFER15},
    {"GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI", GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI},
    {"GL_BLEND_EQUATION_ALPHA", GL_BLEND_EQUATION_ALPHA},
    {"GL_SUBSAMPLE_DISTANCE_AMD", GL_SUBSAMPLE_DISTANCE_AMD},
    {"GL_MATRIX_PALETTE_ARB", GL_MATRIX_PALETTE_ARB},
    {"GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB", GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB},
    {"GL_MAX_PALETTE_MATRICES_ARB", GL_MAX_PALETTE_MATRICES_ARB},
    {"GL_CURRENT_PALETTE_MATRIX_ARB", GL_CURRENT_PALETTE_MATRIX_ARB},
    {"GL_MATRIX_INDEX_ARRAY_ARB", GL_MATRIX_INDEX_ARRAY_ARB},
    {"GL_CURRENT_MATRIX_INDEX_ARB", GL_CURRENT_MATRIX_INDEX_ARB},
    {"GL_MATRIX_INDEX_ARRAY_SIZE_ARB", GL_MATRIX_INDEX_ARRAY_SIZE_ARB},
    {"GL_MATRIX_INDEX_ARRAY_TYPE_ARB", GL_MATRIX_INDEX_ARRAY_TYPE_ARB},
    {"GL_MATRIX_INDEX_ARRAY_STRIDE_ARB", GL_MATRIX_INDEX_ARRAY_STRIDE_ARB},
    {"GL_MATRIX_INDEX_ARRAY_POINTER_ARB", GL_MATRIX_INDEX_ARRAY_POINTER_ARB},
    {"GL_TEXTURE_DEPTH_SIZE", GL_TEXTURE_DEPTH_SIZE},
    {"GL_DEPTH_TEXTURE_MODE", GL_DEPTH_TEXTURE_MODE},
    {"GL_TEXTURE_COMPARE_MODE", GL_TEXTURE_COMPARE_MODE},
    {"GL_TEXTURE_COMPARE_FUNC", GL_TEXTURE_COMPARE_FUNC},
    {"GL_COMPARE_REF_TO_TEXTURE", GL_COMPARE_REF_TO_TEXTURE},
    {"GL_TEXTURE_CUBE_MAP_SEAMLESS", GL_TEXTURE_CUBE_MAP_SEAMLESS},
    {"GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV", GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV},
    {"GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV", GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV},
    {"GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV", GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV},
    {"GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV", GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV},
    {"GL_OFFSET_HILO_TEXTURE_2D_NV", GL_OFFSET_HILO_TEXTURE_2D_NV},
    {"GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV", GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV},
    {"GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV", GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV},
    {"GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV", GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV},
    {"GL_DEPENDENT_HILO_TEXTURE_2D_NV", GL_DEPENDENT_HILO_TEXTURE_2D_NV},
    {"GL_DEPENDENT_RGB_TEXTURE_3D_NV", GL_DEPENDENT_RGB_TEXTURE_3D_NV},
    {"GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV", GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV},
    {"GL_DOT_PRODUCT_PASS_THROUGH_NV", GL_DOT_PRODUCT_PASS_THROUGH_NV},
    {"GL_DOT_PRODUCT_TEXTURE_1D_NV", GL_DOT_PRODUCT_TEXTURE_1D_NV},
    {"GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV", GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV},
    {"GL_HILO8_NV", GL_HILO8_NV},
    {"GL_SIGNED_HILO8_NV", GL_SIGNED_HILO8_NV},
    {"GL_FORCE_BLUE_TO_ONE_NV", GL_FORCE_BLUE_TO_ONE_NV},
    {"GL_POINT_SPRITE", GL_POINT_SPRITE},
    {"GL_COORD_REPLACE", GL_COORD_REPLACE},
    {"GL_POINT_SPRITE_R_MODE_NV", GL_POINT_SPRITE_R_MODE_NV},
    {"GL_QUERY_COUNTER_BITS", GL_QUERY_COUNTER_BITS},
    {"GL_CURRENT_QUERY", GL_CURRENT_QUERY},
    {"GL_QUERY_RESULT", GL_QUERY_RESULT},
    {"GL_QUERY_RESULT_AVAILABLE", GL_QUERY_RESULT_AVAILABLE},
    {"GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV", GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV},
    {"GL_MAX_VERTEX_ATTRIBS", GL_MAX_VERTEX_ATTRIBS},
    {"GL_VERTEX_ATTRIB_ARRAY_NORMALIZED", GL_VERTEX_ATTRIB_ARRAY_NORMALIZED},
    {"GL_MAX_TESS_CONTROL_INPUT_COMPONENTS", GL_MAX_TESS_CONTROL_INPUT_COMPONENTS},
    {"GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS},
    {"GL_DEPTH_STENCIL_TO_RGBA_NV", GL_DEPTH_STENCIL_TO_RGBA_NV},
    {"GL_DEPTH_STENCIL_TO_BGRA_NV", GL_DEPTH_STENCIL_TO_BGRA_NV},
    {"GL_FRAGMENT_PROGRAM_NV", GL_FRAGMENT_PROGRAM_NV},
    {"GL_MAX_TEXTURE_COORDS", GL_MAX_TEXTURE_COORDS},
    {"GL_MAX_TEXTURE_IMAGE_UNITS", GL_MAX_TEXTURE_IMAGE_UNITS},
    {"GL_FRAGMENT_PROGRAM_BINDING_NV", GL_FRAGMENT_PROGRAM_BINDING_NV},
    {"GL_PROGRAM_ERROR_STRING_ARB", GL_PROGRAM_ERROR_STRING_ARB},
    {"GL_PROGRAM_FORMAT_ASCII_ARB", GL_PROGRAM_FORMAT_ASCII_ARB},
    {"GL_PROGRAM_FORMAT_ARB", GL_PROGRAM_FORMAT_ARB},
    {"GL_WRITE_PIXEL_DATA_RANGE_NV", GL_WRITE_PIXEL_DATA_RANGE_NV},
    {"GL_READ_PIXEL_DATA_RANGE_NV", GL_READ_PIXEL_DATA_RANGE_NV},
    {"GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV", GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV},
    {"GL_READ_PIXEL_DATA_RANGE_LENGTH_NV", GL_READ_PIXEL_DATA_RANGE_LENGTH_NV},
    {"GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV", GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV},
    {"GL_READ_PIXEL_DATA_RANGE_POINTER_NV", GL_READ_PIXEL_DATA_RANGE_POINTER_NV},
    {"GL_GEOMETRY_SHADER_INVOCATIONS", GL_GEOMETRY_SHADER_INVOCATIONS},
    {"GL_FLOAT_R_NV", GL_FLOAT_R_NV},
    {"GL_FLOAT_RG_NV", GL_FLOAT_RG_NV},
    {"GL_FLOAT_RGB_NV", GL_FLOAT_RGB_NV},
    {"GL_FLOAT_RGBA_NV", GL_FLOAT_RGBA_NV},
    {"GL_FLOAT_R16_NV", GL_FLOAT_R16_NV},
    {"GL_FLOAT_R32_NV", GL_FLOAT_R32_NV},
    {"GL_FLOAT_RG16_NV", GL_FLOAT_RG16_NV},
    {"GL_FLOAT_RG32_NV", GL_FLOAT_RG32_NV},
    {"GL_FLOAT_RGB16_NV", GL_FLOAT_RGB16_NV},
    {"GL_FLOAT_RGB32_NV", GL_FLOAT_RGB32_NV},
    {"GL_FLOAT_RGBA16_NV", GL_FLOAT_RGBA16_NV},
    {"GL_FLOAT_RGBA32_NV", GL_FLOAT_RGBA32_NV},
    {"GL_TEXTURE_FLOAT_COMPONENTS_NV", GL_TEXTURE_FLOAT_COMPONENTS_NV},
    {"GL_FLOAT_CLEAR_COLOR_VALUE_NV", GL_FLOAT_CLEAR_COLOR_VALUE_NV},
    {"GL_FLOAT_RGBA_MODE_NV", GL_FLOAT_RGBA_MODE_NV},
    {"GL_TEXTURE_UNSIGNED_REMAP_MODE_NV", GL_TEXTURE_UNSIGNED_REMAP_MODE_NV},
    {"GL_DEPTH_BOUNDS_TEST_EXT", GL_DEPTH_BOUNDS_TEST_EXT},
    {"GL_DEPTH_BOUNDS_EXT", GL_DEPTH_BOUNDS_EXT},
    {"GL_ARRAY_BUFFER", GL_ARRAY_BUFFER},
    {"GL_ELEMENT_ARRAY_BUFFER", GL_ELEMENT_ARRAY_BUFFER},
    {"GL_ARRAY_BUFFER_BINDING", GL_ARRAY_BUFFER_BINDING},
    {"GL_ELEMENT_ARRAY_BUFFER_BINDING", GL_ELEMENT_ARRAY_BUFFER_BINDING},
    {"GL_VERTEX_ARRAY_BUFFER_BINDING", GL_VERTEX_ARRAY_BUFFER_BINDING},
    {"GL_NORMAL_ARRAY_BUFFER_BINDING", GL_NORMAL_ARRAY_BUFFER_BINDING},
    {"GL_COLOR_ARRAY_BUFFER_BINDING", GL_COLOR_ARRAY_BUFFER_BINDING},
    {"GL_INDEX_ARRAY_BUFFER_BINDING", GL_INDEX_ARRAY_BUFFER_BINDING},
    {"GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING", GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING},
    {"GL_EDGE_FLAG_ARRAY_BUFFER_BINDING", GL_EDGE_FLAG_ARRAY_BUFFER_BINDING},
    {"GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING", GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING},
    {"GL_FOG_COORD_ARRAY_BUFFER_BINDING", GL_FOG_COORD_ARRAY_BUFFER_BINDING},
    {"GL_WEIGHT_ARRAY_BUFFER_BINDING", GL_WEIGHT_ARRAY_BUFFER_BINDING},
    {"GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING},
    {"GL_PROGRAM_INSTRUCTIONS_ARB", GL_PROGRAM_INSTRUCTIONS_ARB},
    {"GL_MAX_PROGRAM_INSTRUCTIONS_ARB", GL_MAX_PROGRAM_INSTRUCTIONS_ARB},
    {"GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB", GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB", GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB},
    {"GL_PROGRAM_TEMPORARIES_ARB", GL_PROGRAM_TEMPORARIES_ARB},
    {"GL_MAX_PROGRAM_TEMPORARIES_ARB", GL_MAX_PROGRAM_TEMPORARIES_ARB},
    {"GL_PROGRAM_NATIVE_TEMPORARIES_ARB", GL_PROGRAM_NATIVE_TEMPORARIES_ARB},
    {"GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB", GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB},
    {"GL_PROGRAM_PARAMETERS_ARB", GL_PROGRAM_PARAMETERS_ARB},
    {"GL_MAX_PROGRAM_PARAMETERS_ARB", GL_MAX_PROGRAM_PARAMETERS_ARB},
    {"GL_PROGRAM_NATIVE_PARAMETERS_ARB", GL_PROGRAM_NATIVE_PARAMETERS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB", GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB},
    {"GL_PROGRAM_ATTRIBS_ARB", GL_PROGRAM_ATTRIBS_ARB},
    {"GL_MAX_PROGRAM_ATTRIBS_ARB", GL_MAX_PROGRAM_ATTRIBS_ARB},
    {"GL_PROGRAM_NATIVE_ATTRIBS_ARB", GL_PROGRAM_NATIVE_ATTRIBS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB", GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB},
    {"GL_PROGRAM_ADDRESS_REGISTERS_ARB", GL_PROGRAM_ADDRESS_REGISTERS_ARB},
    {"GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB", GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB},
    {"GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB", GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB},
    {"GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB", GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB},
    {"GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB", GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB},
    {"GL_MAX_PROGRAM_ENV_PARAMETERS_ARB", GL_MAX_PROGRAM_ENV_PARAMETERS_ARB},
    {"GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB", GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB},
    {"GL_TRANSPOSE_CURRENT_MATRIX_ARB", GL_TRANSPOSE_CURRENT_MATRIX_ARB},
    {"GL_READ_ONLY", GL_READ_ONLY},
    {"GL_WRITE_ONLY", GL_WRITE_ONLY},
    {"GL_READ_WRITE", GL_READ_WRITE},
    {"GL_BUFFER_ACCESS", GL_BUFFER_ACCESS},
    {"GL_BUFFER_MAPPED", GL_BUFFER_MAPPED},
    {"GL_BUFFER_MAP_POINTER", GL_BUFFER_MAP_POINTER},
    {"GL_WRITE_DISCARD_NV", GL_WRITE_DISCARD_NV},
    {"GL_TIME_ELAPSED", GL_TIME_ELAPSED},
    {"GL_MATRIX0_ARB", GL_MATRIX0_ARB},
    {"GL_MATRIX1_ARB", GL_MATRIX1_ARB},
    {"GL_MATRIX2_ARB", GL_MATRIX2_ARB},
    {"GL_MATRIX3_ARB", GL_MATRIX3_ARB},
    {"GL_MATRIX4_ARB", GL_MATRIX4_ARB},
    {"GL_MATRIX5_ARB", GL_MATRIX5_ARB},
    {"GL_MATRIX6_ARB", GL_MATRIX6_ARB},
    {"GL_MATRIX7_ARB", GL_MATRIX7_ARB},
    {"GL_MATRIX8_ARB", GL_MATRIX8_ARB},
    {"GL_MATRIX9_ARB", GL_MATRIX9_ARB},
    {"GL_MATRIX10_ARB", GL_MATRIX10_ARB},
    {"GL_MATRIX11_ARB", GL_MATRIX11_ARB},
    {"GL_MATRIX12_ARB", GL_MATRIX12_ARB},
    {"GL_MATRIX13_ARB", GL_MATRIX13_ARB},
    {"GL_MATRIX14_ARB", GL_MATRIX14_ARB},
    {"GL_MATRIX15_ARB", GL_MATRIX15_ARB},
    {"GL_MATRIX16_ARB", GL_MATRIX16_ARB},
    {"GL_MATRIX17_ARB", GL_MATRIX17_ARB},
    {"GL_MATRIX18_ARB", GL_MATRIX18_ARB},
    {"GL_MATRIX19_ARB", GL_MATRIX19_ARB},
    {"GL_MATRIX20_ARB", GL_MATRIX20_ARB},
    {"GL_MATRIX21_ARB", GL_MATRIX21_ARB},
    {"GL_MATRIX22_ARB", GL_MATRIX22_ARB},
    {"GL_MATRIX23_ARB", GL_MATRIX23_ARB},
    {"GL_MATRIX24_ARB", GL_MATRIX24_ARB},
    {"GL_MATRIX25_ARB", GL_MATRIX25_ARB},
    {"GL_MATRIX26_ARB", GL_MATRIX26_ARB},
    {"GL_MATRIX27_ARB", GL_MATRIX27_ARB},
    {"GL_MATRIX28_ARB", GL_MATRIX28_ARB},
    {"GL_MATRIX29_ARB", GL_MATRIX29_ARB},
    {"GL_MATRIX30_ARB", GL_MATRIX30_ARB},
    {"GL_MATRIX31_ARB", GL_MATRIX31_ARB},
    {"GL_STREAM_DRAW", GL_STREAM_DRAW},
    {"GL_STREAM_READ", GL_STREAM_READ},
    {"GL_STREAM_COPY", GL_STREAM_COPY},
    {"GL_STATIC_DRAW", GL_STATIC_DRAW},
    {"GL_STATIC_READ", GL_STATIC_READ},
    {"GL_STATIC_COPY", GL_STATIC_COPY},
    {"GL_DYNAMIC_DRAW", GL_DYNAMIC_DRAW},
    {"GL_DYNAMIC_READ", GL_DYNAMIC_READ},
    {"GL_DYNAMIC_COPY", GL_DYNAMIC_COPY},
    {"GL_PIXEL_PACK_BUFFER", GL_PIXEL_PACK_BUFFER},
    {"GL_PIXEL_UNPACK_BUFFER", GL_PIXEL_UNPACK_BUFFER},
    {"GL_PIXEL_PACK_BUFFER_BINDING", GL_PIXEL_PACK_BUFFER_BINDING},
    {"GL_ETC1_SRGB8_NV", GL_ETC1_SRGB8_NV},
    {"GL_PIXEL_UNPACK_BUFFER_BINDING", GL_PIXEL_UNPACK_BUFFER_BINDING},
    {"GL_DEPTH24_STENCIL8", GL_DEPTH24_STENCIL8},
    {"GL_TEXTURE_STENCIL_SIZE", GL_TEXTURE_STENCIL_SIZE},
    {"GL_STENCIL_TAG_BITS_EXT", GL_STENCIL_TAG_BITS_EXT},
    {"GL_STENCIL_CLEAR_TAG_VALUE_EXT", GL_STENCIL_CLEAR_TAG_VALUE_EXT},
    {"GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV", GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV},
    {"GL_MAX_PROGRAM_CALL_DEPTH_NV", GL_MAX_PROGRAM_CALL_DEPTH_NV},
    {"GL_MAX_PROGRAM_IF_DEPTH_NV", GL_MAX_PROGRAM_IF_DEPTH_NV},
    {"GL_MAX_PROGRAM_LOOP_DEPTH_NV", GL_MAX_PROGRAM_LOOP_DEPTH_NV},
    {"GL_MAX_PROGRAM_LOOP_COUNT_NV", GL_MAX_PROGRAM_LOOP_COUNT_NV},
    {"GL_SRC1_COLOR", GL_SRC1_COLOR},
    {"GL_ONE_MINUS_SRC1_COLOR", GL_ONE_MINUS_SRC1_COLOR},
    {"GL_ONE_MINUS_SRC1_ALPHA", GL_ONE_MINUS_SRC1_ALPHA},
    {"GL_MAX_DUAL_SOURCE_DRAW_BUFFERS", GL_MAX_DUAL_SOURCE_DRAW_BUFFERS},
    {"GL_VERTEX_ATTRIB_ARRAY_INTEGER", GL_VERTEX_ATTRIB_ARRAY_INTEGER},
    {"GL_VERTEX_ATTRIB_ARRAY_DIVISOR", GL_VERTEX_ATTRIB_ARRAY_DIVISOR},
    {"GL_MAX_ARRAY_TEXTURE_LAYERS", GL_MAX_ARRAY_TEXTURE_LAYERS},
    {"GL_MIN_PROGRAM_TEXEL_OFFSET", GL_MIN_PROGRAM_TEXEL_OFFSET},
    {"GL_MAX_PROGRAM_TEXEL_OFFSET", GL_MAX_PROGRAM_TEXEL_OFFSET},
    {"GL_PROGRAM_ATTRIB_COMPONENTS_NV", GL_PROGRAM_ATTRIB_COMPONENTS_NV},
    {"GL_PROGRAM_RESULT_COMPONENTS_NV", GL_PROGRAM_RESULT_COMPONENTS_NV},
    {"GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV", GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV},
    {"GL_MAX_PROGRAM_RESULT_COMPONENTS_NV", GL_MAX_PROGRAM_RESULT_COMPONENTS_NV},
    {"GL_STENCIL_TEST_TWO_SIDE_EXT", GL_STENCIL_TEST_TWO_SIDE_EXT},
    {"GL_ACTIVE_STENCIL_FACE_EXT", GL_ACTIVE_STENCIL_FACE_EXT},
    {"GL_MIRROR_CLAMP_TO_BORDER_EXT", GL_MIRROR_CLAMP_TO_BORDER_EXT},
    {"GL_SAMPLES_PASSED", GL_SAMPLES_PASSED},
    {"GL_GEOMETRY_VERTICES_OUT", GL_GEOMETRY_VERTICES_OUT},
    {"GL_GEOMETRY_INPUT_TYPE", GL_GEOMETRY_INPUT_TYPE},
    {"GL_GEOMETRY_OUTPUT_TYPE", GL_GEOMETRY_OUTPUT_TYPE},
    {"GL_SAMPLER_BINDING", GL_SAMPLER_BINDING},
    {"GL_CLAMP_VERTEX_COLOR", GL_CLAMP_VERTEX_COLOR},
    {"GL_CLAMP_FRAGMENT_COLOR", GL_CLAMP_FRAGMENT_COLOR},
    {"GL_CLAMP_READ_COLOR", GL_CLAMP_READ_COLOR},
    {"GL_FIXED_ONLY", GL_FIXED_ONLY},
    {"GL_TESS_CONTROL_PROGRAM_NV", GL_TESS_CONTROL_PROGRAM_NV},
    {"GL_TESS_EVALUATION_PROGRAM_NV", GL_TESS_EVALUATION_PROGRAM_NV},
    {"GL_FRAGMENT_SHADER_ATI", GL_FRAGMENT_SHADER_ATI},
    {"GL_REG_0_ATI", GL_REG_0_ATI},
    {"GL_REG_1_ATI", GL_REG_1_ATI},
    {"GL_REG_2_ATI", GL_REG_2_ATI},
    {"GL_REG_3_ATI", GL_REG_3_ATI},
    {"GL_REG_4_ATI", GL_REG_4_ATI},
    {"GL_REG_5_ATI", GL_REG_5_ATI},
    {"GL_REG_6_ATI", GL_REG_6_ATI},
    {"GL_REG_7_ATI", GL_REG_7_ATI},
    {"GL_REG_8_ATI", GL_REG_8_ATI},
    {"GL_REG_9_ATI", GL_REG_9_ATI},
    {"GL_REG_10_ATI", GL_REG_10_ATI},
    {"GL_REG_11_ATI", GL_REG_11_ATI},
    {"GL_REG_12_ATI", GL_REG_12_ATI},
    {"GL_REG_13_ATI", GL_REG_13_ATI},
    {"GL_REG_14_ATI", GL_REG_14_ATI},
    {"GL_REG_15_ATI", GL_REG_15_ATI},
    {"GL_REG_16_ATI", GL_REG_16_ATI},
    {"GL_REG_17_ATI", GL_REG_17_ATI},
    {"GL_REG_18_ATI", GL_REG_18_ATI},
    {"GL_REG_19_ATI", GL_REG_19_ATI},
    {"GL_REG_20_ATI", GL_REG_20_ATI},
    {"GL_REG_21_ATI", GL_REG_21_ATI},
    {"GL_REG_22_ATI", GL_REG_22_ATI},
    {"GL_REG_23_ATI", GL_REG_23_ATI},
    {"GL_REG_24_ATI", GL_REG_24_ATI},
    {"GL_REG_25_ATI", GL_REG_25_ATI},
    {"GL_REG_26_ATI", GL_REG_26_ATI},
    {"GL_REG_27_ATI", GL_REG_27_ATI},
    {"GL_REG_28_ATI", GL_REG_28_ATI},
    {"GL_REG_29_ATI", GL_REG_29_ATI},
    {"GL_REG_30_ATI", GL_REG_30_ATI},
    {"GL_REG_31_ATI", GL_REG_31_ATI},
    {"GL_CON_0_ATI", GL_CON_0_ATI},
    {"GL_CON_1_ATI", GL_CON_1_ATI},
    {"GL_CON_2_ATI", GL_CON_2_ATI},
    {"GL_CON_3_ATI", GL_CON_3_ATI},
    {"GL_CON_4_ATI", GL_CON_4_ATI},
    {"GL_CON_5_ATI", GL_CON_5_ATI},
    {"GL_CON_6_ATI", GL_CON_6_ATI},
    {"GL_CON_7_ATI", GL_CON_7_ATI},
    {"GL_CON_8_ATI", GL_CON_8_ATI},
    {"GL_CON_9_ATI", GL_CON_9_ATI},
    {"GL_CON_10_ATI", GL_CON_10_ATI},
    {"GL_CON_11_ATI", GL_CON_11_ATI},
    {"GL_CON_12_ATI", GL_CON_12_ATI},
    {"GL_CON_13_ATI", GL_CON_13_ATI},
    {"GL_CON_14_ATI", GL_CON_14_ATI},
    {"GL_CON_15_ATI", GL_CON_15_ATI},
    {"GL_CON_16_ATI", GL_CON_16_ATI},
    {"GL_CON_17_ATI", GL_CON_17_ATI},
    {"GL_CON_18_ATI", GL_CON_18_ATI},
    {"GL_CON_19_ATI", GL_CON_19_ATI},
    {"GL_CON_20_ATI", GL_CON_20_ATI},
    {"GL_CON_21_ATI", GL_CON_21_ATI},
    {"GL_CON_22_ATI", GL_CON_22_ATI},
    {"GL_CON_23_ATI", GL_CON_23_ATI},
    {"GL_CON_24_ATI", GL_CON_24_ATI},
    {"GL_CON_25_ATI", GL_CON_25_ATI},
    {"GL_CON_26_ATI", GL_CON_26_ATI},
    {"GL_CON_27_ATI", GL_CON_27_ATI},
    {"GL_CON_28_ATI", GL_CON_28_ATI},
    {"GL_CON_29_ATI", GL_CON_29_ATI},
    {"GL_CON_30_ATI", GL_CON_30_ATI},
    {"GL_CON_31_ATI", GL_CON_31_ATI},
    {"GL_MOV_ATI", GL_MOV_ATI},
    {"GL_ADD_ATI", GL_ADD_ATI},
    {"GL_MUL_ATI", GL_MUL_ATI},
    {"GL_SUB_ATI", GL_SUB_ATI},
    {"GL_DOT3_ATI", GL_DOT3_ATI},
    {"GL_DOT4_ATI", GL_DOT4_ATI},
    {"GL_MAD_ATI", GL_MAD_ATI},
    {"GL_LERP_ATI", GL_LERP_ATI},
    {"GL_CND_ATI", GL_CND_ATI},
    {"GL_CND0_ATI", GL_CND0_ATI},
    {"GL_DOT2_ADD_ATI", GL_DOT2_ADD_ATI},
    {"GL_SECONDARY_INTERPOLATOR_ATI", GL_SECONDARY_INTERPOLATOR_ATI},
    {"GL_NUM_FRAGMENT_REGISTERS_ATI", GL_NUM_FRAGMENT_REGISTERS_ATI},
    {"GL_NUM_FRAGMENT_CONSTANTS_ATI", GL_NUM_FRAGMENT_CONSTANTS_ATI},
    {"GL_NUM_PASSES_ATI", GL_NUM_PASSES_ATI},
    {"GL_NUM_INSTRUCTIONS_PER_PASS_ATI", GL_NUM_INSTRUCTIONS_PER_PASS_ATI},
    {"GL_NUM_INSTRUCTIONS_TOTAL_ATI", GL_NUM_INSTRUCTIONS_TOTAL_ATI},
    {"GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI", GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI},
    {"GL_NUM_LOOPBACK_COMPONENTS_ATI", GL_NUM_LOOPBACK_COMPONENTS_ATI},
    {"GL_COLOR_ALPHA_PAIRING_ATI", GL_COLOR_ALPHA_PAIRING_ATI},
    {"GL_SWIZZLE_STR_ATI", GL_SWIZZLE_STR_ATI},
    {"GL_SWIZZLE_STQ_ATI", GL_SWIZZLE_STQ_ATI},
    {"GL_SWIZZLE_STR_DR_ATI", GL_SWIZZLE_STR_DR_ATI},
    {"GL_SWIZZLE_STQ_DQ_ATI", GL_SWIZZLE_STQ_DQ_ATI},
    {"GL_SWIZZLE_STRQ_ATI", GL_SWIZZLE_STRQ_ATI},
    {"GL_SWIZZLE_STRQ_DQ_ATI", GL_SWIZZLE_STRQ_DQ_ATI},
    {"GL_INTERLACE_OML", GL_INTERLACE_OML},
    {"GL_INTERLACE_READ_OML", GL_INTERLACE_READ_OML},
    {"GL_FORMAT_SUBSAMPLE_24_24_OML", GL_FORMAT_SUBSAMPLE_24_24_OML},
    {"GL_FORMAT_SUBSAMPLE_244_244_OML", GL_FORMAT_SUBSAMPLE_244_244_OML},
    {"GL_PACK_RESAMPLE_OML", GL_PACK_RESAMPLE_OML},
    {"GL_UNPACK_RESAMPLE_OML", GL_UNPACK_RESAMPLE_OML},
    {"GL_RESAMPLE_REPLICATE_OML", GL_RESAMPLE_REPLICATE_OML},
    {"GL_RESAMPLE_ZERO_FILL_OML", GL_RESAMPLE_ZERO_FILL_OML},
    {"GL_RESAMPLE_AVERAGE_OML", GL_RESAMPLE_AVERAGE_OML},
    {"GL_RESAMPLE_DECIMATE_OML", GL_RESAMPLE_DECIMATE_OML},
    {"GL_POINT_SIZE_ARRAY_TYPE_OES", GL_POINT_SIZE_ARRAY_TYPE_OES},
    {"GL_POINT_SIZE_ARRAY_STRIDE_OES", GL_POINT_SIZE_ARRAY_STRIDE_OES},
    {"GL_POINT_SIZE_ARRAY_POINTER_OES", GL_POINT_SIZE_ARRAY_POINTER_OES},
    {"GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES", GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES},
    {"GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES", GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES},
    {"GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES", GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES},
    {"GL_VERTEX_ATTRIB_MAP1_APPLE", GL_VERTEX_ATTRIB_MAP1_APPLE},
    {"GL_VERTEX_ATTRIB_MAP2_APPLE", GL_VERTEX_ATTRIB_MAP2_APPLE},
    {"GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE", GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE},
    {"GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE", GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE},
    {"GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE", GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE},
    {"GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE", GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE},
    {"GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE", GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE},
    {"GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE", GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE},
    {"GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE", GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE},
    {"GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE", GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE},
    {"GL_DRAW_PIXELS_APPLE", GL_DRAW_PIXELS_APPLE},
    {"GL_FENCE_APPLE", GL_FENCE_APPLE},
    {"GL_ELEMENT_ARRAY_APPLE", GL_ELEMENT_ARRAY_APPLE},
    {"GL_ELEMENT_ARRAY_TYPE_APPLE", GL_ELEMENT_ARRAY_TYPE_APPLE},
    {"GL_ELEMENT_ARRAY_POINTER_APPLE", GL_ELEMENT_ARRAY_POINTER_APPLE},
    {"GL_COLOR_FLOAT_APPLE", GL_COLOR_FLOAT_APPLE},
    {"GL_UNIFORM_BUFFER", GL_UNIFORM_BUFFER},
    {"GL_BUFFER_SERIALIZED_MODIFY_APPLE", GL_BUFFER_SERIALIZED_MODIFY_APPLE},
    {"GL_BUFFER_FLUSHING_UNMAP_APPLE", GL_BUFFER_FLUSHING_UNMAP_APPLE},
    {"GL_AUX_DEPTH_STENCIL_APPLE", GL_AUX_DEPTH_STENCIL_APPLE},
    {"GL_PACK_ROW_BYTES_APPLE", GL_PACK_ROW_BYTES_APPLE},
    {"GL_UNPACK_ROW_BYTES_APPLE", GL_UNPACK_ROW_BYTES_APPLE},
    {"GL_RELEASED_APPLE", GL_RELEASED_APPLE},
    {"GL_VOLATILE_APPLE", GL_VOLATILE_APPLE},
    {"GL_RETAINED_APPLE", GL_RETAINED_APPLE},
    {"GL_UNDEFINED_APPLE", GL_UNDEFINED_APPLE},
    {"GL_PURGEABLE_APPLE", GL_PURGEABLE_APPLE},
    {"GL_RGB_422_APPLE", GL_RGB_422_APPLE},
    {"GL_UNIFORM_BUFFER_BINDING", GL_UNIFORM_BUFFER_BINDING},
    {"GL_UNIFORM_BUFFER_START", GL_UNIFORM_BUFFER_START},
    {"GL_UNIFORM_BUFFER_SIZE", GL_UNIFORM_BUFFER_SIZE},
    {"GL_MAX_VERTEX_UNIFORM_BLOCKS", GL_MAX_VERTEX_UNIFORM_BLOCKS},
    {"GL_MAX_GEOMETRY_UNIFORM_BLOCKS", GL_MAX_GEOMETRY_UNIFORM_BLOCKS},
    {"GL_MAX_FRAGMENT_UNIFORM_BLOCKS", GL_MAX_FRAGMENT_UNIFORM_BLOCKS},
    {"GL_MAX_COMBINED_UNIFORM_BLOCKS", GL_MAX_COMBINED_UNIFORM_BLOCKS},
    {"GL_MAX_UNIFORM_BUFFER_BINDINGS", GL_MAX_UNIFORM_BUFFER_BINDINGS},
    {"GL_MAX_UNIFORM_BLOCK_SIZE", GL_MAX_UNIFORM_BLOCK_SIZE},
    {"GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS},
    {"GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS", GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS},
    {"GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS},
    {"GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT", GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT},
    {"GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH", GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH},
    {"GL_ACTIVE_UNIFORM_BLOCKS", GL_ACTIVE_UNIFORM_BLOCKS},
    {"GL_UNIFORM_TYPE", GL_UNIFORM_TYPE},
    {"GL_UNIFORM_SIZE", GL_UNIFORM_SIZE},
    {"GL_UNIFORM_NAME_LENGTH", GL_UNIFORM_NAME_LENGTH},
    {"GL_UNIFORM_BLOCK_INDEX", GL_UNIFORM_BLOCK_INDEX},
    {"GL_UNIFORM_OFFSET", GL_UNIFORM_OFFSET},
    {"GL_UNIFORM_ARRAY_STRIDE", GL_UNIFORM_ARRAY_STRIDE},
    {"GL_UNIFORM_MATRIX_STRIDE", GL_UNIFORM_MATRIX_STRIDE},
    {"GL_UNIFORM_IS_ROW_MAJOR", GL_UNIFORM_IS_ROW_MAJOR},
    {"GL_UNIFORM_BLOCK_BINDING", GL_UNIFORM_BLOCK_BINDING},
    {"GL_UNIFORM_BLOCK_DATA_SIZE", GL_UNIFORM_BLOCK_DATA_SIZE},
    {"GL_UNIFORM_BLOCK_NAME_LENGTH", GL_UNIFORM_BLOCK_NAME_LENGTH},
    {"GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS", GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS},
    {"GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES},
    {"GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER},
    {"GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER},
    {"GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER},
    {"GL_TEXTURE_SRGB_DECODE_EXT", GL_TEXTURE_SRGB_DECODE_EXT},
    {"GL_DECODE_EXT", GL_DECODE_EXT},
    {"GL_SKIP_DECODE_EXT", GL_SKIP_DECODE_EXT},
    {"GL_PROGRAM_PIPELINE_OBJECT_EXT", GL_PROGRAM_PIPELINE_OBJECT_EXT},
    {"GL_RGB_RAW_422_APPLE", GL_RGB_RAW_422_APPLE},
    {"GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT", GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT},
    {"GL_SYNC_OBJECT_APPLE", GL_SYNC_OBJECT_APPLE},
    {"GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT", GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT},
    {"GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT", GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT},
    {"GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT", GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT},
    {"GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT", GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT},
    {"GL_FRAGMENT_SHADER", GL_FRAGMENT_SHADER},
    {"GL_VERTEX_SHADER", GL_VERTEX_SHADER},
    {"GL_PROGRAM_OBJECT_ARB", GL_PROGRAM_OBJECT_ARB},
    {"GL_SHADER_OBJECT_ARB", GL_SHADER_OBJECT_ARB},
    {"GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", GL_MAX_FRAGMENT_UNIFORM_COMPONENTS},
    {"GL_MAX_VERTEX_UNIFORM_COMPONENTS", GL_MAX_VERTEX_UNIFORM_COMPONENTS},
    {"GL_MAX_VARYING_COMPONENTS", GL_MAX_VARYING_COMPONENTS},
    {"GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS", GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS},
    {"GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS", GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS},
    {"GL_OBJECT_TYPE_ARB", GL_OBJECT_TYPE_ARB},
    {"GL_SHADER_TYPE", GL_SHADER_TYPE},
    {"GL_FLOAT_VEC2", GL_FLOAT_VEC2},
    {"GL_FLOAT_VEC3", GL_FLOAT_VEC3},
    {"GL_FLOAT_VEC4", GL_FLOAT_VEC4},
    {"GL_INT_VEC2", GL_INT_VEC2},
    {"GL_INT_VEC3", GL_INT_VEC3},
    {"GL_INT_VEC4", GL_INT_VEC4},
    {"GL_BOOL", GL_BOOL},
    {"GL_BOOL_VEC2", GL_BOOL_VEC2},
    {"GL_BOOL_VEC3", GL_BOOL_VEC3},
    {"GL_BOOL_VEC4", GL_BOOL_VEC4},
    {"GL_FLOAT_MAT2", GL_FLOAT_MAT2},
    {"GL_FLOAT_MAT3", GL_FLOAT_MAT3},
    {"GL_FLOAT_MAT4", GL_FLOAT_MAT4},
    {"GL_SAMPLER_1D", GL_SAMPLER_1D},
    {"GL_SAMPLER_2D", GL_SAMPLER_2D},
    {"GL_SAMPLER_3D", GL_SAMPLER_3D},
    {"GL_SAMPLER_CUBE", GL_SAMPLER_CUBE},
    {"GL_SAMPLER_1D_SHADOW", GL_SAMPLER_1D_SHADOW},
    {"GL_SAMPLER_2D_SHADOW", GL_SAMPLER_2D_SHADOW},
    {"GL_SAMPLER_2D_RECT", GL_SAMPLER_2D_RECT},
    {"GL_SAMPLER_2D_RECT_SHADOW", GL_SAMPLER_2D_RECT_SHADOW},
    {"GL_FLOAT_MAT2x3", GL_FLOAT_MAT2x3},
    {"GL_FLOAT_MAT2x4", GL_FLOAT_MAT2x4},
    {"GL_FLOAT_MAT3x2", GL_FLOAT_MAT3x2},
    {"GL_FLOAT_MAT3x4", GL_FLOAT_MAT3x4},
    {"GL_FLOAT_MAT4x2", GL_FLOAT_MAT4x2},
    {"GL_FLOAT_MAT4x3", GL_FLOAT_MAT4x3},
    {"GL_DELETE_STATUS", GL_DELETE_STATUS},
    {"GL_COMPILE_STATUS", GL_COMPILE_STATUS},
    {"GL_LINK_STATUS", GL_LINK_STATUS},
    {"GL_VALIDATE_STATUS", GL_VALIDATE_STATUS},
    {"GL_INFO_LOG_LENGTH", GL_INFO_LOG_LENGTH},
    {"GL_ATTACHED_SHADERS", GL_ATTACHED_SHADERS},
    {"GL_ACTIVE_UNIFORMS", GL_ACTIVE_UNIFORMS},
    {"GL_ACTIVE_UNIFORM_MAX_LENGTH", GL_ACTIVE_UNIFORM_MAX_LENGTH},
    {"GL_SHADER_SOURCE_LENGTH", GL_SHADER_SOURCE_LENGTH},
    {"GL_ACTIVE_ATTRIBUTES", GL_ACTIVE_ATTRIBUTES},
    {"GL_ACTIVE_ATTRIBUTE_MAX_LENGTH", GL_ACTIVE_ATTRIBUTE_MAX_LENGTH},
    {"GL_FRAGMENT_SHADER_DERIVATIVE_HINT", GL_FRAGMENT_SHADER_DERIVATIVE_HINT},
    {"GL_SHADING_LANGUAGE_VERSION", GL_SHADING_LANGUAGE_VERSION},
    {"GL_CURRENT_PROGRAM", GL_CURRENT_PROGRAM},
    {"GL_PALETTE4_RGB8_OES", GL_PALETTE4_RGB8_OES},
    {"GL_PALETTE4_RGBA8_OES", GL_PALETTE4_RGBA8_OES},
    {"GL_PALETTE4_R5_G6_B5_OES", GL_PALETTE4_R5_G6_B5_OES},
    {"GL_PALETTE4_RGBA4_OES", GL_PALETTE4_RGBA4_OES},
    {"GL_PALETTE4_RGB5_A1_OES", GL_PALETTE4_RGB5_A1_OES},
    {"GL_PALETTE8_RGB8_OES", GL_PALETTE8_RGB8_OES},
    {"GL_PALETTE8_RGBA8_OES", GL_PALETTE8_RGBA8_OES},
    {"GL_PALETTE8_R5_G6_B5_OES", GL_PALETTE8_R5_G6_B5_OES},
    {"GL_PALETTE8_RGBA4_OES", GL_PALETTE8_RGBA4_OES},
    {"GL_PALETTE8_RGB5_A1_OES", GL_PALETTE8_RGB5_A1_OES},
    {"GL_IMPLEMENTATION_COLOR_READ_TYPE", GL_IMPLEMENTATION_COLOR_READ_TYPE},
    {"GL_IMPLEMENTATION_COLOR_READ_FORMAT", GL_IMPLEMENTATION_COLOR_READ_FORMAT},
    {"GL_POINT_SIZE_ARRAY_OES", GL_POINT_SIZE_ARRAY_OES},
    {"GL_TEXTURE_CROP_RECT_OES", GL_TEXTURE_CROP_RECT_OES},
    {"GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES", GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES},
    {"GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES", GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES},
    {"GL_COUNTER_TYPE_AMD", GL_COUNTER_TYPE_AMD},
    {"GL_COUNTER_RANGE_AMD", GL_COUNTER_RANGE_AMD},
    {"GL_UNSIGNED_INT64_AMD", GL_UNSIGNED_INT64_AMD},
    {"GL_PERCENTAGE_AMD", GL_PERCENTAGE_AMD},
    {"GL_PERFMON_RESULT_AVAILABLE_AMD", GL_PERFMON_RESULT_AVAILABLE_AMD},
    {"GL_PERFMON_RESULT_SIZE_AMD", GL_PERFMON_RESULT_SIZE_AMD},
    {"GL_PERFMON_RESULT_AMD", GL_PERFMON_RESULT_AMD},
    {"GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT", GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT},
    {"GL_TEXTURE_RED_TYPE", GL_TEXTURE_RED_TYPE},
    {"GL_TEXTURE_GREEN_TYPE", GL_TEXTURE_GREEN_TYPE},
    {"GL_TEXTURE_BLUE_TYPE", GL_TEXTURE_BLUE_TYPE},
    {"GL_TEXTURE_ALPHA_TYPE", GL_TEXTURE_ALPHA_TYPE},
    {"GL_TEXTURE_LUMINANCE_TYPE", GL_TEXTURE_LUMINANCE_TYPE},
    {"GL_TEXTURE_INTENSITY_TYPE", GL_TEXTURE_INTENSITY_TYPE},
    {"GL_TEXTURE_DEPTH_TYPE", GL_TEXTURE_DEPTH_TYPE},
    {"GL_UNSIGNED_NORMALIZED", GL_UNSIGNED_NORMALIZED},
    {"GL_TEXTURE_1D_ARRAY", GL_TEXTURE_1D_ARRAY},
    {"GL_PROXY_TEXTURE_1D_ARRAY", GL_PROXY_TEXTURE_1D_ARRAY},
    {"GL_TEXTURE_2D_ARRAY", GL_TEXTURE_2D_ARRAY},
    {"GL_PROXY_TEXTURE_2D_ARRAY", GL_PROXY_TEXTURE_2D_ARRAY},
    {"GL_TEXTURE_BINDING_1D_ARRAY", GL_TEXTURE_BINDING_1D_ARRAY},
    {"GL_TEXTURE_BINDING_2D_ARRAY", GL_TEXTURE_BINDING_2D_ARRAY},
    {"GL_GEOMETRY_PROGRAM_NV", GL_GEOMETRY_PROGRAM_NV},
    {"GL_MAX_PROGRAM_OUTPUT_VERTICES_NV", GL_MAX_PROGRAM_OUTPUT_VERTICES_NV},
    {"GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV", GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV},
    {"GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS", GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS},
    {"GL_TEXTURE_BUFFER", GL_TEXTURE_BUFFER},
    {"GL_MAX_TEXTURE_BUFFER_SIZE", GL_MAX_TEXTURE_BUFFER_SIZE},
    {"GL_TEXTURE_BINDING_BUFFER", GL_TEXTURE_BINDING_BUFFER},
    {"GL_TEXTURE_BUFFER_DATA_STORE_BINDING", GL_TEXTURE_BUFFER_DATA_STORE_BINDING},
    {"GL_TEXTURE_BUFFER_FORMAT_ARB", GL_TEXTURE_BUFFER_FORMAT_ARB},
    {"GL_ANY_SAMPLES_PASSED", GL_ANY_SAMPLES_PASSED},
    {"GL_SAMPLE_SHADING", GL_SAMPLE_SHADING},
    {"GL_MIN_SAMPLE_SHADING_VALUE", GL_MIN_SAMPLE_SHADING_VALUE},
    {"GL_R11F_G11F_B10F", GL_R11F_G11F_B10F},
    {"GL_UNSIGNED_INT_10F_11F_11F_REV", GL_UNSIGNED_INT_10F_11F_11F_REV},
    {"GL_RGBA_SIGNED_COMPONENTS_EXT", GL_RGBA_SIGNED_COMPONENTS_EXT},
    {"GL_RGB9_E5", GL_RGB9_E5},
    {"GL_UNSIGNED_INT_5_9_9_9_REV", GL_UNSIGNED_INT_5_9_9_9_REV},
    {"GL_TEXTURE_SHARED_SIZE", GL_TEXTURE_SHARED_SIZE},
    {"GL_SRGB", GL_SRGB},
    {"GL_SRGB8", GL_SRGB8},
    {"GL_SRGB_ALPHA", GL_SRGB_ALPHA},
    {"GL_SRGB8_ALPHA8", GL_SRGB8_ALPHA8},
    {"GL_SLUMINANCE_ALPHA", GL_SLUMINANCE_ALPHA},
    {"GL_SLUMINANCE8_ALPHA8", GL_SLUMINANCE8_ALPHA8},
    {"GL_SLUMINANCE", GL_SLUMINANCE},
    {"GL_SLUMINANCE8", GL_SLUMINANCE8},
    {"GL_COMPRESSED_SRGB", GL_COMPRESSED_SRGB},
    {"GL_COMPRESSED_SRGB_ALPHA", GL_COMPRESSED_SRGB_ALPHA},
    {"GL_COMPRESSED_SLUMINANCE", GL_COMPRESSED_SLUMINANCE},
    {"GL_COMPRESSED_SLUMINANCE_ALPHA", GL_COMPRESSED_SLUMINANCE_ALPHA},
    {"GL_COMPRESSED_SRGB_S3TC_DXT1_EXT", GL_COMPRESSED_SRGB_S3TC_DXT1_EXT},
    {"GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT", GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT},
    {"GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT", GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT},
    {"GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT", GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT},
    {"GL_COMPRESSED_LUMINANCE_LATC1_EXT", GL_COMPRESSED_LUMINANCE_LATC1_EXT},
    {"GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT", GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT},
    {"GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT", GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT},
    {"GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT", GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT},
    {"GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV", GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV},
    {"GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV", GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV},
    {"GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH", GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH},
    {"GL_BACK_PRIMARY_COLOR_NV", GL_BACK_PRIMARY_COLOR_NV},
    {"GL_BACK_SECONDARY_COLOR_NV", GL_BACK_SECONDARY_COLOR_NV},
    {"GL_TEXTURE_COORD_NV", GL_TEXTURE_COORD_NV},
    {"GL_CLIP_DISTANCE_NV", GL_CLIP_DISTANCE_NV},
    {"GL_VERTEX_ID_NV", GL_VERTEX_ID_NV},
    {"GL_PRIMITIVE_ID_NV", GL_PRIMITIVE_ID_NV},
    {"GL_GENERIC_ATTRIB_NV", GL_GENERIC_ATTRIB_NV},
    {"GL_TRANSFORM_FEEDBACK_ATTRIBS_NV", GL_TRANSFORM_FEEDBACK_ATTRIBS_NV},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_MODE", GL_TRANSFORM_FEEDBACK_BUFFER_MODE},
    {"GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS},
    {"GL_ACTIVE_VARYINGS_NV", GL_ACTIVE_VARYINGS_NV},
    {"GL_ACTIVE_VARYING_MAX_LENGTH_NV", GL_ACTIVE_VARYING_MAX_LENGTH_NV},
    {"GL_TRANSFORM_FEEDBACK_VARYINGS", GL_TRANSFORM_FEEDBACK_VARYINGS},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_START", GL_TRANSFORM_FEEDBACK_BUFFER_START},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_SIZE", GL_TRANSFORM_FEEDBACK_BUFFER_SIZE},
    {"GL_TRANSFORM_FEEDBACK_RECORD_NV", GL_TRANSFORM_FEEDBACK_RECORD_NV},
    {"GL_PRIMITIVES_GENERATED", GL_PRIMITIVES_GENERATED},
    {"GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN},
    {"GL_RASTERIZER_DISCARD", GL_RASTERIZER_DISCARD},
    {"GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS},
    {"GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS},
    {"GL_INTERLEAVED_ATTRIBS", GL_INTERLEAVED_ATTRIBS},
    {"GL_SEPARATE_ATTRIBS", GL_SEPARATE_ATTRIBS},
    {"GL_TRANSFORM_FEEDBACK_BUFFER", GL_TRANSFORM_FEEDBACK_BUFFER},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_BINDING", GL_TRANSFORM_FEEDBACK_BUFFER_BINDING},
    {"GL_ATC_RGB_AMD", GL_ATC_RGB_AMD},
    {"GL_ATC_RGBA_EXPLICIT_ALPHA_AMD", GL_ATC_RGBA_EXPLICIT_ALPHA_AMD},
    {"GL_POINT_SPRITE_COORD_ORIGIN", GL_POINT_SPRITE_COORD_ORIGIN},
    {"GL_LOWER_LEFT", GL_LOWER_LEFT},
    {"GL_UPPER_LEFT", GL_UPPER_LEFT},
    {"GL_STENCIL_BACK_REF", GL_STENCIL_BACK_REF},
    {"GL_STENCIL_BACK_VALUE_MASK", GL_STENCIL_BACK_VALUE_MASK},
    {"GL_STENCIL_BACK_WRITEMASK", GL_STENCIL_BACK_WRITEMASK},
    {"GL_DRAW_FRAMEBUFFER_BINDING", GL_DRAW_FRAMEBUFFER_BINDING},
    {"GL_RENDERBUFFER_BINDING", GL_RENDERBUFFER_BINDING},
    {"GL_READ_FRAMEBUFFER", GL_READ_FRAMEBUFFER},
    {"GL_DRAW_FRAMEBUFFER", GL_DRAW_FRAMEBUFFER},
    {"GL_READ_FRAMEBUFFER_BINDING", GL_READ_FRAMEBUFFER_BINDING},
    {"GL_RENDERBUFFER_SAMPLES", GL_RENDERBUFFER_SAMPLES},
    {"GL_DEPTH_COMPONENT32F", GL_DEPTH_COMPONENT32F},
    {"GL_DEPTH32F_STENCIL8", GL_DEPTH32F_STENCIL8},
    {"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE},
    {"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER},
    {"GL_FRAMEBUFFER_COMPLETE", GL_FRAMEBUFFER_COMPLETE},
    {"GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT", GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT},
    {"GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT},
    {"GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT", GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT},
    {"GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT", GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT},
    {"GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER", GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER},
    {"GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER", GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER},
    {"GL_FRAMEBUFFER_UNSUPPORTED", GL_FRAMEBUFFER_UNSUPPORTED},
    {"GL_MAX_COLOR_ATTACHMENTS", GL_MAX_COLOR_ATTACHMENTS},
    {"GL_COLOR_ATTACHMENT0", GL_COLOR_ATTACHMENT0},
    {"GL_COLOR_ATTACHMENT1", GL_COLOR_ATTACHMENT1},
    {"GL_COLOR_ATTACHMENT2", GL_COLOR_ATTACHMENT2},
    {"GL_COLOR_ATTACHMENT3", GL_COLOR_ATTACHMENT3},
    {"GL_COLOR_ATTACHMENT4", GL_COLOR_ATTACHMENT4},
    {"GL_COLOR_ATTACHMENT5", GL_COLOR_ATTACHMENT5},
    {"GL_COLOR_ATTACHMENT6", GL_COLOR_ATTACHMENT6},
    {"GL_COLOR_ATTACHMENT7", GL_COLOR_ATTACHMENT7},
    {"GL_COLOR_ATTACHMENT8", GL_COLOR_ATTACHMENT8},
    {"GL_COLOR_ATTACHMENT9", GL_COLOR_ATTACHMENT9},
    {"GL_COLOR_ATTACHMENT10", GL_COLOR_ATTACHMENT10},
    {"GL_COLOR_ATTACHMENT11", GL_COLOR_ATTACHMENT11},
    {"GL_COLOR_ATTACHMENT12", GL_COLOR_ATTACHMENT12},
    {"GL_COLOR_ATTACHMENT13", GL_COLOR_ATTACHMENT13},
    {"GL_COLOR_ATTACHMENT14", GL_COLOR_ATTACHMENT14},
    {"GL_COLOR_ATTACHMENT15", GL_COLOR_ATTACHMENT15},
    {"GL_COLOR_ATTACHMENT16", GL_COLOR_ATTACHMENT16},
    {"GL_COLOR_ATTACHMENT17", GL_COLOR_ATTACHMENT17},
    {"GL_COLOR_ATTACHMENT18", GL_COLOR_ATTACHMENT18},
    {"GL_COLOR_ATTACHMENT19", GL_COLOR_ATTACHMENT19},
    {"GL_COLOR_ATTACHMENT20", GL_COLOR_ATTACHMENT20},
    {"GL_COLOR_ATTACHMENT21", GL_COLOR_ATTACHMENT21},
    {"GL_COLOR_ATTACHMENT22", GL_COLOR_ATTACHMENT22},
    {"GL_COLOR_ATTACHMENT23", GL_COLOR_ATTACHMENT23},
    {"GL_COLOR_ATTACHMENT24", GL_COLOR_ATTACHMENT24},
    {"GL_COLOR_ATTACHMENT25", GL_COLOR_ATTACHMENT25},
    {"GL_COLOR_ATTACHMENT26", GL_COLOR_ATTACHMENT26},
    {"GL_COLOR_ATTACHMENT27", GL_COLOR_ATTACHMENT27},
    {"GL_COLOR_ATTACHMENT28", GL_COLOR_ATTACHMENT28},
    {"GL_COLOR_ATTACHMENT29", GL_COLOR_ATTACHMENT29},
    {"GL_COLOR_ATTACHMENT30", GL_COLOR_ATTACHMENT30},
    {"GL_COLOR_ATTACHMENT31", GL_COLOR_ATTACHMENT31},
    {"GL_DEPTH_ATTACHMENT", GL_DEPTH_ATTACHMENT},
    {"GL_STENCIL_ATTACHMENT", GL_STENCIL_ATTACHMENT},
    {"GL_FRAMEBUFFER", GL_FRAMEBUFFER},
    {"GL_RENDERBUFFER", GL_RENDERBUFFER},
    {"GL_RENDERBUFFER_WIDTH", GL_RENDERBUFFER_WIDTH},
    {"GL_RENDERBUFFER_HEIGHT", GL_RENDERBUFFER_HEIGHT},
    {"GL_RENDERBUFFER_INTERNAL_FORMAT", GL_RENDERBUFFER_INTERNAL_FORMAT},
    {"GL_STENCIL_INDEX1", GL_STENCIL_INDEX1},
    {"GL_STENCIL_INDEX4", GL_STENCIL_INDEX4},
    {"GL_STENCIL_INDEX8", GL_STENCIL_INDEX8},
    {"GL_STENCIL_INDEX16", GL_STENCIL_INDEX16},
    {"GL_RENDERBUFFER_RED_SIZE", GL_RENDERBUFFER_RED_SIZE},
    {"GL_RENDERBUFFER_GREEN_SIZE", GL_RENDERBUFFER_GREEN_SIZE},
    {"GL_RENDERBUFFER_BLUE_SIZE", GL_RENDERBUFFER_BLUE_SIZE},
    {"GL_RENDERBUFFER_ALPHA_SIZE", GL_RENDERBUFFER_ALPHA_SIZE},
    {"GL_RENDERBUFFER_DEPTH_SIZE", GL_RENDERBUFFER_DEPTH_SIZE},
    {"GL_RENDERBUFFER_STENCIL_SIZE", GL_RENDERBUFFER_STENCIL_SIZE},
    {"GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE},
    {"GL_MAX_SAMPLES", GL_MAX_SAMPLES},
    {"GL_TEXTURE_GEN_STR_OES", GL_TEXTURE_GEN_STR_OES},
    {"GL_HALF_FLOAT_OES", GL_HALF_FLOAT_OES},
    {"GL_RGB565", GL_RGB565},
    {"GL_ETC1_RGB8_OES", GL_ETC1_RGB8_OES},
    {"GL_TEXTURE_EXTERNAL_OES", GL_TEXTURE_EXTERNAL_OES},
    {"GL_SAMPLER_EXTERNAL_OES", GL_SAMPLER_EXTERNAL_OES},
    {"GL_TEXTURE_BINDING_EXTERNAL_OES", GL_TEXTURE_BINDING_EXTERNAL_OES},
    {"GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES", GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES},
    {"GL_PRIMITIVE_RESTART_FIXED_INDEX", GL_PRIMITIVE_RESTART_FIXED_INDEX},
    {"GL_ANY_SAMPLES_PASSED_CONSERVATIVE", GL_ANY_SAMPLES_PASSED_CONSERVATIVE},
    {"GL_MAX_ELEMENT_INDEX", GL_MAX_ELEMENT_INDEX},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT},
    {"GL_RGBA32UI", GL_RGBA32UI},
    {"GL_RGB32UI", GL_RGB32UI},
    {"GL_ALPHA32UI_EXT", GL_ALPHA32UI_EXT},
    {"GL_INTENSITY32UI_EXT", GL_INTENSITY32UI_EXT},
    {"GL_LUMINANCE32UI_EXT", GL_LUMINANCE32UI_EXT},
    {"GL_LUMINANCE_ALPHA32UI_EXT", GL_LUMINANCE_ALPHA32UI_EXT},
    {"GL_RGBA16UI", GL_RGBA16UI},
    {"GL_RGB16UI", GL_RGB16UI},
    {"GL_ALPHA16UI_EXT", GL_ALPHA16UI_EXT},
    {"GL_INTENSITY16UI_EXT", GL_INTENSITY16UI_EXT},
    {"GL_LUMINANCE16UI_EXT", GL_LUMINANCE16UI_EXT},
    {"GL_LUMINANCE_ALPHA16UI_EXT", GL_LUMINANCE_ALPHA16UI_EXT},
    {"GL_RGBA8UI", GL_RGBA8UI},
    {"GL_RGB8UI", GL_RGB8UI},
    {"GL_ALPHA8UI_EXT", GL_ALPHA8UI_EXT},
    {"GL_INTENSITY8UI_EXT", GL_INTENSITY8UI_EXT},
    {"GL_LUMINANCE8UI_EXT", GL_LUMINANCE8UI_EXT},
    {"GL_LUMINANCE_ALPHA8UI_EXT", GL_LUMINANCE_ALPHA8UI_EXT},
    {"GL_RGBA32I", GL_RGBA32I},
    {"GL_RGB32I", GL_RGB32I},
    {"GL_ALPHA32I_EXT", GL_ALPHA32I_EXT},
    {"GL_INTENSITY32I_EXT", GL_INTENSITY32I_EXT},
    {"GL_LUMINANCE32I_EXT", GL_LUMINANCE32I_EXT},
    {"GL_LUMINANCE_ALPHA32I_EXT", GL_LUMINANCE_ALPHA32I_EXT},
    {"GL_RGBA16I", GL_RGBA16I},
    {"GL_RGB16I", GL_RGB16I},
    {"GL_ALPHA16I_EXT", GL_ALPHA16I_EXT},
    {"GL_INTENSITY16I_EXT", GL_INTENSITY16I_EXT},
    {"GL_LUMINANCE16I_EXT", GL_LUMINANCE16I_EXT},
    {"GL_LUMINANCE_ALPHA16I_EXT", GL_LUMINANCE_ALPHA16I_EXT},
    {"GL_RGBA8I", GL_RGBA8I},
    {"GL_RGB8I", GL_RGB8I},
    {"GL_ALPHA8I_EXT", GL_ALPHA8I_EXT},
    {"GL_INTENSITY8I_EXT", GL_INTENSITY8I_EXT},
    {"GL_LUMINANCE8I_EXT", GL_LUMINANCE8I_EXT},
    {"GL_LUMINANCE_ALPHA8I_EXT", GL_LUMINANCE_ALPHA8I_EXT},
    {"GL_RED_INTEGER", GL_RED_INTEGER},
    {"GL_GREEN_INTEGER", GL_GREEN_INTEGER},
    {"GL_BLUE_INTEGER", GL_BLUE_INTEGER},
    {"GL_ALPHA_INTEGER", GL_ALPHA_INTEGER},
    {"GL_RGB_INTEGER", GL_RGB_INTEGER},
    {"GL_RGBA_INTEGER", GL_RGBA_INTEGER},
    {"GL_BGR_INTEGER", GL_BGR_INTEGER},
    {"GL_BGRA_INTEGER", GL_BGRA_INTEGER},
    {"GL_LUMINANCE_INTEGER_EXT", GL_LUMINANCE_INTEGER_EXT},
    {"GL_LUMINANCE_ALPHA_INTEGER_EXT", GL_LUMINANCE_ALPHA_INTEGER_EXT},
    {"GL_RGBA_INTEGER_MODE_EXT", GL_RGBA_INTEGER_MODE_EXT},
    {"GL_INT_2_10_10_10_REV", GL_INT_2_10_10_10_REV},
    {"GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV", GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV},
    {"GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV", GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV},
    {"GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV", GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV},
    {"GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV", GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV},
    {"GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV", GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV},
    {"GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV", GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV},
    {"GL_MAX_PROGRAM_GENERIC_RESULTS_NV", GL_MAX_PROGRAM_GENERIC_RESULTS_NV},
    {"GL_FRAMEBUFFER_ATTACHMENT_LAYERED", GL_FRAMEBUFFER_ATTACHMENT_LAYERED},
    {"GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS", GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS},
    {"GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB", GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB},
    {"GL_LAYER_NV", GL_LAYER_NV},
    {"GL_DEPTH_COMPONENT32F_NV", GL_DEPTH_COMPONENT32F_NV},
    {"GL_DEPTH32F_STENCIL8_NV", GL_DEPTH32F_STENCIL8_NV},
    {"GL_FLOAT_32_UNSIGNED_INT_24_8_REV", GL_FLOAT_32_UNSIGNED_INT_24_8_REV},
    {"GL_SHADER_INCLUDE_ARB", GL_SHADER_INCLUDE_ARB},
    {"GL_DEPTH_BUFFER_FLOAT_MODE_NV", GL_DEPTH_BUFFER_FLOAT_MODE_NV},
    {"GL_FRAMEBUFFER_SRGB", GL_FRAMEBUFFER_SRGB},
    {"GL_FRAMEBUFFER_SRGB_CAPABLE_EXT", GL_FRAMEBUFFER_SRGB_CAPABLE_EXT},
    {"GL_COMPRESSED_RED_RGTC1", GL_COMPRESSED_RED_RGTC1},
    {"GL_COMPRESSED_SIGNED_RED_RGTC1", GL_COMPRESSED_SIGNED_RED_RGTC1},
    {"GL_COMPRESSED_RG_RGTC2", GL_COMPRESSED_RG_RGTC2},
    {"GL_COMPRESSED_SIGNED_RG_RGTC2", GL_COMPRESSED_SIGNED_RG_RGTC2},
    {"GL_SAMPLER_1D_ARRAY", GL_SAMPLER_1D_ARRAY},
    {"GL_SAMPLER_2D_ARRAY", GL_SAMPLER_2D_ARRAY},
    {"GL_SAMPLER_BUFFER", GL_SAMPLER_BUFFER},
    {"GL_SAMPLER_1D_ARRAY_SHADOW", GL_SAMPLER_1D_ARRAY_SHADOW},
    {"GL_SAMPLER_2D_ARRAY_SHADOW", GL_SAMPLER_2D_ARRAY_SHADOW},
    {"GL_SAMPLER_CUBE_SHADOW", GL_SAMPLER_CUBE_SHADOW},
    {"GL_UNSIGNED_INT_VEC2", GL_UNSIGNED_INT_VEC2},
    {"GL_UNSIGNED_INT_VEC3", GL_UNSIGNED_INT_VEC3},
    {"GL_UNSIGNED_INT_VEC4", GL_UNSIGNED_INT_VEC4},
    {"GL_INT_SAMPLER_1D", GL_INT_SAMPLER_1D},
    {"GL_INT_SAMPLER_2D", GL_INT_SAMPLER_2D},
    {"GL_INT_SAMPLER_3D", GL_INT_SAMPLER_3D},
    {"GL_INT_SAMPLER_CUBE", GL_INT_SAMPLER_CUBE},
    {"GL_INT_SAMPLER_2D_RECT", GL_INT_SAMPLER_2D_RECT},
    {"GL_INT_SAMPLER_1D_ARRAY", GL_INT_SAMPLER_1D_ARRAY},
    {"GL_INT_SAMPLER_2D_ARRAY", GL_INT_SAMPLER_2D_ARRAY},
    {"GL_INT_SAMPLER_BUFFER", GL_INT_SAMPLER_BUFFER},
    {"GL_UNSIGNED_INT_SAMPLER_1D", GL_UNSIGNED_INT_SAMPLER_1D},
    {"GL_UNSIGNED_INT_SAMPLER_2D", GL_UNSIGNED_INT_SAMPLER_2D},
    {"GL_UNSIGNED_INT_SAMPLER_3D", GL_UNSIGNED_INT_SAMPLER_3D},
    {"GL_UNSIGNED_INT_SAMPLER_CUBE", GL_UNSIGNED_INT_SAMPLER_CUBE},
    {"GL_UNSIGNED_INT_SAMPLER_2D_RECT", GL_UNSIGNED_INT_SAMPLER_2D_RECT},
    {"GL_UNSIGNED_INT_SAMPLER_1D_ARRAY", GL_UNSIGNED_INT_SAMPLER_1D_ARRAY},
    {"GL_UNSIGNED_INT_SAMPLER_2D_ARRAY", GL_UNSIGNED_INT_SAMPLER_2D_ARRAY},
    {"GL_UNSIGNED_INT_SAMPLER_BUFFER", GL_UNSIGNED_INT_SAMPLER_BUFFER},
    {"GL_GEOMETRY_SHADER", GL_GEOMETRY_SHADER},
    {"GL_GEOMETRY_VERTICES_OUT_ARB", GL_GEOMETRY_VERTICES_OUT_ARB},
    {"GL_GEOMETRY_INPUT_TYPE_ARB", GL_GEOMETRY_INPUT_TYPE_ARB},
    {"GL_GEOMETRY_OUTPUT_TYPE_ARB", GL_GEOMETRY_OUTPUT_TYPE_ARB},
    {"GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB", GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB},
    {"GL_MAX_VERTEX_VARYING_COMPONENTS_ARB", GL_MAX_VERTEX_VARYING_COMPONENTS_ARB},
    {"GL_MAX_GEOMETRY_UNIFORM_COMPONENTS", GL_MAX_GEOMETRY_UNIFORM_COMPONENTS},
    {"GL_MAX_GEOMETRY_OUTPUT_VERTICES", GL_MAX_GEOMETRY_OUTPUT_VERTICES},
    {"GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS", GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS},
    {"GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT", GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT},
    {"GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT", GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT},
    {"GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT", GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT},
    {"GL_ACTIVE_SUBROUTINES", GL_ACTIVE_SUBROUTINES},
    {"GL_ACTIVE_SUBROUTINE_UNIFORMS", GL_ACTIVE_SUBROUTINE_UNIFORMS},
    {"GL_MAX_SUBROUTINES", GL_MAX_SUBROUTINES},
    {"GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS", GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS},
    {"GL_NAMED_STRING_LENGTH_ARB", GL_NAMED_STRING_LENGTH_ARB},
    {"GL_NAMED_STRING_TYPE_ARB", GL_NAMED_STRING_TYPE_ARB},
    {"GL_MAX_BINDABLE_UNIFORM_SIZE_EXT", GL_MAX_BINDABLE_UNIFORM_SIZE_EXT},
    {"GL_UNIFORM_BUFFER_EXT", GL_UNIFORM_BUFFER_EXT},
    {"GL_UNIFORM_BUFFER_BINDING_EXT", GL_UNIFORM_BUFFER_BINDING_EXT},
    {"GL_LOW_FLOAT", GL_LOW_FLOAT},
    {"GL_MEDIUM_FLOAT", GL_MEDIUM_FLOAT},
    {"GL_HIGH_FLOAT", GL_HIGH_FLOAT},
    {"GL_LOW_INT", GL_LOW_INT},
    {"GL_MEDIUM_INT", GL_MEDIUM_INT},
    {"GL_HIGH_INT", GL_HIGH_INT},
    {"GL_UNSIGNED_INT_10_10_10_2_OES", GL_UNSIGNED_INT_10_10_10_2_OES},
    {"GL_INT_10_10_10_2_OES", GL_INT_10_10_10_2_OES},
    {"GL_SHADER_BINARY_FORMATS", GL_SHADER_BINARY_FORMATS},
    {"GL_NUM_SHADER_BINARY_FORMATS", GL_NUM_SHADER_BINARY_FORMATS},
    {"GL_SHADER_COMPILER", GL_SHADER_COMPILER},
    {"GL_MAX_VERTEX_UNIFORM_VECTORS", GL_MAX_VERTEX_UNIFORM_VECTORS},
    {"GL_MAX_VARYING_VECTORS", GL_MAX_VARYING_VECTORS},
    {"GL_MAX_FRAGMENT_UNIFORM_VECTORS", GL_MAX_FRAGMENT_UNIFORM_VECTORS},
    {"GL_RENDERBUFFER_COLOR_SAMPLES_NV", GL_RENDERBUFFER_COLOR_SAMPLES_NV},
    {"GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV", GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV},
    {"GL_MULTISAMPLE_COVERAGE_MODES_NV", GL_MULTISAMPLE_COVERAGE_MODES_NV},
    {"GL_QUERY_WAIT", GL_QUERY_WAIT},
    {"GL_QUERY_NO_WAIT", GL_QUERY_NO_WAIT},
    {"GL_QUERY_BY_REGION_WAIT", GL_QUERY_BY_REGION_WAIT},
    {"GL_QUERY_BY_REGION_NO_WAIT", GL_QUERY_BY_REGION_NO_WAIT},
    {"GL_QUERY_WAIT_INVERTED", GL_QUERY_WAIT_INVERTED},
    {"GL_QUERY_NO_WAIT_INVERTED", GL_QUERY_NO_WAIT_INVERTED},
    {"GL_QUERY_BY_REGION_WAIT_INVERTED", GL_QUERY_BY_REGION_WAIT_INVERTED},
    {"GL_QUERY_BY_REGION_NO_WAIT_INVERTED", GL_QUERY_BY_REGION_NO_WAIT_INVERTED},
    {"GL_POLYGON_OFFSET_CLAMP_EXT", GL_POLYGON_OFFSET_CLAMP_EXT},
    {"GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS", GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS},
    {"GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS", GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS},
    {"GL_COLOR_SAMPLES_NV", GL_COLOR_SAMPLES_NV},
    {"GL_TRANSFORM_FEEDBACK", GL_TRANSFORM_FEEDBACK},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED", GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE", GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE},
    {"GL_TRANSFORM_FEEDBACK_BINDING", GL_TRANSFORM_FEEDBACK_BINDING},
    {"GL_FRAME_NV", GL_FRAME_NV},
    {"GL_FIELDS_NV", GL_FIELDS_NV},
    {"GL_TIMESTAMP", GL_TIMESTAMP},
    {"GL_NUM_FILL_STREAMS_NV", GL_NUM_FILL_STREAMS_NV},
    {"GL_PRESENT_TIME_NV", GL_PRESENT_TIME_NV},
    {"GL_PRESENT_DURATION_NV", GL_PRESENT_DURATION_NV},
    {"GL_DEPTH_COMPONENT16_NONLINEAR_NV", GL_DEPTH_COMPONENT16_NONLINEAR_NV},
    {"GL_PROGRAM_MATRIX_EXT", GL_PROGRAM_MATRIX_EXT},
    {"GL_TRANSPOSE_PROGRAM_MATRIX_EXT", GL_TRANSPOSE_PROGRAM_MATRIX_EXT},
    {"GL_PROGRAM_MATRIX_STACK_DEPTH_EXT", GL_PROGRAM_MATRIX_STACK_DEPTH_EXT},
    {"GL_TEXTURE_SWIZZLE_R", GL_TEXTURE_SWIZZLE_R},
    {"GL_TEXTURE_SWIZZLE_G", GL_TEXTURE_SWIZZLE_G},
    {"GL_TEXTURE_SWIZZLE_B", GL_TEXTURE_SWIZZLE_B},
    {"GL_TEXTURE_SWIZZLE_A", GL_TEXTURE_SWIZZLE_A},
    {"GL_TEXTURE_SWIZZLE_RGBA", GL_TEXTURE_SWIZZLE_RGBA},
    {"GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS", GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS},
    {"GL_ACTIVE_SUBROUTINE_MAX_LENGTH", GL_ACTIVE_SUBROUTINE_MAX_LENGTH},
    {"GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH", GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH},
    {"GL_NUM_COMPATIBLE_SUBROUTINES", GL_NUM_COMPATIBLE_SUBROUTINES},
    {"GL_COMPATIBLE_SUBROUTINES", GL_COMPATIBLE_SUBROUTINES},
    {"GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION", GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION},
    {"GL_FIRST_VERTEX_CONVENTION", GL_FIRST_VERTEX_CONVENTION},
    {"GL_LAST_VERTEX_CONVENTION", GL_LAST_VERTEX_CONVENTION},
    {"GL_PROVOKING_VERTEX", GL_PROVOKING_VERTEX},
    {"GL_SAMPLE_POSITION", GL_SAMPLE_POSITION},
    {"GL_SAMPLE_MASK", GL_SAMPLE_MASK},
    {"GL_SAMPLE_MASK_VALUE", GL_SAMPLE_MASK_VALUE},
    {"GL_TEXTURE_BINDING_RENDERBUFFER_NV", GL_TEXTURE_BINDING_RENDERBUFFER_NV},
    {"GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV", GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV},
    {"GL_TEXTURE_RENDERBUFFER_NV", GL_TEXTURE_RENDERBUFFER_NV},
    {"GL_SAMPLER_RENDERBUFFER_NV", GL_SAMPLER_RENDERBUFFER_NV},
    {"GL_INT_SAMPLER_RENDERBUFFER_NV", GL_INT_SAMPLER_RENDERBUFFER_NV},
    {"GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV", GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV},
    {"GL_MAX_SAMPLE_MASK_WORDS", GL_MAX_SAMPLE_MASK_WORDS},
    {"GL_MAX_GEOMETRY_SHADER_INVOCATIONS", GL_MAX_GEOMETRY_SHADER_INVOCATIONS},
    {"GL_MIN_FRAGMENT_INTERPOLATION_OFFSET", GL_MIN_FRAGMENT_INTERPOLATION_OFFSET},
    {"GL_MAX_FRAGMENT_INTERPOLATION_OFFSET", GL_MAX_FRAGMENT_INTERPOLATION_OFFSET},
    {"GL_FRAGMENT_INTERPOLATION_OFFSET_BITS", GL_FRAGMENT_INTERPOLATION_OFFSET_BITS},
    {"GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET", GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET},
    {"GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET", GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET},
    {"GL_MAX_TRANSFORM_FEEDBACK_BUFFERS", GL_MAX_TRANSFORM_FEEDBACK_BUFFERS},
    {"GL_MAX_VERTEX_STREAMS", GL_MAX_VERTEX_STREAMS},
    {"GL_PATCH_VERTICES", GL_PATCH_VERTICES},
    {"GL_PATCH_DEFAULT_INNER_LEVEL", GL_PATCH_DEFAULT_INNER_LEVEL},
    {"GL_PATCH_DEFAULT_OUTER_LEVEL", GL_PATCH_DEFAULT_OUTER_LEVEL},
    {"GL_TESS_CONTROL_OUTPUT_VERTICES", GL_TESS_CONTROL_OUTPUT_VERTICES},
    {"GL_TESS_GEN_MODE", GL_TESS_GEN_MODE},
    {"GL_TESS_GEN_SPACING", GL_TESS_GEN_SPACING},
    {"GL_TESS_GEN_VERTEX_ORDER", GL_TESS_GEN_VERTEX_ORDER},
    {"GL_TESS_GEN_POINT_MODE", GL_TESS_GEN_POINT_MODE},
    {"GL_ISOLINES", GL_ISOLINES},
    {"GL_FRACTIONAL_ODD", GL_FRACTIONAL_ODD},
    {"GL_FRACTIONAL_EVEN", GL_FRACTIONAL_EVEN},
    {"GL_MAX_PATCH_VERTICES", GL_MAX_PATCH_VERTICES},
    {"GL_MAX_TESS_GEN_LEVEL", GL_MAX_TESS_GEN_LEVEL},
    {"GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS", GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS},
    {"GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS", GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS},
    {"GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS},
    {"GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS},
    {"GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS},
    {"GL_MAX_TESS_PATCH_COMPONENTS", GL_MAX_TESS_PATCH_COMPONENTS},
    {"GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS},
    {"GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS},
    {"GL_TESS_EVALUATION_SHADER", GL_TESS_EVALUATION_SHADER},
    {"GL_TESS_CONTROL_SHADER", GL_TESS_CONTROL_SHADER},
    {"GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS", GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS},
    {"GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS", GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS},
    {"GL_COMPRESSED_RGBA_BPTC_UNORM", GL_COMPRESSED_RGBA_BPTC_UNORM},
    {"GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM", GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM},
    {"GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT", GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT},
    {"GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT", GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT},
    {"GL_INCLUSIVE_EXT", GL_INCLUSIVE_EXT},
    {"GL_EXCLUSIVE_EXT", GL_EXCLUSIVE_EXT},
    {"GL_WINDOW_RECTANGLE_EXT", GL_WINDOW_RECTANGLE_EXT},
    {"GL_WINDOW_RECTANGLE_MODE_EXT", GL_WINDOW_RECTANGLE_MODE_EXT},
    {"GL_MAX_WINDOW_RECTANGLES_EXT", GL_MAX_WINDOW_RECTANGLES_EXT},
    {"GL_NUM_WINDOW_RECTANGLES_EXT", GL_NUM_WINDOW_RECTANGLES_EXT},
    {"GL_BUFFER_GPU_ADDRESS_NV", GL_BUFFER_GPU_ADDRESS_NV},
    {"GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV", GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV},
    {"GL_ELEMENT_ARRAY_UNIFIED_NV", GL_ELEMENT_ARRAY_UNIFIED_NV},
    {"GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV", GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV},
    {"GL_VERTEX_ARRAY_ADDRESS_NV", GL_VERTEX_ARRAY_ADDRESS_NV},
    {"GL_NORMAL_ARRAY_ADDRESS_NV", GL_NORMAL_ARRAY_ADDRESS_NV},
    {"GL_COLOR_ARRAY_ADDRESS_NV", GL_COLOR_ARRAY_ADDRESS_NV},
    {"GL_INDEX_ARRAY_ADDRESS_NV", GL_INDEX_ARRAY_ADDRESS_NV},
    {"GL_TEXTURE_COORD_ARRAY_ADDRESS_NV", GL_TEXTURE_COORD_ARRAY_ADDRESS_NV},
    {"GL_EDGE_FLAG_ARRAY_ADDRESS_NV", GL_EDGE_FLAG_ARRAY_ADDRESS_NV},
    {"GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV", GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV},
    {"GL_FOG_COORD_ARRAY_ADDRESS_NV", GL_FOG_COORD_ARRAY_ADDRESS_NV},
    {"GL_ELEMENT_ARRAY_ADDRESS_NV", GL_ELEMENT_ARRAY_ADDRESS_NV},
    {"GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV", GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV},
    {"GL_VERTEX_ARRAY_LENGTH_NV", GL_VERTEX_ARRAY_LENGTH_NV},
    {"GL_NORMAL_ARRAY_LENGTH_NV", GL_NORMAL_ARRAY_LENGTH_NV},
    {"GL_COLOR_ARRAY_LENGTH_NV", GL_COLOR_ARRAY_LENGTH_NV},
    {"GL_INDEX_ARRAY_LENGTH_NV", GL_INDEX_ARRAY_LENGTH_NV},
    {"GL_TEXTURE_COORD_ARRAY_LENGTH_NV", GL_TEXTURE_COORD_ARRAY_LENGTH_NV},
    {"GL_EDGE_FLAG_ARRAY_LENGTH_NV", GL_EDGE_FLAG_ARRAY_LENGTH_NV},
    {"GL_SECONDARY_COLOR_ARRAY_LENGTH_NV", GL_SECONDARY_COLOR_ARRAY_LENGTH_NV},
    {"GL_FOG_COORD_ARRAY_LENGTH_NV", GL_FOG_COORD_ARRAY_LENGTH_NV},
    {"GL_ELEMENT_ARRAY_LENGTH_NV", GL_ELEMENT_ARRAY_LENGTH_NV},
    {"GL_GPU_ADDRESS_NV", GL_GPU_ADDRESS_NV},
    {"GL_MAX_SHADER_BUFFER_ADDRESS_NV", GL_MAX_SHADER_BUFFER_ADDRESS_NV},
    {"GL_COPY_READ_BUFFER", GL_COPY_READ_BUFFER},
    {"GL_COPY_WRITE_BUFFER", GL_COPY_WRITE_BUFFER},
    {"GL_MAX_IMAGE_UNITS", GL_MAX_IMAGE_UNITS},
    {"GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS", GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS},
    {"GL_IMAGE_BINDING_NAME", GL_IMAGE_BINDING_NAME},
    {"GL_IMAGE_BINDING_LEVEL", GL_IMAGE_BINDING_LEVEL},
    {"GL_IMAGE_BINDING_LAYERED", GL_IMAGE_BINDING_LAYERED},
    {"GL_IMAGE_BINDING_LAYER", GL_IMAGE_BINDING_LAYER},
    {"GL_IMAGE_BINDING_ACCESS", GL_IMAGE_BINDING_ACCESS},
    {"GL_DRAW_INDIRECT_BUFFER", GL_DRAW_INDIRECT_BUFFER},
    {"GL_DRAW_INDIRECT_UNIFIED_NV", GL_DRAW_INDIRECT_UNIFIED_NV},
    {"GL_DRAW_INDIRECT_ADDRESS_NV", GL_DRAW_INDIRECT_ADDRESS_NV},
    {"GL_DRAW_INDIRECT_LENGTH_NV", GL_DRAW_INDIRECT_LENGTH_NV},
    {"GL_DRAW_INDIRECT_BUFFER_BINDING", GL_DRAW_INDIRECT_BUFFER_BINDING},
    {"GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV", GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV},
    {"GL_MAX_PROGRAM_SUBROUTINE_NUM_NV", GL_MAX_PROGRAM_SUBROUTINE_NUM_NV},
    {"GL_DOUBLE_MAT2", GL_DOUBLE_MAT2},
    {"GL_DOUBLE_MAT3", GL_DOUBLE_MAT3},
    {"GL_DOUBLE_MAT4", GL_DOUBLE_MAT4},
    {"GL_DOUBLE_MAT2x3", GL_DOUBLE_MAT2x3},
    {"GL_DOUBLE_MAT2x4", GL_DOUBLE_MAT2x4},
    {"GL_DOUBLE_MAT3x2", GL_DOUBLE_MAT3x2},
    {"GL_DOUBLE_MAT3x4", GL_DOUBLE_MAT3x4},
    {"GL_DOUBLE_MAT4x2", GL_DOUBLE_MAT4x2},
    {"GL_DOUBLE_MAT4x3", GL_DOUBLE_MAT4x3},
    {"GL_VERTEX_BINDING_BUFFER", GL_VERTEX_BINDING_BUFFER},
    {"GL_MALI_SHADER_BINARY_ARM", GL_MALI_SHADER_BINARY_ARM},
    {"GL_MALI_PROGRAM_BINARY_ARM", GL_MALI_PROGRAM_BINARY_ARM},
    {"GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT", GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT},
    {"GL_SHADER_PIXEL_LOCAL_STORAGE_EXT", GL_SHADER_PIXEL_LOCAL_STORAGE_EXT},
    {"GL_FETCH_PER_SAMPLE_ARM", GL_FETCH_PER_SAMPLE_ARM},
    {"GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM", GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM},
    {"GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT", GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT},
    {"GL_TEXTURE_ASTC_DECODE_PRECISION_EXT", GL_TEXTURE_ASTC_DECODE_PRECISION_EXT},
    {"GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT", GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT},
    {"GL_RED_SNORM", GL_RED_SNORM},
    {"GL_RG_SNORM", GL_RG_SNORM},
    {"GL_RGB_SNORM", GL_RGB_SNORM},
    {"GL_RGBA_SNORM", GL_RGBA_SNORM},
    {"GL_R8_SNORM", GL_R8_SNORM},
    {"GL_RG8_SNORM", GL_RG8_SNORM},
    {"GL_RGB8_SNORM", GL_RGB8_SNORM},
    {"GL_RGBA8_SNORM", GL_RGBA8_SNORM},
    {"GL_R16_SNORM", GL_R16_SNORM},
    {"GL_RG16_SNORM", GL_RG16_SNORM},
    {"GL_RGB16_SNORM", GL_RGB16_SNORM},
    {"GL_RGBA16_SNORM", GL_RGBA16_SNORM},
    {"GL_SIGNED_NORMALIZED", GL_SIGNED_NORMALIZED},
    {"GL_PRIMITIVE_RESTART", GL_PRIMITIVE_RESTART},
    {"GL_PRIMITIVE_RESTART_INDEX", GL_PRIMITIVE_RESTART_INDEX},
    {"GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB", GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB},
    {"GL_PERFMON_GLOBAL_MODE_QCOM", GL_PERFMON_GLOBAL_MODE_QCOM},
    {"GL_BINNING_CONTROL_HINT_QCOM", GL_BINNING_CONTROL_HINT_QCOM},
    {"GL_CPU_OPTIMIZED_QCOM", GL_CPU_OPTIMIZED_QCOM},
    {"GL_GPU_OPTIMIZED_QCOM", GL_GPU_OPTIMIZED_QCOM},
    {"GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM", GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM},
    {"GL_GPU_DISJOINT_EXT", GL_GPU_DISJOINT_EXT},
    {"GL_SR8_EXT", GL_SR8_EXT},
    {"GL_SRG8_EXT", GL_SRG8_EXT},
    {"GL_SHADER_BINARY_VIV", GL_SHADER_BINARY_VIV},
    {"GL_INT8_NV", GL_INT8_NV},
    {"GL_INT8_VEC2_NV", GL_INT8_VEC2_NV},
    {"GL_INT8_VEC3_NV", GL_INT8_VEC3_NV},
    {"GL_INT8_VEC4_NV", GL_INT8_VEC4_NV},
    {"GL_INT16_NV", GL_INT16_NV},
    {"GL_INT16_VEC2_NV", GL_INT16_VEC2_NV},
    {"GL_INT16_VEC3_NV", GL_INT16_VEC3_NV},
    {"GL_INT16_VEC4_NV", GL_INT16_VEC4_NV},
    {"GL_INT64_VEC2_ARB", GL_INT64_VEC2_ARB},
    {"GL_INT64_VEC3_ARB", GL_INT64_VEC3_ARB},
    {"GL_INT64_VEC4_ARB", GL_INT64_VEC4_ARB},
    {"GL_UNSIGNED_INT8_NV", GL_UNSIGNED_INT8_NV},
    {"GL_UNSIGNED_INT8_VEC2_NV", GL_UNSIGNED_INT8_VEC2_NV},
    {"GL_UNSIGNED_INT8_VEC3_NV", GL_UNSIGNED_INT8_VEC3_NV},
    {"GL_UNSIGNED_INT8_VEC4_NV", GL_UNSIGNED_INT8_VEC4_NV},
    {"GL_UNSIGNED_INT16_NV", GL_UNSIGNED_INT16_NV},
    {"GL_UNSIGNED_INT16_VEC2_NV", GL_UNSIGNED_INT16_VEC2_NV},
    {"GL_UNSIGNED_INT16_VEC3_NV", GL_UNSIGNED_INT16_VEC3_NV},
    {"GL_UNSIGNED_INT16_VEC4_NV", GL_UNSIGNED_INT16_VEC4_NV},
    {"GL_UNSIGNED_INT64_VEC2_ARB", GL_UNSIGNED_INT64_VEC2_ARB},
    {"GL_UNSIGNED_INT64_VEC3_ARB", GL_UNSIGNED_INT64_VEC3_ARB},
    {"GL_UNSIGNED_INT64_VEC4_ARB", GL_UNSIGNED_INT64_VEC4_ARB},
    {"GL_FLOAT16_NV", GL_FLOAT16_NV},
    {"GL_FLOAT16_VEC2_NV", GL_FLOAT16_VEC2_NV},
    {"GL_FLOAT16_VEC3_NV", GL_FLOAT16_VEC3_NV},
    {"GL_FLOAT16_VEC4_NV", GL_FLOAT16_VEC4_NV},
    {"GL_DOUBLE_VEC2", GL_DOUBLE_VEC2},
    {"GL_DOUBLE_VEC3", GL_DOUBLE_VEC3},
    {"GL_DOUBLE_VEC4", GL_DOUBLE_VEC4},
    {"GL_SAMPLER_BUFFER_AMD", GL_SAMPLER_BUFFER_AMD},
    {"GL_INT_SAMPLER_BUFFER_AMD", GL_INT_SAMPLER_BUFFER_AMD},
    {"GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD", GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD},
    {"GL_TESSELLATION_MODE_AMD", GL_TESSELLATION_MODE_AMD},
    {"GL_TESSELLATION_FACTOR_AMD", GL_TESSELLATION_FACTOR_AMD},
    {"GL_DISCRETE_AMD", GL_DISCRETE_AMD},
    {"GL_CONTINUOUS_AMD", GL_CONTINUOUS_AMD},
    {"GL_TEXTURE_CUBE_MAP_ARRAY", GL_TEXTURE_CUBE_MAP_ARRAY},
    {"GL_TEXTURE_BINDING_CUBE_MAP_ARRAY", GL_TEXTURE_BINDING_CUBE_MAP_ARRAY},
    {"GL_PROXY_TEXTURE_CUBE_MAP_ARRAY", GL_PROXY_TEXTURE_CUBE_MAP_ARRAY},
    {"GL_SAMPLER_CUBE_MAP_ARRAY", GL_SAMPLER_CUBE_MAP_ARRAY},
    {"GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW", GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW},
    {"GL_INT_SAMPLER_CUBE_MAP_ARRAY", GL_INT_SAMPLER_CUBE_MAP_ARRAY},
    {"GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY", GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY},
    {"GL_ALPHA_SNORM", GL_ALPHA_SNORM},
    {"GL_LUMINANCE_SNORM", GL_LUMINANCE_SNORM},
    {"GL_LUMINANCE_ALPHA_SNORM", GL_LUMINANCE_ALPHA_SNORM},
    {"GL_INTENSITY_SNORM", GL_INTENSITY_SNORM},
    {"GL_ALPHA8_SNORM", GL_ALPHA8_SNORM},
    {"GL_LUMINANCE8_SNORM", GL_LUMINANCE8_SNORM},
    {"GL_LUMINANCE8_ALPHA8_SNORM", GL_LUMINANCE8_ALPHA8_SNORM},
    {"GL_INTENSITY8_SNORM", GL_INTENSITY8_SNORM},
    {"GL_ALPHA16_SNORM", GL_ALPHA16_SNORM},
    {"GL_LUMINANCE16_SNORM", GL_LUMINANCE16_SNORM},
    {"GL_LUMINANCE16_ALPHA16_SNORM", GL_LUMINANCE16_ALPHA16_SNORM},
    {"GL_INTENSITY16_SNORM", GL_INTENSITY16_SNORM},
    {"GL_FACTOR_MIN_AMD", GL_FACTOR_MIN_AMD},
    {"GL_FACTOR_MAX_AMD", GL_FACTOR_MAX_AMD},
    {"GL_DEPTH_CLAMP_NEAR_AMD", GL_DEPTH_CLAMP_NEAR_AMD},
    {"GL_DEPTH_CLAMP_FAR_AMD", GL_DEPTH_CLAMP_FAR_AMD},
    {"GL_VIDEO_BUFFER_NV", GL_VIDEO_BUFFER_NV},
    {"GL_VIDEO_BUFFER_BINDING_NV", GL_VIDEO_BUFFER_BINDING_NV},
    {"GL_FIELD_UPPER_NV", GL_FIELD_UPPER_NV},
    {"GL_FIELD_LOWER_NV", GL_FIELD_LOWER_NV},
    {"GL_NUM_VIDEO_CAPTURE_STREAMS_NV", GL_NUM_VIDEO_CAPTURE_STREAMS_NV},
    {"GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV", GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV},
    {"GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV", GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV},
    {"GL_LAST_VIDEO_CAPTURE_STATUS_NV", GL_LAST_VIDEO_CAPTURE_STATUS_NV},
    {"GL_VIDEO_BUFFER_PITCH_NV", GL_VIDEO_BUFFER_PITCH_NV},
    {"GL_VIDEO_COLOR_CONVERSION_MATRIX_NV", GL_VIDEO_COLOR_CONVERSION_MATRIX_NV},
    {"GL_VIDEO_COLOR_CONVERSION_MAX_NV", GL_VIDEO_COLOR_CONVERSION_MAX_NV},
    {"GL_VIDEO_COLOR_CONVERSION_MIN_NV", GL_VIDEO_COLOR_CONVERSION_MIN_NV},
    {"GL_VIDEO_COLOR_CONVERSION_OFFSET_NV", GL_VIDEO_COLOR_CONVERSION_OFFSET_NV},
    {"GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV", GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV},
    {"GL_PARTIAL_SUCCESS_NV", GL_PARTIAL_SUCCESS_NV},
    {"GL_SUCCESS_NV", GL_SUCCESS_NV},
    {"GL_FAILURE_NV", GL_FAILURE_NV},
    {"GL_YCBYCR8_422_NV", GL_YCBYCR8_422_NV},
    {"GL_YCBAYCR8A_4224_NV", GL_YCBAYCR8A_4224_NV},
    {"GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV", GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV},
    {"GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV", GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV},
    {"GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV", GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV},
    {"GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV", GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV},
    {"GL_Z4Y12Z4CB12Z4CR12_444_NV", GL_Z4Y12Z4CB12Z4CR12_444_NV},
    {"GL_VIDEO_CAPTURE_FRAME_WIDTH_NV", GL_VIDEO_CAPTURE_FRAME_WIDTH_NV},
    {"GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV", GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV},
    {"GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV", GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV},
    {"GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV", GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV},
    {"GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV", GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV},
    {"GL_TEXTURE_COVERAGE_SAMPLES_NV", GL_TEXTURE_COVERAGE_SAMPLES_NV},
    {"GL_TEXTURE_COLOR_SAMPLES_NV", GL_TEXTURE_COLOR_SAMPLES_NV},
    {"GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX", GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX},
    {"GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX", GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX},
    {"GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX", GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX},
    {"GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX", GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX},
    {"GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX", GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX},
    {"GL_IMAGE_1D", GL_IMAGE_1D},
    {"GL_IMAGE_2D", GL_IMAGE_2D},
    {"GL_IMAGE_3D", GL_IMAGE_3D},
    {"GL_IMAGE_2D_RECT", GL_IMAGE_2D_RECT},
    {"GL_IMAGE_CUBE", GL_IMAGE_CUBE},
    {"GL_IMAGE_BUFFER", GL_IMAGE_BUFFER},
    {"GL_IMAGE_1D_ARRAY", GL_IMAGE_1D_ARRAY},
    {"GL_IMAGE_2D_ARRAY", GL_IMAGE_2D_ARRAY},
    {"GL_IMAGE_CUBE_MAP_ARRAY", GL_IMAGE_CUBE_MAP_ARRAY},
    {"GL_IMAGE_2D_MULTISAMPLE", GL_IMAGE_2D_MULTISAMPLE},
    {"GL_IMAGE_2D_MULTISAMPLE_ARRAY", GL_IMAGE_2D_MULTISAMPLE_ARRAY},
    {"GL_INT_IMAGE_1D", GL_INT_IMAGE_1D},
    {"GL_INT_IMAGE_2D", GL_INT_IMAGE_2D},
    {"GL_INT_IMAGE_3D", GL_INT_IMAGE_3D},
    {"GL_INT_IMAGE_2D_RECT", GL_INT_IMAGE_2D_RECT},
    {"GL_INT_IMAGE_CUBE", GL_INT_IMAGE_CUBE},
    {"GL_INT_IMAGE_BUFFER", GL_INT_IMAGE_BUFFER},
    {"GL_INT_IMAGE_1D_ARRAY", GL_INT_IMAGE_1D_ARRAY},
    {"GL_INT_IMAGE_2D_ARRAY", GL_INT_IMAGE_2D_ARRAY},
    {"GL_INT_IMAGE_CUBE_MAP_ARRAY", GL_INT_IMAGE_CUBE_MAP_ARRAY},
    {"GL_INT_IMAGE_2D_MULTISAMPLE", GL_INT_IMAGE_2D_MULTISAMPLE},
    {"GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY", GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY},
    {"GL_UNSIGNED_INT_IMAGE_1D", GL_UNSIGNED_INT_IMAGE_1D},
    {"GL_UNSIGNED_INT_IMAGE_2D", GL_UNSIGNED_INT_IMAGE_2D},
    {"GL_UNSIGNED_INT_IMAGE_3D", GL_UNSIGNED_INT_IMAGE_3D},
    {"GL_UNSIGNED_INT_IMAGE_2D_RECT", GL_UNSIGNED_INT_IMAGE_2D_RECT},
    {"GL_UNSIGNED_INT_IMAGE_CUBE", GL_UNSIGNED_INT_IMAGE_CUBE},
    {"GL_UNSIGNED_INT_IMAGE_BUFFER", GL_UNSIGNED_INT_IMAGE_BUFFER},
    {"GL_UNSIGNED_INT_IMAGE_1D_ARRAY", GL_UNSIGNED_INT_IMAGE_1D_ARRAY},
    {"GL_UNSIGNED_INT_IMAGE_2D_ARRAY", GL_UNSIGNED_INT_IMAGE_2D_ARRAY},
    {"GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY", GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY},
    {"GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE", GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE},
    {"GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY", GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY},
    {"GL_MAX_IMAGE_SAMPLES", GL_MAX_IMAGE_SAMPLES},
    {"GL_IMAGE_BINDING_FORMAT", GL_IMAGE_BINDING_FORMAT},
    {"GL_RGB10_A2UI", GL_RGB10_A2UI},
    {"GL_PATH_FORMAT_SVG_NV", GL_PATH_FORMAT_SVG_NV},
    {"GL_PATH_FORMAT_PS_NV", GL_PATH_FORMAT_PS_NV},
    {"GL_STANDARD_FONT_NAME_NV", GL_STANDARD_FONT_NAME_NV},
    {"GL_SYSTEM_FONT_NAME_NV", GL_SYSTEM_FONT_NAME_NV},
    {"GL_FILE_NAME_NV", GL_FILE_NAME_NV},
    {"GL_PATH_STROKE_WIDTH_NV", GL_PATH_STROKE_WIDTH_NV},
    {"GL_PATH_END_CAPS_NV", GL_PATH_END_CAPS_NV},
    {"GL_PATH_INITIAL_END_CAP_NV", GL_PATH_INITIAL_END_CAP_NV},
    {"GL_PATH_TERMINAL_END_CAP_NV", GL_PATH_TERMINAL_END_CAP_NV},
    {"GL_PATH_JOIN_STYLE_NV", GL_PATH_JOIN_STYLE_NV},
    {"GL_PATH_MITER_LIMIT_NV", GL_PATH_MITER_LIMIT_NV},
    {"GL_PATH_DASH_CAPS_NV", GL_PATH_DASH_CAPS_NV},
    {"GL_PATH_INITIAL_DASH_CAP_NV", GL_PATH_INITIAL_DASH_CAP_NV},
    {"GL_PATH_TERMINAL_DASH_CAP_NV", GL_PATH_TERMINAL_DASH_CAP_NV},
    {"GL_PATH_DASH_OFFSET_NV", GL_PATH_DASH_OFFSET_NV},
    {"GL_PATH_CLIENT_LENGTH_NV", GL_PATH_CLIENT_LENGTH_NV},
    {"GL_PATH_FILL_MODE_NV", GL_PATH_FILL_MODE_NV},
    {"GL_PATH_FILL_MASK_NV", GL_PATH_FILL_MASK_NV},
    {"GL_PATH_FILL_COVER_MODE_NV", GL_PATH_FILL_COVER_MODE_NV},
    {"GL_PATH_STROKE_COVER_MODE_NV", GL_PATH_STROKE_COVER_MODE_NV},
    {"GL_PATH_STROKE_MASK_NV", GL_PATH_STROKE_MASK_NV},
    {"GL_PATH_SAMPLE_QUALITY_NV", GL_PATH_SAMPLE_QUALITY_NV},
    {"GL_PATH_STROKE_OVERSAMPLE_COUNT_NV", GL_PATH_STROKE_OVERSAMPLE_COUNT_NV},
    {"GL_COUNT_UP_NV", GL_COUNT_UP_NV},
    {"GL_COUNT_DOWN_NV", GL_COUNT_DOWN_NV},
    {"GL_PATH_OBJECT_BOUNDING_BOX_NV", GL_PATH_OBJECT_BOUNDING_BOX_NV},
    {"GL_CONVEX_HULL_NV", GL_CONVEX_HULL_NV},
    {"GL_MULTI_HULLS_NV", GL_MULTI_HULLS_NV},
    {"GL_BOUNDING_BOX_NV", GL_BOUNDING_BOX_NV},
    {"GL_TRANSLATE_X_NV", GL_TRANSLATE_X_NV},
    {"GL_TRANSLATE_Y_NV", GL_TRANSLATE_Y_NV},
    {"GL_TRANSLATE_2D_NV", GL_TRANSLATE_2D_NV},
    {"GL_TRANSLATE_3D_NV", GL_TRANSLATE_3D_NV},
    {"GL_AFFINE_2D_NV", GL_AFFINE_2D_NV},
    {"GL_PROJECTIVE_2D_NV", GL_PROJECTIVE_2D_NV},
    {"GL_AFFINE_3D_NV", GL_AFFINE_3D_NV},
    {"GL_PROJECTIVE_3D_NV", GL_PROJECTIVE_3D_NV},
    {"GL_TRANSPOSE_AFFINE_2D_NV", GL_TRANSPOSE_AFFINE_2D_NV},
    {"GL_TRANSPOSE_PROJECTIVE_2D_NV", GL_TRANSPOSE_PROJECTIVE_2D_NV},
    {"GL_TRANSPOSE_AFFINE_3D_NV", GL_TRANSPOSE_AFFINE_3D_NV},
    {"GL_TRANSPOSE_PROJECTIVE_3D_NV", GL_TRANSPOSE_PROJECTIVE_3D_NV},
    {"GL_UTF8_NV", GL_UTF8_NV},
    {"GL_UTF16_NV", GL_UTF16_NV},
    {"GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV", GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV},
    {"GL_PATH_COMMAND_COUNT_NV", GL_PATH_COMMAND_COUNT_NV},
    {"GL_PATH_COORD_COUNT_NV", GL_PATH_COORD_COUNT_NV},
    {"GL_PATH_DASH_ARRAY_COUNT_NV", GL_PATH_DASH_ARRAY_COUNT_NV},
    {"GL_PATH_COMPUTED_LENGTH_NV", GL_PATH_COMPUTED_LENGTH_NV},
    {"GL_PATH_FILL_BOUNDING_BOX_NV", GL_PATH_FILL_BOUNDING_BOX_NV},
    {"GL_PATH_STROKE_BOUNDING_BOX_NV", GL_PATH_STROKE_BOUNDING_BOX_NV},
    {"GL_SQUARE_NV", GL_SQUARE_NV},
    {"GL_ROUND_NV", GL_ROUND_NV},
    {"GL_TRIANGULAR_NV", GL_TRIANGULAR_NV},
    {"GL_BEVEL_NV", GL_BEVEL_NV},
    {"GL_MITER_REVERT_NV", GL_MITER_REVERT_NV},
    {"GL_MITER_TRUNCATE_NV", GL_MITER_TRUNCATE_NV},
    {"GL_SKIP_MISSING_GLYPH_NV", GL_SKIP_MISSING_GLYPH_NV},
    {"GL_USE_MISSING_GLYPH_NV", GL_USE_MISSING_GLYPH_NV},
    {"GL_PATH_ERROR_POSITION_NV", GL_PATH_ERROR_POSITION_NV},
    {"GL_PATH_FOG_GEN_MODE_NV", GL_PATH_FOG_GEN_MODE_NV},
    {"GL_ACCUM_ADJACENT_PAIRS_NV", GL_ACCUM_ADJACENT_PAIRS_NV},
    {"GL_ADJACENT_PAIRS_NV", GL_ADJACENT_PAIRS_NV},
    {"GL_FIRST_TO_REST_NV", GL_FIRST_TO_REST_NV},
    {"GL_PATH_GEN_MODE_NV", GL_PATH_GEN_MODE_NV},
    {"GL_PATH_GEN_COEFF_NV", GL_PATH_GEN_COEFF_NV},
    {"GL_PATH_GEN_COLOR_FORMAT_NV", GL_PATH_GEN_COLOR_FORMAT_NV},
    {"GL_PATH_GEN_COMPONENTS_NV", GL_PATH_GEN_COMPONENTS_NV},
    {"GL_PATH_DASH_OFFSET_RESET_NV", GL_PATH_DASH_OFFSET_RESET_NV},
    {"GL_MOVE_TO_RESETS_NV", GL_MOVE_TO_RESETS_NV},
    {"GL_MOVE_TO_CONTINUES_NV", GL_MOVE_TO_CONTINUES_NV},
    {"GL_PATH_STENCIL_FUNC_NV", GL_PATH_STENCIL_FUNC_NV},
    {"GL_PATH_STENCIL_REF_NV", GL_PATH_STENCIL_REF_NV},
    {"GL_PATH_STENCIL_VALUE_MASK_NV", GL_PATH_STENCIL_VALUE_MASK_NV},
    {"GL_SCALED_RESOLVE_FASTEST_EXT", GL_SCALED_RESOLVE_FASTEST_EXT},
    {"GL_SCALED_RESOLVE_NICEST_EXT", GL_SCALED_RESOLVE_NICEST_EXT},
    {"GL_MIN_MAP_BUFFER_ALIGNMENT", GL_MIN_MAP_BUFFER_ALIGNMENT},
    {"GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV", GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV},
    {"GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV", GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV},
    {"GL_PATH_COVER_DEPTH_FUNC_NV", GL_PATH_COVER_DEPTH_FUNC_NV},
    {"GL_IMAGE_FORMAT_COMPATIBILITY_TYPE", GL_IMAGE_FORMAT_COMPATIBILITY_TYPE},
    {"GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE", GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE},
    {"GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS", GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS},
    {"GL_MAX_VERTEX_IMAGE_UNIFORMS", GL_MAX_VERTEX_IMAGE_UNIFORMS},
    {"GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS", GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS},
    {"GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS", GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS},
    {"GL_MAX_GEOMETRY_IMAGE_UNIFORMS", GL_MAX_GEOMETRY_IMAGE_UNIFORMS},
    {"GL_MAX_FRAGMENT_IMAGE_UNIFORMS", GL_MAX_FRAGMENT_IMAGE_UNIFORMS},
    {"GL_MAX_COMBINED_IMAGE_UNIFORMS", GL_MAX_COMBINED_IMAGE_UNIFORMS},
    {"GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV", GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV},
    {"GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV", GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV},
    {"GL_SHADER_STORAGE_BUFFER", GL_SHADER_STORAGE_BUFFER},
    {"GL_SHADER_STORAGE_BUFFER_BINDING", GL_SHADER_STORAGE_BUFFER_BINDING},
    {"GL_SHADER_STORAGE_BUFFER_START", GL_SHADER_STORAGE_BUFFER_START},
    {"GL_SHADER_STORAGE_BUFFER_SIZE", GL_SHADER_STORAGE_BUFFER_SIZE},
    {"GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS", GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS", GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS", GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS", GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS", GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS", GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS", GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS},
    {"GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS", GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS},
    {"GL_MAX_SHADER_STORAGE_BLOCK_SIZE", GL_MAX_SHADER_STORAGE_BLOCK_SIZE},
    {"GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT", GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT},
    {"GL_SYNC_X11_FENCE_EXT", GL_SYNC_X11_FENCE_EXT},
    {"GL_DEPTH_STENCIL_TEXTURE_MODE", GL_DEPTH_STENCIL_TEXTURE_MODE},
    {"GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS", GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS},
    {"GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER},
    {"GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER", GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER},
    {"GL_DISPATCH_INDIRECT_BUFFER", GL_DISPATCH_INDIRECT_BUFFER},
    {"GL_DISPATCH_INDIRECT_BUFFER_BINDING", GL_DISPATCH_INDIRECT_BUFFER_BINDING},
    {"GL_COLOR_ATTACHMENT_EXT", GL_COLOR_ATTACHMENT_EXT},
    {"GL_MULTIVIEW_EXT", GL_MULTIVIEW_EXT},
    {"GL_MAX_MULTIVIEW_BUFFERS_EXT", GL_MAX_MULTIVIEW_BUFFERS_EXT},
    {"GL_CONTEXT_ROBUST_ACCESS", GL_CONTEXT_ROBUST_ACCESS},
    {"GL_COMPUTE_PROGRAM_NV", GL_COMPUTE_PROGRAM_NV},
    {"GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV", GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV},
    {"GL_TEXTURE_2D_MULTISAMPLE", GL_TEXTURE_2D_MULTISAMPLE},
    {"GL_PROXY_TEXTURE_2D_MULTISAMPLE", GL_PROXY_TEXTURE_2D_MULTISAMPLE},
    {"GL_TEXTURE_2D_MULTISAMPLE_ARRAY", GL_TEXTURE_2D_MULTISAMPLE_ARRAY},
    {"GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY", GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY},
    {"GL_TEXTURE_BINDING_2D_MULTISAMPLE", GL_TEXTURE_BINDING_2D_MULTISAMPLE},
    {"GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY", GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY},
    {"GL_TEXTURE_SAMPLES", GL_TEXTURE_SAMPLES},
    {"GL_TEXTURE_FIXED_SAMPLE_LOCATIONS", GL_TEXTURE_FIXED_SAMPLE_LOCATIONS},
    {"GL_SAMPLER_2D_MULTISAMPLE", GL_SAMPLER_2D_MULTISAMPLE},
    {"GL_INT_SAMPLER_2D_MULTISAMPLE", GL_INT_SAMPLER_2D_MULTISAMPLE},
    {"GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE", GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE},
    {"GL_SAMPLER_2D_MULTISAMPLE_ARRAY", GL_SAMPLER_2D_MULTISAMPLE_ARRAY},
    {"GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY", GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY},
    {"GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY", GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY},
    {"GL_MAX_COLOR_TEXTURE_SAMPLES", GL_MAX_COLOR_TEXTURE_SAMPLES},
    {"GL_MAX_DEPTH_TEXTURE_SAMPLES", GL_MAX_DEPTH_TEXTURE_SAMPLES},
    {"GL_MAX_INTEGER_SAMPLES", GL_MAX_INTEGER_SAMPLES},
    {"GL_MAX_SERVER_WAIT_TIMEOUT", GL_MAX_SERVER_WAIT_TIMEOUT},
    {"GL_OBJECT_TYPE", GL_OBJECT_TYPE},
    {"GL_SYNC_CONDITION", GL_SYNC_CONDITION},
    {"GL_SYNC_STATUS", GL_SYNC_STATUS},
    {"GL_SYNC_FLAGS", GL_SYNC_FLAGS},
    {"GL_SYNC_FENCE", GL_SYNC_FENCE},
    {"GL_SYNC_GPU_COMMANDS_COMPLETE", GL_SYNC_GPU_COMMANDS_COMPLETE},
    {"GL_UNSIGNALED", GL_UNSIGNALED},
    {"GL_SIGNALED", GL_SIGNALED},
    {"GL_ALREADY_SIGNALED", GL_ALREADY_SIGNALED},
    {"GL_TIMEOUT_EXPIRED", GL_TIMEOUT_EXPIRED},
    {"GL_CONDITION_SATISFIED", GL_CONDITION_SATISFIED},
    {"GL_WAIT_FAILED", GL_WAIT_FAILED},
    {"GL_BUFFER_ACCESS_FLAGS", GL_BUFFER_ACCESS_FLAGS},
    {"GL_BUFFER_MAP_LENGTH", GL_BUFFER_MAP_LENGTH},
    {"GL_BUFFER_MAP_OFFSET", GL_BUFFER_MAP_OFFSET},
    {"GL_MAX_VERTEX_OUTPUT_COMPONENTS", GL_MAX_VERTEX_OUTPUT_COMPONENTS},
    {"GL_MAX_GEOMETRY_INPUT_COMPONENTS", GL_MAX_GEOMETRY_INPUT_COMPONENTS},
    {"GL_MAX_GEOMETRY_OUTPUT_COMPONENTS", GL_MAX_GEOMETRY_OUTPUT_COMPONENTS},
    {"GL_MAX_FRAGMENT_INPUT_COMPONENTS", GL_MAX_FRAGMENT_INPUT_COMPONENTS},
    {"GL_CONTEXT_PROFILE_MASK", GL_CONTEXT_PROFILE_MASK},
    {"GL_UNPACK_COMPRESSED_BLOCK_WIDTH", GL_UNPACK_COMPRESSED_BLOCK_WIDTH},
    {"GL_UNPACK_COMPRESSED_BLOCK_HEIGHT", GL_UNPACK_COMPRESSED_BLOCK_HEIGHT},
    {"GL_UNPACK_COMPRESSED_BLOCK_DEPTH", GL_UNPACK_COMPRESSED_BLOCK_DEPTH},
    {"GL_UNPACK_COMPRESSED_BLOCK_SIZE", GL_UNPACK_COMPRESSED_BLOCK_SIZE},
    {"GL_PACK_COMPRESSED_BLOCK_WIDTH", GL_PACK_COMPRESSED_BLOCK_WIDTH},
    {"GL_PACK_COMPRESSED_BLOCK_HEIGHT", GL_PACK_COMPRESSED_BLOCK_HEIGHT},
    {"GL_PACK_COMPRESSED_BLOCK_DEPTH", GL_PACK_COMPRESSED_BLOCK_DEPTH},
    {"GL_PACK_COMPRESSED_BLOCK_SIZE", GL_PACK_COMPRESSED_BLOCK_SIZE},
    {"GL_TEXTURE_IMMUTABLE_FORMAT", GL_TEXTURE_IMMUTABLE_FORMAT},
    {"GL_SGX_PROGRAM_BINARY_IMG", GL_SGX_PROGRAM_BINARY_IMG},
    {"GL_RENDERBUFFER_SAMPLES_IMG", GL_RENDERBUFFER_SAMPLES_IMG},
    {"GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG", GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG},
    {"GL_MAX_SAMPLES_IMG", GL_MAX_SAMPLES_IMG},
    {"GL_TEXTURE_SAMPLES_IMG", GL_TEXTURE_SAMPLES_IMG},
    {"GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG", GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG},
    {"GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG", GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG},
    {"GL_CUBIC_IMG", GL_CUBIC_IMG},
    {"GL_CUBIC_MIPMAP_NEAREST_IMG", GL_CUBIC_MIPMAP_NEAREST_IMG},
    {"GL_CUBIC_MIPMAP_LINEAR_IMG", GL_CUBIC_MIPMAP_LINEAR_IMG},
    {"GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG", GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG},
    {"GL_NUM_DOWNSAMPLE_SCALES_IMG", GL_NUM_DOWNSAMPLE_SCALES_IMG},
    {"GL_DOWNSAMPLE_SCALES_IMG", GL_DOWNSAMPLE_SCALES_IMG},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG},
    {"GL_MAX_DEBUG_MESSAGE_LENGTH", GL_MAX_DEBUG_MESSAGE_LENGTH},
    {"GL_MAX_DEBUG_LOGGED_MESSAGES", GL_MAX_DEBUG_LOGGED_MESSAGES},
    {"GL_DEBUG_LOGGED_MESSAGES", GL_DEBUG_LOGGED_MESSAGES},
    {"GL_DEBUG_SEVERITY_HIGH", GL_DEBUG_SEVERITY_HIGH},
    {"GL_DEBUG_SEVERITY_MEDIUM", GL_DEBUG_SEVERITY_MEDIUM},
    {"GL_DEBUG_SEVERITY_LOW", GL_DEBUG_SEVERITY_LOW},
    {"GL_DEBUG_CATEGORY_API_ERROR_AMD", GL_DEBUG_CATEGORY_API_ERROR_AMD},
    {"GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD", GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD},
    {"GL_DEBUG_CATEGORY_DEPRECATION_AMD", GL_DEBUG_CATEGORY_DEPRECATION_AMD},
    {"GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD", GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD},
    {"GL_DEBUG_CATEGORY_PERFORMANCE_AMD", GL_DEBUG_CATEGORY_PERFORMANCE_AMD},
    {"GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD", GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD},
    {"GL_DEBUG_CATEGORY_APPLICATION_AMD", GL_DEBUG_CATEGORY_APPLICATION_AMD},
    {"GL_DEBUG_CATEGORY_OTHER_AMD", GL_DEBUG_CATEGORY_OTHER_AMD},
    {"GL_BUFFER_OBJECT_EXT", GL_BUFFER_OBJECT_EXT},
    {"GL_PERFORMANCE_MONITOR_AMD", GL_PERFORMANCE_MONITOR_AMD},
    {"GL_QUERY_OBJECT_EXT", GL_QUERY_OBJECT_EXT},
    {"GL_VERTEX_ARRAY_OBJECT_EXT", GL_VERTEX_ARRAY_OBJECT_EXT},
    {"GL_SAMPLER_OBJECT_AMD", GL_SAMPLER_OBJECT_AMD},
    {"GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD", GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD},
    {"GL_QUERY_BUFFER", GL_QUERY_BUFFER},
    {"GL_QUERY_BUFFER_BINDING", GL_QUERY_BUFFER_BINDING},
    {"GL_QUERY_RESULT_NO_WAIT", GL_QUERY_RESULT_NO_WAIT},
    {"GL_VIRTUAL_PAGE_SIZE_X_ARB", GL_VIRTUAL_PAGE_SIZE_X_ARB},
    {"GL_VIRTUAL_PAGE_SIZE_Y_ARB", GL_VIRTUAL_PAGE_SIZE_Y_ARB},
    {"GL_VIRTUAL_PAGE_SIZE_Z_ARB", GL_VIRTUAL_PAGE_SIZE_Z_ARB},
    {"GL_MAX_SPARSE_TEXTURE_SIZE_ARB", GL_MAX_SPARSE_TEXTURE_SIZE_ARB},
    {"GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB", GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB},
    {"GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS", GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS},
    {"GL_MIN_SPARSE_LEVEL_AMD", GL_MIN_SPARSE_LEVEL_AMD},
    {"GL_MIN_LOD_WARNING_AMD", GL_MIN_LOD_WARNING_AMD},
    {"GL_TEXTURE_BUFFER_OFFSET", GL_TEXTURE_BUFFER_OFFSET},
    {"GL_TEXTURE_BUFFER_SIZE", GL_TEXTURE_BUFFER_SIZE},
    {"GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT", GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT},
    {"GL_STREAM_RASTERIZATION_AMD", GL_STREAM_RASTERIZATION_AMD},
    {"GL_VERTEX_ELEMENT_SWIZZLE_AMD", GL_VERTEX_ELEMENT_SWIZZLE_AMD},
    {"GL_VERTEX_ID_SWIZZLE_AMD", GL_VERTEX_ID_SWIZZLE_AMD},
    {"GL_TEXTURE_SPARSE_ARB", GL_TEXTURE_SPARSE_ARB},
    {"GL_VIRTUAL_PAGE_SIZE_INDEX_ARB", GL_VIRTUAL_PAGE_SIZE_INDEX_ARB},
    {"GL_NUM_VIRTUAL_PAGE_SIZES_ARB", GL_NUM_VIRTUAL_PAGE_SIZES_ARB},
    {"GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB", GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB},
    {"GL_NUM_SPARSE_LEVELS_ARB", GL_NUM_SPARSE_LEVELS_ARB},
    {"GL_MAX_SHADER_COMPILER_THREADS_ARB", GL_MAX_SHADER_COMPILER_THREADS_ARB},
    {"GL_COMPLETION_STATUS_ARB", GL_COMPLETION_STATUS_ARB},
    {"GL_COMPUTE_SHADER", GL_COMPUTE_SHADER},
    {"GL_MAX_COMPUTE_UNIFORM_BLOCKS", GL_MAX_COMPUTE_UNIFORM_BLOCKS},
    {"GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS", GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS},
    {"GL_MAX_COMPUTE_IMAGE_UNIFORMS", GL_MAX_COMPUTE_IMAGE_UNIFORMS},
    {"GL_MAX_COMPUTE_WORK_GROUP_COUNT", GL_MAX_COMPUTE_WORK_GROUP_COUNT},
    {"GL_MAX_COMPUTE_WORK_GROUP_SIZE", GL_MAX_COMPUTE_WORK_GROUP_SIZE},
    {"GL_SHADER_BINARY_DMP", GL_SHADER_BINARY_DMP},
    {"GL_SMAPHS30_PROGRAM_BINARY_DMP", GL_SMAPHS30_PROGRAM_BINARY_DMP},
    {"GL_SMAPHS_PROGRAM_BINARY_DMP", GL_SMAPHS_PROGRAM_BINARY_DMP},
    {"GL_DMP_PROGRAM_BINARY_DMP", GL_DMP_PROGRAM_BINARY_DMP},
    {"GL_COMPRESSED_R11_EAC", GL_COMPRESSED_R11_EAC},
    {"GL_COMPRESSED_SIGNED_R11_EAC", GL_COMPRESSED_SIGNED_R11_EAC},
    {"GL_COMPRESSED_RG11_EAC", GL_COMPRESSED_RG11_EAC},
    {"GL_COMPRESSED_SIGNED_RG11_EAC", GL_COMPRESSED_SIGNED_RG11_EAC},
    {"GL_COMPRESSED_RGB8_ETC2", GL_COMPRESSED_RGB8_ETC2},
    {"GL_COMPRESSED_SRGB8_ETC2", GL_COMPRESSED_SRGB8_ETC2},
    {"GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2},
    {"GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2},
    {"GL_COMPRESSED_RGBA8_ETC2_EAC", GL_COMPRESSED_RGBA8_ETC2_EAC},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC},
    {"GL_BLEND_PREMULTIPLIED_SRC_NV", GL_BLEND_PREMULTIPLIED_SRC_NV},
    {"GL_BLEND_OVERLAP_NV", GL_BLEND_OVERLAP_NV},
    {"GL_UNCORRELATED_NV", GL_UNCORRELATED_NV},
    {"GL_DISJOINT_NV", GL_DISJOINT_NV},
    {"GL_CONJOINT_NV", GL_CONJOINT_NV},
    {"GL_BLEND_ADVANCED_COHERENT_KHR", GL_BLEND_ADVANCED_COHERENT_KHR},
    {"GL_SRC_NV", GL_SRC_NV},
    {"GL_DST_NV", GL_DST_NV},
    {"GL_SRC_OVER_NV", GL_SRC_OVER_NV},
    {"GL_DST_OVER_NV", GL_DST_OVER_NV},
    {"GL_SRC_IN_NV", GL_SRC_IN_NV},
    {"GL_DST_IN_NV", GL_DST_IN_NV},
    {"GL_SRC_OUT_NV", GL_SRC_OUT_NV},
    {"GL_DST_OUT_NV", GL_DST_OUT_NV},
    {"GL_SRC_ATOP_NV", GL_SRC_ATOP_NV},
    {"GL_DST_ATOP_NV", GL_DST_ATOP_NV},
    {"GL_PLUS_NV", GL_PLUS_NV},
    {"GL_PLUS_DARKER_NV", GL_PLUS_DARKER_NV},
    {"GL_MULTIPLY_KHR", GL_MULTIPLY_KHR},
    {"GL_SCREEN_KHR", GL_SCREEN_KHR},
    {"GL_OVERLAY_KHR", GL_OVERLAY_KHR},
    {"GL_DARKEN_KHR", GL_DARKEN_KHR},
    {"GL_LIGHTEN_KHR", GL_LIGHTEN_KHR},
    {"GL_COLORDODGE_KHR", GL_COLORDODGE_KHR},
    {"GL_COLORBURN_KHR", GL_COLORBURN_KHR},
    {"GL_HARDLIGHT_KHR", GL_HARDLIGHT_KHR},
    {"GL_SOFTLIGHT_KHR", GL_SOFTLIGHT_KHR},
    {"GL_DIFFERENCE_KHR", GL_DIFFERENCE_KHR},
    {"GL_MINUS_NV", GL_MINUS_NV},
    {"GL_EXCLUSION_KHR", GL_EXCLUSION_KHR},
    {"GL_CONTRAST_NV", GL_CONTRAST_NV},
    {"GL_INVERT_RGB_NV", GL_INVERT_RGB_NV},
    {"GL_LINEARDODGE_NV", GL_LINEARDODGE_NV},
    {"GL_LINEARBURN_NV", GL_LINEARBURN_NV},
    {"GL_VIVIDLIGHT_NV", GL_VIVIDLIGHT_NV},
    {"GL_LINEARLIGHT_NV", GL_LINEARLIGHT_NV},
    {"GL_PINLIGHT_NV", GL_PINLIGHT_NV},
    {"GL_HARDMIX_NV", GL_HARDMIX_NV},
    {"GL_HSL_HUE_KHR", GL_HSL_HUE_KHR},
    {"GL_HSL_SATURATION_KHR", GL_HSL_SATURATION_KHR},
    {"GL_HSL_COLOR_KHR", GL_HSL_COLOR_KHR},
    {"GL_HSL_LUMINOSITY_KHR", GL_HSL_LUMINOSITY_KHR},
    {"GL_PLUS_CLAMPED_NV", GL_PLUS_CLAMPED_NV},
    {"GL_PLUS_CLAMPED_ALPHA_NV", GL_PLUS_CLAMPED_ALPHA_NV},
    {"GL_MINUS_CLAMPED_NV", GL_MINUS_CLAMPED_NV},
    {"GL_INVERT_OVG_NV", GL_INVERT_OVG_NV},
    {"GL_PRIMITIVE_BOUNDING_BOX_EXT", GL_PRIMITIVE_BOUNDING_BOX_EXT},
    {"GL_ATOMIC_COUNTER_BUFFER", GL_ATOMIC_COUNTER_BUFFER},
    {"GL_ATOMIC_COUNTER_BUFFER_BINDING", GL_ATOMIC_COUNTER_BUFFER_BINDING},
    {"GL_ATOMIC_COUNTER_BUFFER_START", GL_ATOMIC_COUNTER_BUFFER_START},
    {"GL_ATOMIC_COUNTER_BUFFER_SIZE", GL_ATOMIC_COUNTER_BUFFER_SIZE},
    {"GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE", GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE},
    {"GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS", GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS},
    {"GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES", GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES},
    {"GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER", GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER},
    {"GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER", GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER},
    {"GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER", GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER},
    {"GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER", GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER},
    {"GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER", GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER},
    {"GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS", GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS", GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS", GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS", GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS", GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS", GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS},
    {"GL_MAX_VERTEX_ATOMIC_COUNTERS", GL_MAX_VERTEX_ATOMIC_COUNTERS},
    {"GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS", GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS},
    {"GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS", GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS},
    {"GL_MAX_GEOMETRY_ATOMIC_COUNTERS", GL_MAX_GEOMETRY_ATOMIC_COUNTERS},
    {"GL_MAX_FRAGMENT_ATOMIC_COUNTERS", GL_MAX_FRAGMENT_ATOMIC_COUNTERS},
    {"GL_MAX_COMBINED_ATOMIC_COUNTERS", GL_MAX_COMBINED_ATOMIC_COUNTERS},
    {"GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE", GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE},
    {"GL_ACTIVE_ATOMIC_COUNTER_BUFFERS", GL_ACTIVE_ATOMIC_COUNTER_BUFFERS},
    {"GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX", GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX},
    {"GL_UNSIGNED_INT_ATOMIC_COUNTER", GL_UNSIGNED_INT_ATOMIC_COUNTER},
    {"GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS", GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS},
    {"GL_FRAGMENT_COVERAGE_TO_COLOR_NV", GL_FRAGMENT_COVERAGE_TO_COLOR_NV},
    {"GL_FRAGMENT_COVERAGE_COLOR_NV", GL_FRAGMENT_COVERAGE_COLOR_NV},
    {"GL_DEBUG_OUTPUT", GL_DEBUG_OUTPUT},
    {"GL_UNIFORM", GL_UNIFORM},
    {"GL_UNIFORM_BLOCK", GL_UNIFORM_BLOCK},
    {"GL_PROGRAM_INPUT", GL_PROGRAM_INPUT},
    {"GL_PROGRAM_OUTPUT", GL_PROGRAM_OUTPUT},
    {"GL_BUFFER_VARIABLE", GL_BUFFER_VARIABLE},
    {"GL_SHADER_STORAGE_BLOCK", GL_SHADER_STORAGE_BLOCK},
    {"GL_IS_PER_PATCH", GL_IS_PER_PATCH},
    {"GL_VERTEX_SUBROUTINE", GL_VERTEX_SUBROUTINE},
    {"GL_TESS_CONTROL_SUBROUTINE", GL_TESS_CONTROL_SUBROUTINE},
    {"GL_TESS_EVALUATION_SUBROUTINE", GL_TESS_EVALUATION_SUBROUTINE},
    {"GL_GEOMETRY_SUBROUTINE", GL_GEOMETRY_SUBROUTINE},
    {"GL_FRAGMENT_SUBROUTINE", GL_FRAGMENT_SUBROUTINE},
    {"GL_COMPUTE_SUBROUTINE", GL_COMPUTE_SUBROUTINE},
    {"GL_VERTEX_SUBROUTINE_UNIFORM", GL_VERTEX_SUBROUTINE_UNIFORM},
    {"GL_TESS_CONTROL_SUBROUTINE_UNIFORM", GL_TESS_CONTROL_SUBROUTINE_UNIFORM},
    {"GL_TESS_EVALUATION_SUBROUTINE_UNIFORM", GL_TESS_EVALUATION_SUBROUTINE_UNIFORM},
    {"GL_GEOMETRY_SUBROUTINE_UNIFORM", GL_GEOMETRY_SUBROUTINE_UNIFORM},
    {"GL_FRAGMENT_SUBROUTINE_UNIFORM", GL_FRAGMENT_SUBROUTINE_UNIFORM},
    {"GL_COMPUTE_SUBROUTINE_UNIFORM", GL_COMPUTE_SUBROUTINE_UNIFORM},
    {"GL_TRANSFORM_FEEDBACK_VARYING", GL_TRANSFORM_FEEDBACK_VARYING},
    {"GL_ACTIVE_RESOURCES", GL_ACTIVE_RESOURCES},
    {"GL_MAX_NAME_LENGTH", GL_MAX_NAME_LENGTH},
    {"GL_MAX_NUM_ACTIVE_VARIABLES", GL_MAX_NUM_ACTIVE_VARIABLES},
    {"GL_MAX_NUM_COMPATIBLE_SUBROUTINES", GL_MAX_NUM_COMPATIBLE_SUBROUTINES},
    {"GL_NAME_LENGTH", GL_NAME_LENGTH},
    {"GL_TYPE", GL_TYPE},
    {"GL_ARRAY_SIZE", GL_ARRAY_SIZE},
    {"GL_OFFSET", GL_OFFSET},
    {"GL_BLOCK_INDEX", GL_BLOCK_INDEX},
    {"GL_ARRAY_STRIDE", GL_ARRAY_STRIDE},
    {"GL_MATRIX_STRIDE", GL_MATRIX_STRIDE},
    {"GL_IS_ROW_MAJOR", GL_IS_ROW_MAJOR},
    {"GL_ATOMIC_COUNTER_BUFFER_INDEX", GL_ATOMIC_COUNTER_BUFFER_INDEX},
    {"GL_BUFFER_BINDING", GL_BUFFER_BINDING},
    {"GL_BUFFER_DATA_SIZE", GL_BUFFER_DATA_SIZE},
    {"GL_NUM_ACTIVE_VARIABLES", GL_NUM_ACTIVE_VARIABLES},
    {"GL_ACTIVE_VARIABLES", GL_ACTIVE_VARIABLES},
    {"GL_REFERENCED_BY_VERTEX_SHADER", GL_REFERENCED_BY_VERTEX_SHADER},
    {"GL_REFERENCED_BY_TESS_CONTROL_SHADER", GL_REFERENCED_BY_TESS_CONTROL_SHADER},
    {"GL_REFERENCED_BY_TESS_EVALUATION_SHADER", GL_REFERENCED_BY_TESS_EVALUATION_SHADER},
    {"GL_REFERENCED_BY_GEOMETRY_SHADER", GL_REFERENCED_BY_GEOMETRY_SHADER},
    {"GL_REFERENCED_BY_FRAGMENT_SHADER", GL_REFERENCED_BY_FRAGMENT_SHADER},
    {"GL_REFERENCED_BY_COMPUTE_SHADER", GL_REFERENCED_BY_COMPUTE_SHADER},
    {"GL_TOP_LEVEL_ARRAY_SIZE", GL_TOP_LEVEL_ARRAY_SIZE},
    {"GL_TOP_LEVEL_ARRAY_STRIDE", GL_TOP_LEVEL_ARRAY_STRIDE},
    {"GL_LOCATION", GL_LOCATION},
    {"GL_LOCATION_INDEX", GL_LOCATION_INDEX},
    {"GL_FRAMEBUFFER_DEFAULT_WIDTH", GL_FRAMEBUFFER_DEFAULT_WIDTH},
    {"GL_FRAMEBUFFER_DEFAULT_HEIGHT", GL_FRAMEBUFFER_DEFAULT_HEIGHT},
    {"GL_FRAMEBUFFER_DEFAULT_LAYERS", GL_FRAMEBUFFER_DEFAULT_LAYERS},
    {"GL_FRAMEBUFFER_DEFAULT_SAMPLES", GL_FRAMEBUFFER_DEFAULT_SAMPLES},
    {"GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS", GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS},
    {"GL_MAX_FRAMEBUFFER_WIDTH", GL_MAX_FRAMEBUFFER_WIDTH},
    {"GL_MAX_FRAMEBUFFER_HEIGHT", GL_MAX_FRAMEBUFFER_HEIGHT},
    {"GL_MAX_FRAMEBUFFER_LAYERS", GL_MAX_FRAMEBUFFER_LAYERS},
    {"GL_MAX_FRAMEBUFFER_SAMPLES", GL_MAX_FRAMEBUFFER_SAMPLES},
    {"GL_RASTER_MULTISAMPLE_EXT", GL_RASTER_MULTISAMPLE_EXT},
    {"GL_RASTER_SAMPLES_EXT", GL_RASTER_SAMPLES_EXT},
    {"GL_MAX_RASTER_SAMPLES_EXT", GL_MAX_RASTER_SAMPLES_EXT},
    {"GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT", GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT},
    {"GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT", GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT},
    {"GL_EFFECTIVE_RASTER_SAMPLES_EXT", GL_EFFECTIVE_RASTER_SAMPLES_EXT},
    {"GL_DEPTH_SAMPLES_NV", GL_DEPTH_SAMPLES_NV},
    {"GL_STENCIL_SAMPLES_NV", GL_STENCIL_SAMPLES_NV},
    {"GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV", GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV},
    {"GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV", GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV},
    {"GL_COVERAGE_MODULATION_TABLE_NV", GL_COVERAGE_MODULATION_TABLE_NV},
    {"GL_COVERAGE_MODULATION_NV", GL_COVERAGE_MODULATION_NV},
    {"GL_COVERAGE_MODULATION_TABLE_SIZE_NV", GL_COVERAGE_MODULATION_TABLE_SIZE_NV},
    {"GL_WARP_SIZE_NV", GL_WARP_SIZE_NV},
    {"GL_WARPS_PER_SM_NV", GL_WARPS_PER_SM_NV},
    {"GL_SM_COUNT_NV", GL_SM_COUNT_NV},
    {"GL_FILL_RECTANGLE_NV", GL_FILL_RECTANGLE_NV},
    {"GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB", GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB},
    {"GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB", GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB},
    {"GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB", GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB},
    {"GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB", GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB},
    {"GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB", GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB},
    {"GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB", GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB},
    {"GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB", GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB},
    {"GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB", GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB},
    {"GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB", GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB},
    {"GL_CONSERVATIVE_RASTERIZATION_NV", GL_CONSERVATIVE_RASTERIZATION_NV},
    {"GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV", GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV},
    {"GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV", GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV},
    {"GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV", GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV},
    {"GL_LOCATION_COMPONENT", GL_LOCATION_COMPONENT},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_INDEX", GL_TRANSFORM_FEEDBACK_BUFFER_INDEX},
    {"GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE", GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE},
    {"GL_CLIP_ORIGIN", GL_CLIP_ORIGIN},
    {"GL_CLIP_DEPTH_MODE", GL_CLIP_DEPTH_MODE},
    {"GL_NEGATIVE_ONE_TO_ONE", GL_NEGATIVE_ONE_TO_ONE},
    {"GL_ZERO_TO_ONE", GL_ZERO_TO_ONE},
    {"GL_CLEAR_TEXTURE", GL_CLEAR_TEXTURE},
    {"GL_TEXTURE_REDUCTION_MODE_ARB", GL_TEXTURE_REDUCTION_MODE_ARB},
    {"GL_WEIGHTED_AVERAGE_ARB", GL_WEIGHTED_AVERAGE_ARB},
    {"GL_FONT_GLYPHS_AVAILABLE_NV", GL_FONT_GLYPHS_AVAILABLE_NV},
    {"GL_FONT_TARGET_UNAVAILABLE_NV", GL_FONT_TARGET_UNAVAILABLE_NV},
    {"GL_FONT_UNAVAILABLE_NV", GL_FONT_UNAVAILABLE_NV},
    {"GL_FONT_UNINTELLIGIBLE_NV", GL_FONT_UNINTELLIGIBLE_NV},
    {"GL_STANDARD_FONT_FORMAT_NV", GL_STANDARD_FONT_FORMAT_NV},
    {"GL_FRAGMENT_INPUT_NV", GL_FRAGMENT_INPUT_NV},
    {"GL_UNIFORM_BUFFER_UNIFIED_NV", GL_UNIFORM_BUFFER_UNIFIED_NV},
    {"GL_UNIFORM_BUFFER_ADDRESS_NV", GL_UNIFORM_BUFFER_ADDRESS_NV},
    {"GL_UNIFORM_BUFFER_LENGTH_NV", GL_UNIFORM_BUFFER_LENGTH_NV},
    {"GL_MULTISAMPLES_NV", GL_MULTISAMPLES_NV},
    {"GL_SUPERSAMPLE_SCALE_X_NV", GL_SUPERSAMPLE_SCALE_X_NV},
    {"GL_SUPERSAMPLE_SCALE_Y_NV", GL_SUPERSAMPLE_SCALE_Y_NV},
    {"GL_CONFORMANT_NV", GL_CONFORMANT_NV},
    {"GL_CONSERVATIVE_RASTER_DILATE_NV", GL_CONSERVATIVE_RASTER_DILATE_NV},
    {"GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV", GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV},
    {"GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV", GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV},
    {"GL_NUM_SAMPLE_COUNTS", GL_NUM_SAMPLE_COUNTS},
    {"GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB", GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB},
    {"GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB", GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB},
    {"GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE", GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE},
    {"GL_BGRA8_EXT", GL_BGRA8_EXT},
    {"GL_TEXTURE_USAGE_ANGLE", GL_TEXTURE_USAGE_ANGLE},
    {"GL_FRAMEBUFFER_ATTACHMENT_ANGLE", GL_FRAMEBUFFER_ATTACHMENT_ANGLE},
    {"GL_PACK_REVERSE_ROW_ORDER_ANGLE", GL_PACK_REVERSE_ROW_ORDER_ANGLE},
    {"GL_PROGRAM_BINARY_ANGLE", GL_PROGRAM_BINARY_ANGLE},
    {"GL_COMPRESSED_RGBA_ASTC_4x4_KHR", GL_COMPRESSED_RGBA_ASTC_4x4_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_5x4_KHR", GL_COMPRESSED_RGBA_ASTC_5x4_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_5x5_KHR", GL_COMPRESSED_RGBA_ASTC_5x5_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_6x5_KHR", GL_COMPRESSED_RGBA_ASTC_6x5_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_6x6_KHR", GL_COMPRESSED_RGBA_ASTC_6x6_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_8x5_KHR", GL_COMPRESSED_RGBA_ASTC_8x5_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_8x6_KHR", GL_COMPRESSED_RGBA_ASTC_8x6_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_8x8_KHR", GL_COMPRESSED_RGBA_ASTC_8x8_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_10x5_KHR", GL_COMPRESSED_RGBA_ASTC_10x5_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_10x6_KHR", GL_COMPRESSED_RGBA_ASTC_10x6_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_10x8_KHR", GL_COMPRESSED_RGBA_ASTC_10x8_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_10x10_KHR", GL_COMPRESSED_RGBA_ASTC_10x10_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_12x10_KHR", GL_COMPRESSED_RGBA_ASTC_12x10_KHR},
    {"GL_COMPRESSED_RGBA_ASTC_12x12_KHR", GL_COMPRESSED_RGBA_ASTC_12x12_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR},
    {"GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR},
    {"GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG", GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG},
    {"GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG", GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG},
    {"GL_PERFQUERY_COUNTER_EVENT_INTEL", GL_PERFQUERY_COUNTER_EVENT_INTEL},
    {"GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL", GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL},
    {"GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL", GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL},
    {"GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL", GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL},
    {"GL_PERFQUERY_COUNTER_RAW_INTEL", GL_PERFQUERY_COUNTER_RAW_INTEL},
    {"GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL", GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL},
    {"GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL", GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL},
    {"GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL", GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL},
    {"GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL", GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL},
    {"GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL", GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL},
    {"GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL", GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL},
    {"GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL", GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL},
    {"GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL", GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL},
    {"GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL", GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL},
    {"GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL", GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL},
    {"GL_SHADER_BINARY_FORMAT_SPIR_V", GL_SHADER_BINARY_FORMAT_SPIR_V},
    {"GL_SPIR_V_BINARY", GL_SPIR_V_BINARY},
    {"GL_SPIR_V_EXTENSIONS", GL_SPIR_V_EXTENSIONS},
    {"GL_NUM_SPIR_V_EXTENSIONS", GL_NUM_SPIR_V_EXTENSIONS},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR},
    {"GL_MAX_VIEWS_OVR", GL_MAX_VIEWS_OVR},
    {"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR},
    {"GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR", GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR},
    {"GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT", GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT},
    {"GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT", GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT},
    {"GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT", GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT},
    {"GL_SURFACE_COMPRESSION_EXT", GL_SURFACE_COMPRESSION_EXT},
    {"GL_RASTER_POSITION_UNCLIPPED_IBM", GL_RASTER_POSITION_UNCLIPPED_IBM},
    {"GL_CULL_VERTEX_IBM", GL_CULL_VERTEX_IBM},
    {"GL_ALL_STATIC_DATA_IBM", GL_ALL_STATIC_DATA_IBM},
    {"GL_STATIC_VERTEX_ARRAY_IBM", GL_STATIC_VERTEX_ARRAY_IBM},
    {"GL_VERTEX_ARRAY_LIST_IBM", GL_VERTEX_ARRAY_LIST_IBM},
    {"GL_NORMAL_ARRAY_LIST_IBM", GL_NORMAL_ARRAY_LIST_IBM},
    {"GL_COLOR_ARRAY_LIST_IBM", GL_COLOR_ARRAY_LIST_IBM},
    {"GL_INDEX_ARRAY_LIST_IBM", GL_INDEX_ARRAY_LIST_IBM},
    {"GL_TEXTURE_COORD_ARRAY_LIST_IBM", GL_TEXTURE_COORD_ARRAY_LIST_IBM},
    {"GL_EDGE_FLAG_ARRAY_LIST_IBM", GL_EDGE_FLAG_ARRAY_LIST_IBM},
    {"GL_FOG_COORDINATE_ARRAY_LIST_IBM", GL_FOG_COORDINATE_ARRAY_LIST_IBM},
    {"GL_SECONDARY_COLOR_ARRAY_LIST_IBM", GL_SECONDARY_COLOR_ARRAY_LIST_IBM},
    {"GL_VERTEX_ARRAY_LIST_STRIDE_IBM", GL_VERTEX_ARRAY_LIST_STRIDE_IBM},
    {"GL_NORMAL_ARRAY_LIST_STRIDE_IBM", GL_NORMAL_ARRAY_LIST_STRIDE_IBM},
    {"GL_COLOR_ARRAY_LIST_STRIDE_IBM", GL_COLOR_ARRAY_LIST_STRIDE_IBM},
    {"GL_INDEX_ARRAY_LIST_STRIDE_IBM", GL_INDEX_ARRAY_LIST_STRIDE_IBM},
    {"GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM", GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM},
    {"GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM", GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM},
    {"GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM", GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM},
    {"GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM", GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM},
    {"GL_PREFER_DOUBLEBUFFER_HINT_PGI", GL_PREFER_DOUBLEBUFFER_HINT_PGI},
    {"GL_CONSERVE_MEMORY_HINT_PGI", GL_CONSERVE_MEMORY_HINT_PGI},
    {"GL_RECLAIM_MEMORY_HINT_PGI", GL_RECLAIM_MEMORY_HINT_PGI},
    {"GL_NATIVE_GRAPHICS_HANDLE_PGI", GL_NATIVE_GRAPHICS_HANDLE_PGI},
    {"GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI", GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI},
    {"GL_NATIVE_GRAPHICS_END_HINT_PGI", GL_NATIVE_GRAPHICS_END_HINT_PGI},
    {"GL_ALWAYS_FAST_HINT_PGI", GL_ALWAYS_FAST_HINT_PGI},
    {"GL_ALWAYS_SOFT_HINT_PGI", GL_ALWAYS_SOFT_HINT_PGI},
    {"GL_ALLOW_DRAW_OBJ_HINT_PGI", GL_ALLOW_DRAW_OBJ_HINT_PGI},
    {"GL_ALLOW_DRAW_WIN_HINT_PGI", GL_ALLOW_DRAW_WIN_HINT_PGI},
    {"GL_ALLOW_DRAW_FRG_HINT_PGI", GL_ALLOW_DRAW_FRG_HINT_PGI},
    {"GL_ALLOW_DRAW_MEM_HINT_PGI", GL_ALLOW_DRAW_MEM_HINT_PGI},
    {"GL_STRICT_DEPTHFUNC_HINT_PGI", GL_STRICT_DEPTHFUNC_HINT_PGI},
    {"GL_STRICT_LIGHTING_HINT_PGI", GL_STRICT_LIGHTING_HINT_PGI},
    {"GL_STRICT_SCISSOR_HINT_PGI", GL_STRICT_SCISSOR_HINT_PGI},
    {"GL_FULL_STIPPLE_HINT_PGI", GL_FULL_STIPPLE_HINT_PGI},
    {"GL_CLIP_NEAR_HINT_PGI", GL_CLIP_NEAR_HINT_PGI},
    {"GL_CLIP_FAR_HINT_PGI", GL_CLIP_FAR_HINT_PGI},
    {"GL_WIDE_LINE_HINT_PGI", GL_WIDE_LINE_HINT_PGI},
    {"GL_BACK_NORMALS_HINT_PGI", GL_BACK_NORMALS_HINT_PGI},
    {"GL_VERTEX_DATA_HINT_PGI", GL_VERTEX_DATA_HINT_PGI},
    {"GL_VERTEX_CONSISTENT_HINT_PGI", GL_VERTEX_CONSISTENT_HINT_PGI},
    {"GL_MATERIAL_SIDE_HINT_PGI", GL_MATERIAL_SIDE_HINT_PGI},
    {"GL_MAX_VERTEX_HINT_PGI", GL_MAX_VERTEX_HINT_PGI},
    {"GL_INVALID_INDEX", GL_INVALID_INDEX},
};

static const trace::EnumSig _enumGLenum_sig = {
    1, 3522, _enumGLenum_values
};

static const trace::BitmaskFlag _bitmaskGLbitfield1_flags[] = {
    {"GL_ALL_ATTRIB_BITS", (unsigned long long)GL_ALL_ATTRIB_BITS},
    {"GL_CURRENT_BIT", (unsigned long long)GL_CURRENT_BIT},
    {"GL_POINT_BIT", (unsigned long long)GL_POINT_BIT},
    {"GL_LINE_BIT", (unsigned long long)GL_LINE_BIT},
    {"GL_POLYGON_BIT", (unsigned long long)GL_POLYGON_BIT},
    {"GL_POLYGON_STIPPLE_BIT", (unsigned long long)GL_POLYGON_STIPPLE_BIT},
    {"GL_PIXEL_MODE_BIT", (unsigned long long)GL_PIXEL_MODE_BIT},
    {"GL_LIGHTING_BIT", (unsigned long long)GL_LIGHTING_BIT},
    {"GL_FOG_BIT", (unsigned long long)GL_FOG_BIT},
    {"GL_DEPTH_BUFFER_BIT", (unsigned long long)GL_DEPTH_BUFFER_BIT},
    {"GL_ACCUM_BUFFER_BIT", (unsigned long long)GL_ACCUM_BUFFER_BIT},
    {"GL_STENCIL_BUFFER_BIT", (unsigned long long)GL_STENCIL_BUFFER_BIT},
    {"GL_VIEWPORT_BIT", (unsigned long long)GL_VIEWPORT_BIT},
    {"GL_TRANSFORM_BIT", (unsigned long long)GL_TRANSFORM_BIT},
    {"GL_ENABLE_BIT", (unsigned long long)GL_ENABLE_BIT},
    {"GL_COLOR_BUFFER_BIT", (unsigned long long)GL_COLOR_BUFFER_BIT},
    {"GL_HINT_BIT", (unsigned long long)GL_HINT_BIT},
    {"GL_EVAL_BIT", (unsigned long long)GL_EVAL_BIT},
    {"GL_LIST_BIT", (unsigned long long)GL_LIST_BIT},
    {"GL_TEXTURE_BIT", (unsigned long long)GL_TEXTURE_BIT},
    {"GL_SCISSOR_BIT", (unsigned long long)GL_SCISSOR_BIT},
    {"GL_MULTISAMPLE_BIT", (unsigned long long)GL_MULTISAMPLE_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield1_sig = {
    0, 22, _bitmaskGLbitfield1_flags
};

static const trace::EnumValue _enumGLboolean_values[] = {
    {"GL_TRUE", GL_TRUE},
    {"GL_FALSE", GL_FALSE},
};

static const trace::EnumSig _enumGLboolean_sig = {
    0, 2, _enumGLboolean_values
};

static const trace::EnumValue _enumGLenum2_values[] = {
    {"GL_NO_ERROR", GL_NO_ERROR},
    {"GL_INVALID_ENUM", GL_INVALID_ENUM},
    {"GL_INVALID_VALUE", GL_INVALID_VALUE},
    {"GL_INVALID_OPERATION", GL_INVALID_OPERATION},
    {"GL_STACK_OVERFLOW", GL_STACK_OVERFLOW},
    {"GL_STACK_UNDERFLOW", GL_STACK_UNDERFLOW},
    {"GL_OUT_OF_MEMORY", GL_OUT_OF_MEMORY},
    {"GL_INVALID_FRAMEBUFFER_OPERATION", GL_INVALID_FRAMEBUFFER_OPERATION},
    {"GL_TABLE_TOO_LARGE", GL_TABLE_TOO_LARGE},
};

static const trace::EnumSig _enumGLenum2_sig = {
    3, 9, _enumGLenum2_values
};

static const trace::EnumValue _enumGLenum1_values[] = {
    {"GL_POINTS", GL_POINTS},
    {"GL_LINES", GL_LINES},
    {"GL_LINE_LOOP", GL_LINE_LOOP},
    {"GL_LINE_STRIP", GL_LINE_STRIP},
    {"GL_TRIANGLES", GL_TRIANGLES},
    {"GL_TRIANGLE_STRIP", GL_TRIANGLE_STRIP},
    {"GL_TRIANGLE_FAN", GL_TRIANGLE_FAN},
    {"GL_QUADS", GL_QUADS},
    {"GL_QUAD_STRIP", GL_QUAD_STRIP},
    {"GL_POLYGON", GL_POLYGON},
    {"GL_LINES_ADJACENCY", GL_LINES_ADJACENCY},
    {"GL_LINE_STRIP_ADJACENCY", GL_LINE_STRIP_ADJACENCY},
    {"GL_TRIANGLES_ADJACENCY", GL_TRIANGLES_ADJACENCY},
    {"GL_TRIANGLE_STRIP_ADJACENCY", GL_TRIANGLE_STRIP_ADJACENCY},
    {"GL_PATCHES", GL_PATCHES},
};

static const trace::EnumSig _enumGLenum1_sig = {
    2, 15, _enumGLenum1_values
};

static const trace::EnumValue _enumGLint2_values[] = {
    {"GL_BGRA", GL_BGRA},
};

static const trace::EnumSig _enumGLint2_sig = {
    5, 1, _enumGLint2_values
};

static const trace::BitmaskFlag _bitmaskGLbitfield2_flags[] = {
    {"GL_CLIENT_ALL_ATTRIB_BITS", (unsigned long long)GL_CLIENT_ALL_ATTRIB_BITS},
    {"GL_CLIENT_PIXEL_STORE_BIT", (unsigned long long)GL_CLIENT_PIXEL_STORE_BIT},
    {"GL_CLIENT_VERTEX_ARRAY_BIT", (unsigned long long)GL_CLIENT_VERTEX_ARRAY_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield2_sig = {
    1, 3, _bitmaskGLbitfield2_flags
};

static void _write__GLvoid3(int selector, GLvoid * const & value) {
    switch (selector) {
    default:
    trace::localWriter.writePointer((uintptr_t)(GLvoid *)(value));
        break;
    case GL_COUNTER_TYPE_AMD:
    if ((GLenum *)(value)) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *(GLenum *)(value));
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
        break;
    case GL_PERCENTAGE_AMD:
    if ((float *)(value)) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*(float *)(value));
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
        break;
    case GL_COUNTER_RANGE_AMD:
    if ((float *)(value)) {
        size_t _cfloat = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cfloat);
        for (size_t _ifloat = 0; _ifloat < _cfloat; ++_ifloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat(((float *)(value))[_ifloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
        break;
    }
}

static const trace::BitmaskFlag _bitmaskGLbitfield10_flags[] = {
    {"GL_TEXTURE_STORAGE_SPARSE_BIT_AMD", (unsigned long long)GL_TEXTURE_STORAGE_SPARSE_BIT_AMD},
};

static const trace::BitmaskSig _bitmaskGLbitfield10_sig = {
    9, 1, _bitmaskGLbitfield10_flags
};

static const trace::BitmaskFlag _bitmaskGLbitfield6_flags[] = {
    {"GL_SYNC_FLUSH_COMMANDS_BIT", (unsigned long long)GL_SYNC_FLUSH_COMMANDS_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield6_sig = {
    5, 1, _bitmaskGLbitfield6_flags
};

static const trace::BitmaskFlag _bitmaskGLbitfield7_flags[] = {
    {"GL_ALL_BARRIER_BITS", (unsigned long long)GL_ALL_BARRIER_BITS},
    {"GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT", (unsigned long long)GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT},
    {"GL_ELEMENT_ARRAY_BARRIER_BIT", (unsigned long long)GL_ELEMENT_ARRAY_BARRIER_BIT},
    {"GL_UNIFORM_BARRIER_BIT", (unsigned long long)GL_UNIFORM_BARRIER_BIT},
    {"GL_TEXTURE_FETCH_BARRIER_BIT", (unsigned long long)GL_TEXTURE_FETCH_BARRIER_BIT},
    {"GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV", (unsigned long long)GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV},
    {"GL_SHADER_IMAGE_ACCESS_BARRIER_BIT", (unsigned long long)GL_SHADER_IMAGE_ACCESS_BARRIER_BIT},
    {"GL_COMMAND_BARRIER_BIT", (unsigned long long)GL_COMMAND_BARRIER_BIT},
    {"GL_PIXEL_BUFFER_BARRIER_BIT", (unsigned long long)GL_PIXEL_BUFFER_BARRIER_BIT},
    {"GL_TEXTURE_UPDATE_BARRIER_BIT", (unsigned long long)GL_TEXTURE_UPDATE_BARRIER_BIT},
    {"GL_BUFFER_UPDATE_BARRIER_BIT", (unsigned long long)GL_BUFFER_UPDATE_BARRIER_BIT},
    {"GL_FRAMEBUFFER_BARRIER_BIT", (unsigned long long)GL_FRAMEBUFFER_BARRIER_BIT},
    {"GL_TRANSFORM_FEEDBACK_BARRIER_BIT", (unsigned long long)GL_TRANSFORM_FEEDBACK_BARRIER_BIT},
    {"GL_ATOMIC_COUNTER_BARRIER_BIT", (unsigned long long)GL_ATOMIC_COUNTER_BARRIER_BIT},
    {"GL_SHADER_STORAGE_BARRIER_BIT", (unsigned long long)GL_SHADER_STORAGE_BARRIER_BIT},
    {"GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT", (unsigned long long)GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT},
    {"GL_QUERY_BUFFER_BARRIER_BIT", (unsigned long long)GL_QUERY_BUFFER_BARRIER_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield7_sig = {
    6, 17, _bitmaskGLbitfield7_flags
};

static const trace::BitmaskFlag _bitmaskGLbitfield5_flags[] = {
    {"GL_MAP_READ_BIT", (unsigned long long)GL_MAP_READ_BIT},
    {"GL_MAP_WRITE_BIT", (unsigned long long)GL_MAP_WRITE_BIT},
    {"GL_MAP_PERSISTENT_BIT", (unsigned long long)GL_MAP_PERSISTENT_BIT},
    {"GL_MAP_COHERENT_BIT", (unsigned long long)GL_MAP_COHERENT_BIT},
    {"GL_DYNAMIC_STORAGE_BIT", (unsigned long long)GL_DYNAMIC_STORAGE_BIT},
    {"GL_CLIENT_STORAGE_BIT", (unsigned long long)GL_CLIENT_STORAGE_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield5_sig = {
    4, 6, _bitmaskGLbitfield5_flags
};

static const trace::BitmaskFlag _bitmaskGLbitfield4_flags[] = {
    {"GL_MAP_READ_BIT", (unsigned long long)GL_MAP_READ_BIT},
    {"GL_MAP_WRITE_BIT", (unsigned long long)GL_MAP_WRITE_BIT},
    {"GL_MAP_INVALIDATE_RANGE_BIT", (unsigned long long)GL_MAP_INVALIDATE_RANGE_BIT},
    {"GL_MAP_INVALIDATE_BUFFER_BIT", (unsigned long long)GL_MAP_INVALIDATE_BUFFER_BIT},
    {"GL_MAP_FLUSH_EXPLICIT_BIT", (unsigned long long)GL_MAP_FLUSH_EXPLICIT_BIT},
    {"GL_MAP_UNSYNCHRONIZED_BIT", (unsigned long long)GL_MAP_UNSYNCHRONIZED_BIT},
    {"GL_MAP_PERSISTENT_BIT", (unsigned long long)GL_MAP_PERSISTENT_BIT},
    {"GL_MAP_COHERENT_BIT", (unsigned long long)GL_MAP_COHERENT_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield4_sig = {
    3, 8, _bitmaskGLbitfield4_flags
};

static const trace::BitmaskFlag _bitmaskGLbitfield3_flags[] = {
    {"GL_ALL_SHADER_BITS", (unsigned long long)GL_ALL_SHADER_BITS},
    {"GL_VERTEX_SHADER_BIT", (unsigned long long)GL_VERTEX_SHADER_BIT},
    {"GL_FRAGMENT_SHADER_BIT", (unsigned long long)GL_FRAGMENT_SHADER_BIT},
    {"GL_GEOMETRY_SHADER_BIT", (unsigned long long)GL_GEOMETRY_SHADER_BIT},
    {"GL_TESS_CONTROL_SHADER_BIT", (unsigned long long)GL_TESS_CONTROL_SHADER_BIT},
    {"GL_TESS_EVALUATION_SHADER_BIT", (unsigned long long)GL_TESS_EVALUATION_SHADER_BIT},
    {"GL_COMPUTE_SHADER_BIT", (unsigned long long)GL_COMPUTE_SHADER_BIT},
};

static const trace::BitmaskSig _bitmaskGLbitfield3_sig = {
    2, 7, _bitmaskGLbitfield3_flags
};

static const trace::EnumValue _enumGLint3_values[] = {
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT},
    {"GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT", GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT},
};

static const trace::EnumSig _enumGLint3_sig = {
    6, 14, _enumGLint3_values
};

static const trace::EnumValue _enumGLenum3_values[] = {
    {"GL_KTX_FRONT_REGION", GL_KTX_FRONT_REGION},
    {"GL_KTX_BACK_REGION", GL_KTX_BACK_REGION},
    {"GL_KTX_Z_REGION", GL_KTX_Z_REGION},
    {"GL_KTX_STENCIL_REGION", GL_KTX_STENCIL_REGION},
};

static const trace::EnumSig _enumGLenum3_sig = {
    4, 4, _enumGLenum3_values
};

static const trace::BitmaskFlag _bitmaskGLbitfield9_flags[] = {
    {"GL_BOLD_BIT_NV", (unsigned long long)GL_BOLD_BIT_NV},
    {"GL_ITALIC_BIT_NV", (unsigned long long)GL_ITALIC_BIT_NV},
};

static const trace::BitmaskSig _bitmaskGLbitfield9_sig = {
    8, 2, _bitmaskGLbitfield9_flags
};

static const trace::BitmaskFlag _bitmaskGLbitfield8_flags[] = {
    {"GL_GLYPH_WIDTH_BIT_NV", (unsigned long long)GL_GLYPH_WIDTH_BIT_NV},
    {"GL_GLYPH_HEIGHT_BIT_NV", (unsigned long long)GL_GLYPH_HEIGHT_BIT_NV},
    {"GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV", (unsigned long long)GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV},
    {"GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV", (unsigned long long)GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV},
    {"GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV", (unsigned long long)GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV},
    {"GL_GLYPH_VERTICAL_BEARING_X_BIT_NV", (unsigned long long)GL_GLYPH_VERTICAL_BEARING_X_BIT_NV},
    {"GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV", (unsigned long long)GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV},
    {"GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV", (unsigned long long)GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV},
    {"GL_GLYPH_HAS_KERNING_BIT_NV", (unsigned long long)GL_GLYPH_HAS_KERNING_BIT_NV},
    {"GL_FONT_X_MIN_BOUNDS_BIT_NV", (unsigned long long)GL_FONT_X_MIN_BOUNDS_BIT_NV},
    {"GL_FONT_Y_MIN_BOUNDS_BIT_NV", (unsigned long long)GL_FONT_Y_MIN_BOUNDS_BIT_NV},
    {"GL_FONT_X_MAX_BOUNDS_BIT_NV", (unsigned long long)GL_FONT_X_MAX_BOUNDS_BIT_NV},
    {"GL_FONT_Y_MAX_BOUNDS_BIT_NV", (unsigned long long)GL_FONT_Y_MAX_BOUNDS_BIT_NV},
    {"GL_FONT_UNITS_PER_EM_BIT_NV", (unsigned long long)GL_FONT_UNITS_PER_EM_BIT_NV},
    {"GL_FONT_ASCENDER_BIT_NV", (unsigned long long)GL_FONT_ASCENDER_BIT_NV},
    {"GL_FONT_DESCENDER_BIT_NV", (unsigned long long)GL_FONT_DESCENDER_BIT_NV},
    {"GL_FONT_HEIGHT_BIT_NV", (unsigned long long)GL_FONT_HEIGHT_BIT_NV},
    {"GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV", (unsigned long long)GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV},
    {"GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV", (unsigned long long)GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV},
    {"GL_FONT_UNDERLINE_POSITION_BIT_NV", (unsigned long long)GL_FONT_UNDERLINE_POSITION_BIT_NV},
    {"GL_FONT_UNDERLINE_THICKNESS_BIT_NV", (unsigned long long)GL_FONT_UNDERLINE_THICKNESS_BIT_NV},
    {"GL_FONT_HAS_KERNING_BIT_NV", (unsigned long long)GL_FONT_HAS_KERNING_BIT_NV},
};

static const trace::BitmaskSig _bitmaskGLbitfield8_sig = {
    7, 22, _bitmaskGLbitfield8_flags
};


static const char * _eglChooseConfig_args[5] = {"dpy", "attrib_list", "configs", "config_size", "num_config"};
static const trace::FunctionSig _eglChooseConfig_sig = {4, "eglChooseConfig", 5, _eglChooseConfig_args};

static const char * _eglCopyBuffers_args[3] = {"dpy", "surface", "target"};
static const trace::FunctionSig _eglCopyBuffers_sig = {5, "eglCopyBuffers", 3, _eglCopyBuffers_args};

static const char * _eglCreateContext_args[4] = {"dpy", "config", "share_context", "attrib_list"};
static const trace::FunctionSig _eglCreateContext_sig = {6, "eglCreateContext", 4, _eglCreateContext_args};

static const char * _eglCreatePbufferSurface_args[3] = {"dpy", "config", "attrib_list"};
static const trace::FunctionSig _eglCreatePbufferSurface_sig = {7, "eglCreatePbufferSurface", 3, _eglCreatePbufferSurface_args};

static const char * _eglCreatePixmapSurface_args[4] = {"dpy", "config", "pixmap", "attrib_list"};
static const trace::FunctionSig _eglCreatePixmapSurface_sig = {8, "eglCreatePixmapSurface", 4, _eglCreatePixmapSurface_args};

static const char * _eglCreateWindowSurface_args[4] = {"dpy", "config", "win", "attrib_list"};
static const trace::FunctionSig _eglCreateWindowSurface_sig = {9, "eglCreateWindowSurface", 4, _eglCreateWindowSurface_args};

static const char * _eglDestroyContext_args[2] = {"dpy", "ctx"};
static const trace::FunctionSig _eglDestroyContext_sig = {10, "eglDestroyContext", 2, _eglDestroyContext_args};

static const char * _eglDestroySurface_args[2] = {"dpy", "surface"};
static const trace::FunctionSig _eglDestroySurface_sig = {11, "eglDestroySurface", 2, _eglDestroySurface_args};

static const char * _eglGetConfigAttrib_args[4] = {"dpy", "config", "attribute", "value"};
static const trace::FunctionSig _eglGetConfigAttrib_sig = {12, "eglGetConfigAttrib", 4, _eglGetConfigAttrib_args};

static const char * _eglGetConfigs_args[4] = {"dpy", "configs", "config_size", "num_config"};
static const trace::FunctionSig _eglGetConfigs_sig = {13, "eglGetConfigs", 4, _eglGetConfigs_args};

static const char ** _eglGetCurrentDisplay_args = NULL;
static const trace::FunctionSig _eglGetCurrentDisplay_sig = {14, "eglGetCurrentDisplay", 0, _eglGetCurrentDisplay_args};

static const char * _eglGetCurrentSurface_args[1] = {"readdraw"};
static const trace::FunctionSig _eglGetCurrentSurface_sig = {15, "eglGetCurrentSurface", 1, _eglGetCurrentSurface_args};

static const char * _eglGetDisplay_args[1] = {"display_id"};
static const trace::FunctionSig _eglGetDisplay_sig = {16, "eglGetDisplay", 1, _eglGetDisplay_args};

static const char ** _eglGetError_args = NULL;
static const trace::FunctionSig _eglGetError_sig = {17, "eglGetError", 0, _eglGetError_args};

static const char * _eglGetProcAddress_args[1] = {"procname"};
static const trace::FunctionSig _eglGetProcAddress_sig = {18, "eglGetProcAddress", 1, _eglGetProcAddress_args};

static const char * _eglInitialize_args[3] = {"dpy", "major", "minor"};
static const trace::FunctionSig _eglInitialize_sig = {19, "eglInitialize", 3, _eglInitialize_args};

static const char * _eglMakeCurrent_args[4] = {"dpy", "draw", "read", "ctx"};
static const trace::FunctionSig _eglMakeCurrent_sig = {20, "eglMakeCurrent", 4, _eglMakeCurrent_args};

static const char * _eglQueryContext_args[4] = {"dpy", "ctx", "attribute", "value"};
static const trace::FunctionSig _eglQueryContext_sig = {21, "eglQueryContext", 4, _eglQueryContext_args};

static const char * _eglQueryString_args[2] = {"dpy", "name"};
static const trace::FunctionSig _eglQueryString_sig = {22, "eglQueryString", 2, _eglQueryString_args};

static const char * _eglQuerySurface_args[4] = {"dpy", "surface", "attribute", "value"};
static const trace::FunctionSig _eglQuerySurface_sig = {23, "eglQuerySurface", 4, _eglQuerySurface_args};

static const char * _eglSwapBuffers_args[2] = {"dpy", "surface"};
static const trace::FunctionSig _eglSwapBuffers_sig = {24, "eglSwapBuffers", 2, _eglSwapBuffers_args};

static const char * _eglTerminate_args[1] = {"dpy"};
static const trace::FunctionSig _eglTerminate_sig = {25, "eglTerminate", 1, _eglTerminate_args};

static const char ** _eglWaitGL_args = NULL;
static const trace::FunctionSig _eglWaitGL_sig = {26, "eglWaitGL", 0, _eglWaitGL_args};

static const char * _eglWaitNative_args[1] = {"engine"};
static const trace::FunctionSig _eglWaitNative_sig = {27, "eglWaitNative", 1, _eglWaitNative_args};

static const char * _eglBindTexImage_args[3] = {"dpy", "surface", "buffer"};
static const trace::FunctionSig _eglBindTexImage_sig = {28, "eglBindTexImage", 3, _eglBindTexImage_args};

static const char * _eglReleaseTexImage_args[3] = {"dpy", "surface", "buffer"};
static const trace::FunctionSig _eglReleaseTexImage_sig = {29, "eglReleaseTexImage", 3, _eglReleaseTexImage_args};

static const char * _eglSurfaceAttrib_args[4] = {"dpy", "surface", "attribute", "value"};
static const trace::FunctionSig _eglSurfaceAttrib_sig = {30, "eglSurfaceAttrib", 4, _eglSurfaceAttrib_args};

static const char * _eglSwapInterval_args[2] = {"dpy", "interval"};
static const trace::FunctionSig _eglSwapInterval_sig = {31, "eglSwapInterval", 2, _eglSwapInterval_args};

static const char * _eglBindAPI_args[1] = {"api"};
static const trace::FunctionSig _eglBindAPI_sig = {32, "eglBindAPI", 1, _eglBindAPI_args};

static const char ** _eglQueryAPI_args = NULL;
static const trace::FunctionSig _eglQueryAPI_sig = {33, "eglQueryAPI", 0, _eglQueryAPI_args};

static const char * _eglCreatePbufferFromClientBuffer_args[5] = {"dpy", "buftype", "buffer", "config", "attrib_list"};
static const trace::FunctionSig _eglCreatePbufferFromClientBuffer_sig = {34, "eglCreatePbufferFromClientBuffer", 5, _eglCreatePbufferFromClientBuffer_args};

static const char ** _eglReleaseThread_args = NULL;
static const trace::FunctionSig _eglReleaseThread_sig = {35, "eglReleaseThread", 0, _eglReleaseThread_args};

static const char ** _eglWaitClient_args = NULL;
static const trace::FunctionSig _eglWaitClient_sig = {36, "eglWaitClient", 0, _eglWaitClient_args};

static const char ** _eglGetCurrentContext_args = NULL;
static const trace::FunctionSig _eglGetCurrentContext_sig = {37, "eglGetCurrentContext", 0, _eglGetCurrentContext_args};

static const char * _eglCreateSync_args[3] = {"dpy", "type", "attrib_list"};
static const trace::FunctionSig _eglCreateSync_sig = {38, "eglCreateSync", 3, _eglCreateSync_args};

static const char * _eglDestroySync_args[2] = {"dpy", "sync"};
static const trace::FunctionSig _eglDestroySync_sig = {39, "eglDestroySync", 2, _eglDestroySync_args};

static const char * _eglClientWaitSync_args[4] = {"dpy", "sync", "flags", "timeout"};
static const trace::FunctionSig _eglClientWaitSync_sig = {40, "eglClientWaitSync", 4, _eglClientWaitSync_args};

static const char * _eglGetSyncAttrib_args[4] = {"dpy", "sync", "attribute", "value"};
static const trace::FunctionSig _eglGetSyncAttrib_sig = {41, "eglGetSyncAttrib", 4, _eglGetSyncAttrib_args};

static const char * _eglCreateImage_args[5] = {"dpy", "ctx", "target", "buffer", "attrib_list"};
static const trace::FunctionSig _eglCreateImage_sig = {42, "eglCreateImage", 5, _eglCreateImage_args};

static const char * _eglDestroyImage_args[2] = {"dpy", "image"};
static const trace::FunctionSig _eglDestroyImage_sig = {43, "eglDestroyImage", 2, _eglDestroyImage_args};

static const char * _eglGetPlatformDisplay_args[3] = {"platform", "native_display", "attrib_list"};
static const trace::FunctionSig _eglGetPlatformDisplay_sig = {44, "eglGetPlatformDisplay", 3, _eglGetPlatformDisplay_args};

static const char * _eglCreatePlatformWindowSurface_args[4] = {"dpy", "config", "native_window", "attrib_list"};
static const trace::FunctionSig _eglCreatePlatformWindowSurface_sig = {45, "eglCreatePlatformWindowSurface", 4, _eglCreatePlatformWindowSurface_args};

static const char * _eglCreatePlatformPixmapSurface_args[4] = {"dpy", "config", "native_pixmap", "attrib_list"};
static const trace::FunctionSig _eglCreatePlatformPixmapSurface_sig = {46, "eglCreatePlatformPixmapSurface", 4, _eglCreatePlatformPixmapSurface_args};

static const char * _eglWaitSync_args[3] = {"dpy", "sync", "flags"};
static const trace::FunctionSig _eglWaitSync_sig = {47, "eglWaitSync", 3, _eglWaitSync_args};

static const char * _eglDupNativeFenceFDANDROID_args[2] = {"dpy", "sync"};
static const trace::FunctionSig _eglDupNativeFenceFDANDROID_sig = {48, "eglDupNativeFenceFDANDROID", 2, _eglDupNativeFenceFDANDROID_args};

static const char * _eglQuerySurfacePointerANGLE_args[4] = {"dpy", "surface", "attribute", "value"};
static const trace::FunctionSig _eglQuerySurfacePointerANGLE_sig = {49, "eglQuerySurfacePointerANGLE", 4, _eglQuerySurfacePointerANGLE_args};

static const char * _eglGetSyncValuesCHROMIUM_args[5] = {"dpy", "surface", "ust", "msc", "sbc"};
static const trace::FunctionSig _eglGetSyncValuesCHROMIUM_sig = {50, "eglGetSyncValuesCHROMIUM", 5, _eglGetSyncValuesCHROMIUM_args};

static const char * _eglQueryDevicesEXT_args[3] = {"max_devices", "devices", "num_devices"};
static const trace::FunctionSig _eglQueryDevicesEXT_sig = {51, "eglQueryDevicesEXT", 3, _eglQueryDevicesEXT_args};

static const char * _eglQueryDeviceAttribEXT_args[3] = {"device", "attribute", "value"};
static const trace::FunctionSig _eglQueryDeviceAttribEXT_sig = {52, "eglQueryDeviceAttribEXT", 3, _eglQueryDeviceAttribEXT_args};

static const char * _eglQueryDeviceStringEXT_args[2] = {"device", "name"};
static const trace::FunctionSig _eglQueryDeviceStringEXT_sig = {53, "eglQueryDeviceStringEXT", 2, _eglQueryDeviceStringEXT_args};

static const char * _eglQueryDisplayAttribEXT_args[3] = {"dpy", "attribute", "value"};
static const trace::FunctionSig _eglQueryDisplayAttribEXT_sig = {54, "eglQueryDisplayAttribEXT", 3, _eglQueryDisplayAttribEXT_args};

static const char * _eglQueryDmaBufFormatsEXT_args[4] = {"dpy", "max_formats", "formats", "num_formats"};
static const trace::FunctionSig _eglQueryDmaBufFormatsEXT_sig = {55, "eglQueryDmaBufFormatsEXT", 4, _eglQueryDmaBufFormatsEXT_args};

static const char * _eglQueryDmaBufModifiersEXT_args[6] = {"dpy", "format", "max_modifiers", "modifiers", "external_only", "num_modifiers"};
static const trace::FunctionSig _eglQueryDmaBufModifiersEXT_sig = {56, "eglQueryDmaBufModifiersEXT", 6, _eglQueryDmaBufModifiersEXT_args};

static const char * _eglGetPlatformDisplayEXT_args[3] = {"platform", "native_display", "attrib_list"};
static const trace::FunctionSig _eglGetPlatformDisplayEXT_sig = {57, "eglGetPlatformDisplayEXT", 3, _eglGetPlatformDisplayEXT_args};

static const char * _eglCreatePlatformWindowSurfaceEXT_args[4] = {"dpy", "config", "native_window", "attrib_list"};
static const trace::FunctionSig _eglCreatePlatformWindowSurfaceEXT_sig = {58, "eglCreatePlatformWindowSurfaceEXT", 4, _eglCreatePlatformWindowSurfaceEXT_args};

static const char * _eglCreatePlatformPixmapSurfaceEXT_args[4] = {"dpy", "config", "native_pixmap", "attrib_list"};
static const trace::FunctionSig _eglCreatePlatformPixmapSurfaceEXT_sig = {59, "eglCreatePlatformPixmapSurfaceEXT", 4, _eglCreatePlatformPixmapSurfaceEXT_args};

static const char * _eglSetDamageRegionKHR_args[4] = {"dpy", "surface", "rects", "n_rects"};
static const trace::FunctionSig _eglSetDamageRegionKHR_sig = {60, "eglSetDamageRegionKHR", 4, _eglSetDamageRegionKHR_args};

static const char * _eglSwapBuffersWithDamageEXT_args[4] = {"dpy", "surface", "rects", "n_rects"};
static const trace::FunctionSig _eglSwapBuffersWithDamageEXT_sig = {61, "eglSwapBuffersWithDamageEXT", 4, _eglSwapBuffersWithDamageEXT_args};

static const char * _eglCreatePixmapSurfaceHI_args[3] = {"dpy", "config", "pixmap"};
static const trace::FunctionSig _eglCreatePixmapSurfaceHI_sig = {62, "eglCreatePixmapSurfaceHI", 3, _eglCreatePixmapSurfaceHI_args};

static const char * _eglCreateSyncKHR_args[3] = {"dpy", "type", "attrib_list"};
static const trace::FunctionSig _eglCreateSyncKHR_sig = {63, "eglCreateSyncKHR", 3, _eglCreateSyncKHR_args};

static const char * _eglDestroySyncKHR_args[2] = {"dpy", "sync"};
static const trace::FunctionSig _eglDestroySyncKHR_sig = {64, "eglDestroySyncKHR", 2, _eglDestroySyncKHR_args};

static const char * _eglClientWaitSyncKHR_args[4] = {"dpy", "sync", "flags", "timeout"};
static const trace::FunctionSig _eglClientWaitSyncKHR_sig = {65, "eglClientWaitSyncKHR", 4, _eglClientWaitSyncKHR_args};

static const char * _eglGetSyncAttribKHR_args[4] = {"dpy", "sync", "attribute", "value"};
static const trace::FunctionSig _eglGetSyncAttribKHR_sig = {66, "eglGetSyncAttribKHR", 4, _eglGetSyncAttribKHR_args};

static const char * _eglCreateImageKHR_args[5] = {"dpy", "ctx", "target", "buffer", "attrib_list"};
static const trace::FunctionSig _eglCreateImageKHR_sig = {67, "eglCreateImageKHR", 5, _eglCreateImageKHR_args};

static const char * _eglDestroyImageKHR_args[2] = {"dpy", "image"};
static const trace::FunctionSig _eglDestroyImageKHR_sig = {68, "eglDestroyImageKHR", 2, _eglDestroyImageKHR_args};

static const char * _eglLockSurfaceKHR_args[3] = {"dpy", "surface", "attrib_list"};
static const trace::FunctionSig _eglLockSurfaceKHR_sig = {69, "eglLockSurfaceKHR", 3, _eglLockSurfaceKHR_args};

static const char * _eglUnlockSurfaceKHR_args[2] = {"dpy", "surface"};
static const trace::FunctionSig _eglUnlockSurfaceKHR_sig = {70, "eglUnlockSurfaceKHR", 2, _eglUnlockSurfaceKHR_args};

static const char * _eglSignalSyncKHR_args[3] = {"dpy", "sync", "mode"};
static const trace::FunctionSig _eglSignalSyncKHR_sig = {71, "eglSignalSyncKHR", 3, _eglSignalSyncKHR_args};

static const char * _eglSwapBuffersWithDamageKHR_args[4] = {"dpy", "surface", "rects", "n_rects"};
static const trace::FunctionSig _eglSwapBuffersWithDamageKHR_sig = {72, "eglSwapBuffersWithDamageKHR", 4, _eglSwapBuffersWithDamageKHR_args};

static const char * _eglWaitSyncKHR_args[3] = {"dpy", "sync", "flags"};
static const trace::FunctionSig _eglWaitSyncKHR_sig = {73, "eglWaitSyncKHR", 3, _eglWaitSyncKHR_args};

static const char * _eglCreateFenceSyncNV_args[3] = {"dpy", "condition", "attrib_list"};
static const trace::FunctionSig _eglCreateFenceSyncNV_sig = {74, "eglCreateFenceSyncNV", 3, _eglCreateFenceSyncNV_args};

static const char * _eglDestroySyncNV_args[1] = {"sync"};
static const trace::FunctionSig _eglDestroySyncNV_sig = {75, "eglDestroySyncNV", 1, _eglDestroySyncNV_args};

static const char * _eglFenceNV_args[1] = {"sync"};
static const trace::FunctionSig _eglFenceNV_sig = {76, "eglFenceNV", 1, _eglFenceNV_args};

static const char * _eglClientWaitSyncNV_args[3] = {"sync", "flags", "timeout"};
static const trace::FunctionSig _eglClientWaitSyncNV_sig = {77, "eglClientWaitSyncNV", 3, _eglClientWaitSyncNV_args};

static const char * _eglSignalSyncNV_args[2] = {"sync", "mode"};
static const trace::FunctionSig _eglSignalSyncNV_sig = {78, "eglSignalSyncNV", 2, _eglSignalSyncNV_args};

static const char * _eglGetSyncAttribNV_args[3] = {"sync", "attribute", "value"};
static const trace::FunctionSig _eglGetSyncAttribNV_sig = {79, "eglGetSyncAttribNV", 3, _eglGetSyncAttribNV_args};

static const char * _eglCreateDRMImageMESA_args[2] = {"dpy", "attrib_list"};
static const trace::FunctionSig _eglCreateDRMImageMESA_sig = {80, "eglCreateDRMImageMESA", 2, _eglCreateDRMImageMESA_args};

static const char * _eglExportDRMImageMESA_args[5] = {"dpy", "image", "name", "handle", "stride"};
static const trace::FunctionSig _eglExportDRMImageMESA_sig = {81, "eglExportDRMImageMESA", 5, _eglExportDRMImageMESA_args};

static const char * _eglExportDMABUFImageQueryMESA_args[5] = {"dpy", "image", "fourcc", "num_planes", "modifiers"};
static const trace::FunctionSig _eglExportDMABUFImageQueryMESA_sig = {82, "eglExportDMABUFImageQueryMESA", 5, _eglExportDMABUFImageQueryMESA_args};

static const char * _eglExportDMABUFImageMESA_args[5] = {"dpy", "image", "fds", "strides", "offsets"};
static const trace::FunctionSig _eglExportDMABUFImageMESA_sig = {83, "eglExportDMABUFImageMESA", 5, _eglExportDMABUFImageMESA_args};

static const char * _eglPostSubBufferNV_args[6] = {"dpy", "surface", "x", "y", "width", "height"};
static const trace::FunctionSig _eglPostSubBufferNV_sig = {84, "eglPostSubBufferNV", 6, _eglPostSubBufferNV_args};

static const char ** _eglGetSystemTimeFrequencyNV_args = NULL;
static const trace::FunctionSig _eglGetSystemTimeFrequencyNV_sig = {85, "eglGetSystemTimeFrequencyNV", 0, _eglGetSystemTimeFrequencyNV_args};

static const char ** _eglGetSystemTimeNV_args = NULL;
static const trace::FunctionSig _eglGetSystemTimeNV_sig = {86, "eglGetSystemTimeNV", 0, _eglGetSystemTimeNV_args};

static const char * _glEGLImageTargetTexture2DOES_args[2] = {"target", "image"};
static const trace::FunctionSig _glEGLImageTargetTexture2DOES_sig = {87, "glEGLImageTargetTexture2DOES", 2, _glEGLImageTargetTexture2DOES_args};

static const char * _glEGLImageTargetRenderbufferStorageOES_args[2] = {"target", "image"};
static const trace::FunctionSig _glEGLImageTargetRenderbufferStorageOES_sig = {88, "glEGLImageTargetRenderbufferStorageOES", 2, _glEGLImageTargetRenderbufferStorageOES_args};

static const char * _eglQuerySupportedCompressionRatesEXT_args[6] = {"dpy", "config", "attrib_list", "rates", "rate_size", "num_rates"};
static const trace::FunctionSig _eglQuerySupportedCompressionRatesEXT_sig = {89, "eglQuerySupportedCompressionRatesEXT", 6, _eglQuerySupportedCompressionRatesEXT_args};

static const char * _eglBindWaylandDisplayWL_args[2] = {"dpy", "display"};
static const trace::FunctionSig _eglBindWaylandDisplayWL_sig = {90, "eglBindWaylandDisplayWL", 2, _eglBindWaylandDisplayWL_args};

static const char * _eglUnbindWaylandDisplayWL_args[2] = {"dpy", "display"};
static const trace::FunctionSig _eglUnbindWaylandDisplayWL_sig = {91, "eglUnbindWaylandDisplayWL", 2, _eglUnbindWaylandDisplayWL_args};

static const char * _eglQueryWaylandBufferWL_args[4] = {"dpy", "buffer", "attribute", "value"};
static const trace::FunctionSig _eglQueryWaylandBufferWL_sig = {92, "eglQueryWaylandBufferWL", 4, _eglQueryWaylandBufferWL_args};

static const char * _eglDebugMessageControlKHR_args[2] = {"callback", "attrib_list"};
static const trace::FunctionSig _eglDebugMessageControlKHR_sig = {93, "eglDebugMessageControlKHR", 2, _eglDebugMessageControlKHR_args};

static const char * _eglQueryDebugKHR_args[2] = {"attribute", "value"};
static const trace::FunctionSig _eglQueryDebugKHR_sig = {94, "eglQueryDebugKHR", 2, _eglQueryDebugKHR_args};

static const char * _eglLabelObjectKHR_args[4] = {"display", "objectType", "object", "label"};
static const trace::FunctionSig _eglLabelObjectKHR_sig = {95, "eglLabelObjectKHR", 4, _eglLabelObjectKHR_args};

static const char * _glCullFace_args[1] = {"mode"};
static const trace::FunctionSig _glCullFace_sig = {96, "glCullFace", 1, _glCullFace_args};

static const char * _glFrontFace_args[1] = {"mode"};
static const trace::FunctionSig _glFrontFace_sig = {97, "glFrontFace", 1, _glFrontFace_args};

static const char * _glHint_args[2] = {"target", "mode"};
static const trace::FunctionSig _glHint_sig = {98, "glHint", 2, _glHint_args};

static const char * _glLineWidth_args[1] = {"width"};
static const trace::FunctionSig _glLineWidth_sig = {99, "glLineWidth", 1, _glLineWidth_args};

static const char * _glPointSize_args[1] = {"size"};
static const trace::FunctionSig _glPointSize_sig = {100, "glPointSize", 1, _glPointSize_args};

static const char * _glPolygonMode_args[2] = {"face", "mode"};
static const trace::FunctionSig _glPolygonMode_sig = {101, "glPolygonMode", 2, _glPolygonMode_args};

static const char * _glScissor_args[4] = {"x", "y", "width", "height"};
static const trace::FunctionSig _glScissor_sig = {102, "glScissor", 4, _glScissor_args};

static const char * _glTexParameterf_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glTexParameterf_sig = {103, "glTexParameterf", 3, _glTexParameterf_args};

static const char * _glTexParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameterfv_sig = {104, "glTexParameterfv", 3, _glTexParameterfv_args};

static const char * _glTexParameteri_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glTexParameteri_sig = {105, "glTexParameteri", 3, _glTexParameteri_args};

static const char * _glTexParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameteriv_sig = {106, "glTexParameteriv", 3, _glTexParameteriv_args};

static const char * _glTexImage1D_args[8] = {"target", "level", "internalformat", "width", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTexImage1D_sig = {107, "glTexImage1D", 8, _glTexImage1D_args};

static const char * _glTexImage2D_args[9] = {"target", "level", "internalformat", "width", "height", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTexImage2D_sig = {108, "glTexImage2D", 9, _glTexImage2D_args};

static const char * _glDrawBuffer_args[1] = {"mode"};
static const trace::FunctionSig _glDrawBuffer_sig = {109, "glDrawBuffer", 1, _glDrawBuffer_args};

static const char * _glClear_args[1] = {"mask"};
static const trace::FunctionSig _glClear_sig = {110, "glClear", 1, _glClear_args};

static const char * _glClearColor_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glClearColor_sig = {111, "glClearColor", 4, _glClearColor_args};

static const char * _glClearStencil_args[1] = {"s"};
static const trace::FunctionSig _glClearStencil_sig = {112, "glClearStencil", 1, _glClearStencil_args};

static const char * _glClearDepth_args[1] = {"depth"};
static const trace::FunctionSig _glClearDepth_sig = {113, "glClearDepth", 1, _glClearDepth_args};

static const char * _glStencilMask_args[1] = {"mask"};
static const trace::FunctionSig _glStencilMask_sig = {114, "glStencilMask", 1, _glStencilMask_args};

static const char * _glColorMask_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColorMask_sig = {115, "glColorMask", 4, _glColorMask_args};

static const char * _glDepthMask_args[1] = {"flag"};
static const trace::FunctionSig _glDepthMask_sig = {116, "glDepthMask", 1, _glDepthMask_args};

static const char * _glDisable_args[1] = {"cap"};
static const trace::FunctionSig _glDisable_sig = {117, "glDisable", 1, _glDisable_args};

static const char * _glEnable_args[1] = {"cap"};
static const trace::FunctionSig _glEnable_sig = {118, "glEnable", 1, _glEnable_args};

static const char ** _glFinish_args = NULL;
static const trace::FunctionSig _glFinish_sig = {119, "glFinish", 0, _glFinish_args};

static const char ** _glFlush_args = NULL;
static const trace::FunctionSig _glFlush_sig = {120, "glFlush", 0, _glFlush_args};

static const char * _glBlendFunc_args[2] = {"sfactor", "dfactor"};
static const trace::FunctionSig _glBlendFunc_sig = {121, "glBlendFunc", 2, _glBlendFunc_args};

static const char * _glLogicOp_args[1] = {"opcode"};
static const trace::FunctionSig _glLogicOp_sig = {122, "glLogicOp", 1, _glLogicOp_args};

static const char * _glStencilFunc_args[3] = {"func", "ref", "mask"};
static const trace::FunctionSig _glStencilFunc_sig = {123, "glStencilFunc", 3, _glStencilFunc_args};

static const char * _glStencilOp_args[3] = {"fail", "zfail", "zpass"};
static const trace::FunctionSig _glStencilOp_sig = {124, "glStencilOp", 3, _glStencilOp_args};

static const char * _glDepthFunc_args[1] = {"func"};
static const trace::FunctionSig _glDepthFunc_sig = {125, "glDepthFunc", 1, _glDepthFunc_args};

static const char * _glPixelStoref_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPixelStoref_sig = {126, "glPixelStoref", 2, _glPixelStoref_args};

static const char * _glPixelStorei_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPixelStorei_sig = {127, "glPixelStorei", 2, _glPixelStorei_args};

static const char * _glReadBuffer_args[1] = {"mode"};
static const trace::FunctionSig _glReadBuffer_sig = {128, "glReadBuffer", 1, _glReadBuffer_args};

static const char * _glReadPixels_args[7] = {"x", "y", "width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glReadPixels_sig = {129, "glReadPixels", 7, _glReadPixels_args};

static const char * _glGetBooleanv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetBooleanv_sig = {130, "glGetBooleanv", 2, _glGetBooleanv_args};

static const char * _glGetDoublev_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetDoublev_sig = {131, "glGetDoublev", 2, _glGetDoublev_args};

static const char ** _glGetError_args = NULL;
static const trace::FunctionSig _glGetError_sig = {132, "glGetError", 0, _glGetError_args};

static const char * _glGetFloatv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetFloatv_sig = {133, "glGetFloatv", 2, _glGetFloatv_args};

static const char * _glGetIntegerv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetIntegerv_sig = {134, "glGetIntegerv", 2, _glGetIntegerv_args};

static const char * _glGetString_args[1] = {"name"};
static const trace::FunctionSig _glGetString_sig = {135, "glGetString", 1, _glGetString_args};

static const char * _glGetTexImage_args[5] = {"target", "level", "format", "type", "pixels"};
static const trace::FunctionSig _glGetTexImage_sig = {136, "glGetTexImage", 5, _glGetTexImage_args};

static const char * _glGetTexParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterfv_sig = {137, "glGetTexParameterfv", 3, _glGetTexParameterfv_args};

static const char * _glGetTexParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameteriv_sig = {138, "glGetTexParameteriv", 3, _glGetTexParameteriv_args};

static const char * _glGetTexLevelParameterfv_args[4] = {"target", "level", "pname", "params"};
static const trace::FunctionSig _glGetTexLevelParameterfv_sig = {139, "glGetTexLevelParameterfv", 4, _glGetTexLevelParameterfv_args};

static const char * _glGetTexLevelParameteriv_args[4] = {"target", "level", "pname", "params"};
static const trace::FunctionSig _glGetTexLevelParameteriv_sig = {140, "glGetTexLevelParameteriv", 4, _glGetTexLevelParameteriv_args};

static const char * _glIsEnabled_args[1] = {"cap"};
static const trace::FunctionSig _glIsEnabled_sig = {141, "glIsEnabled", 1, _glIsEnabled_args};

static const char * _glDepthRange_args[2] = {"zNear", "zFar"};
static const trace::FunctionSig _glDepthRange_sig = {142, "glDepthRange", 2, _glDepthRange_args};

static const char * _glViewport_args[4] = {"x", "y", "width", "height"};
static const trace::FunctionSig _glViewport_sig = {143, "glViewport", 4, _glViewport_args};

static const char * _glNewList_args[2] = {"list", "mode"};
static const trace::FunctionSig _glNewList_sig = {144, "glNewList", 2, _glNewList_args};

static const char ** _glEndList_args = NULL;
static const trace::FunctionSig _glEndList_sig = {145, "glEndList", 0, _glEndList_args};

static const char * _glCallList_args[1] = {"list"};
static const trace::FunctionSig _glCallList_sig = {146, "glCallList", 1, _glCallList_args};

static const char * _glCallLists_args[3] = {"n", "type", "lists"};
static const trace::FunctionSig _glCallLists_sig = {147, "glCallLists", 3, _glCallLists_args};

static const char * _glDeleteLists_args[2] = {"list", "range"};
static const trace::FunctionSig _glDeleteLists_sig = {148, "glDeleteLists", 2, _glDeleteLists_args};

static const char * _glGenLists_args[1] = {"range"};
static const trace::FunctionSig _glGenLists_sig = {149, "glGenLists", 1, _glGenLists_args};

static const char * _glListBase_args[1] = {"base"};
static const trace::FunctionSig _glListBase_sig = {150, "glListBase", 1, _glListBase_args};

static const char * _glBegin_args[1] = {"mode"};
static const trace::FunctionSig _glBegin_sig = {151, "glBegin", 1, _glBegin_args};

static const char * _glBitmap_args[7] = {"width", "height", "xorig", "yorig", "xmove", "ymove", "bitmap"};
static const trace::FunctionSig _glBitmap_sig = {152, "glBitmap", 7, _glBitmap_args};

static const char * _glColor3b_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3b_sig = {153, "glColor3b", 3, _glColor3b_args};

static const char * _glColor3bv_args[1] = {"v"};
static const trace::FunctionSig _glColor3bv_sig = {154, "glColor3bv", 1, _glColor3bv_args};

static const char * _glColor3d_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3d_sig = {155, "glColor3d", 3, _glColor3d_args};

static const char * _glColor3dv_args[1] = {"v"};
static const trace::FunctionSig _glColor3dv_sig = {156, "glColor3dv", 1, _glColor3dv_args};

static const char * _glColor3f_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3f_sig = {157, "glColor3f", 3, _glColor3f_args};

static const char * _glColor3fv_args[1] = {"v"};
static const trace::FunctionSig _glColor3fv_sig = {158, "glColor3fv", 1, _glColor3fv_args};

static const char * _glColor3i_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3i_sig = {159, "glColor3i", 3, _glColor3i_args};

static const char * _glColor3iv_args[1] = {"v"};
static const trace::FunctionSig _glColor3iv_sig = {160, "glColor3iv", 1, _glColor3iv_args};

static const char * _glColor3s_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3s_sig = {161, "glColor3s", 3, _glColor3s_args};

static const char * _glColor3sv_args[1] = {"v"};
static const trace::FunctionSig _glColor3sv_sig = {162, "glColor3sv", 1, _glColor3sv_args};

static const char * _glColor3ub_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3ub_sig = {163, "glColor3ub", 3, _glColor3ub_args};

static const char * _glColor3ubv_args[1] = {"v"};
static const trace::FunctionSig _glColor3ubv_sig = {164, "glColor3ubv", 1, _glColor3ubv_args};

static const char * _glColor3ui_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3ui_sig = {165, "glColor3ui", 3, _glColor3ui_args};

static const char * _glColor3uiv_args[1] = {"v"};
static const trace::FunctionSig _glColor3uiv_sig = {166, "glColor3uiv", 1, _glColor3uiv_args};

static const char * _glColor3us_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3us_sig = {167, "glColor3us", 3, _glColor3us_args};

static const char * _glColor3usv_args[1] = {"v"};
static const trace::FunctionSig _glColor3usv_sig = {168, "glColor3usv", 1, _glColor3usv_args};

static const char * _glColor4b_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4b_sig = {169, "glColor4b", 4, _glColor4b_args};

static const char * _glColor4bv_args[1] = {"v"};
static const trace::FunctionSig _glColor4bv_sig = {170, "glColor4bv", 1, _glColor4bv_args};

static const char * _glColor4d_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4d_sig = {171, "glColor4d", 4, _glColor4d_args};

static const char * _glColor4dv_args[1] = {"v"};
static const trace::FunctionSig _glColor4dv_sig = {172, "glColor4dv", 1, _glColor4dv_args};

static const char * _glColor4f_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4f_sig = {173, "glColor4f", 4, _glColor4f_args};

static const char * _glColor4fv_args[1] = {"v"};
static const trace::FunctionSig _glColor4fv_sig = {174, "glColor4fv", 1, _glColor4fv_args};

static const char * _glColor4i_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4i_sig = {175, "glColor4i", 4, _glColor4i_args};

static const char * _glColor4iv_args[1] = {"v"};
static const trace::FunctionSig _glColor4iv_sig = {176, "glColor4iv", 1, _glColor4iv_args};

static const char * _glColor4s_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4s_sig = {177, "glColor4s", 4, _glColor4s_args};

static const char * _glColor4sv_args[1] = {"v"};
static const trace::FunctionSig _glColor4sv_sig = {178, "glColor4sv", 1, _glColor4sv_args};

static const char * _glColor4ub_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4ub_sig = {179, "glColor4ub", 4, _glColor4ub_args};

static const char * _glColor4ubv_args[1] = {"v"};
static const trace::FunctionSig _glColor4ubv_sig = {180, "glColor4ubv", 1, _glColor4ubv_args};

static const char * _glColor4ui_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4ui_sig = {181, "glColor4ui", 4, _glColor4ui_args};

static const char * _glColor4uiv_args[1] = {"v"};
static const trace::FunctionSig _glColor4uiv_sig = {182, "glColor4uiv", 1, _glColor4uiv_args};

static const char * _glColor4us_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4us_sig = {183, "glColor4us", 4, _glColor4us_args};

static const char * _glColor4usv_args[1] = {"v"};
static const trace::FunctionSig _glColor4usv_sig = {184, "glColor4usv", 1, _glColor4usv_args};

static const char * _glEdgeFlag_args[1] = {"flag"};
static const trace::FunctionSig _glEdgeFlag_sig = {185, "glEdgeFlag", 1, _glEdgeFlag_args};

static const char * _glEdgeFlagv_args[1] = {"flag"};
static const trace::FunctionSig _glEdgeFlagv_sig = {186, "glEdgeFlagv", 1, _glEdgeFlagv_args};

static const char ** _glEnd_args = NULL;
static const trace::FunctionSig _glEnd_sig = {187, "glEnd", 0, _glEnd_args};

static const char * _glIndexd_args[1] = {"c"};
static const trace::FunctionSig _glIndexd_sig = {188, "glIndexd", 1, _glIndexd_args};

static const char * _glIndexdv_args[1] = {"c"};
static const trace::FunctionSig _glIndexdv_sig = {189, "glIndexdv", 1, _glIndexdv_args};

static const char * _glIndexf_args[1] = {"c"};
static const trace::FunctionSig _glIndexf_sig = {190, "glIndexf", 1, _glIndexf_args};

static const char * _glIndexfv_args[1] = {"c"};
static const trace::FunctionSig _glIndexfv_sig = {191, "glIndexfv", 1, _glIndexfv_args};

static const char * _glIndexi_args[1] = {"c"};
static const trace::FunctionSig _glIndexi_sig = {192, "glIndexi", 1, _glIndexi_args};

static const char * _glIndexiv_args[1] = {"c"};
static const trace::FunctionSig _glIndexiv_sig = {193, "glIndexiv", 1, _glIndexiv_args};

static const char * _glIndexs_args[1] = {"c"};
static const trace::FunctionSig _glIndexs_sig = {194, "glIndexs", 1, _glIndexs_args};

static const char * _glIndexsv_args[1] = {"c"};
static const trace::FunctionSig _glIndexsv_sig = {195, "glIndexsv", 1, _glIndexsv_args};

static const char * _glNormal3b_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3b_sig = {196, "glNormal3b", 3, _glNormal3b_args};

static const char * _glNormal3bv_args[1] = {"v"};
static const trace::FunctionSig _glNormal3bv_sig = {197, "glNormal3bv", 1, _glNormal3bv_args};

static const char * _glNormal3d_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3d_sig = {198, "glNormal3d", 3, _glNormal3d_args};

static const char * _glNormal3dv_args[1] = {"v"};
static const trace::FunctionSig _glNormal3dv_sig = {199, "glNormal3dv", 1, _glNormal3dv_args};

static const char * _glNormal3f_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3f_sig = {200, "glNormal3f", 3, _glNormal3f_args};

static const char * _glNormal3fv_args[1] = {"v"};
static const trace::FunctionSig _glNormal3fv_sig = {201, "glNormal3fv", 1, _glNormal3fv_args};

static const char * _glNormal3i_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3i_sig = {202, "glNormal3i", 3, _glNormal3i_args};

static const char * _glNormal3iv_args[1] = {"v"};
static const trace::FunctionSig _glNormal3iv_sig = {203, "glNormal3iv", 1, _glNormal3iv_args};

static const char * _glNormal3s_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3s_sig = {204, "glNormal3s", 3, _glNormal3s_args};

static const char * _glNormal3sv_args[1] = {"v"};
static const trace::FunctionSig _glNormal3sv_sig = {205, "glNormal3sv", 1, _glNormal3sv_args};

static const char * _glRasterPos2d_args[2] = {"x", "y"};
static const trace::FunctionSig _glRasterPos2d_sig = {206, "glRasterPos2d", 2, _glRasterPos2d_args};

static const char * _glRasterPos2dv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos2dv_sig = {207, "glRasterPos2dv", 1, _glRasterPos2dv_args};

static const char * _glRasterPos2f_args[2] = {"x", "y"};
static const trace::FunctionSig _glRasterPos2f_sig = {208, "glRasterPos2f", 2, _glRasterPos2f_args};

static const char * _glRasterPos2fv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos2fv_sig = {209, "glRasterPos2fv", 1, _glRasterPos2fv_args};

static const char * _glRasterPos2i_args[2] = {"x", "y"};
static const trace::FunctionSig _glRasterPos2i_sig = {210, "glRasterPos2i", 2, _glRasterPos2i_args};

static const char * _glRasterPos2iv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos2iv_sig = {211, "glRasterPos2iv", 1, _glRasterPos2iv_args};

static const char * _glRasterPos2s_args[2] = {"x", "y"};
static const trace::FunctionSig _glRasterPos2s_sig = {212, "glRasterPos2s", 2, _glRasterPos2s_args};

static const char * _glRasterPos2sv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos2sv_sig = {213, "glRasterPos2sv", 1, _glRasterPos2sv_args};

static const char * _glRasterPos3d_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glRasterPos3d_sig = {214, "glRasterPos3d", 3, _glRasterPos3d_args};

static const char * _glRasterPos3dv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos3dv_sig = {215, "glRasterPos3dv", 1, _glRasterPos3dv_args};

static const char * _glRasterPos3f_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glRasterPos3f_sig = {216, "glRasterPos3f", 3, _glRasterPos3f_args};

static const char * _glRasterPos3fv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos3fv_sig = {217, "glRasterPos3fv", 1, _glRasterPos3fv_args};

static const char * _glRasterPos3i_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glRasterPos3i_sig = {218, "glRasterPos3i", 3, _glRasterPos3i_args};

static const char * _glRasterPos3iv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos3iv_sig = {219, "glRasterPos3iv", 1, _glRasterPos3iv_args};

static const char * _glRasterPos3s_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glRasterPos3s_sig = {220, "glRasterPos3s", 3, _glRasterPos3s_args};

static const char * _glRasterPos3sv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos3sv_sig = {221, "glRasterPos3sv", 1, _glRasterPos3sv_args};

static const char * _glRasterPos4d_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glRasterPos4d_sig = {222, "glRasterPos4d", 4, _glRasterPos4d_args};

static const char * _glRasterPos4dv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos4dv_sig = {223, "glRasterPos4dv", 1, _glRasterPos4dv_args};

static const char * _glRasterPos4f_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glRasterPos4f_sig = {224, "glRasterPos4f", 4, _glRasterPos4f_args};

static const char * _glRasterPos4fv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos4fv_sig = {225, "glRasterPos4fv", 1, _glRasterPos4fv_args};

static const char * _glRasterPos4i_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glRasterPos4i_sig = {226, "glRasterPos4i", 4, _glRasterPos4i_args};

static const char * _glRasterPos4iv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos4iv_sig = {227, "glRasterPos4iv", 1, _glRasterPos4iv_args};

static const char * _glRasterPos4s_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glRasterPos4s_sig = {228, "glRasterPos4s", 4, _glRasterPos4s_args};

static const char * _glRasterPos4sv_args[1] = {"v"};
static const trace::FunctionSig _glRasterPos4sv_sig = {229, "glRasterPos4sv", 1, _glRasterPos4sv_args};

static const char * _glRectd_args[4] = {"x1", "y1", "x2", "y2"};
static const trace::FunctionSig _glRectd_sig = {230, "glRectd", 4, _glRectd_args};

static const char * _glRectdv_args[2] = {"v1", "v2"};
static const trace::FunctionSig _glRectdv_sig = {231, "glRectdv", 2, _glRectdv_args};

static const char * _glRectf_args[4] = {"x1", "y1", "x2", "y2"};
static const trace::FunctionSig _glRectf_sig = {232, "glRectf", 4, _glRectf_args};

static const char * _glRectfv_args[2] = {"v1", "v2"};
static const trace::FunctionSig _glRectfv_sig = {233, "glRectfv", 2, _glRectfv_args};

static const char * _glRecti_args[4] = {"x1", "y1", "x2", "y2"};
static const trace::FunctionSig _glRecti_sig = {234, "glRecti", 4, _glRecti_args};

static const char * _glRectiv_args[2] = {"v1", "v2"};
static const trace::FunctionSig _glRectiv_sig = {235, "glRectiv", 2, _glRectiv_args};

static const char * _glRects_args[4] = {"x1", "y1", "x2", "y2"};
static const trace::FunctionSig _glRects_sig = {236, "glRects", 4, _glRects_args};

static const char * _glRectsv_args[2] = {"v1", "v2"};
static const trace::FunctionSig _glRectsv_sig = {237, "glRectsv", 2, _glRectsv_args};

static const char * _glTexCoord1d_args[1] = {"s"};
static const trace::FunctionSig _glTexCoord1d_sig = {238, "glTexCoord1d", 1, _glTexCoord1d_args};

static const char * _glTexCoord1dv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord1dv_sig = {239, "glTexCoord1dv", 1, _glTexCoord1dv_args};

static const char * _glTexCoord1f_args[1] = {"s"};
static const trace::FunctionSig _glTexCoord1f_sig = {240, "glTexCoord1f", 1, _glTexCoord1f_args};

static const char * _glTexCoord1fv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord1fv_sig = {241, "glTexCoord1fv", 1, _glTexCoord1fv_args};

static const char * _glTexCoord1i_args[1] = {"s"};
static const trace::FunctionSig _glTexCoord1i_sig = {242, "glTexCoord1i", 1, _glTexCoord1i_args};

static const char * _glTexCoord1iv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord1iv_sig = {243, "glTexCoord1iv", 1, _glTexCoord1iv_args};

static const char * _glTexCoord1s_args[1] = {"s"};
static const trace::FunctionSig _glTexCoord1s_sig = {244, "glTexCoord1s", 1, _glTexCoord1s_args};

static const char * _glTexCoord1sv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord1sv_sig = {245, "glTexCoord1sv", 1, _glTexCoord1sv_args};

static const char * _glTexCoord2d_args[2] = {"s", "t"};
static const trace::FunctionSig _glTexCoord2d_sig = {246, "glTexCoord2d", 2, _glTexCoord2d_args};

static const char * _glTexCoord2dv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord2dv_sig = {247, "glTexCoord2dv", 1, _glTexCoord2dv_args};

static const char * _glTexCoord2f_args[2] = {"s", "t"};
static const trace::FunctionSig _glTexCoord2f_sig = {248, "glTexCoord2f", 2, _glTexCoord2f_args};

static const char * _glTexCoord2fv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord2fv_sig = {249, "glTexCoord2fv", 1, _glTexCoord2fv_args};

static const char * _glTexCoord2i_args[2] = {"s", "t"};
static const trace::FunctionSig _glTexCoord2i_sig = {250, "glTexCoord2i", 2, _glTexCoord2i_args};

static const char * _glTexCoord2iv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord2iv_sig = {251, "glTexCoord2iv", 1, _glTexCoord2iv_args};

static const char * _glTexCoord2s_args[2] = {"s", "t"};
static const trace::FunctionSig _glTexCoord2s_sig = {252, "glTexCoord2s", 2, _glTexCoord2s_args};

static const char * _glTexCoord2sv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord2sv_sig = {253, "glTexCoord2sv", 1, _glTexCoord2sv_args};

static const char * _glTexCoord3d_args[3] = {"s", "t", "r"};
static const trace::FunctionSig _glTexCoord3d_sig = {254, "glTexCoord3d", 3, _glTexCoord3d_args};

static const char * _glTexCoord3dv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord3dv_sig = {255, "glTexCoord3dv", 1, _glTexCoord3dv_args};

static const char * _glTexCoord3f_args[3] = {"s", "t", "r"};
static const trace::FunctionSig _glTexCoord3f_sig = {256, "glTexCoord3f", 3, _glTexCoord3f_args};

static const char * _glTexCoord3fv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord3fv_sig = {257, "glTexCoord3fv", 1, _glTexCoord3fv_args};

static const char * _glTexCoord3i_args[3] = {"s", "t", "r"};
static const trace::FunctionSig _glTexCoord3i_sig = {258, "glTexCoord3i", 3, _glTexCoord3i_args};

static const char * _glTexCoord3iv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord3iv_sig = {259, "glTexCoord3iv", 1, _glTexCoord3iv_args};

static const char * _glTexCoord3s_args[3] = {"s", "t", "r"};
static const trace::FunctionSig _glTexCoord3s_sig = {260, "glTexCoord3s", 3, _glTexCoord3s_args};

static const char * _glTexCoord3sv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord3sv_sig = {261, "glTexCoord3sv", 1, _glTexCoord3sv_args};

static const char * _glTexCoord4d_args[4] = {"s", "t", "r", "q"};
static const trace::FunctionSig _glTexCoord4d_sig = {262, "glTexCoord4d", 4, _glTexCoord4d_args};

static const char * _glTexCoord4dv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord4dv_sig = {263, "glTexCoord4dv", 1, _glTexCoord4dv_args};

static const char * _glTexCoord4f_args[4] = {"s", "t", "r", "q"};
static const trace::FunctionSig _glTexCoord4f_sig = {264, "glTexCoord4f", 4, _glTexCoord4f_args};

static const char * _glTexCoord4fv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord4fv_sig = {265, "glTexCoord4fv", 1, _glTexCoord4fv_args};

static const char * _glTexCoord4i_args[4] = {"s", "t", "r", "q"};
static const trace::FunctionSig _glTexCoord4i_sig = {266, "glTexCoord4i", 4, _glTexCoord4i_args};

static const char * _glTexCoord4iv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord4iv_sig = {267, "glTexCoord4iv", 1, _glTexCoord4iv_args};

static const char * _glTexCoord4s_args[4] = {"s", "t", "r", "q"};
static const trace::FunctionSig _glTexCoord4s_sig = {268, "glTexCoord4s", 4, _glTexCoord4s_args};

static const char * _glTexCoord4sv_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord4sv_sig = {269, "glTexCoord4sv", 1, _glTexCoord4sv_args};

static const char * _glVertex2d_args[2] = {"x", "y"};
static const trace::FunctionSig _glVertex2d_sig = {270, "glVertex2d", 2, _glVertex2d_args};

static const char * _glVertex2dv_args[1] = {"v"};
static const trace::FunctionSig _glVertex2dv_sig = {271, "glVertex2dv", 1, _glVertex2dv_args};

static const char * _glVertex2f_args[2] = {"x", "y"};
static const trace::FunctionSig _glVertex2f_sig = {272, "glVertex2f", 2, _glVertex2f_args};

static const char * _glVertex2fv_args[1] = {"v"};
static const trace::FunctionSig _glVertex2fv_sig = {273, "glVertex2fv", 1, _glVertex2fv_args};

static const char * _glVertex2i_args[2] = {"x", "y"};
static const trace::FunctionSig _glVertex2i_sig = {274, "glVertex2i", 2, _glVertex2i_args};

static const char * _glVertex2iv_args[1] = {"v"};
static const trace::FunctionSig _glVertex2iv_sig = {275, "glVertex2iv", 1, _glVertex2iv_args};

static const char * _glVertex2s_args[2] = {"x", "y"};
static const trace::FunctionSig _glVertex2s_sig = {276, "glVertex2s", 2, _glVertex2s_args};

static const char * _glVertex2sv_args[1] = {"v"};
static const trace::FunctionSig _glVertex2sv_sig = {277, "glVertex2sv", 1, _glVertex2sv_args};

static const char * _glVertex3d_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glVertex3d_sig = {278, "glVertex3d", 3, _glVertex3d_args};

static const char * _glVertex3dv_args[1] = {"v"};
static const trace::FunctionSig _glVertex3dv_sig = {279, "glVertex3dv", 1, _glVertex3dv_args};

static const char * _glVertex3f_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glVertex3f_sig = {280, "glVertex3f", 3, _glVertex3f_args};

static const char * _glVertex3fv_args[1] = {"v"};
static const trace::FunctionSig _glVertex3fv_sig = {281, "glVertex3fv", 1, _glVertex3fv_args};

static const char * _glVertex3i_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glVertex3i_sig = {282, "glVertex3i", 3, _glVertex3i_args};

static const char * _glVertex3iv_args[1] = {"v"};
static const trace::FunctionSig _glVertex3iv_sig = {283, "glVertex3iv", 1, _glVertex3iv_args};

static const char * _glVertex3s_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glVertex3s_sig = {284, "glVertex3s", 3, _glVertex3s_args};

static const char * _glVertex3sv_args[1] = {"v"};
static const trace::FunctionSig _glVertex3sv_sig = {285, "glVertex3sv", 1, _glVertex3sv_args};

static const char * _glVertex4d_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glVertex4d_sig = {286, "glVertex4d", 4, _glVertex4d_args};

static const char * _glVertex4dv_args[1] = {"v"};
static const trace::FunctionSig _glVertex4dv_sig = {287, "glVertex4dv", 1, _glVertex4dv_args};

static const char * _glVertex4f_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glVertex4f_sig = {288, "glVertex4f", 4, _glVertex4f_args};

static const char * _glVertex4fv_args[1] = {"v"};
static const trace::FunctionSig _glVertex4fv_sig = {289, "glVertex4fv", 1, _glVertex4fv_args};

static const char * _glVertex4i_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glVertex4i_sig = {290, "glVertex4i", 4, _glVertex4i_args};

static const char * _glVertex4iv_args[1] = {"v"};
static const trace::FunctionSig _glVertex4iv_sig = {291, "glVertex4iv", 1, _glVertex4iv_args};

static const char * _glVertex4s_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glVertex4s_sig = {292, "glVertex4s", 4, _glVertex4s_args};

static const char * _glVertex4sv_args[1] = {"v"};
static const trace::FunctionSig _glVertex4sv_sig = {293, "glVertex4sv", 1, _glVertex4sv_args};

static const char * _glClipPlane_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glClipPlane_sig = {294, "glClipPlane", 2, _glClipPlane_args};

static const char * _glColorMaterial_args[2] = {"face", "mode"};
static const trace::FunctionSig _glColorMaterial_sig = {295, "glColorMaterial", 2, _glColorMaterial_args};

static const char * _glFogf_args[2] = {"pname", "param"};
static const trace::FunctionSig _glFogf_sig = {296, "glFogf", 2, _glFogf_args};

static const char * _glFogfv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glFogfv_sig = {297, "glFogfv", 2, _glFogfv_args};

static const char * _glFogi_args[2] = {"pname", "param"};
static const trace::FunctionSig _glFogi_sig = {298, "glFogi", 2, _glFogi_args};

static const char * _glFogiv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glFogiv_sig = {299, "glFogiv", 2, _glFogiv_args};

static const char * _glLightf_args[3] = {"light", "pname", "param"};
static const trace::FunctionSig _glLightf_sig = {300, "glLightf", 3, _glLightf_args};

static const char * _glLightfv_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glLightfv_sig = {301, "glLightfv", 3, _glLightfv_args};

static const char * _glLighti_args[3] = {"light", "pname", "param"};
static const trace::FunctionSig _glLighti_sig = {302, "glLighti", 3, _glLighti_args};

static const char * _glLightiv_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glLightiv_sig = {303, "glLightiv", 3, _glLightiv_args};

static const char * _glLightModelf_args[2] = {"pname", "param"};
static const trace::FunctionSig _glLightModelf_sig = {304, "glLightModelf", 2, _glLightModelf_args};

static const char * _glLightModelfv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glLightModelfv_sig = {305, "glLightModelfv", 2, _glLightModelfv_args};

static const char * _glLightModeli_args[2] = {"pname", "param"};
static const trace::FunctionSig _glLightModeli_sig = {306, "glLightModeli", 2, _glLightModeli_args};

static const char * _glLightModeliv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glLightModeliv_sig = {307, "glLightModeliv", 2, _glLightModeliv_args};

static const char * _glLineStipple_args[2] = {"factor", "pattern"};
static const trace::FunctionSig _glLineStipple_sig = {308, "glLineStipple", 2, _glLineStipple_args};

static const char * _glMaterialf_args[3] = {"face", "pname", "param"};
static const trace::FunctionSig _glMaterialf_sig = {309, "glMaterialf", 3, _glMaterialf_args};

static const char * _glMaterialfv_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glMaterialfv_sig = {310, "glMaterialfv", 3, _glMaterialfv_args};

static const char * _glMateriali_args[3] = {"face", "pname", "param"};
static const trace::FunctionSig _glMateriali_sig = {311, "glMateriali", 3, _glMateriali_args};

static const char * _glMaterialiv_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glMaterialiv_sig = {312, "glMaterialiv", 3, _glMaterialiv_args};

static const char * _glPolygonStipple_args[1] = {"mask"};
static const trace::FunctionSig _glPolygonStipple_sig = {313, "glPolygonStipple", 1, _glPolygonStipple_args};

static const char * _glShadeModel_args[1] = {"mode"};
static const trace::FunctionSig _glShadeModel_sig = {314, "glShadeModel", 1, _glShadeModel_args};

static const char * _glTexEnvf_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glTexEnvf_sig = {315, "glTexEnvf", 3, _glTexEnvf_args};

static const char * _glTexEnvfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexEnvfv_sig = {316, "glTexEnvfv", 3, _glTexEnvfv_args};

static const char * _glTexEnvi_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glTexEnvi_sig = {317, "glTexEnvi", 3, _glTexEnvi_args};

static const char * _glTexEnviv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexEnviv_sig = {318, "glTexEnviv", 3, _glTexEnviv_args};

static const char * _glTexGend_args[3] = {"coord", "pname", "param"};
static const trace::FunctionSig _glTexGend_sig = {319, "glTexGend", 3, _glTexGend_args};

static const char * _glTexGendv_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glTexGendv_sig = {320, "glTexGendv", 3, _glTexGendv_args};

static const char * _glTexGenf_args[3] = {"coord", "pname", "param"};
static const trace::FunctionSig _glTexGenf_sig = {321, "glTexGenf", 3, _glTexGenf_args};

static const char * _glTexGenfv_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glTexGenfv_sig = {322, "glTexGenfv", 3, _glTexGenfv_args};

static const char * _glTexGeni_args[3] = {"coord", "pname", "param"};
static const trace::FunctionSig _glTexGeni_sig = {323, "glTexGeni", 3, _glTexGeni_args};

static const char * _glTexGeniv_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glTexGeniv_sig = {324, "glTexGeniv", 3, _glTexGeniv_args};

static const char * _glFeedbackBuffer_args[3] = {"size", "type", "buffer"};
static const trace::FunctionSig _glFeedbackBuffer_sig = {325, "glFeedbackBuffer", 3, _glFeedbackBuffer_args};

static const char * _glSelectBuffer_args[2] = {"size", "buffer"};
static const trace::FunctionSig _glSelectBuffer_sig = {326, "glSelectBuffer", 2, _glSelectBuffer_args};

static const char * _glRenderMode_args[1] = {"mode"};
static const trace::FunctionSig _glRenderMode_sig = {327, "glRenderMode", 1, _glRenderMode_args};

static const char ** _glInitNames_args = NULL;
static const trace::FunctionSig _glInitNames_sig = {328, "glInitNames", 0, _glInitNames_args};

static const char * _glLoadName_args[1] = {"name"};
static const trace::FunctionSig _glLoadName_sig = {329, "glLoadName", 1, _glLoadName_args};

static const char * _glPassThrough_args[1] = {"token"};
static const trace::FunctionSig _glPassThrough_sig = {330, "glPassThrough", 1, _glPassThrough_args};

static const char ** _glPopName_args = NULL;
static const trace::FunctionSig _glPopName_sig = {331, "glPopName", 0, _glPopName_args};

static const char * _glPushName_args[1] = {"name"};
static const trace::FunctionSig _glPushName_sig = {332, "glPushName", 1, _glPushName_args};

static const char * _glClearAccum_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glClearAccum_sig = {333, "glClearAccum", 4, _glClearAccum_args};

static const char * _glClearIndex_args[1] = {"c"};
static const trace::FunctionSig _glClearIndex_sig = {334, "glClearIndex", 1, _glClearIndex_args};

static const char * _glIndexMask_args[1] = {"mask"};
static const trace::FunctionSig _glIndexMask_sig = {335, "glIndexMask", 1, _glIndexMask_args};

static const char * _glAccum_args[2] = {"op", "value"};
static const trace::FunctionSig _glAccum_sig = {336, "glAccum", 2, _glAccum_args};

static const char ** _glPopAttrib_args = NULL;
static const trace::FunctionSig _glPopAttrib_sig = {337, "glPopAttrib", 0, _glPopAttrib_args};

static const char * _glPushAttrib_args[1] = {"mask"};
static const trace::FunctionSig _glPushAttrib_sig = {338, "glPushAttrib", 1, _glPushAttrib_args};

static const char * _glMap1d_args[6] = {"target", "u1", "u2", "stride", "order", "points"};
static const trace::FunctionSig _glMap1d_sig = {339, "glMap1d", 6, _glMap1d_args};

static const char * _glMap1f_args[6] = {"target", "u1", "u2", "stride", "order", "points"};
static const trace::FunctionSig _glMap1f_sig = {340, "glMap1f", 6, _glMap1f_args};

static const char * _glMap2d_args[10] = {"target", "u1", "u2", "ustride", "uorder", "v1", "v2", "vstride", "vorder", "points"};
static const trace::FunctionSig _glMap2d_sig = {341, "glMap2d", 10, _glMap2d_args};

static const char * _glMap2f_args[10] = {"target", "u1", "u2", "ustride", "uorder", "v1", "v2", "vstride", "vorder", "points"};
static const trace::FunctionSig _glMap2f_sig = {342, "glMap2f", 10, _glMap2f_args};

static const char * _glMapGrid1d_args[3] = {"un", "u1", "u2"};
static const trace::FunctionSig _glMapGrid1d_sig = {343, "glMapGrid1d", 3, _glMapGrid1d_args};

static const char * _glMapGrid1f_args[3] = {"un", "u1", "u2"};
static const trace::FunctionSig _glMapGrid1f_sig = {344, "glMapGrid1f", 3, _glMapGrid1f_args};

static const char * _glMapGrid2d_args[6] = {"un", "u1", "u2", "vn", "v1", "v2"};
static const trace::FunctionSig _glMapGrid2d_sig = {345, "glMapGrid2d", 6, _glMapGrid2d_args};

static const char * _glMapGrid2f_args[6] = {"un", "u1", "u2", "vn", "v1", "v2"};
static const trace::FunctionSig _glMapGrid2f_sig = {346, "glMapGrid2f", 6, _glMapGrid2f_args};

static const char * _glEvalCoord1d_args[1] = {"u"};
static const trace::FunctionSig _glEvalCoord1d_sig = {347, "glEvalCoord1d", 1, _glEvalCoord1d_args};

static const char * _glEvalCoord1dv_args[1] = {"u"};
static const trace::FunctionSig _glEvalCoord1dv_sig = {348, "glEvalCoord1dv", 1, _glEvalCoord1dv_args};

static const char * _glEvalCoord1f_args[1] = {"u"};
static const trace::FunctionSig _glEvalCoord1f_sig = {349, "glEvalCoord1f", 1, _glEvalCoord1f_args};

static const char * _glEvalCoord1fv_args[1] = {"u"};
static const trace::FunctionSig _glEvalCoord1fv_sig = {350, "glEvalCoord1fv", 1, _glEvalCoord1fv_args};

static const char * _glEvalCoord2d_args[2] = {"u", "v"};
static const trace::FunctionSig _glEvalCoord2d_sig = {351, "glEvalCoord2d", 2, _glEvalCoord2d_args};

static const char * _glEvalCoord2dv_args[1] = {"u"};
static const trace::FunctionSig _glEvalCoord2dv_sig = {352, "glEvalCoord2dv", 1, _glEvalCoord2dv_args};

static const char * _glEvalCoord2f_args[2] = {"u", "v"};
static const trace::FunctionSig _glEvalCoord2f_sig = {353, "glEvalCoord2f", 2, _glEvalCoord2f_args};

static const char * _glEvalCoord2fv_args[1] = {"u"};
static const trace::FunctionSig _glEvalCoord2fv_sig = {354, "glEvalCoord2fv", 1, _glEvalCoord2fv_args};

static const char * _glEvalMesh1_args[3] = {"mode", "i1", "i2"};
static const trace::FunctionSig _glEvalMesh1_sig = {355, "glEvalMesh1", 3, _glEvalMesh1_args};

static const char * _glEvalPoint1_args[1] = {"i"};
static const trace::FunctionSig _glEvalPoint1_sig = {356, "glEvalPoint1", 1, _glEvalPoint1_args};

static const char * _glEvalMesh2_args[5] = {"mode", "i1", "i2", "j1", "j2"};
static const trace::FunctionSig _glEvalMesh2_sig = {357, "glEvalMesh2", 5, _glEvalMesh2_args};

static const char * _glEvalPoint2_args[2] = {"i", "j"};
static const trace::FunctionSig _glEvalPoint2_sig = {358, "glEvalPoint2", 2, _glEvalPoint2_args};

static const char * _glAlphaFunc_args[2] = {"func", "ref"};
static const trace::FunctionSig _glAlphaFunc_sig = {359, "glAlphaFunc", 2, _glAlphaFunc_args};

static const char * _glPixelZoom_args[2] = {"xfactor", "yfactor"};
static const trace::FunctionSig _glPixelZoom_sig = {360, "glPixelZoom", 2, _glPixelZoom_args};

static const char * _glPixelTransferf_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPixelTransferf_sig = {361, "glPixelTransferf", 2, _glPixelTransferf_args};

static const char * _glPixelTransferi_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPixelTransferi_sig = {362, "glPixelTransferi", 2, _glPixelTransferi_args};

static const char * _glPixelMapfv_args[3] = {"map", "mapsize", "values"};
static const trace::FunctionSig _glPixelMapfv_sig = {363, "glPixelMapfv", 3, _glPixelMapfv_args};

static const char * _glPixelMapuiv_args[3] = {"map", "mapsize", "values"};
static const trace::FunctionSig _glPixelMapuiv_sig = {364, "glPixelMapuiv", 3, _glPixelMapuiv_args};

static const char * _glPixelMapusv_args[3] = {"map", "mapsize", "values"};
static const trace::FunctionSig _glPixelMapusv_sig = {365, "glPixelMapusv", 3, _glPixelMapusv_args};

static const char * _glCopyPixels_args[5] = {"x", "y", "width", "height", "type"};
static const trace::FunctionSig _glCopyPixels_sig = {366, "glCopyPixels", 5, _glCopyPixels_args};

static const char * _glDrawPixels_args[5] = {"width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glDrawPixels_sig = {367, "glDrawPixels", 5, _glDrawPixels_args};

static const char * _glGetClipPlane_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glGetClipPlane_sig = {368, "glGetClipPlane", 2, _glGetClipPlane_args};

static const char * _glGetLightfv_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glGetLightfv_sig = {369, "glGetLightfv", 3, _glGetLightfv_args};

static const char * _glGetLightiv_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glGetLightiv_sig = {370, "glGetLightiv", 3, _glGetLightiv_args};

static const char * _glGetMapdv_args[3] = {"target", "query", "v"};
static const trace::FunctionSig _glGetMapdv_sig = {371, "glGetMapdv", 3, _glGetMapdv_args};

static const char * _glGetMapfv_args[3] = {"target", "query", "v"};
static const trace::FunctionSig _glGetMapfv_sig = {372, "glGetMapfv", 3, _glGetMapfv_args};

static const char * _glGetMapiv_args[3] = {"target", "query", "v"};
static const trace::FunctionSig _glGetMapiv_sig = {373, "glGetMapiv", 3, _glGetMapiv_args};

static const char * _glGetMaterialfv_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glGetMaterialfv_sig = {374, "glGetMaterialfv", 3, _glGetMaterialfv_args};

static const char * _glGetMaterialiv_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glGetMaterialiv_sig = {375, "glGetMaterialiv", 3, _glGetMaterialiv_args};

static const char * _glGetPixelMapfv_args[2] = {"map", "values"};
static const trace::FunctionSig _glGetPixelMapfv_sig = {376, "glGetPixelMapfv", 2, _glGetPixelMapfv_args};

static const char * _glGetPixelMapuiv_args[2] = {"map", "values"};
static const trace::FunctionSig _glGetPixelMapuiv_sig = {377, "glGetPixelMapuiv", 2, _glGetPixelMapuiv_args};

static const char * _glGetPixelMapusv_args[2] = {"map", "values"};
static const trace::FunctionSig _glGetPixelMapusv_sig = {378, "glGetPixelMapusv", 2, _glGetPixelMapusv_args};

static const char * _glGetPolygonStipple_args[1] = {"mask"};
static const trace::FunctionSig _glGetPolygonStipple_sig = {379, "glGetPolygonStipple", 1, _glGetPolygonStipple_args};

static const char * _glGetTexEnvfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexEnvfv_sig = {380, "glGetTexEnvfv", 3, _glGetTexEnvfv_args};

static const char * _glGetTexEnviv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexEnviv_sig = {381, "glGetTexEnviv", 3, _glGetTexEnviv_args};

static const char * _glGetTexGendv_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glGetTexGendv_sig = {382, "glGetTexGendv", 3, _glGetTexGendv_args};

static const char * _glGetTexGenfv_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glGetTexGenfv_sig = {383, "glGetTexGenfv", 3, _glGetTexGenfv_args};

static const char * _glGetTexGeniv_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glGetTexGeniv_sig = {384, "glGetTexGeniv", 3, _glGetTexGeniv_args};

static const char * _glIsList_args[1] = {"list"};
static const trace::FunctionSig _glIsList_sig = {385, "glIsList", 1, _glIsList_args};

static const char * _glFrustum_args[6] = {"left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glFrustum_sig = {386, "glFrustum", 6, _glFrustum_args};

static const char ** _glLoadIdentity_args = NULL;
static const trace::FunctionSig _glLoadIdentity_sig = {387, "glLoadIdentity", 0, _glLoadIdentity_args};

static const char * _glLoadMatrixf_args[1] = {"m"};
static const trace::FunctionSig _glLoadMatrixf_sig = {388, "glLoadMatrixf", 1, _glLoadMatrixf_args};

static const char * _glLoadMatrixd_args[1] = {"m"};
static const trace::FunctionSig _glLoadMatrixd_sig = {389, "glLoadMatrixd", 1, _glLoadMatrixd_args};

static const char * _glMatrixMode_args[1] = {"mode"};
static const trace::FunctionSig _glMatrixMode_sig = {390, "glMatrixMode", 1, _glMatrixMode_args};

static const char * _glMultMatrixf_args[1] = {"m"};
static const trace::FunctionSig _glMultMatrixf_sig = {391, "glMultMatrixf", 1, _glMultMatrixf_args};

static const char * _glMultMatrixd_args[1] = {"m"};
static const trace::FunctionSig _glMultMatrixd_sig = {392, "glMultMatrixd", 1, _glMultMatrixd_args};

static const char * _glOrtho_args[6] = {"left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glOrtho_sig = {393, "glOrtho", 6, _glOrtho_args};

static const char ** _glPopMatrix_args = NULL;
static const trace::FunctionSig _glPopMatrix_sig = {394, "glPopMatrix", 0, _glPopMatrix_args};

static const char ** _glPushMatrix_args = NULL;
static const trace::FunctionSig _glPushMatrix_sig = {395, "glPushMatrix", 0, _glPushMatrix_args};

static const char * _glRotated_args[4] = {"angle", "x", "y", "z"};
static const trace::FunctionSig _glRotated_sig = {396, "glRotated", 4, _glRotated_args};

static const char * _glRotatef_args[4] = {"angle", "x", "y", "z"};
static const trace::FunctionSig _glRotatef_sig = {397, "glRotatef", 4, _glRotatef_args};

static const char * _glScaled_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glScaled_sig = {398, "glScaled", 3, _glScaled_args};

static const char * _glScalef_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glScalef_sig = {399, "glScalef", 3, _glScalef_args};

static const char * _glTranslated_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glTranslated_sig = {400, "glTranslated", 3, _glTranslated_args};

static const char * _glTranslatef_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glTranslatef_sig = {401, "glTranslatef", 3, _glTranslatef_args};

static const char * _glDrawArrays_args[3] = {"mode", "first", "count"};
static const trace::FunctionSig _glDrawArrays_sig = {402, "glDrawArrays", 3, _glDrawArrays_args};

static const char * _glDrawElements_args[4] = {"mode", "count", "type", "indices"};
static const trace::FunctionSig _glDrawElements_sig = {403, "glDrawElements", 4, _glDrawElements_args};

static const char * _glGetPointerv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetPointerv_sig = {404, "glGetPointerv", 2, _glGetPointerv_args};

static const char * _glPolygonOffset_args[2] = {"factor", "units"};
static const trace::FunctionSig _glPolygonOffset_sig = {405, "glPolygonOffset", 2, _glPolygonOffset_args};

static const char * _glCopyTexImage1D_args[7] = {"target", "level", "internalformat", "x", "y", "width", "border"};
static const trace::FunctionSig _glCopyTexImage1D_sig = {406, "glCopyTexImage1D", 7, _glCopyTexImage1D_args};

static const char * _glCopyTexImage2D_args[8] = {"target", "level", "internalformat", "x", "y", "width", "height", "border"};
static const trace::FunctionSig _glCopyTexImage2D_sig = {407, "glCopyTexImage2D", 8, _glCopyTexImage2D_args};

static const char * _glCopyTexSubImage1D_args[6] = {"target", "level", "xoffset", "x", "y", "width"};
static const trace::FunctionSig _glCopyTexSubImage1D_sig = {408, "glCopyTexSubImage1D", 6, _glCopyTexSubImage1D_args};

static const char * _glCopyTexSubImage2D_args[8] = {"target", "level", "xoffset", "yoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTexSubImage2D_sig = {409, "glCopyTexSubImage2D", 8, _glCopyTexSubImage2D_args};

static const char * _glTexSubImage1D_args[7] = {"target", "level", "xoffset", "width", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage1D_sig = {410, "glTexSubImage1D", 7, _glTexSubImage1D_args};

static const char * _glTexSubImage2D_args[9] = {"target", "level", "xoffset", "yoffset", "width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage2D_sig = {411, "glTexSubImage2D", 9, _glTexSubImage2D_args};

static const char * _glBindTexture_args[2] = {"target", "texture"};
static const trace::FunctionSig _glBindTexture_sig = {412, "glBindTexture", 2, _glBindTexture_args};

static const char * _glDeleteTextures_args[2] = {"n", "textures"};
static const trace::FunctionSig _glDeleteTextures_sig = {413, "glDeleteTextures", 2, _glDeleteTextures_args};

static const char * _glGenTextures_args[2] = {"n", "textures"};
static const trace::FunctionSig _glGenTextures_sig = {414, "glGenTextures", 2, _glGenTextures_args};

static const char * _glIsTexture_args[1] = {"texture"};
static const trace::FunctionSig _glIsTexture_sig = {415, "glIsTexture", 1, _glIsTexture_args};

static const char * _glArrayElement_args[1] = {"i"};
static const trace::FunctionSig _glArrayElement_sig = {416, "glArrayElement", 1, _glArrayElement_args};

static const char * _glColorPointer_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glColorPointer_sig = {417, "glColorPointer", 4, _glColorPointer_args};

static const char * _glDisableClientState_args[1] = {"array"};
static const trace::FunctionSig _glDisableClientState_sig = {418, "glDisableClientState", 1, _glDisableClientState_args};

static const char * _glEdgeFlagPointer_args[2] = {"stride", "pointer"};
static const trace::FunctionSig _glEdgeFlagPointer_sig = {419, "glEdgeFlagPointer", 2, _glEdgeFlagPointer_args};

static const char * _glEnableClientState_args[1] = {"array"};
static const trace::FunctionSig _glEnableClientState_sig = {420, "glEnableClientState", 1, _glEnableClientState_args};

static const char * _glIndexPointer_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glIndexPointer_sig = {421, "glIndexPointer", 3, _glIndexPointer_args};

static const char * _glInterleavedArrays_args[3] = {"format", "stride", "pointer"};
static const trace::FunctionSig _glInterleavedArrays_sig = {422, "glInterleavedArrays", 3, _glInterleavedArrays_args};

static const char * _glNormalPointer_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glNormalPointer_sig = {423, "glNormalPointer", 3, _glNormalPointer_args};

static const char * _glTexCoordPointer_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glTexCoordPointer_sig = {424, "glTexCoordPointer", 4, _glTexCoordPointer_args};

static const char * _glVertexPointer_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexPointer_sig = {425, "glVertexPointer", 4, _glVertexPointer_args};

static const char * _glAreTexturesResident_args[3] = {"n", "textures", "residences"};
static const trace::FunctionSig _glAreTexturesResident_sig = {426, "glAreTexturesResident", 3, _glAreTexturesResident_args};

static const char * _glPrioritizeTextures_args[3] = {"n", "textures", "priorities"};
static const trace::FunctionSig _glPrioritizeTextures_sig = {427, "glPrioritizeTextures", 3, _glPrioritizeTextures_args};

static const char * _glIndexub_args[1] = {"c"};
static const trace::FunctionSig _glIndexub_sig = {428, "glIndexub", 1, _glIndexub_args};

static const char * _glIndexubv_args[1] = {"c"};
static const trace::FunctionSig _glIndexubv_sig = {429, "glIndexubv", 1, _glIndexubv_args};

static const char ** _glPopClientAttrib_args = NULL;
static const trace::FunctionSig _glPopClientAttrib_sig = {430, "glPopClientAttrib", 0, _glPopClientAttrib_args};

static const char * _glPushClientAttrib_args[1] = {"mask"};
static const trace::FunctionSig _glPushClientAttrib_sig = {431, "glPushClientAttrib", 1, _glPushClientAttrib_args};

static const char * _glBlendColor_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glBlendColor_sig = {432, "glBlendColor", 4, _glBlendColor_args};

static const char * _glBlendEquation_args[1] = {"mode"};
static const trace::FunctionSig _glBlendEquation_sig = {433, "glBlendEquation", 1, _glBlendEquation_args};

static const char * _glDrawRangeElements_args[6] = {"mode", "start", "end", "count", "type", "indices"};
static const trace::FunctionSig _glDrawRangeElements_sig = {434, "glDrawRangeElements", 6, _glDrawRangeElements_args};

static const char * _glTexImage3D_args[10] = {"target", "level", "internalformat", "width", "height", "depth", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTexImage3D_sig = {435, "glTexImage3D", 10, _glTexImage3D_args};

static const char * _glTexSubImage3D_args[11] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage3D_sig = {436, "glTexSubImage3D", 11, _glTexSubImage3D_args};

static const char * _glCopyTexSubImage3D_args[9] = {"target", "level", "xoffset", "yoffset", "zoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTexSubImage3D_sig = {437, "glCopyTexSubImage3D", 9, _glCopyTexSubImage3D_args};

static const char * _glColorTable_args[6] = {"target", "internalformat", "width", "format", "type", "table"};
static const trace::FunctionSig _glColorTable_sig = {438, "glColorTable", 6, _glColorTable_args};

static const char * _glColorTableParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glColorTableParameterfv_sig = {439, "glColorTableParameterfv", 3, _glColorTableParameterfv_args};

static const char * _glColorTableParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glColorTableParameteriv_sig = {440, "glColorTableParameteriv", 3, _glColorTableParameteriv_args};

static const char * _glCopyColorTable_args[5] = {"target", "internalformat", "x", "y", "width"};
static const trace::FunctionSig _glCopyColorTable_sig = {441, "glCopyColorTable", 5, _glCopyColorTable_args};

static const char * _glGetColorTable_args[4] = {"target", "format", "type", "table"};
static const trace::FunctionSig _glGetColorTable_sig = {442, "glGetColorTable", 4, _glGetColorTable_args};

static const char * _glGetColorTableParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetColorTableParameterfv_sig = {443, "glGetColorTableParameterfv", 3, _glGetColorTableParameterfv_args};

static const char * _glGetColorTableParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetColorTableParameteriv_sig = {444, "glGetColorTableParameteriv", 3, _glGetColorTableParameteriv_args};

static const char * _glColorSubTable_args[6] = {"target", "start", "count", "format", "type", "data"};
static const trace::FunctionSig _glColorSubTable_sig = {445, "glColorSubTable", 6, _glColorSubTable_args};

static const char * _glCopyColorSubTable_args[5] = {"target", "start", "x", "y", "width"};
static const trace::FunctionSig _glCopyColorSubTable_sig = {446, "glCopyColorSubTable", 5, _glCopyColorSubTable_args};

static const char * _glConvolutionFilter1D_args[6] = {"target", "internalformat", "width", "format", "type", "image"};
static const trace::FunctionSig _glConvolutionFilter1D_sig = {447, "glConvolutionFilter1D", 6, _glConvolutionFilter1D_args};

static const char * _glConvolutionFilter2D_args[7] = {"target", "internalformat", "width", "height", "format", "type", "image"};
static const trace::FunctionSig _glConvolutionFilter2D_sig = {448, "glConvolutionFilter2D", 7, _glConvolutionFilter2D_args};

static const char * _glConvolutionParameterf_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameterf_sig = {449, "glConvolutionParameterf", 3, _glConvolutionParameterf_args};

static const char * _glConvolutionParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameterfv_sig = {450, "glConvolutionParameterfv", 3, _glConvolutionParameterfv_args};

static const char * _glConvolutionParameteri_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameteri_sig = {451, "glConvolutionParameteri", 3, _glConvolutionParameteri_args};

static const char * _glConvolutionParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameteriv_sig = {452, "glConvolutionParameteriv", 3, _glConvolutionParameteriv_args};

static const char * _glCopyConvolutionFilter1D_args[5] = {"target", "internalformat", "x", "y", "width"};
static const trace::FunctionSig _glCopyConvolutionFilter1D_sig = {453, "glCopyConvolutionFilter1D", 5, _glCopyConvolutionFilter1D_args};

static const char * _glCopyConvolutionFilter2D_args[6] = {"target", "internalformat", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyConvolutionFilter2D_sig = {454, "glCopyConvolutionFilter2D", 6, _glCopyConvolutionFilter2D_args};

static const char * _glGetConvolutionFilter_args[4] = {"target", "format", "type", "image"};
static const trace::FunctionSig _glGetConvolutionFilter_sig = {455, "glGetConvolutionFilter", 4, _glGetConvolutionFilter_args};

static const char * _glGetConvolutionParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetConvolutionParameterfv_sig = {456, "glGetConvolutionParameterfv", 3, _glGetConvolutionParameterfv_args};

static const char * _glGetConvolutionParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetConvolutionParameteriv_sig = {457, "glGetConvolutionParameteriv", 3, _glGetConvolutionParameteriv_args};

static const char * _glGetSeparableFilter_args[6] = {"target", "format", "type", "row", "column", "span"};
static const trace::FunctionSig _glGetSeparableFilter_sig = {458, "glGetSeparableFilter", 6, _glGetSeparableFilter_args};

static const char * _glSeparableFilter2D_args[8] = {"target", "internalformat", "width", "height", "format", "type", "row", "column"};
static const trace::FunctionSig _glSeparableFilter2D_sig = {459, "glSeparableFilter2D", 8, _glSeparableFilter2D_args};

static const char * _glGetHistogram_args[5] = {"target", "reset", "format", "type", "values"};
static const trace::FunctionSig _glGetHistogram_sig = {460, "glGetHistogram", 5, _glGetHistogram_args};

static const char * _glGetHistogramParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetHistogramParameterfv_sig = {461, "glGetHistogramParameterfv", 3, _glGetHistogramParameterfv_args};

static const char * _glGetHistogramParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetHistogramParameteriv_sig = {462, "glGetHistogramParameteriv", 3, _glGetHistogramParameteriv_args};

static const char * _glGetMinmax_args[5] = {"target", "reset", "format", "type", "values"};
static const trace::FunctionSig _glGetMinmax_sig = {463, "glGetMinmax", 5, _glGetMinmax_args};

static const char * _glGetMinmaxParameterfv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetMinmaxParameterfv_sig = {464, "glGetMinmaxParameterfv", 3, _glGetMinmaxParameterfv_args};

static const char * _glGetMinmaxParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetMinmaxParameteriv_sig = {465, "glGetMinmaxParameteriv", 3, _glGetMinmaxParameteriv_args};

static const char * _glHistogram_args[4] = {"target", "width", "internalformat", "sink"};
static const trace::FunctionSig _glHistogram_sig = {466, "glHistogram", 4, _glHistogram_args};

static const char * _glMinmax_args[3] = {"target", "internalformat", "sink"};
static const trace::FunctionSig _glMinmax_sig = {467, "glMinmax", 3, _glMinmax_args};

static const char * _glResetHistogram_args[1] = {"target"};
static const trace::FunctionSig _glResetHistogram_sig = {468, "glResetHistogram", 1, _glResetHistogram_args};

static const char * _glResetMinmax_args[1] = {"target"};
static const trace::FunctionSig _glResetMinmax_sig = {469, "glResetMinmax", 1, _glResetMinmax_args};

static const char * _glActiveTexture_args[1] = {"texture"};
static const trace::FunctionSig _glActiveTexture_sig = {470, "glActiveTexture", 1, _glActiveTexture_args};

static const char * _glSampleCoverage_args[2] = {"value", "invert"};
static const trace::FunctionSig _glSampleCoverage_sig = {471, "glSampleCoverage", 2, _glSampleCoverage_args};

static const char * _glCompressedTexImage3D_args[9] = {"target", "level", "internalformat", "width", "height", "depth", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage3D_sig = {472, "glCompressedTexImage3D", 9, _glCompressedTexImage3D_args};

static const char * _glCompressedTexImage2D_args[8] = {"target", "level", "internalformat", "width", "height", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage2D_sig = {473, "glCompressedTexImage2D", 8, _glCompressedTexImage2D_args};

static const char * _glCompressedTexImage1D_args[7] = {"target", "level", "internalformat", "width", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage1D_sig = {474, "glCompressedTexImage1D", 7, _glCompressedTexImage1D_args};

static const char * _glCompressedTexSubImage3D_args[11] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage3D_sig = {475, "glCompressedTexSubImage3D", 11, _glCompressedTexSubImage3D_args};

static const char * _glCompressedTexSubImage2D_args[9] = {"target", "level", "xoffset", "yoffset", "width", "height", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage2D_sig = {476, "glCompressedTexSubImage2D", 9, _glCompressedTexSubImage2D_args};

static const char * _glCompressedTexSubImage1D_args[7] = {"target", "level", "xoffset", "width", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage1D_sig = {477, "glCompressedTexSubImage1D", 7, _glCompressedTexSubImage1D_args};

static const char * _glGetCompressedTexImage_args[3] = {"target", "level", "img"};
static const trace::FunctionSig _glGetCompressedTexImage_sig = {478, "glGetCompressedTexImage", 3, _glGetCompressedTexImage_args};

static const char * _glClientActiveTexture_args[1] = {"texture"};
static const trace::FunctionSig _glClientActiveTexture_sig = {479, "glClientActiveTexture", 1, _glClientActiveTexture_args};

static const char * _glMultiTexCoord1d_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1d_sig = {480, "glMultiTexCoord1d", 2, _glMultiTexCoord1d_args};

static const char * _glMultiTexCoord1dv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1dv_sig = {481, "glMultiTexCoord1dv", 2, _glMultiTexCoord1dv_args};

static const char * _glMultiTexCoord1f_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1f_sig = {482, "glMultiTexCoord1f", 2, _glMultiTexCoord1f_args};

static const char * _glMultiTexCoord1fv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1fv_sig = {483, "glMultiTexCoord1fv", 2, _glMultiTexCoord1fv_args};

static const char * _glMultiTexCoord1i_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1i_sig = {484, "glMultiTexCoord1i", 2, _glMultiTexCoord1i_args};

static const char * _glMultiTexCoord1iv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1iv_sig = {485, "glMultiTexCoord1iv", 2, _glMultiTexCoord1iv_args};

static const char * _glMultiTexCoord1s_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1s_sig = {486, "glMultiTexCoord1s", 2, _glMultiTexCoord1s_args};

static const char * _glMultiTexCoord1sv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1sv_sig = {487, "glMultiTexCoord1sv", 2, _glMultiTexCoord1sv_args};

static const char * _glMultiTexCoord2d_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2d_sig = {488, "glMultiTexCoord2d", 3, _glMultiTexCoord2d_args};

static const char * _glMultiTexCoord2dv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2dv_sig = {489, "glMultiTexCoord2dv", 2, _glMultiTexCoord2dv_args};

static const char * _glMultiTexCoord2f_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2f_sig = {490, "glMultiTexCoord2f", 3, _glMultiTexCoord2f_args};

static const char * _glMultiTexCoord2fv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2fv_sig = {491, "glMultiTexCoord2fv", 2, _glMultiTexCoord2fv_args};

static const char * _glMultiTexCoord2i_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2i_sig = {492, "glMultiTexCoord2i", 3, _glMultiTexCoord2i_args};

static const char * _glMultiTexCoord2iv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2iv_sig = {493, "glMultiTexCoord2iv", 2, _glMultiTexCoord2iv_args};

static const char * _glMultiTexCoord2s_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2s_sig = {494, "glMultiTexCoord2s", 3, _glMultiTexCoord2s_args};

static const char * _glMultiTexCoord2sv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2sv_sig = {495, "glMultiTexCoord2sv", 2, _glMultiTexCoord2sv_args};

static const char * _glMultiTexCoord3d_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3d_sig = {496, "glMultiTexCoord3d", 4, _glMultiTexCoord3d_args};

static const char * _glMultiTexCoord3dv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3dv_sig = {497, "glMultiTexCoord3dv", 2, _glMultiTexCoord3dv_args};

static const char * _glMultiTexCoord3f_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3f_sig = {498, "glMultiTexCoord3f", 4, _glMultiTexCoord3f_args};

static const char * _glMultiTexCoord3fv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3fv_sig = {499, "glMultiTexCoord3fv", 2, _glMultiTexCoord3fv_args};

static const char * _glMultiTexCoord3i_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3i_sig = {500, "glMultiTexCoord3i", 4, _glMultiTexCoord3i_args};

static const char * _glMultiTexCoord3iv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3iv_sig = {501, "glMultiTexCoord3iv", 2, _glMultiTexCoord3iv_args};

static const char * _glMultiTexCoord3s_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3s_sig = {502, "glMultiTexCoord3s", 4, _glMultiTexCoord3s_args};

static const char * _glMultiTexCoord3sv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3sv_sig = {503, "glMultiTexCoord3sv", 2, _glMultiTexCoord3sv_args};

static const char * _glMultiTexCoord4d_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4d_sig = {504, "glMultiTexCoord4d", 5, _glMultiTexCoord4d_args};

static const char * _glMultiTexCoord4dv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4dv_sig = {505, "glMultiTexCoord4dv", 2, _glMultiTexCoord4dv_args};

static const char * _glMultiTexCoord4f_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4f_sig = {506, "glMultiTexCoord4f", 5, _glMultiTexCoord4f_args};

static const char * _glMultiTexCoord4fv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4fv_sig = {507, "glMultiTexCoord4fv", 2, _glMultiTexCoord4fv_args};

static const char * _glMultiTexCoord4i_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4i_sig = {508, "glMultiTexCoord4i", 5, _glMultiTexCoord4i_args};

static const char * _glMultiTexCoord4iv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4iv_sig = {509, "glMultiTexCoord4iv", 2, _glMultiTexCoord4iv_args};

static const char * _glMultiTexCoord4s_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4s_sig = {510, "glMultiTexCoord4s", 5, _glMultiTexCoord4s_args};

static const char * _glMultiTexCoord4sv_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4sv_sig = {511, "glMultiTexCoord4sv", 2, _glMultiTexCoord4sv_args};

static const char * _glLoadTransposeMatrixf_args[1] = {"m"};
static const trace::FunctionSig _glLoadTransposeMatrixf_sig = {512, "glLoadTransposeMatrixf", 1, _glLoadTransposeMatrixf_args};

static const char * _glLoadTransposeMatrixd_args[1] = {"m"};
static const trace::FunctionSig _glLoadTransposeMatrixd_sig = {513, "glLoadTransposeMatrixd", 1, _glLoadTransposeMatrixd_args};

static const char * _glMultTransposeMatrixf_args[1] = {"m"};
static const trace::FunctionSig _glMultTransposeMatrixf_sig = {514, "glMultTransposeMatrixf", 1, _glMultTransposeMatrixf_args};

static const char * _glMultTransposeMatrixd_args[1] = {"m"};
static const trace::FunctionSig _glMultTransposeMatrixd_sig = {515, "glMultTransposeMatrixd", 1, _glMultTransposeMatrixd_args};

static const char * _glBlendFuncSeparate_args[4] = {"sfactorRGB", "dfactorRGB", "sfactorAlpha", "dfactorAlpha"};
static const trace::FunctionSig _glBlendFuncSeparate_sig = {516, "glBlendFuncSeparate", 4, _glBlendFuncSeparate_args};

static const char * _glMultiDrawArrays_args[4] = {"mode", "first", "count", "drawcount"};
static const trace::FunctionSig _glMultiDrawArrays_sig = {517, "glMultiDrawArrays", 4, _glMultiDrawArrays_args};

static const char * _glMultiDrawElements_args[5] = {"mode", "count", "type", "indices", "drawcount"};
static const trace::FunctionSig _glMultiDrawElements_sig = {518, "glMultiDrawElements", 5, _glMultiDrawElements_args};

static const char * _glPointParameterf_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameterf_sig = {519, "glPointParameterf", 2, _glPointParameterf_args};

static const char * _glPointParameterfv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameterfv_sig = {520, "glPointParameterfv", 2, _glPointParameterfv_args};

static const char * _glPointParameteri_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameteri_sig = {521, "glPointParameteri", 2, _glPointParameteri_args};

static const char * _glPointParameteriv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameteriv_sig = {522, "glPointParameteriv", 2, _glPointParameteriv_args};

static const char * _glFogCoordf_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoordf_sig = {523, "glFogCoordf", 1, _glFogCoordf_args};

static const char * _glFogCoordfv_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoordfv_sig = {524, "glFogCoordfv", 1, _glFogCoordfv_args};

static const char * _glFogCoordd_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoordd_sig = {525, "glFogCoordd", 1, _glFogCoordd_args};

static const char * _glFogCoorddv_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoorddv_sig = {526, "glFogCoorddv", 1, _glFogCoorddv_args};

static const char * _glFogCoordPointer_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glFogCoordPointer_sig = {527, "glFogCoordPointer", 3, _glFogCoordPointer_args};

static const char * _glSecondaryColor3b_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3b_sig = {528, "glSecondaryColor3b", 3, _glSecondaryColor3b_args};

static const char * _glSecondaryColor3bv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3bv_sig = {529, "glSecondaryColor3bv", 1, _glSecondaryColor3bv_args};

static const char * _glSecondaryColor3d_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3d_sig = {530, "glSecondaryColor3d", 3, _glSecondaryColor3d_args};

static const char * _glSecondaryColor3dv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3dv_sig = {531, "glSecondaryColor3dv", 1, _glSecondaryColor3dv_args};

static const char * _glSecondaryColor3f_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3f_sig = {532, "glSecondaryColor3f", 3, _glSecondaryColor3f_args};

static const char * _glSecondaryColor3fv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3fv_sig = {533, "glSecondaryColor3fv", 1, _glSecondaryColor3fv_args};

static const char * _glSecondaryColor3i_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3i_sig = {534, "glSecondaryColor3i", 3, _glSecondaryColor3i_args};

static const char * _glSecondaryColor3iv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3iv_sig = {535, "glSecondaryColor3iv", 1, _glSecondaryColor3iv_args};

static const char * _glSecondaryColor3s_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3s_sig = {536, "glSecondaryColor3s", 3, _glSecondaryColor3s_args};

static const char * _glSecondaryColor3sv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3sv_sig = {537, "glSecondaryColor3sv", 1, _glSecondaryColor3sv_args};

static const char * _glSecondaryColor3ub_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3ub_sig = {538, "glSecondaryColor3ub", 3, _glSecondaryColor3ub_args};

static const char * _glSecondaryColor3ubv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3ubv_sig = {539, "glSecondaryColor3ubv", 1, _glSecondaryColor3ubv_args};

static const char * _glSecondaryColor3ui_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3ui_sig = {540, "glSecondaryColor3ui", 3, _glSecondaryColor3ui_args};

static const char * _glSecondaryColor3uiv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3uiv_sig = {541, "glSecondaryColor3uiv", 1, _glSecondaryColor3uiv_args};

static const char * _glSecondaryColor3us_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3us_sig = {542, "glSecondaryColor3us", 3, _glSecondaryColor3us_args};

static const char * _glSecondaryColor3usv_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3usv_sig = {543, "glSecondaryColor3usv", 1, _glSecondaryColor3usv_args};

static const char * _glSecondaryColorPointer_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glSecondaryColorPointer_sig = {544, "glSecondaryColorPointer", 4, _glSecondaryColorPointer_args};

static const char * _glWindowPos2d_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2d_sig = {545, "glWindowPos2d", 2, _glWindowPos2d_args};

static const char * _glWindowPos2dv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2dv_sig = {546, "glWindowPos2dv", 1, _glWindowPos2dv_args};

static const char * _glWindowPos2f_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2f_sig = {547, "glWindowPos2f", 2, _glWindowPos2f_args};

static const char * _glWindowPos2fv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2fv_sig = {548, "glWindowPos2fv", 1, _glWindowPos2fv_args};

static const char * _glWindowPos2i_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2i_sig = {549, "glWindowPos2i", 2, _glWindowPos2i_args};

static const char * _glWindowPos2iv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2iv_sig = {550, "glWindowPos2iv", 1, _glWindowPos2iv_args};

static const char * _glWindowPos2s_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2s_sig = {551, "glWindowPos2s", 2, _glWindowPos2s_args};

static const char * _glWindowPos2sv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2sv_sig = {552, "glWindowPos2sv", 1, _glWindowPos2sv_args};

static const char * _glWindowPos3d_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3d_sig = {553, "glWindowPos3d", 3, _glWindowPos3d_args};

static const char * _glWindowPos3dv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3dv_sig = {554, "glWindowPos3dv", 1, _glWindowPos3dv_args};

static const char * _glWindowPos3f_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3f_sig = {555, "glWindowPos3f", 3, _glWindowPos3f_args};

static const char * _glWindowPos3fv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3fv_sig = {556, "glWindowPos3fv", 1, _glWindowPos3fv_args};

static const char * _glWindowPos3i_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3i_sig = {557, "glWindowPos3i", 3, _glWindowPos3i_args};

static const char * _glWindowPos3iv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3iv_sig = {558, "glWindowPos3iv", 1, _glWindowPos3iv_args};

static const char * _glWindowPos3s_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3s_sig = {559, "glWindowPos3s", 3, _glWindowPos3s_args};

static const char * _glWindowPos3sv_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3sv_sig = {560, "glWindowPos3sv", 1, _glWindowPos3sv_args};

static const char * _glGenQueries_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenQueries_sig = {561, "glGenQueries", 2, _glGenQueries_args};

static const char * _glDeleteQueries_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteQueries_sig = {562, "glDeleteQueries", 2, _glDeleteQueries_args};

static const char * _glIsQuery_args[1] = {"id"};
static const trace::FunctionSig _glIsQuery_sig = {563, "glIsQuery", 1, _glIsQuery_args};

static const char * _glBeginQuery_args[2] = {"target", "id"};
static const trace::FunctionSig _glBeginQuery_sig = {564, "glBeginQuery", 2, _glBeginQuery_args};

static const char * _glEndQuery_args[1] = {"target"};
static const trace::FunctionSig _glEndQuery_sig = {565, "glEndQuery", 1, _glEndQuery_args};

static const char * _glGetQueryiv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetQueryiv_sig = {566, "glGetQueryiv", 3, _glGetQueryiv_args};

static const char * _glGetQueryObjectiv_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectiv_sig = {567, "glGetQueryObjectiv", 3, _glGetQueryObjectiv_args};

static const char * _glGetQueryObjectuiv_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectuiv_sig = {568, "glGetQueryObjectuiv", 3, _glGetQueryObjectuiv_args};

static const char * _glBindBuffer_args[2] = {"target", "buffer"};
static const trace::FunctionSig _glBindBuffer_sig = {569, "glBindBuffer", 2, _glBindBuffer_args};

static const char * _glDeleteBuffers_args[2] = {"n", "buffers"};
static const trace::FunctionSig _glDeleteBuffers_sig = {570, "glDeleteBuffers", 2, _glDeleteBuffers_args};

static const char * _glGenBuffers_args[2] = {"n", "buffers"};
static const trace::FunctionSig _glGenBuffers_sig = {571, "glGenBuffers", 2, _glGenBuffers_args};

static const char * _glIsBuffer_args[1] = {"buffer"};
static const trace::FunctionSig _glIsBuffer_sig = {572, "glIsBuffer", 1, _glIsBuffer_args};

static const char * _glBufferData_args[4] = {"target", "size", "data", "usage"};
static const trace::FunctionSig _glBufferData_sig = {573, "glBufferData", 4, _glBufferData_args};

static const char * _glBufferSubData_args[4] = {"target", "offset", "size", "data"};
static const trace::FunctionSig _glBufferSubData_sig = {574, "glBufferSubData", 4, _glBufferSubData_args};

static const char * _glGetBufferSubData_args[4] = {"target", "offset", "size", "data"};
static const trace::FunctionSig _glGetBufferSubData_sig = {575, "glGetBufferSubData", 4, _glGetBufferSubData_args};

static const char * _glMapBuffer_args[2] = {"target", "access"};
static const trace::FunctionSig _glMapBuffer_sig = {576, "glMapBuffer", 2, _glMapBuffer_args};

static const char * _glUnmapBuffer_args[1] = {"target"};
static const trace::FunctionSig _glUnmapBuffer_sig = {577, "glUnmapBuffer", 1, _glUnmapBuffer_args};

static const char * _glGetBufferParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferParameteriv_sig = {578, "glGetBufferParameteriv", 3, _glGetBufferParameteriv_args};

static const char * _glGetBufferPointerv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferPointerv_sig = {579, "glGetBufferPointerv", 3, _glGetBufferPointerv_args};

static const char * _glBlendEquationSeparate_args[2] = {"modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparate_sig = {580, "glBlendEquationSeparate", 2, _glBlendEquationSeparate_args};

static const char * _glDrawBuffers_args[2] = {"n", "bufs"};
static const trace::FunctionSig _glDrawBuffers_sig = {581, "glDrawBuffers", 2, _glDrawBuffers_args};

static const char * _glStencilOpSeparate_args[4] = {"face", "sfail", "dpfail", "dppass"};
static const trace::FunctionSig _glStencilOpSeparate_sig = {582, "glStencilOpSeparate", 4, _glStencilOpSeparate_args};

static const char * _glStencilFuncSeparate_args[4] = {"face", "func", "ref", "mask"};
static const trace::FunctionSig _glStencilFuncSeparate_sig = {583, "glStencilFuncSeparate", 4, _glStencilFuncSeparate_args};

static const char * _glStencilMaskSeparate_args[2] = {"face", "mask"};
static const trace::FunctionSig _glStencilMaskSeparate_sig = {584, "glStencilMaskSeparate", 2, _glStencilMaskSeparate_args};

static const char * _glAttachShader_args[2] = {"program", "shader"};
static const trace::FunctionSig _glAttachShader_sig = {585, "glAttachShader", 2, _glAttachShader_args};

static const char * _glBindAttribLocation_args[3] = {"program", "index", "name"};
static const trace::FunctionSig _glBindAttribLocation_sig = {586, "glBindAttribLocation", 3, _glBindAttribLocation_args};

static const char * _glCompileShader_args[1] = {"shader"};
static const trace::FunctionSig _glCompileShader_sig = {587, "glCompileShader", 1, _glCompileShader_args};

static const char ** _glCreateProgram_args = NULL;
static const trace::FunctionSig _glCreateProgram_sig = {588, "glCreateProgram", 0, _glCreateProgram_args};

static const char * _glCreateShader_args[1] = {"type"};
static const trace::FunctionSig _glCreateShader_sig = {589, "glCreateShader", 1, _glCreateShader_args};

static const char * _glDeleteProgram_args[1] = {"program"};
static const trace::FunctionSig _glDeleteProgram_sig = {590, "glDeleteProgram", 1, _glDeleteProgram_args};

static const char * _glDeleteShader_args[1] = {"shader"};
static const trace::FunctionSig _glDeleteShader_sig = {591, "glDeleteShader", 1, _glDeleteShader_args};

static const char * _glDetachShader_args[2] = {"program", "shader"};
static const trace::FunctionSig _glDetachShader_sig = {592, "glDetachShader", 2, _glDetachShader_args};

static const char * _glDisableVertexAttribArray_args[1] = {"index"};
static const trace::FunctionSig _glDisableVertexAttribArray_sig = {593, "glDisableVertexAttribArray", 1, _glDisableVertexAttribArray_args};

static const char * _glEnableVertexAttribArray_args[1] = {"index"};
static const trace::FunctionSig _glEnableVertexAttribArray_sig = {594, "glEnableVertexAttribArray", 1, _glEnableVertexAttribArray_args};

static const char * _glGetActiveAttrib_args[7] = {"program", "index", "bufSize", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetActiveAttrib_sig = {595, "glGetActiveAttrib", 7, _glGetActiveAttrib_args};

static const char * _glGetActiveUniform_args[7] = {"program", "index", "bufSize", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetActiveUniform_sig = {596, "glGetActiveUniform", 7, _glGetActiveUniform_args};

static const char * _glGetAttachedShaders_args[4] = {"program", "maxCount", "count", "obj"};
static const trace::FunctionSig _glGetAttachedShaders_sig = {597, "glGetAttachedShaders", 4, _glGetAttachedShaders_args};

static const char * _glGetAttribLocation_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetAttribLocation_sig = {598, "glGetAttribLocation", 2, _glGetAttribLocation_args};

static const char * _glGetProgramiv_args[3] = {"program", "pname", "params"};
static const trace::FunctionSig _glGetProgramiv_sig = {599, "glGetProgramiv", 3, _glGetProgramiv_args};

static const char * _glGetProgramInfoLog_args[4] = {"program", "bufSize", "length", "infoLog"};
static const trace::FunctionSig _glGetProgramInfoLog_sig = {600, "glGetProgramInfoLog", 4, _glGetProgramInfoLog_args};

static const char * _glGetShaderiv_args[3] = {"shader", "pname", "params"};
static const trace::FunctionSig _glGetShaderiv_sig = {601, "glGetShaderiv", 3, _glGetShaderiv_args};

static const char * _glGetShaderInfoLog_args[4] = {"shader", "bufSize", "length", "infoLog"};
static const trace::FunctionSig _glGetShaderInfoLog_sig = {602, "glGetShaderInfoLog", 4, _glGetShaderInfoLog_args};

static const char * _glGetShaderSource_args[4] = {"shader", "bufSize", "length", "source"};
static const trace::FunctionSig _glGetShaderSource_sig = {603, "glGetShaderSource", 4, _glGetShaderSource_args};

static const char * _glGetUniformLocation_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetUniformLocation_sig = {604, "glGetUniformLocation", 2, _glGetUniformLocation_args};

static const char * _glGetUniformfv_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformfv_sig = {605, "glGetUniformfv", 3, _glGetUniformfv_args};

static const char * _glGetUniformiv_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformiv_sig = {606, "glGetUniformiv", 3, _glGetUniformiv_args};

static const char * _glGetVertexAttribdv_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribdv_sig = {607, "glGetVertexAttribdv", 3, _glGetVertexAttribdv_args};

static const char * _glGetVertexAttribfv_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribfv_sig = {608, "glGetVertexAttribfv", 3, _glGetVertexAttribfv_args};

static const char * _glGetVertexAttribiv_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribiv_sig = {609, "glGetVertexAttribiv", 3, _glGetVertexAttribiv_args};

static const char * _glGetVertexAttribPointerv_args[3] = {"index", "pname", "pointer"};
static const trace::FunctionSig _glGetVertexAttribPointerv_sig = {610, "glGetVertexAttribPointerv", 3, _glGetVertexAttribPointerv_args};

static const char * _glIsProgram_args[1] = {"program"};
static const trace::FunctionSig _glIsProgram_sig = {611, "glIsProgram", 1, _glIsProgram_args};

static const char * _glIsShader_args[1] = {"shader"};
static const trace::FunctionSig _glIsShader_sig = {612, "glIsShader", 1, _glIsShader_args};

static const char * _glLinkProgram_args[1] = {"program"};
static const trace::FunctionSig _glLinkProgram_sig = {613, "glLinkProgram", 1, _glLinkProgram_args};

static const char * _glShaderSource_args[4] = {"shader", "count", "string", "length"};
static const trace::FunctionSig _glShaderSource_sig = {614, "glShaderSource", 4, _glShaderSource_args};

static const char * _glUseProgram_args[1] = {"program"};
static const trace::FunctionSig _glUseProgram_sig = {615, "glUseProgram", 1, _glUseProgram_args};

static const char * _glUniform1f_args[2] = {"location", "v0"};
static const trace::FunctionSig _glUniform1f_sig = {616, "glUniform1f", 2, _glUniform1f_args};

static const char * _glUniform2f_args[3] = {"location", "v0", "v1"};
static const trace::FunctionSig _glUniform2f_sig = {617, "glUniform2f", 3, _glUniform2f_args};

static const char * _glUniform3f_args[4] = {"location", "v0", "v1", "v2"};
static const trace::FunctionSig _glUniform3f_sig = {618, "glUniform3f", 4, _glUniform3f_args};

static const char * _glUniform4f_args[5] = {"location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glUniform4f_sig = {619, "glUniform4f", 5, _glUniform4f_args};

static const char * _glUniform1i_args[2] = {"location", "v0"};
static const trace::FunctionSig _glUniform1i_sig = {620, "glUniform1i", 2, _glUniform1i_args};

static const char * _glUniform2i_args[3] = {"location", "v0", "v1"};
static const trace::FunctionSig _glUniform2i_sig = {621, "glUniform2i", 3, _glUniform2i_args};

static const char * _glUniform3i_args[4] = {"location", "v0", "v1", "v2"};
static const trace::FunctionSig _glUniform3i_sig = {622, "glUniform3i", 4, _glUniform3i_args};

static const char * _glUniform4i_args[5] = {"location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glUniform4i_sig = {623, "glUniform4i", 5, _glUniform4i_args};

static const char * _glUniform1fv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1fv_sig = {624, "glUniform1fv", 3, _glUniform1fv_args};

static const char * _glUniform2fv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2fv_sig = {625, "glUniform2fv", 3, _glUniform2fv_args};

static const char * _glUniform3fv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3fv_sig = {626, "glUniform3fv", 3, _glUniform3fv_args};

static const char * _glUniform4fv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4fv_sig = {627, "glUniform4fv", 3, _glUniform4fv_args};

static const char * _glUniform1iv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1iv_sig = {628, "glUniform1iv", 3, _glUniform1iv_args};

static const char * _glUniform2iv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2iv_sig = {629, "glUniform2iv", 3, _glUniform2iv_args};

static const char * _glUniform3iv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3iv_sig = {630, "glUniform3iv", 3, _glUniform3iv_args};

static const char * _glUniform4iv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4iv_sig = {631, "glUniform4iv", 3, _glUniform4iv_args};

static const char * _glUniformMatrix2fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2fv_sig = {632, "glUniformMatrix2fv", 4, _glUniformMatrix2fv_args};

static const char * _glUniformMatrix3fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3fv_sig = {633, "glUniformMatrix3fv", 4, _glUniformMatrix3fv_args};

static const char * _glUniformMatrix4fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4fv_sig = {634, "glUniformMatrix4fv", 4, _glUniformMatrix4fv_args};

static const char * _glValidateProgram_args[1] = {"program"};
static const trace::FunctionSig _glValidateProgram_sig = {635, "glValidateProgram", 1, _glValidateProgram_args};

static const char * _glVertexAttrib1d_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1d_sig = {636, "glVertexAttrib1d", 2, _glVertexAttrib1d_args};

static const char * _glVertexAttrib1dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1dv_sig = {637, "glVertexAttrib1dv", 2, _glVertexAttrib1dv_args};

static const char * _glVertexAttrib1f_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1f_sig = {638, "glVertexAttrib1f", 2, _glVertexAttrib1f_args};

static const char * _glVertexAttrib1fv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1fv_sig = {639, "glVertexAttrib1fv", 2, _glVertexAttrib1fv_args};

static const char * _glVertexAttrib1s_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1s_sig = {640, "glVertexAttrib1s", 2, _glVertexAttrib1s_args};

static const char * _glVertexAttrib1sv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1sv_sig = {641, "glVertexAttrib1sv", 2, _glVertexAttrib1sv_args};

static const char * _glVertexAttrib2d_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2d_sig = {642, "glVertexAttrib2d", 3, _glVertexAttrib2d_args};

static const char * _glVertexAttrib2dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2dv_sig = {643, "glVertexAttrib2dv", 2, _glVertexAttrib2dv_args};

static const char * _glVertexAttrib2f_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2f_sig = {644, "glVertexAttrib2f", 3, _glVertexAttrib2f_args};

static const char * _glVertexAttrib2fv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2fv_sig = {645, "glVertexAttrib2fv", 2, _glVertexAttrib2fv_args};

static const char * _glVertexAttrib2s_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2s_sig = {646, "glVertexAttrib2s", 3, _glVertexAttrib2s_args};

static const char * _glVertexAttrib2sv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2sv_sig = {647, "glVertexAttrib2sv", 2, _glVertexAttrib2sv_args};

static const char * _glVertexAttrib3d_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3d_sig = {648, "glVertexAttrib3d", 4, _glVertexAttrib3d_args};

static const char * _glVertexAttrib3dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3dv_sig = {649, "glVertexAttrib3dv", 2, _glVertexAttrib3dv_args};

static const char * _glVertexAttrib3f_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3f_sig = {650, "glVertexAttrib3f", 4, _glVertexAttrib3f_args};

static const char * _glVertexAttrib3fv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3fv_sig = {651, "glVertexAttrib3fv", 2, _glVertexAttrib3fv_args};

static const char * _glVertexAttrib3s_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3s_sig = {652, "glVertexAttrib3s", 4, _glVertexAttrib3s_args};

static const char * _glVertexAttrib3sv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3sv_sig = {653, "glVertexAttrib3sv", 2, _glVertexAttrib3sv_args};

static const char * _glVertexAttrib4Nbv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4Nbv_sig = {654, "glVertexAttrib4Nbv", 2, _glVertexAttrib4Nbv_args};

static const char * _glVertexAttrib4Niv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4Niv_sig = {655, "glVertexAttrib4Niv", 2, _glVertexAttrib4Niv_args};

static const char * _glVertexAttrib4Nsv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4Nsv_sig = {656, "glVertexAttrib4Nsv", 2, _glVertexAttrib4Nsv_args};

static const char * _glVertexAttrib4Nub_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4Nub_sig = {657, "glVertexAttrib4Nub", 5, _glVertexAttrib4Nub_args};

static const char * _glVertexAttrib4Nubv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4Nubv_sig = {658, "glVertexAttrib4Nubv", 2, _glVertexAttrib4Nubv_args};

static const char * _glVertexAttrib4Nuiv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4Nuiv_sig = {659, "glVertexAttrib4Nuiv", 2, _glVertexAttrib4Nuiv_args};

static const char * _glVertexAttrib4Nusv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4Nusv_sig = {660, "glVertexAttrib4Nusv", 2, _glVertexAttrib4Nusv_args};

static const char * _glVertexAttrib4bv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4bv_sig = {661, "glVertexAttrib4bv", 2, _glVertexAttrib4bv_args};

static const char * _glVertexAttrib4d_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4d_sig = {662, "glVertexAttrib4d", 5, _glVertexAttrib4d_args};

static const char * _glVertexAttrib4dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4dv_sig = {663, "glVertexAttrib4dv", 2, _glVertexAttrib4dv_args};

static const char * _glVertexAttrib4f_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4f_sig = {664, "glVertexAttrib4f", 5, _glVertexAttrib4f_args};

static const char * _glVertexAttrib4fv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4fv_sig = {665, "glVertexAttrib4fv", 2, _glVertexAttrib4fv_args};

static const char * _glVertexAttrib4iv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4iv_sig = {666, "glVertexAttrib4iv", 2, _glVertexAttrib4iv_args};

static const char * _glVertexAttrib4s_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4s_sig = {667, "glVertexAttrib4s", 5, _glVertexAttrib4s_args};

static const char * _glVertexAttrib4sv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4sv_sig = {668, "glVertexAttrib4sv", 2, _glVertexAttrib4sv_args};

static const char * _glVertexAttrib4ubv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4ubv_sig = {669, "glVertexAttrib4ubv", 2, _glVertexAttrib4ubv_args};

static const char * _glVertexAttrib4uiv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4uiv_sig = {670, "glVertexAttrib4uiv", 2, _glVertexAttrib4uiv_args};

static const char * _glVertexAttrib4usv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4usv_sig = {671, "glVertexAttrib4usv", 2, _glVertexAttrib4usv_args};

static const char * _glVertexAttribPointer_args[6] = {"index", "size", "type", "normalized", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribPointer_sig = {672, "glVertexAttribPointer", 6, _glVertexAttribPointer_args};

static const char * _glUniformMatrix2x3fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2x3fv_sig = {673, "glUniformMatrix2x3fv", 4, _glUniformMatrix2x3fv_args};

static const char * _glUniformMatrix3x2fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3x2fv_sig = {674, "glUniformMatrix3x2fv", 4, _glUniformMatrix3x2fv_args};

static const char * _glUniformMatrix2x4fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2x4fv_sig = {675, "glUniformMatrix2x4fv", 4, _glUniformMatrix2x4fv_args};

static const char * _glUniformMatrix4x2fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4x2fv_sig = {676, "glUniformMatrix4x2fv", 4, _glUniformMatrix4x2fv_args};

static const char * _glUniformMatrix3x4fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3x4fv_sig = {677, "glUniformMatrix3x4fv", 4, _glUniformMatrix3x4fv_args};

static const char * _glUniformMatrix4x3fv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4x3fv_sig = {678, "glUniformMatrix4x3fv", 4, _glUniformMatrix4x3fv_args};

static const char * _glColorMaski_args[5] = {"index", "r", "g", "b", "a"};
static const trace::FunctionSig _glColorMaski_sig = {679, "glColorMaski", 5, _glColorMaski_args};

static const char * _glGetBooleani_v_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetBooleani_v_sig = {680, "glGetBooleani_v", 3, _glGetBooleani_v_args};

static const char * _glGetIntegeri_v_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetIntegeri_v_sig = {681, "glGetIntegeri_v", 3, _glGetIntegeri_v_args};

static const char * _glEnablei_args[2] = {"target", "index"};
static const trace::FunctionSig _glEnablei_sig = {682, "glEnablei", 2, _glEnablei_args};

static const char * _glDisablei_args[2] = {"target", "index"};
static const trace::FunctionSig _glDisablei_sig = {683, "glDisablei", 2, _glDisablei_args};

static const char * _glIsEnabledi_args[2] = {"target", "index"};
static const trace::FunctionSig _glIsEnabledi_sig = {684, "glIsEnabledi", 2, _glIsEnabledi_args};

static const char * _glBeginTransformFeedback_args[1] = {"primitiveMode"};
static const trace::FunctionSig _glBeginTransformFeedback_sig = {685, "glBeginTransformFeedback", 1, _glBeginTransformFeedback_args};

static const char ** _glEndTransformFeedback_args = NULL;
static const trace::FunctionSig _glEndTransformFeedback_sig = {686, "glEndTransformFeedback", 0, _glEndTransformFeedback_args};

static const char * _glBindBufferRange_args[5] = {"target", "index", "buffer", "offset", "size"};
static const trace::FunctionSig _glBindBufferRange_sig = {687, "glBindBufferRange", 5, _glBindBufferRange_args};

static const char * _glBindBufferBase_args[3] = {"target", "index", "buffer"};
static const trace::FunctionSig _glBindBufferBase_sig = {688, "glBindBufferBase", 3, _glBindBufferBase_args};

static const char * _glTransformFeedbackVaryings_args[4] = {"program", "count", "varyings", "bufferMode"};
static const trace::FunctionSig _glTransformFeedbackVaryings_sig = {689, "glTransformFeedbackVaryings", 4, _glTransformFeedbackVaryings_args};

static const char * _glGetTransformFeedbackVarying_args[7] = {"program", "index", "bufSize", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetTransformFeedbackVarying_sig = {690, "glGetTransformFeedbackVarying", 7, _glGetTransformFeedbackVarying_args};

static const char * _glClampColor_args[2] = {"target", "clamp"};
static const trace::FunctionSig _glClampColor_sig = {691, "glClampColor", 2, _glClampColor_args};

static const char * _glBeginConditionalRender_args[2] = {"id", "mode"};
static const trace::FunctionSig _glBeginConditionalRender_sig = {692, "glBeginConditionalRender", 2, _glBeginConditionalRender_args};

static const char ** _glEndConditionalRender_args = NULL;
static const trace::FunctionSig _glEndConditionalRender_sig = {693, "glEndConditionalRender", 0, _glEndConditionalRender_args};

static const char * _glVertexAttribIPointer_args[5] = {"index", "size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribIPointer_sig = {694, "glVertexAttribIPointer", 5, _glVertexAttribIPointer_args};

static const char * _glGetVertexAttribIiv_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribIiv_sig = {695, "glGetVertexAttribIiv", 3, _glGetVertexAttribIiv_args};

static const char * _glGetVertexAttribIuiv_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribIuiv_sig = {696, "glGetVertexAttribIuiv", 3, _glGetVertexAttribIuiv_args};

static const char * _glVertexAttribI1i_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribI1i_sig = {697, "glVertexAttribI1i", 2, _glVertexAttribI1i_args};

static const char * _glVertexAttribI2i_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribI2i_sig = {698, "glVertexAttribI2i", 3, _glVertexAttribI2i_args};

static const char * _glVertexAttribI3i_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribI3i_sig = {699, "glVertexAttribI3i", 4, _glVertexAttribI3i_args};

static const char * _glVertexAttribI4i_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribI4i_sig = {700, "glVertexAttribI4i", 5, _glVertexAttribI4i_args};

static const char * _glVertexAttribI1ui_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribI1ui_sig = {701, "glVertexAttribI1ui", 2, _glVertexAttribI1ui_args};

static const char * _glVertexAttribI2ui_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribI2ui_sig = {702, "glVertexAttribI2ui", 3, _glVertexAttribI2ui_args};

static const char * _glVertexAttribI3ui_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribI3ui_sig = {703, "glVertexAttribI3ui", 4, _glVertexAttribI3ui_args};

static const char * _glVertexAttribI4ui_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribI4ui_sig = {704, "glVertexAttribI4ui", 5, _glVertexAttribI4ui_args};

static const char * _glVertexAttribI1iv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI1iv_sig = {705, "glVertexAttribI1iv", 2, _glVertexAttribI1iv_args};

static const char * _glVertexAttribI2iv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI2iv_sig = {706, "glVertexAttribI2iv", 2, _glVertexAttribI2iv_args};

static const char * _glVertexAttribI3iv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI3iv_sig = {707, "glVertexAttribI3iv", 2, _glVertexAttribI3iv_args};

static const char * _glVertexAttribI4iv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4iv_sig = {708, "glVertexAttribI4iv", 2, _glVertexAttribI4iv_args};

static const char * _glVertexAttribI1uiv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI1uiv_sig = {709, "glVertexAttribI1uiv", 2, _glVertexAttribI1uiv_args};

static const char * _glVertexAttribI2uiv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI2uiv_sig = {710, "glVertexAttribI2uiv", 2, _glVertexAttribI2uiv_args};

static const char * _glVertexAttribI3uiv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI3uiv_sig = {711, "glVertexAttribI3uiv", 2, _glVertexAttribI3uiv_args};

static const char * _glVertexAttribI4uiv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4uiv_sig = {712, "glVertexAttribI4uiv", 2, _glVertexAttribI4uiv_args};

static const char * _glVertexAttribI4bv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4bv_sig = {713, "glVertexAttribI4bv", 2, _glVertexAttribI4bv_args};

static const char * _glVertexAttribI4sv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4sv_sig = {714, "glVertexAttribI4sv", 2, _glVertexAttribI4sv_args};

static const char * _glVertexAttribI4ubv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4ubv_sig = {715, "glVertexAttribI4ubv", 2, _glVertexAttribI4ubv_args};

static const char * _glVertexAttribI4usv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4usv_sig = {716, "glVertexAttribI4usv", 2, _glVertexAttribI4usv_args};

static const char * _glGetUniformuiv_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformuiv_sig = {717, "glGetUniformuiv", 3, _glGetUniformuiv_args};

static const char * _glBindFragDataLocation_args[3] = {"program", "color", "name"};
static const trace::FunctionSig _glBindFragDataLocation_sig = {718, "glBindFragDataLocation", 3, _glBindFragDataLocation_args};

static const char * _glGetFragDataLocation_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetFragDataLocation_sig = {719, "glGetFragDataLocation", 2, _glGetFragDataLocation_args};

static const char * _glUniform1ui_args[2] = {"location", "v0"};
static const trace::FunctionSig _glUniform1ui_sig = {720, "glUniform1ui", 2, _glUniform1ui_args};

static const char * _glUniform2ui_args[3] = {"location", "v0", "v1"};
static const trace::FunctionSig _glUniform2ui_sig = {721, "glUniform2ui", 3, _glUniform2ui_args};

static const char * _glUniform3ui_args[4] = {"location", "v0", "v1", "v2"};
static const trace::FunctionSig _glUniform3ui_sig = {722, "glUniform3ui", 4, _glUniform3ui_args};

static const char * _glUniform4ui_args[5] = {"location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glUniform4ui_sig = {723, "glUniform4ui", 5, _glUniform4ui_args};

static const char * _glUniform1uiv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1uiv_sig = {724, "glUniform1uiv", 3, _glUniform1uiv_args};

static const char * _glUniform2uiv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2uiv_sig = {725, "glUniform2uiv", 3, _glUniform2uiv_args};

static const char * _glUniform3uiv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3uiv_sig = {726, "glUniform3uiv", 3, _glUniform3uiv_args};

static const char * _glUniform4uiv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4uiv_sig = {727, "glUniform4uiv", 3, _glUniform4uiv_args};

static const char * _glTexParameterIiv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameterIiv_sig = {728, "glTexParameterIiv", 3, _glTexParameterIiv_args};

static const char * _glTexParameterIuiv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameterIuiv_sig = {729, "glTexParameterIuiv", 3, _glTexParameterIuiv_args};

static const char * _glGetTexParameterIiv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterIiv_sig = {730, "glGetTexParameterIiv", 3, _glGetTexParameterIiv_args};

static const char * _glGetTexParameterIuiv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterIuiv_sig = {731, "glGetTexParameterIuiv", 3, _glGetTexParameterIuiv_args};

static const char * _glClearBufferiv_args[3] = {"buffer", "drawbuffer", "value"};
static const trace::FunctionSig _glClearBufferiv_sig = {732, "glClearBufferiv", 3, _glClearBufferiv_args};

static const char * _glClearBufferuiv_args[3] = {"buffer", "drawbuffer", "value"};
static const trace::FunctionSig _glClearBufferuiv_sig = {733, "glClearBufferuiv", 3, _glClearBufferuiv_args};

static const char * _glClearBufferfv_args[3] = {"buffer", "drawbuffer", "value"};
static const trace::FunctionSig _glClearBufferfv_sig = {734, "glClearBufferfv", 3, _glClearBufferfv_args};

static const char * _glClearBufferfi_args[4] = {"buffer", "drawbuffer", "depth", "stencil"};
static const trace::FunctionSig _glClearBufferfi_sig = {735, "glClearBufferfi", 4, _glClearBufferfi_args};

static const char * _glGetStringi_args[2] = {"name", "index"};
static const trace::FunctionSig _glGetStringi_sig = {736, "glGetStringi", 2, _glGetStringi_args};

static const char * _glDrawArraysInstanced_args[4] = {"mode", "first", "count", "instancecount"};
static const trace::FunctionSig _glDrawArraysInstanced_sig = {737, "glDrawArraysInstanced", 4, _glDrawArraysInstanced_args};

static const char * _glDrawElementsInstanced_args[5] = {"mode", "count", "type", "indices", "instancecount"};
static const trace::FunctionSig _glDrawElementsInstanced_sig = {738, "glDrawElementsInstanced", 5, _glDrawElementsInstanced_args};

static const char * _glTexBuffer_args[3] = {"target", "internalformat", "buffer"};
static const trace::FunctionSig _glTexBuffer_sig = {739, "glTexBuffer", 3, _glTexBuffer_args};

static const char * _glPrimitiveRestartIndex_args[1] = {"index"};
static const trace::FunctionSig _glPrimitiveRestartIndex_sig = {740, "glPrimitiveRestartIndex", 1, _glPrimitiveRestartIndex_args};

static const char * _glGetInteger64i_v_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetInteger64i_v_sig = {741, "glGetInteger64i_v", 3, _glGetInteger64i_v_args};

static const char * _glGetBufferParameteri64v_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferParameteri64v_sig = {742, "glGetBufferParameteri64v", 3, _glGetBufferParameteri64v_args};

static const char * _glFramebufferTexture_args[4] = {"target", "attachment", "texture", "level"};
static const trace::FunctionSig _glFramebufferTexture_sig = {743, "glFramebufferTexture", 4, _glFramebufferTexture_args};

static const char * _glVertexAttribDivisor_args[2] = {"index", "divisor"};
static const trace::FunctionSig _glVertexAttribDivisor_sig = {744, "glVertexAttribDivisor", 2, _glVertexAttribDivisor_args};

static const char * _glMinSampleShading_args[1] = {"value"};
static const trace::FunctionSig _glMinSampleShading_sig = {745, "glMinSampleShading", 1, _glMinSampleShading_args};

static const char * _glBlendEquationi_args[2] = {"buf", "mode"};
static const trace::FunctionSig _glBlendEquationi_sig = {746, "glBlendEquationi", 2, _glBlendEquationi_args};

static const char * _glBlendEquationSeparatei_args[3] = {"buf", "modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparatei_sig = {747, "glBlendEquationSeparatei", 3, _glBlendEquationSeparatei_args};

static const char * _glBlendFunci_args[3] = {"buf", "src", "dst"};
static const trace::FunctionSig _glBlendFunci_sig = {748, "glBlendFunci", 3, _glBlendFunci_args};

static const char * _glBlendFuncSeparatei_args[5] = {"buf", "srcRGB", "dstRGB", "srcAlpha", "dstAlpha"};
static const trace::FunctionSig _glBlendFuncSeparatei_sig = {749, "glBlendFuncSeparatei", 5, _glBlendFuncSeparatei_args};

static const char * _glGetnCompressedTexImage_args[4] = {"target", "lod", "bufSize", "pixels"};
static const trace::FunctionSig _glGetnCompressedTexImage_sig = {750, "glGetnCompressedTexImage", 4, _glGetnCompressedTexImage_args};

static const char * _glGetnTexImage_args[6] = {"target", "level", "format", "type", "bufSize", "pixels"};
static const trace::FunctionSig _glGetnTexImage_sig = {751, "glGetnTexImage", 6, _glGetnTexImage_args};

static const char * _glGetnUniformdv_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformdv_sig = {752, "glGetnUniformdv", 4, _glGetnUniformdv_args};

static const char * _glGetnMapdv_args[4] = {"target", "query", "bufSize", "v"};
static const trace::FunctionSig _glGetnMapdv_sig = {753, "glGetnMapdv", 4, _glGetnMapdv_args};

static const char * _glGetnMapfv_args[4] = {"target", "query", "bufSize", "v"};
static const trace::FunctionSig _glGetnMapfv_sig = {754, "glGetnMapfv", 4, _glGetnMapfv_args};

static const char * _glGetnMapiv_args[4] = {"target", "query", "bufSize", "v"};
static const trace::FunctionSig _glGetnMapiv_sig = {755, "glGetnMapiv", 4, _glGetnMapiv_args};

static const char * _glGetnPixelMapfv_args[3] = {"map", "bufSize", "values"};
static const trace::FunctionSig _glGetnPixelMapfv_sig = {756, "glGetnPixelMapfv", 3, _glGetnPixelMapfv_args};

static const char * _glGetnPixelMapuiv_args[3] = {"map", "bufSize", "values"};
static const trace::FunctionSig _glGetnPixelMapuiv_sig = {757, "glGetnPixelMapuiv", 3, _glGetnPixelMapuiv_args};

static const char * _glGetnPixelMapusv_args[3] = {"map", "bufSize", "values"};
static const trace::FunctionSig _glGetnPixelMapusv_sig = {758, "glGetnPixelMapusv", 3, _glGetnPixelMapusv_args};

static const char * _glGetnPolygonStipple_args[2] = {"bufSize", "pattern"};
static const trace::FunctionSig _glGetnPolygonStipple_sig = {759, "glGetnPolygonStipple", 2, _glGetnPolygonStipple_args};

static const char * _glGetnColorTable_args[5] = {"target", "format", "type", "bufSize", "table"};
static const trace::FunctionSig _glGetnColorTable_sig = {760, "glGetnColorTable", 5, _glGetnColorTable_args};

static const char * _glGetnConvolutionFilter_args[5] = {"target", "format", "type", "bufSize", "image"};
static const trace::FunctionSig _glGetnConvolutionFilter_sig = {761, "glGetnConvolutionFilter", 5, _glGetnConvolutionFilter_args};

static const char * _glGetnSeparableFilter_args[8] = {"target", "format", "type", "rowBufSize", "row", "columnBufSize", "column", "span"};
static const trace::FunctionSig _glGetnSeparableFilter_sig = {762, "glGetnSeparableFilter", 8, _glGetnSeparableFilter_args};

static const char * _glGetnHistogram_args[6] = {"target", "reset", "format", "type", "bufSize", "values"};
static const trace::FunctionSig _glGetnHistogram_sig = {763, "glGetnHistogram", 6, _glGetnHistogram_args};

static const char * _glGetnMinmax_args[6] = {"target", "reset", "format", "type", "bufSize", "values"};
static const trace::FunctionSig _glGetnMinmax_sig = {764, "glGetnMinmax", 6, _glGetnMinmax_args};

static const char * _glSpecializeShader_args[5] = {"shader", "pEntryPoint", "numSpecializationConstants", "pConstantIndex", "pConstantValue"};
static const trace::FunctionSig _glSpecializeShader_sig = {765, "glSpecializeShader", 5, _glSpecializeShader_args};

static const char * _glMultiDrawArraysIndirectCount_args[5] = {"mode", "indirect", "drawcount", "maxdrawcount", "stride"};
static const trace::FunctionSig _glMultiDrawArraysIndirectCount_sig = {766, "glMultiDrawArraysIndirectCount", 5, _glMultiDrawArraysIndirectCount_args};

static const char * _glMultiDrawElementsIndirectCount_args[6] = {"mode", "type", "indirect", "drawcount", "maxdrawcount", "stride"};
static const trace::FunctionSig _glMultiDrawElementsIndirectCount_sig = {767, "glMultiDrawElementsIndirectCount", 6, _glMultiDrawElementsIndirectCount_args};

static const char * _glClipPlanef_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glClipPlanef_sig = {768, "glClipPlanef", 2, _glClipPlanef_args};

static const char * _glFrustumf_args[6] = {"left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glFrustumf_sig = {769, "glFrustumf", 6, _glFrustumf_args};

static const char * _glGetClipPlanef_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glGetClipPlanef_sig = {770, "glGetClipPlanef", 2, _glGetClipPlanef_args};

static const char * _glOrthof_args[6] = {"left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glOrthof_sig = {771, "glOrthof", 6, _glOrthof_args};

static const char * _glAlphaFuncx_args[2] = {"func", "ref"};
static const trace::FunctionSig _glAlphaFuncx_sig = {772, "glAlphaFuncx", 2, _glAlphaFuncx_args};

static const char * _glClearColorx_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glClearColorx_sig = {773, "glClearColorx", 4, _glClearColorx_args};

static const char * _glClearDepthx_args[1] = {"depth"};
static const trace::FunctionSig _glClearDepthx_sig = {774, "glClearDepthx", 1, _glClearDepthx_args};

static const char * _glClipPlanex_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glClipPlanex_sig = {775, "glClipPlanex", 2, _glClipPlanex_args};

static const char * _glColor4x_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4x_sig = {776, "glColor4x", 4, _glColor4x_args};

static const char * _glDepthRangex_args[2] = {"zNear", "zFar"};
static const trace::FunctionSig _glDepthRangex_sig = {777, "glDepthRangex", 2, _glDepthRangex_args};

static const char * _glFogx_args[2] = {"pname", "param"};
static const trace::FunctionSig _glFogx_sig = {778, "glFogx", 2, _glFogx_args};

static const char * _glFogxv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glFogxv_sig = {779, "glFogxv", 2, _glFogxv_args};

static const char * _glFrustumx_args[6] = {"left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glFrustumx_sig = {780, "glFrustumx", 6, _glFrustumx_args};

static const char * _glGetClipPlanex_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glGetClipPlanex_sig = {781, "glGetClipPlanex", 2, _glGetClipPlanex_args};

static const char * _glGetFixedv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetFixedv_sig = {782, "glGetFixedv", 2, _glGetFixedv_args};

static const char * _glGetLightxv_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glGetLightxv_sig = {783, "glGetLightxv", 3, _glGetLightxv_args};

static const char * _glGetMaterialxv_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glGetMaterialxv_sig = {784, "glGetMaterialxv", 3, _glGetMaterialxv_args};

static const char * _glGetTexEnvxv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexEnvxv_sig = {785, "glGetTexEnvxv", 3, _glGetTexEnvxv_args};

static const char * _glGetTexParameterxv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterxv_sig = {786, "glGetTexParameterxv", 3, _glGetTexParameterxv_args};

static const char * _glLightModelx_args[2] = {"pname", "param"};
static const trace::FunctionSig _glLightModelx_sig = {787, "glLightModelx", 2, _glLightModelx_args};

static const char * _glLightModelxv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glLightModelxv_sig = {788, "glLightModelxv", 2, _glLightModelxv_args};

static const char * _glLightx_args[3] = {"light", "pname", "param"};
static const trace::FunctionSig _glLightx_sig = {789, "glLightx", 3, _glLightx_args};

static const char * _glLightxv_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glLightxv_sig = {790, "glLightxv", 3, _glLightxv_args};

static const char * _glLineWidthx_args[1] = {"width"};
static const trace::FunctionSig _glLineWidthx_sig = {791, "glLineWidthx", 1, _glLineWidthx_args};

static const char * _glLoadMatrixx_args[1] = {"m"};
static const trace::FunctionSig _glLoadMatrixx_sig = {792, "glLoadMatrixx", 1, _glLoadMatrixx_args};

static const char * _glMaterialx_args[3] = {"face", "pname", "param"};
static const trace::FunctionSig _glMaterialx_sig = {793, "glMaterialx", 3, _glMaterialx_args};

static const char * _glMaterialxv_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glMaterialxv_sig = {794, "glMaterialxv", 3, _glMaterialxv_args};

static const char * _glMultMatrixx_args[1] = {"m"};
static const trace::FunctionSig _glMultMatrixx_sig = {795, "glMultMatrixx", 1, _glMultMatrixx_args};

static const char * _glMultiTexCoord4x_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4x_sig = {796, "glMultiTexCoord4x", 5, _glMultiTexCoord4x_args};

static const char * _glNormal3x_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3x_sig = {797, "glNormal3x", 3, _glNormal3x_args};

static const char * _glOrthox_args[6] = {"left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glOrthox_sig = {798, "glOrthox", 6, _glOrthox_args};

static const char * _glPointParameterx_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameterx_sig = {799, "glPointParameterx", 2, _glPointParameterx_args};

static const char * _glPointParameterxv_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameterxv_sig = {800, "glPointParameterxv", 2, _glPointParameterxv_args};

static const char * _glPointSizex_args[1] = {"size"};
static const trace::FunctionSig _glPointSizex_sig = {801, "glPointSizex", 1, _glPointSizex_args};

static const char * _glPolygonOffsetx_args[2] = {"factor", "units"};
static const trace::FunctionSig _glPolygonOffsetx_sig = {802, "glPolygonOffsetx", 2, _glPolygonOffsetx_args};

static const char * _glRotatex_args[4] = {"angle", "x", "y", "z"};
static const trace::FunctionSig _glRotatex_sig = {803, "glRotatex", 4, _glRotatex_args};

static const char * _glSampleCoveragex_args[2] = {"value", "invert"};
static const trace::FunctionSig _glSampleCoveragex_sig = {804, "glSampleCoveragex", 2, _glSampleCoveragex_args};

static const char * _glScalex_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glScalex_sig = {805, "glScalex", 3, _glScalex_args};

static const char * _glTexEnvx_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glTexEnvx_sig = {806, "glTexEnvx", 3, _glTexEnvx_args};

static const char * _glTexEnvxv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexEnvxv_sig = {807, "glTexEnvxv", 3, _glTexEnvxv_args};

static const char * _glTexParameterx_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glTexParameterx_sig = {808, "glTexParameterx", 3, _glTexParameterx_args};

static const char * _glTexParameterxv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameterxv_sig = {809, "glTexParameterxv", 3, _glTexParameterxv_args};

static const char * _glTranslatex_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glTranslatex_sig = {810, "glTranslatex", 3, _glTranslatex_args};

static const char ** _glBlendBarrier_args = NULL;
static const trace::FunctionSig _glBlendBarrier_sig = {811, "glBlendBarrier", 0, _glBlendBarrier_args};

static const char * _glPrimitiveBoundingBox_args[8] = {"minX", "minY", "minZ", "minW", "maxX", "maxY", "maxZ", "maxW"};
static const trace::FunctionSig _glPrimitiveBoundingBox_sig = {812, "glPrimitiveBoundingBox", 8, _glPrimitiveBoundingBox_args};

static const char * _glTbufferMask3DFX_args[1] = {"mask"};
static const trace::FunctionSig _glTbufferMask3DFX_sig = {813, "glTbufferMask3DFX", 1, _glTbufferMask3DFX_args};

static const char * _glDebugMessageEnableAMD_args[5] = {"category", "severity", "count", "ids", "enabled"};
static const trace::FunctionSig _glDebugMessageEnableAMD_sig = {814, "glDebugMessageEnableAMD", 5, _glDebugMessageEnableAMD_args};

static const char * _glDebugMessageInsertAMD_args[5] = {"category", "severity", "id", "length", "buf"};
static const trace::FunctionSig _glDebugMessageInsertAMD_sig = {815, "glDebugMessageInsertAMD", 5, _glDebugMessageInsertAMD_args};

static const char * _glDebugMessageCallbackAMD_args[2] = {"callback", "userParam"};
static const trace::FunctionSig _glDebugMessageCallbackAMD_sig = {816, "glDebugMessageCallbackAMD", 2, _glDebugMessageCallbackAMD_args};

static const char * _glGetDebugMessageLogAMD_args[7] = {"count", "bufsize", "categories", "severities", "ids", "lengths", "message"};
static const trace::FunctionSig _glGetDebugMessageLogAMD_sig = {817, "glGetDebugMessageLogAMD", 7, _glGetDebugMessageLogAMD_args};

static const char * _glBlendFuncIndexedAMD_args[3] = {"buf", "src", "dst"};
static const trace::FunctionSig _glBlendFuncIndexedAMD_sig = {818, "glBlendFuncIndexedAMD", 3, _glBlendFuncIndexedAMD_args};

static const char * _glBlendFuncSeparateIndexedAMD_args[5] = {"buf", "srcRGB", "dstRGB", "srcAlpha", "dstAlpha"};
static const trace::FunctionSig _glBlendFuncSeparateIndexedAMD_sig = {819, "glBlendFuncSeparateIndexedAMD", 5, _glBlendFuncSeparateIndexedAMD_args};

static const char * _glBlendEquationIndexedAMD_args[2] = {"buf", "mode"};
static const trace::FunctionSig _glBlendEquationIndexedAMD_sig = {820, "glBlendEquationIndexedAMD", 2, _glBlendEquationIndexedAMD_args};

static const char * _glBlendEquationSeparateIndexedAMD_args[3] = {"buf", "modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparateIndexedAMD_sig = {821, "glBlendEquationSeparateIndexedAMD", 3, _glBlendEquationSeparateIndexedAMD_args};

static const char * _glVertexAttribParameteriAMD_args[3] = {"index", "pname", "param"};
static const trace::FunctionSig _glVertexAttribParameteriAMD_sig = {822, "glVertexAttribParameteriAMD", 3, _glVertexAttribParameteriAMD_args};

static const char * _glMultiDrawArraysIndirectAMD_args[4] = {"mode", "indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawArraysIndirectAMD_sig = {823, "glMultiDrawArraysIndirectAMD", 4, _glMultiDrawArraysIndirectAMD_args};

static const char * _glMultiDrawElementsIndirectAMD_args[5] = {"mode", "type", "indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawElementsIndirectAMD_sig = {824, "glMultiDrawElementsIndirectAMD", 5, _glMultiDrawElementsIndirectAMD_args};

static const char * _glGenNamesAMD_args[3] = {"identifier", "num", "names"};
static const trace::FunctionSig _glGenNamesAMD_sig = {825, "glGenNamesAMD", 3, _glGenNamesAMD_args};

static const char * _glDeleteNamesAMD_args[3] = {"identifier", "num", "names"};
static const trace::FunctionSig _glDeleteNamesAMD_sig = {826, "glDeleteNamesAMD", 3, _glDeleteNamesAMD_args};

static const char * _glIsNameAMD_args[2] = {"identifier", "name"};
static const trace::FunctionSig _glIsNameAMD_sig = {827, "glIsNameAMD", 2, _glIsNameAMD_args};

static const char * _glQueryObjectParameteruiAMD_args[4] = {"target", "id", "pname", "param"};
static const trace::FunctionSig _glQueryObjectParameteruiAMD_sig = {828, "glQueryObjectParameteruiAMD", 4, _glQueryObjectParameteruiAMD_args};

static const char * _glGetPerfMonitorGroupsAMD_args[3] = {"numGroups", "groupsSize", "groups"};
static const trace::FunctionSig _glGetPerfMonitorGroupsAMD_sig = {829, "glGetPerfMonitorGroupsAMD", 3, _glGetPerfMonitorGroupsAMD_args};

static const char * _glGetPerfMonitorCountersAMD_args[5] = {"group", "numCounters", "maxActiveCounters", "counterSize", "counters"};
static const trace::FunctionSig _glGetPerfMonitorCountersAMD_sig = {830, "glGetPerfMonitorCountersAMD", 5, _glGetPerfMonitorCountersAMD_args};

static const char * _glGetPerfMonitorGroupStringAMD_args[4] = {"group", "bufSize", "length", "groupString"};
static const trace::FunctionSig _glGetPerfMonitorGroupStringAMD_sig = {831, "glGetPerfMonitorGroupStringAMD", 4, _glGetPerfMonitorGroupStringAMD_args};

static const char * _glGetPerfMonitorCounterStringAMD_args[5] = {"group", "counter", "bufSize", "length", "counterString"};
static const trace::FunctionSig _glGetPerfMonitorCounterStringAMD_sig = {832, "glGetPerfMonitorCounterStringAMD", 5, _glGetPerfMonitorCounterStringAMD_args};

static const char * _glGetPerfMonitorCounterInfoAMD_args[4] = {"group", "counter", "pname", "data"};
static const trace::FunctionSig _glGetPerfMonitorCounterInfoAMD_sig = {833, "glGetPerfMonitorCounterInfoAMD", 4, _glGetPerfMonitorCounterInfoAMD_args};

static const char * _glGenPerfMonitorsAMD_args[2] = {"n", "monitors"};
static const trace::FunctionSig _glGenPerfMonitorsAMD_sig = {834, "glGenPerfMonitorsAMD", 2, _glGenPerfMonitorsAMD_args};

static const char * _glDeletePerfMonitorsAMD_args[2] = {"n", "monitors"};
static const trace::FunctionSig _glDeletePerfMonitorsAMD_sig = {835, "glDeletePerfMonitorsAMD", 2, _glDeletePerfMonitorsAMD_args};

static const char * _glSelectPerfMonitorCountersAMD_args[5] = {"monitor", "enable", "group", "numCounters", "counterList"};
static const trace::FunctionSig _glSelectPerfMonitorCountersAMD_sig = {836, "glSelectPerfMonitorCountersAMD", 5, _glSelectPerfMonitorCountersAMD_args};

static const char * _glBeginPerfMonitorAMD_args[1] = {"monitor"};
static const trace::FunctionSig _glBeginPerfMonitorAMD_sig = {837, "glBeginPerfMonitorAMD", 1, _glBeginPerfMonitorAMD_args};

static const char * _glEndPerfMonitorAMD_args[1] = {"monitor"};
static const trace::FunctionSig _glEndPerfMonitorAMD_sig = {838, "glEndPerfMonitorAMD", 1, _glEndPerfMonitorAMD_args};

static const char * _glGetPerfMonitorCounterDataAMD_args[5] = {"monitor", "pname", "dataSize", "data", "bytesWritten"};
static const trace::FunctionSig _glGetPerfMonitorCounterDataAMD_sig = {839, "glGetPerfMonitorCounterDataAMD", 5, _glGetPerfMonitorCounterDataAMD_args};

static const char * _glSetMultisamplefvAMD_args[3] = {"pname", "index", "val"};
static const trace::FunctionSig _glSetMultisamplefvAMD_sig = {840, "glSetMultisamplefvAMD", 3, _glSetMultisamplefvAMD_args};

static const char * _glTexStorageSparseAMD_args[7] = {"target", "internalFormat", "width", "height", "depth", "layers", "flags"};
static const trace::FunctionSig _glTexStorageSparseAMD_sig = {841, "glTexStorageSparseAMD", 7, _glTexStorageSparseAMD_args};

static const char * _glTextureStorageSparseAMD_args[8] = {"texture", "target", "internalFormat", "width", "height", "depth", "layers", "flags"};
static const trace::FunctionSig _glTextureStorageSparseAMD_sig = {842, "glTextureStorageSparseAMD", 8, _glTextureStorageSparseAMD_args};

static const char * _glStencilOpValueAMD_args[2] = {"face", "value"};
static const trace::FunctionSig _glStencilOpValueAMD_sig = {843, "glStencilOpValueAMD", 2, _glStencilOpValueAMD_args};

static const char * _glTessellationFactorAMD_args[1] = {"factor"};
static const trace::FunctionSig _glTessellationFactorAMD_sig = {844, "glTessellationFactorAMD", 1, _glTessellationFactorAMD_args};

static const char * _glTessellationModeAMD_args[1] = {"mode"};
static const trace::FunctionSig _glTessellationModeAMD_sig = {845, "glTessellationModeAMD", 1, _glTessellationModeAMD_args};

static const char * _glBlitFramebufferANGLE_args[10] = {"srcX0", "srcY0", "srcX1", "srcY1", "dstX0", "dstY0", "dstX1", "dstY1", "mask", "filter"};
static const trace::FunctionSig _glBlitFramebufferANGLE_sig = {846, "glBlitFramebufferANGLE", 10, _glBlitFramebufferANGLE_args};

static const char * _glRenderbufferStorageMultisampleANGLE_args[5] = {"target", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageMultisampleANGLE_sig = {847, "glRenderbufferStorageMultisampleANGLE", 5, _glRenderbufferStorageMultisampleANGLE_args};

static const char * _glDrawArraysInstancedANGLE_args[4] = {"mode", "first", "count", "instancecount"};
static const trace::FunctionSig _glDrawArraysInstancedANGLE_sig = {848, "glDrawArraysInstancedANGLE", 4, _glDrawArraysInstancedANGLE_args};

static const char * _glDrawElementsInstancedANGLE_args[5] = {"mode", "count", "type", "indices", "instancecount"};
static const trace::FunctionSig _glDrawElementsInstancedANGLE_sig = {849, "glDrawElementsInstancedANGLE", 5, _glDrawElementsInstancedANGLE_args};

static const char * _glVertexAttribDivisorANGLE_args[2] = {"index", "divisor"};
static const trace::FunctionSig _glVertexAttribDivisorANGLE_sig = {850, "glVertexAttribDivisorANGLE", 2, _glVertexAttribDivisorANGLE_args};

static const char * _glGenQueriesANGLE_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenQueriesANGLE_sig = {851, "glGenQueriesANGLE", 2, _glGenQueriesANGLE_args};

static const char * _glDeleteQueriesANGLE_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteQueriesANGLE_sig = {852, "glDeleteQueriesANGLE", 2, _glDeleteQueriesANGLE_args};

static const char * _glIsQueryANGLE_args[1] = {"id"};
static const trace::FunctionSig _glIsQueryANGLE_sig = {853, "glIsQueryANGLE", 1, _glIsQueryANGLE_args};

static const char * _glBeginQueryANGLE_args[2] = {"target", "id"};
static const trace::FunctionSig _glBeginQueryANGLE_sig = {854, "glBeginQueryANGLE", 2, _glBeginQueryANGLE_args};

static const char * _glEndQueryANGLE_args[1] = {"target"};
static const trace::FunctionSig _glEndQueryANGLE_sig = {855, "glEndQueryANGLE", 1, _glEndQueryANGLE_args};

static const char * _glQueryCounterANGLE_args[2] = {"id", "target"};
static const trace::FunctionSig _glQueryCounterANGLE_sig = {856, "glQueryCounterANGLE", 2, _glQueryCounterANGLE_args};

static const char * _glGetQueryivANGLE_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetQueryivANGLE_sig = {857, "glGetQueryivANGLE", 3, _glGetQueryivANGLE_args};

static const char * _glGetQueryObjectivANGLE_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectivANGLE_sig = {858, "glGetQueryObjectivANGLE", 3, _glGetQueryObjectivANGLE_args};

static const char * _glGetQueryObjectuivANGLE_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectuivANGLE_sig = {859, "glGetQueryObjectuivANGLE", 3, _glGetQueryObjectuivANGLE_args};

static const char * _glGetQueryObjecti64vANGLE_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjecti64vANGLE_sig = {860, "glGetQueryObjecti64vANGLE", 3, _glGetQueryObjecti64vANGLE_args};

static const char * _glGetQueryObjectui64vANGLE_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectui64vANGLE_sig = {861, "glGetQueryObjectui64vANGLE", 3, _glGetQueryObjectui64vANGLE_args};

static const char * _glGetTranslatedShaderSourceANGLE_args[4] = {"shader", "bufsize", "length", "source"};
static const trace::FunctionSig _glGetTranslatedShaderSourceANGLE_sig = {862, "glGetTranslatedShaderSourceANGLE", 4, _glGetTranslatedShaderSourceANGLE_args};

static const char * _glCopyTextureLevelsAPPLE_args[4] = {"destinationTexture", "sourceTexture", "sourceBaseLevel", "sourceLevelCount"};
static const trace::FunctionSig _glCopyTextureLevelsAPPLE_sig = {863, "glCopyTextureLevelsAPPLE", 4, _glCopyTextureLevelsAPPLE_args};

static const char * _glElementPointerAPPLE_args[2] = {"type", "pointer"};
static const trace::FunctionSig _glElementPointerAPPLE_sig = {864, "glElementPointerAPPLE", 2, _glElementPointerAPPLE_args};

static const char * _glDrawElementArrayAPPLE_args[3] = {"mode", "first", "count"};
static const trace::FunctionSig _glDrawElementArrayAPPLE_sig = {865, "glDrawElementArrayAPPLE", 3, _glDrawElementArrayAPPLE_args};

static const char * _glDrawRangeElementArrayAPPLE_args[5] = {"mode", "start", "end", "first", "count"};
static const trace::FunctionSig _glDrawRangeElementArrayAPPLE_sig = {866, "glDrawRangeElementArrayAPPLE", 5, _glDrawRangeElementArrayAPPLE_args};

static const char * _glMultiDrawElementArrayAPPLE_args[4] = {"mode", "first", "count", "drawcount"};
static const trace::FunctionSig _glMultiDrawElementArrayAPPLE_sig = {867, "glMultiDrawElementArrayAPPLE", 4, _glMultiDrawElementArrayAPPLE_args};

static const char * _glMultiDrawRangeElementArrayAPPLE_args[6] = {"mode", "start", "end", "first", "count", "drawcount"};
static const trace::FunctionSig _glMultiDrawRangeElementArrayAPPLE_sig = {868, "glMultiDrawRangeElementArrayAPPLE", 6, _glMultiDrawRangeElementArrayAPPLE_args};

static const char * _glGenFencesAPPLE_args[2] = {"n", "fences"};
static const trace::FunctionSig _glGenFencesAPPLE_sig = {869, "glGenFencesAPPLE", 2, _glGenFencesAPPLE_args};

static const char * _glDeleteFencesAPPLE_args[2] = {"n", "fences"};
static const trace::FunctionSig _glDeleteFencesAPPLE_sig = {870, "glDeleteFencesAPPLE", 2, _glDeleteFencesAPPLE_args};

static const char * _glSetFenceAPPLE_args[1] = {"fence"};
static const trace::FunctionSig _glSetFenceAPPLE_sig = {871, "glSetFenceAPPLE", 1, _glSetFenceAPPLE_args};

static const char * _glIsFenceAPPLE_args[1] = {"fence"};
static const trace::FunctionSig _glIsFenceAPPLE_sig = {872, "glIsFenceAPPLE", 1, _glIsFenceAPPLE_args};

static const char * _glTestFenceAPPLE_args[1] = {"fence"};
static const trace::FunctionSig _glTestFenceAPPLE_sig = {873, "glTestFenceAPPLE", 1, _glTestFenceAPPLE_args};

static const char * _glFinishFenceAPPLE_args[1] = {"fence"};
static const trace::FunctionSig _glFinishFenceAPPLE_sig = {874, "glFinishFenceAPPLE", 1, _glFinishFenceAPPLE_args};

static const char * _glTestObjectAPPLE_args[2] = {"object", "name"};
static const trace::FunctionSig _glTestObjectAPPLE_sig = {875, "glTestObjectAPPLE", 2, _glTestObjectAPPLE_args};

static const char * _glFinishObjectAPPLE_args[2] = {"object", "name"};
static const trace::FunctionSig _glFinishObjectAPPLE_sig = {876, "glFinishObjectAPPLE", 2, _glFinishObjectAPPLE_args};

static const char * _glBufferParameteriAPPLE_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glBufferParameteriAPPLE_sig = {877, "glBufferParameteriAPPLE", 3, _glBufferParameteriAPPLE_args};

static const char * _glFlushMappedBufferRangeAPPLE_args[3] = {"target", "offset", "size"};
static const trace::FunctionSig _glFlushMappedBufferRangeAPPLE_sig = {878, "glFlushMappedBufferRangeAPPLE", 3, _glFlushMappedBufferRangeAPPLE_args};

static const char ** _glFlushRenderAPPLE_args = NULL;
static const trace::FunctionSig _glFlushRenderAPPLE_sig = {879, "glFlushRenderAPPLE", 0, _glFlushRenderAPPLE_args};

static const char ** _glFinishRenderAPPLE_args = NULL;
static const trace::FunctionSig _glFinishRenderAPPLE_sig = {880, "glFinishRenderAPPLE", 0, _glFinishRenderAPPLE_args};

static const char ** _glSwapAPPLE_args = NULL;
static const trace::FunctionSig _glSwapAPPLE_sig = {881, "glSwapAPPLE", 0, _glSwapAPPLE_args};

static const char * _glRenderbufferStorageMultisampleAPPLE_args[5] = {"target", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageMultisampleAPPLE_sig = {882, "glRenderbufferStorageMultisampleAPPLE", 5, _glRenderbufferStorageMultisampleAPPLE_args};

static const char ** _glResolveMultisampleFramebufferAPPLE_args = NULL;
static const trace::FunctionSig _glResolveMultisampleFramebufferAPPLE_sig = {883, "glResolveMultisampleFramebufferAPPLE", 0, _glResolveMultisampleFramebufferAPPLE_args};

static const char * _glObjectPurgeableAPPLE_args[3] = {"objectType", "name", "option"};
static const trace::FunctionSig _glObjectPurgeableAPPLE_sig = {884, "glObjectPurgeableAPPLE", 3, _glObjectPurgeableAPPLE_args};

static const char * _glObjectUnpurgeableAPPLE_args[3] = {"objectType", "name", "option"};
static const trace::FunctionSig _glObjectUnpurgeableAPPLE_sig = {885, "glObjectUnpurgeableAPPLE", 3, _glObjectUnpurgeableAPPLE_args};

static const char * _glGetObjectParameterivAPPLE_args[4] = {"objectType", "name", "pname", "params"};
static const trace::FunctionSig _glGetObjectParameterivAPPLE_sig = {886, "glGetObjectParameterivAPPLE", 4, _glGetObjectParameterivAPPLE_args};

static const char * _glPointSizePointerAPPLE_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glPointSizePointerAPPLE_sig = {887, "glPointSizePointerAPPLE", 3, _glPointSizePointerAPPLE_args};

static const char * _glVertexPointSizefAPPLE_args[1] = {"size"};
static const trace::FunctionSig _glVertexPointSizefAPPLE_sig = {888, "glVertexPointSizefAPPLE", 1, _glVertexPointSizefAPPLE_args};

static const char * _glFenceSyncAPPLE_args[2] = {"condition", "flags"};
static const trace::FunctionSig _glFenceSyncAPPLE_sig = {889, "glFenceSyncAPPLE", 2, _glFenceSyncAPPLE_args};

static const char * _glIsSyncAPPLE_args[1] = {"sync"};
static const trace::FunctionSig _glIsSyncAPPLE_sig = {890, "glIsSyncAPPLE", 1, _glIsSyncAPPLE_args};

static const char * _glDeleteSyncAPPLE_args[1] = {"sync"};
static const trace::FunctionSig _glDeleteSyncAPPLE_sig = {891, "glDeleteSyncAPPLE", 1, _glDeleteSyncAPPLE_args};

static const char * _glClientWaitSyncAPPLE_args[3] = {"sync", "flags", "timeout"};
static const trace::FunctionSig _glClientWaitSyncAPPLE_sig = {892, "glClientWaitSyncAPPLE", 3, _glClientWaitSyncAPPLE_args};

static const char * _glWaitSyncAPPLE_args[3] = {"sync", "flags", "timeout"};
static const trace::FunctionSig _glWaitSyncAPPLE_sig = {893, "glWaitSyncAPPLE", 3, _glWaitSyncAPPLE_args};

static const char * _glGetInteger64vAPPLE_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetInteger64vAPPLE_sig = {894, "glGetInteger64vAPPLE", 2, _glGetInteger64vAPPLE_args};

static const char * _glGetSyncivAPPLE_args[5] = {"sync", "pname", "bufSize", "length", "values"};
static const trace::FunctionSig _glGetSyncivAPPLE_sig = {895, "glGetSyncivAPPLE", 5, _glGetSyncivAPPLE_args};

static const char * _glTextureRangeAPPLE_args[3] = {"target", "length", "pointer"};
static const trace::FunctionSig _glTextureRangeAPPLE_sig = {896, "glTextureRangeAPPLE", 3, _glTextureRangeAPPLE_args};

static const char * _glGetTexParameterPointervAPPLE_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterPointervAPPLE_sig = {897, "glGetTexParameterPointervAPPLE", 3, _glGetTexParameterPointervAPPLE_args};

static const char * _glBindVertexArrayAPPLE_args[1] = {"array"};
static const trace::FunctionSig _glBindVertexArrayAPPLE_sig = {898, "glBindVertexArrayAPPLE", 1, _glBindVertexArrayAPPLE_args};

static const char * _glDeleteVertexArraysAPPLE_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glDeleteVertexArraysAPPLE_sig = {899, "glDeleteVertexArraysAPPLE", 2, _glDeleteVertexArraysAPPLE_args};

static const char * _glGenVertexArraysAPPLE_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glGenVertexArraysAPPLE_sig = {900, "glGenVertexArraysAPPLE", 2, _glGenVertexArraysAPPLE_args};

static const char * _glIsVertexArrayAPPLE_args[1] = {"array"};
static const trace::FunctionSig _glIsVertexArrayAPPLE_sig = {901, "glIsVertexArrayAPPLE", 1, _glIsVertexArrayAPPLE_args};

static const char * _glVertexArrayRangeAPPLE_args[2] = {"length", "pointer"};
static const trace::FunctionSig _glVertexArrayRangeAPPLE_sig = {902, "glVertexArrayRangeAPPLE", 2, _glVertexArrayRangeAPPLE_args};

static const char * _glFlushVertexArrayRangeAPPLE_args[2] = {"length", "pointer"};
static const trace::FunctionSig _glFlushVertexArrayRangeAPPLE_sig = {903, "glFlushVertexArrayRangeAPPLE", 2, _glFlushVertexArrayRangeAPPLE_args};

static const char * _glVertexArrayParameteriAPPLE_args[2] = {"pname", "param"};
static const trace::FunctionSig _glVertexArrayParameteriAPPLE_sig = {904, "glVertexArrayParameteriAPPLE", 2, _glVertexArrayParameteriAPPLE_args};

static const char * _glEnableVertexAttribAPPLE_args[2] = {"index", "pname"};
static const trace::FunctionSig _glEnableVertexAttribAPPLE_sig = {905, "glEnableVertexAttribAPPLE", 2, _glEnableVertexAttribAPPLE_args};

static const char * _glDisableVertexAttribAPPLE_args[2] = {"index", "pname"};
static const trace::FunctionSig _glDisableVertexAttribAPPLE_sig = {906, "glDisableVertexAttribAPPLE", 2, _glDisableVertexAttribAPPLE_args};

static const char * _glIsVertexAttribEnabledAPPLE_args[2] = {"index", "pname"};
static const trace::FunctionSig _glIsVertexAttribEnabledAPPLE_sig = {907, "glIsVertexAttribEnabledAPPLE", 2, _glIsVertexAttribEnabledAPPLE_args};

static const char * _glMapVertexAttrib1dAPPLE_args[7] = {"index", "size", "u1", "u2", "stride", "order", "points"};
static const trace::FunctionSig _glMapVertexAttrib1dAPPLE_sig = {908, "glMapVertexAttrib1dAPPLE", 7, _glMapVertexAttrib1dAPPLE_args};

static const char * _glMapVertexAttrib1fAPPLE_args[7] = {"index", "size", "u1", "u2", "stride", "order", "points"};
static const trace::FunctionSig _glMapVertexAttrib1fAPPLE_sig = {909, "glMapVertexAttrib1fAPPLE", 7, _glMapVertexAttrib1fAPPLE_args};

static const char * _glMapVertexAttrib2dAPPLE_args[11] = {"index", "size", "u1", "u2", "ustride", "uorder", "v1", "v2", "vstride", "vorder", "points"};
static const trace::FunctionSig _glMapVertexAttrib2dAPPLE_sig = {910, "glMapVertexAttrib2dAPPLE", 11, _glMapVertexAttrib2dAPPLE_args};

static const char * _glMapVertexAttrib2fAPPLE_args[11] = {"index", "size", "u1", "u2", "ustride", "uorder", "v1", "v2", "vstride", "vorder", "points"};
static const trace::FunctionSig _glMapVertexAttrib2fAPPLE_sig = {911, "glMapVertexAttrib2fAPPLE", 11, _glMapVertexAttrib2fAPPLE_args};

static const char ** _glReleaseShaderCompiler_args = NULL;
static const trace::FunctionSig _glReleaseShaderCompiler_sig = {912, "glReleaseShaderCompiler", 0, _glReleaseShaderCompiler_args};

static const char * _glShaderBinary_args[5] = {"count", "shaders", "binaryformat", "binary", "length"};
static const trace::FunctionSig _glShaderBinary_sig = {913, "glShaderBinary", 5, _glShaderBinary_args};

static const char * _glGetShaderPrecisionFormat_args[4] = {"shadertype", "precisiontype", "range", "precision"};
static const trace::FunctionSig _glGetShaderPrecisionFormat_sig = {914, "glGetShaderPrecisionFormat", 4, _glGetShaderPrecisionFormat_args};

static const char * _glDepthRangef_args[2] = {"n", "f"};
static const trace::FunctionSig _glDepthRangef_sig = {915, "glDepthRangef", 2, _glDepthRangef_args};

static const char * _glClearDepthf_args[1] = {"d"};
static const trace::FunctionSig _glClearDepthf_sig = {916, "glClearDepthf", 1, _glClearDepthf_args};

static const char * _glMemoryBarrierByRegion_args[1] = {"barriers"};
static const trace::FunctionSig _glMemoryBarrierByRegion_sig = {917, "glMemoryBarrierByRegion", 1, _glMemoryBarrierByRegion_args};

static const char * _glPrimitiveBoundingBoxARB_args[8] = {"minX", "minY", "minZ", "minW", "maxX", "maxY", "maxZ", "maxW"};
static const trace::FunctionSig _glPrimitiveBoundingBoxARB_sig = {918, "glPrimitiveBoundingBoxARB", 8, _glPrimitiveBoundingBoxARB_args};

static const char * _glDrawArraysInstancedBaseInstance_args[5] = {"mode", "first", "count", "instancecount", "baseinstance"};
static const trace::FunctionSig _glDrawArraysInstancedBaseInstance_sig = {919, "glDrawArraysInstancedBaseInstance", 5, _glDrawArraysInstancedBaseInstance_args};

static const char * _glDrawElementsInstancedBaseInstance_args[6] = {"mode", "count", "type", "indices", "instancecount", "baseinstance"};
static const trace::FunctionSig _glDrawElementsInstancedBaseInstance_sig = {920, "glDrawElementsInstancedBaseInstance", 6, _glDrawElementsInstancedBaseInstance_args};

static const char * _glDrawElementsInstancedBaseVertexBaseInstance_args[7] = {"mode", "count", "type", "indices", "instancecount", "basevertex", "baseinstance"};
static const trace::FunctionSig _glDrawElementsInstancedBaseVertexBaseInstance_sig = {921, "glDrawElementsInstancedBaseVertexBaseInstance", 7, _glDrawElementsInstancedBaseVertexBaseInstance_args};

static const char * _glGetTextureHandleARB_args[1] = {"texture"};
static const trace::FunctionSig _glGetTextureHandleARB_sig = {922, "glGetTextureHandleARB", 1, _glGetTextureHandleARB_args};

static const char * _glGetTextureSamplerHandleARB_args[2] = {"texture", "sampler"};
static const trace::FunctionSig _glGetTextureSamplerHandleARB_sig = {923, "glGetTextureSamplerHandleARB", 2, _glGetTextureSamplerHandleARB_args};

static const char * _glMakeTextureHandleResidentARB_args[1] = {"handle"};
static const trace::FunctionSig _glMakeTextureHandleResidentARB_sig = {924, "glMakeTextureHandleResidentARB", 1, _glMakeTextureHandleResidentARB_args};

static const char * _glMakeTextureHandleNonResidentARB_args[1] = {"handle"};
static const trace::FunctionSig _glMakeTextureHandleNonResidentARB_sig = {925, "glMakeTextureHandleNonResidentARB", 1, _glMakeTextureHandleNonResidentARB_args};

static const char * _glGetImageHandleARB_args[5] = {"texture", "level", "layered", "layer", "format"};
static const trace::FunctionSig _glGetImageHandleARB_sig = {926, "glGetImageHandleARB", 5, _glGetImageHandleARB_args};

static const char * _glMakeImageHandleResidentARB_args[2] = {"handle", "access"};
static const trace::FunctionSig _glMakeImageHandleResidentARB_sig = {927, "glMakeImageHandleResidentARB", 2, _glMakeImageHandleResidentARB_args};

static const char * _glMakeImageHandleNonResidentARB_args[1] = {"handle"};
static const trace::FunctionSig _glMakeImageHandleNonResidentARB_sig = {928, "glMakeImageHandleNonResidentARB", 1, _glMakeImageHandleNonResidentARB_args};

static const char * _glUniformHandleui64ARB_args[2] = {"location", "value"};
static const trace::FunctionSig _glUniformHandleui64ARB_sig = {929, "glUniformHandleui64ARB", 2, _glUniformHandleui64ARB_args};

static const char * _glUniformHandleui64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniformHandleui64vARB_sig = {930, "glUniformHandleui64vARB", 3, _glUniformHandleui64vARB_args};

static const char * _glProgramUniformHandleui64ARB_args[3] = {"program", "location", "value"};
static const trace::FunctionSig _glProgramUniformHandleui64ARB_sig = {931, "glProgramUniformHandleui64ARB", 3, _glProgramUniformHandleui64ARB_args};

static const char * _glProgramUniformHandleui64vARB_args[4] = {"program", "location", "count", "values"};
static const trace::FunctionSig _glProgramUniformHandleui64vARB_sig = {932, "glProgramUniformHandleui64vARB", 4, _glProgramUniformHandleui64vARB_args};

static const char * _glIsTextureHandleResidentARB_args[1] = {"handle"};
static const trace::FunctionSig _glIsTextureHandleResidentARB_sig = {933, "glIsTextureHandleResidentARB", 1, _glIsTextureHandleResidentARB_args};

static const char * _glIsImageHandleResidentARB_args[1] = {"handle"};
static const trace::FunctionSig _glIsImageHandleResidentARB_sig = {934, "glIsImageHandleResidentARB", 1, _glIsImageHandleResidentARB_args};

static const char * _glVertexAttribL1ui64ARB_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribL1ui64ARB_sig = {935, "glVertexAttribL1ui64ARB", 2, _glVertexAttribL1ui64ARB_args};

static const char * _glVertexAttribL1ui64vARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL1ui64vARB_sig = {936, "glVertexAttribL1ui64vARB", 2, _glVertexAttribL1ui64vARB_args};

static const char * _glGetVertexAttribLui64vARB_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribLui64vARB_sig = {937, "glGetVertexAttribLui64vARB", 3, _glGetVertexAttribLui64vARB_args};

static const char * _glBindFragDataLocationIndexed_args[4] = {"program", "colorNumber", "index", "name"};
static const trace::FunctionSig _glBindFragDataLocationIndexed_sig = {938, "glBindFragDataLocationIndexed", 4, _glBindFragDataLocationIndexed_args};

static const char * _glGetFragDataIndex_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetFragDataIndex_sig = {939, "glGetFragDataIndex", 2, _glGetFragDataIndex_args};

static const char * _glBufferStorage_args[4] = {"target", "size", "data", "flags"};
static const trace::FunctionSig _glBufferStorage_sig = {940, "glBufferStorage", 4, _glBufferStorage_args};

static const char * _glCreateSyncFromCLeventARB_args[3] = {"context", "event", "flags"};
static const trace::FunctionSig _glCreateSyncFromCLeventARB_sig = {941, "glCreateSyncFromCLeventARB", 3, _glCreateSyncFromCLeventARB_args};

static const char * _glClearBufferData_args[5] = {"target", "internalformat", "format", "type", "data"};
static const trace::FunctionSig _glClearBufferData_sig = {942, "glClearBufferData", 5, _glClearBufferData_args};

static const char * _glClearBufferSubData_args[7] = {"target", "internalformat", "offset", "size", "format", "type", "data"};
static const trace::FunctionSig _glClearBufferSubData_sig = {943, "glClearBufferSubData", 7, _glClearBufferSubData_args};

static const char * _glClearTexImage_args[5] = {"texture", "level", "format", "type", "data"};
static const trace::FunctionSig _glClearTexImage_sig = {944, "glClearTexImage", 5, _glClearTexImage_args};

static const char * _glClearTexSubImage_args[11] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "data"};
static const trace::FunctionSig _glClearTexSubImage_sig = {945, "glClearTexSubImage", 11, _glClearTexSubImage_args};

static const char * _glClipControl_args[2] = {"origin", "depth"};
static const trace::FunctionSig _glClipControl_sig = {946, "glClipControl", 2, _glClipControl_args};

static const char * _glClampColorARB_args[2] = {"target", "clamp"};
static const trace::FunctionSig _glClampColorARB_sig = {947, "glClampColorARB", 2, _glClampColorARB_args};

static const char * _glDispatchCompute_args[3] = {"num_groups_x", "num_groups_y", "num_groups_z"};
static const trace::FunctionSig _glDispatchCompute_sig = {948, "glDispatchCompute", 3, _glDispatchCompute_args};

static const char * _glDispatchComputeIndirect_args[1] = {"indirect"};
static const trace::FunctionSig _glDispatchComputeIndirect_sig = {949, "glDispatchComputeIndirect", 1, _glDispatchComputeIndirect_args};

static const char * _glDispatchComputeGroupSizeARB_args[6] = {"num_groups_x", "num_groups_y", "num_groups_z", "group_size_x", "group_size_y", "group_size_z"};
static const trace::FunctionSig _glDispatchComputeGroupSizeARB_sig = {950, "glDispatchComputeGroupSizeARB", 6, _glDispatchComputeGroupSizeARB_args};

static const char * _glCopyBufferSubData_args[5] = {"readTarget", "writeTarget", "readOffset", "writeOffset", "size"};
static const trace::FunctionSig _glCopyBufferSubData_sig = {951, "glCopyBufferSubData", 5, _glCopyBufferSubData_args};

static const char * _glCopyImageSubData_args[15] = {"srcName", "srcTarget", "srcLevel", "srcX", "srcY", "srcZ", "dstName", "dstTarget", "dstLevel", "dstX", "dstY", "dstZ", "srcWidth", "srcHeight", "srcDepth"};
static const trace::FunctionSig _glCopyImageSubData_sig = {952, "glCopyImageSubData", 15, _glCopyImageSubData_args};

static const char * _glDebugMessageControlARB_args[6] = {"source", "type", "severity", "count", "ids", "enabled"};
static const trace::FunctionSig _glDebugMessageControlARB_sig = {953, "glDebugMessageControlARB", 6, _glDebugMessageControlARB_args};

static const char * _glDebugMessageInsertARB_args[6] = {"source", "type", "id", "severity", "length", "buf"};
static const trace::FunctionSig _glDebugMessageInsertARB_sig = {954, "glDebugMessageInsertARB", 6, _glDebugMessageInsertARB_args};

static const char * _glDebugMessageCallbackARB_args[2] = {"callback", "userParam"};
static const trace::FunctionSig _glDebugMessageCallbackARB_sig = {955, "glDebugMessageCallbackARB", 2, _glDebugMessageCallbackARB_args};

static const char * _glGetDebugMessageLogARB_args[8] = {"count", "bufsize", "sources", "types", "ids", "severities", "lengths", "messageLog"};
static const trace::FunctionSig _glGetDebugMessageLogARB_sig = {956, "glGetDebugMessageLogARB", 8, _glGetDebugMessageLogARB_args};

static const char * _glCreateTransformFeedbacks_args[2] = {"n", "ids"};
static const trace::FunctionSig _glCreateTransformFeedbacks_sig = {957, "glCreateTransformFeedbacks", 2, _glCreateTransformFeedbacks_args};

static const char * _glTransformFeedbackBufferBase_args[3] = {"xfb", "index", "buffer"};
static const trace::FunctionSig _glTransformFeedbackBufferBase_sig = {958, "glTransformFeedbackBufferBase", 3, _glTransformFeedbackBufferBase_args};

static const char * _glTransformFeedbackBufferRange_args[5] = {"xfb", "index", "buffer", "offset", "size"};
static const trace::FunctionSig _glTransformFeedbackBufferRange_sig = {959, "glTransformFeedbackBufferRange", 5, _glTransformFeedbackBufferRange_args};

static const char * _glGetTransformFeedbackiv_args[3] = {"xfb", "pname", "param"};
static const trace::FunctionSig _glGetTransformFeedbackiv_sig = {960, "glGetTransformFeedbackiv", 3, _glGetTransformFeedbackiv_args};

static const char * _glGetTransformFeedbacki_v_args[4] = {"xfb", "pname", "index", "param"};
static const trace::FunctionSig _glGetTransformFeedbacki_v_sig = {961, "glGetTransformFeedbacki_v", 4, _glGetTransformFeedbacki_v_args};

static const char * _glGetTransformFeedbacki64_v_args[4] = {"xfb", "pname", "index", "param"};
static const trace::FunctionSig _glGetTransformFeedbacki64_v_sig = {962, "glGetTransformFeedbacki64_v", 4, _glGetTransformFeedbacki64_v_args};

static const char * _glCreateBuffers_args[2] = {"n", "buffers"};
static const trace::FunctionSig _glCreateBuffers_sig = {963, "glCreateBuffers", 2, _glCreateBuffers_args};

static const char * _glNamedBufferStorage_args[4] = {"buffer", "size", "data", "flags"};
static const trace::FunctionSig _glNamedBufferStorage_sig = {964, "glNamedBufferStorage", 4, _glNamedBufferStorage_args};

static const char * _glNamedBufferData_args[4] = {"buffer", "size", "data", "usage"};
static const trace::FunctionSig _glNamedBufferData_sig = {965, "glNamedBufferData", 4, _glNamedBufferData_args};

static const char * _glNamedBufferSubData_args[4] = {"buffer", "offset", "size", "data"};
static const trace::FunctionSig _glNamedBufferSubData_sig = {966, "glNamedBufferSubData", 4, _glNamedBufferSubData_args};

static const char * _glCopyNamedBufferSubData_args[5] = {"readBuffer", "writeBuffer", "readOffset", "writeOffset", "size"};
static const trace::FunctionSig _glCopyNamedBufferSubData_sig = {967, "glCopyNamedBufferSubData", 5, _glCopyNamedBufferSubData_args};

static const char * _glClearNamedBufferData_args[5] = {"buffer", "internalformat", "format", "type", "data"};
static const trace::FunctionSig _glClearNamedBufferData_sig = {968, "glClearNamedBufferData", 5, _glClearNamedBufferData_args};

static const char * _glClearNamedBufferSubData_args[7] = {"buffer", "internalformat", "offset", "size", "format", "type", "data"};
static const trace::FunctionSig _glClearNamedBufferSubData_sig = {969, "glClearNamedBufferSubData", 7, _glClearNamedBufferSubData_args};

static const char * _glMapNamedBuffer_args[2] = {"buffer", "access"};
static const trace::FunctionSig _glMapNamedBuffer_sig = {970, "glMapNamedBuffer", 2, _glMapNamedBuffer_args};

static const char * _glMapNamedBufferRange_args[4] = {"buffer", "offset", "length", "access"};
static const trace::FunctionSig _glMapNamedBufferRange_sig = {971, "glMapNamedBufferRange", 4, _glMapNamedBufferRange_args};

static const char * _glUnmapNamedBuffer_args[1] = {"buffer"};
static const trace::FunctionSig _glUnmapNamedBuffer_sig = {972, "glUnmapNamedBuffer", 1, _glUnmapNamedBuffer_args};

static const char * _glFlushMappedNamedBufferRange_args[3] = {"buffer", "offset", "length"};
static const trace::FunctionSig _glFlushMappedNamedBufferRange_sig = {973, "glFlushMappedNamedBufferRange", 3, _glFlushMappedNamedBufferRange_args};

static const char * _glGetNamedBufferParameteriv_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedBufferParameteriv_sig = {974, "glGetNamedBufferParameteriv", 3, _glGetNamedBufferParameteriv_args};

static const char * _glGetNamedBufferParameteri64v_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedBufferParameteri64v_sig = {975, "glGetNamedBufferParameteri64v", 3, _glGetNamedBufferParameteri64v_args};

static const char * _glGetNamedBufferPointerv_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedBufferPointerv_sig = {976, "glGetNamedBufferPointerv", 3, _glGetNamedBufferPointerv_args};

static const char * _glGetNamedBufferSubData_args[4] = {"buffer", "offset", "size", "data"};
static const trace::FunctionSig _glGetNamedBufferSubData_sig = {977, "glGetNamedBufferSubData", 4, _glGetNamedBufferSubData_args};

static const char * _glCreateFramebuffers_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glCreateFramebuffers_sig = {978, "glCreateFramebuffers", 2, _glCreateFramebuffers_args};

static const char * _glNamedFramebufferRenderbuffer_args[4] = {"framebuffer", "attachment", "renderbuffertarget", "renderbuffer"};
static const trace::FunctionSig _glNamedFramebufferRenderbuffer_sig = {979, "glNamedFramebufferRenderbuffer", 4, _glNamedFramebufferRenderbuffer_args};

static const char * _glNamedFramebufferParameteri_args[3] = {"framebuffer", "pname", "param"};
static const trace::FunctionSig _glNamedFramebufferParameteri_sig = {980, "glNamedFramebufferParameteri", 3, _glNamedFramebufferParameteri_args};

static const char * _glNamedFramebufferTexture_args[4] = {"framebuffer", "attachment", "texture", "level"};
static const trace::FunctionSig _glNamedFramebufferTexture_sig = {981, "glNamedFramebufferTexture", 4, _glNamedFramebufferTexture_args};

static const char * _glNamedFramebufferTextureLayer_args[5] = {"framebuffer", "attachment", "texture", "level", "layer"};
static const trace::FunctionSig _glNamedFramebufferTextureLayer_sig = {982, "glNamedFramebufferTextureLayer", 5, _glNamedFramebufferTextureLayer_args};

static const char * _glNamedFramebufferDrawBuffer_args[2] = {"framebuffer", "buf"};
static const trace::FunctionSig _glNamedFramebufferDrawBuffer_sig = {983, "glNamedFramebufferDrawBuffer", 2, _glNamedFramebufferDrawBuffer_args};

static const char * _glNamedFramebufferDrawBuffers_args[3] = {"framebuffer", "n", "bufs"};
static const trace::FunctionSig _glNamedFramebufferDrawBuffers_sig = {984, "glNamedFramebufferDrawBuffers", 3, _glNamedFramebufferDrawBuffers_args};

static const char * _glNamedFramebufferReadBuffer_args[2] = {"framebuffer", "src"};
static const trace::FunctionSig _glNamedFramebufferReadBuffer_sig = {985, "glNamedFramebufferReadBuffer", 2, _glNamedFramebufferReadBuffer_args};

static const char * _glInvalidateNamedFramebufferData_args[3] = {"framebuffer", "numAttachments", "attachments"};
static const trace::FunctionSig _glInvalidateNamedFramebufferData_sig = {986, "glInvalidateNamedFramebufferData", 3, _glInvalidateNamedFramebufferData_args};

static const char * _glInvalidateNamedFramebufferSubData_args[7] = {"framebuffer", "numAttachments", "attachments", "x", "y", "width", "height"};
static const trace::FunctionSig _glInvalidateNamedFramebufferSubData_sig = {987, "glInvalidateNamedFramebufferSubData", 7, _glInvalidateNamedFramebufferSubData_args};

static const char * _glClearNamedFramebufferiv_args[4] = {"framebuffer", "buffer", "drawbuffer", "value"};
static const trace::FunctionSig _glClearNamedFramebufferiv_sig = {988, "glClearNamedFramebufferiv", 4, _glClearNamedFramebufferiv_args};

static const char * _glClearNamedFramebufferuiv_args[4] = {"framebuffer", "buffer", "drawbuffer", "value"};
static const trace::FunctionSig _glClearNamedFramebufferuiv_sig = {989, "glClearNamedFramebufferuiv", 4, _glClearNamedFramebufferuiv_args};

static const char * _glClearNamedFramebufferfv_args[4] = {"framebuffer", "buffer", "drawbuffer", "value"};
static const trace::FunctionSig _glClearNamedFramebufferfv_sig = {990, "glClearNamedFramebufferfv", 4, _glClearNamedFramebufferfv_args};

static const char * _glClearNamedFramebufferfi_args[5] = {"framebuffer", "buffer", "drawbuffer", "depth", "stencil"};
static const trace::FunctionSig _glClearNamedFramebufferfi_sig = {991, "glClearNamedFramebufferfi", 5, _glClearNamedFramebufferfi_args};

static const char * _glBlitNamedFramebuffer_args[12] = {"readFramebuffer", "drawFramebuffer", "srcX0", "srcY0", "srcX1", "srcY1", "dstX0", "dstY0", "dstX1", "dstY1", "mask", "filter"};
static const trace::FunctionSig _glBlitNamedFramebuffer_sig = {992, "glBlitNamedFramebuffer", 12, _glBlitNamedFramebuffer_args};

static const char * _glCheckNamedFramebufferStatus_args[2] = {"framebuffer", "target"};
static const trace::FunctionSig _glCheckNamedFramebufferStatus_sig = {993, "glCheckNamedFramebufferStatus", 2, _glCheckNamedFramebufferStatus_args};

static const char * _glGetNamedFramebufferParameteriv_args[3] = {"framebuffer", "pname", "param"};
static const trace::FunctionSig _glGetNamedFramebufferParameteriv_sig = {994, "glGetNamedFramebufferParameteriv", 3, _glGetNamedFramebufferParameteriv_args};

static const char * _glGetNamedFramebufferAttachmentParameteriv_args[4] = {"framebuffer", "attachment", "pname", "params"};
static const trace::FunctionSig _glGetNamedFramebufferAttachmentParameteriv_sig = {995, "glGetNamedFramebufferAttachmentParameteriv", 4, _glGetNamedFramebufferAttachmentParameteriv_args};

static const char * _glCreateRenderbuffers_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glCreateRenderbuffers_sig = {996, "glCreateRenderbuffers", 2, _glCreateRenderbuffers_args};

static const char * _glNamedRenderbufferStorage_args[4] = {"renderbuffer", "internalformat", "width", "height"};
static const trace::FunctionSig _glNamedRenderbufferStorage_sig = {997, "glNamedRenderbufferStorage", 4, _glNamedRenderbufferStorage_args};

static const char * _glNamedRenderbufferStorageMultisample_args[5] = {"renderbuffer", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glNamedRenderbufferStorageMultisample_sig = {998, "glNamedRenderbufferStorageMultisample", 5, _glNamedRenderbufferStorageMultisample_args};

static const char * _glGetNamedRenderbufferParameteriv_args[3] = {"renderbuffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedRenderbufferParameteriv_sig = {999, "glGetNamedRenderbufferParameteriv", 3, _glGetNamedRenderbufferParameteriv_args};

static const char * _glCreateTextures_args[3] = {"target", "n", "textures"};
static const trace::FunctionSig _glCreateTextures_sig = {1000, "glCreateTextures", 3, _glCreateTextures_args};

static const char * _glTextureBuffer_args[3] = {"texture", "internalformat", "buffer"};
static const trace::FunctionSig _glTextureBuffer_sig = {1001, "glTextureBuffer", 3, _glTextureBuffer_args};

static const char * _glTextureBufferRange_args[5] = {"texture", "internalformat", "buffer", "offset", "size"};
static const trace::FunctionSig _glTextureBufferRange_sig = {1002, "glTextureBufferRange", 5, _glTextureBufferRange_args};

static const char * _glTextureStorage1D_args[4] = {"texture", "levels", "internalformat", "width"};
static const trace::FunctionSig _glTextureStorage1D_sig = {1003, "glTextureStorage1D", 4, _glTextureStorage1D_args};

static const char * _glTextureStorage2D_args[5] = {"texture", "levels", "internalformat", "width", "height"};
static const trace::FunctionSig _glTextureStorage2D_sig = {1004, "glTextureStorage2D", 5, _glTextureStorage2D_args};

static const char * _glTextureStorage3D_args[6] = {"texture", "levels", "internalformat", "width", "height", "depth"};
static const trace::FunctionSig _glTextureStorage3D_sig = {1005, "glTextureStorage3D", 6, _glTextureStorage3D_args};

static const char * _glTextureStorage2DMultisample_args[6] = {"texture", "samples", "internalformat", "width", "height", "fixedsamplelocations"};
static const trace::FunctionSig _glTextureStorage2DMultisample_sig = {1006, "glTextureStorage2DMultisample", 6, _glTextureStorage2DMultisample_args};

static const char * _glTextureStorage3DMultisample_args[7] = {"texture", "samples", "internalformat", "width", "height", "depth", "fixedsamplelocations"};
static const trace::FunctionSig _glTextureStorage3DMultisample_sig = {1007, "glTextureStorage3DMultisample", 7, _glTextureStorage3DMultisample_args};

static const char * _glTextureSubImage1D_args[7] = {"texture", "level", "xoffset", "width", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureSubImage1D_sig = {1008, "glTextureSubImage1D", 7, _glTextureSubImage1D_args};

static const char * _glTextureSubImage2D_args[9] = {"texture", "level", "xoffset", "yoffset", "width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureSubImage2D_sig = {1009, "glTextureSubImage2D", 9, _glTextureSubImage2D_args};

static const char * _glTextureSubImage3D_args[11] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureSubImage3D_sig = {1010, "glTextureSubImage3D", 11, _glTextureSubImage3D_args};

static const char * _glCompressedTextureSubImage1D_args[7] = {"texture", "level", "xoffset", "width", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTextureSubImage1D_sig = {1011, "glCompressedTextureSubImage1D", 7, _glCompressedTextureSubImage1D_args};

static const char * _glCompressedTextureSubImage2D_args[9] = {"texture", "level", "xoffset", "yoffset", "width", "height", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTextureSubImage2D_sig = {1012, "glCompressedTextureSubImage2D", 9, _glCompressedTextureSubImage2D_args};

static const char * _glCompressedTextureSubImage3D_args[11] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTextureSubImage3D_sig = {1013, "glCompressedTextureSubImage3D", 11, _glCompressedTextureSubImage3D_args};

static const char * _glCopyTextureSubImage1D_args[6] = {"texture", "level", "xoffset", "x", "y", "width"};
static const trace::FunctionSig _glCopyTextureSubImage1D_sig = {1014, "glCopyTextureSubImage1D", 6, _glCopyTextureSubImage1D_args};

static const char * _glCopyTextureSubImage2D_args[8] = {"texture", "level", "xoffset", "yoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTextureSubImage2D_sig = {1015, "glCopyTextureSubImage2D", 8, _glCopyTextureSubImage2D_args};

static const char * _glCopyTextureSubImage3D_args[9] = {"texture", "level", "xoffset", "yoffset", "zoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTextureSubImage3D_sig = {1016, "glCopyTextureSubImage3D", 9, _glCopyTextureSubImage3D_args};

static const char * _glTextureParameterf_args[3] = {"texture", "pname", "param"};
static const trace::FunctionSig _glTextureParameterf_sig = {1017, "glTextureParameterf", 3, _glTextureParameterf_args};

static const char * _glTextureParameterfv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glTextureParameterfv_sig = {1018, "glTextureParameterfv", 3, _glTextureParameterfv_args};

static const char * _glTextureParameteri_args[3] = {"texture", "pname", "param"};
static const trace::FunctionSig _glTextureParameteri_sig = {1019, "glTextureParameteri", 3, _glTextureParameteri_args};

static const char * _glTextureParameterIiv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glTextureParameterIiv_sig = {1020, "glTextureParameterIiv", 3, _glTextureParameterIiv_args};

static const char * _glTextureParameterIuiv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glTextureParameterIuiv_sig = {1021, "glTextureParameterIuiv", 3, _glTextureParameterIuiv_args};

static const char * _glTextureParameteriv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glTextureParameteriv_sig = {1022, "glTextureParameteriv", 3, _glTextureParameteriv_args};

static const char * _glGenerateTextureMipmap_args[1] = {"texture"};
static const trace::FunctionSig _glGenerateTextureMipmap_sig = {1023, "glGenerateTextureMipmap", 1, _glGenerateTextureMipmap_args};

static const char * _glBindTextureUnit_args[2] = {"unit", "texture"};
static const trace::FunctionSig _glBindTextureUnit_sig = {1024, "glBindTextureUnit", 2, _glBindTextureUnit_args};

static const char * _glGetTextureImage_args[6] = {"texture", "level", "format", "type", "bufSize", "pixels"};
static const trace::FunctionSig _glGetTextureImage_sig = {1025, "glGetTextureImage", 6, _glGetTextureImage_args};

static const char * _glGetCompressedTextureImage_args[4] = {"texture", "level", "bufSize", "pixels"};
static const trace::FunctionSig _glGetCompressedTextureImage_sig = {1026, "glGetCompressedTextureImage", 4, _glGetCompressedTextureImage_args};

static const char * _glGetTextureLevelParameterfv_args[4] = {"texture", "level", "pname", "params"};
static const trace::FunctionSig _glGetTextureLevelParameterfv_sig = {1027, "glGetTextureLevelParameterfv", 4, _glGetTextureLevelParameterfv_args};

static const char * _glGetTextureLevelParameteriv_args[4] = {"texture", "level", "pname", "params"};
static const trace::FunctionSig _glGetTextureLevelParameteriv_sig = {1028, "glGetTextureLevelParameteriv", 4, _glGetTextureLevelParameteriv_args};

static const char * _glGetTextureParameterfv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterfv_sig = {1029, "glGetTextureParameterfv", 3, _glGetTextureParameterfv_args};

static const char * _glGetTextureParameterIiv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterIiv_sig = {1030, "glGetTextureParameterIiv", 3, _glGetTextureParameterIiv_args};

static const char * _glGetTextureParameterIuiv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterIuiv_sig = {1031, "glGetTextureParameterIuiv", 3, _glGetTextureParameterIuiv_args};

static const char * _glGetTextureParameteriv_args[3] = {"texture", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameteriv_sig = {1032, "glGetTextureParameteriv", 3, _glGetTextureParameteriv_args};

static const char * _glCreateVertexArrays_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glCreateVertexArrays_sig = {1033, "glCreateVertexArrays", 2, _glCreateVertexArrays_args};

static const char * _glDisableVertexArrayAttrib_args[2] = {"vaobj", "index"};
static const trace::FunctionSig _glDisableVertexArrayAttrib_sig = {1034, "glDisableVertexArrayAttrib", 2, _glDisableVertexArrayAttrib_args};

static const char * _glEnableVertexArrayAttrib_args[2] = {"vaobj", "index"};
static const trace::FunctionSig _glEnableVertexArrayAttrib_sig = {1035, "glEnableVertexArrayAttrib", 2, _glEnableVertexArrayAttrib_args};

static const char * _glVertexArrayElementBuffer_args[2] = {"vaobj", "buffer"};
static const trace::FunctionSig _glVertexArrayElementBuffer_sig = {1036, "glVertexArrayElementBuffer", 2, _glVertexArrayElementBuffer_args};

static const char * _glVertexArrayVertexBuffer_args[5] = {"vaobj", "bindingindex", "buffer", "offset", "stride"};
static const trace::FunctionSig _glVertexArrayVertexBuffer_sig = {1037, "glVertexArrayVertexBuffer", 5, _glVertexArrayVertexBuffer_args};

static const char * _glVertexArrayVertexBuffers_args[6] = {"vaobj", "first", "count", "buffers", "offsets", "strides"};
static const trace::FunctionSig _glVertexArrayVertexBuffers_sig = {1038, "glVertexArrayVertexBuffers", 6, _glVertexArrayVertexBuffers_args};

static const char * _glVertexArrayAttribBinding_args[3] = {"vaobj", "attribindex", "bindingindex"};
static const trace::FunctionSig _glVertexArrayAttribBinding_sig = {1039, "glVertexArrayAttribBinding", 3, _glVertexArrayAttribBinding_args};

static const char * _glVertexArrayAttribFormat_args[6] = {"vaobj", "attribindex", "size", "type", "normalized", "relativeoffset"};
static const trace::FunctionSig _glVertexArrayAttribFormat_sig = {1040, "glVertexArrayAttribFormat", 6, _glVertexArrayAttribFormat_args};

static const char * _glVertexArrayAttribIFormat_args[5] = {"vaobj", "attribindex", "size", "type", "relativeoffset"};
static const trace::FunctionSig _glVertexArrayAttribIFormat_sig = {1041, "glVertexArrayAttribIFormat", 5, _glVertexArrayAttribIFormat_args};

static const char * _glVertexArrayAttribLFormat_args[5] = {"vaobj", "attribindex", "size", "type", "relativeoffset"};
static const trace::FunctionSig _glVertexArrayAttribLFormat_sig = {1042, "glVertexArrayAttribLFormat", 5, _glVertexArrayAttribLFormat_args};

static const char * _glVertexArrayBindingDivisor_args[3] = {"vaobj", "bindingindex", "divisor"};
static const trace::FunctionSig _glVertexArrayBindingDivisor_sig = {1043, "glVertexArrayBindingDivisor", 3, _glVertexArrayBindingDivisor_args};

static const char * _glGetVertexArrayiv_args[3] = {"vaobj", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayiv_sig = {1044, "glGetVertexArrayiv", 3, _glGetVertexArrayiv_args};

static const char * _glGetVertexArrayIndexediv_args[4] = {"vaobj", "index", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayIndexediv_sig = {1045, "glGetVertexArrayIndexediv", 4, _glGetVertexArrayIndexediv_args};

static const char * _glGetVertexArrayIndexed64iv_args[4] = {"vaobj", "index", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayIndexed64iv_sig = {1046, "glGetVertexArrayIndexed64iv", 4, _glGetVertexArrayIndexed64iv_args};

static const char * _glCreateSamplers_args[2] = {"n", "samplers"};
static const trace::FunctionSig _glCreateSamplers_sig = {1047, "glCreateSamplers", 2, _glCreateSamplers_args};

static const char * _glCreateProgramPipelines_args[2] = {"n", "pipelines"};
static const trace::FunctionSig _glCreateProgramPipelines_sig = {1048, "glCreateProgramPipelines", 2, _glCreateProgramPipelines_args};

static const char * _glCreateQueries_args[3] = {"target", "n", "ids"};
static const trace::FunctionSig _glCreateQueries_sig = {1049, "glCreateQueries", 3, _glCreateQueries_args};

static const char * _glGetQueryBufferObjecti64v_args[4] = {"id", "buffer", "pname", "offset"};
static const trace::FunctionSig _glGetQueryBufferObjecti64v_sig = {1050, "glGetQueryBufferObjecti64v", 4, _glGetQueryBufferObjecti64v_args};

static const char * _glGetQueryBufferObjectiv_args[4] = {"id", "buffer", "pname", "offset"};
static const trace::FunctionSig _glGetQueryBufferObjectiv_sig = {1051, "glGetQueryBufferObjectiv", 4, _glGetQueryBufferObjectiv_args};

static const char * _glGetQueryBufferObjectui64v_args[4] = {"id", "buffer", "pname", "offset"};
static const trace::FunctionSig _glGetQueryBufferObjectui64v_sig = {1052, "glGetQueryBufferObjectui64v", 4, _glGetQueryBufferObjectui64v_args};

static const char * _glGetQueryBufferObjectuiv_args[4] = {"id", "buffer", "pname", "offset"};
static const trace::FunctionSig _glGetQueryBufferObjectuiv_sig = {1053, "glGetQueryBufferObjectuiv", 4, _glGetQueryBufferObjectuiv_args};

static const char * _glDrawBuffersARB_args[2] = {"n", "bufs"};
static const trace::FunctionSig _glDrawBuffersARB_sig = {1054, "glDrawBuffersARB", 2, _glDrawBuffersARB_args};

static const char * _glBlendEquationiARB_args[2] = {"buf", "mode"};
static const trace::FunctionSig _glBlendEquationiARB_sig = {1055, "glBlendEquationiARB", 2, _glBlendEquationiARB_args};

static const char * _glBlendEquationSeparateiARB_args[3] = {"buf", "modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparateiARB_sig = {1056, "glBlendEquationSeparateiARB", 3, _glBlendEquationSeparateiARB_args};

static const char * _glBlendFunciARB_args[3] = {"buf", "src", "dst"};
static const trace::FunctionSig _glBlendFunciARB_sig = {1057, "glBlendFunciARB", 3, _glBlendFunciARB_args};

static const char * _glBlendFuncSeparateiARB_args[5] = {"buf", "srcRGB", "dstRGB", "srcAlpha", "dstAlpha"};
static const trace::FunctionSig _glBlendFuncSeparateiARB_sig = {1058, "glBlendFuncSeparateiARB", 5, _glBlendFuncSeparateiARB_args};

static const char * _glDrawElementsBaseVertex_args[5] = {"mode", "count", "type", "indices", "basevertex"};
static const trace::FunctionSig _glDrawElementsBaseVertex_sig = {1059, "glDrawElementsBaseVertex", 5, _glDrawElementsBaseVertex_args};

static const char * _glDrawRangeElementsBaseVertex_args[7] = {"mode", "start", "end", "count", "type", "indices", "basevertex"};
static const trace::FunctionSig _glDrawRangeElementsBaseVertex_sig = {1060, "glDrawRangeElementsBaseVertex", 7, _glDrawRangeElementsBaseVertex_args};

static const char * _glDrawElementsInstancedBaseVertex_args[6] = {"mode", "count", "type", "indices", "instancecount", "basevertex"};
static const trace::FunctionSig _glDrawElementsInstancedBaseVertex_sig = {1061, "glDrawElementsInstancedBaseVertex", 6, _glDrawElementsInstancedBaseVertex_args};

static const char * _glMultiDrawElementsBaseVertex_args[6] = {"mode", "count", "type", "indices", "drawcount", "basevertex"};
static const trace::FunctionSig _glMultiDrawElementsBaseVertex_sig = {1062, "glMultiDrawElementsBaseVertex", 6, _glMultiDrawElementsBaseVertex_args};

static const char * _glDrawArraysIndirect_args[2] = {"mode", "indirect"};
static const trace::FunctionSig _glDrawArraysIndirect_sig = {1063, "glDrawArraysIndirect", 2, _glDrawArraysIndirect_args};

static const char * _glDrawElementsIndirect_args[3] = {"mode", "type", "indirect"};
static const trace::FunctionSig _glDrawElementsIndirect_sig = {1064, "glDrawElementsIndirect", 3, _glDrawElementsIndirect_args};

static const char * _glDrawArraysInstancedARB_args[4] = {"mode", "first", "count", "instancecount"};
static const trace::FunctionSig _glDrawArraysInstancedARB_sig = {1065, "glDrawArraysInstancedARB", 4, _glDrawArraysInstancedARB_args};

static const char * _glDrawElementsInstancedARB_args[5] = {"mode", "count", "type", "indices", "instancecount"};
static const trace::FunctionSig _glDrawElementsInstancedARB_sig = {1066, "glDrawElementsInstancedARB", 5, _glDrawElementsInstancedARB_args};

static const char * _glFramebufferParameteri_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glFramebufferParameteri_sig = {1067, "glFramebufferParameteri", 3, _glFramebufferParameteri_args};

static const char * _glGetFramebufferParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetFramebufferParameteriv_sig = {1068, "glGetFramebufferParameteriv", 3, _glGetFramebufferParameteriv_args};

static const char * _glIsRenderbuffer_args[1] = {"renderbuffer"};
static const trace::FunctionSig _glIsRenderbuffer_sig = {1069, "glIsRenderbuffer", 1, _glIsRenderbuffer_args};

static const char * _glBindRenderbuffer_args[2] = {"target", "renderbuffer"};
static const trace::FunctionSig _glBindRenderbuffer_sig = {1070, "glBindRenderbuffer", 2, _glBindRenderbuffer_args};

static const char * _glDeleteRenderbuffers_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glDeleteRenderbuffers_sig = {1071, "glDeleteRenderbuffers", 2, _glDeleteRenderbuffers_args};

static const char * _glGenRenderbuffers_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glGenRenderbuffers_sig = {1072, "glGenRenderbuffers", 2, _glGenRenderbuffers_args};

static const char * _glRenderbufferStorage_args[4] = {"target", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorage_sig = {1073, "glRenderbufferStorage", 4, _glRenderbufferStorage_args};

static const char * _glGetRenderbufferParameteriv_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetRenderbufferParameteriv_sig = {1074, "glGetRenderbufferParameteriv", 3, _glGetRenderbufferParameteriv_args};

static const char * _glIsFramebuffer_args[1] = {"framebuffer"};
static const trace::FunctionSig _glIsFramebuffer_sig = {1075, "glIsFramebuffer", 1, _glIsFramebuffer_args};

static const char * _glBindFramebuffer_args[2] = {"target", "framebuffer"};
static const trace::FunctionSig _glBindFramebuffer_sig = {1076, "glBindFramebuffer", 2, _glBindFramebuffer_args};

static const char * _glDeleteFramebuffers_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glDeleteFramebuffers_sig = {1077, "glDeleteFramebuffers", 2, _glDeleteFramebuffers_args};

static const char * _glGenFramebuffers_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glGenFramebuffers_sig = {1078, "glGenFramebuffers", 2, _glGenFramebuffers_args};

static const char * _glCheckFramebufferStatus_args[1] = {"target"};
static const trace::FunctionSig _glCheckFramebufferStatus_sig = {1079, "glCheckFramebufferStatus", 1, _glCheckFramebufferStatus_args};

static const char * _glFramebufferTexture1D_args[5] = {"target", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glFramebufferTexture1D_sig = {1080, "glFramebufferTexture1D", 5, _glFramebufferTexture1D_args};

static const char * _glFramebufferTexture2D_args[5] = {"target", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glFramebufferTexture2D_sig = {1081, "glFramebufferTexture2D", 5, _glFramebufferTexture2D_args};

static const char * _glFramebufferTexture3D_args[6] = {"target", "attachment", "textarget", "texture", "level", "zoffset"};
static const trace::FunctionSig _glFramebufferTexture3D_sig = {1082, "glFramebufferTexture3D", 6, _glFramebufferTexture3D_args};

static const char * _glFramebufferRenderbuffer_args[4] = {"target", "attachment", "renderbuffertarget", "renderbuffer"};
static const trace::FunctionSig _glFramebufferRenderbuffer_sig = {1083, "glFramebufferRenderbuffer", 4, _glFramebufferRenderbuffer_args};

static const char * _glGetFramebufferAttachmentParameteriv_args[4] = {"target", "attachment", "pname", "params"};
static const trace::FunctionSig _glGetFramebufferAttachmentParameteriv_sig = {1084, "glGetFramebufferAttachmentParameteriv", 4, _glGetFramebufferAttachmentParameteriv_args};

static const char * _glGenerateMipmap_args[1] = {"target"};
static const trace::FunctionSig _glGenerateMipmap_sig = {1085, "glGenerateMipmap", 1, _glGenerateMipmap_args};

static const char * _glBlitFramebuffer_args[10] = {"srcX0", "srcY0", "srcX1", "srcY1", "dstX0", "dstY0", "dstX1", "dstY1", "mask", "filter"};
static const trace::FunctionSig _glBlitFramebuffer_sig = {1086, "glBlitFramebuffer", 10, _glBlitFramebuffer_args};

static const char * _glRenderbufferStorageMultisample_args[5] = {"target", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageMultisample_sig = {1087, "glRenderbufferStorageMultisample", 5, _glRenderbufferStorageMultisample_args};

static const char * _glFramebufferTextureLayer_args[5] = {"target", "attachment", "texture", "level", "layer"};
static const trace::FunctionSig _glFramebufferTextureLayer_sig = {1088, "glFramebufferTextureLayer", 5, _glFramebufferTextureLayer_args};

static const char * _glProgramParameteriARB_args[3] = {"program", "pname", "value"};
static const trace::FunctionSig _glProgramParameteriARB_sig = {1089, "glProgramParameteriARB", 3, _glProgramParameteriARB_args};

static const char * _glFramebufferTextureARB_args[4] = {"target", "attachment", "texture", "level"};
static const trace::FunctionSig _glFramebufferTextureARB_sig = {1090, "glFramebufferTextureARB", 4, _glFramebufferTextureARB_args};

static const char * _glFramebufferTextureLayerARB_args[5] = {"target", "attachment", "texture", "level", "layer"};
static const trace::FunctionSig _glFramebufferTextureLayerARB_sig = {1091, "glFramebufferTextureLayerARB", 5, _glFramebufferTextureLayerARB_args};

static const char * _glFramebufferTextureFaceARB_args[5] = {"target", "attachment", "texture", "level", "face"};
static const trace::FunctionSig _glFramebufferTextureFaceARB_sig = {1092, "glFramebufferTextureFaceARB", 5, _glFramebufferTextureFaceARB_args};

static const char * _glGetProgramBinary_args[5] = {"program", "bufSize", "length", "binaryFormat", "binary"};
static const trace::FunctionSig _glGetProgramBinary_sig = {1093, "glGetProgramBinary", 5, _glGetProgramBinary_args};

static const char * _glProgramBinary_args[4] = {"program", "binaryFormat", "binary", "length"};
static const trace::FunctionSig _glProgramBinary_sig = {1094, "glProgramBinary", 4, _glProgramBinary_args};

static const char * _glProgramParameteri_args[3] = {"program", "pname", "value"};
static const trace::FunctionSig _glProgramParameteri_sig = {1095, "glProgramParameteri", 3, _glProgramParameteri_args};

static const char * _glGetTextureSubImage_args[12] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "bufSize", "pixels"};
static const trace::FunctionSig _glGetTextureSubImage_sig = {1096, "glGetTextureSubImage", 12, _glGetTextureSubImage_args};

static const char * _glGetCompressedTextureSubImage_args[10] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "bufSize", "pixels"};
static const trace::FunctionSig _glGetCompressedTextureSubImage_sig = {1097, "glGetCompressedTextureSubImage", 10, _glGetCompressedTextureSubImage_args};

static const char * _glSpecializeShaderARB_args[5] = {"shader", "pEntryPoint", "numSpecializationConstants", "pConstantIndex", "pConstantValue"};
static const trace::FunctionSig _glSpecializeShaderARB_sig = {1098, "glSpecializeShaderARB", 5, _glSpecializeShaderARB_args};

static const char * _glUniform1d_args[2] = {"location", "x"};
static const trace::FunctionSig _glUniform1d_sig = {1099, "glUniform1d", 2, _glUniform1d_args};

static const char * _glUniform2d_args[3] = {"location", "x", "y"};
static const trace::FunctionSig _glUniform2d_sig = {1100, "glUniform2d", 3, _glUniform2d_args};

static const char * _glUniform3d_args[4] = {"location", "x", "y", "z"};
static const trace::FunctionSig _glUniform3d_sig = {1101, "glUniform3d", 4, _glUniform3d_args};

static const char * _glUniform4d_args[5] = {"location", "x", "y", "z", "w"};
static const trace::FunctionSig _glUniform4d_sig = {1102, "glUniform4d", 5, _glUniform4d_args};

static const char * _glUniform1dv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1dv_sig = {1103, "glUniform1dv", 3, _glUniform1dv_args};

static const char * _glUniform2dv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2dv_sig = {1104, "glUniform2dv", 3, _glUniform2dv_args};

static const char * _glUniform3dv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3dv_sig = {1105, "glUniform3dv", 3, _glUniform3dv_args};

static const char * _glUniform4dv_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4dv_sig = {1106, "glUniform4dv", 3, _glUniform4dv_args};

static const char * _glUniformMatrix2dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2dv_sig = {1107, "glUniformMatrix2dv", 4, _glUniformMatrix2dv_args};

static const char * _glUniformMatrix3dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3dv_sig = {1108, "glUniformMatrix3dv", 4, _glUniformMatrix3dv_args};

static const char * _glUniformMatrix4dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4dv_sig = {1109, "glUniformMatrix4dv", 4, _glUniformMatrix4dv_args};

static const char * _glUniformMatrix2x3dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2x3dv_sig = {1110, "glUniformMatrix2x3dv", 4, _glUniformMatrix2x3dv_args};

static const char * _glUniformMatrix2x4dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2x4dv_sig = {1111, "glUniformMatrix2x4dv", 4, _glUniformMatrix2x4dv_args};

static const char * _glUniformMatrix3x2dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3x2dv_sig = {1112, "glUniformMatrix3x2dv", 4, _glUniformMatrix3x2dv_args};

static const char * _glUniformMatrix3x4dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3x4dv_sig = {1113, "glUniformMatrix3x4dv", 4, _glUniformMatrix3x4dv_args};

static const char * _glUniformMatrix4x2dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4x2dv_sig = {1114, "glUniformMatrix4x2dv", 4, _glUniformMatrix4x2dv_args};

static const char * _glUniformMatrix4x3dv_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4x3dv_sig = {1115, "glUniformMatrix4x3dv", 4, _glUniformMatrix4x3dv_args};

static const char * _glGetUniformdv_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformdv_sig = {1116, "glGetUniformdv", 3, _glGetUniformdv_args};

static const char * _glUniform1i64ARB_args[2] = {"location", "x"};
static const trace::FunctionSig _glUniform1i64ARB_sig = {1117, "glUniform1i64ARB", 2, _glUniform1i64ARB_args};

static const char * _glUniform2i64ARB_args[3] = {"location", "x", "y"};
static const trace::FunctionSig _glUniform2i64ARB_sig = {1118, "glUniform2i64ARB", 3, _glUniform2i64ARB_args};

static const char * _glUniform3i64ARB_args[4] = {"location", "x", "y", "z"};
static const trace::FunctionSig _glUniform3i64ARB_sig = {1119, "glUniform3i64ARB", 4, _glUniform3i64ARB_args};

static const char * _glUniform4i64ARB_args[5] = {"location", "x", "y", "z", "w"};
static const trace::FunctionSig _glUniform4i64ARB_sig = {1120, "glUniform4i64ARB", 5, _glUniform4i64ARB_args};

static const char * _glUniform1i64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1i64vARB_sig = {1121, "glUniform1i64vARB", 3, _glUniform1i64vARB_args};

static const char * _glUniform2i64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2i64vARB_sig = {1122, "glUniform2i64vARB", 3, _glUniform2i64vARB_args};

static const char * _glUniform3i64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3i64vARB_sig = {1123, "glUniform3i64vARB", 3, _glUniform3i64vARB_args};

static const char * _glUniform4i64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4i64vARB_sig = {1124, "glUniform4i64vARB", 3, _glUniform4i64vARB_args};

static const char * _glUniform1ui64ARB_args[2] = {"location", "x"};
static const trace::FunctionSig _glUniform1ui64ARB_sig = {1125, "glUniform1ui64ARB", 2, _glUniform1ui64ARB_args};

static const char * _glUniform2ui64ARB_args[3] = {"location", "x", "y"};
static const trace::FunctionSig _glUniform2ui64ARB_sig = {1126, "glUniform2ui64ARB", 3, _glUniform2ui64ARB_args};

static const char * _glUniform3ui64ARB_args[4] = {"location", "x", "y", "z"};
static const trace::FunctionSig _glUniform3ui64ARB_sig = {1127, "glUniform3ui64ARB", 4, _glUniform3ui64ARB_args};

static const char * _glUniform4ui64ARB_args[5] = {"location", "x", "y", "z", "w"};
static const trace::FunctionSig _glUniform4ui64ARB_sig = {1128, "glUniform4ui64ARB", 5, _glUniform4ui64ARB_args};

static const char * _glUniform1ui64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1ui64vARB_sig = {1129, "glUniform1ui64vARB", 3, _glUniform1ui64vARB_args};

static const char * _glUniform2ui64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2ui64vARB_sig = {1130, "glUniform2ui64vARB", 3, _glUniform2ui64vARB_args};

static const char * _glUniform3ui64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3ui64vARB_sig = {1131, "glUniform3ui64vARB", 3, _glUniform3ui64vARB_args};

static const char * _glUniform4ui64vARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4ui64vARB_sig = {1132, "glUniform4ui64vARB", 3, _glUniform4ui64vARB_args};

static const char * _glGetUniformi64vARB_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformi64vARB_sig = {1133, "glGetUniformi64vARB", 3, _glGetUniformi64vARB_args};

static const char * _glGetUniformui64vARB_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformui64vARB_sig = {1134, "glGetUniformui64vARB", 3, _glGetUniformui64vARB_args};

static const char * _glGetnUniformi64vARB_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformi64vARB_sig = {1135, "glGetnUniformi64vARB", 4, _glGetnUniformi64vARB_args};

static const char * _glGetnUniformui64vARB_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformui64vARB_sig = {1136, "glGetnUniformui64vARB", 4, _glGetnUniformui64vARB_args};

static const char * _glProgramUniform1i64ARB_args[3] = {"program", "location", "x"};
static const trace::FunctionSig _glProgramUniform1i64ARB_sig = {1137, "glProgramUniform1i64ARB", 3, _glProgramUniform1i64ARB_args};

static const char * _glProgramUniform2i64ARB_args[4] = {"program", "location", "x", "y"};
static const trace::FunctionSig _glProgramUniform2i64ARB_sig = {1138, "glProgramUniform2i64ARB", 4, _glProgramUniform2i64ARB_args};

static const char * _glProgramUniform3i64ARB_args[5] = {"program", "location", "x", "y", "z"};
static const trace::FunctionSig _glProgramUniform3i64ARB_sig = {1139, "glProgramUniform3i64ARB", 5, _glProgramUniform3i64ARB_args};

static const char * _glProgramUniform4i64ARB_args[6] = {"program", "location", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramUniform4i64ARB_sig = {1140, "glProgramUniform4i64ARB", 6, _glProgramUniform4i64ARB_args};

static const char * _glProgramUniform1i64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1i64vARB_sig = {1141, "glProgramUniform1i64vARB", 4, _glProgramUniform1i64vARB_args};

static const char * _glProgramUniform2i64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2i64vARB_sig = {1142, "glProgramUniform2i64vARB", 4, _glProgramUniform2i64vARB_args};

static const char * _glProgramUniform3i64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3i64vARB_sig = {1143, "glProgramUniform3i64vARB", 4, _glProgramUniform3i64vARB_args};

static const char * _glProgramUniform4i64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4i64vARB_sig = {1144, "glProgramUniform4i64vARB", 4, _glProgramUniform4i64vARB_args};

static const char * _glProgramUniform1ui64ARB_args[3] = {"program", "location", "x"};
static const trace::FunctionSig _glProgramUniform1ui64ARB_sig = {1145, "glProgramUniform1ui64ARB", 3, _glProgramUniform1ui64ARB_args};

static const char * _glProgramUniform2ui64ARB_args[4] = {"program", "location", "x", "y"};
static const trace::FunctionSig _glProgramUniform2ui64ARB_sig = {1146, "glProgramUniform2ui64ARB", 4, _glProgramUniform2ui64ARB_args};

static const char * _glProgramUniform3ui64ARB_args[5] = {"program", "location", "x", "y", "z"};
static const trace::FunctionSig _glProgramUniform3ui64ARB_sig = {1147, "glProgramUniform3ui64ARB", 5, _glProgramUniform3ui64ARB_args};

static const char * _glProgramUniform4ui64ARB_args[6] = {"program", "location", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramUniform4ui64ARB_sig = {1148, "glProgramUniform4ui64ARB", 6, _glProgramUniform4ui64ARB_args};

static const char * _glProgramUniform1ui64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1ui64vARB_sig = {1149, "glProgramUniform1ui64vARB", 4, _glProgramUniform1ui64vARB_args};

static const char * _glProgramUniform2ui64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2ui64vARB_sig = {1150, "glProgramUniform2ui64vARB", 4, _glProgramUniform2ui64vARB_args};

static const char * _glProgramUniform3ui64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3ui64vARB_sig = {1151, "glProgramUniform3ui64vARB", 4, _glProgramUniform3ui64vARB_args};

static const char * _glProgramUniform4ui64vARB_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4ui64vARB_sig = {1152, "glProgramUniform4ui64vARB", 4, _glProgramUniform4ui64vARB_args};

static const char * _glMultiDrawArraysIndirectCountARB_args[5] = {"mode", "indirect", "drawcount", "maxdrawcount", "stride"};
static const trace::FunctionSig _glMultiDrawArraysIndirectCountARB_sig = {1153, "glMultiDrawArraysIndirectCountARB", 5, _glMultiDrawArraysIndirectCountARB_args};

static const char * _glMultiDrawElementsIndirectCountARB_args[6] = {"mode", "type", "indirect", "drawcount", "maxdrawcount", "stride"};
static const trace::FunctionSig _glMultiDrawElementsIndirectCountARB_sig = {1154, "glMultiDrawElementsIndirectCountARB", 6, _glMultiDrawElementsIndirectCountARB_args};

static const char * _glVertexAttribDivisorARB_args[2] = {"index", "divisor"};
static const trace::FunctionSig _glVertexAttribDivisorARB_sig = {1155, "glVertexAttribDivisorARB", 2, _glVertexAttribDivisorARB_args};

static const char * _glGetInternalformativ_args[5] = {"target", "internalformat", "pname", "bufSize", "params"};
static const trace::FunctionSig _glGetInternalformativ_sig = {1156, "glGetInternalformativ", 5, _glGetInternalformativ_args};

static const char * _glGetInternalformati64v_args[5] = {"target", "internalformat", "pname", "bufSize", "params"};
static const trace::FunctionSig _glGetInternalformati64v_sig = {1157, "glGetInternalformati64v", 5, _glGetInternalformati64v_args};

static const char * _glInvalidateTexSubImage_args[8] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth"};
static const trace::FunctionSig _glInvalidateTexSubImage_sig = {1158, "glInvalidateTexSubImage", 8, _glInvalidateTexSubImage_args};

static const char * _glInvalidateTexImage_args[2] = {"texture", "level"};
static const trace::FunctionSig _glInvalidateTexImage_sig = {1159, "glInvalidateTexImage", 2, _glInvalidateTexImage_args};

static const char * _glInvalidateBufferSubData_args[3] = {"buffer", "offset", "length"};
static const trace::FunctionSig _glInvalidateBufferSubData_sig = {1160, "glInvalidateBufferSubData", 3, _glInvalidateBufferSubData_args};

static const char * _glInvalidateBufferData_args[1] = {"buffer"};
static const trace::FunctionSig _glInvalidateBufferData_sig = {1161, "glInvalidateBufferData", 1, _glInvalidateBufferData_args};

static const char * _glInvalidateFramebuffer_args[3] = {"target", "numAttachments", "attachments"};
static const trace::FunctionSig _glInvalidateFramebuffer_sig = {1162, "glInvalidateFramebuffer", 3, _glInvalidateFramebuffer_args};

static const char * _glInvalidateSubFramebuffer_args[7] = {"target", "numAttachments", "attachments", "x", "y", "width", "height"};
static const trace::FunctionSig _glInvalidateSubFramebuffer_sig = {1163, "glInvalidateSubFramebuffer", 7, _glInvalidateSubFramebuffer_args};

static const char * _glMapBufferRange_args[4] = {"target", "offset", "length", "access"};
static const trace::FunctionSig _glMapBufferRange_sig = {1164, "glMapBufferRange", 4, _glMapBufferRange_args};

static const char * _glFlushMappedBufferRange_args[3] = {"target", "offset", "length"};
static const trace::FunctionSig _glFlushMappedBufferRange_sig = {1165, "glFlushMappedBufferRange", 3, _glFlushMappedBufferRange_args};

static const char * _glCurrentPaletteMatrixARB_args[1] = {"index"};
static const trace::FunctionSig _glCurrentPaletteMatrixARB_sig = {1166, "glCurrentPaletteMatrixARB", 1, _glCurrentPaletteMatrixARB_args};

static const char * _glMatrixIndexubvARB_args[2] = {"size", "indices"};
static const trace::FunctionSig _glMatrixIndexubvARB_sig = {1167, "glMatrixIndexubvARB", 2, _glMatrixIndexubvARB_args};

static const char * _glMatrixIndexusvARB_args[2] = {"size", "indices"};
static const trace::FunctionSig _glMatrixIndexusvARB_sig = {1168, "glMatrixIndexusvARB", 2, _glMatrixIndexusvARB_args};

static const char * _glMatrixIndexuivARB_args[2] = {"size", "indices"};
static const trace::FunctionSig _glMatrixIndexuivARB_sig = {1169, "glMatrixIndexuivARB", 2, _glMatrixIndexuivARB_args};

static const char * _glMatrixIndexPointerARB_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glMatrixIndexPointerARB_sig = {1170, "glMatrixIndexPointerARB", 4, _glMatrixIndexPointerARB_args};

static const char * _glBindBuffersBase_args[4] = {"target", "first", "count", "buffers"};
static const trace::FunctionSig _glBindBuffersBase_sig = {1171, "glBindBuffersBase", 4, _glBindBuffersBase_args};

static const char * _glBindBuffersRange_args[6] = {"target", "first", "count", "buffers", "offsets", "sizes"};
static const trace::FunctionSig _glBindBuffersRange_sig = {1172, "glBindBuffersRange", 6, _glBindBuffersRange_args};

static const char * _glBindTextures_args[3] = {"first", "count", "textures"};
static const trace::FunctionSig _glBindTextures_sig = {1173, "glBindTextures", 3, _glBindTextures_args};

static const char * _glBindSamplers_args[3] = {"first", "count", "samplers"};
static const trace::FunctionSig _glBindSamplers_sig = {1174, "glBindSamplers", 3, _glBindSamplers_args};

static const char * _glBindImageTextures_args[3] = {"first", "count", "textures"};
static const trace::FunctionSig _glBindImageTextures_sig = {1175, "glBindImageTextures", 3, _glBindImageTextures_args};

static const char * _glBindVertexBuffers_args[5] = {"first", "count", "buffers", "offsets", "strides"};
static const trace::FunctionSig _glBindVertexBuffers_sig = {1176, "glBindVertexBuffers", 5, _glBindVertexBuffers_args};

static const char * _glMultiDrawArraysIndirect_args[4] = {"mode", "indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawArraysIndirect_sig = {1177, "glMultiDrawArraysIndirect", 4, _glMultiDrawArraysIndirect_args};

static const char * _glMultiDrawElementsIndirect_args[5] = {"mode", "type", "indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawElementsIndirect_sig = {1178, "glMultiDrawElementsIndirect", 5, _glMultiDrawElementsIndirect_args};

static const char * _glSampleCoverageARB_args[2] = {"value", "invert"};
static const trace::FunctionSig _glSampleCoverageARB_sig = {1179, "glSampleCoverageARB", 2, _glSampleCoverageARB_args};

static const char * _glActiveTextureARB_args[1] = {"texture"};
static const trace::FunctionSig _glActiveTextureARB_sig = {1180, "glActiveTextureARB", 1, _glActiveTextureARB_args};

static const char * _glClientActiveTextureARB_args[1] = {"texture"};
static const trace::FunctionSig _glClientActiveTextureARB_sig = {1181, "glClientActiveTextureARB", 1, _glClientActiveTextureARB_args};

static const char * _glMultiTexCoord1dARB_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1dARB_sig = {1182, "glMultiTexCoord1dARB", 2, _glMultiTexCoord1dARB_args};

static const char * _glMultiTexCoord1dvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1dvARB_sig = {1183, "glMultiTexCoord1dvARB", 2, _glMultiTexCoord1dvARB_args};

static const char * _glMultiTexCoord1fARB_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1fARB_sig = {1184, "glMultiTexCoord1fARB", 2, _glMultiTexCoord1fARB_args};

static const char * _glMultiTexCoord1fvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1fvARB_sig = {1185, "glMultiTexCoord1fvARB", 2, _glMultiTexCoord1fvARB_args};

static const char * _glMultiTexCoord1iARB_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1iARB_sig = {1186, "glMultiTexCoord1iARB", 2, _glMultiTexCoord1iARB_args};

static const char * _glMultiTexCoord1ivARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1ivARB_sig = {1187, "glMultiTexCoord1ivARB", 2, _glMultiTexCoord1ivARB_args};

static const char * _glMultiTexCoord1sARB_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1sARB_sig = {1188, "glMultiTexCoord1sARB", 2, _glMultiTexCoord1sARB_args};

static const char * _glMultiTexCoord1svARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1svARB_sig = {1189, "glMultiTexCoord1svARB", 2, _glMultiTexCoord1svARB_args};

static const char * _glMultiTexCoord2dARB_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2dARB_sig = {1190, "glMultiTexCoord2dARB", 3, _glMultiTexCoord2dARB_args};

static const char * _glMultiTexCoord2dvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2dvARB_sig = {1191, "glMultiTexCoord2dvARB", 2, _glMultiTexCoord2dvARB_args};

static const char * _glMultiTexCoord2fARB_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2fARB_sig = {1192, "glMultiTexCoord2fARB", 3, _glMultiTexCoord2fARB_args};

static const char * _glMultiTexCoord2fvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2fvARB_sig = {1193, "glMultiTexCoord2fvARB", 2, _glMultiTexCoord2fvARB_args};

static const char * _glMultiTexCoord2iARB_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2iARB_sig = {1194, "glMultiTexCoord2iARB", 3, _glMultiTexCoord2iARB_args};

static const char * _glMultiTexCoord2ivARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2ivARB_sig = {1195, "glMultiTexCoord2ivARB", 2, _glMultiTexCoord2ivARB_args};

static const char * _glMultiTexCoord2sARB_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2sARB_sig = {1196, "glMultiTexCoord2sARB", 3, _glMultiTexCoord2sARB_args};

static const char * _glMultiTexCoord2svARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2svARB_sig = {1197, "glMultiTexCoord2svARB", 2, _glMultiTexCoord2svARB_args};

static const char * _glMultiTexCoord3dARB_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3dARB_sig = {1198, "glMultiTexCoord3dARB", 4, _glMultiTexCoord3dARB_args};

static const char * _glMultiTexCoord3dvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3dvARB_sig = {1199, "glMultiTexCoord3dvARB", 2, _glMultiTexCoord3dvARB_args};

static const char * _glMultiTexCoord3fARB_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3fARB_sig = {1200, "glMultiTexCoord3fARB", 4, _glMultiTexCoord3fARB_args};

static const char * _glMultiTexCoord3fvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3fvARB_sig = {1201, "glMultiTexCoord3fvARB", 2, _glMultiTexCoord3fvARB_args};

static const char * _glMultiTexCoord3iARB_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3iARB_sig = {1202, "glMultiTexCoord3iARB", 4, _glMultiTexCoord3iARB_args};

static const char * _glMultiTexCoord3ivARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3ivARB_sig = {1203, "glMultiTexCoord3ivARB", 2, _glMultiTexCoord3ivARB_args};

static const char * _glMultiTexCoord3sARB_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3sARB_sig = {1204, "glMultiTexCoord3sARB", 4, _glMultiTexCoord3sARB_args};

static const char * _glMultiTexCoord3svARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3svARB_sig = {1205, "glMultiTexCoord3svARB", 2, _glMultiTexCoord3svARB_args};

static const char * _glMultiTexCoord4dARB_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4dARB_sig = {1206, "glMultiTexCoord4dARB", 5, _glMultiTexCoord4dARB_args};

static const char * _glMultiTexCoord4dvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4dvARB_sig = {1207, "glMultiTexCoord4dvARB", 2, _glMultiTexCoord4dvARB_args};

static const char * _glMultiTexCoord4fARB_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4fARB_sig = {1208, "glMultiTexCoord4fARB", 5, _glMultiTexCoord4fARB_args};

static const char * _glMultiTexCoord4fvARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4fvARB_sig = {1209, "glMultiTexCoord4fvARB", 2, _glMultiTexCoord4fvARB_args};

static const char * _glMultiTexCoord4iARB_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4iARB_sig = {1210, "glMultiTexCoord4iARB", 5, _glMultiTexCoord4iARB_args};

static const char * _glMultiTexCoord4ivARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4ivARB_sig = {1211, "glMultiTexCoord4ivARB", 2, _glMultiTexCoord4ivARB_args};

static const char * _glMultiTexCoord4sARB_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4sARB_sig = {1212, "glMultiTexCoord4sARB", 5, _glMultiTexCoord4sARB_args};

static const char * _glMultiTexCoord4svARB_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4svARB_sig = {1213, "glMultiTexCoord4svARB", 2, _glMultiTexCoord4svARB_args};

static const char * _glGenQueriesARB_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenQueriesARB_sig = {1214, "glGenQueriesARB", 2, _glGenQueriesARB_args};

static const char * _glDeleteQueriesARB_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteQueriesARB_sig = {1215, "glDeleteQueriesARB", 2, _glDeleteQueriesARB_args};

static const char * _glIsQueryARB_args[1] = {"id"};
static const trace::FunctionSig _glIsQueryARB_sig = {1216, "glIsQueryARB", 1, _glIsQueryARB_args};

static const char * _glBeginQueryARB_args[2] = {"target", "id"};
static const trace::FunctionSig _glBeginQueryARB_sig = {1217, "glBeginQueryARB", 2, _glBeginQueryARB_args};

static const char * _glEndQueryARB_args[1] = {"target"};
static const trace::FunctionSig _glEndQueryARB_sig = {1218, "glEndQueryARB", 1, _glEndQueryARB_args};

static const char * _glGetQueryivARB_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetQueryivARB_sig = {1219, "glGetQueryivARB", 3, _glGetQueryivARB_args};

static const char * _glGetQueryObjectivARB_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectivARB_sig = {1220, "glGetQueryObjectivARB", 3, _glGetQueryObjectivARB_args};

static const char * _glGetQueryObjectuivARB_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectuivARB_sig = {1221, "glGetQueryObjectuivARB", 3, _glGetQueryObjectuivARB_args};

static const char * _glMaxShaderCompilerThreadsARB_args[1] = {"count"};
static const trace::FunctionSig _glMaxShaderCompilerThreadsARB_sig = {1222, "glMaxShaderCompilerThreadsARB", 1, _glMaxShaderCompilerThreadsARB_args};

static const char * _glPointParameterfARB_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameterfARB_sig = {1223, "glPointParameterfARB", 2, _glPointParameterfARB_args};

static const char * _glPointParameterfvARB_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameterfvARB_sig = {1224, "glPointParameterfvARB", 2, _glPointParameterfvARB_args};

static const char * _glGetProgramInterfaceiv_args[4] = {"program", "programInterface", "pname", "params"};
static const trace::FunctionSig _glGetProgramInterfaceiv_sig = {1225, "glGetProgramInterfaceiv", 4, _glGetProgramInterfaceiv_args};

static const char * _glGetProgramResourceIndex_args[3] = {"program", "programInterface", "name"};
static const trace::FunctionSig _glGetProgramResourceIndex_sig = {1226, "glGetProgramResourceIndex", 3, _glGetProgramResourceIndex_args};

static const char * _glGetProgramResourceName_args[6] = {"program", "programInterface", "index", "bufSize", "length", "name"};
static const trace::FunctionSig _glGetProgramResourceName_sig = {1227, "glGetProgramResourceName", 6, _glGetProgramResourceName_args};

static const char * _glGetProgramResourceiv_args[8] = {"program", "programInterface", "index", "propCount", "props", "bufSize", "length", "params"};
static const trace::FunctionSig _glGetProgramResourceiv_sig = {1228, "glGetProgramResourceiv", 8, _glGetProgramResourceiv_args};

static const char * _glGetProgramResourceLocation_args[3] = {"program", "programInterface", "name"};
static const trace::FunctionSig _glGetProgramResourceLocation_sig = {1229, "glGetProgramResourceLocation", 3, _glGetProgramResourceLocation_args};

static const char * _glGetProgramResourceLocationIndex_args[3] = {"program", "programInterface", "name"};
static const trace::FunctionSig _glGetProgramResourceLocationIndex_sig = {1230, "glGetProgramResourceLocationIndex", 3, _glGetProgramResourceLocationIndex_args};

static const char * _glProvokingVertex_args[1] = {"mode"};
static const trace::FunctionSig _glProvokingVertex_sig = {1231, "glProvokingVertex", 1, _glProvokingVertex_args};

static const char ** _glGetGraphicsResetStatusARB_args = NULL;
static const trace::FunctionSig _glGetGraphicsResetStatusARB_sig = {1232, "glGetGraphicsResetStatusARB", 0, _glGetGraphicsResetStatusARB_args};

static const char * _glGetnMapdvARB_args[4] = {"target", "query", "bufSize", "v"};
static const trace::FunctionSig _glGetnMapdvARB_sig = {1233, "glGetnMapdvARB", 4, _glGetnMapdvARB_args};

static const char * _glGetnMapfvARB_args[4] = {"target", "query", "bufSize", "v"};
static const trace::FunctionSig _glGetnMapfvARB_sig = {1234, "glGetnMapfvARB", 4, _glGetnMapfvARB_args};

static const char * _glGetnMapivARB_args[4] = {"target", "query", "bufSize", "v"};
static const trace::FunctionSig _glGetnMapivARB_sig = {1235, "glGetnMapivARB", 4, _glGetnMapivARB_args};

static const char * _glGetnPixelMapfvARB_args[3] = {"map", "bufSize", "values"};
static const trace::FunctionSig _glGetnPixelMapfvARB_sig = {1236, "glGetnPixelMapfvARB", 3, _glGetnPixelMapfvARB_args};

static const char * _glGetnPixelMapuivARB_args[3] = {"map", "bufSize", "values"};
static const trace::FunctionSig _glGetnPixelMapuivARB_sig = {1237, "glGetnPixelMapuivARB", 3, _glGetnPixelMapuivARB_args};

static const char * _glGetnPixelMapusvARB_args[3] = {"map", "bufSize", "values"};
static const trace::FunctionSig _glGetnPixelMapusvARB_sig = {1238, "glGetnPixelMapusvARB", 3, _glGetnPixelMapusvARB_args};

static const char * _glGetnPolygonStippleARB_args[2] = {"bufSize", "pattern"};
static const trace::FunctionSig _glGetnPolygonStippleARB_sig = {1239, "glGetnPolygonStippleARB", 2, _glGetnPolygonStippleARB_args};

static const char * _glGetnColorTableARB_args[5] = {"target", "format", "type", "bufSize", "table"};
static const trace::FunctionSig _glGetnColorTableARB_sig = {1240, "glGetnColorTableARB", 5, _glGetnColorTableARB_args};

static const char * _glGetnConvolutionFilterARB_args[5] = {"target", "format", "type", "bufSize", "image"};
static const trace::FunctionSig _glGetnConvolutionFilterARB_sig = {1241, "glGetnConvolutionFilterARB", 5, _glGetnConvolutionFilterARB_args};

static const char * _glGetnSeparableFilterARB_args[8] = {"target", "format", "type", "rowBufSize", "row", "columnBufSize", "column", "span"};
static const trace::FunctionSig _glGetnSeparableFilterARB_sig = {1242, "glGetnSeparableFilterARB", 8, _glGetnSeparableFilterARB_args};

static const char * _glGetnHistogramARB_args[6] = {"target", "reset", "format", "type", "bufSize", "values"};
static const trace::FunctionSig _glGetnHistogramARB_sig = {1243, "glGetnHistogramARB", 6, _glGetnHistogramARB_args};

static const char * _glGetnMinmaxARB_args[6] = {"target", "reset", "format", "type", "bufSize", "values"};
static const trace::FunctionSig _glGetnMinmaxARB_sig = {1244, "glGetnMinmaxARB", 6, _glGetnMinmaxARB_args};

static const char * _glGetnTexImageARB_args[6] = {"target", "level", "format", "type", "bufSize", "img"};
static const trace::FunctionSig _glGetnTexImageARB_sig = {1245, "glGetnTexImageARB", 6, _glGetnTexImageARB_args};

static const char * _glReadnPixelsARB_args[8] = {"x", "y", "width", "height", "format", "type", "bufSize", "data"};
static const trace::FunctionSig _glReadnPixelsARB_sig = {1246, "glReadnPixelsARB", 8, _glReadnPixelsARB_args};

static const char * _glGetnCompressedTexImageARB_args[4] = {"target", "lod", "bufSize", "img"};
static const trace::FunctionSig _glGetnCompressedTexImageARB_sig = {1247, "glGetnCompressedTexImageARB", 4, _glGetnCompressedTexImageARB_args};

static const char * _glGetnUniformfvARB_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformfvARB_sig = {1248, "glGetnUniformfvARB", 4, _glGetnUniformfvARB_args};

static const char * _glGetnUniformivARB_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformivARB_sig = {1249, "glGetnUniformivARB", 4, _glGetnUniformivARB_args};

static const char * _glGetnUniformuivARB_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformuivARB_sig = {1250, "glGetnUniformuivARB", 4, _glGetnUniformuivARB_args};

static const char * _glGetnUniformdvARB_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformdvARB_sig = {1251, "glGetnUniformdvARB", 4, _glGetnUniformdvARB_args};

static const char * _glFramebufferSampleLocationsfvARB_args[4] = {"target", "start", "count", "v"};
static const trace::FunctionSig _glFramebufferSampleLocationsfvARB_sig = {1252, "glFramebufferSampleLocationsfvARB", 4, _glFramebufferSampleLocationsfvARB_args};

static const char * _glNamedFramebufferSampleLocationsfvARB_args[4] = {"framebuffer", "start", "count", "v"};
static const trace::FunctionSig _glNamedFramebufferSampleLocationsfvARB_sig = {1253, "glNamedFramebufferSampleLocationsfvARB", 4, _glNamedFramebufferSampleLocationsfvARB_args};

static const char ** _glEvaluateDepthValuesARB_args = NULL;
static const trace::FunctionSig _glEvaluateDepthValuesARB_sig = {1254, "glEvaluateDepthValuesARB", 0, _glEvaluateDepthValuesARB_args};

static const char * _glMinSampleShadingARB_args[1] = {"value"};
static const trace::FunctionSig _glMinSampleShadingARB_sig = {1255, "glMinSampleShadingARB", 1, _glMinSampleShadingARB_args};

static const char * _glGenSamplers_args[2] = {"count", "samplers"};
static const trace::FunctionSig _glGenSamplers_sig = {1256, "glGenSamplers", 2, _glGenSamplers_args};

static const char * _glDeleteSamplers_args[2] = {"count", "samplers"};
static const trace::FunctionSig _glDeleteSamplers_sig = {1257, "glDeleteSamplers", 2, _glDeleteSamplers_args};

static const char * _glIsSampler_args[1] = {"sampler"};
static const trace::FunctionSig _glIsSampler_sig = {1258, "glIsSampler", 1, _glIsSampler_args};

static const char * _glBindSampler_args[2] = {"unit", "sampler"};
static const trace::FunctionSig _glBindSampler_sig = {1259, "glBindSampler", 2, _glBindSampler_args};

static const char * _glSamplerParameteri_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameteri_sig = {1260, "glSamplerParameteri", 3, _glSamplerParameteri_args};

static const char * _glSamplerParameteriv_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameteriv_sig = {1261, "glSamplerParameteriv", 3, _glSamplerParameteriv_args};

static const char * _glSamplerParameterf_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameterf_sig = {1262, "glSamplerParameterf", 3, _glSamplerParameterf_args};

static const char * _glSamplerParameterfv_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameterfv_sig = {1263, "glSamplerParameterfv", 3, _glSamplerParameterfv_args};

static const char * _glSamplerParameterIiv_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameterIiv_sig = {1264, "glSamplerParameterIiv", 3, _glSamplerParameterIiv_args};

static const char * _glSamplerParameterIuiv_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameterIuiv_sig = {1265, "glSamplerParameterIuiv", 3, _glSamplerParameterIuiv_args};

static const char * _glGetSamplerParameteriv_args[3] = {"sampler", "pname", "params"};
static const trace::FunctionSig _glGetSamplerParameteriv_sig = {1266, "glGetSamplerParameteriv", 3, _glGetSamplerParameteriv_args};

static const char * _glGetSamplerParameterIiv_args[3] = {"sampler", "pname", "params"};
static const trace::FunctionSig _glGetSamplerParameterIiv_sig = {1267, "glGetSamplerParameterIiv", 3, _glGetSamplerParameterIiv_args};

static const char * _glGetSamplerParameterfv_args[3] = {"sampler", "pname", "params"};
static const trace::FunctionSig _glGetSamplerParameterfv_sig = {1268, "glGetSamplerParameterfv", 3, _glGetSamplerParameterfv_args};

static const char * _glGetSamplerParameterIuiv_args[3] = {"sampler", "pname", "params"};
static const trace::FunctionSig _glGetSamplerParameterIuiv_sig = {1269, "glGetSamplerParameterIuiv", 3, _glGetSamplerParameterIuiv_args};

static const char * _glUseProgramStages_args[3] = {"pipeline", "stages", "program"};
static const trace::FunctionSig _glUseProgramStages_sig = {1270, "glUseProgramStages", 3, _glUseProgramStages_args};

static const char * _glActiveShaderProgram_args[2] = {"pipeline", "program"};
static const trace::FunctionSig _glActiveShaderProgram_sig = {1271, "glActiveShaderProgram", 2, _glActiveShaderProgram_args};

static const char * _glCreateShaderProgramv_args[3] = {"type", "count", "strings"};
static const trace::FunctionSig _glCreateShaderProgramv_sig = {1272, "glCreateShaderProgramv", 3, _glCreateShaderProgramv_args};

static const char * _glBindProgramPipeline_args[1] = {"pipeline"};
static const trace::FunctionSig _glBindProgramPipeline_sig = {1273, "glBindProgramPipeline", 1, _glBindProgramPipeline_args};

static const char * _glDeleteProgramPipelines_args[2] = {"n", "pipelines"};
static const trace::FunctionSig _glDeleteProgramPipelines_sig = {1274, "glDeleteProgramPipelines", 2, _glDeleteProgramPipelines_args};

static const char * _glGenProgramPipelines_args[2] = {"n", "pipelines"};
static const trace::FunctionSig _glGenProgramPipelines_sig = {1275, "glGenProgramPipelines", 2, _glGenProgramPipelines_args};

static const char * _glIsProgramPipeline_args[1] = {"pipeline"};
static const trace::FunctionSig _glIsProgramPipeline_sig = {1276, "glIsProgramPipeline", 1, _glIsProgramPipeline_args};

static const char * _glGetProgramPipelineiv_args[3] = {"pipeline", "pname", "params"};
static const trace::FunctionSig _glGetProgramPipelineiv_sig = {1277, "glGetProgramPipelineiv", 3, _glGetProgramPipelineiv_args};

static const char * _glProgramUniform1i_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1i_sig = {1278, "glProgramUniform1i", 3, _glProgramUniform1i_args};

static const char * _glProgramUniform1iv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1iv_sig = {1279, "glProgramUniform1iv", 4, _glProgramUniform1iv_args};

static const char * _glProgramUniform1f_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1f_sig = {1280, "glProgramUniform1f", 3, _glProgramUniform1f_args};

static const char * _glProgramUniform1fv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1fv_sig = {1281, "glProgramUniform1fv", 4, _glProgramUniform1fv_args};

static const char * _glProgramUniform1d_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1d_sig = {1282, "glProgramUniform1d", 3, _glProgramUniform1d_args};

static const char * _glProgramUniform1dv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1dv_sig = {1283, "glProgramUniform1dv", 4, _glProgramUniform1dv_args};

static const char * _glProgramUniform1ui_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1ui_sig = {1284, "glProgramUniform1ui", 3, _glProgramUniform1ui_args};

static const char * _glProgramUniform1uiv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1uiv_sig = {1285, "glProgramUniform1uiv", 4, _glProgramUniform1uiv_args};

static const char * _glProgramUniform2i_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2i_sig = {1286, "glProgramUniform2i", 4, _glProgramUniform2i_args};

static const char * _glProgramUniform2iv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2iv_sig = {1287, "glProgramUniform2iv", 4, _glProgramUniform2iv_args};

static const char * _glProgramUniform2f_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2f_sig = {1288, "glProgramUniform2f", 4, _glProgramUniform2f_args};

static const char * _glProgramUniform2fv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2fv_sig = {1289, "glProgramUniform2fv", 4, _glProgramUniform2fv_args};

static const char * _glProgramUniform2d_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2d_sig = {1290, "glProgramUniform2d", 4, _glProgramUniform2d_args};

static const char * _glProgramUniform2dv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2dv_sig = {1291, "glProgramUniform2dv", 4, _glProgramUniform2dv_args};

static const char * _glProgramUniform2ui_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2ui_sig = {1292, "glProgramUniform2ui", 4, _glProgramUniform2ui_args};

static const char * _glProgramUniform2uiv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2uiv_sig = {1293, "glProgramUniform2uiv", 4, _glProgramUniform2uiv_args};

static const char * _glProgramUniform3i_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3i_sig = {1294, "glProgramUniform3i", 5, _glProgramUniform3i_args};

static const char * _glProgramUniform3iv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3iv_sig = {1295, "glProgramUniform3iv", 4, _glProgramUniform3iv_args};

static const char * _glProgramUniform3f_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3f_sig = {1296, "glProgramUniform3f", 5, _glProgramUniform3f_args};

static const char * _glProgramUniform3fv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3fv_sig = {1297, "glProgramUniform3fv", 4, _glProgramUniform3fv_args};

static const char * _glProgramUniform3d_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3d_sig = {1298, "glProgramUniform3d", 5, _glProgramUniform3d_args};

static const char * _glProgramUniform3dv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3dv_sig = {1299, "glProgramUniform3dv", 4, _glProgramUniform3dv_args};

static const char * _glProgramUniform3ui_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3ui_sig = {1300, "glProgramUniform3ui", 5, _glProgramUniform3ui_args};

static const char * _glProgramUniform3uiv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3uiv_sig = {1301, "glProgramUniform3uiv", 4, _glProgramUniform3uiv_args};

static const char * _glProgramUniform4i_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4i_sig = {1302, "glProgramUniform4i", 6, _glProgramUniform4i_args};

static const char * _glProgramUniform4iv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4iv_sig = {1303, "glProgramUniform4iv", 4, _glProgramUniform4iv_args};

static const char * _glProgramUniform4f_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4f_sig = {1304, "glProgramUniform4f", 6, _glProgramUniform4f_args};

static const char * _glProgramUniform4fv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4fv_sig = {1305, "glProgramUniform4fv", 4, _glProgramUniform4fv_args};

static const char * _glProgramUniform4d_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4d_sig = {1306, "glProgramUniform4d", 6, _glProgramUniform4d_args};

static const char * _glProgramUniform4dv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4dv_sig = {1307, "glProgramUniform4dv", 4, _glProgramUniform4dv_args};

static const char * _glProgramUniform4ui_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4ui_sig = {1308, "glProgramUniform4ui", 6, _glProgramUniform4ui_args};

static const char * _glProgramUniform4uiv_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4uiv_sig = {1309, "glProgramUniform4uiv", 4, _glProgramUniform4uiv_args};

static const char * _glProgramUniformMatrix2fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2fv_sig = {1310, "glProgramUniformMatrix2fv", 5, _glProgramUniformMatrix2fv_args};

static const char * _glProgramUniformMatrix3fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3fv_sig = {1311, "glProgramUniformMatrix3fv", 5, _glProgramUniformMatrix3fv_args};

static const char * _glProgramUniformMatrix4fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4fv_sig = {1312, "glProgramUniformMatrix4fv", 5, _glProgramUniformMatrix4fv_args};

static const char * _glProgramUniformMatrix2dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2dv_sig = {1313, "glProgramUniformMatrix2dv", 5, _glProgramUniformMatrix2dv_args};

static const char * _glProgramUniformMatrix3dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3dv_sig = {1314, "glProgramUniformMatrix3dv", 5, _glProgramUniformMatrix3dv_args};

static const char * _glProgramUniformMatrix4dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4dv_sig = {1315, "glProgramUniformMatrix4dv", 5, _glProgramUniformMatrix4dv_args};

static const char * _glProgramUniformMatrix2x3fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x3fv_sig = {1316, "glProgramUniformMatrix2x3fv", 5, _glProgramUniformMatrix2x3fv_args};

static const char * _glProgramUniformMatrix3x2fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x2fv_sig = {1317, "glProgramUniformMatrix3x2fv", 5, _glProgramUniformMatrix3x2fv_args};

static const char * _glProgramUniformMatrix2x4fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x4fv_sig = {1318, "glProgramUniformMatrix2x4fv", 5, _glProgramUniformMatrix2x4fv_args};

static const char * _glProgramUniformMatrix4x2fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x2fv_sig = {1319, "glProgramUniformMatrix4x2fv", 5, _glProgramUniformMatrix4x2fv_args};

static const char * _glProgramUniformMatrix3x4fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x4fv_sig = {1320, "glProgramUniformMatrix3x4fv", 5, _glProgramUniformMatrix3x4fv_args};

static const char * _glProgramUniformMatrix4x3fv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x3fv_sig = {1321, "glProgramUniformMatrix4x3fv", 5, _glProgramUniformMatrix4x3fv_args};

static const char * _glProgramUniformMatrix2x3dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x3dv_sig = {1322, "glProgramUniformMatrix2x3dv", 5, _glProgramUniformMatrix2x3dv_args};

static const char * _glProgramUniformMatrix3x2dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x2dv_sig = {1323, "glProgramUniformMatrix3x2dv", 5, _glProgramUniformMatrix3x2dv_args};

static const char * _glProgramUniformMatrix2x4dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x4dv_sig = {1324, "glProgramUniformMatrix2x4dv", 5, _glProgramUniformMatrix2x4dv_args};

static const char * _glProgramUniformMatrix4x2dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x2dv_sig = {1325, "glProgramUniformMatrix4x2dv", 5, _glProgramUniformMatrix4x2dv_args};

static const char * _glProgramUniformMatrix3x4dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x4dv_sig = {1326, "glProgramUniformMatrix3x4dv", 5, _glProgramUniformMatrix3x4dv_args};

static const char * _glProgramUniformMatrix4x3dv_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x3dv_sig = {1327, "glProgramUniformMatrix4x3dv", 5, _glProgramUniformMatrix4x3dv_args};

static const char * _glValidateProgramPipeline_args[1] = {"pipeline"};
static const trace::FunctionSig _glValidateProgramPipeline_sig = {1328, "glValidateProgramPipeline", 1, _glValidateProgramPipeline_args};

static const char * _glGetProgramPipelineInfoLog_args[4] = {"pipeline", "bufSize", "length", "infoLog"};
static const trace::FunctionSig _glGetProgramPipelineInfoLog_sig = {1329, "glGetProgramPipelineInfoLog", 4, _glGetProgramPipelineInfoLog_args};

static const char * _glGetActiveAtomicCounterBufferiv_args[4] = {"program", "bufferIndex", "pname", "params"};
static const trace::FunctionSig _glGetActiveAtomicCounterBufferiv_sig = {1330, "glGetActiveAtomicCounterBufferiv", 4, _glGetActiveAtomicCounterBufferiv_args};

static const char * _glBindImageTexture_args[7] = {"unit", "texture", "level", "layered", "layer", "access", "format"};
static const trace::FunctionSig _glBindImageTexture_sig = {1331, "glBindImageTexture", 7, _glBindImageTexture_args};

static const char * _glMemoryBarrier_args[1] = {"barriers"};
static const trace::FunctionSig _glMemoryBarrier_sig = {1332, "glMemoryBarrier", 1, _glMemoryBarrier_args};

static const char * _glDeleteObjectARB_args[1] = {"obj"};
static const trace::FunctionSig _glDeleteObjectARB_sig = {1333, "glDeleteObjectARB", 1, _glDeleteObjectARB_args};

static const char * _glGetHandleARB_args[1] = {"pname"};
static const trace::FunctionSig _glGetHandleARB_sig = {1334, "glGetHandleARB", 1, _glGetHandleARB_args};

static const char * _glDetachObjectARB_args[2] = {"containerObj", "attachedObj"};
static const trace::FunctionSig _glDetachObjectARB_sig = {1335, "glDetachObjectARB", 2, _glDetachObjectARB_args};

static const char * _glCreateShaderObjectARB_args[1] = {"shaderType"};
static const trace::FunctionSig _glCreateShaderObjectARB_sig = {1336, "glCreateShaderObjectARB", 1, _glCreateShaderObjectARB_args};

static const char * _glShaderSourceARB_args[4] = {"shaderObj", "count", "string", "length"};
static const trace::FunctionSig _glShaderSourceARB_sig = {1337, "glShaderSourceARB", 4, _glShaderSourceARB_args};

static const char * _glCompileShaderARB_args[1] = {"shaderObj"};
static const trace::FunctionSig _glCompileShaderARB_sig = {1338, "glCompileShaderARB", 1, _glCompileShaderARB_args};

static const char ** _glCreateProgramObjectARB_args = NULL;
static const trace::FunctionSig _glCreateProgramObjectARB_sig = {1339, "glCreateProgramObjectARB", 0, _glCreateProgramObjectARB_args};

static const char * _glAttachObjectARB_args[2] = {"containerObj", "obj"};
static const trace::FunctionSig _glAttachObjectARB_sig = {1340, "glAttachObjectARB", 2, _glAttachObjectARB_args};

static const char * _glLinkProgramARB_args[1] = {"programObj"};
static const trace::FunctionSig _glLinkProgramARB_sig = {1341, "glLinkProgramARB", 1, _glLinkProgramARB_args};

static const char * _glUseProgramObjectARB_args[1] = {"programObj"};
static const trace::FunctionSig _glUseProgramObjectARB_sig = {1342, "glUseProgramObjectARB", 1, _glUseProgramObjectARB_args};

static const char * _glValidateProgramARB_args[1] = {"programObj"};
static const trace::FunctionSig _glValidateProgramARB_sig = {1343, "glValidateProgramARB", 1, _glValidateProgramARB_args};

static const char * _glUniform1fARB_args[2] = {"location", "v0"};
static const trace::FunctionSig _glUniform1fARB_sig = {1344, "glUniform1fARB", 2, _glUniform1fARB_args};

static const char * _glUniform2fARB_args[3] = {"location", "v0", "v1"};
static const trace::FunctionSig _glUniform2fARB_sig = {1345, "glUniform2fARB", 3, _glUniform2fARB_args};

static const char * _glUniform3fARB_args[4] = {"location", "v0", "v1", "v2"};
static const trace::FunctionSig _glUniform3fARB_sig = {1346, "glUniform3fARB", 4, _glUniform3fARB_args};

static const char * _glUniform4fARB_args[5] = {"location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glUniform4fARB_sig = {1347, "glUniform4fARB", 5, _glUniform4fARB_args};

static const char * _glUniform1iARB_args[2] = {"location", "v0"};
static const trace::FunctionSig _glUniform1iARB_sig = {1348, "glUniform1iARB", 2, _glUniform1iARB_args};

static const char * _glUniform2iARB_args[3] = {"location", "v0", "v1"};
static const trace::FunctionSig _glUniform2iARB_sig = {1349, "glUniform2iARB", 3, _glUniform2iARB_args};

static const char * _glUniform3iARB_args[4] = {"location", "v0", "v1", "v2"};
static const trace::FunctionSig _glUniform3iARB_sig = {1350, "glUniform3iARB", 4, _glUniform3iARB_args};

static const char * _glUniform4iARB_args[5] = {"location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glUniform4iARB_sig = {1351, "glUniform4iARB", 5, _glUniform4iARB_args};

static const char * _glUniform1fvARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1fvARB_sig = {1352, "glUniform1fvARB", 3, _glUniform1fvARB_args};

static const char * _glUniform2fvARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2fvARB_sig = {1353, "glUniform2fvARB", 3, _glUniform2fvARB_args};

static const char * _glUniform3fvARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3fvARB_sig = {1354, "glUniform3fvARB", 3, _glUniform3fvARB_args};

static const char * _glUniform4fvARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4fvARB_sig = {1355, "glUniform4fvARB", 3, _glUniform4fvARB_args};

static const char * _glUniform1ivARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1ivARB_sig = {1356, "glUniform1ivARB", 3, _glUniform1ivARB_args};

static const char * _glUniform2ivARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2ivARB_sig = {1357, "glUniform2ivARB", 3, _glUniform2ivARB_args};

static const char * _glUniform3ivARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3ivARB_sig = {1358, "glUniform3ivARB", 3, _glUniform3ivARB_args};

static const char * _glUniform4ivARB_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4ivARB_sig = {1359, "glUniform4ivARB", 3, _glUniform4ivARB_args};

static const char * _glUniformMatrix2fvARB_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix2fvARB_sig = {1360, "glUniformMatrix2fvARB", 4, _glUniformMatrix2fvARB_args};

static const char * _glUniformMatrix3fvARB_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix3fvARB_sig = {1361, "glUniformMatrix3fvARB", 4, _glUniformMatrix3fvARB_args};

static const char * _glUniformMatrix4fvARB_args[4] = {"location", "count", "transpose", "value"};
static const trace::FunctionSig _glUniformMatrix4fvARB_sig = {1362, "glUniformMatrix4fvARB", 4, _glUniformMatrix4fvARB_args};

static const char * _glGetObjectParameterfvARB_args[3] = {"obj", "pname", "params"};
static const trace::FunctionSig _glGetObjectParameterfvARB_sig = {1363, "glGetObjectParameterfvARB", 3, _glGetObjectParameterfvARB_args};

static const char * _glGetObjectParameterivARB_args[3] = {"obj", "pname", "params"};
static const trace::FunctionSig _glGetObjectParameterivARB_sig = {1364, "glGetObjectParameterivARB", 3, _glGetObjectParameterivARB_args};

static const char * _glGetInfoLogARB_args[4] = {"obj", "maxLength", "length", "infoLog"};
static const trace::FunctionSig _glGetInfoLogARB_sig = {1365, "glGetInfoLogARB", 4, _glGetInfoLogARB_args};

static const char * _glGetAttachedObjectsARB_args[4] = {"containerObj", "maxCount", "count", "obj"};
static const trace::FunctionSig _glGetAttachedObjectsARB_sig = {1366, "glGetAttachedObjectsARB", 4, _glGetAttachedObjectsARB_args};

static const char * _glGetUniformLocationARB_args[2] = {"programObj", "name"};
static const trace::FunctionSig _glGetUniformLocationARB_sig = {1367, "glGetUniformLocationARB", 2, _glGetUniformLocationARB_args};

static const char * _glGetActiveUniformARB_args[7] = {"programObj", "index", "bufSize", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetActiveUniformARB_sig = {1368, "glGetActiveUniformARB", 7, _glGetActiveUniformARB_args};

static const char * _glGetUniformfvARB_args[3] = {"programObj", "location", "params"};
static const trace::FunctionSig _glGetUniformfvARB_sig = {1369, "glGetUniformfvARB", 3, _glGetUniformfvARB_args};

static const char * _glGetUniformivARB_args[3] = {"programObj", "location", "params"};
static const trace::FunctionSig _glGetUniformivARB_sig = {1370, "glGetUniformivARB", 3, _glGetUniformivARB_args};

static const char * _glGetShaderSourceARB_args[4] = {"obj", "bufSize", "length", "source"};
static const trace::FunctionSig _glGetShaderSourceARB_sig = {1371, "glGetShaderSourceARB", 4, _glGetShaderSourceARB_args};

static const char * _glShaderStorageBlockBinding_args[3] = {"program", "storageBlockIndex", "storageBlockBinding"};
static const trace::FunctionSig _glShaderStorageBlockBinding_sig = {1372, "glShaderStorageBlockBinding", 3, _glShaderStorageBlockBinding_args};

static const char * _glGetSubroutineUniformLocation_args[3] = {"program", "shadertype", "name"};
static const trace::FunctionSig _glGetSubroutineUniformLocation_sig = {1373, "glGetSubroutineUniformLocation", 3, _glGetSubroutineUniformLocation_args};

static const char * _glGetSubroutineIndex_args[3] = {"program", "shadertype", "name"};
static const trace::FunctionSig _glGetSubroutineIndex_sig = {1374, "glGetSubroutineIndex", 3, _glGetSubroutineIndex_args};

static const char * _glGetActiveSubroutineUniformiv_args[5] = {"program", "shadertype", "index", "pname", "values"};
static const trace::FunctionSig _glGetActiveSubroutineUniformiv_sig = {1375, "glGetActiveSubroutineUniformiv", 5, _glGetActiveSubroutineUniformiv_args};

static const char * _glGetActiveSubroutineUniformName_args[6] = {"program", "shadertype", "index", "bufsize", "length", "name"};
static const trace::FunctionSig _glGetActiveSubroutineUniformName_sig = {1376, "glGetActiveSubroutineUniformName", 6, _glGetActiveSubroutineUniformName_args};

static const char * _glGetActiveSubroutineName_args[6] = {"program", "shadertype", "index", "bufsize", "length", "name"};
static const trace::FunctionSig _glGetActiveSubroutineName_sig = {1377, "glGetActiveSubroutineName", 6, _glGetActiveSubroutineName_args};

static const char * _glUniformSubroutinesuiv_args[3] = {"shadertype", "count", "indices"};
static const trace::FunctionSig _glUniformSubroutinesuiv_sig = {1378, "glUniformSubroutinesuiv", 3, _glUniformSubroutinesuiv_args};

static const char * _glGetUniformSubroutineuiv_args[3] = {"shadertype", "location", "params"};
static const trace::FunctionSig _glGetUniformSubroutineuiv_sig = {1379, "glGetUniformSubroutineuiv", 3, _glGetUniformSubroutineuiv_args};

static const char * _glGetProgramStageiv_args[4] = {"program", "shadertype", "pname", "values"};
static const trace::FunctionSig _glGetProgramStageiv_sig = {1380, "glGetProgramStageiv", 4, _glGetProgramStageiv_args};

static const char * _glNamedStringARB_args[5] = {"type", "namelen", "name", "stringlen", "string"};
static const trace::FunctionSig _glNamedStringARB_sig = {1381, "glNamedStringARB", 5, _glNamedStringARB_args};

static const char * _glDeleteNamedStringARB_args[2] = {"namelen", "name"};
static const trace::FunctionSig _glDeleteNamedStringARB_sig = {1382, "glDeleteNamedStringARB", 2, _glDeleteNamedStringARB_args};

static const char * _glCompileShaderIncludeARB_args[4] = {"shader", "count", "path", "length"};
static const trace::FunctionSig _glCompileShaderIncludeARB_sig = {1383, "glCompileShaderIncludeARB", 4, _glCompileShaderIncludeARB_args};

static const char * _glIsNamedStringARB_args[2] = {"namelen", "name"};
static const trace::FunctionSig _glIsNamedStringARB_sig = {1384, "glIsNamedStringARB", 2, _glIsNamedStringARB_args};

static const char * _glGetNamedStringARB_args[5] = {"namelen", "name", "bufSize", "stringlen", "string"};
static const trace::FunctionSig _glGetNamedStringARB_sig = {1385, "glGetNamedStringARB", 5, _glGetNamedStringARB_args};

static const char * _glGetNamedStringivARB_args[4] = {"namelen", "name", "pname", "params"};
static const trace::FunctionSig _glGetNamedStringivARB_sig = {1386, "glGetNamedStringivARB", 4, _glGetNamedStringivARB_args};

static const char * _glBufferPageCommitmentARB_args[4] = {"target", "offset", "size", "commit"};
static const trace::FunctionSig _glBufferPageCommitmentARB_sig = {1387, "glBufferPageCommitmentARB", 4, _glBufferPageCommitmentARB_args};

static const char * _glNamedBufferPageCommitmentEXT_args[4] = {"buffer", "offset", "size", "commit"};
static const trace::FunctionSig _glNamedBufferPageCommitmentEXT_sig = {1388, "glNamedBufferPageCommitmentEXT", 4, _glNamedBufferPageCommitmentEXT_args};

static const char * _glNamedBufferPageCommitmentARB_args[4] = {"buffer", "offset", "size", "commit"};
static const trace::FunctionSig _glNamedBufferPageCommitmentARB_sig = {1389, "glNamedBufferPageCommitmentARB", 4, _glNamedBufferPageCommitmentARB_args};

static const char * _glTexPageCommitmentARB_args[9] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "resident"};
static const trace::FunctionSig _glTexPageCommitmentARB_sig = {1390, "glTexPageCommitmentARB", 9, _glTexPageCommitmentARB_args};

static const char * _glFenceSync_args[2] = {"condition", "flags"};
static const trace::FunctionSig _glFenceSync_sig = {1391, "glFenceSync", 2, _glFenceSync_args};

static const char * _glIsSync_args[1] = {"sync"};
static const trace::FunctionSig _glIsSync_sig = {1392, "glIsSync", 1, _glIsSync_args};

static const char * _glDeleteSync_args[1] = {"sync"};
static const trace::FunctionSig _glDeleteSync_sig = {1393, "glDeleteSync", 1, _glDeleteSync_args};

static const char * _glClientWaitSync_args[3] = {"sync", "flags", "timeout"};
static const trace::FunctionSig _glClientWaitSync_sig = {1394, "glClientWaitSync", 3, _glClientWaitSync_args};

static const char * _glWaitSync_args[3] = {"sync", "flags", "timeout"};
static const trace::FunctionSig _glWaitSync_sig = {1395, "glWaitSync", 3, _glWaitSync_args};

static const char * _glGetInteger64v_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetInteger64v_sig = {1396, "glGetInteger64v", 2, _glGetInteger64v_args};

static const char * _glGetSynciv_args[5] = {"sync", "pname", "bufSize", "length", "values"};
static const trace::FunctionSig _glGetSynciv_sig = {1397, "glGetSynciv", 5, _glGetSynciv_args};

static const char * _glPatchParameteri_args[2] = {"pname", "value"};
static const trace::FunctionSig _glPatchParameteri_sig = {1398, "glPatchParameteri", 2, _glPatchParameteri_args};

static const char * _glPatchParameterfv_args[2] = {"pname", "values"};
static const trace::FunctionSig _glPatchParameterfv_sig = {1399, "glPatchParameterfv", 2, _glPatchParameterfv_args};

static const char ** _glTextureBarrier_args = NULL;
static const trace::FunctionSig _glTextureBarrier_sig = {1400, "glTextureBarrier", 0, _glTextureBarrier_args};

static const char * _glTexBufferARB_args[3] = {"target", "internalformat", "buffer"};
static const trace::FunctionSig _glTexBufferARB_sig = {1401, "glTexBufferARB", 3, _glTexBufferARB_args};

static const char * _glTexBufferRange_args[5] = {"target", "internalformat", "buffer", "offset", "size"};
static const trace::FunctionSig _glTexBufferRange_sig = {1402, "glTexBufferRange", 5, _glTexBufferRange_args};

static const char * _glCompressedTexImage3DARB_args[9] = {"target", "level", "internalformat", "width", "height", "depth", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage3DARB_sig = {1403, "glCompressedTexImage3DARB", 9, _glCompressedTexImage3DARB_args};

static const char * _glCompressedTexImage2DARB_args[8] = {"target", "level", "internalformat", "width", "height", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage2DARB_sig = {1404, "glCompressedTexImage2DARB", 8, _glCompressedTexImage2DARB_args};

static const char * _glCompressedTexImage1DARB_args[7] = {"target", "level", "internalformat", "width", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage1DARB_sig = {1405, "glCompressedTexImage1DARB", 7, _glCompressedTexImage1DARB_args};

static const char * _glCompressedTexSubImage3DARB_args[11] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage3DARB_sig = {1406, "glCompressedTexSubImage3DARB", 11, _glCompressedTexSubImage3DARB_args};

static const char * _glCompressedTexSubImage2DARB_args[9] = {"target", "level", "xoffset", "yoffset", "width", "height", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage2DARB_sig = {1407, "glCompressedTexSubImage2DARB", 9, _glCompressedTexSubImage2DARB_args};

static const char * _glCompressedTexSubImage1DARB_args[7] = {"target", "level", "xoffset", "width", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage1DARB_sig = {1408, "glCompressedTexSubImage1DARB", 7, _glCompressedTexSubImage1DARB_args};

static const char * _glGetCompressedTexImageARB_args[3] = {"target", "level", "img"};
static const trace::FunctionSig _glGetCompressedTexImageARB_sig = {1409, "glGetCompressedTexImageARB", 3, _glGetCompressedTexImageARB_args};

static const char * _glTexImage2DMultisample_args[6] = {"target", "samples", "internalformat", "width", "height", "fixedsamplelocations"};
static const trace::FunctionSig _glTexImage2DMultisample_sig = {1410, "glTexImage2DMultisample", 6, _glTexImage2DMultisample_args};

static const char * _glTexImage3DMultisample_args[7] = {"target", "samples", "internalformat", "width", "height", "depth", "fixedsamplelocations"};
static const trace::FunctionSig _glTexImage3DMultisample_sig = {1411, "glTexImage3DMultisample", 7, _glTexImage3DMultisample_args};

static const char * _glGetMultisamplefv_args[3] = {"pname", "index", "val"};
static const trace::FunctionSig _glGetMultisamplefv_sig = {1412, "glGetMultisamplefv", 3, _glGetMultisamplefv_args};

static const char * _glSampleMaski_args[2] = {"index", "mask"};
static const trace::FunctionSig _glSampleMaski_sig = {1413, "glSampleMaski", 2, _glSampleMaski_args};

static const char * _glTexStorage1D_args[4] = {"target", "levels", "internalformat", "width"};
static const trace::FunctionSig _glTexStorage1D_sig = {1414, "glTexStorage1D", 4, _glTexStorage1D_args};

static const char * _glTexStorage2D_args[5] = {"target", "levels", "internalformat", "width", "height"};
static const trace::FunctionSig _glTexStorage2D_sig = {1415, "glTexStorage2D", 5, _glTexStorage2D_args};

static const char * _glTexStorage3D_args[6] = {"target", "levels", "internalformat", "width", "height", "depth"};
static const trace::FunctionSig _glTexStorage3D_sig = {1416, "glTexStorage3D", 6, _glTexStorage3D_args};

static const char * _glTexStorageAttribs2DEXT_args[6] = {"target", "levels", "internalformat", "width", "height", "attrib_list"};
static const trace::FunctionSig _glTexStorageAttribs2DEXT_sig = {1417, "glTexStorageAttribs2DEXT", 6, _glTexStorageAttribs2DEXT_args};

static const char * _glTexStorageAttribs3DEXT_args[7] = {"target", "levels", "internalformat", "width", "height", "depth", "attrib_list"};
static const trace::FunctionSig _glTexStorageAttribs3DEXT_sig = {1418, "glTexStorageAttribs3DEXT", 7, _glTexStorageAttribs3DEXT_args};

static const char * _glTexStorage2DMultisample_args[6] = {"target", "samples", "internalformat", "width", "height", "fixedsamplelocations"};
static const trace::FunctionSig _glTexStorage2DMultisample_sig = {1419, "glTexStorage2DMultisample", 6, _glTexStorage2DMultisample_args};

static const char * _glTexStorage3DMultisample_args[7] = {"target", "samples", "internalformat", "width", "height", "depth", "fixedsamplelocations"};
static const trace::FunctionSig _glTexStorage3DMultisample_sig = {1420, "glTexStorage3DMultisample", 7, _glTexStorage3DMultisample_args};

static const char * _glEGLImageTargetTexStorageEXT_args[3] = {"target", "image", "attrib_list"};
static const trace::FunctionSig _glEGLImageTargetTexStorageEXT_sig = {1421, "glEGLImageTargetTexStorageEXT", 3, _glEGLImageTargetTexStorageEXT_args};

static const char * _glEGLImageTargetTextureStorageEXT_args[3] = {"texture", "image", "attrib_list"};
static const trace::FunctionSig _glEGLImageTargetTextureStorageEXT_sig = {1422, "glEGLImageTargetTextureStorageEXT", 3, _glEGLImageTargetTextureStorageEXT_args};

static const char * _glTextureView_args[8] = {"texture", "target", "origtexture", "internalformat", "minlevel", "numlevels", "minlayer", "numlayers"};
static const trace::FunctionSig _glTextureView_sig = {1423, "glTextureView", 8, _glTextureView_args};

static const char * _glQueryCounter_args[2] = {"id", "target"};
static const trace::FunctionSig _glQueryCounter_sig = {1424, "glQueryCounter", 2, _glQueryCounter_args};

static const char * _glGetQueryObjecti64v_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjecti64v_sig = {1425, "glGetQueryObjecti64v", 3, _glGetQueryObjecti64v_args};

static const char * _glGetQueryObjectui64v_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectui64v_sig = {1426, "glGetQueryObjectui64v", 3, _glGetQueryObjectui64v_args};

static const char * _glBindTransformFeedback_args[2] = {"target", "id"};
static const trace::FunctionSig _glBindTransformFeedback_sig = {1427, "glBindTransformFeedback", 2, _glBindTransformFeedback_args};

static const char * _glDeleteTransformFeedbacks_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteTransformFeedbacks_sig = {1428, "glDeleteTransformFeedbacks", 2, _glDeleteTransformFeedbacks_args};

static const char * _glGenTransformFeedbacks_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenTransformFeedbacks_sig = {1429, "glGenTransformFeedbacks", 2, _glGenTransformFeedbacks_args};

static const char * _glIsTransformFeedback_args[1] = {"id"};
static const trace::FunctionSig _glIsTransformFeedback_sig = {1430, "glIsTransformFeedback", 1, _glIsTransformFeedback_args};

static const char ** _glPauseTransformFeedback_args = NULL;
static const trace::FunctionSig _glPauseTransformFeedback_sig = {1431, "glPauseTransformFeedback", 0, _glPauseTransformFeedback_args};

static const char ** _glResumeTransformFeedback_args = NULL;
static const trace::FunctionSig _glResumeTransformFeedback_sig = {1432, "glResumeTransformFeedback", 0, _glResumeTransformFeedback_args};

static const char * _glDrawTransformFeedback_args[2] = {"mode", "id"};
static const trace::FunctionSig _glDrawTransformFeedback_sig = {1433, "glDrawTransformFeedback", 2, _glDrawTransformFeedback_args};

static const char * _glDrawTransformFeedbackStream_args[3] = {"mode", "id", "stream"};
static const trace::FunctionSig _glDrawTransformFeedbackStream_sig = {1434, "glDrawTransformFeedbackStream", 3, _glDrawTransformFeedbackStream_args};

static const char * _glBeginQueryIndexed_args[3] = {"target", "index", "id"};
static const trace::FunctionSig _glBeginQueryIndexed_sig = {1435, "glBeginQueryIndexed", 3, _glBeginQueryIndexed_args};

static const char * _glEndQueryIndexed_args[2] = {"target", "index"};
static const trace::FunctionSig _glEndQueryIndexed_sig = {1436, "glEndQueryIndexed", 2, _glEndQueryIndexed_args};

static const char * _glGetQueryIndexediv_args[4] = {"target", "index", "pname", "params"};
static const trace::FunctionSig _glGetQueryIndexediv_sig = {1437, "glGetQueryIndexediv", 4, _glGetQueryIndexediv_args};

static const char * _glDrawTransformFeedbackInstanced_args[3] = {"mode", "id", "instancecount"};
static const trace::FunctionSig _glDrawTransformFeedbackInstanced_sig = {1438, "glDrawTransformFeedbackInstanced", 3, _glDrawTransformFeedbackInstanced_args};

static const char * _glDrawTransformFeedbackStreamInstanced_args[4] = {"mode", "id", "stream", "instancecount"};
static const trace::FunctionSig _glDrawTransformFeedbackStreamInstanced_sig = {1439, "glDrawTransformFeedbackStreamInstanced", 4, _glDrawTransformFeedbackStreamInstanced_args};

static const char * _glLoadTransposeMatrixfARB_args[1] = {"m"};
static const trace::FunctionSig _glLoadTransposeMatrixfARB_sig = {1440, "glLoadTransposeMatrixfARB", 1, _glLoadTransposeMatrixfARB_args};

static const char * _glLoadTransposeMatrixdARB_args[1] = {"m"};
static const trace::FunctionSig _glLoadTransposeMatrixdARB_sig = {1441, "glLoadTransposeMatrixdARB", 1, _glLoadTransposeMatrixdARB_args};

static const char * _glMultTransposeMatrixfARB_args[1] = {"m"};
static const trace::FunctionSig _glMultTransposeMatrixfARB_sig = {1442, "glMultTransposeMatrixfARB", 1, _glMultTransposeMatrixfARB_args};

static const char * _glMultTransposeMatrixdARB_args[1] = {"m"};
static const trace::FunctionSig _glMultTransposeMatrixdARB_sig = {1443, "glMultTransposeMatrixdARB", 1, _glMultTransposeMatrixdARB_args};

static const char * _glGetUniformIndices_args[4] = {"program", "uniformCount", "uniformNames", "uniformIndices"};
static const trace::FunctionSig _glGetUniformIndices_sig = {1444, "glGetUniformIndices", 4, _glGetUniformIndices_args};

static const char * _glGetActiveUniformsiv_args[5] = {"program", "uniformCount", "uniformIndices", "pname", "params"};
static const trace::FunctionSig _glGetActiveUniformsiv_sig = {1445, "glGetActiveUniformsiv", 5, _glGetActiveUniformsiv_args};

static const char * _glGetActiveUniformName_args[5] = {"program", "uniformIndex", "bufSize", "length", "uniformName"};
static const trace::FunctionSig _glGetActiveUniformName_sig = {1446, "glGetActiveUniformName", 5, _glGetActiveUniformName_args};

static const char * _glGetUniformBlockIndex_args[2] = {"program", "uniformBlockName"};
static const trace::FunctionSig _glGetUniformBlockIndex_sig = {1447, "glGetUniformBlockIndex", 2, _glGetUniformBlockIndex_args};

static const char * _glGetActiveUniformBlockiv_args[4] = {"program", "uniformBlockIndex", "pname", "params"};
static const trace::FunctionSig _glGetActiveUniformBlockiv_sig = {1448, "glGetActiveUniformBlockiv", 4, _glGetActiveUniformBlockiv_args};

static const char * _glGetActiveUniformBlockName_args[5] = {"program", "uniformBlockIndex", "bufSize", "length", "uniformBlockName"};
static const trace::FunctionSig _glGetActiveUniformBlockName_sig = {1449, "glGetActiveUniformBlockName", 5, _glGetActiveUniformBlockName_args};

static const char * _glUniformBlockBinding_args[3] = {"program", "uniformBlockIndex", "uniformBlockBinding"};
static const trace::FunctionSig _glUniformBlockBinding_sig = {1450, "glUniformBlockBinding", 3, _glUniformBlockBinding_args};

static const char * _glBindVertexArray_args[1] = {"array"};
static const trace::FunctionSig _glBindVertexArray_sig = {1451, "glBindVertexArray", 1, _glBindVertexArray_args};

static const char * _glDeleteVertexArrays_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glDeleteVertexArrays_sig = {1452, "glDeleteVertexArrays", 2, _glDeleteVertexArrays_args};

static const char * _glGenVertexArrays_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glGenVertexArrays_sig = {1453, "glGenVertexArrays", 2, _glGenVertexArrays_args};

static const char * _glIsVertexArray_args[1] = {"array"};
static const trace::FunctionSig _glIsVertexArray_sig = {1454, "glIsVertexArray", 1, _glIsVertexArray_args};

static const char * _glVertexAttribL1d_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribL1d_sig = {1455, "glVertexAttribL1d", 2, _glVertexAttribL1d_args};

static const char * _glVertexAttribL2d_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribL2d_sig = {1456, "glVertexAttribL2d", 3, _glVertexAttribL2d_args};

static const char * _glVertexAttribL3d_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribL3d_sig = {1457, "glVertexAttribL3d", 4, _glVertexAttribL3d_args};

static const char * _glVertexAttribL4d_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribL4d_sig = {1458, "glVertexAttribL4d", 5, _glVertexAttribL4d_args};

static const char * _glVertexAttribL1dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL1dv_sig = {1459, "glVertexAttribL1dv", 2, _glVertexAttribL1dv_args};

static const char * _glVertexAttribL2dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL2dv_sig = {1460, "glVertexAttribL2dv", 2, _glVertexAttribL2dv_args};

static const char * _glVertexAttribL3dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL3dv_sig = {1461, "glVertexAttribL3dv", 2, _glVertexAttribL3dv_args};

static const char * _glVertexAttribL4dv_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL4dv_sig = {1462, "glVertexAttribL4dv", 2, _glVertexAttribL4dv_args};

static const char * _glVertexAttribLPointer_args[5] = {"index", "size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribLPointer_sig = {1463, "glVertexAttribLPointer", 5, _glVertexAttribLPointer_args};

static const char * _glGetVertexAttribLdv_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribLdv_sig = {1464, "glGetVertexAttribLdv", 3, _glGetVertexAttribLdv_args};

static const char * _glBindVertexBuffer_args[4] = {"bindingindex", "buffer", "offset", "stride"};
static const trace::FunctionSig _glBindVertexBuffer_sig = {1465, "glBindVertexBuffer", 4, _glBindVertexBuffer_args};

static const char * _glVertexAttribFormat_args[5] = {"attribindex", "size", "type", "normalized", "relativeoffset"};
static const trace::FunctionSig _glVertexAttribFormat_sig = {1466, "glVertexAttribFormat", 5, _glVertexAttribFormat_args};

static const char * _glVertexAttribIFormat_args[4] = {"attribindex", "size", "type", "relativeoffset"};
static const trace::FunctionSig _glVertexAttribIFormat_sig = {1467, "glVertexAttribIFormat", 4, _glVertexAttribIFormat_args};

static const char * _glVertexAttribLFormat_args[4] = {"attribindex", "size", "type", "relativeoffset"};
static const trace::FunctionSig _glVertexAttribLFormat_sig = {1468, "glVertexAttribLFormat", 4, _glVertexAttribLFormat_args};

static const char * _glVertexAttribBinding_args[2] = {"attribindex", "bindingindex"};
static const trace::FunctionSig _glVertexAttribBinding_sig = {1469, "glVertexAttribBinding", 2, _glVertexAttribBinding_args};

static const char * _glVertexBindingDivisor_args[2] = {"bindingindex", "divisor"};
static const trace::FunctionSig _glVertexBindingDivisor_sig = {1470, "glVertexBindingDivisor", 2, _glVertexBindingDivisor_args};

static const char * _glWeightbvARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightbvARB_sig = {1471, "glWeightbvARB", 2, _glWeightbvARB_args};

static const char * _glWeightsvARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightsvARB_sig = {1472, "glWeightsvARB", 2, _glWeightsvARB_args};

static const char * _glWeightivARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightivARB_sig = {1473, "glWeightivARB", 2, _glWeightivARB_args};

static const char * _glWeightfvARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightfvARB_sig = {1474, "glWeightfvARB", 2, _glWeightfvARB_args};

static const char * _glWeightdvARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightdvARB_sig = {1475, "glWeightdvARB", 2, _glWeightdvARB_args};

static const char * _glWeightubvARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightubvARB_sig = {1476, "glWeightubvARB", 2, _glWeightubvARB_args};

static const char * _glWeightusvARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightusvARB_sig = {1477, "glWeightusvARB", 2, _glWeightusvARB_args};

static const char * _glWeightuivARB_args[2] = {"size", "weights"};
static const trace::FunctionSig _glWeightuivARB_sig = {1478, "glWeightuivARB", 2, _glWeightuivARB_args};

static const char * _glWeightPointerARB_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glWeightPointerARB_sig = {1479, "glWeightPointerARB", 4, _glWeightPointerARB_args};

static const char * _glVertexBlendARB_args[1] = {"count"};
static const trace::FunctionSig _glVertexBlendARB_sig = {1480, "glVertexBlendARB", 1, _glVertexBlendARB_args};

static const char * _glBindBufferARB_args[2] = {"target", "buffer"};
static const trace::FunctionSig _glBindBufferARB_sig = {1481, "glBindBufferARB", 2, _glBindBufferARB_args};

static const char * _glDeleteBuffersARB_args[2] = {"n", "buffers"};
static const trace::FunctionSig _glDeleteBuffersARB_sig = {1482, "glDeleteBuffersARB", 2, _glDeleteBuffersARB_args};

static const char * _glGenBuffersARB_args[2] = {"n", "buffers"};
static const trace::FunctionSig _glGenBuffersARB_sig = {1483, "glGenBuffersARB", 2, _glGenBuffersARB_args};

static const char * _glIsBufferARB_args[1] = {"buffer"};
static const trace::FunctionSig _glIsBufferARB_sig = {1484, "glIsBufferARB", 1, _glIsBufferARB_args};

static const char * _glBufferDataARB_args[4] = {"target", "size", "data", "usage"};
static const trace::FunctionSig _glBufferDataARB_sig = {1485, "glBufferDataARB", 4, _glBufferDataARB_args};

static const char * _glBufferSubDataARB_args[4] = {"target", "offset", "size", "data"};
static const trace::FunctionSig _glBufferSubDataARB_sig = {1486, "glBufferSubDataARB", 4, _glBufferSubDataARB_args};

static const char * _glGetBufferSubDataARB_args[4] = {"target", "offset", "size", "data"};
static const trace::FunctionSig _glGetBufferSubDataARB_sig = {1487, "glGetBufferSubDataARB", 4, _glGetBufferSubDataARB_args};

static const char * _glMapBufferARB_args[2] = {"target", "access"};
static const trace::FunctionSig _glMapBufferARB_sig = {1488, "glMapBufferARB", 2, _glMapBufferARB_args};

static const char * _glUnmapBufferARB_args[1] = {"target"};
static const trace::FunctionSig _glUnmapBufferARB_sig = {1489, "glUnmapBufferARB", 1, _glUnmapBufferARB_args};

static const char * _glGetBufferParameterivARB_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferParameterivARB_sig = {1490, "glGetBufferParameterivARB", 3, _glGetBufferParameterivARB_args};

static const char * _glGetBufferPointervARB_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferPointervARB_sig = {1491, "glGetBufferPointervARB", 3, _glGetBufferPointervARB_args};

static const char * _glVertexAttrib1dARB_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1dARB_sig = {1492, "glVertexAttrib1dARB", 2, _glVertexAttrib1dARB_args};

static const char * _glVertexAttrib1dvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1dvARB_sig = {1493, "glVertexAttrib1dvARB", 2, _glVertexAttrib1dvARB_args};

static const char * _glVertexAttrib1fARB_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1fARB_sig = {1494, "glVertexAttrib1fARB", 2, _glVertexAttrib1fARB_args};

static const char * _glVertexAttrib1fvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1fvARB_sig = {1495, "glVertexAttrib1fvARB", 2, _glVertexAttrib1fvARB_args};

static const char * _glVertexAttrib1sARB_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1sARB_sig = {1496, "glVertexAttrib1sARB", 2, _glVertexAttrib1sARB_args};

static const char * _glVertexAttrib1svARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1svARB_sig = {1497, "glVertexAttrib1svARB", 2, _glVertexAttrib1svARB_args};

static const char * _glVertexAttrib2dARB_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2dARB_sig = {1498, "glVertexAttrib2dARB", 3, _glVertexAttrib2dARB_args};

static const char * _glVertexAttrib2dvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2dvARB_sig = {1499, "glVertexAttrib2dvARB", 2, _glVertexAttrib2dvARB_args};

static const char * _glVertexAttrib2fARB_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2fARB_sig = {1500, "glVertexAttrib2fARB", 3, _glVertexAttrib2fARB_args};

static const char * _glVertexAttrib2fvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2fvARB_sig = {1501, "glVertexAttrib2fvARB", 2, _glVertexAttrib2fvARB_args};

static const char * _glVertexAttrib2sARB_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2sARB_sig = {1502, "glVertexAttrib2sARB", 3, _glVertexAttrib2sARB_args};

static const char * _glVertexAttrib2svARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2svARB_sig = {1503, "glVertexAttrib2svARB", 2, _glVertexAttrib2svARB_args};

static const char * _glVertexAttrib3dARB_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3dARB_sig = {1504, "glVertexAttrib3dARB", 4, _glVertexAttrib3dARB_args};

static const char * _glVertexAttrib3dvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3dvARB_sig = {1505, "glVertexAttrib3dvARB", 2, _glVertexAttrib3dvARB_args};

static const char * _glVertexAttrib3fARB_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3fARB_sig = {1506, "glVertexAttrib3fARB", 4, _glVertexAttrib3fARB_args};

static const char * _glVertexAttrib3fvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3fvARB_sig = {1507, "glVertexAttrib3fvARB", 2, _glVertexAttrib3fvARB_args};

static const char * _glVertexAttrib3sARB_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3sARB_sig = {1508, "glVertexAttrib3sARB", 4, _glVertexAttrib3sARB_args};

static const char * _glVertexAttrib3svARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3svARB_sig = {1509, "glVertexAttrib3svARB", 2, _glVertexAttrib3svARB_args};

static const char * _glVertexAttrib4NbvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4NbvARB_sig = {1510, "glVertexAttrib4NbvARB", 2, _glVertexAttrib4NbvARB_args};

static const char * _glVertexAttrib4NivARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4NivARB_sig = {1511, "glVertexAttrib4NivARB", 2, _glVertexAttrib4NivARB_args};

static const char * _glVertexAttrib4NsvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4NsvARB_sig = {1512, "glVertexAttrib4NsvARB", 2, _glVertexAttrib4NsvARB_args};

static const char * _glVertexAttrib4NubARB_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4NubARB_sig = {1513, "glVertexAttrib4NubARB", 5, _glVertexAttrib4NubARB_args};

static const char * _glVertexAttrib4NubvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4NubvARB_sig = {1514, "glVertexAttrib4NubvARB", 2, _glVertexAttrib4NubvARB_args};

static const char * _glVertexAttrib4NuivARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4NuivARB_sig = {1515, "glVertexAttrib4NuivARB", 2, _glVertexAttrib4NuivARB_args};

static const char * _glVertexAttrib4NusvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4NusvARB_sig = {1516, "glVertexAttrib4NusvARB", 2, _glVertexAttrib4NusvARB_args};

static const char * _glVertexAttrib4bvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4bvARB_sig = {1517, "glVertexAttrib4bvARB", 2, _glVertexAttrib4bvARB_args};

static const char * _glVertexAttrib4dARB_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4dARB_sig = {1518, "glVertexAttrib4dARB", 5, _glVertexAttrib4dARB_args};

static const char * _glVertexAttrib4dvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4dvARB_sig = {1519, "glVertexAttrib4dvARB", 2, _glVertexAttrib4dvARB_args};

static const char * _glVertexAttrib4fARB_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4fARB_sig = {1520, "glVertexAttrib4fARB", 5, _glVertexAttrib4fARB_args};

static const char * _glVertexAttrib4fvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4fvARB_sig = {1521, "glVertexAttrib4fvARB", 2, _glVertexAttrib4fvARB_args};

static const char * _glVertexAttrib4ivARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4ivARB_sig = {1522, "glVertexAttrib4ivARB", 2, _glVertexAttrib4ivARB_args};

static const char * _glVertexAttrib4sARB_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4sARB_sig = {1523, "glVertexAttrib4sARB", 5, _glVertexAttrib4sARB_args};

static const char * _glVertexAttrib4svARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4svARB_sig = {1524, "glVertexAttrib4svARB", 2, _glVertexAttrib4svARB_args};

static const char * _glVertexAttrib4ubvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4ubvARB_sig = {1525, "glVertexAttrib4ubvARB", 2, _glVertexAttrib4ubvARB_args};

static const char * _glVertexAttrib4uivARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4uivARB_sig = {1526, "glVertexAttrib4uivARB", 2, _glVertexAttrib4uivARB_args};

static const char * _glVertexAttrib4usvARB_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4usvARB_sig = {1527, "glVertexAttrib4usvARB", 2, _glVertexAttrib4usvARB_args};

static const char * _glVertexAttribPointerARB_args[6] = {"index", "size", "type", "normalized", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribPointerARB_sig = {1528, "glVertexAttribPointerARB", 6, _glVertexAttribPointerARB_args};

static const char * _glEnableVertexAttribArrayARB_args[1] = {"index"};
static const trace::FunctionSig _glEnableVertexAttribArrayARB_sig = {1529, "glEnableVertexAttribArrayARB", 1, _glEnableVertexAttribArrayARB_args};

static const char * _glDisableVertexAttribArrayARB_args[1] = {"index"};
static const trace::FunctionSig _glDisableVertexAttribArrayARB_sig = {1530, "glDisableVertexAttribArrayARB", 1, _glDisableVertexAttribArrayARB_args};

static const char * _glProgramStringARB_args[4] = {"target", "format", "len", "string"};
static const trace::FunctionSig _glProgramStringARB_sig = {1531, "glProgramStringARB", 4, _glProgramStringARB_args};

static const char * _glBindProgramARB_args[2] = {"target", "program"};
static const trace::FunctionSig _glBindProgramARB_sig = {1532, "glBindProgramARB", 2, _glBindProgramARB_args};

static const char * _glDeleteProgramsARB_args[2] = {"n", "programs"};
static const trace::FunctionSig _glDeleteProgramsARB_sig = {1533, "glDeleteProgramsARB", 2, _glDeleteProgramsARB_args};

static const char * _glGenProgramsARB_args[2] = {"n", "programs"};
static const trace::FunctionSig _glGenProgramsARB_sig = {1534, "glGenProgramsARB", 2, _glGenProgramsARB_args};

static const char * _glProgramEnvParameter4dARB_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramEnvParameter4dARB_sig = {1535, "glProgramEnvParameter4dARB", 6, _glProgramEnvParameter4dARB_args};

static const char * _glProgramEnvParameter4dvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramEnvParameter4dvARB_sig = {1536, "glProgramEnvParameter4dvARB", 3, _glProgramEnvParameter4dvARB_args};

static const char * _glProgramEnvParameter4fARB_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramEnvParameter4fARB_sig = {1537, "glProgramEnvParameter4fARB", 6, _glProgramEnvParameter4fARB_args};

static const char * _glProgramEnvParameter4fvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramEnvParameter4fvARB_sig = {1538, "glProgramEnvParameter4fvARB", 3, _glProgramEnvParameter4fvARB_args};

static const char * _glProgramLocalParameter4dARB_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramLocalParameter4dARB_sig = {1539, "glProgramLocalParameter4dARB", 6, _glProgramLocalParameter4dARB_args};

static const char * _glProgramLocalParameter4dvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramLocalParameter4dvARB_sig = {1540, "glProgramLocalParameter4dvARB", 3, _glProgramLocalParameter4dvARB_args};

static const char * _glProgramLocalParameter4fARB_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramLocalParameter4fARB_sig = {1541, "glProgramLocalParameter4fARB", 6, _glProgramLocalParameter4fARB_args};

static const char * _glProgramLocalParameter4fvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramLocalParameter4fvARB_sig = {1542, "glProgramLocalParameter4fvARB", 3, _glProgramLocalParameter4fvARB_args};

static const char * _glGetProgramEnvParameterdvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramEnvParameterdvARB_sig = {1543, "glGetProgramEnvParameterdvARB", 3, _glGetProgramEnvParameterdvARB_args};

static const char * _glGetProgramEnvParameterfvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramEnvParameterfvARB_sig = {1544, "glGetProgramEnvParameterfvARB", 3, _glGetProgramEnvParameterfvARB_args};

static const char * _glGetProgramLocalParameterdvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramLocalParameterdvARB_sig = {1545, "glGetProgramLocalParameterdvARB", 3, _glGetProgramLocalParameterdvARB_args};

static const char * _glGetProgramLocalParameterfvARB_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramLocalParameterfvARB_sig = {1546, "glGetProgramLocalParameterfvARB", 3, _glGetProgramLocalParameterfvARB_args};

static const char * _glGetProgramivARB_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetProgramivARB_sig = {1547, "glGetProgramivARB", 3, _glGetProgramivARB_args};

static const char * _glGetProgramStringARB_args[3] = {"target", "pname", "string"};
static const trace::FunctionSig _glGetProgramStringARB_sig = {1548, "glGetProgramStringARB", 3, _glGetProgramStringARB_args};

static const char * _glGetVertexAttribdvARB_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribdvARB_sig = {1549, "glGetVertexAttribdvARB", 3, _glGetVertexAttribdvARB_args};

static const char * _glGetVertexAttribfvARB_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribfvARB_sig = {1550, "glGetVertexAttribfvARB", 3, _glGetVertexAttribfvARB_args};

static const char * _glGetVertexAttribivARB_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribivARB_sig = {1551, "glGetVertexAttribivARB", 3, _glGetVertexAttribivARB_args};

static const char * _glGetVertexAttribPointervARB_args[3] = {"index", "pname", "pointer"};
static const trace::FunctionSig _glGetVertexAttribPointervARB_sig = {1552, "glGetVertexAttribPointervARB", 3, _glGetVertexAttribPointervARB_args};

static const char * _glIsProgramARB_args[1] = {"program"};
static const trace::FunctionSig _glIsProgramARB_sig = {1553, "glIsProgramARB", 1, _glIsProgramARB_args};

static const char * _glBindAttribLocationARB_args[3] = {"programObj", "index", "name"};
static const trace::FunctionSig _glBindAttribLocationARB_sig = {1554, "glBindAttribLocationARB", 3, _glBindAttribLocationARB_args};

static const char * _glGetActiveAttribARB_args[7] = {"programObj", "index", "maxLength", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetActiveAttribARB_sig = {1555, "glGetActiveAttribARB", 7, _glGetActiveAttribARB_args};

static const char * _glGetAttribLocationARB_args[2] = {"programObj", "name"};
static const trace::FunctionSig _glGetAttribLocationARB_sig = {1556, "glGetAttribLocationARB", 2, _glGetAttribLocationARB_args};

static const char * _glVertexAttribP1ui_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP1ui_sig = {1557, "glVertexAttribP1ui", 4, _glVertexAttribP1ui_args};

static const char * _glVertexAttribP1uiv_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP1uiv_sig = {1558, "glVertexAttribP1uiv", 4, _glVertexAttribP1uiv_args};

static const char * _glVertexAttribP2ui_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP2ui_sig = {1559, "glVertexAttribP2ui", 4, _glVertexAttribP2ui_args};

static const char * _glVertexAttribP2uiv_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP2uiv_sig = {1560, "glVertexAttribP2uiv", 4, _glVertexAttribP2uiv_args};

static const char * _glVertexAttribP3ui_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP3ui_sig = {1561, "glVertexAttribP3ui", 4, _glVertexAttribP3ui_args};

static const char * _glVertexAttribP3uiv_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP3uiv_sig = {1562, "glVertexAttribP3uiv", 4, _glVertexAttribP3uiv_args};

static const char * _glVertexAttribP4ui_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP4ui_sig = {1563, "glVertexAttribP4ui", 4, _glVertexAttribP4ui_args};

static const char * _glVertexAttribP4uiv_args[4] = {"index", "type", "normalized", "value"};
static const trace::FunctionSig _glVertexAttribP4uiv_sig = {1564, "glVertexAttribP4uiv", 4, _glVertexAttribP4uiv_args};

static const char * _glVertexP2ui_args[2] = {"type", "value"};
static const trace::FunctionSig _glVertexP2ui_sig = {1565, "glVertexP2ui", 2, _glVertexP2ui_args};

static const char * _glVertexP2uiv_args[2] = {"type", "value"};
static const trace::FunctionSig _glVertexP2uiv_sig = {1566, "glVertexP2uiv", 2, _glVertexP2uiv_args};

static const char * _glVertexP3ui_args[2] = {"type", "value"};
static const trace::FunctionSig _glVertexP3ui_sig = {1567, "glVertexP3ui", 2, _glVertexP3ui_args};

static const char * _glVertexP3uiv_args[2] = {"type", "value"};
static const trace::FunctionSig _glVertexP3uiv_sig = {1568, "glVertexP3uiv", 2, _glVertexP3uiv_args};

static const char * _glVertexP4ui_args[2] = {"type", "value"};
static const trace::FunctionSig _glVertexP4ui_sig = {1569, "glVertexP4ui", 2, _glVertexP4ui_args};

static const char * _glVertexP4uiv_args[2] = {"type", "value"};
static const trace::FunctionSig _glVertexP4uiv_sig = {1570, "glVertexP4uiv", 2, _glVertexP4uiv_args};

static const char * _glTexCoordP1ui_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP1ui_sig = {1571, "glTexCoordP1ui", 2, _glTexCoordP1ui_args};

static const char * _glTexCoordP1uiv_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP1uiv_sig = {1572, "glTexCoordP1uiv", 2, _glTexCoordP1uiv_args};

static const char * _glTexCoordP2ui_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP2ui_sig = {1573, "glTexCoordP2ui", 2, _glTexCoordP2ui_args};

static const char * _glTexCoordP2uiv_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP2uiv_sig = {1574, "glTexCoordP2uiv", 2, _glTexCoordP2uiv_args};

static const char * _glTexCoordP3ui_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP3ui_sig = {1575, "glTexCoordP3ui", 2, _glTexCoordP3ui_args};

static const char * _glTexCoordP3uiv_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP3uiv_sig = {1576, "glTexCoordP3uiv", 2, _glTexCoordP3uiv_args};

static const char * _glTexCoordP4ui_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP4ui_sig = {1577, "glTexCoordP4ui", 2, _glTexCoordP4ui_args};

static const char * _glTexCoordP4uiv_args[2] = {"type", "coords"};
static const trace::FunctionSig _glTexCoordP4uiv_sig = {1578, "glTexCoordP4uiv", 2, _glTexCoordP4uiv_args};

static const char * _glMultiTexCoordP1ui_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP1ui_sig = {1579, "glMultiTexCoordP1ui", 3, _glMultiTexCoordP1ui_args};

static const char * _glMultiTexCoordP1uiv_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP1uiv_sig = {1580, "glMultiTexCoordP1uiv", 3, _glMultiTexCoordP1uiv_args};

static const char * _glMultiTexCoordP2ui_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP2ui_sig = {1581, "glMultiTexCoordP2ui", 3, _glMultiTexCoordP2ui_args};

static const char * _glMultiTexCoordP2uiv_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP2uiv_sig = {1582, "glMultiTexCoordP2uiv", 3, _glMultiTexCoordP2uiv_args};

static const char * _glMultiTexCoordP3ui_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP3ui_sig = {1583, "glMultiTexCoordP3ui", 3, _glMultiTexCoordP3ui_args};

static const char * _glMultiTexCoordP3uiv_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP3uiv_sig = {1584, "glMultiTexCoordP3uiv", 3, _glMultiTexCoordP3uiv_args};

static const char * _glMultiTexCoordP4ui_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP4ui_sig = {1585, "glMultiTexCoordP4ui", 3, _glMultiTexCoordP4ui_args};

static const char * _glMultiTexCoordP4uiv_args[3] = {"texture", "type", "coords"};
static const trace::FunctionSig _glMultiTexCoordP4uiv_sig = {1586, "glMultiTexCoordP4uiv", 3, _glMultiTexCoordP4uiv_args};

static const char * _glNormalP3ui_args[2] = {"type", "coords"};
static const trace::FunctionSig _glNormalP3ui_sig = {1587, "glNormalP3ui", 2, _glNormalP3ui_args};

static const char * _glNormalP3uiv_args[2] = {"type", "coords"};
static const trace::FunctionSig _glNormalP3uiv_sig = {1588, "glNormalP3uiv", 2, _glNormalP3uiv_args};

static const char * _glColorP3ui_args[2] = {"type", "color"};
static const trace::FunctionSig _glColorP3ui_sig = {1589, "glColorP3ui", 2, _glColorP3ui_args};

static const char * _glColorP3uiv_args[2] = {"type", "color"};
static const trace::FunctionSig _glColorP3uiv_sig = {1590, "glColorP3uiv", 2, _glColorP3uiv_args};

static const char * _glColorP4ui_args[2] = {"type", "color"};
static const trace::FunctionSig _glColorP4ui_sig = {1591, "glColorP4ui", 2, _glColorP4ui_args};

static const char * _glColorP4uiv_args[2] = {"type", "color"};
static const trace::FunctionSig _glColorP4uiv_sig = {1592, "glColorP4uiv", 2, _glColorP4uiv_args};

static const char * _glSecondaryColorP3ui_args[2] = {"type", "color"};
static const trace::FunctionSig _glSecondaryColorP3ui_sig = {1593, "glSecondaryColorP3ui", 2, _glSecondaryColorP3ui_args};

static const char * _glSecondaryColorP3uiv_args[2] = {"type", "color"};
static const trace::FunctionSig _glSecondaryColorP3uiv_sig = {1594, "glSecondaryColorP3uiv", 2, _glSecondaryColorP3uiv_args};

static const char * _glViewportArrayv_args[3] = {"first", "count", "v"};
static const trace::FunctionSig _glViewportArrayv_sig = {1595, "glViewportArrayv", 3, _glViewportArrayv_args};

static const char * _glViewportIndexedf_args[5] = {"index", "x", "y", "w", "h"};
static const trace::FunctionSig _glViewportIndexedf_sig = {1596, "glViewportIndexedf", 5, _glViewportIndexedf_args};

static const char * _glViewportIndexedfv_args[2] = {"index", "v"};
static const trace::FunctionSig _glViewportIndexedfv_sig = {1597, "glViewportIndexedfv", 2, _glViewportIndexedfv_args};

static const char * _glScissorArrayv_args[3] = {"first", "count", "v"};
static const trace::FunctionSig _glScissorArrayv_sig = {1598, "glScissorArrayv", 3, _glScissorArrayv_args};

static const char * _glScissorIndexed_args[5] = {"index", "left", "bottom", "width", "height"};
static const trace::FunctionSig _glScissorIndexed_sig = {1599, "glScissorIndexed", 5, _glScissorIndexed_args};

static const char * _glScissorIndexedv_args[2] = {"index", "v"};
static const trace::FunctionSig _glScissorIndexedv_sig = {1600, "glScissorIndexedv", 2, _glScissorIndexedv_args};

static const char * _glDepthRangeArrayv_args[3] = {"first", "count", "v"};
static const trace::FunctionSig _glDepthRangeArrayv_sig = {1601, "glDepthRangeArrayv", 3, _glDepthRangeArrayv_args};

static const char * _glDepthRangeIndexed_args[3] = {"index", "n", "f"};
static const trace::FunctionSig _glDepthRangeIndexed_sig = {1602, "glDepthRangeIndexed", 3, _glDepthRangeIndexed_args};

static const char * _glGetFloati_v_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetFloati_v_sig = {1603, "glGetFloati_v", 3, _glGetFloati_v_args};

static const char * _glGetDoublei_v_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetDoublei_v_sig = {1604, "glGetDoublei_v", 3, _glGetDoublei_v_args};

static const char * _glWindowPos2dARB_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2dARB_sig = {1605, "glWindowPos2dARB", 2, _glWindowPos2dARB_args};

static const char * _glWindowPos2dvARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2dvARB_sig = {1606, "glWindowPos2dvARB", 1, _glWindowPos2dvARB_args};

static const char * _glWindowPos2fARB_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2fARB_sig = {1607, "glWindowPos2fARB", 2, _glWindowPos2fARB_args};

static const char * _glWindowPos2fvARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2fvARB_sig = {1608, "glWindowPos2fvARB", 1, _glWindowPos2fvARB_args};

static const char * _glWindowPos2iARB_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2iARB_sig = {1609, "glWindowPos2iARB", 2, _glWindowPos2iARB_args};

static const char * _glWindowPos2ivARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2ivARB_sig = {1610, "glWindowPos2ivARB", 1, _glWindowPos2ivARB_args};

static const char * _glWindowPos2sARB_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2sARB_sig = {1611, "glWindowPos2sARB", 2, _glWindowPos2sARB_args};

static const char * _glWindowPos2svARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2svARB_sig = {1612, "glWindowPos2svARB", 1, _glWindowPos2svARB_args};

static const char * _glWindowPos3dARB_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3dARB_sig = {1613, "glWindowPos3dARB", 3, _glWindowPos3dARB_args};

static const char * _glWindowPos3dvARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3dvARB_sig = {1614, "glWindowPos3dvARB", 1, _glWindowPos3dvARB_args};

static const char * _glWindowPos3fARB_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3fARB_sig = {1615, "glWindowPos3fARB", 3, _glWindowPos3fARB_args};

static const char * _glWindowPos3fvARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3fvARB_sig = {1616, "glWindowPos3fvARB", 1, _glWindowPos3fvARB_args};

static const char * _glWindowPos3iARB_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3iARB_sig = {1617, "glWindowPos3iARB", 3, _glWindowPos3iARB_args};

static const char * _glWindowPos3ivARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3ivARB_sig = {1618, "glWindowPos3ivARB", 1, _glWindowPos3ivARB_args};

static const char * _glWindowPos3sARB_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3sARB_sig = {1619, "glWindowPos3sARB", 3, _glWindowPos3sARB_args};

static const char * _glWindowPos3svARB_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3svARB_sig = {1620, "glWindowPos3svARB", 1, _glWindowPos3svARB_args};

static const char * _glDrawBuffersATI_args[2] = {"n", "bufs"};
static const trace::FunctionSig _glDrawBuffersATI_sig = {1621, "glDrawBuffersATI", 2, _glDrawBuffersATI_args};

static const char * _glElementPointerATI_args[2] = {"type", "pointer"};
static const trace::FunctionSig _glElementPointerATI_sig = {1622, "glElementPointerATI", 2, _glElementPointerATI_args};

static const char * _glDrawElementArrayATI_args[2] = {"mode", "count"};
static const trace::FunctionSig _glDrawElementArrayATI_sig = {1623, "glDrawElementArrayATI", 2, _glDrawElementArrayATI_args};

static const char * _glDrawRangeElementArrayATI_args[4] = {"mode", "start", "end", "count"};
static const trace::FunctionSig _glDrawRangeElementArrayATI_sig = {1624, "glDrawRangeElementArrayATI", 4, _glDrawRangeElementArrayATI_args};

static const char * _glTexBumpParameterivATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glTexBumpParameterivATI_sig = {1625, "glTexBumpParameterivATI", 2, _glTexBumpParameterivATI_args};

static const char * _glTexBumpParameterfvATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glTexBumpParameterfvATI_sig = {1626, "glTexBumpParameterfvATI", 2, _glTexBumpParameterfvATI_args};

static const char * _glGetTexBumpParameterivATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glGetTexBumpParameterivATI_sig = {1627, "glGetTexBumpParameterivATI", 2, _glGetTexBumpParameterivATI_args};

static const char * _glGetTexBumpParameterfvATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glGetTexBumpParameterfvATI_sig = {1628, "glGetTexBumpParameterfvATI", 2, _glGetTexBumpParameterfvATI_args};

static const char * _glBlendEquationSeparateATI_args[2] = {"equationRGB", "equationAlpha"};
static const trace::FunctionSig _glBlendEquationSeparateATI_sig = {1629, "glBlendEquationSeparateATI", 2, _glBlendEquationSeparateATI_args};

static const char * _glGenFragmentShadersATI_args[1] = {"range"};
static const trace::FunctionSig _glGenFragmentShadersATI_sig = {1630, "glGenFragmentShadersATI", 1, _glGenFragmentShadersATI_args};

static const char * _glBindFragmentShaderATI_args[1] = {"id"};
static const trace::FunctionSig _glBindFragmentShaderATI_sig = {1631, "glBindFragmentShaderATI", 1, _glBindFragmentShaderATI_args};

static const char * _glDeleteFragmentShaderATI_args[1] = {"id"};
static const trace::FunctionSig _glDeleteFragmentShaderATI_sig = {1632, "glDeleteFragmentShaderATI", 1, _glDeleteFragmentShaderATI_args};

static const char ** _glBeginFragmentShaderATI_args = NULL;
static const trace::FunctionSig _glBeginFragmentShaderATI_sig = {1633, "glBeginFragmentShaderATI", 0, _glBeginFragmentShaderATI_args};

static const char ** _glEndFragmentShaderATI_args = NULL;
static const trace::FunctionSig _glEndFragmentShaderATI_sig = {1634, "glEndFragmentShaderATI", 0, _glEndFragmentShaderATI_args};

static const char * _glPassTexCoordATI_args[3] = {"dst", "coord", "swizzle"};
static const trace::FunctionSig _glPassTexCoordATI_sig = {1635, "glPassTexCoordATI", 3, _glPassTexCoordATI_args};

static const char * _glSampleMapATI_args[3] = {"dst", "interp", "swizzle"};
static const trace::FunctionSig _glSampleMapATI_sig = {1636, "glSampleMapATI", 3, _glSampleMapATI_args};

static const char * _glColorFragmentOp1ATI_args[7] = {"op", "dst", "dstMask", "dstMod", "arg1", "arg1Rep", "arg1Mod"};
static const trace::FunctionSig _glColorFragmentOp1ATI_sig = {1637, "glColorFragmentOp1ATI", 7, _glColorFragmentOp1ATI_args};

static const char * _glColorFragmentOp2ATI_args[10] = {"op", "dst", "dstMask", "dstMod", "arg1", "arg1Rep", "arg1Mod", "arg2", "arg2Rep", "arg2Mod"};
static const trace::FunctionSig _glColorFragmentOp2ATI_sig = {1638, "glColorFragmentOp2ATI", 10, _glColorFragmentOp2ATI_args};

static const char * _glColorFragmentOp3ATI_args[13] = {"op", "dst", "dstMask", "dstMod", "arg1", "arg1Rep", "arg1Mod", "arg2", "arg2Rep", "arg2Mod", "arg3", "arg3Rep", "arg3Mod"};
static const trace::FunctionSig _glColorFragmentOp3ATI_sig = {1639, "glColorFragmentOp3ATI", 13, _glColorFragmentOp3ATI_args};

static const char * _glAlphaFragmentOp1ATI_args[6] = {"op", "dst", "dstMod", "arg1", "arg1Rep", "arg1Mod"};
static const trace::FunctionSig _glAlphaFragmentOp1ATI_sig = {1640, "glAlphaFragmentOp1ATI", 6, _glAlphaFragmentOp1ATI_args};

static const char * _glAlphaFragmentOp2ATI_args[9] = {"op", "dst", "dstMod", "arg1", "arg1Rep", "arg1Mod", "arg2", "arg2Rep", "arg2Mod"};
static const trace::FunctionSig _glAlphaFragmentOp2ATI_sig = {1641, "glAlphaFragmentOp2ATI", 9, _glAlphaFragmentOp2ATI_args};

static const char * _glAlphaFragmentOp3ATI_args[12] = {"op", "dst", "dstMod", "arg1", "arg1Rep", "arg1Mod", "arg2", "arg2Rep", "arg2Mod", "arg3", "arg3Rep", "arg3Mod"};
static const trace::FunctionSig _glAlphaFragmentOp3ATI_sig = {1642, "glAlphaFragmentOp3ATI", 12, _glAlphaFragmentOp3ATI_args};

static const char * _glSetFragmentShaderConstantATI_args[2] = {"dst", "value"};
static const trace::FunctionSig _glSetFragmentShaderConstantATI_sig = {1643, "glSetFragmentShaderConstantATI", 2, _glSetFragmentShaderConstantATI_args};

static const char * _glMapObjectBufferATI_args[1] = {"buffer"};
static const trace::FunctionSig _glMapObjectBufferATI_sig = {1644, "glMapObjectBufferATI", 1, _glMapObjectBufferATI_args};

static const char * _glUnmapObjectBufferATI_args[1] = {"buffer"};
static const trace::FunctionSig _glUnmapObjectBufferATI_sig = {1645, "glUnmapObjectBufferATI", 1, _glUnmapObjectBufferATI_args};

static const char * _glPNTrianglesiATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPNTrianglesiATI_sig = {1646, "glPNTrianglesiATI", 2, _glPNTrianglesiATI_args};

static const char * _glPNTrianglesfATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPNTrianglesfATI_sig = {1647, "glPNTrianglesfATI", 2, _glPNTrianglesfATI_args};

static const char * _glPNTrianglesiATIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPNTrianglesiATIX_sig = {1648, "glPNTrianglesiATIX", 2, _glPNTrianglesiATIX_args};

static const char * _glPNTrianglesfATIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPNTrianglesfATIX_sig = {1649, "glPNTrianglesfATIX", 2, _glPNTrianglesfATIX_args};

static const char * _glStencilOpSeparateATI_args[4] = {"face", "sfail", "dpfail", "dppass"};
static const trace::FunctionSig _glStencilOpSeparateATI_sig = {1650, "glStencilOpSeparateATI", 4, _glStencilOpSeparateATI_args};

static const char * _glStencilFuncSeparateATI_args[4] = {"frontfunc", "backfunc", "ref", "mask"};
static const trace::FunctionSig _glStencilFuncSeparateATI_sig = {1651, "glStencilFuncSeparateATI", 4, _glStencilFuncSeparateATI_args};

static const char * _glNewObjectBufferATI_args[3] = {"size", "pointer", "usage"};
static const trace::FunctionSig _glNewObjectBufferATI_sig = {1652, "glNewObjectBufferATI", 3, _glNewObjectBufferATI_args};

static const char * _glIsObjectBufferATI_args[1] = {"buffer"};
static const trace::FunctionSig _glIsObjectBufferATI_sig = {1653, "glIsObjectBufferATI", 1, _glIsObjectBufferATI_args};

static const char * _glUpdateObjectBufferATI_args[5] = {"buffer", "offset", "size", "pointer", "preserve"};
static const trace::FunctionSig _glUpdateObjectBufferATI_sig = {1654, "glUpdateObjectBufferATI", 5, _glUpdateObjectBufferATI_args};

static const char * _glGetObjectBufferfvATI_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetObjectBufferfvATI_sig = {1655, "glGetObjectBufferfvATI", 3, _glGetObjectBufferfvATI_args};

static const char * _glGetObjectBufferivATI_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetObjectBufferivATI_sig = {1656, "glGetObjectBufferivATI", 3, _glGetObjectBufferivATI_args};

static const char * _glFreeObjectBufferATI_args[1] = {"buffer"};
static const trace::FunctionSig _glFreeObjectBufferATI_sig = {1657, "glFreeObjectBufferATI", 1, _glFreeObjectBufferATI_args};

static const char * _glArrayObjectATI_args[6] = {"array", "size", "type", "stride", "buffer", "offset"};
static const trace::FunctionSig _glArrayObjectATI_sig = {1658, "glArrayObjectATI", 6, _glArrayObjectATI_args};

static const char * _glGetArrayObjectfvATI_args[3] = {"array", "pname", "params"};
static const trace::FunctionSig _glGetArrayObjectfvATI_sig = {1659, "glGetArrayObjectfvATI", 3, _glGetArrayObjectfvATI_args};

static const char * _glGetArrayObjectivATI_args[3] = {"array", "pname", "params"};
static const trace::FunctionSig _glGetArrayObjectivATI_sig = {1660, "glGetArrayObjectivATI", 3, _glGetArrayObjectivATI_args};

static const char * _glVariantArrayObjectATI_args[5] = {"id", "type", "stride", "buffer", "offset"};
static const trace::FunctionSig _glVariantArrayObjectATI_sig = {1661, "glVariantArrayObjectATI", 5, _glVariantArrayObjectATI_args};

static const char * _glGetVariantArrayObjectfvATI_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetVariantArrayObjectfvATI_sig = {1662, "glGetVariantArrayObjectfvATI", 3, _glGetVariantArrayObjectfvATI_args};

static const char * _glGetVariantArrayObjectivATI_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetVariantArrayObjectivATI_sig = {1663, "glGetVariantArrayObjectivATI", 3, _glGetVariantArrayObjectivATI_args};

static const char * _glVertexAttribArrayObjectATI_args[7] = {"index", "size", "type", "normalized", "stride", "buffer", "offset"};
static const trace::FunctionSig _glVertexAttribArrayObjectATI_sig = {1664, "glVertexAttribArrayObjectATI", 7, _glVertexAttribArrayObjectATI_args};

static const char * _glGetVertexAttribArrayObjectfvATI_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribArrayObjectfvATI_sig = {1665, "glGetVertexAttribArrayObjectfvATI", 3, _glGetVertexAttribArrayObjectfvATI_args};

static const char * _glGetVertexAttribArrayObjectivATI_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribArrayObjectivATI_sig = {1666, "glGetVertexAttribArrayObjectivATI", 3, _glGetVertexAttribArrayObjectivATI_args};

static const char * _glVertexStream1sATI_args[2] = {"stream", "x"};
static const trace::FunctionSig _glVertexStream1sATI_sig = {1667, "glVertexStream1sATI", 2, _glVertexStream1sATI_args};

static const char * _glVertexStream1svATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream1svATI_sig = {1668, "glVertexStream1svATI", 2, _glVertexStream1svATI_args};

static const char * _glVertexStream1iATI_args[2] = {"stream", "x"};
static const trace::FunctionSig _glVertexStream1iATI_sig = {1669, "glVertexStream1iATI", 2, _glVertexStream1iATI_args};

static const char * _glVertexStream1ivATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream1ivATI_sig = {1670, "glVertexStream1ivATI", 2, _glVertexStream1ivATI_args};

static const char * _glVertexStream1fATI_args[2] = {"stream", "x"};
static const trace::FunctionSig _glVertexStream1fATI_sig = {1671, "glVertexStream1fATI", 2, _glVertexStream1fATI_args};

static const char * _glVertexStream1fvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream1fvATI_sig = {1672, "glVertexStream1fvATI", 2, _glVertexStream1fvATI_args};

static const char * _glVertexStream1dATI_args[2] = {"stream", "x"};
static const trace::FunctionSig _glVertexStream1dATI_sig = {1673, "glVertexStream1dATI", 2, _glVertexStream1dATI_args};

static const char * _glVertexStream1dvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream1dvATI_sig = {1674, "glVertexStream1dvATI", 2, _glVertexStream1dvATI_args};

static const char * _glVertexStream2sATI_args[3] = {"stream", "x", "y"};
static const trace::FunctionSig _glVertexStream2sATI_sig = {1675, "glVertexStream2sATI", 3, _glVertexStream2sATI_args};

static const char * _glVertexStream2svATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream2svATI_sig = {1676, "glVertexStream2svATI", 2, _glVertexStream2svATI_args};

static const char * _glVertexStream2iATI_args[3] = {"stream", "x", "y"};
static const trace::FunctionSig _glVertexStream2iATI_sig = {1677, "glVertexStream2iATI", 3, _glVertexStream2iATI_args};

static const char * _glVertexStream2ivATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream2ivATI_sig = {1678, "glVertexStream2ivATI", 2, _glVertexStream2ivATI_args};

static const char * _glVertexStream2fATI_args[3] = {"stream", "x", "y"};
static const trace::FunctionSig _glVertexStream2fATI_sig = {1679, "glVertexStream2fATI", 3, _glVertexStream2fATI_args};

static const char * _glVertexStream2fvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream2fvATI_sig = {1680, "glVertexStream2fvATI", 2, _glVertexStream2fvATI_args};

static const char * _glVertexStream2dATI_args[3] = {"stream", "x", "y"};
static const trace::FunctionSig _glVertexStream2dATI_sig = {1681, "glVertexStream2dATI", 3, _glVertexStream2dATI_args};

static const char * _glVertexStream2dvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream2dvATI_sig = {1682, "glVertexStream2dvATI", 2, _glVertexStream2dvATI_args};

static const char * _glVertexStream3sATI_args[4] = {"stream", "x", "y", "z"};
static const trace::FunctionSig _glVertexStream3sATI_sig = {1683, "glVertexStream3sATI", 4, _glVertexStream3sATI_args};

static const char * _glVertexStream3svATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream3svATI_sig = {1684, "glVertexStream3svATI", 2, _glVertexStream3svATI_args};

static const char * _glVertexStream3iATI_args[4] = {"stream", "x", "y", "z"};
static const trace::FunctionSig _glVertexStream3iATI_sig = {1685, "glVertexStream3iATI", 4, _glVertexStream3iATI_args};

static const char * _glVertexStream3ivATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream3ivATI_sig = {1686, "glVertexStream3ivATI", 2, _glVertexStream3ivATI_args};

static const char * _glVertexStream3fATI_args[4] = {"stream", "x", "y", "z"};
static const trace::FunctionSig _glVertexStream3fATI_sig = {1687, "glVertexStream3fATI", 4, _glVertexStream3fATI_args};

static const char * _glVertexStream3fvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream3fvATI_sig = {1688, "glVertexStream3fvATI", 2, _glVertexStream3fvATI_args};

static const char * _glVertexStream3dATI_args[4] = {"stream", "x", "y", "z"};
static const trace::FunctionSig _glVertexStream3dATI_sig = {1689, "glVertexStream3dATI", 4, _glVertexStream3dATI_args};

static const char * _glVertexStream3dvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream3dvATI_sig = {1690, "glVertexStream3dvATI", 2, _glVertexStream3dvATI_args};

static const char * _glVertexStream4sATI_args[5] = {"stream", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexStream4sATI_sig = {1691, "glVertexStream4sATI", 5, _glVertexStream4sATI_args};

static const char * _glVertexStream4svATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream4svATI_sig = {1692, "glVertexStream4svATI", 2, _glVertexStream4svATI_args};

static const char * _glVertexStream4iATI_args[5] = {"stream", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexStream4iATI_sig = {1693, "glVertexStream4iATI", 5, _glVertexStream4iATI_args};

static const char * _glVertexStream4ivATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream4ivATI_sig = {1694, "glVertexStream4ivATI", 2, _glVertexStream4ivATI_args};

static const char * _glVertexStream4fATI_args[5] = {"stream", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexStream4fATI_sig = {1695, "glVertexStream4fATI", 5, _glVertexStream4fATI_args};

static const char * _glVertexStream4fvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream4fvATI_sig = {1696, "glVertexStream4fvATI", 2, _glVertexStream4fvATI_args};

static const char * _glVertexStream4dATI_args[5] = {"stream", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexStream4dATI_sig = {1697, "glVertexStream4dATI", 5, _glVertexStream4dATI_args};

static const char * _glVertexStream4dvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glVertexStream4dvATI_sig = {1698, "glVertexStream4dvATI", 2, _glVertexStream4dvATI_args};

static const char * _glNormalStream3bATI_args[4] = {"stream", "nx", "ny", "nz"};
static const trace::FunctionSig _glNormalStream3bATI_sig = {1699, "glNormalStream3bATI", 4, _glNormalStream3bATI_args};

static const char * _glNormalStream3bvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glNormalStream3bvATI_sig = {1700, "glNormalStream3bvATI", 2, _glNormalStream3bvATI_args};

static const char * _glNormalStream3sATI_args[4] = {"stream", "nx", "ny", "nz"};
static const trace::FunctionSig _glNormalStream3sATI_sig = {1701, "glNormalStream3sATI", 4, _glNormalStream3sATI_args};

static const char * _glNormalStream3svATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glNormalStream3svATI_sig = {1702, "glNormalStream3svATI", 2, _glNormalStream3svATI_args};

static const char * _glNormalStream3iATI_args[4] = {"stream", "nx", "ny", "nz"};
static const trace::FunctionSig _glNormalStream3iATI_sig = {1703, "glNormalStream3iATI", 4, _glNormalStream3iATI_args};

static const char * _glNormalStream3ivATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glNormalStream3ivATI_sig = {1704, "glNormalStream3ivATI", 2, _glNormalStream3ivATI_args};

static const char * _glNormalStream3fATI_args[4] = {"stream", "nx", "ny", "nz"};
static const trace::FunctionSig _glNormalStream3fATI_sig = {1705, "glNormalStream3fATI", 4, _glNormalStream3fATI_args};

static const char * _glNormalStream3fvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glNormalStream3fvATI_sig = {1706, "glNormalStream3fvATI", 2, _glNormalStream3fvATI_args};

static const char * _glNormalStream3dATI_args[4] = {"stream", "nx", "ny", "nz"};
static const trace::FunctionSig _glNormalStream3dATI_sig = {1707, "glNormalStream3dATI", 4, _glNormalStream3dATI_args};

static const char * _glNormalStream3dvATI_args[2] = {"stream", "coords"};
static const trace::FunctionSig _glNormalStream3dvATI_sig = {1708, "glNormalStream3dvATI", 2, _glNormalStream3dvATI_args};

static const char * _glClientActiveVertexStreamATI_args[1] = {"stream"};
static const trace::FunctionSig _glClientActiveVertexStreamATI_sig = {1709, "glClientActiveVertexStreamATI", 1, _glClientActiveVertexStreamATI_args};

static const char * _glVertexBlendEnviATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glVertexBlendEnviATI_sig = {1710, "glVertexBlendEnviATI", 2, _glVertexBlendEnviATI_args};

static const char * _glVertexBlendEnvfATI_args[2] = {"pname", "param"};
static const trace::FunctionSig _glVertexBlendEnvfATI_sig = {1711, "glVertexBlendEnvfATI", 2, _glVertexBlendEnvfATI_args};

static const char * _glDrawArraysInstancedBaseInstanceEXT_args[5] = {"mode", "first", "count", "instancecount", "baseinstance"};
static const trace::FunctionSig _glDrawArraysInstancedBaseInstanceEXT_sig = {1712, "glDrawArraysInstancedBaseInstanceEXT", 5, _glDrawArraysInstancedBaseInstanceEXT_args};

static const char * _glDrawElementsInstancedBaseInstanceEXT_args[6] = {"mode", "count", "type", "indices", "instancecount", "baseinstance"};
static const trace::FunctionSig _glDrawElementsInstancedBaseInstanceEXT_sig = {1713, "glDrawElementsInstancedBaseInstanceEXT", 6, _glDrawElementsInstancedBaseInstanceEXT_args};

static const char * _glDrawElementsInstancedBaseVertexBaseInstanceEXT_args[7] = {"mode", "count", "type", "indices", "instancecount", "basevertex", "baseinstance"};
static const trace::FunctionSig _glDrawElementsInstancedBaseVertexBaseInstanceEXT_sig = {1714, "glDrawElementsInstancedBaseVertexBaseInstanceEXT", 7, _glDrawElementsInstancedBaseVertexBaseInstanceEXT_args};

static const char * _glUniformBufferEXT_args[3] = {"program", "location", "buffer"};
static const trace::FunctionSig _glUniformBufferEXT_sig = {1715, "glUniformBufferEXT", 3, _glUniformBufferEXT_args};

static const char * _glGetUniformBufferSizeEXT_args[2] = {"program", "location"};
static const trace::FunctionSig _glGetUniformBufferSizeEXT_sig = {1716, "glGetUniformBufferSizeEXT", 2, _glGetUniformBufferSizeEXT_args};

static const char * _glGetUniformOffsetEXT_args[2] = {"program", "location"};
static const trace::FunctionSig _glGetUniformOffsetEXT_sig = {1717, "glGetUniformOffsetEXT", 2, _glGetUniformOffsetEXT_args};

static const char * _glBlendColorEXT_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glBlendColorEXT_sig = {1718, "glBlendColorEXT", 4, _glBlendColorEXT_args};

static const char * _glBlendEquationSeparateEXT_args[2] = {"modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparateEXT_sig = {1719, "glBlendEquationSeparateEXT", 2, _glBlendEquationSeparateEXT_args};

static const char * _glBindFragDataLocationIndexedEXT_args[4] = {"program", "colorNumber", "index", "name"};
static const trace::FunctionSig _glBindFragDataLocationIndexedEXT_sig = {1720, "glBindFragDataLocationIndexedEXT", 4, _glBindFragDataLocationIndexedEXT_args};

static const char * _glBindFragDataLocationEXT_args[3] = {"program", "color", "name"};
static const trace::FunctionSig _glBindFragDataLocationEXT_sig = {1721, "glBindFragDataLocationEXT", 3, _glBindFragDataLocationEXT_args};

static const char * _glGetProgramResourceLocationIndexEXT_args[3] = {"program", "programInterface", "name"};
static const trace::FunctionSig _glGetProgramResourceLocationIndexEXT_sig = {1722, "glGetProgramResourceLocationIndexEXT", 3, _glGetProgramResourceLocationIndexEXT_args};

static const char * _glGetFragDataIndexEXT_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetFragDataIndexEXT_sig = {1723, "glGetFragDataIndexEXT", 2, _glGetFragDataIndexEXT_args};

static const char * _glBlendFuncSeparateEXT_args[4] = {"sfactorRGB", "dfactorRGB", "sfactorAlpha", "dfactorAlpha"};
static const trace::FunctionSig _glBlendFuncSeparateEXT_sig = {1724, "glBlendFuncSeparateEXT", 4, _glBlendFuncSeparateEXT_args};

static const char * _glBlendEquationEXT_args[1] = {"mode"};
static const trace::FunctionSig _glBlendEquationEXT_sig = {1725, "glBlendEquationEXT", 1, _glBlendEquationEXT_args};

static const char * _glBufferStorageEXT_args[4] = {"target", "size", "data", "flags"};
static const trace::FunctionSig _glBufferStorageEXT_sig = {1726, "glBufferStorageEXT", 4, _glBufferStorageEXT_args};

static const char * _glClearTexImageEXT_args[5] = {"texture", "level", "format", "type", "data"};
static const trace::FunctionSig _glClearTexImageEXT_sig = {1727, "glClearTexImageEXT", 5, _glClearTexImageEXT_args};

static const char * _glClearTexSubImageEXT_args[11] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "data"};
static const trace::FunctionSig _glClearTexSubImageEXT_sig = {1728, "glClearTexSubImageEXT", 11, _glClearTexSubImageEXT_args};

static const char * _glClipControlEXT_args[2] = {"origin", "depth"};
static const trace::FunctionSig _glClipControlEXT_sig = {1729, "glClipControlEXT", 2, _glClipControlEXT_args};

static const char * _glColorSubTableEXT_args[6] = {"target", "start", "count", "format", "type", "data"};
static const trace::FunctionSig _glColorSubTableEXT_sig = {1730, "glColorSubTableEXT", 6, _glColorSubTableEXT_args};

static const char * _glCopyColorSubTableEXT_args[5] = {"target", "start", "x", "y", "width"};
static const trace::FunctionSig _glCopyColorSubTableEXT_sig = {1731, "glCopyColorSubTableEXT", 5, _glCopyColorSubTableEXT_args};

static const char * _glLockArraysEXT_args[2] = {"first", "count"};
static const trace::FunctionSig _glLockArraysEXT_sig = {1732, "glLockArraysEXT", 2, _glLockArraysEXT_args};

static const char ** _glUnlockArraysEXT_args = NULL;
static const trace::FunctionSig _glUnlockArraysEXT_sig = {1733, "glUnlockArraysEXT", 0, _glUnlockArraysEXT_args};

static const char * _glConvolutionFilter1DEXT_args[6] = {"target", "internalformat", "width", "format", "type", "image"};
static const trace::FunctionSig _glConvolutionFilter1DEXT_sig = {1734, "glConvolutionFilter1DEXT", 6, _glConvolutionFilter1DEXT_args};

static const char * _glConvolutionFilter2DEXT_args[7] = {"target", "internalformat", "width", "height", "format", "type", "image"};
static const trace::FunctionSig _glConvolutionFilter2DEXT_sig = {1735, "glConvolutionFilter2DEXT", 7, _glConvolutionFilter2DEXT_args};

static const char * _glConvolutionParameterfEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameterfEXT_sig = {1736, "glConvolutionParameterfEXT", 3, _glConvolutionParameterfEXT_args};

static const char * _glConvolutionParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameterfvEXT_sig = {1737, "glConvolutionParameterfvEXT", 3, _glConvolutionParameterfvEXT_args};

static const char * _glConvolutionParameteriEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameteriEXT_sig = {1738, "glConvolutionParameteriEXT", 3, _glConvolutionParameteriEXT_args};

static const char * _glConvolutionParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glConvolutionParameterivEXT_sig = {1739, "glConvolutionParameterivEXT", 3, _glConvolutionParameterivEXT_args};

static const char * _glCopyConvolutionFilter1DEXT_args[5] = {"target", "internalformat", "x", "y", "width"};
static const trace::FunctionSig _glCopyConvolutionFilter1DEXT_sig = {1740, "glCopyConvolutionFilter1DEXT", 5, _glCopyConvolutionFilter1DEXT_args};

static const char * _glCopyConvolutionFilter2DEXT_args[6] = {"target", "internalformat", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyConvolutionFilter2DEXT_sig = {1741, "glCopyConvolutionFilter2DEXT", 6, _glCopyConvolutionFilter2DEXT_args};

static const char * _glGetConvolutionFilterEXT_args[4] = {"target", "format", "type", "image"};
static const trace::FunctionSig _glGetConvolutionFilterEXT_sig = {1742, "glGetConvolutionFilterEXT", 4, _glGetConvolutionFilterEXT_args};

static const char * _glGetConvolutionParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetConvolutionParameterfvEXT_sig = {1743, "glGetConvolutionParameterfvEXT", 3, _glGetConvolutionParameterfvEXT_args};

static const char * _glGetConvolutionParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetConvolutionParameterivEXT_sig = {1744, "glGetConvolutionParameterivEXT", 3, _glGetConvolutionParameterivEXT_args};

static const char * _glGetSeparableFilterEXT_args[6] = {"target", "format", "type", "row", "column", "span"};
static const trace::FunctionSig _glGetSeparableFilterEXT_sig = {1745, "glGetSeparableFilterEXT", 6, _glGetSeparableFilterEXT_args};

static const char * _glSeparableFilter2DEXT_args[8] = {"target", "internalformat", "width", "height", "format", "type", "row", "column"};
static const trace::FunctionSig _glSeparableFilter2DEXT_sig = {1746, "glSeparableFilter2DEXT", 8, _glSeparableFilter2DEXT_args};

static const char * _glTangent3bEXT_args[3] = {"tx", "ty", "tz"};
static const trace::FunctionSig _glTangent3bEXT_sig = {1747, "glTangent3bEXT", 3, _glTangent3bEXT_args};

static const char * _glTangent3bvEXT_args[1] = {"v"};
static const trace::FunctionSig _glTangent3bvEXT_sig = {1748, "glTangent3bvEXT", 1, _glTangent3bvEXT_args};

static const char * _glTangent3dEXT_args[3] = {"tx", "ty", "tz"};
static const trace::FunctionSig _glTangent3dEXT_sig = {1749, "glTangent3dEXT", 3, _glTangent3dEXT_args};

static const char * _glTangent3dvEXT_args[1] = {"v"};
static const trace::FunctionSig _glTangent3dvEXT_sig = {1750, "glTangent3dvEXT", 1, _glTangent3dvEXT_args};

static const char * _glTangent3fEXT_args[3] = {"tx", "ty", "tz"};
static const trace::FunctionSig _glTangent3fEXT_sig = {1751, "glTangent3fEXT", 3, _glTangent3fEXT_args};

static const char * _glTangent3fvEXT_args[1] = {"v"};
static const trace::FunctionSig _glTangent3fvEXT_sig = {1752, "glTangent3fvEXT", 1, _glTangent3fvEXT_args};

static const char * _glTangent3iEXT_args[3] = {"tx", "ty", "tz"};
static const trace::FunctionSig _glTangent3iEXT_sig = {1753, "glTangent3iEXT", 3, _glTangent3iEXT_args};

static const char * _glTangent3ivEXT_args[1] = {"v"};
static const trace::FunctionSig _glTangent3ivEXT_sig = {1754, "glTangent3ivEXT", 1, _glTangent3ivEXT_args};

static const char * _glTangent3sEXT_args[3] = {"tx", "ty", "tz"};
static const trace::FunctionSig _glTangent3sEXT_sig = {1755, "glTangent3sEXT", 3, _glTangent3sEXT_args};

static const char * _glTangent3svEXT_args[1] = {"v"};
static const trace::FunctionSig _glTangent3svEXT_sig = {1756, "glTangent3svEXT", 1, _glTangent3svEXT_args};

static const char * _glBinormal3bEXT_args[3] = {"bx", "by", "bz"};
static const trace::FunctionSig _glBinormal3bEXT_sig = {1757, "glBinormal3bEXT", 3, _glBinormal3bEXT_args};

static const char * _glBinormal3bvEXT_args[1] = {"v"};
static const trace::FunctionSig _glBinormal3bvEXT_sig = {1758, "glBinormal3bvEXT", 1, _glBinormal3bvEXT_args};

static const char * _glBinormal3dEXT_args[3] = {"bx", "by", "bz"};
static const trace::FunctionSig _glBinormal3dEXT_sig = {1759, "glBinormal3dEXT", 3, _glBinormal3dEXT_args};

static const char * _glBinormal3dvEXT_args[1] = {"v"};
static const trace::FunctionSig _glBinormal3dvEXT_sig = {1760, "glBinormal3dvEXT", 1, _glBinormal3dvEXT_args};

static const char * _glBinormal3fEXT_args[3] = {"bx", "by", "bz"};
static const trace::FunctionSig _glBinormal3fEXT_sig = {1761, "glBinormal3fEXT", 3, _glBinormal3fEXT_args};

static const char * _glBinormal3fvEXT_args[1] = {"v"};
static const trace::FunctionSig _glBinormal3fvEXT_sig = {1762, "glBinormal3fvEXT", 1, _glBinormal3fvEXT_args};

static const char * _glBinormal3iEXT_args[3] = {"bx", "by", "bz"};
static const trace::FunctionSig _glBinormal3iEXT_sig = {1763, "glBinormal3iEXT", 3, _glBinormal3iEXT_args};

static const char * _glBinormal3ivEXT_args[1] = {"v"};
static const trace::FunctionSig _glBinormal3ivEXT_sig = {1764, "glBinormal3ivEXT", 1, _glBinormal3ivEXT_args};

static const char * _glBinormal3sEXT_args[3] = {"bx", "by", "bz"};
static const trace::FunctionSig _glBinormal3sEXT_sig = {1765, "glBinormal3sEXT", 3, _glBinormal3sEXT_args};

static const char * _glBinormal3svEXT_args[1] = {"v"};
static const trace::FunctionSig _glBinormal3svEXT_sig = {1766, "glBinormal3svEXT", 1, _glBinormal3svEXT_args};

static const char * _glTangentPointerEXT_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glTangentPointerEXT_sig = {1767, "glTangentPointerEXT", 3, _glTangentPointerEXT_args};

static const char * _glBinormalPointerEXT_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glBinormalPointerEXT_sig = {1768, "glBinormalPointerEXT", 3, _glBinormalPointerEXT_args};

static const char * _glCopyImageSubDataEXT_args[15] = {"srcName", "srcTarget", "srcLevel", "srcX", "srcY", "srcZ", "dstName", "dstTarget", "dstLevel", "dstX", "dstY", "dstZ", "srcWidth", "srcHeight", "srcDepth"};
static const trace::FunctionSig _glCopyImageSubDataEXT_sig = {1769, "glCopyImageSubDataEXT", 15, _glCopyImageSubDataEXT_args};

static const char * _glCopyTexImage1DEXT_args[7] = {"target", "level", "internalformat", "x", "y", "width", "border"};
static const trace::FunctionSig _glCopyTexImage1DEXT_sig = {1770, "glCopyTexImage1DEXT", 7, _glCopyTexImage1DEXT_args};

static const char * _glCopyTexImage2DEXT_args[8] = {"target", "level", "internalformat", "x", "y", "width", "height", "border"};
static const trace::FunctionSig _glCopyTexImage2DEXT_sig = {1771, "glCopyTexImage2DEXT", 8, _glCopyTexImage2DEXT_args};

static const char * _glCopyTexSubImage1DEXT_args[6] = {"target", "level", "xoffset", "x", "y", "width"};
static const trace::FunctionSig _glCopyTexSubImage1DEXT_sig = {1772, "glCopyTexSubImage1DEXT", 6, _glCopyTexSubImage1DEXT_args};

static const char * _glCopyTexSubImage2DEXT_args[8] = {"target", "level", "xoffset", "yoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTexSubImage2DEXT_sig = {1773, "glCopyTexSubImage2DEXT", 8, _glCopyTexSubImage2DEXT_args};

static const char * _glCopyTexSubImage3DEXT_args[9] = {"target", "level", "xoffset", "yoffset", "zoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTexSubImage3DEXT_sig = {1774, "glCopyTexSubImage3DEXT", 9, _glCopyTexSubImage3DEXT_args};

static const char * _glCullParameterdvEXT_args[2] = {"pname", "params"};
static const trace::FunctionSig _glCullParameterdvEXT_sig = {1775, "glCullParameterdvEXT", 2, _glCullParameterdvEXT_args};

static const char * _glCullParameterfvEXT_args[2] = {"pname", "params"};
static const trace::FunctionSig _glCullParameterfvEXT_sig = {1776, "glCullParameterfvEXT", 2, _glCullParameterfvEXT_args};

static const char * _glLabelObjectEXT_args[4] = {"type", "object", "length", "label"};
static const trace::FunctionSig _glLabelObjectEXT_sig = {1777, "glLabelObjectEXT", 4, _glLabelObjectEXT_args};

static const char * _glGetObjectLabelEXT_args[5] = {"type", "object", "bufSize", "length", "label"};
static const trace::FunctionSig _glGetObjectLabelEXT_sig = {1778, "glGetObjectLabelEXT", 5, _glGetObjectLabelEXT_args};

static const char * _glInsertEventMarkerEXT_args[2] = {"length", "marker"};
static const trace::FunctionSig _glInsertEventMarkerEXT_sig = {1779, "glInsertEventMarkerEXT", 2, _glInsertEventMarkerEXT_args};

static const char * _glPushGroupMarkerEXT_args[2] = {"length", "marker"};
static const trace::FunctionSig _glPushGroupMarkerEXT_sig = {1780, "glPushGroupMarkerEXT", 2, _glPushGroupMarkerEXT_args};

static const char ** _glPopGroupMarkerEXT_args = NULL;
static const trace::FunctionSig _glPopGroupMarkerEXT_sig = {1781, "glPopGroupMarkerEXT", 0, _glPopGroupMarkerEXT_args};

static const char * _glDepthBoundsEXT_args[2] = {"zmin", "zmax"};
static const trace::FunctionSig _glDepthBoundsEXT_sig = {1782, "glDepthBoundsEXT", 2, _glDepthBoundsEXT_args};

static const char * _glBindMultiTextureEXT_args[3] = {"texunit", "target", "texture"};
static const trace::FunctionSig _glBindMultiTextureEXT_sig = {1783, "glBindMultiTextureEXT", 3, _glBindMultiTextureEXT_args};

static const char * _glCheckNamedFramebufferStatusEXT_args[2] = {"framebuffer", "target"};
static const trace::FunctionSig _glCheckNamedFramebufferStatusEXT_sig = {1784, "glCheckNamedFramebufferStatusEXT", 2, _glCheckNamedFramebufferStatusEXT_args};

static const char * _glClearNamedBufferDataEXT_args[5] = {"buffer", "internalformat", "format", "type", "data"};
static const trace::FunctionSig _glClearNamedBufferDataEXT_sig = {1785, "glClearNamedBufferDataEXT", 5, _glClearNamedBufferDataEXT_args};

static const char * _glClearNamedBufferSubDataEXT_args[7] = {"buffer", "internalformat", "offset", "size", "format", "type", "data"};
static const trace::FunctionSig _glClearNamedBufferSubDataEXT_sig = {1786, "glClearNamedBufferSubDataEXT", 7, _glClearNamedBufferSubDataEXT_args};

static const char * _glClientAttribDefaultEXT_args[1] = {"mask"};
static const trace::FunctionSig _glClientAttribDefaultEXT_sig = {1787, "glClientAttribDefaultEXT", 1, _glClientAttribDefaultEXT_args};

static const char * _glCompressedMultiTexImage1DEXT_args[8] = {"texunit", "target", "level", "internalformat", "width", "border", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedMultiTexImage1DEXT_sig = {1788, "glCompressedMultiTexImage1DEXT", 8, _glCompressedMultiTexImage1DEXT_args};

static const char * _glCompressedMultiTexImage2DEXT_args[9] = {"texunit", "target", "level", "internalformat", "width", "height", "border", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedMultiTexImage2DEXT_sig = {1789, "glCompressedMultiTexImage2DEXT", 9, _glCompressedMultiTexImage2DEXT_args};

static const char * _glCompressedMultiTexImage3DEXT_args[10] = {"texunit", "target", "level", "internalformat", "width", "height", "depth", "border", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedMultiTexImage3DEXT_sig = {1790, "glCompressedMultiTexImage3DEXT", 10, _glCompressedMultiTexImage3DEXT_args};

static const char * _glCompressedMultiTexSubImage1DEXT_args[8] = {"texunit", "target", "level", "xoffset", "width", "format", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedMultiTexSubImage1DEXT_sig = {1791, "glCompressedMultiTexSubImage1DEXT", 8, _glCompressedMultiTexSubImage1DEXT_args};

static const char * _glCompressedMultiTexSubImage2DEXT_args[10] = {"texunit", "target", "level", "xoffset", "yoffset", "width", "height", "format", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedMultiTexSubImage2DEXT_sig = {1792, "glCompressedMultiTexSubImage2DEXT", 10, _glCompressedMultiTexSubImage2DEXT_args};

static const char * _glCompressedMultiTexSubImage3DEXT_args[12] = {"texunit", "target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedMultiTexSubImage3DEXT_sig = {1793, "glCompressedMultiTexSubImage3DEXT", 12, _glCompressedMultiTexSubImage3DEXT_args};

static const char * _glCompressedTextureImage1DEXT_args[8] = {"texture", "target", "level", "internalformat", "width", "border", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedTextureImage1DEXT_sig = {1794, "glCompressedTextureImage1DEXT", 8, _glCompressedTextureImage1DEXT_args};

static const char * _glCompressedTextureImage2DEXT_args[9] = {"texture", "target", "level", "internalformat", "width", "height", "border", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedTextureImage2DEXT_sig = {1795, "glCompressedTextureImage2DEXT", 9, _glCompressedTextureImage2DEXT_args};

static const char * _glCompressedTextureImage3DEXT_args[10] = {"texture", "target", "level", "internalformat", "width", "height", "depth", "border", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedTextureImage3DEXT_sig = {1796, "glCompressedTextureImage3DEXT", 10, _glCompressedTextureImage3DEXT_args};

static const char * _glCompressedTextureSubImage1DEXT_args[8] = {"texture", "target", "level", "xoffset", "width", "format", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedTextureSubImage1DEXT_sig = {1797, "glCompressedTextureSubImage1DEXT", 8, _glCompressedTextureSubImage1DEXT_args};

static const char * _glCompressedTextureSubImage2DEXT_args[10] = {"texture", "target", "level", "xoffset", "yoffset", "width", "height", "format", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedTextureSubImage2DEXT_sig = {1798, "glCompressedTextureSubImage2DEXT", 10, _glCompressedTextureSubImage2DEXT_args};

static const char * _glCompressedTextureSubImage3DEXT_args[12] = {"texture", "target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "imageSize", "bits"};
static const trace::FunctionSig _glCompressedTextureSubImage3DEXT_sig = {1799, "glCompressedTextureSubImage3DEXT", 12, _glCompressedTextureSubImage3DEXT_args};

static const char * _glCopyMultiTexImage1DEXT_args[8] = {"texunit", "target", "level", "internalformat", "x", "y", "width", "border"};
static const trace::FunctionSig _glCopyMultiTexImage1DEXT_sig = {1800, "glCopyMultiTexImage1DEXT", 8, _glCopyMultiTexImage1DEXT_args};

static const char * _glCopyMultiTexImage2DEXT_args[9] = {"texunit", "target", "level", "internalformat", "x", "y", "width", "height", "border"};
static const trace::FunctionSig _glCopyMultiTexImage2DEXT_sig = {1801, "glCopyMultiTexImage2DEXT", 9, _glCopyMultiTexImage2DEXT_args};

static const char * _glCopyMultiTexSubImage1DEXT_args[7] = {"texunit", "target", "level", "xoffset", "x", "y", "width"};
static const trace::FunctionSig _glCopyMultiTexSubImage1DEXT_sig = {1802, "glCopyMultiTexSubImage1DEXT", 7, _glCopyMultiTexSubImage1DEXT_args};

static const char * _glCopyMultiTexSubImage2DEXT_args[9] = {"texunit", "target", "level", "xoffset", "yoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyMultiTexSubImage2DEXT_sig = {1803, "glCopyMultiTexSubImage2DEXT", 9, _glCopyMultiTexSubImage2DEXT_args};

static const char * _glCopyMultiTexSubImage3DEXT_args[10] = {"texunit", "target", "level", "xoffset", "yoffset", "zoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyMultiTexSubImage3DEXT_sig = {1804, "glCopyMultiTexSubImage3DEXT", 10, _glCopyMultiTexSubImage3DEXT_args};

static const char * _glCopyTextureImage1DEXT_args[8] = {"texture", "target", "level", "internalformat", "x", "y", "width", "border"};
static const trace::FunctionSig _glCopyTextureImage1DEXT_sig = {1805, "glCopyTextureImage1DEXT", 8, _glCopyTextureImage1DEXT_args};

static const char * _glCopyTextureImage2DEXT_args[9] = {"texture", "target", "level", "internalformat", "x", "y", "width", "height", "border"};
static const trace::FunctionSig _glCopyTextureImage2DEXT_sig = {1806, "glCopyTextureImage2DEXT", 9, _glCopyTextureImage2DEXT_args};

static const char * _glCopyTextureSubImage1DEXT_args[7] = {"texture", "target", "level", "xoffset", "x", "y", "width"};
static const trace::FunctionSig _glCopyTextureSubImage1DEXT_sig = {1807, "glCopyTextureSubImage1DEXT", 7, _glCopyTextureSubImage1DEXT_args};

static const char * _glCopyTextureSubImage2DEXT_args[9] = {"texture", "target", "level", "xoffset", "yoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTextureSubImage2DEXT_sig = {1808, "glCopyTextureSubImage2DEXT", 9, _glCopyTextureSubImage2DEXT_args};

static const char * _glCopyTextureSubImage3DEXT_args[10] = {"texture", "target", "level", "xoffset", "yoffset", "zoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTextureSubImage3DEXT_sig = {1809, "glCopyTextureSubImage3DEXT", 10, _glCopyTextureSubImage3DEXT_args};

static const char * _glDisableClientStateIndexedEXT_args[2] = {"array", "index"};
static const trace::FunctionSig _glDisableClientStateIndexedEXT_sig = {1810, "glDisableClientStateIndexedEXT", 2, _glDisableClientStateIndexedEXT_args};

static const char * _glDisableClientStateiEXT_args[2] = {"array", "index"};
static const trace::FunctionSig _glDisableClientStateiEXT_sig = {1811, "glDisableClientStateiEXT", 2, _glDisableClientStateiEXT_args};

static const char * _glDisableVertexArrayAttribEXT_args[2] = {"vaobj", "index"};
static const trace::FunctionSig _glDisableVertexArrayAttribEXT_sig = {1812, "glDisableVertexArrayAttribEXT", 2, _glDisableVertexArrayAttribEXT_args};

static const char * _glDisableVertexArrayEXT_args[2] = {"vaobj", "array"};
static const trace::FunctionSig _glDisableVertexArrayEXT_sig = {1813, "glDisableVertexArrayEXT", 2, _glDisableVertexArrayEXT_args};

static const char * _glEnableClientStateIndexedEXT_args[2] = {"array", "index"};
static const trace::FunctionSig _glEnableClientStateIndexedEXT_sig = {1814, "glEnableClientStateIndexedEXT", 2, _glEnableClientStateIndexedEXT_args};

static const char * _glEnableClientStateiEXT_args[2] = {"array", "index"};
static const trace::FunctionSig _glEnableClientStateiEXT_sig = {1815, "glEnableClientStateiEXT", 2, _glEnableClientStateiEXT_args};

static const char * _glEnableVertexArrayAttribEXT_args[2] = {"vaobj", "index"};
static const trace::FunctionSig _glEnableVertexArrayAttribEXT_sig = {1816, "glEnableVertexArrayAttribEXT", 2, _glEnableVertexArrayAttribEXT_args};

static const char * _glEnableVertexArrayEXT_args[2] = {"vaobj", "array"};
static const trace::FunctionSig _glEnableVertexArrayEXT_sig = {1817, "glEnableVertexArrayEXT", 2, _glEnableVertexArrayEXT_args};

static const char * _glFlushMappedNamedBufferRangeEXT_args[3] = {"buffer", "offset", "length"};
static const trace::FunctionSig _glFlushMappedNamedBufferRangeEXT_sig = {1818, "glFlushMappedNamedBufferRangeEXT", 3, _glFlushMappedNamedBufferRangeEXT_args};

static const char * _glFramebufferDrawBufferEXT_args[2] = {"framebuffer", "mode"};
static const trace::FunctionSig _glFramebufferDrawBufferEXT_sig = {1819, "glFramebufferDrawBufferEXT", 2, _glFramebufferDrawBufferEXT_args};

static const char * _glFramebufferDrawBuffersEXT_args[3] = {"framebuffer", "n", "bufs"};
static const trace::FunctionSig _glFramebufferDrawBuffersEXT_sig = {1820, "glFramebufferDrawBuffersEXT", 3, _glFramebufferDrawBuffersEXT_args};

static const char * _glFramebufferReadBufferEXT_args[2] = {"framebuffer", "mode"};
static const trace::FunctionSig _glFramebufferReadBufferEXT_sig = {1821, "glFramebufferReadBufferEXT", 2, _glFramebufferReadBufferEXT_args};

static const char * _glGenerateMultiTexMipmapEXT_args[2] = {"texunit", "target"};
static const trace::FunctionSig _glGenerateMultiTexMipmapEXT_sig = {1822, "glGenerateMultiTexMipmapEXT", 2, _glGenerateMultiTexMipmapEXT_args};

static const char * _glGenerateTextureMipmapEXT_args[2] = {"texture", "target"};
static const trace::FunctionSig _glGenerateTextureMipmapEXT_sig = {1823, "glGenerateTextureMipmapEXT", 2, _glGenerateTextureMipmapEXT_args};

static const char * _glGetCompressedMultiTexImageEXT_args[4] = {"texunit", "target", "lod", "img"};
static const trace::FunctionSig _glGetCompressedMultiTexImageEXT_sig = {1824, "glGetCompressedMultiTexImageEXT", 4, _glGetCompressedMultiTexImageEXT_args};

static const char * _glGetCompressedTextureImageEXT_args[4] = {"texture", "target", "lod", "img"};
static const trace::FunctionSig _glGetCompressedTextureImageEXT_sig = {1825, "glGetCompressedTextureImageEXT", 4, _glGetCompressedTextureImageEXT_args};

static const char * _glGetDoubleIndexedvEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetDoubleIndexedvEXT_sig = {1826, "glGetDoubleIndexedvEXT", 3, _glGetDoubleIndexedvEXT_args};

static const char * _glGetDoublei_vEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetDoublei_vEXT_sig = {1827, "glGetDoublei_vEXT", 3, _glGetDoublei_vEXT_args};

static const char * _glGetFloatIndexedvEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetFloatIndexedvEXT_sig = {1828, "glGetFloatIndexedvEXT", 3, _glGetFloatIndexedvEXT_args};

static const char * _glGetFloati_vEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetFloati_vEXT_sig = {1829, "glGetFloati_vEXT", 3, _glGetFloati_vEXT_args};

static const char * _glGetFramebufferParameterivEXT_args[3] = {"framebuffer", "pname", "params"};
static const trace::FunctionSig _glGetFramebufferParameterivEXT_sig = {1830, "glGetFramebufferParameterivEXT", 3, _glGetFramebufferParameterivEXT_args};

static const char * _glGetMultiTexEnvfvEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexEnvfvEXT_sig = {1831, "glGetMultiTexEnvfvEXT", 4, _glGetMultiTexEnvfvEXT_args};

static const char * _glGetMultiTexEnvivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexEnvivEXT_sig = {1832, "glGetMultiTexEnvivEXT", 4, _glGetMultiTexEnvivEXT_args};

static const char * _glGetMultiTexGendvEXT_args[4] = {"texunit", "coord", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexGendvEXT_sig = {1833, "glGetMultiTexGendvEXT", 4, _glGetMultiTexGendvEXT_args};

static const char * _glGetMultiTexGenfvEXT_args[4] = {"texunit", "coord", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexGenfvEXT_sig = {1834, "glGetMultiTexGenfvEXT", 4, _glGetMultiTexGenfvEXT_args};

static const char * _glGetMultiTexGenivEXT_args[4] = {"texunit", "coord", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexGenivEXT_sig = {1835, "glGetMultiTexGenivEXT", 4, _glGetMultiTexGenivEXT_args};

static const char * _glGetMultiTexImageEXT_args[6] = {"texunit", "target", "level", "format", "type", "pixels"};
static const trace::FunctionSig _glGetMultiTexImageEXT_sig = {1836, "glGetMultiTexImageEXT", 6, _glGetMultiTexImageEXT_args};

static const char * _glGetMultiTexLevelParameterfvEXT_args[5] = {"texunit", "target", "level", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexLevelParameterfvEXT_sig = {1837, "glGetMultiTexLevelParameterfvEXT", 5, _glGetMultiTexLevelParameterfvEXT_args};

static const char * _glGetMultiTexLevelParameterivEXT_args[5] = {"texunit", "target", "level", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexLevelParameterivEXT_sig = {1838, "glGetMultiTexLevelParameterivEXT", 5, _glGetMultiTexLevelParameterivEXT_args};

static const char * _glGetMultiTexParameterIivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexParameterIivEXT_sig = {1839, "glGetMultiTexParameterIivEXT", 4, _glGetMultiTexParameterIivEXT_args};

static const char * _glGetMultiTexParameterIuivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexParameterIuivEXT_sig = {1840, "glGetMultiTexParameterIuivEXT", 4, _glGetMultiTexParameterIuivEXT_args};

static const char * _glGetMultiTexParameterfvEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexParameterfvEXT_sig = {1841, "glGetMultiTexParameterfvEXT", 4, _glGetMultiTexParameterfvEXT_args};

static const char * _glGetMultiTexParameterivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glGetMultiTexParameterivEXT_sig = {1842, "glGetMultiTexParameterivEXT", 4, _glGetMultiTexParameterivEXT_args};

static const char * _glGetNamedBufferParameterivEXT_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedBufferParameterivEXT_sig = {1843, "glGetNamedBufferParameterivEXT", 3, _glGetNamedBufferParameterivEXT_args};

static const char * _glGetNamedBufferPointervEXT_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedBufferPointervEXT_sig = {1844, "glGetNamedBufferPointervEXT", 3, _glGetNamedBufferPointervEXT_args};

static const char * _glGetNamedBufferSubDataEXT_args[4] = {"buffer", "offset", "size", "data"};
static const trace::FunctionSig _glGetNamedBufferSubDataEXT_sig = {1845, "glGetNamedBufferSubDataEXT", 4, _glGetNamedBufferSubDataEXT_args};

static const char * _glGetNamedFramebufferAttachmentParameterivEXT_args[4] = {"framebuffer", "attachment", "pname", "params"};
static const trace::FunctionSig _glGetNamedFramebufferAttachmentParameterivEXT_sig = {1846, "glGetNamedFramebufferAttachmentParameterivEXT", 4, _glGetNamedFramebufferAttachmentParameterivEXT_args};

static const char * _glGetNamedFramebufferParameterivEXT_args[3] = {"framebuffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedFramebufferParameterivEXT_sig = {1847, "glGetNamedFramebufferParameterivEXT", 3, _glGetNamedFramebufferParameterivEXT_args};

static const char * _glGetNamedProgramLocalParameterIivEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glGetNamedProgramLocalParameterIivEXT_sig = {1848, "glGetNamedProgramLocalParameterIivEXT", 4, _glGetNamedProgramLocalParameterIivEXT_args};

static const char * _glGetNamedProgramLocalParameterIuivEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glGetNamedProgramLocalParameterIuivEXT_sig = {1849, "glGetNamedProgramLocalParameterIuivEXT", 4, _glGetNamedProgramLocalParameterIuivEXT_args};

static const char * _glGetNamedProgramLocalParameterdvEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glGetNamedProgramLocalParameterdvEXT_sig = {1850, "glGetNamedProgramLocalParameterdvEXT", 4, _glGetNamedProgramLocalParameterdvEXT_args};

static const char * _glGetNamedProgramLocalParameterfvEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glGetNamedProgramLocalParameterfvEXT_sig = {1851, "glGetNamedProgramLocalParameterfvEXT", 4, _glGetNamedProgramLocalParameterfvEXT_args};

static const char * _glGetNamedProgramStringEXT_args[4] = {"program", "target", "pname", "string"};
static const trace::FunctionSig _glGetNamedProgramStringEXT_sig = {1852, "glGetNamedProgramStringEXT", 4, _glGetNamedProgramStringEXT_args};

static const char * _glGetNamedProgramivEXT_args[4] = {"program", "target", "pname", "params"};
static const trace::FunctionSig _glGetNamedProgramivEXT_sig = {1853, "glGetNamedProgramivEXT", 4, _glGetNamedProgramivEXT_args};

static const char * _glGetNamedRenderbufferParameterivEXT_args[3] = {"renderbuffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedRenderbufferParameterivEXT_sig = {1854, "glGetNamedRenderbufferParameterivEXT", 3, _glGetNamedRenderbufferParameterivEXT_args};

static const char * _glGetPointerIndexedvEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetPointerIndexedvEXT_sig = {1855, "glGetPointerIndexedvEXT", 3, _glGetPointerIndexedvEXT_args};

static const char * _glGetPointeri_vEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetPointeri_vEXT_sig = {1856, "glGetPointeri_vEXT", 3, _glGetPointeri_vEXT_args};

static const char * _glGetTextureImageEXT_args[6] = {"texture", "target", "level", "format", "type", "pixels"};
static const trace::FunctionSig _glGetTextureImageEXT_sig = {1857, "glGetTextureImageEXT", 6, _glGetTextureImageEXT_args};

static const char * _glGetTextureLevelParameterfvEXT_args[5] = {"texture", "target", "level", "pname", "params"};
static const trace::FunctionSig _glGetTextureLevelParameterfvEXT_sig = {1858, "glGetTextureLevelParameterfvEXT", 5, _glGetTextureLevelParameterfvEXT_args};

static const char * _glGetTextureLevelParameterivEXT_args[5] = {"texture", "target", "level", "pname", "params"};
static const trace::FunctionSig _glGetTextureLevelParameterivEXT_sig = {1859, "glGetTextureLevelParameterivEXT", 5, _glGetTextureLevelParameterivEXT_args};

static const char * _glGetTextureParameterIivEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterIivEXT_sig = {1860, "glGetTextureParameterIivEXT", 4, _glGetTextureParameterIivEXT_args};

static const char * _glGetTextureParameterIuivEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterIuivEXT_sig = {1861, "glGetTextureParameterIuivEXT", 4, _glGetTextureParameterIuivEXT_args};

static const char * _glGetTextureParameterfvEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterfvEXT_sig = {1862, "glGetTextureParameterfvEXT", 4, _glGetTextureParameterfvEXT_args};

static const char * _glGetTextureParameterivEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glGetTextureParameterivEXT_sig = {1863, "glGetTextureParameterivEXT", 4, _glGetTextureParameterivEXT_args};

static const char * _glGetVertexArrayIntegeri_vEXT_args[4] = {"vaobj", "index", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayIntegeri_vEXT_sig = {1864, "glGetVertexArrayIntegeri_vEXT", 4, _glGetVertexArrayIntegeri_vEXT_args};

static const char * _glGetVertexArrayIntegervEXT_args[3] = {"vaobj", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayIntegervEXT_sig = {1865, "glGetVertexArrayIntegervEXT", 3, _glGetVertexArrayIntegervEXT_args};

static const char * _glGetVertexArrayPointeri_vEXT_args[4] = {"vaobj", "index", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayPointeri_vEXT_sig = {1866, "glGetVertexArrayPointeri_vEXT", 4, _glGetVertexArrayPointeri_vEXT_args};

static const char * _glGetVertexArrayPointervEXT_args[3] = {"vaobj", "pname", "param"};
static const trace::FunctionSig _glGetVertexArrayPointervEXT_sig = {1867, "glGetVertexArrayPointervEXT", 3, _glGetVertexArrayPointervEXT_args};

static const char * _glMapNamedBufferEXT_args[2] = {"buffer", "access"};
static const trace::FunctionSig _glMapNamedBufferEXT_sig = {1868, "glMapNamedBufferEXT", 2, _glMapNamedBufferEXT_args};

static const char * _glMapNamedBufferRangeEXT_args[4] = {"buffer", "offset", "length", "access"};
static const trace::FunctionSig _glMapNamedBufferRangeEXT_sig = {1869, "glMapNamedBufferRangeEXT", 4, _glMapNamedBufferRangeEXT_args};

static const char * _glMatrixFrustumEXT_args[7] = {"mode", "left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glMatrixFrustumEXT_sig = {1870, "glMatrixFrustumEXT", 7, _glMatrixFrustumEXT_args};

static const char * _glMatrixLoadIdentityEXT_args[1] = {"mode"};
static const trace::FunctionSig _glMatrixLoadIdentityEXT_sig = {1871, "glMatrixLoadIdentityEXT", 1, _glMatrixLoadIdentityEXT_args};

static const char * _glMatrixLoadTransposedEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixLoadTransposedEXT_sig = {1872, "glMatrixLoadTransposedEXT", 2, _glMatrixLoadTransposedEXT_args};

static const char * _glMatrixLoadTransposefEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixLoadTransposefEXT_sig = {1873, "glMatrixLoadTransposefEXT", 2, _glMatrixLoadTransposefEXT_args};

static const char * _glMatrixLoaddEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixLoaddEXT_sig = {1874, "glMatrixLoaddEXT", 2, _glMatrixLoaddEXT_args};

static const char * _glMatrixLoadfEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixLoadfEXT_sig = {1875, "glMatrixLoadfEXT", 2, _glMatrixLoadfEXT_args};

static const char * _glMatrixMultTransposedEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixMultTransposedEXT_sig = {1876, "glMatrixMultTransposedEXT", 2, _glMatrixMultTransposedEXT_args};

static const char * _glMatrixMultTransposefEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixMultTransposefEXT_sig = {1877, "glMatrixMultTransposefEXT", 2, _glMatrixMultTransposefEXT_args};

static const char * _glMatrixMultdEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixMultdEXT_sig = {1878, "glMatrixMultdEXT", 2, _glMatrixMultdEXT_args};

static const char * _glMatrixMultfEXT_args[2] = {"mode", "m"};
static const trace::FunctionSig _glMatrixMultfEXT_sig = {1879, "glMatrixMultfEXT", 2, _glMatrixMultfEXT_args};

static const char * _glMatrixOrthoEXT_args[7] = {"mode", "left", "right", "bottom", "top", "zNear", "zFar"};
static const trace::FunctionSig _glMatrixOrthoEXT_sig = {1880, "glMatrixOrthoEXT", 7, _glMatrixOrthoEXT_args};

static const char * _glMatrixPopEXT_args[1] = {"mode"};
static const trace::FunctionSig _glMatrixPopEXT_sig = {1881, "glMatrixPopEXT", 1, _glMatrixPopEXT_args};

static const char * _glMatrixPushEXT_args[1] = {"mode"};
static const trace::FunctionSig _glMatrixPushEXT_sig = {1882, "glMatrixPushEXT", 1, _glMatrixPushEXT_args};

static const char * _glMatrixRotatedEXT_args[5] = {"mode", "angle", "x", "y", "z"};
static const trace::FunctionSig _glMatrixRotatedEXT_sig = {1883, "glMatrixRotatedEXT", 5, _glMatrixRotatedEXT_args};

static const char * _glMatrixRotatefEXT_args[5] = {"mode", "angle", "x", "y", "z"};
static const trace::FunctionSig _glMatrixRotatefEXT_sig = {1884, "glMatrixRotatefEXT", 5, _glMatrixRotatefEXT_args};

static const char * _glMatrixScaledEXT_args[4] = {"mode", "x", "y", "z"};
static const trace::FunctionSig _glMatrixScaledEXT_sig = {1885, "glMatrixScaledEXT", 4, _glMatrixScaledEXT_args};

static const char * _glMatrixScalefEXT_args[4] = {"mode", "x", "y", "z"};
static const trace::FunctionSig _glMatrixScalefEXT_sig = {1886, "glMatrixScalefEXT", 4, _glMatrixScalefEXT_args};

static const char * _glMatrixTranslatedEXT_args[4] = {"mode", "x", "y", "z"};
static const trace::FunctionSig _glMatrixTranslatedEXT_sig = {1887, "glMatrixTranslatedEXT", 4, _glMatrixTranslatedEXT_args};

static const char * _glMatrixTranslatefEXT_args[4] = {"mode", "x", "y", "z"};
static const trace::FunctionSig _glMatrixTranslatefEXT_sig = {1888, "glMatrixTranslatefEXT", 4, _glMatrixTranslatefEXT_args};

static const char * _glMultiTexBufferEXT_args[4] = {"texunit", "target", "internalformat", "buffer"};
static const trace::FunctionSig _glMultiTexBufferEXT_sig = {1889, "glMultiTexBufferEXT", 4, _glMultiTexBufferEXT_args};

static const char * _glMultiTexCoordPointerEXT_args[5] = {"texunit", "size", "type", "stride", "pointer"};
static const trace::FunctionSig _glMultiTexCoordPointerEXT_sig = {1890, "glMultiTexCoordPointerEXT", 5, _glMultiTexCoordPointerEXT_args};

static const char * _glMultiTexEnvfEXT_args[4] = {"texunit", "target", "pname", "param"};
static const trace::FunctionSig _glMultiTexEnvfEXT_sig = {1891, "glMultiTexEnvfEXT", 4, _glMultiTexEnvfEXT_args};

static const char * _glMultiTexEnvfvEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glMultiTexEnvfvEXT_sig = {1892, "glMultiTexEnvfvEXT", 4, _glMultiTexEnvfvEXT_args};

static const char * _glMultiTexEnviEXT_args[4] = {"texunit", "target", "pname", "param"};
static const trace::FunctionSig _glMultiTexEnviEXT_sig = {1893, "glMultiTexEnviEXT", 4, _glMultiTexEnviEXT_args};

static const char * _glMultiTexEnvivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glMultiTexEnvivEXT_sig = {1894, "glMultiTexEnvivEXT", 4, _glMultiTexEnvivEXT_args};

static const char * _glMultiTexGendEXT_args[4] = {"texunit", "coord", "pname", "param"};
static const trace::FunctionSig _glMultiTexGendEXT_sig = {1895, "glMultiTexGendEXT", 4, _glMultiTexGendEXT_args};

static const char * _glMultiTexGendvEXT_args[4] = {"texunit", "coord", "pname", "params"};
static const trace::FunctionSig _glMultiTexGendvEXT_sig = {1896, "glMultiTexGendvEXT", 4, _glMultiTexGendvEXT_args};

static const char * _glMultiTexGenfEXT_args[4] = {"texunit", "coord", "pname", "param"};
static const trace::FunctionSig _glMultiTexGenfEXT_sig = {1897, "glMultiTexGenfEXT", 4, _glMultiTexGenfEXT_args};

static const char * _glMultiTexGenfvEXT_args[4] = {"texunit", "coord", "pname", "params"};
static const trace::FunctionSig _glMultiTexGenfvEXT_sig = {1898, "glMultiTexGenfvEXT", 4, _glMultiTexGenfvEXT_args};

static const char * _glMultiTexGeniEXT_args[4] = {"texunit", "coord", "pname", "param"};
static const trace::FunctionSig _glMultiTexGeniEXT_sig = {1899, "glMultiTexGeniEXT", 4, _glMultiTexGeniEXT_args};

static const char * _glMultiTexGenivEXT_args[4] = {"texunit", "coord", "pname", "params"};
static const trace::FunctionSig _glMultiTexGenivEXT_sig = {1900, "glMultiTexGenivEXT", 4, _glMultiTexGenivEXT_args};

static const char * _glMultiTexImage1DEXT_args[9] = {"texunit", "target", "level", "internalformat", "width", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glMultiTexImage1DEXT_sig = {1901, "glMultiTexImage1DEXT", 9, _glMultiTexImage1DEXT_args};

static const char * _glMultiTexImage2DEXT_args[10] = {"texunit", "target", "level", "internalformat", "width", "height", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glMultiTexImage2DEXT_sig = {1902, "glMultiTexImage2DEXT", 10, _glMultiTexImage2DEXT_args};

static const char * _glMultiTexImage3DEXT_args[11] = {"texunit", "target", "level", "internalformat", "width", "height", "depth", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glMultiTexImage3DEXT_sig = {1903, "glMultiTexImage3DEXT", 11, _glMultiTexImage3DEXT_args};

static const char * _glMultiTexParameterIivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glMultiTexParameterIivEXT_sig = {1904, "glMultiTexParameterIivEXT", 4, _glMultiTexParameterIivEXT_args};

static const char * _glMultiTexParameterIuivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glMultiTexParameterIuivEXT_sig = {1905, "glMultiTexParameterIuivEXT", 4, _glMultiTexParameterIuivEXT_args};

static const char * _glMultiTexParameterfEXT_args[4] = {"texunit", "target", "pname", "param"};
static const trace::FunctionSig _glMultiTexParameterfEXT_sig = {1906, "glMultiTexParameterfEXT", 4, _glMultiTexParameterfEXT_args};

static const char * _glMultiTexParameterfvEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glMultiTexParameterfvEXT_sig = {1907, "glMultiTexParameterfvEXT", 4, _glMultiTexParameterfvEXT_args};

static const char * _glMultiTexParameteriEXT_args[4] = {"texunit", "target", "pname", "param"};
static const trace::FunctionSig _glMultiTexParameteriEXT_sig = {1908, "glMultiTexParameteriEXT", 4, _glMultiTexParameteriEXT_args};

static const char * _glMultiTexParameterivEXT_args[4] = {"texunit", "target", "pname", "params"};
static const trace::FunctionSig _glMultiTexParameterivEXT_sig = {1909, "glMultiTexParameterivEXT", 4, _glMultiTexParameterivEXT_args};

static const char * _glMultiTexRenderbufferEXT_args[3] = {"texunit", "target", "renderbuffer"};
static const trace::FunctionSig _glMultiTexRenderbufferEXT_sig = {1910, "glMultiTexRenderbufferEXT", 3, _glMultiTexRenderbufferEXT_args};

static const char * _glMultiTexSubImage1DEXT_args[8] = {"texunit", "target", "level", "xoffset", "width", "format", "type", "pixels"};
static const trace::FunctionSig _glMultiTexSubImage1DEXT_sig = {1911, "glMultiTexSubImage1DEXT", 8, _glMultiTexSubImage1DEXT_args};

static const char * _glMultiTexSubImage2DEXT_args[10] = {"texunit", "target", "level", "xoffset", "yoffset", "width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glMultiTexSubImage2DEXT_sig = {1912, "glMultiTexSubImage2DEXT", 10, _glMultiTexSubImage2DEXT_args};

static const char * _glMultiTexSubImage3DEXT_args[12] = {"texunit", "target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "pixels"};
static const trace::FunctionSig _glMultiTexSubImage3DEXT_sig = {1913, "glMultiTexSubImage3DEXT", 12, _glMultiTexSubImage3DEXT_args};

static const char * _glNamedBufferDataEXT_args[4] = {"buffer", "size", "data", "usage"};
static const trace::FunctionSig _glNamedBufferDataEXT_sig = {1914, "glNamedBufferDataEXT", 4, _glNamedBufferDataEXT_args};

static const char * _glNamedBufferStorageEXT_args[4] = {"buffer", "size", "data", "flags"};
static const trace::FunctionSig _glNamedBufferStorageEXT_sig = {1915, "glNamedBufferStorageEXT", 4, _glNamedBufferStorageEXT_args};

static const char * _glNamedBufferSubDataEXT_args[4] = {"buffer", "offset", "size", "data"};
static const trace::FunctionSig _glNamedBufferSubDataEXT_sig = {1916, "glNamedBufferSubDataEXT", 4, _glNamedBufferSubDataEXT_args};

static const char * _glNamedCopyBufferSubDataEXT_args[5] = {"readBuffer", "writeBuffer", "readOffset", "writeOffset", "size"};
static const trace::FunctionSig _glNamedCopyBufferSubDataEXT_sig = {1917, "glNamedCopyBufferSubDataEXT", 5, _glNamedCopyBufferSubDataEXT_args};

static const char * _glNamedFramebufferParameteriEXT_args[3] = {"framebuffer", "pname", "param"};
static const trace::FunctionSig _glNamedFramebufferParameteriEXT_sig = {1918, "glNamedFramebufferParameteriEXT", 3, _glNamedFramebufferParameteriEXT_args};

static const char * _glNamedFramebufferRenderbufferEXT_args[4] = {"framebuffer", "attachment", "renderbuffertarget", "renderbuffer"};
static const trace::FunctionSig _glNamedFramebufferRenderbufferEXT_sig = {1919, "glNamedFramebufferRenderbufferEXT", 4, _glNamedFramebufferRenderbufferEXT_args};

static const char * _glNamedFramebufferTexture1DEXT_args[5] = {"framebuffer", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glNamedFramebufferTexture1DEXT_sig = {1920, "glNamedFramebufferTexture1DEXT", 5, _glNamedFramebufferTexture1DEXT_args};

static const char * _glNamedFramebufferTexture2DEXT_args[5] = {"framebuffer", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glNamedFramebufferTexture2DEXT_sig = {1921, "glNamedFramebufferTexture2DEXT", 5, _glNamedFramebufferTexture2DEXT_args};

static const char * _glNamedFramebufferTexture3DEXT_args[6] = {"framebuffer", "attachment", "textarget", "texture", "level", "zoffset"};
static const trace::FunctionSig _glNamedFramebufferTexture3DEXT_sig = {1922, "glNamedFramebufferTexture3DEXT", 6, _glNamedFramebufferTexture3DEXT_args};

static const char * _glNamedFramebufferTextureEXT_args[4] = {"framebuffer", "attachment", "texture", "level"};
static const trace::FunctionSig _glNamedFramebufferTextureEXT_sig = {1923, "glNamedFramebufferTextureEXT", 4, _glNamedFramebufferTextureEXT_args};

static const char * _glNamedFramebufferTextureFaceEXT_args[5] = {"framebuffer", "attachment", "texture", "level", "face"};
static const trace::FunctionSig _glNamedFramebufferTextureFaceEXT_sig = {1924, "glNamedFramebufferTextureFaceEXT", 5, _glNamedFramebufferTextureFaceEXT_args};

static const char * _glNamedFramebufferTextureLayerEXT_args[5] = {"framebuffer", "attachment", "texture", "level", "layer"};
static const trace::FunctionSig _glNamedFramebufferTextureLayerEXT_sig = {1925, "glNamedFramebufferTextureLayerEXT", 5, _glNamedFramebufferTextureLayerEXT_args};

static const char * _glNamedProgramLocalParameter4dEXT_args[7] = {"program", "target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glNamedProgramLocalParameter4dEXT_sig = {1926, "glNamedProgramLocalParameter4dEXT", 7, _glNamedProgramLocalParameter4dEXT_args};

static const char * _glNamedProgramLocalParameter4dvEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glNamedProgramLocalParameter4dvEXT_sig = {1927, "glNamedProgramLocalParameter4dvEXT", 4, _glNamedProgramLocalParameter4dvEXT_args};

static const char * _glNamedProgramLocalParameter4fEXT_args[7] = {"program", "target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glNamedProgramLocalParameter4fEXT_sig = {1928, "glNamedProgramLocalParameter4fEXT", 7, _glNamedProgramLocalParameter4fEXT_args};

static const char * _glNamedProgramLocalParameter4fvEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glNamedProgramLocalParameter4fvEXT_sig = {1929, "glNamedProgramLocalParameter4fvEXT", 4, _glNamedProgramLocalParameter4fvEXT_args};

static const char * _glNamedProgramLocalParameterI4iEXT_args[7] = {"program", "target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glNamedProgramLocalParameterI4iEXT_sig = {1930, "glNamedProgramLocalParameterI4iEXT", 7, _glNamedProgramLocalParameterI4iEXT_args};

static const char * _glNamedProgramLocalParameterI4ivEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glNamedProgramLocalParameterI4ivEXT_sig = {1931, "glNamedProgramLocalParameterI4ivEXT", 4, _glNamedProgramLocalParameterI4ivEXT_args};

static const char * _glNamedProgramLocalParameterI4uiEXT_args[7] = {"program", "target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glNamedProgramLocalParameterI4uiEXT_sig = {1932, "glNamedProgramLocalParameterI4uiEXT", 7, _glNamedProgramLocalParameterI4uiEXT_args};

static const char * _glNamedProgramLocalParameterI4uivEXT_args[4] = {"program", "target", "index", "params"};
static const trace::FunctionSig _glNamedProgramLocalParameterI4uivEXT_sig = {1933, "glNamedProgramLocalParameterI4uivEXT", 4, _glNamedProgramLocalParameterI4uivEXT_args};

static const char * _glNamedProgramLocalParameters4fvEXT_args[5] = {"program", "target", "index", "count", "params"};
static const trace::FunctionSig _glNamedProgramLocalParameters4fvEXT_sig = {1934, "glNamedProgramLocalParameters4fvEXT", 5, _glNamedProgramLocalParameters4fvEXT_args};

static const char * _glNamedProgramLocalParametersI4ivEXT_args[5] = {"program", "target", "index", "count", "params"};
static const trace::FunctionSig _glNamedProgramLocalParametersI4ivEXT_sig = {1935, "glNamedProgramLocalParametersI4ivEXT", 5, _glNamedProgramLocalParametersI4ivEXT_args};

static const char * _glNamedProgramLocalParametersI4uivEXT_args[5] = {"program", "target", "index", "count", "params"};
static const trace::FunctionSig _glNamedProgramLocalParametersI4uivEXT_sig = {1936, "glNamedProgramLocalParametersI4uivEXT", 5, _glNamedProgramLocalParametersI4uivEXT_args};

static const char * _glNamedProgramStringEXT_args[5] = {"program", "target", "format", "len", "string"};
static const trace::FunctionSig _glNamedProgramStringEXT_sig = {1937, "glNamedProgramStringEXT", 5, _glNamedProgramStringEXT_args};

static const char * _glNamedRenderbufferStorageEXT_args[4] = {"renderbuffer", "internalformat", "width", "height"};
static const trace::FunctionSig _glNamedRenderbufferStorageEXT_sig = {1938, "glNamedRenderbufferStorageEXT", 4, _glNamedRenderbufferStorageEXT_args};

static const char * _glNamedRenderbufferStorageMultisampleCoverageEXT_args[6] = {"renderbuffer", "coverageSamples", "colorSamples", "internalformat", "width", "height"};
static const trace::FunctionSig _glNamedRenderbufferStorageMultisampleCoverageEXT_sig = {1939, "glNamedRenderbufferStorageMultisampleCoverageEXT", 6, _glNamedRenderbufferStorageMultisampleCoverageEXT_args};

static const char * _glNamedRenderbufferStorageMultisampleEXT_args[5] = {"renderbuffer", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glNamedRenderbufferStorageMultisampleEXT_sig = {1940, "glNamedRenderbufferStorageMultisampleEXT", 5, _glNamedRenderbufferStorageMultisampleEXT_args};

static const char * _glProgramUniform1dEXT_args[3] = {"program", "location", "x"};
static const trace::FunctionSig _glProgramUniform1dEXT_sig = {1941, "glProgramUniform1dEXT", 3, _glProgramUniform1dEXT_args};

static const char * _glProgramUniform1dvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1dvEXT_sig = {1942, "glProgramUniform1dvEXT", 4, _glProgramUniform1dvEXT_args};

static const char * _glProgramUniform1fEXT_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1fEXT_sig = {1943, "glProgramUniform1fEXT", 3, _glProgramUniform1fEXT_args};

static const char * _glProgramUniform1fvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1fvEXT_sig = {1944, "glProgramUniform1fvEXT", 4, _glProgramUniform1fvEXT_args};

static const char * _glProgramUniform1iEXT_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1iEXT_sig = {1945, "glProgramUniform1iEXT", 3, _glProgramUniform1iEXT_args};

static const char * _glProgramUniform1ivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1ivEXT_sig = {1946, "glProgramUniform1ivEXT", 4, _glProgramUniform1ivEXT_args};

static const char * _glProgramUniform1uiEXT_args[3] = {"program", "location", "v0"};
static const trace::FunctionSig _glProgramUniform1uiEXT_sig = {1947, "glProgramUniform1uiEXT", 3, _glProgramUniform1uiEXT_args};

static const char * _glProgramUniform1uivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1uivEXT_sig = {1948, "glProgramUniform1uivEXT", 4, _glProgramUniform1uivEXT_args};

static const char * _glProgramUniform2dEXT_args[4] = {"program", "location", "x", "y"};
static const trace::FunctionSig _glProgramUniform2dEXT_sig = {1949, "glProgramUniform2dEXT", 4, _glProgramUniform2dEXT_args};

static const char * _glProgramUniform2dvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2dvEXT_sig = {1950, "glProgramUniform2dvEXT", 4, _glProgramUniform2dvEXT_args};

static const char * _glProgramUniform2fEXT_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2fEXT_sig = {1951, "glProgramUniform2fEXT", 4, _glProgramUniform2fEXT_args};

static const char * _glProgramUniform2fvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2fvEXT_sig = {1952, "glProgramUniform2fvEXT", 4, _glProgramUniform2fvEXT_args};

static const char * _glProgramUniform2iEXT_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2iEXT_sig = {1953, "glProgramUniform2iEXT", 4, _glProgramUniform2iEXT_args};

static const char * _glProgramUniform2ivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2ivEXT_sig = {1954, "glProgramUniform2ivEXT", 4, _glProgramUniform2ivEXT_args};

static const char * _glProgramUniform2uiEXT_args[4] = {"program", "location", "v0", "v1"};
static const trace::FunctionSig _glProgramUniform2uiEXT_sig = {1955, "glProgramUniform2uiEXT", 4, _glProgramUniform2uiEXT_args};

static const char * _glProgramUniform2uivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2uivEXT_sig = {1956, "glProgramUniform2uivEXT", 4, _glProgramUniform2uivEXT_args};

static const char * _glProgramUniform3dEXT_args[5] = {"program", "location", "x", "y", "z"};
static const trace::FunctionSig _glProgramUniform3dEXT_sig = {1957, "glProgramUniform3dEXT", 5, _glProgramUniform3dEXT_args};

static const char * _glProgramUniform3dvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3dvEXT_sig = {1958, "glProgramUniform3dvEXT", 4, _glProgramUniform3dvEXT_args};

static const char * _glProgramUniform3fEXT_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3fEXT_sig = {1959, "glProgramUniform3fEXT", 5, _glProgramUniform3fEXT_args};

static const char * _glProgramUniform3fvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3fvEXT_sig = {1960, "glProgramUniform3fvEXT", 4, _glProgramUniform3fvEXT_args};

static const char * _glProgramUniform3iEXT_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3iEXT_sig = {1961, "glProgramUniform3iEXT", 5, _glProgramUniform3iEXT_args};

static const char * _glProgramUniform3ivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3ivEXT_sig = {1962, "glProgramUniform3ivEXT", 4, _glProgramUniform3ivEXT_args};

static const char * _glProgramUniform3uiEXT_args[5] = {"program", "location", "v0", "v1", "v2"};
static const trace::FunctionSig _glProgramUniform3uiEXT_sig = {1963, "glProgramUniform3uiEXT", 5, _glProgramUniform3uiEXT_args};

static const char * _glProgramUniform3uivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3uivEXT_sig = {1964, "glProgramUniform3uivEXT", 4, _glProgramUniform3uivEXT_args};

static const char * _glProgramUniform4dEXT_args[6] = {"program", "location", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramUniform4dEXT_sig = {1965, "glProgramUniform4dEXT", 6, _glProgramUniform4dEXT_args};

static const char * _glProgramUniform4dvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4dvEXT_sig = {1966, "glProgramUniform4dvEXT", 4, _glProgramUniform4dvEXT_args};

static const char * _glProgramUniform4fEXT_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4fEXT_sig = {1967, "glProgramUniform4fEXT", 6, _glProgramUniform4fEXT_args};

static const char * _glProgramUniform4fvEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4fvEXT_sig = {1968, "glProgramUniform4fvEXT", 4, _glProgramUniform4fvEXT_args};

static const char * _glProgramUniform4iEXT_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4iEXT_sig = {1969, "glProgramUniform4iEXT", 6, _glProgramUniform4iEXT_args};

static const char * _glProgramUniform4ivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4ivEXT_sig = {1970, "glProgramUniform4ivEXT", 4, _glProgramUniform4ivEXT_args};

static const char * _glProgramUniform4uiEXT_args[6] = {"program", "location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glProgramUniform4uiEXT_sig = {1971, "glProgramUniform4uiEXT", 6, _glProgramUniform4uiEXT_args};

static const char * _glProgramUniform4uivEXT_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4uivEXT_sig = {1972, "glProgramUniform4uivEXT", 4, _glProgramUniform4uivEXT_args};

static const char * _glProgramUniformMatrix2dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2dvEXT_sig = {1973, "glProgramUniformMatrix2dvEXT", 5, _glProgramUniformMatrix2dvEXT_args};

static const char * _glProgramUniformMatrix2fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2fvEXT_sig = {1974, "glProgramUniformMatrix2fvEXT", 5, _glProgramUniformMatrix2fvEXT_args};

static const char * _glProgramUniformMatrix2x3dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x3dvEXT_sig = {1975, "glProgramUniformMatrix2x3dvEXT", 5, _glProgramUniformMatrix2x3dvEXT_args};

static const char * _glProgramUniformMatrix2x3fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x3fvEXT_sig = {1976, "glProgramUniformMatrix2x3fvEXT", 5, _glProgramUniformMatrix2x3fvEXT_args};

static const char * _glProgramUniformMatrix2x4dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x4dvEXT_sig = {1977, "glProgramUniformMatrix2x4dvEXT", 5, _glProgramUniformMatrix2x4dvEXT_args};

static const char * _glProgramUniformMatrix2x4fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix2x4fvEXT_sig = {1978, "glProgramUniformMatrix2x4fvEXT", 5, _glProgramUniformMatrix2x4fvEXT_args};

static const char * _glProgramUniformMatrix3dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3dvEXT_sig = {1979, "glProgramUniformMatrix3dvEXT", 5, _glProgramUniformMatrix3dvEXT_args};

static const char * _glProgramUniformMatrix3fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3fvEXT_sig = {1980, "glProgramUniformMatrix3fvEXT", 5, _glProgramUniformMatrix3fvEXT_args};

static const char * _glProgramUniformMatrix3x2dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x2dvEXT_sig = {1981, "glProgramUniformMatrix3x2dvEXT", 5, _glProgramUniformMatrix3x2dvEXT_args};

static const char * _glProgramUniformMatrix3x2fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x2fvEXT_sig = {1982, "glProgramUniformMatrix3x2fvEXT", 5, _glProgramUniformMatrix3x2fvEXT_args};

static const char * _glProgramUniformMatrix3x4dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x4dvEXT_sig = {1983, "glProgramUniformMatrix3x4dvEXT", 5, _glProgramUniformMatrix3x4dvEXT_args};

static const char * _glProgramUniformMatrix3x4fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix3x4fvEXT_sig = {1984, "glProgramUniformMatrix3x4fvEXT", 5, _glProgramUniformMatrix3x4fvEXT_args};

static const char * _glProgramUniformMatrix4dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4dvEXT_sig = {1985, "glProgramUniformMatrix4dvEXT", 5, _glProgramUniformMatrix4dvEXT_args};

static const char * _glProgramUniformMatrix4fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4fvEXT_sig = {1986, "glProgramUniformMatrix4fvEXT", 5, _glProgramUniformMatrix4fvEXT_args};

static const char * _glProgramUniformMatrix4x2dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x2dvEXT_sig = {1987, "glProgramUniformMatrix4x2dvEXT", 5, _glProgramUniformMatrix4x2dvEXT_args};

static const char * _glProgramUniformMatrix4x2fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x2fvEXT_sig = {1988, "glProgramUniformMatrix4x2fvEXT", 5, _glProgramUniformMatrix4x2fvEXT_args};

static const char * _glProgramUniformMatrix4x3dvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x3dvEXT_sig = {1989, "glProgramUniformMatrix4x3dvEXT", 5, _glProgramUniformMatrix4x3dvEXT_args};

static const char * _glProgramUniformMatrix4x3fvEXT_args[5] = {"program", "location", "count", "transpose", "value"};
static const trace::FunctionSig _glProgramUniformMatrix4x3fvEXT_sig = {1990, "glProgramUniformMatrix4x3fvEXT", 5, _glProgramUniformMatrix4x3fvEXT_args};

static const char * _glPushClientAttribDefaultEXT_args[1] = {"mask"};
static const trace::FunctionSig _glPushClientAttribDefaultEXT_sig = {1991, "glPushClientAttribDefaultEXT", 1, _glPushClientAttribDefaultEXT_args};

static const char * _glTextureBufferEXT_args[4] = {"texture", "target", "internalformat", "buffer"};
static const trace::FunctionSig _glTextureBufferEXT_sig = {1992, "glTextureBufferEXT", 4, _glTextureBufferEXT_args};

static const char * _glTextureBufferRangeEXT_args[6] = {"texture", "target", "internalformat", "buffer", "offset", "size"};
static const trace::FunctionSig _glTextureBufferRangeEXT_sig = {1993, "glTextureBufferRangeEXT", 6, _glTextureBufferRangeEXT_args};

static const char * _glTextureImage1DEXT_args[9] = {"texture", "target", "level", "internalformat", "width", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureImage1DEXT_sig = {1994, "glTextureImage1DEXT", 9, _glTextureImage1DEXT_args};

static const char * _glTextureImage2DEXT_args[10] = {"texture", "target", "level", "internalformat", "width", "height", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureImage2DEXT_sig = {1995, "glTextureImage2DEXT", 10, _glTextureImage2DEXT_args};

static const char * _glTextureImage3DEXT_args[11] = {"texture", "target", "level", "internalformat", "width", "height", "depth", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureImage3DEXT_sig = {1996, "glTextureImage3DEXT", 11, _glTextureImage3DEXT_args};

static const char * _glTexturePageCommitmentEXT_args[9] = {"texture", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "commit"};
static const trace::FunctionSig _glTexturePageCommitmentEXT_sig = {1997, "glTexturePageCommitmentEXT", 9, _glTexturePageCommitmentEXT_args};

static const char * _glTextureParameterIivEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glTextureParameterIivEXT_sig = {1998, "glTextureParameterIivEXT", 4, _glTextureParameterIivEXT_args};

static const char * _glTextureParameterIuivEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glTextureParameterIuivEXT_sig = {1999, "glTextureParameterIuivEXT", 4, _glTextureParameterIuivEXT_args};

static const char * _glTextureParameterfEXT_args[4] = {"texture", "target", "pname", "param"};
static const trace::FunctionSig _glTextureParameterfEXT_sig = {2000, "glTextureParameterfEXT", 4, _glTextureParameterfEXT_args};

static const char * _glTextureParameterfvEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glTextureParameterfvEXT_sig = {2001, "glTextureParameterfvEXT", 4, _glTextureParameterfvEXT_args};

static const char * _glTextureParameteriEXT_args[4] = {"texture", "target", "pname", "param"};
static const trace::FunctionSig _glTextureParameteriEXT_sig = {2002, "glTextureParameteriEXT", 4, _glTextureParameteriEXT_args};

static const char * _glTextureParameterivEXT_args[4] = {"texture", "target", "pname", "params"};
static const trace::FunctionSig _glTextureParameterivEXT_sig = {2003, "glTextureParameterivEXT", 4, _glTextureParameterivEXT_args};

static const char * _glTextureRenderbufferEXT_args[3] = {"texture", "target", "renderbuffer"};
static const trace::FunctionSig _glTextureRenderbufferEXT_sig = {2004, "glTextureRenderbufferEXT", 3, _glTextureRenderbufferEXT_args};

static const char * _glTextureStorage1DEXT_args[5] = {"texture", "target", "levels", "internalformat", "width"};
static const trace::FunctionSig _glTextureStorage1DEXT_sig = {2005, "glTextureStorage1DEXT", 5, _glTextureStorage1DEXT_args};

static const char * _glTextureStorage2DEXT_args[6] = {"texture", "target", "levels", "internalformat", "width", "height"};
static const trace::FunctionSig _glTextureStorage2DEXT_sig = {2006, "glTextureStorage2DEXT", 6, _glTextureStorage2DEXT_args};

static const char * _glTextureStorage2DMultisampleEXT_args[7] = {"texture", "target", "samples", "internalformat", "width", "height", "fixedsamplelocations"};
static const trace::FunctionSig _glTextureStorage2DMultisampleEXT_sig = {2007, "glTextureStorage2DMultisampleEXT", 7, _glTextureStorage2DMultisampleEXT_args};

static const char * _glTextureStorage3DEXT_args[7] = {"texture", "target", "levels", "internalformat", "width", "height", "depth"};
static const trace::FunctionSig _glTextureStorage3DEXT_sig = {2008, "glTextureStorage3DEXT", 7, _glTextureStorage3DEXT_args};

static const char * _glTextureStorage3DMultisampleEXT_args[8] = {"texture", "target", "samples", "internalformat", "width", "height", "depth", "fixedsamplelocations"};
static const trace::FunctionSig _glTextureStorage3DMultisampleEXT_sig = {2009, "glTextureStorage3DMultisampleEXT", 8, _glTextureStorage3DMultisampleEXT_args};

static const char * _glTextureSubImage1DEXT_args[8] = {"texture", "target", "level", "xoffset", "width", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureSubImage1DEXT_sig = {2010, "glTextureSubImage1DEXT", 8, _glTextureSubImage1DEXT_args};

static const char * _glTextureSubImage2DEXT_args[10] = {"texture", "target", "level", "xoffset", "yoffset", "width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureSubImage2DEXT_sig = {2011, "glTextureSubImage2DEXT", 10, _glTextureSubImage2DEXT_args};

static const char * _glTextureSubImage3DEXT_args[12] = {"texture", "target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "pixels"};
static const trace::FunctionSig _glTextureSubImage3DEXT_sig = {2012, "glTextureSubImage3DEXT", 12, _glTextureSubImage3DEXT_args};

static const char * _glUnmapNamedBufferEXT_args[1] = {"buffer"};
static const trace::FunctionSig _glUnmapNamedBufferEXT_sig = {2013, "glUnmapNamedBufferEXT", 1, _glUnmapNamedBufferEXT_args};

static const char * _glVertexArrayBindVertexBufferEXT_args[5] = {"vaobj", "bindingindex", "buffer", "offset", "stride"};
static const trace::FunctionSig _glVertexArrayBindVertexBufferEXT_sig = {2014, "glVertexArrayBindVertexBufferEXT", 5, _glVertexArrayBindVertexBufferEXT_args};

static const char * _glVertexArrayColorOffsetEXT_args[6] = {"vaobj", "buffer", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayColorOffsetEXT_sig = {2015, "glVertexArrayColorOffsetEXT", 6, _glVertexArrayColorOffsetEXT_args};

static const char * _glVertexArrayEdgeFlagOffsetEXT_args[4] = {"vaobj", "buffer", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayEdgeFlagOffsetEXT_sig = {2016, "glVertexArrayEdgeFlagOffsetEXT", 4, _glVertexArrayEdgeFlagOffsetEXT_args};

static const char * _glVertexArrayFogCoordOffsetEXT_args[5] = {"vaobj", "buffer", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayFogCoordOffsetEXT_sig = {2017, "glVertexArrayFogCoordOffsetEXT", 5, _glVertexArrayFogCoordOffsetEXT_args};

static const char * _glVertexArrayIndexOffsetEXT_args[5] = {"vaobj", "buffer", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayIndexOffsetEXT_sig = {2018, "glVertexArrayIndexOffsetEXT", 5, _glVertexArrayIndexOffsetEXT_args};

static const char * _glVertexArrayMultiTexCoordOffsetEXT_args[7] = {"vaobj", "buffer", "texunit", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayMultiTexCoordOffsetEXT_sig = {2019, "glVertexArrayMultiTexCoordOffsetEXT", 7, _glVertexArrayMultiTexCoordOffsetEXT_args};

static const char * _glVertexArrayNormalOffsetEXT_args[5] = {"vaobj", "buffer", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayNormalOffsetEXT_sig = {2020, "glVertexArrayNormalOffsetEXT", 5, _glVertexArrayNormalOffsetEXT_args};

static const char * _glVertexArraySecondaryColorOffsetEXT_args[6] = {"vaobj", "buffer", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArraySecondaryColorOffsetEXT_sig = {2021, "glVertexArraySecondaryColorOffsetEXT", 6, _glVertexArraySecondaryColorOffsetEXT_args};

static const char * _glVertexArrayTexCoordOffsetEXT_args[6] = {"vaobj", "buffer", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayTexCoordOffsetEXT_sig = {2022, "glVertexArrayTexCoordOffsetEXT", 6, _glVertexArrayTexCoordOffsetEXT_args};

static const char * _glVertexArrayVertexAttribBindingEXT_args[3] = {"vaobj", "attribindex", "bindingindex"};
static const trace::FunctionSig _glVertexArrayVertexAttribBindingEXT_sig = {2023, "glVertexArrayVertexAttribBindingEXT", 3, _glVertexArrayVertexAttribBindingEXT_args};

static const char * _glVertexArrayVertexAttribDivisorEXT_args[3] = {"vaobj", "index", "divisor"};
static const trace::FunctionSig _glVertexArrayVertexAttribDivisorEXT_sig = {2024, "glVertexArrayVertexAttribDivisorEXT", 3, _glVertexArrayVertexAttribDivisorEXT_args};

static const char * _glVertexArrayVertexAttribFormatEXT_args[6] = {"vaobj", "attribindex", "size", "type", "normalized", "relativeoffset"};
static const trace::FunctionSig _glVertexArrayVertexAttribFormatEXT_sig = {2025, "glVertexArrayVertexAttribFormatEXT", 6, _glVertexArrayVertexAttribFormatEXT_args};

static const char * _glVertexArrayVertexAttribIFormatEXT_args[5] = {"vaobj", "attribindex", "size", "type", "relativeoffset"};
static const trace::FunctionSig _glVertexArrayVertexAttribIFormatEXT_sig = {2026, "glVertexArrayVertexAttribIFormatEXT", 5, _glVertexArrayVertexAttribIFormatEXT_args};

static const char * _glVertexArrayVertexAttribIOffsetEXT_args[7] = {"vaobj", "buffer", "index", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayVertexAttribIOffsetEXT_sig = {2027, "glVertexArrayVertexAttribIOffsetEXT", 7, _glVertexArrayVertexAttribIOffsetEXT_args};

static const char * _glVertexArrayVertexAttribLFormatEXT_args[5] = {"vaobj", "attribindex", "size", "type", "relativeoffset"};
static const trace::FunctionSig _glVertexArrayVertexAttribLFormatEXT_sig = {2028, "glVertexArrayVertexAttribLFormatEXT", 5, _glVertexArrayVertexAttribLFormatEXT_args};

static const char * _glVertexArrayVertexAttribLOffsetEXT_args[7] = {"vaobj", "buffer", "index", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayVertexAttribLOffsetEXT_sig = {2029, "glVertexArrayVertexAttribLOffsetEXT", 7, _glVertexArrayVertexAttribLOffsetEXT_args};

static const char * _glVertexArrayVertexAttribOffsetEXT_args[8] = {"vaobj", "buffer", "index", "size", "type", "normalized", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayVertexAttribOffsetEXT_sig = {2030, "glVertexArrayVertexAttribOffsetEXT", 8, _glVertexArrayVertexAttribOffsetEXT_args};

static const char * _glVertexArrayVertexBindingDivisorEXT_args[3] = {"vaobj", "bindingindex", "divisor"};
static const trace::FunctionSig _glVertexArrayVertexBindingDivisorEXT_sig = {2031, "glVertexArrayVertexBindingDivisorEXT", 3, _glVertexArrayVertexBindingDivisorEXT_args};

static const char * _glVertexArrayVertexOffsetEXT_args[6] = {"vaobj", "buffer", "size", "type", "stride", "offset"};
static const trace::FunctionSig _glVertexArrayVertexOffsetEXT_sig = {2032, "glVertexArrayVertexOffsetEXT", 6, _glVertexArrayVertexOffsetEXT_args};

static const char * _glDiscardFramebufferEXT_args[3] = {"target", "numAttachments", "attachments"};
static const trace::FunctionSig _glDiscardFramebufferEXT_sig = {2033, "glDiscardFramebufferEXT", 3, _glDiscardFramebufferEXT_args};

static const char * _glGenQueriesEXT_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenQueriesEXT_sig = {2034, "glGenQueriesEXT", 2, _glGenQueriesEXT_args};

static const char * _glDeleteQueriesEXT_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteQueriesEXT_sig = {2035, "glDeleteQueriesEXT", 2, _glDeleteQueriesEXT_args};

static const char * _glIsQueryEXT_args[1] = {"id"};
static const trace::FunctionSig _glIsQueryEXT_sig = {2036, "glIsQueryEXT", 1, _glIsQueryEXT_args};

static const char * _glBeginQueryEXT_args[2] = {"target", "id"};
static const trace::FunctionSig _glBeginQueryEXT_sig = {2037, "glBeginQueryEXT", 2, _glBeginQueryEXT_args};

static const char * _glEndQueryEXT_args[1] = {"target"};
static const trace::FunctionSig _glEndQueryEXT_sig = {2038, "glEndQueryEXT", 1, _glEndQueryEXT_args};

static const char * _glQueryCounterEXT_args[2] = {"id", "target"};
static const trace::FunctionSig _glQueryCounterEXT_sig = {2039, "glQueryCounterEXT", 2, _glQueryCounterEXT_args};

static const char * _glGetQueryivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetQueryivEXT_sig = {2040, "glGetQueryivEXT", 3, _glGetQueryivEXT_args};

static const char * _glGetQueryObjectivEXT_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectivEXT_sig = {2041, "glGetQueryObjectivEXT", 3, _glGetQueryObjectivEXT_args};

static const char * _glGetQueryObjectuivEXT_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectuivEXT_sig = {2042, "glGetQueryObjectuivEXT", 3, _glGetQueryObjectuivEXT_args};

static const char * _glGetQueryObjecti64vEXT_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjecti64vEXT_sig = {2043, "glGetQueryObjecti64vEXT", 3, _glGetQueryObjecti64vEXT_args};

static const char * _glGetQueryObjectui64vEXT_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetQueryObjectui64vEXT_sig = {2044, "glGetQueryObjectui64vEXT", 3, _glGetQueryObjectui64vEXT_args};

static const char * _glDrawBuffersEXT_args[2] = {"n", "bufs"};
static const trace::FunctionSig _glDrawBuffersEXT_sig = {2045, "glDrawBuffersEXT", 2, _glDrawBuffersEXT_args};

static const char * _glColorMaskIndexedEXT_args[5] = {"index", "r", "g", "b", "a"};
static const trace::FunctionSig _glColorMaskIndexedEXT_sig = {2046, "glColorMaskIndexedEXT", 5, _glColorMaskIndexedEXT_args};

static const char * _glGetBooleanIndexedvEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetBooleanIndexedvEXT_sig = {2047, "glGetBooleanIndexedvEXT", 3, _glGetBooleanIndexedvEXT_args};

static const char * _glGetIntegerIndexedvEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetIntegerIndexedvEXT_sig = {2048, "glGetIntegerIndexedvEXT", 3, _glGetIntegerIndexedvEXT_args};

static const char * _glEnableIndexedEXT_args[2] = {"target", "index"};
static const trace::FunctionSig _glEnableIndexedEXT_sig = {2049, "glEnableIndexedEXT", 2, _glEnableIndexedEXT_args};

static const char * _glDisableIndexedEXT_args[2] = {"target", "index"};
static const trace::FunctionSig _glDisableIndexedEXT_sig = {2050, "glDisableIndexedEXT", 2, _glDisableIndexedEXT_args};

static const char * _glIsEnabledIndexedEXT_args[2] = {"target", "index"};
static const trace::FunctionSig _glIsEnabledIndexedEXT_sig = {2051, "glIsEnabledIndexedEXT", 2, _glIsEnabledIndexedEXT_args};

static const char * _glEnableiEXT_args[2] = {"target", "index"};
static const trace::FunctionSig _glEnableiEXT_sig = {2052, "glEnableiEXT", 2, _glEnableiEXT_args};

static const char * _glDisableiEXT_args[2] = {"target", "index"};
static const trace::FunctionSig _glDisableiEXT_sig = {2053, "glDisableiEXT", 2, _glDisableiEXT_args};

static const char * _glBlendEquationiEXT_args[2] = {"buf", "mode"};
static const trace::FunctionSig _glBlendEquationiEXT_sig = {2054, "glBlendEquationiEXT", 2, _glBlendEquationiEXT_args};

static const char * _glBlendEquationSeparateiEXT_args[3] = {"buf", "modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparateiEXT_sig = {2055, "glBlendEquationSeparateiEXT", 3, _glBlendEquationSeparateiEXT_args};

static const char * _glBlendFunciEXT_args[3] = {"buf", "src", "dst"};
static const trace::FunctionSig _glBlendFunciEXT_sig = {2056, "glBlendFunciEXT", 3, _glBlendFunciEXT_args};

static const char * _glBlendFuncSeparateiEXT_args[5] = {"buf", "srcRGB", "dstRGB", "srcAlpha", "dstAlpha"};
static const trace::FunctionSig _glBlendFuncSeparateiEXT_sig = {2057, "glBlendFuncSeparateiEXT", 5, _glBlendFuncSeparateiEXT_args};

static const char * _glColorMaskiEXT_args[5] = {"index", "r", "g", "b", "a"};
static const trace::FunctionSig _glColorMaskiEXT_sig = {2058, "glColorMaskiEXT", 5, _glColorMaskiEXT_args};

static const char * _glIsEnablediEXT_args[2] = {"target", "index"};
static const trace::FunctionSig _glIsEnablediEXT_sig = {2059, "glIsEnablediEXT", 2, _glIsEnablediEXT_args};

static const char * _glDrawElementsBaseVertexEXT_args[5] = {"mode", "count", "type", "indices", "basevertex"};
static const trace::FunctionSig _glDrawElementsBaseVertexEXT_sig = {2060, "glDrawElementsBaseVertexEXT", 5, _glDrawElementsBaseVertexEXT_args};

static const char * _glDrawRangeElementsBaseVertexEXT_args[7] = {"mode", "start", "end", "count", "type", "indices", "basevertex"};
static const trace::FunctionSig _glDrawRangeElementsBaseVertexEXT_sig = {2061, "glDrawRangeElementsBaseVertexEXT", 7, _glDrawRangeElementsBaseVertexEXT_args};

static const char * _glDrawElementsInstancedBaseVertexEXT_args[6] = {"mode", "count", "type", "indices", "instancecount", "basevertex"};
static const trace::FunctionSig _glDrawElementsInstancedBaseVertexEXT_sig = {2062, "glDrawElementsInstancedBaseVertexEXT", 6, _glDrawElementsInstancedBaseVertexEXT_args};

static const char * _glMultiDrawElementsBaseVertexEXT_args[6] = {"mode", "count", "type", "indices", "drawcount", "basevertex"};
static const trace::FunctionSig _glMultiDrawElementsBaseVertexEXT_sig = {2063, "glMultiDrawElementsBaseVertexEXT", 6, _glMultiDrawElementsBaseVertexEXT_args};

static const char * _glDrawArraysInstancedEXT_args[4] = {"mode", "first", "count", "instancecount"};
static const trace::FunctionSig _glDrawArraysInstancedEXT_sig = {2064, "glDrawArraysInstancedEXT", 4, _glDrawArraysInstancedEXT_args};

static const char * _glDrawElementsInstancedEXT_args[5] = {"mode", "count", "type", "indices", "instancecount"};
static const trace::FunctionSig _glDrawElementsInstancedEXT_sig = {2065, "glDrawElementsInstancedEXT", 5, _glDrawElementsInstancedEXT_args};

static const char * _glDrawRangeElementsEXT_args[6] = {"mode", "start", "end", "count", "type", "indices"};
static const trace::FunctionSig _glDrawRangeElementsEXT_sig = {2066, "glDrawRangeElementsEXT", 6, _glDrawRangeElementsEXT_args};

static const char * _glFogCoordfEXT_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoordfEXT_sig = {2067, "glFogCoordfEXT", 1, _glFogCoordfEXT_args};

static const char * _glFogCoordfvEXT_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoordfvEXT_sig = {2068, "glFogCoordfvEXT", 1, _glFogCoordfvEXT_args};

static const char * _glFogCoorddEXT_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoorddEXT_sig = {2069, "glFogCoorddEXT", 1, _glFogCoorddEXT_args};

static const char * _glFogCoorddvEXT_args[1] = {"coord"};
static const trace::FunctionSig _glFogCoorddvEXT_sig = {2070, "glFogCoorddvEXT", 1, _glFogCoorddvEXT_args};

static const char * _glFogCoordPointerEXT_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glFogCoordPointerEXT_sig = {2071, "glFogCoordPointerEXT", 3, _glFogCoordPointerEXT_args};

static const char * _glBlitFramebufferEXT_args[10] = {"srcX0", "srcY0", "srcX1", "srcY1", "dstX0", "dstY0", "dstX1", "dstY1", "mask", "filter"};
static const trace::FunctionSig _glBlitFramebufferEXT_sig = {2072, "glBlitFramebufferEXT", 10, _glBlitFramebufferEXT_args};

static const char * _glRenderbufferStorageMultisampleEXT_args[5] = {"target", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageMultisampleEXT_sig = {2073, "glRenderbufferStorageMultisampleEXT", 5, _glRenderbufferStorageMultisampleEXT_args};

static const char * _glIsRenderbufferEXT_args[1] = {"renderbuffer"};
static const trace::FunctionSig _glIsRenderbufferEXT_sig = {2074, "glIsRenderbufferEXT", 1, _glIsRenderbufferEXT_args};

static const char * _glBindRenderbufferEXT_args[2] = {"target", "renderbuffer"};
static const trace::FunctionSig _glBindRenderbufferEXT_sig = {2075, "glBindRenderbufferEXT", 2, _glBindRenderbufferEXT_args};

static const char * _glDeleteRenderbuffersEXT_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glDeleteRenderbuffersEXT_sig = {2076, "glDeleteRenderbuffersEXT", 2, _glDeleteRenderbuffersEXT_args};

static const char * _glGenRenderbuffersEXT_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glGenRenderbuffersEXT_sig = {2077, "glGenRenderbuffersEXT", 2, _glGenRenderbuffersEXT_args};

static const char * _glRenderbufferStorageEXT_args[4] = {"target", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageEXT_sig = {2078, "glRenderbufferStorageEXT", 4, _glRenderbufferStorageEXT_args};

static const char * _glGetRenderbufferParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetRenderbufferParameterivEXT_sig = {2079, "glGetRenderbufferParameterivEXT", 3, _glGetRenderbufferParameterivEXT_args};

static const char * _glIsFramebufferEXT_args[1] = {"framebuffer"};
static const trace::FunctionSig _glIsFramebufferEXT_sig = {2080, "glIsFramebufferEXT", 1, _glIsFramebufferEXT_args};

static const char * _glBindFramebufferEXT_args[2] = {"target", "framebuffer"};
static const trace::FunctionSig _glBindFramebufferEXT_sig = {2081, "glBindFramebufferEXT", 2, _glBindFramebufferEXT_args};

static const char * _glDeleteFramebuffersEXT_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glDeleteFramebuffersEXT_sig = {2082, "glDeleteFramebuffersEXT", 2, _glDeleteFramebuffersEXT_args};

static const char * _glGenFramebuffersEXT_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glGenFramebuffersEXT_sig = {2083, "glGenFramebuffersEXT", 2, _glGenFramebuffersEXT_args};

static const char * _glCheckFramebufferStatusEXT_args[1] = {"target"};
static const trace::FunctionSig _glCheckFramebufferStatusEXT_sig = {2084, "glCheckFramebufferStatusEXT", 1, _glCheckFramebufferStatusEXT_args};

static const char * _glFramebufferTexture1DEXT_args[5] = {"target", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glFramebufferTexture1DEXT_sig = {2085, "glFramebufferTexture1DEXT", 5, _glFramebufferTexture1DEXT_args};

static const char * _glFramebufferTexture2DEXT_args[5] = {"target", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glFramebufferTexture2DEXT_sig = {2086, "glFramebufferTexture2DEXT", 5, _glFramebufferTexture2DEXT_args};

static const char * _glFramebufferTexture3DEXT_args[6] = {"target", "attachment", "textarget", "texture", "level", "zoffset"};
static const trace::FunctionSig _glFramebufferTexture3DEXT_sig = {2087, "glFramebufferTexture3DEXT", 6, _glFramebufferTexture3DEXT_args};

static const char * _glFramebufferRenderbufferEXT_args[4] = {"target", "attachment", "renderbuffertarget", "renderbuffer"};
static const trace::FunctionSig _glFramebufferRenderbufferEXT_sig = {2088, "glFramebufferRenderbufferEXT", 4, _glFramebufferRenderbufferEXT_args};

static const char * _glGetFramebufferAttachmentParameterivEXT_args[4] = {"target", "attachment", "pname", "params"};
static const trace::FunctionSig _glGetFramebufferAttachmentParameterivEXT_sig = {2089, "glGetFramebufferAttachmentParameterivEXT", 4, _glGetFramebufferAttachmentParameterivEXT_args};

static const char * _glGenerateMipmapEXT_args[1] = {"target"};
static const trace::FunctionSig _glGenerateMipmapEXT_sig = {2090, "glGenerateMipmapEXT", 1, _glGenerateMipmapEXT_args};

static const char * _glFramebufferTextureEXT_args[4] = {"target", "attachment", "texture", "level"};
static const trace::FunctionSig _glFramebufferTextureEXT_sig = {2091, "glFramebufferTextureEXT", 4, _glFramebufferTextureEXT_args};

static const char * _glProgramParameteriEXT_args[3] = {"program", "pname", "value"};
static const trace::FunctionSig _glProgramParameteriEXT_sig = {2092, "glProgramParameteriEXT", 3, _glProgramParameteriEXT_args};

static const char * _glProgramEnvParameters4fvEXT_args[4] = {"target", "index", "count", "params"};
static const trace::FunctionSig _glProgramEnvParameters4fvEXT_sig = {2093, "glProgramEnvParameters4fvEXT", 4, _glProgramEnvParameters4fvEXT_args};

static const char * _glProgramLocalParameters4fvEXT_args[4] = {"target", "index", "count", "params"};
static const trace::FunctionSig _glProgramLocalParameters4fvEXT_sig = {2094, "glProgramLocalParameters4fvEXT", 4, _glProgramLocalParameters4fvEXT_args};

static const char * _glGetUniformuivEXT_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformuivEXT_sig = {2095, "glGetUniformuivEXT", 3, _glGetUniformuivEXT_args};

static const char * _glGetFragDataLocationEXT_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetFragDataLocationEXT_sig = {2096, "glGetFragDataLocationEXT", 2, _glGetFragDataLocationEXT_args};

static const char * _glUniform1uiEXT_args[2] = {"location", "v0"};
static const trace::FunctionSig _glUniform1uiEXT_sig = {2097, "glUniform1uiEXT", 2, _glUniform1uiEXT_args};

static const char * _glUniform2uiEXT_args[3] = {"location", "v0", "v1"};
static const trace::FunctionSig _glUniform2uiEXT_sig = {2098, "glUniform2uiEXT", 3, _glUniform2uiEXT_args};

static const char * _glUniform3uiEXT_args[4] = {"location", "v0", "v1", "v2"};
static const trace::FunctionSig _glUniform3uiEXT_sig = {2099, "glUniform3uiEXT", 4, _glUniform3uiEXT_args};

static const char * _glUniform4uiEXT_args[5] = {"location", "v0", "v1", "v2", "v3"};
static const trace::FunctionSig _glUniform4uiEXT_sig = {2100, "glUniform4uiEXT", 5, _glUniform4uiEXT_args};

static const char * _glUniform1uivEXT_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1uivEXT_sig = {2101, "glUniform1uivEXT", 3, _glUniform1uivEXT_args};

static const char * _glUniform2uivEXT_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2uivEXT_sig = {2102, "glUniform2uivEXT", 3, _glUniform2uivEXT_args};

static const char * _glUniform3uivEXT_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3uivEXT_sig = {2103, "glUniform3uivEXT", 3, _glUniform3uivEXT_args};

static const char * _glUniform4uivEXT_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4uivEXT_sig = {2104, "glUniform4uivEXT", 3, _glUniform4uivEXT_args};

static const char * _glGetHistogramEXT_args[5] = {"target", "reset", "format", "type", "values"};
static const trace::FunctionSig _glGetHistogramEXT_sig = {2105, "glGetHistogramEXT", 5, _glGetHistogramEXT_args};

static const char * _glGetHistogramParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetHistogramParameterfvEXT_sig = {2106, "glGetHistogramParameterfvEXT", 3, _glGetHistogramParameterfvEXT_args};

static const char * _glGetHistogramParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetHistogramParameterivEXT_sig = {2107, "glGetHistogramParameterivEXT", 3, _glGetHistogramParameterivEXT_args};

static const char * _glGetMinmaxEXT_args[5] = {"target", "reset", "format", "type", "values"};
static const trace::FunctionSig _glGetMinmaxEXT_sig = {2108, "glGetMinmaxEXT", 5, _glGetMinmaxEXT_args};

static const char * _glGetMinmaxParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetMinmaxParameterfvEXT_sig = {2109, "glGetMinmaxParameterfvEXT", 3, _glGetMinmaxParameterfvEXT_args};

static const char * _glGetMinmaxParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetMinmaxParameterivEXT_sig = {2110, "glGetMinmaxParameterivEXT", 3, _glGetMinmaxParameterivEXT_args};

static const char * _glHistogramEXT_args[4] = {"target", "width", "internalformat", "sink"};
static const trace::FunctionSig _glHistogramEXT_sig = {2111, "glHistogramEXT", 4, _glHistogramEXT_args};

static const char * _glMinmaxEXT_args[3] = {"target", "internalformat", "sink"};
static const trace::FunctionSig _glMinmaxEXT_sig = {2112, "glMinmaxEXT", 3, _glMinmaxEXT_args};

static const char * _glResetHistogramEXT_args[1] = {"target"};
static const trace::FunctionSig _glResetHistogramEXT_sig = {2113, "glResetHistogramEXT", 1, _glResetHistogramEXT_args};

static const char * _glResetMinmaxEXT_args[1] = {"target"};
static const trace::FunctionSig _glResetMinmaxEXT_sig = {2114, "glResetMinmaxEXT", 1, _glResetMinmaxEXT_args};

static const char * _glIndexFuncEXT_args[2] = {"func", "ref"};
static const trace::FunctionSig _glIndexFuncEXT_sig = {2115, "glIndexFuncEXT", 2, _glIndexFuncEXT_args};

static const char * _glIndexMaterialEXT_args[2] = {"face", "mode"};
static const trace::FunctionSig _glIndexMaterialEXT_sig = {2116, "glIndexMaterialEXT", 2, _glIndexMaterialEXT_args};

static const char * _glVertexAttribDivisorEXT_args[2] = {"index", "divisor"};
static const trace::FunctionSig _glVertexAttribDivisorEXT_sig = {2117, "glVertexAttribDivisorEXT", 2, _glVertexAttribDivisorEXT_args};

static const char * _glApplyTextureEXT_args[1] = {"mode"};
static const trace::FunctionSig _glApplyTextureEXT_sig = {2118, "glApplyTextureEXT", 1, _glApplyTextureEXT_args};

static const char * _glTextureLightEXT_args[1] = {"pname"};
static const trace::FunctionSig _glTextureLightEXT_sig = {2119, "glTextureLightEXT", 1, _glTextureLightEXT_args};

static const char * _glTextureMaterialEXT_args[2] = {"face", "mode"};
static const trace::FunctionSig _glTextureMaterialEXT_sig = {2120, "glTextureMaterialEXT", 2, _glTextureMaterialEXT_args};

static const char * _glMapBufferRangeEXT_args[4] = {"target", "offset", "length", "access"};
static const trace::FunctionSig _glMapBufferRangeEXT_sig = {2121, "glMapBufferRangeEXT", 4, _glMapBufferRangeEXT_args};

static const char * _glFlushMappedBufferRangeEXT_args[3] = {"target", "offset", "length"};
static const trace::FunctionSig _glFlushMappedBufferRangeEXT_sig = {2122, "glFlushMappedBufferRangeEXT", 3, _glFlushMappedBufferRangeEXT_args};

static const char * _glDrawMeshTasksEXT_args[3] = {"num_groups_x", "num_groups_y", "num_groups_z"};
static const trace::FunctionSig _glDrawMeshTasksEXT_sig = {2123, "glDrawMeshTasksEXT", 3, _glDrawMeshTasksEXT_args};

static const char * _glDrawMeshTasksIndirectEXT_args[1] = {"indirect"};
static const trace::FunctionSig _glDrawMeshTasksIndirectEXT_sig = {2124, "glDrawMeshTasksIndirectEXT", 1, _glDrawMeshTasksIndirectEXT_args};

static const char * _glMultiDrawMeshTasksIndirectEXT_args[3] = {"indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawMeshTasksIndirectEXT_sig = {2125, "glMultiDrawMeshTasksIndirectEXT", 3, _glMultiDrawMeshTasksIndirectEXT_args};

static const char * _glMultiDrawMeshTasksIndirectCountEXT_args[4] = {"indirect", "drawcount", "maxdrawcount", "stride"};
static const trace::FunctionSig _glMultiDrawMeshTasksIndirectCountEXT_sig = {2126, "glMultiDrawMeshTasksIndirectCountEXT", 4, _glMultiDrawMeshTasksIndirectCountEXT_args};

static const char * _glMultiDrawArraysEXT_args[4] = {"mode", "first", "count", "drawcount"};
static const trace::FunctionSig _glMultiDrawArraysEXT_sig = {2127, "glMultiDrawArraysEXT", 4, _glMultiDrawArraysEXT_args};

static const char * _glMultiDrawElementsEXT_args[5] = {"mode", "count", "type", "indices", "drawcount"};
static const trace::FunctionSig _glMultiDrawElementsEXT_sig = {2128, "glMultiDrawElementsEXT", 5, _glMultiDrawElementsEXT_args};

static const char * _glMultiDrawArraysIndirectEXT_args[4] = {"mode", "indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawArraysIndirectEXT_sig = {2129, "glMultiDrawArraysIndirectEXT", 4, _glMultiDrawArraysIndirectEXT_args};

static const char * _glMultiDrawElementsIndirectEXT_args[5] = {"mode", "type", "indirect", "drawcount", "stride"};
static const trace::FunctionSig _glMultiDrawElementsIndirectEXT_sig = {2130, "glMultiDrawElementsIndirectEXT", 5, _glMultiDrawElementsIndirectEXT_args};

static const char * _glSampleMaskEXT_args[2] = {"value", "invert"};
static const trace::FunctionSig _glSampleMaskEXT_sig = {2131, "glSampleMaskEXT", 2, _glSampleMaskEXT_args};

static const char * _glSamplePatternEXT_args[1] = {"pattern"};
static const trace::FunctionSig _glSamplePatternEXT_sig = {2132, "glSamplePatternEXT", 1, _glSamplePatternEXT_args};

static const char * _glFramebufferTexture2DMultisampleEXT_args[6] = {"target", "attachment", "textarget", "texture", "level", "samples"};
static const trace::FunctionSig _glFramebufferTexture2DMultisampleEXT_sig = {2133, "glFramebufferTexture2DMultisampleEXT", 6, _glFramebufferTexture2DMultisampleEXT_args};

static const char * _glReadBufferIndexedEXT_args[2] = {"src", "index"};
static const trace::FunctionSig _glReadBufferIndexedEXT_sig = {2134, "glReadBufferIndexedEXT", 2, _glReadBufferIndexedEXT_args};

static const char * _glDrawBuffersIndexedEXT_args[3] = {"n", "location", "indices"};
static const trace::FunctionSig _glDrawBuffersIndexedEXT_sig = {2135, "glDrawBuffersIndexedEXT", 3, _glDrawBuffersIndexedEXT_args};

static const char * _glGetIntegeri_vEXT_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetIntegeri_vEXT_sig = {2136, "glGetIntegeri_vEXT", 3, _glGetIntegeri_vEXT_args};

static const char * _glColorTableEXT_args[6] = {"target", "internalformat", "width", "format", "type", "table"};
static const trace::FunctionSig _glColorTableEXT_sig = {2137, "glColorTableEXT", 6, _glColorTableEXT_args};

static const char * _glGetColorTableEXT_args[4] = {"target", "format", "type", "data"};
static const trace::FunctionSig _glGetColorTableEXT_sig = {2138, "glGetColorTableEXT", 4, _glGetColorTableEXT_args};

static const char * _glGetColorTableParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetColorTableParameterivEXT_sig = {2139, "glGetColorTableParameterivEXT", 3, _glGetColorTableParameterivEXT_args};

static const char * _glGetColorTableParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetColorTableParameterfvEXT_sig = {2140, "glGetColorTableParameterfvEXT", 3, _glGetColorTableParameterfvEXT_args};

static const char * _glPixelTransformParameteriEXT_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glPixelTransformParameteriEXT_sig = {2141, "glPixelTransformParameteriEXT", 3, _glPixelTransformParameteriEXT_args};

static const char * _glPixelTransformParameterfEXT_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glPixelTransformParameterfEXT_sig = {2142, "glPixelTransformParameterfEXT", 3, _glPixelTransformParameterfEXT_args};

static const char * _glPixelTransformParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glPixelTransformParameterivEXT_sig = {2143, "glPixelTransformParameterivEXT", 3, _glPixelTransformParameterivEXT_args};

static const char * _glPixelTransformParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glPixelTransformParameterfvEXT_sig = {2144, "glPixelTransformParameterfvEXT", 3, _glPixelTransformParameterfvEXT_args};

static const char * _glGetPixelTransformParameterivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetPixelTransformParameterivEXT_sig = {2145, "glGetPixelTransformParameterivEXT", 3, _glGetPixelTransformParameterivEXT_args};

static const char * _glGetPixelTransformParameterfvEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetPixelTransformParameterfvEXT_sig = {2146, "glGetPixelTransformParameterfvEXT", 3, _glGetPixelTransformParameterfvEXT_args};

static const char * _glPointParameterfEXT_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameterfEXT_sig = {2147, "glPointParameterfEXT", 2, _glPointParameterfEXT_args};

static const char * _glPointParameterfvEXT_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameterfvEXT_sig = {2148, "glPointParameterfvEXT", 2, _glPointParameterfvEXT_args};

static const char * _glPolygonOffsetEXT_args[2] = {"factor", "bias"};
static const trace::FunctionSig _glPolygonOffsetEXT_sig = {2149, "glPolygonOffsetEXT", 2, _glPolygonOffsetEXT_args};

static const char * _glPolygonOffsetClampEXT_args[3] = {"factor", "units", "clamp"};
static const trace::FunctionSig _glPolygonOffsetClampEXT_sig = {2150, "glPolygonOffsetClampEXT", 3, _glPolygonOffsetClampEXT_args};

static const char * _glPrimitiveBoundingBoxEXT_args[8] = {"minX", "minY", "minZ", "minW", "maxX", "maxY", "maxZ", "maxW"};
static const trace::FunctionSig _glPrimitiveBoundingBoxEXT_sig = {2151, "glPrimitiveBoundingBoxEXT", 8, _glPrimitiveBoundingBoxEXT_args};

static const char * _glProvokingVertexEXT_args[1] = {"mode"};
static const trace::FunctionSig _glProvokingVertexEXT_sig = {2152, "glProvokingVertexEXT", 1, _glProvokingVertexEXT_args};

static const char * _glRasterSamplesEXT_args[2] = {"samples", "fixedsamplelocations"};
static const trace::FunctionSig _glRasterSamplesEXT_sig = {2153, "glRasterSamplesEXT", 2, _glRasterSamplesEXT_args};

static const char ** _glGetGraphicsResetStatusEXT_args = NULL;
static const trace::FunctionSig _glGetGraphicsResetStatusEXT_sig = {2154, "glGetGraphicsResetStatusEXT", 0, _glGetGraphicsResetStatusEXT_args};

static const char * _glReadnPixelsEXT_args[8] = {"x", "y", "width", "height", "format", "type", "bufSize", "data"};
static const trace::FunctionSig _glReadnPixelsEXT_sig = {2155, "glReadnPixelsEXT", 8, _glReadnPixelsEXT_args};

static const char * _glGetnUniformfvEXT_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformfvEXT_sig = {2156, "glGetnUniformfvEXT", 4, _glGetnUniformfvEXT_args};

static const char * _glGetnUniformivEXT_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformivEXT_sig = {2157, "glGetnUniformivEXT", 4, _glGetnUniformivEXT_args};

static const char * _glSecondaryColor3bEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3bEXT_sig = {2158, "glSecondaryColor3bEXT", 3, _glSecondaryColor3bEXT_args};

static const char * _glSecondaryColor3bvEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3bvEXT_sig = {2159, "glSecondaryColor3bvEXT", 1, _glSecondaryColor3bvEXT_args};

static const char * _glSecondaryColor3dEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3dEXT_sig = {2160, "glSecondaryColor3dEXT", 3, _glSecondaryColor3dEXT_args};

static const char * _glSecondaryColor3dvEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3dvEXT_sig = {2161, "glSecondaryColor3dvEXT", 1, _glSecondaryColor3dvEXT_args};

static const char * _glSecondaryColor3fEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3fEXT_sig = {2162, "glSecondaryColor3fEXT", 3, _glSecondaryColor3fEXT_args};

static const char * _glSecondaryColor3fvEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3fvEXT_sig = {2163, "glSecondaryColor3fvEXT", 1, _glSecondaryColor3fvEXT_args};

static const char * _glSecondaryColor3iEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3iEXT_sig = {2164, "glSecondaryColor3iEXT", 3, _glSecondaryColor3iEXT_args};

static const char * _glSecondaryColor3ivEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3ivEXT_sig = {2165, "glSecondaryColor3ivEXT", 1, _glSecondaryColor3ivEXT_args};

static const char * _glSecondaryColor3sEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3sEXT_sig = {2166, "glSecondaryColor3sEXT", 3, _glSecondaryColor3sEXT_args};

static const char * _glSecondaryColor3svEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3svEXT_sig = {2167, "glSecondaryColor3svEXT", 1, _glSecondaryColor3svEXT_args};

static const char * _glSecondaryColor3ubEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3ubEXT_sig = {2168, "glSecondaryColor3ubEXT", 3, _glSecondaryColor3ubEXT_args};

static const char * _glSecondaryColor3ubvEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3ubvEXT_sig = {2169, "glSecondaryColor3ubvEXT", 1, _glSecondaryColor3ubvEXT_args};

static const char * _glSecondaryColor3uiEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3uiEXT_sig = {2170, "glSecondaryColor3uiEXT", 3, _glSecondaryColor3uiEXT_args};

static const char * _glSecondaryColor3uivEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3uivEXT_sig = {2171, "glSecondaryColor3uivEXT", 1, _glSecondaryColor3uivEXT_args};

static const char * _glSecondaryColor3usEXT_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3usEXT_sig = {2172, "glSecondaryColor3usEXT", 3, _glSecondaryColor3usEXT_args};

static const char * _glSecondaryColor3usvEXT_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3usvEXT_sig = {2173, "glSecondaryColor3usvEXT", 1, _glSecondaryColor3usvEXT_args};

static const char * _glSecondaryColorPointerEXT_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glSecondaryColorPointerEXT_sig = {2174, "glSecondaryColorPointerEXT", 4, _glSecondaryColorPointerEXT_args};

static const char * _glUseShaderProgramEXT_args[2] = {"type", "program"};
static const trace::FunctionSig _glUseShaderProgramEXT_sig = {2175, "glUseShaderProgramEXT", 2, _glUseShaderProgramEXT_args};

static const char * _glActiveProgramEXT_args[1] = {"program"};
static const trace::FunctionSig _glActiveProgramEXT_sig = {2176, "glActiveProgramEXT", 1, _glActiveProgramEXT_args};

static const char * _glCreateShaderProgramEXT_args[2] = {"type", "string"};
static const trace::FunctionSig _glCreateShaderProgramEXT_sig = {2177, "glCreateShaderProgramEXT", 2, _glCreateShaderProgramEXT_args};

static const char * _glActiveShaderProgramEXT_args[2] = {"pipeline", "program"};
static const trace::FunctionSig _glActiveShaderProgramEXT_sig = {2178, "glActiveShaderProgramEXT", 2, _glActiveShaderProgramEXT_args};

static const char * _glBindProgramPipelineEXT_args[1] = {"pipeline"};
static const trace::FunctionSig _glBindProgramPipelineEXT_sig = {2179, "glBindProgramPipelineEXT", 1, _glBindProgramPipelineEXT_args};

static const char * _glCreateShaderProgramvEXT_args[3] = {"type", "count", "strings"};
static const trace::FunctionSig _glCreateShaderProgramvEXT_sig = {2180, "glCreateShaderProgramvEXT", 3, _glCreateShaderProgramvEXT_args};

static const char * _glDeleteProgramPipelinesEXT_args[2] = {"n", "pipelines"};
static const trace::FunctionSig _glDeleteProgramPipelinesEXT_sig = {2181, "glDeleteProgramPipelinesEXT", 2, _glDeleteProgramPipelinesEXT_args};

static const char * _glGenProgramPipelinesEXT_args[2] = {"n", "pipelines"};
static const trace::FunctionSig _glGenProgramPipelinesEXT_sig = {2182, "glGenProgramPipelinesEXT", 2, _glGenProgramPipelinesEXT_args};

static const char * _glGetProgramPipelineInfoLogEXT_args[4] = {"pipeline", "bufSize", "length", "infoLog"};
static const trace::FunctionSig _glGetProgramPipelineInfoLogEXT_sig = {2183, "glGetProgramPipelineInfoLogEXT", 4, _glGetProgramPipelineInfoLogEXT_args};

static const char * _glGetProgramPipelineivEXT_args[3] = {"pipeline", "pname", "params"};
static const trace::FunctionSig _glGetProgramPipelineivEXT_sig = {2184, "glGetProgramPipelineivEXT", 3, _glGetProgramPipelineivEXT_args};

static const char * _glIsProgramPipelineEXT_args[1] = {"pipeline"};
static const trace::FunctionSig _glIsProgramPipelineEXT_sig = {2185, "glIsProgramPipelineEXT", 1, _glIsProgramPipelineEXT_args};

static const char * _glUseProgramStagesEXT_args[3] = {"pipeline", "stages", "program"};
static const trace::FunctionSig _glUseProgramStagesEXT_sig = {2186, "glUseProgramStagesEXT", 3, _glUseProgramStagesEXT_args};

static const char * _glValidateProgramPipelineEXT_args[1] = {"pipeline"};
static const trace::FunctionSig _glValidateProgramPipelineEXT_sig = {2187, "glValidateProgramPipelineEXT", 1, _glValidateProgramPipelineEXT_args};

static const char * _glBindImageTextureEXT_args[7] = {"index", "texture", "level", "layered", "layer", "access", "format"};
static const trace::FunctionSig _glBindImageTextureEXT_sig = {2188, "glBindImageTextureEXT", 7, _glBindImageTextureEXT_args};

static const char * _glMemoryBarrierEXT_args[1] = {"barriers"};
static const trace::FunctionSig _glMemoryBarrierEXT_sig = {2189, "glMemoryBarrierEXT", 1, _glMemoryBarrierEXT_args};

static const char * _glFramebufferPixelLocalStorageSizeEXT_args[2] = {"target", "size"};
static const trace::FunctionSig _glFramebufferPixelLocalStorageSizeEXT_sig = {2190, "glFramebufferPixelLocalStorageSizeEXT", 2, _glFramebufferPixelLocalStorageSizeEXT_args};

static const char * _glGetFramebufferPixelLocalStorageSizeEXT_args[1] = {"target"};
static const trace::FunctionSig _glGetFramebufferPixelLocalStorageSizeEXT_sig = {2191, "glGetFramebufferPixelLocalStorageSizeEXT", 1, _glGetFramebufferPixelLocalStorageSizeEXT_args};

static const char * _glClearPixelLocalStorageuiEXT_args[3] = {"offset", "n", "values"};
static const trace::FunctionSig _glClearPixelLocalStorageuiEXT_sig = {2192, "glClearPixelLocalStorageuiEXT", 3, _glClearPixelLocalStorageuiEXT_args};

static const char * _glTexPageCommitmentEXT_args[9] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "commit"};
static const trace::FunctionSig _glTexPageCommitmentEXT_sig = {2193, "glTexPageCommitmentEXT", 9, _glTexPageCommitmentEXT_args};

static const char * _glStencilClearTagEXT_args[2] = {"stencilTagBits", "stencilClearTag"};
static const trace::FunctionSig _glStencilClearTagEXT_sig = {2194, "glStencilClearTagEXT", 2, _glStencilClearTagEXT_args};

static const char * _glActiveStencilFaceEXT_args[1] = {"face"};
static const trace::FunctionSig _glActiveStencilFaceEXT_sig = {2195, "glActiveStencilFaceEXT", 1, _glActiveStencilFaceEXT_args};

static const char * _glTexSubImage1DEXT_args[7] = {"target", "level", "xoffset", "width", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage1DEXT_sig = {2196, "glTexSubImage1DEXT", 7, _glTexSubImage1DEXT_args};

static const char * _glTexSubImage2DEXT_args[9] = {"target", "level", "xoffset", "yoffset", "width", "height", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage2DEXT_sig = {2197, "glTexSubImage2DEXT", 9, _glTexSubImage2DEXT_args};

static const char * _glPatchParameteriEXT_args[2] = {"pname", "value"};
static const trace::FunctionSig _glPatchParameteriEXT_sig = {2198, "glPatchParameteriEXT", 2, _glPatchParameteriEXT_args};

static const char * _glTexImage3DEXT_args[10] = {"target", "level", "internalformat", "width", "height", "depth", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTexImage3DEXT_sig = {2199, "glTexImage3DEXT", 10, _glTexImage3DEXT_args};

static const char * _glTexSubImage3DEXT_args[11] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage3DEXT_sig = {2200, "glTexSubImage3DEXT", 11, _glTexSubImage3DEXT_args};

static const char * _glFramebufferTextureLayerEXT_args[5] = {"target", "attachment", "texture", "level", "layer"};
static const trace::FunctionSig _glFramebufferTextureLayerEXT_sig = {2201, "glFramebufferTextureLayerEXT", 5, _glFramebufferTextureLayerEXT_args};

static const char * _glTexParameterIivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameterIivEXT_sig = {2202, "glTexParameterIivEXT", 3, _glTexParameterIivEXT_args};

static const char * _glTexParameterIuivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glTexParameterIuivEXT_sig = {2203, "glTexParameterIuivEXT", 3, _glTexParameterIuivEXT_args};

static const char * _glGetTexParameterIivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterIivEXT_sig = {2204, "glGetTexParameterIivEXT", 3, _glGetTexParameterIivEXT_args};

static const char * _glGetTexParameterIuivEXT_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetTexParameterIuivEXT_sig = {2205, "glGetTexParameterIuivEXT", 3, _glGetTexParameterIuivEXT_args};

static const char * _glSamplerParameterIivEXT_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameterIivEXT_sig = {2206, "glSamplerParameterIivEXT", 3, _glSamplerParameterIivEXT_args};

static const char * _glSamplerParameterIuivEXT_args[3] = {"sampler", "pname", "param"};
static const trace::FunctionSig _glSamplerParameterIuivEXT_sig = {2207, "glSamplerParameterIuivEXT", 3, _glSamplerParameterIuivEXT_args};

static const char * _glGetSamplerParameterIivEXT_args[3] = {"sampler", "pname", "params"};
static const trace::FunctionSig _glGetSamplerParameterIivEXT_sig = {2208, "glGetSamplerParameterIivEXT", 3, _glGetSamplerParameterIivEXT_args};

static const char * _glGetSamplerParameterIuivEXT_args[3] = {"sampler", "pname", "params"};
static const trace::FunctionSig _glGetSamplerParameterIuivEXT_sig = {2209, "glGetSamplerParameterIuivEXT", 3, _glGetSamplerParameterIuivEXT_args};

static const char * _glTexBufferEXT_args[3] = {"target", "internalformat", "buffer"};
static const trace::FunctionSig _glTexBufferEXT_sig = {2210, "glTexBufferEXT", 3, _glTexBufferEXT_args};

static const char * _glTexBufferRangeEXT_args[5] = {"target", "internalformat", "buffer", "offset", "size"};
static const trace::FunctionSig _glTexBufferRangeEXT_sig = {2211, "glTexBufferRangeEXT", 5, _glTexBufferRangeEXT_args};

static const char * _glClearColorIiEXT_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glClearColorIiEXT_sig = {2212, "glClearColorIiEXT", 4, _glClearColorIiEXT_args};

static const char * _glClearColorIuiEXT_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glClearColorIuiEXT_sig = {2213, "glClearColorIuiEXT", 4, _glClearColorIuiEXT_args};

static const char * _glAreTexturesResidentEXT_args[3] = {"n", "textures", "residences"};
static const trace::FunctionSig _glAreTexturesResidentEXT_sig = {2214, "glAreTexturesResidentEXT", 3, _glAreTexturesResidentEXT_args};

static const char * _glBindTextureEXT_args[2] = {"target", "texture"};
static const trace::FunctionSig _glBindTextureEXT_sig = {2215, "glBindTextureEXT", 2, _glBindTextureEXT_args};

static const char * _glDeleteTexturesEXT_args[2] = {"n", "textures"};
static const trace::FunctionSig _glDeleteTexturesEXT_sig = {2216, "glDeleteTexturesEXT", 2, _glDeleteTexturesEXT_args};

static const char * _glGenTexturesEXT_args[2] = {"n", "textures"};
static const trace::FunctionSig _glGenTexturesEXT_sig = {2217, "glGenTexturesEXT", 2, _glGenTexturesEXT_args};

static const char * _glIsTextureEXT_args[1] = {"texture"};
static const trace::FunctionSig _glIsTextureEXT_sig = {2218, "glIsTextureEXT", 1, _glIsTextureEXT_args};

static const char * _glPrioritizeTexturesEXT_args[3] = {"n", "textures", "priorities"};
static const trace::FunctionSig _glPrioritizeTexturesEXT_sig = {2219, "glPrioritizeTexturesEXT", 3, _glPrioritizeTexturesEXT_args};

static const char * _glTextureNormalEXT_args[1] = {"mode"};
static const trace::FunctionSig _glTextureNormalEXT_sig = {2220, "glTextureNormalEXT", 1, _glTextureNormalEXT_args};

static const char * _glTexStorage1DEXT_args[4] = {"target", "levels", "internalformat", "width"};
static const trace::FunctionSig _glTexStorage1DEXT_sig = {2221, "glTexStorage1DEXT", 4, _glTexStorage1DEXT_args};

static const char * _glTexStorage2DEXT_args[5] = {"target", "levels", "internalformat", "width", "height"};
static const trace::FunctionSig _glTexStorage2DEXT_sig = {2222, "glTexStorage2DEXT", 5, _glTexStorage2DEXT_args};

static const char * _glTexStorage3DEXT_args[6] = {"target", "levels", "internalformat", "width", "height", "depth"};
static const trace::FunctionSig _glTexStorage3DEXT_sig = {2223, "glTexStorage3DEXT", 6, _glTexStorage3DEXT_args};

static const char * _glTextureViewEXT_args[8] = {"texture", "target", "origtexture", "internalformat", "minlevel", "numlevels", "minlayer", "numlayers"};
static const trace::FunctionSig _glTextureViewEXT_sig = {2224, "glTextureViewEXT", 8, _glTextureViewEXT_args};

static const char * _glBeginTransformFeedbackEXT_args[1] = {"primitiveMode"};
static const trace::FunctionSig _glBeginTransformFeedbackEXT_sig = {2225, "glBeginTransformFeedbackEXT", 1, _glBeginTransformFeedbackEXT_args};

static const char ** _glEndTransformFeedbackEXT_args = NULL;
static const trace::FunctionSig _glEndTransformFeedbackEXT_sig = {2226, "glEndTransformFeedbackEXT", 0, _glEndTransformFeedbackEXT_args};

static const char * _glBindBufferRangeEXT_args[5] = {"target", "index", "buffer", "offset", "size"};
static const trace::FunctionSig _glBindBufferRangeEXT_sig = {2227, "glBindBufferRangeEXT", 5, _glBindBufferRangeEXT_args};

static const char * _glBindBufferOffsetEXT_args[4] = {"target", "index", "buffer", "offset"};
static const trace::FunctionSig _glBindBufferOffsetEXT_sig = {2228, "glBindBufferOffsetEXT", 4, _glBindBufferOffsetEXT_args};

static const char * _glBindBufferBaseEXT_args[3] = {"target", "index", "buffer"};
static const trace::FunctionSig _glBindBufferBaseEXT_sig = {2229, "glBindBufferBaseEXT", 3, _glBindBufferBaseEXT_args};

static const char * _glTransformFeedbackVaryingsEXT_args[4] = {"program", "count", "varyings", "bufferMode"};
static const trace::FunctionSig _glTransformFeedbackVaryingsEXT_sig = {2230, "glTransformFeedbackVaryingsEXT", 4, _glTransformFeedbackVaryingsEXT_args};

static const char * _glGetTransformFeedbackVaryingEXT_args[7] = {"program", "index", "bufSize", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetTransformFeedbackVaryingEXT_sig = {2231, "glGetTransformFeedbackVaryingEXT", 7, _glGetTransformFeedbackVaryingEXT_args};

static const char * _glArrayElementEXT_args[1] = {"i"};
static const trace::FunctionSig _glArrayElementEXT_sig = {2232, "glArrayElementEXT", 1, _glArrayElementEXT_args};

static const char * _glColorPointerEXT_args[5] = {"size", "type", "stride", "count", "pointer"};
static const trace::FunctionSig _glColorPointerEXT_sig = {2233, "glColorPointerEXT", 5, _glColorPointerEXT_args};

static const char * _glDrawArraysEXT_args[3] = {"mode", "first", "count"};
static const trace::FunctionSig _glDrawArraysEXT_sig = {2234, "glDrawArraysEXT", 3, _glDrawArraysEXT_args};

static const char * _glEdgeFlagPointerEXT_args[3] = {"stride", "count", "pointer"};
static const trace::FunctionSig _glEdgeFlagPointerEXT_sig = {2235, "glEdgeFlagPointerEXT", 3, _glEdgeFlagPointerEXT_args};

static const char * _glGetPointervEXT_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetPointervEXT_sig = {2236, "glGetPointervEXT", 2, _glGetPointervEXT_args};

static const char * _glIndexPointerEXT_args[4] = {"type", "stride", "count", "pointer"};
static const trace::FunctionSig _glIndexPointerEXT_sig = {2237, "glIndexPointerEXT", 4, _glIndexPointerEXT_args};

static const char * _glNormalPointerEXT_args[4] = {"type", "stride", "count", "pointer"};
static const trace::FunctionSig _glNormalPointerEXT_sig = {2238, "glNormalPointerEXT", 4, _glNormalPointerEXT_args};

static const char * _glTexCoordPointerEXT_args[5] = {"size", "type", "stride", "count", "pointer"};
static const trace::FunctionSig _glTexCoordPointerEXT_sig = {2239, "glTexCoordPointerEXT", 5, _glTexCoordPointerEXT_args};

static const char * _glVertexPointerEXT_args[5] = {"size", "type", "stride", "count", "pointer"};
static const trace::FunctionSig _glVertexPointerEXT_sig = {2240, "glVertexPointerEXT", 5, _glVertexPointerEXT_args};

static const char * _glVertexAttribL1dEXT_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribL1dEXT_sig = {2241, "glVertexAttribL1dEXT", 2, _glVertexAttribL1dEXT_args};

static const char * _glVertexAttribL2dEXT_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribL2dEXT_sig = {2242, "glVertexAttribL2dEXT", 3, _glVertexAttribL2dEXT_args};

static const char * _glVertexAttribL3dEXT_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribL3dEXT_sig = {2243, "glVertexAttribL3dEXT", 4, _glVertexAttribL3dEXT_args};

static const char * _glVertexAttribL4dEXT_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribL4dEXT_sig = {2244, "glVertexAttribL4dEXT", 5, _glVertexAttribL4dEXT_args};

static const char * _glVertexAttribL1dvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL1dvEXT_sig = {2245, "glVertexAttribL1dvEXT", 2, _glVertexAttribL1dvEXT_args};

static const char * _glVertexAttribL2dvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL2dvEXT_sig = {2246, "glVertexAttribL2dvEXT", 2, _glVertexAttribL2dvEXT_args};

static const char * _glVertexAttribL3dvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL3dvEXT_sig = {2247, "glVertexAttribL3dvEXT", 2, _glVertexAttribL3dvEXT_args};

static const char * _glVertexAttribL4dvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL4dvEXT_sig = {2248, "glVertexAttribL4dvEXT", 2, _glVertexAttribL4dvEXT_args};

static const char * _glVertexAttribLPointerEXT_args[5] = {"index", "size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribLPointerEXT_sig = {2249, "glVertexAttribLPointerEXT", 5, _glVertexAttribLPointerEXT_args};

static const char * _glGetVertexAttribLdvEXT_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribLdvEXT_sig = {2250, "glGetVertexAttribLdvEXT", 3, _glGetVertexAttribLdvEXT_args};

static const char ** _glBeginVertexShaderEXT_args = NULL;
static const trace::FunctionSig _glBeginVertexShaderEXT_sig = {2251, "glBeginVertexShaderEXT", 0, _glBeginVertexShaderEXT_args};

static const char ** _glEndVertexShaderEXT_args = NULL;
static const trace::FunctionSig _glEndVertexShaderEXT_sig = {2252, "glEndVertexShaderEXT", 0, _glEndVertexShaderEXT_args};

static const char * _glBindVertexShaderEXT_args[1] = {"id"};
static const trace::FunctionSig _glBindVertexShaderEXT_sig = {2253, "glBindVertexShaderEXT", 1, _glBindVertexShaderEXT_args};

static const char * _glGenVertexShadersEXT_args[1] = {"range"};
static const trace::FunctionSig _glGenVertexShadersEXT_sig = {2254, "glGenVertexShadersEXT", 1, _glGenVertexShadersEXT_args};

static const char * _glDeleteVertexShaderEXT_args[1] = {"id"};
static const trace::FunctionSig _glDeleteVertexShaderEXT_sig = {2255, "glDeleteVertexShaderEXT", 1, _glDeleteVertexShaderEXT_args};

static const char * _glShaderOp1EXT_args[3] = {"op", "res", "arg1"};
static const trace::FunctionSig _glShaderOp1EXT_sig = {2256, "glShaderOp1EXT", 3, _glShaderOp1EXT_args};

static const char * _glShaderOp2EXT_args[4] = {"op", "res", "arg1", "arg2"};
static const trace::FunctionSig _glShaderOp2EXT_sig = {2257, "glShaderOp2EXT", 4, _glShaderOp2EXT_args};

static const char * _glShaderOp3EXT_args[5] = {"op", "res", "arg1", "arg2", "arg3"};
static const trace::FunctionSig _glShaderOp3EXT_sig = {2258, "glShaderOp3EXT", 5, _glShaderOp3EXT_args};

static const char * _glSwizzleEXT_args[6] = {"res", "in", "outX", "outY", "outZ", "outW"};
static const trace::FunctionSig _glSwizzleEXT_sig = {2259, "glSwizzleEXT", 6, _glSwizzleEXT_args};

static const char * _glWriteMaskEXT_args[6] = {"res", "in", "outX", "outY", "outZ", "outW"};
static const trace::FunctionSig _glWriteMaskEXT_sig = {2260, "glWriteMaskEXT", 6, _glWriteMaskEXT_args};

static const char * _glInsertComponentEXT_args[3] = {"res", "src", "num"};
static const trace::FunctionSig _glInsertComponentEXT_sig = {2261, "glInsertComponentEXT", 3, _glInsertComponentEXT_args};

static const char * _glExtractComponentEXT_args[3] = {"res", "src", "num"};
static const trace::FunctionSig _glExtractComponentEXT_sig = {2262, "glExtractComponentEXT", 3, _glExtractComponentEXT_args};

static const char * _glGenSymbolsEXT_args[4] = {"datatype", "storagetype", "range", "components"};
static const trace::FunctionSig _glGenSymbolsEXT_sig = {2263, "glGenSymbolsEXT", 4, _glGenSymbolsEXT_args};

static const char * _glSetInvariantEXT_args[3] = {"id", "type", "addr"};
static const trace::FunctionSig _glSetInvariantEXT_sig = {2264, "glSetInvariantEXT", 3, _glSetInvariantEXT_args};

static const char * _glSetLocalConstantEXT_args[3] = {"id", "type", "addr"};
static const trace::FunctionSig _glSetLocalConstantEXT_sig = {2265, "glSetLocalConstantEXT", 3, _glSetLocalConstantEXT_args};

static const char * _glVariantbvEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantbvEXT_sig = {2266, "glVariantbvEXT", 2, _glVariantbvEXT_args};

static const char * _glVariantsvEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantsvEXT_sig = {2267, "glVariantsvEXT", 2, _glVariantsvEXT_args};

static const char * _glVariantivEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantivEXT_sig = {2268, "glVariantivEXT", 2, _glVariantivEXT_args};

static const char * _glVariantfvEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantfvEXT_sig = {2269, "glVariantfvEXT", 2, _glVariantfvEXT_args};

static const char * _glVariantdvEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantdvEXT_sig = {2270, "glVariantdvEXT", 2, _glVariantdvEXT_args};

static const char * _glVariantubvEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantubvEXT_sig = {2271, "glVariantubvEXT", 2, _glVariantubvEXT_args};

static const char * _glVariantusvEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantusvEXT_sig = {2272, "glVariantusvEXT", 2, _glVariantusvEXT_args};

static const char * _glVariantuivEXT_args[2] = {"id", "addr"};
static const trace::FunctionSig _glVariantuivEXT_sig = {2273, "glVariantuivEXT", 2, _glVariantuivEXT_args};

static const char * _glVariantPointerEXT_args[4] = {"id", "type", "stride", "addr"};
static const trace::FunctionSig _glVariantPointerEXT_sig = {2274, "glVariantPointerEXT", 4, _glVariantPointerEXT_args};

static const char * _glEnableVariantClientStateEXT_args[1] = {"id"};
static const trace::FunctionSig _glEnableVariantClientStateEXT_sig = {2275, "glEnableVariantClientStateEXT", 1, _glEnableVariantClientStateEXT_args};

static const char * _glDisableVariantClientStateEXT_args[1] = {"id"};
static const trace::FunctionSig _glDisableVariantClientStateEXT_sig = {2276, "glDisableVariantClientStateEXT", 1, _glDisableVariantClientStateEXT_args};

static const char * _glBindLightParameterEXT_args[2] = {"light", "value"};
static const trace::FunctionSig _glBindLightParameterEXT_sig = {2277, "glBindLightParameterEXT", 2, _glBindLightParameterEXT_args};

static const char * _glBindMaterialParameterEXT_args[2] = {"face", "value"};
static const trace::FunctionSig _glBindMaterialParameterEXT_sig = {2278, "glBindMaterialParameterEXT", 2, _glBindMaterialParameterEXT_args};

static const char * _glBindTexGenParameterEXT_args[3] = {"unit", "coord", "value"};
static const trace::FunctionSig _glBindTexGenParameterEXT_sig = {2279, "glBindTexGenParameterEXT", 3, _glBindTexGenParameterEXT_args};

static const char * _glBindTextureUnitParameterEXT_args[2] = {"unit", "value"};
static const trace::FunctionSig _glBindTextureUnitParameterEXT_sig = {2280, "glBindTextureUnitParameterEXT", 2, _glBindTextureUnitParameterEXT_args};

static const char * _glBindParameterEXT_args[1] = {"value"};
static const trace::FunctionSig _glBindParameterEXT_sig = {2281, "glBindParameterEXT", 1, _glBindParameterEXT_args};

static const char * _glIsVariantEnabledEXT_args[2] = {"id", "cap"};
static const trace::FunctionSig _glIsVariantEnabledEXT_sig = {2282, "glIsVariantEnabledEXT", 2, _glIsVariantEnabledEXT_args};

static const char * _glGetVariantBooleanvEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetVariantBooleanvEXT_sig = {2283, "glGetVariantBooleanvEXT", 3, _glGetVariantBooleanvEXT_args};

static const char * _glGetVariantIntegervEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetVariantIntegervEXT_sig = {2284, "glGetVariantIntegervEXT", 3, _glGetVariantIntegervEXT_args};

static const char * _glGetVariantFloatvEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetVariantFloatvEXT_sig = {2285, "glGetVariantFloatvEXT", 3, _glGetVariantFloatvEXT_args};

static const char * _glGetVariantPointervEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetVariantPointervEXT_sig = {2286, "glGetVariantPointervEXT", 3, _glGetVariantPointervEXT_args};

static const char * _glGetInvariantBooleanvEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetInvariantBooleanvEXT_sig = {2287, "glGetInvariantBooleanvEXT", 3, _glGetInvariantBooleanvEXT_args};

static const char * _glGetInvariantIntegervEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetInvariantIntegervEXT_sig = {2288, "glGetInvariantIntegervEXT", 3, _glGetInvariantIntegervEXT_args};

static const char * _glGetInvariantFloatvEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetInvariantFloatvEXT_sig = {2289, "glGetInvariantFloatvEXT", 3, _glGetInvariantFloatvEXT_args};

static const char * _glGetLocalConstantBooleanvEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetLocalConstantBooleanvEXT_sig = {2290, "glGetLocalConstantBooleanvEXT", 3, _glGetLocalConstantBooleanvEXT_args};

static const char * _glGetLocalConstantIntegervEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetLocalConstantIntegervEXT_sig = {2291, "glGetLocalConstantIntegervEXT", 3, _glGetLocalConstantIntegervEXT_args};

static const char * _glGetLocalConstantFloatvEXT_args[3] = {"id", "value", "data"};
static const trace::FunctionSig _glGetLocalConstantFloatvEXT_sig = {2292, "glGetLocalConstantFloatvEXT", 3, _glGetLocalConstantFloatvEXT_args};

static const char * _glVertexWeightfEXT_args[1] = {"weight"};
static const trace::FunctionSig _glVertexWeightfEXT_sig = {2293, "glVertexWeightfEXT", 1, _glVertexWeightfEXT_args};

static const char * _glVertexWeightfvEXT_args[1] = {"weight"};
static const trace::FunctionSig _glVertexWeightfvEXT_sig = {2294, "glVertexWeightfvEXT", 1, _glVertexWeightfvEXT_args};

static const char * _glVertexWeightPointerEXT_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexWeightPointerEXT_sig = {2295, "glVertexWeightPointerEXT", 4, _glVertexWeightPointerEXT_args};

static const char * _glImportSyncEXT_args[3] = {"external_sync_type", "external_sync", "flags"};
static const trace::FunctionSig _glImportSyncEXT_sig = {2296, "glImportSyncEXT", 3, _glImportSyncEXT_args};

static const char ** _glFrameTerminatorGREMEDY_args = NULL;
static const trace::FunctionSig _glFrameTerminatorGREMEDY_sig = {2297, "glFrameTerminatorGREMEDY", 0, _glFrameTerminatorGREMEDY_args};

static const char * _glStringMarkerGREMEDY_args[2] = {"len", "string"};
static const trace::FunctionSig _glStringMarkerGREMEDY_sig = {2298, "glStringMarkerGREMEDY", 2, _glStringMarkerGREMEDY_args};

static const char * _glImageTransformParameteriHP_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glImageTransformParameteriHP_sig = {2299, "glImageTransformParameteriHP", 3, _glImageTransformParameteriHP_args};

static const char * _glImageTransformParameterfHP_args[3] = {"target", "pname", "param"};
static const trace::FunctionSig _glImageTransformParameterfHP_sig = {2300, "glImageTransformParameterfHP", 3, _glImageTransformParameterfHP_args};

static const char * _glImageTransformParameterivHP_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glImageTransformParameterivHP_sig = {2301, "glImageTransformParameterivHP", 3, _glImageTransformParameterivHP_args};

static const char * _glImageTransformParameterfvHP_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glImageTransformParameterfvHP_sig = {2302, "glImageTransformParameterfvHP", 3, _glImageTransformParameterfvHP_args};

static const char * _glGetImageTransformParameterivHP_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetImageTransformParameterivHP_sig = {2303, "glGetImageTransformParameterivHP", 3, _glGetImageTransformParameterivHP_args};

static const char * _glGetImageTransformParameterfvHP_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetImageTransformParameterfvHP_sig = {2304, "glGetImageTransformParameterfvHP", 3, _glGetImageTransformParameterfvHP_args};

static const char * _glMultiModeDrawArraysIBM_args[5] = {"mode", "first", "count", "drawcount", "modestride"};
static const trace::FunctionSig _glMultiModeDrawArraysIBM_sig = {2305, "glMultiModeDrawArraysIBM", 5, _glMultiModeDrawArraysIBM_args};

static const char * _glMultiModeDrawElementsIBM_args[6] = {"mode", "count", "type", "indices", "drawcount", "modestride"};
static const trace::FunctionSig _glMultiModeDrawElementsIBM_sig = {2306, "glMultiModeDrawElementsIBM", 6, _glMultiModeDrawElementsIBM_args};

static const char * _glColorPointerListIBM_args[5] = {"size", "type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glColorPointerListIBM_sig = {2307, "glColorPointerListIBM", 5, _glColorPointerListIBM_args};

static const char * _glSecondaryColorPointerListIBM_args[5] = {"size", "type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glSecondaryColorPointerListIBM_sig = {2308, "glSecondaryColorPointerListIBM", 5, _glSecondaryColorPointerListIBM_args};

static const char * _glEdgeFlagPointerListIBM_args[3] = {"stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glEdgeFlagPointerListIBM_sig = {2309, "glEdgeFlagPointerListIBM", 3, _glEdgeFlagPointerListIBM_args};

static const char * _glFogCoordPointerListIBM_args[4] = {"type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glFogCoordPointerListIBM_sig = {2310, "glFogCoordPointerListIBM", 4, _glFogCoordPointerListIBM_args};

static const char * _glIndexPointerListIBM_args[4] = {"type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glIndexPointerListIBM_sig = {2311, "glIndexPointerListIBM", 4, _glIndexPointerListIBM_args};

static const char * _glNormalPointerListIBM_args[4] = {"type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glNormalPointerListIBM_sig = {2312, "glNormalPointerListIBM", 4, _glNormalPointerListIBM_args};

static const char * _glTexCoordPointerListIBM_args[5] = {"size", "type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glTexCoordPointerListIBM_sig = {2313, "glTexCoordPointerListIBM", 5, _glTexCoordPointerListIBM_args};

static const char * _glVertexPointerListIBM_args[5] = {"size", "type", "stride", "pointer", "ptrstride"};
static const trace::FunctionSig _glVertexPointerListIBM_sig = {2314, "glVertexPointerListIBM", 5, _glVertexPointerListIBM_args};

static const char * _glRenderbufferStorageMultisampleIMG_args[5] = {"target", "samples", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageMultisampleIMG_sig = {2315, "glRenderbufferStorageMultisampleIMG", 5, _glRenderbufferStorageMultisampleIMG_args};

static const char * _glFramebufferTexture2DMultisampleIMG_args[6] = {"target", "attachment", "textarget", "texture", "level", "samples"};
static const trace::FunctionSig _glFramebufferTexture2DMultisampleIMG_sig = {2316, "glFramebufferTexture2DMultisampleIMG", 6, _glFramebufferTexture2DMultisampleIMG_args};

static const char * _glBlendFuncSeparateINGR_args[4] = {"sfactorRGB", "dfactorRGB", "sfactorAlpha", "dfactorAlpha"};
static const trace::FunctionSig _glBlendFuncSeparateINGR_sig = {2317, "glBlendFuncSeparateINGR", 4, _glBlendFuncSeparateINGR_args};

static const char * _glSyncTextureINTEL_args[1] = {"texture"};
static const trace::FunctionSig _glSyncTextureINTEL_sig = {2318, "glSyncTextureINTEL", 1, _glSyncTextureINTEL_args};

static const char * _glUnmapTexture2DINTEL_args[2] = {"texture", "level"};
static const trace::FunctionSig _glUnmapTexture2DINTEL_sig = {2319, "glUnmapTexture2DINTEL", 2, _glUnmapTexture2DINTEL_args};

static const char * _glMapTexture2DINTEL_args[5] = {"texture", "level", "access", "stride", "layout"};
static const trace::FunctionSig _glMapTexture2DINTEL_sig = {2320, "glMapTexture2DINTEL", 5, _glMapTexture2DINTEL_args};

static const char * _glVertexPointervINTEL_args[3] = {"size", "type", "pointer"};
static const trace::FunctionSig _glVertexPointervINTEL_sig = {2321, "glVertexPointervINTEL", 3, _glVertexPointervINTEL_args};

static const char * _glNormalPointervINTEL_args[2] = {"type", "pointer"};
static const trace::FunctionSig _glNormalPointervINTEL_sig = {2322, "glNormalPointervINTEL", 2, _glNormalPointervINTEL_args};

static const char * _glColorPointervINTEL_args[3] = {"size", "type", "pointer"};
static const trace::FunctionSig _glColorPointervINTEL_sig = {2323, "glColorPointervINTEL", 3, _glColorPointervINTEL_args};

static const char * _glTexCoordPointervINTEL_args[3] = {"size", "type", "pointer"};
static const trace::FunctionSig _glTexCoordPointervINTEL_sig = {2324, "glTexCoordPointervINTEL", 3, _glTexCoordPointervINTEL_args};

static const char * _glBeginPerfQueryINTEL_args[1] = {"queryHandle"};
static const trace::FunctionSig _glBeginPerfQueryINTEL_sig = {2325, "glBeginPerfQueryINTEL", 1, _glBeginPerfQueryINTEL_args};

static const char * _glCreatePerfQueryINTEL_args[2] = {"queryId", "queryHandle"};
static const trace::FunctionSig _glCreatePerfQueryINTEL_sig = {2326, "glCreatePerfQueryINTEL", 2, _glCreatePerfQueryINTEL_args};

static const char * _glDeletePerfQueryINTEL_args[1] = {"queryHandle"};
static const trace::FunctionSig _glDeletePerfQueryINTEL_sig = {2327, "glDeletePerfQueryINTEL", 1, _glDeletePerfQueryINTEL_args};

static const char * _glEndPerfQueryINTEL_args[1] = {"queryHandle"};
static const trace::FunctionSig _glEndPerfQueryINTEL_sig = {2328, "glEndPerfQueryINTEL", 1, _glEndPerfQueryINTEL_args};

static const char * _glGetFirstPerfQueryIdINTEL_args[1] = {"queryId"};
static const trace::FunctionSig _glGetFirstPerfQueryIdINTEL_sig = {2329, "glGetFirstPerfQueryIdINTEL", 1, _glGetFirstPerfQueryIdINTEL_args};

static const char * _glGetNextPerfQueryIdINTEL_args[2] = {"queryId", "nextQueryId"};
static const trace::FunctionSig _glGetNextPerfQueryIdINTEL_sig = {2330, "glGetNextPerfQueryIdINTEL", 2, _glGetNextPerfQueryIdINTEL_args};

static const char * _glGetPerfCounterInfoINTEL_args[11] = {"queryId", "counterId", "counterNameLength", "counterName", "counterDescLength", "counterDesc", "counterOffset", "counterDataSize", "counterTypeEnum", "counterDataTypeEnum", "rawCounterMaxValue"};
static const trace::FunctionSig _glGetPerfCounterInfoINTEL_sig = {2331, "glGetPerfCounterInfoINTEL", 11, _glGetPerfCounterInfoINTEL_args};

static const char * _glGetPerfQueryDataINTEL_args[5] = {"queryHandle", "flags", "dataSize", "data", "bytesWritten"};
static const trace::FunctionSig _glGetPerfQueryDataINTEL_sig = {2332, "glGetPerfQueryDataINTEL", 5, _glGetPerfQueryDataINTEL_args};

static const char * _glGetPerfQueryIdByNameINTEL_args[2] = {"queryName", "queryId"};
static const trace::FunctionSig _glGetPerfQueryIdByNameINTEL_sig = {2333, "glGetPerfQueryIdByNameINTEL", 2, _glGetPerfQueryIdByNameINTEL_args};

static const char * _glGetPerfQueryInfoINTEL_args[7] = {"queryId", "queryNameLength", "queryName", "dataSize", "noCounters", "noInstances", "capsMask"};
static const trace::FunctionSig _glGetPerfQueryInfoINTEL_sig = {2334, "glGetPerfQueryInfoINTEL", 7, _glGetPerfQueryInfoINTEL_args};

static const char ** _glBlendBarrierKHR_args = NULL;
static const trace::FunctionSig _glBlendBarrierKHR_sig = {2335, "glBlendBarrierKHR", 0, _glBlendBarrierKHR_args};

static const char * _glDebugMessageControl_args[6] = {"source", "type", "severity", "count", "ids", "enabled"};
static const trace::FunctionSig _glDebugMessageControl_sig = {2336, "glDebugMessageControl", 6, _glDebugMessageControl_args};

static const char * _glDebugMessageInsert_args[6] = {"source", "type", "id", "severity", "length", "buf"};
static const trace::FunctionSig _glDebugMessageInsert_sig = {2337, "glDebugMessageInsert", 6, _glDebugMessageInsert_args};

static const char * _glDebugMessageCallback_args[2] = {"callback", "userParam"};
static const trace::FunctionSig _glDebugMessageCallback_sig = {2338, "glDebugMessageCallback", 2, _glDebugMessageCallback_args};

static const char * _glGetDebugMessageLog_args[8] = {"count", "bufsize", "sources", "types", "ids", "severities", "lengths", "messageLog"};
static const trace::FunctionSig _glGetDebugMessageLog_sig = {2339, "glGetDebugMessageLog", 8, _glGetDebugMessageLog_args};

static const char * _glPushDebugGroup_args[4] = {"source", "id", "length", "message"};
static const trace::FunctionSig _glPushDebugGroup_sig = {2340, "glPushDebugGroup", 4, _glPushDebugGroup_args};

static const char ** _glPopDebugGroup_args = NULL;
static const trace::FunctionSig _glPopDebugGroup_sig = {2341, "glPopDebugGroup", 0, _glPopDebugGroup_args};

static const char * _glObjectLabel_args[4] = {"identifier", "name", "length", "label"};
static const trace::FunctionSig _glObjectLabel_sig = {2342, "glObjectLabel", 4, _glObjectLabel_args};

static const char * _glGetObjectLabel_args[5] = {"identifier", "name", "bufSize", "length", "label"};
static const trace::FunctionSig _glGetObjectLabel_sig = {2343, "glGetObjectLabel", 5, _glGetObjectLabel_args};

static const char * _glObjectPtrLabel_args[3] = {"ptr", "length", "label"};
static const trace::FunctionSig _glObjectPtrLabel_sig = {2344, "glObjectPtrLabel", 3, _glObjectPtrLabel_args};

static const char * _glGetObjectPtrLabel_args[4] = {"ptr", "bufSize", "length", "label"};
static const trace::FunctionSig _glGetObjectPtrLabel_sig = {2345, "glGetObjectPtrLabel", 4, _glGetObjectPtrLabel_args};

static const char * _glDebugMessageControlKHR_args[6] = {"source", "type", "severity", "count", "ids", "enabled"};
static const trace::FunctionSig _glDebugMessageControlKHR_sig = {2346, "glDebugMessageControlKHR", 6, _glDebugMessageControlKHR_args};

static const char * _glDebugMessageInsertKHR_args[6] = {"source", "type", "id", "severity", "length", "buf"};
static const trace::FunctionSig _glDebugMessageInsertKHR_sig = {2347, "glDebugMessageInsertKHR", 6, _glDebugMessageInsertKHR_args};

static const char * _glDebugMessageCallbackKHR_args[2] = {"callback", "userParam"};
static const trace::FunctionSig _glDebugMessageCallbackKHR_sig = {2348, "glDebugMessageCallbackKHR", 2, _glDebugMessageCallbackKHR_args};

static const char * _glGetDebugMessageLogKHR_args[8] = {"count", "bufsize", "sources", "types", "ids", "severities", "lengths", "messageLog"};
static const trace::FunctionSig _glGetDebugMessageLogKHR_sig = {2349, "glGetDebugMessageLogKHR", 8, _glGetDebugMessageLogKHR_args};

static const char * _glPushDebugGroupKHR_args[4] = {"source", "id", "length", "message"};
static const trace::FunctionSig _glPushDebugGroupKHR_sig = {2350, "glPushDebugGroupKHR", 4, _glPushDebugGroupKHR_args};

static const char ** _glPopDebugGroupKHR_args = NULL;
static const trace::FunctionSig _glPopDebugGroupKHR_sig = {2351, "glPopDebugGroupKHR", 0, _glPopDebugGroupKHR_args};

static const char * _glObjectLabelKHR_args[4] = {"identifier", "name", "length", "label"};
static const trace::FunctionSig _glObjectLabelKHR_sig = {2352, "glObjectLabelKHR", 4, _glObjectLabelKHR_args};

static const char * _glGetObjectLabelKHR_args[5] = {"identifier", "name", "bufSize", "length", "label"};
static const trace::FunctionSig _glGetObjectLabelKHR_sig = {2353, "glGetObjectLabelKHR", 5, _glGetObjectLabelKHR_args};

static const char * _glObjectPtrLabelKHR_args[3] = {"ptr", "length", "label"};
static const trace::FunctionSig _glObjectPtrLabelKHR_sig = {2354, "glObjectPtrLabelKHR", 3, _glObjectPtrLabelKHR_args};

static const char * _glGetObjectPtrLabelKHR_args[4] = {"ptr", "bufSize", "length", "label"};
static const trace::FunctionSig _glGetObjectPtrLabelKHR_sig = {2355, "glGetObjectPtrLabelKHR", 4, _glGetObjectPtrLabelKHR_args};

static const char * _glGetPointervKHR_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetPointervKHR_sig = {2356, "glGetPointervKHR", 2, _glGetPointervKHR_args};

static const char ** _glGetGraphicsResetStatus_args = NULL;
static const trace::FunctionSig _glGetGraphicsResetStatus_sig = {2357, "glGetGraphicsResetStatus", 0, _glGetGraphicsResetStatus_args};

static const char * _glReadnPixels_args[8] = {"x", "y", "width", "height", "format", "type", "bufSize", "data"};
static const trace::FunctionSig _glReadnPixels_sig = {2358, "glReadnPixels", 8, _glReadnPixels_args};

static const char * _glGetnUniformfv_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformfv_sig = {2359, "glGetnUniformfv", 4, _glGetnUniformfv_args};

static const char * _glGetnUniformiv_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformiv_sig = {2360, "glGetnUniformiv", 4, _glGetnUniformiv_args};

static const char * _glGetnUniformuiv_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformuiv_sig = {2361, "glGetnUniformuiv", 4, _glGetnUniformuiv_args};

static const char ** _glGetGraphicsResetStatusKHR_args = NULL;
static const trace::FunctionSig _glGetGraphicsResetStatusKHR_sig = {2362, "glGetGraphicsResetStatusKHR", 0, _glGetGraphicsResetStatusKHR_args};

static const char * _glReadnPixelsKHR_args[8] = {"x", "y", "width", "height", "format", "type", "bufSize", "data"};
static const trace::FunctionSig _glReadnPixelsKHR_sig = {2363, "glReadnPixelsKHR", 8, _glReadnPixelsKHR_args};

static const char * _glGetnUniformfvKHR_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformfvKHR_sig = {2364, "glGetnUniformfvKHR", 4, _glGetnUniformfvKHR_args};

static const char * _glGetnUniformivKHR_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformivKHR_sig = {2365, "glGetnUniformivKHR", 4, _glGetnUniformivKHR_args};

static const char * _glGetnUniformuivKHR_args[4] = {"program", "location", "bufSize", "params"};
static const trace::FunctionSig _glGetnUniformuivKHR_sig = {2366, "glGetnUniformuivKHR", 4, _glGetnUniformuivKHR_args};

static const char * _glNewBufferRegion_args[1] = {"type"};
static const trace::FunctionSig _glNewBufferRegion_sig = {2367, "glNewBufferRegion", 1, _glNewBufferRegion_args};

static const char * _glDeleteBufferRegion_args[1] = {"region"};
static const trace::FunctionSig _glDeleteBufferRegion_sig = {2368, "glDeleteBufferRegion", 1, _glDeleteBufferRegion_args};

static const char * _glReadBufferRegion_args[5] = {"region", "x", "y", "width", "height"};
static const trace::FunctionSig _glReadBufferRegion_sig = {2369, "glReadBufferRegion", 5, _glReadBufferRegion_args};

static const char * _glDrawBufferRegion_args[7] = {"region", "x", "y", "width", "height", "xDest", "yDest"};
static const trace::FunctionSig _glDrawBufferRegion_sig = {2370, "glDrawBufferRegion", 7, _glDrawBufferRegion_args};

static const char ** _glBufferRegionEnabled_args = NULL;
static const trace::FunctionSig _glBufferRegionEnabled_sig = {2371, "glBufferRegionEnabled", 0, _glBufferRegionEnabled_args};

static const char ** _glResizeBuffersMESA_args = NULL;
static const trace::FunctionSig _glResizeBuffersMESA_sig = {2372, "glResizeBuffersMESA", 0, _glResizeBuffersMESA_args};

static const char * _glWindowPos2dMESA_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2dMESA_sig = {2373, "glWindowPos2dMESA", 2, _glWindowPos2dMESA_args};

static const char * _glWindowPos2dvMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2dvMESA_sig = {2374, "glWindowPos2dvMESA", 1, _glWindowPos2dvMESA_args};

static const char * _glWindowPos2fMESA_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2fMESA_sig = {2375, "glWindowPos2fMESA", 2, _glWindowPos2fMESA_args};

static const char * _glWindowPos2fvMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2fvMESA_sig = {2376, "glWindowPos2fvMESA", 1, _glWindowPos2fvMESA_args};

static const char * _glWindowPos2iMESA_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2iMESA_sig = {2377, "glWindowPos2iMESA", 2, _glWindowPos2iMESA_args};

static const char * _glWindowPos2ivMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2ivMESA_sig = {2378, "glWindowPos2ivMESA", 1, _glWindowPos2ivMESA_args};

static const char * _glWindowPos2sMESA_args[2] = {"x", "y"};
static const trace::FunctionSig _glWindowPos2sMESA_sig = {2379, "glWindowPos2sMESA", 2, _glWindowPos2sMESA_args};

static const char * _glWindowPos2svMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos2svMESA_sig = {2380, "glWindowPos2svMESA", 1, _glWindowPos2svMESA_args};

static const char * _glWindowPos3dMESA_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3dMESA_sig = {2381, "glWindowPos3dMESA", 3, _glWindowPos3dMESA_args};

static const char * _glWindowPos3dvMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3dvMESA_sig = {2382, "glWindowPos3dvMESA", 1, _glWindowPos3dvMESA_args};

static const char * _glWindowPos3fMESA_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3fMESA_sig = {2383, "glWindowPos3fMESA", 3, _glWindowPos3fMESA_args};

static const char * _glWindowPos3fvMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3fvMESA_sig = {2384, "glWindowPos3fvMESA", 1, _glWindowPos3fvMESA_args};

static const char * _glWindowPos3iMESA_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3iMESA_sig = {2385, "glWindowPos3iMESA", 3, _glWindowPos3iMESA_args};

static const char * _glWindowPos3ivMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3ivMESA_sig = {2386, "glWindowPos3ivMESA", 1, _glWindowPos3ivMESA_args};

static const char * _glWindowPos3sMESA_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glWindowPos3sMESA_sig = {2387, "glWindowPos3sMESA", 3, _glWindowPos3sMESA_args};

static const char * _glWindowPos3svMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos3svMESA_sig = {2388, "glWindowPos3svMESA", 1, _glWindowPos3svMESA_args};

static const char * _glWindowPos4dMESA_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glWindowPos4dMESA_sig = {2389, "glWindowPos4dMESA", 4, _glWindowPos4dMESA_args};

static const char * _glWindowPos4dvMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos4dvMESA_sig = {2390, "glWindowPos4dvMESA", 1, _glWindowPos4dvMESA_args};

static const char * _glWindowPos4fMESA_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glWindowPos4fMESA_sig = {2391, "glWindowPos4fMESA", 4, _glWindowPos4fMESA_args};

static const char * _glWindowPos4fvMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos4fvMESA_sig = {2392, "glWindowPos4fvMESA", 1, _glWindowPos4fvMESA_args};

static const char * _glWindowPos4iMESA_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glWindowPos4iMESA_sig = {2393, "glWindowPos4iMESA", 4, _glWindowPos4iMESA_args};

static const char * _glWindowPos4ivMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos4ivMESA_sig = {2394, "glWindowPos4ivMESA", 1, _glWindowPos4ivMESA_args};

static const char * _glWindowPos4sMESA_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glWindowPos4sMESA_sig = {2395, "glWindowPos4sMESA", 4, _glWindowPos4sMESA_args};

static const char * _glWindowPos4svMESA_args[1] = {"v"};
static const trace::FunctionSig _glWindowPos4svMESA_sig = {2396, "glWindowPos4svMESA", 1, _glWindowPos4svMESA_args};

static const char * _glBeginConditionalRenderNVX_args[1] = {"id"};
static const trace::FunctionSig _glBeginConditionalRenderNVX_sig = {2397, "glBeginConditionalRenderNVX", 1, _glBeginConditionalRenderNVX_args};

static const char ** _glEndConditionalRenderNVX_args = NULL;
static const trace::FunctionSig _glEndConditionalRenderNVX_sig = {2398, "glEndConditionalRenderNVX", 0, _glEndConditionalRenderNVX_args};

static const char * _glMultiDrawArraysIndirectBindlessNV_args[5] = {"mode", "indirect", "drawCount", "stride", "vertexBufferCount"};
static const trace::FunctionSig _glMultiDrawArraysIndirectBindlessNV_sig = {2399, "glMultiDrawArraysIndirectBindlessNV", 5, _glMultiDrawArraysIndirectBindlessNV_args};

static const char * _glMultiDrawElementsIndirectBindlessNV_args[6] = {"mode", "type", "indirect", "drawCount", "stride", "vertexBufferCount"};
static const trace::FunctionSig _glMultiDrawElementsIndirectBindlessNV_sig = {2400, "glMultiDrawElementsIndirectBindlessNV", 6, _glMultiDrawElementsIndirectBindlessNV_args};

static const char * _glGetTextureHandleNV_args[1] = {"texture"};
static const trace::FunctionSig _glGetTextureHandleNV_sig = {2401, "glGetTextureHandleNV", 1, _glGetTextureHandleNV_args};

static const char * _glGetTextureSamplerHandleNV_args[2] = {"texture", "sampler"};
static const trace::FunctionSig _glGetTextureSamplerHandleNV_sig = {2402, "glGetTextureSamplerHandleNV", 2, _glGetTextureSamplerHandleNV_args};

static const char * _glMakeTextureHandleResidentNV_args[1] = {"handle"};
static const trace::FunctionSig _glMakeTextureHandleResidentNV_sig = {2403, "glMakeTextureHandleResidentNV", 1, _glMakeTextureHandleResidentNV_args};

static const char * _glMakeTextureHandleNonResidentNV_args[1] = {"handle"};
static const trace::FunctionSig _glMakeTextureHandleNonResidentNV_sig = {2404, "glMakeTextureHandleNonResidentNV", 1, _glMakeTextureHandleNonResidentNV_args};

static const char * _glGetImageHandleNV_args[5] = {"texture", "level", "layered", "layer", "format"};
static const trace::FunctionSig _glGetImageHandleNV_sig = {2405, "glGetImageHandleNV", 5, _glGetImageHandleNV_args};

static const char * _glMakeImageHandleResidentNV_args[2] = {"handle", "access"};
static const trace::FunctionSig _glMakeImageHandleResidentNV_sig = {2406, "glMakeImageHandleResidentNV", 2, _glMakeImageHandleResidentNV_args};

static const char * _glMakeImageHandleNonResidentNV_args[1] = {"handle"};
static const trace::FunctionSig _glMakeImageHandleNonResidentNV_sig = {2407, "glMakeImageHandleNonResidentNV", 1, _glMakeImageHandleNonResidentNV_args};

static const char * _glUniformHandleui64NV_args[2] = {"location", "value"};
static const trace::FunctionSig _glUniformHandleui64NV_sig = {2408, "glUniformHandleui64NV", 2, _glUniformHandleui64NV_args};

static const char * _glUniformHandleui64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniformHandleui64vNV_sig = {2409, "glUniformHandleui64vNV", 3, _glUniformHandleui64vNV_args};

static const char * _glProgramUniformHandleui64NV_args[3] = {"program", "location", "value"};
static const trace::FunctionSig _glProgramUniformHandleui64NV_sig = {2410, "glProgramUniformHandleui64NV", 3, _glProgramUniformHandleui64NV_args};

static const char * _glProgramUniformHandleui64vNV_args[4] = {"program", "location", "count", "values"};
static const trace::FunctionSig _glProgramUniformHandleui64vNV_sig = {2411, "glProgramUniformHandleui64vNV", 4, _glProgramUniformHandleui64vNV_args};

static const char * _glIsTextureHandleResidentNV_args[1] = {"handle"};
static const trace::FunctionSig _glIsTextureHandleResidentNV_sig = {2412, "glIsTextureHandleResidentNV", 1, _glIsTextureHandleResidentNV_args};

static const char * _glIsImageHandleResidentNV_args[1] = {"handle"};
static const trace::FunctionSig _glIsImageHandleResidentNV_sig = {2413, "glIsImageHandleResidentNV", 1, _glIsImageHandleResidentNV_args};

static const char * _glBlendParameteriNV_args[2] = {"pname", "value"};
static const trace::FunctionSig _glBlendParameteriNV_sig = {2414, "glBlendParameteriNV", 2, _glBlendParameteriNV_args};

static const char ** _glBlendBarrierNV_args = NULL;
static const trace::FunctionSig _glBlendBarrierNV_sig = {2415, "glBlendBarrierNV", 0, _glBlendBarrierNV_args};

static const char * _glBeginConditionalRenderNV_args[2] = {"id", "mode"};
static const trace::FunctionSig _glBeginConditionalRenderNV_sig = {2416, "glBeginConditionalRenderNV", 2, _glBeginConditionalRenderNV_args};

static const char ** _glEndConditionalRenderNV_args = NULL;
static const trace::FunctionSig _glEndConditionalRenderNV_sig = {2417, "glEndConditionalRenderNV", 0, _glEndConditionalRenderNV_args};

static const char * _glCopyImageSubDataNV_args[15] = {"srcName", "srcTarget", "srcLevel", "srcX", "srcY", "srcZ", "dstName", "dstTarget", "dstLevel", "dstX", "dstY", "dstZ", "width", "height", "depth"};
static const trace::FunctionSig _glCopyImageSubDataNV_sig = {2418, "glCopyImageSubDataNV", 15, _glCopyImageSubDataNV_args};

static const char * _glCoverageMaskNV_args[1] = {"mask"};
static const trace::FunctionSig _glCoverageMaskNV_sig = {2419, "glCoverageMaskNV", 1, _glCoverageMaskNV_args};

static const char * _glCoverageOperationNV_args[1] = {"operation"};
static const trace::FunctionSig _glCoverageOperationNV_sig = {2420, "glCoverageOperationNV", 1, _glCoverageOperationNV_args};

static const char * _glDepthRangedNV_args[2] = {"zNear", "zFar"};
static const trace::FunctionSig _glDepthRangedNV_sig = {2421, "glDepthRangedNV", 2, _glDepthRangedNV_args};

static const char * _glClearDepthdNV_args[1] = {"depth"};
static const trace::FunctionSig _glClearDepthdNV_sig = {2422, "glClearDepthdNV", 1, _glClearDepthdNV_args};

static const char * _glDepthBoundsdNV_args[2] = {"zmin", "zmax"};
static const trace::FunctionSig _glDepthBoundsdNV_sig = {2423, "glDepthBoundsdNV", 2, _glDepthBoundsdNV_args};

static const char * _glDrawBuffersNV_args[2] = {"n", "bufs"};
static const trace::FunctionSig _glDrawBuffersNV_sig = {2424, "glDrawBuffersNV", 2, _glDrawBuffersNV_args};

static const char * _glDrawTextureNV_args[11] = {"texture", "sampler", "x0", "y0", "x1", "y1", "z", "s0", "t0", "s1", "t1"};
static const trace::FunctionSig _glDrawTextureNV_sig = {2425, "glDrawTextureNV", 11, _glDrawTextureNV_args};

static const char * _glMapControlPointsNV_args[9] = {"target", "index", "type", "ustride", "vstride", "uorder", "vorder", "packed", "points"};
static const trace::FunctionSig _glMapControlPointsNV_sig = {2426, "glMapControlPointsNV", 9, _glMapControlPointsNV_args};

static const char * _glMapParameterivNV_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glMapParameterivNV_sig = {2427, "glMapParameterivNV", 3, _glMapParameterivNV_args};

static const char * _glMapParameterfvNV_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glMapParameterfvNV_sig = {2428, "glMapParameterfvNV", 3, _glMapParameterfvNV_args};

static const char * _glGetMapControlPointsNV_args[7] = {"target", "index", "type", "ustride", "vstride", "packed", "points"};
static const trace::FunctionSig _glGetMapControlPointsNV_sig = {2429, "glGetMapControlPointsNV", 7, _glGetMapControlPointsNV_args};

static const char * _glGetMapParameterivNV_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetMapParameterivNV_sig = {2430, "glGetMapParameterivNV", 3, _glGetMapParameterivNV_args};

static const char * _glGetMapParameterfvNV_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetMapParameterfvNV_sig = {2431, "glGetMapParameterfvNV", 3, _glGetMapParameterfvNV_args};

static const char * _glGetMapAttribParameterivNV_args[4] = {"target", "index", "pname", "params"};
static const trace::FunctionSig _glGetMapAttribParameterivNV_sig = {2432, "glGetMapAttribParameterivNV", 4, _glGetMapAttribParameterivNV_args};

static const char * _glGetMapAttribParameterfvNV_args[4] = {"target", "index", "pname", "params"};
static const trace::FunctionSig _glGetMapAttribParameterfvNV_sig = {2433, "glGetMapAttribParameterfvNV", 4, _glGetMapAttribParameterfvNV_args};

static const char * _glEvalMapsNV_args[2] = {"target", "mode"};
static const trace::FunctionSig _glEvalMapsNV_sig = {2434, "glEvalMapsNV", 2, _glEvalMapsNV_args};

static const char * _glGetMultisamplefvNV_args[3] = {"pname", "index", "val"};
static const trace::FunctionSig _glGetMultisamplefvNV_sig = {2435, "glGetMultisamplefvNV", 3, _glGetMultisamplefvNV_args};

static const char * _glSampleMaskIndexedNV_args[2] = {"index", "mask"};
static const trace::FunctionSig _glSampleMaskIndexedNV_sig = {2436, "glSampleMaskIndexedNV", 2, _glSampleMaskIndexedNV_args};

static const char * _glTexRenderbufferNV_args[2] = {"target", "renderbuffer"};
static const trace::FunctionSig _glTexRenderbufferNV_sig = {2437, "glTexRenderbufferNV", 2, _glTexRenderbufferNV_args};

static const char * _glDeleteFencesNV_args[2] = {"n", "fences"};
static const trace::FunctionSig _glDeleteFencesNV_sig = {2438, "glDeleteFencesNV", 2, _glDeleteFencesNV_args};

static const char * _glGenFencesNV_args[2] = {"n", "fences"};
static const trace::FunctionSig _glGenFencesNV_sig = {2439, "glGenFencesNV", 2, _glGenFencesNV_args};

static const char * _glIsFenceNV_args[1] = {"fence"};
static const trace::FunctionSig _glIsFenceNV_sig = {2440, "glIsFenceNV", 1, _glIsFenceNV_args};

static const char * _glTestFenceNV_args[1] = {"fence"};
static const trace::FunctionSig _glTestFenceNV_sig = {2441, "glTestFenceNV", 1, _glTestFenceNV_args};

static const char * _glGetFenceivNV_args[3] = {"fence", "pname", "params"};
static const trace::FunctionSig _glGetFenceivNV_sig = {2442, "glGetFenceivNV", 3, _glGetFenceivNV_args};

static const char * _glFinishFenceNV_args[1] = {"fence"};
static const trace::FunctionSig _glFinishFenceNV_sig = {2443, "glFinishFenceNV", 1, _glFinishFenceNV_args};

static const char * _glSetFenceNV_args[2] = {"fence", "condition"};
static const trace::FunctionSig _glSetFenceNV_sig = {2444, "glSetFenceNV", 2, _glSetFenceNV_args};

static const char * _glProgramNamedParameter4fNV_args[7] = {"id", "len", "name", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramNamedParameter4fNV_sig = {2445, "glProgramNamedParameter4fNV", 7, _glProgramNamedParameter4fNV_args};

static const char * _glProgramNamedParameter4dNV_args[7] = {"id", "len", "name", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramNamedParameter4dNV_sig = {2446, "glProgramNamedParameter4dNV", 7, _glProgramNamedParameter4dNV_args};

static const char * _glProgramNamedParameter4fvNV_args[4] = {"id", "len", "name", "v"};
static const trace::FunctionSig _glProgramNamedParameter4fvNV_sig = {2447, "glProgramNamedParameter4fvNV", 4, _glProgramNamedParameter4fvNV_args};

static const char * _glProgramNamedParameter4dvNV_args[4] = {"id", "len", "name", "v"};
static const trace::FunctionSig _glProgramNamedParameter4dvNV_sig = {2448, "glProgramNamedParameter4dvNV", 4, _glProgramNamedParameter4dvNV_args};

static const char * _glGetProgramNamedParameterdvNV_args[4] = {"id", "len", "name", "params"};
static const trace::FunctionSig _glGetProgramNamedParameterdvNV_sig = {2449, "glGetProgramNamedParameterdvNV", 4, _glGetProgramNamedParameterdvNV_args};

static const char * _glGetProgramNamedParameterfvNV_args[4] = {"id", "len", "name", "params"};
static const trace::FunctionSig _glGetProgramNamedParameterfvNV_sig = {2450, "glGetProgramNamedParameterfvNV", 4, _glGetProgramNamedParameterfvNV_args};

static const char * _glBlitFramebufferNV_args[10] = {"srcX0", "srcY0", "srcX1", "srcY1", "dstX0", "dstY0", "dstX1", "dstY1", "mask", "filter"};
static const trace::FunctionSig _glBlitFramebufferNV_sig = {2451, "glBlitFramebufferNV", 10, _glBlitFramebufferNV_args};

static const char * _glCoverageModulationTableNV_args[2] = {"n", "v"};
static const trace::FunctionSig _glCoverageModulationTableNV_sig = {2452, "glCoverageModulationTableNV", 2, _glCoverageModulationTableNV_args};

static const char * _glGetCoverageModulationTableNV_args[2] = {"bufsize", "v"};
static const trace::FunctionSig _glGetCoverageModulationTableNV_sig = {2453, "glGetCoverageModulationTableNV", 2, _glGetCoverageModulationTableNV_args};

static const char * _glCoverageModulationNV_args[1] = {"components"};
static const trace::FunctionSig _glCoverageModulationNV_sig = {2454, "glCoverageModulationNV", 1, _glCoverageModulationNV_args};

static const char * _glRenderbufferStorageMultisampleCoverageNV_args[6] = {"target", "coverageSamples", "colorSamples", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageMultisampleCoverageNV_sig = {2455, "glRenderbufferStorageMultisampleCoverageNV", 6, _glRenderbufferStorageMultisampleCoverageNV_args};

static const char * _glProgramVertexLimitNV_args[2] = {"target", "limit"};
static const trace::FunctionSig _glProgramVertexLimitNV_sig = {2456, "glProgramVertexLimitNV", 2, _glProgramVertexLimitNV_args};

static const char * _glFramebufferTextureFaceEXT_args[5] = {"target", "attachment", "texture", "level", "face"};
static const trace::FunctionSig _glFramebufferTextureFaceEXT_sig = {2457, "glFramebufferTextureFaceEXT", 5, _glFramebufferTextureFaceEXT_args};

static const char * _glProgramLocalParameterI4iNV_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramLocalParameterI4iNV_sig = {2458, "glProgramLocalParameterI4iNV", 6, _glProgramLocalParameterI4iNV_args};

static const char * _glProgramLocalParameterI4ivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramLocalParameterI4ivNV_sig = {2459, "glProgramLocalParameterI4ivNV", 3, _glProgramLocalParameterI4ivNV_args};

static const char * _glProgramLocalParametersI4ivNV_args[4] = {"target", "index", "count", "params"};
static const trace::FunctionSig _glProgramLocalParametersI4ivNV_sig = {2460, "glProgramLocalParametersI4ivNV", 4, _glProgramLocalParametersI4ivNV_args};

static const char * _glProgramLocalParameterI4uiNV_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramLocalParameterI4uiNV_sig = {2461, "glProgramLocalParameterI4uiNV", 6, _glProgramLocalParameterI4uiNV_args};

static const char * _glProgramLocalParameterI4uivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramLocalParameterI4uivNV_sig = {2462, "glProgramLocalParameterI4uivNV", 3, _glProgramLocalParameterI4uivNV_args};

static const char * _glProgramLocalParametersI4uivNV_args[4] = {"target", "index", "count", "params"};
static const trace::FunctionSig _glProgramLocalParametersI4uivNV_sig = {2463, "glProgramLocalParametersI4uivNV", 4, _glProgramLocalParametersI4uivNV_args};

static const char * _glProgramEnvParameterI4iNV_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramEnvParameterI4iNV_sig = {2464, "glProgramEnvParameterI4iNV", 6, _glProgramEnvParameterI4iNV_args};

static const char * _glProgramEnvParameterI4ivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramEnvParameterI4ivNV_sig = {2465, "glProgramEnvParameterI4ivNV", 3, _glProgramEnvParameterI4ivNV_args};

static const char * _glProgramEnvParametersI4ivNV_args[4] = {"target", "index", "count", "params"};
static const trace::FunctionSig _glProgramEnvParametersI4ivNV_sig = {2466, "glProgramEnvParametersI4ivNV", 4, _glProgramEnvParametersI4ivNV_args};

static const char * _glProgramEnvParameterI4uiNV_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramEnvParameterI4uiNV_sig = {2467, "glProgramEnvParameterI4uiNV", 6, _glProgramEnvParameterI4uiNV_args};

static const char * _glProgramEnvParameterI4uivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glProgramEnvParameterI4uivNV_sig = {2468, "glProgramEnvParameterI4uivNV", 3, _glProgramEnvParameterI4uivNV_args};

static const char * _glProgramEnvParametersI4uivNV_args[4] = {"target", "index", "count", "params"};
static const trace::FunctionSig _glProgramEnvParametersI4uivNV_sig = {2469, "glProgramEnvParametersI4uivNV", 4, _glProgramEnvParametersI4uivNV_args};

static const char * _glGetProgramLocalParameterIivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramLocalParameterIivNV_sig = {2470, "glGetProgramLocalParameterIivNV", 3, _glGetProgramLocalParameterIivNV_args};

static const char * _glGetProgramLocalParameterIuivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramLocalParameterIuivNV_sig = {2471, "glGetProgramLocalParameterIuivNV", 3, _glGetProgramLocalParameterIuivNV_args};

static const char * _glGetProgramEnvParameterIivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramEnvParameterIivNV_sig = {2472, "glGetProgramEnvParameterIivNV", 3, _glGetProgramEnvParameterIivNV_args};

static const char * _glGetProgramEnvParameterIuivNV_args[3] = {"target", "index", "params"};
static const trace::FunctionSig _glGetProgramEnvParameterIuivNV_sig = {2473, "glGetProgramEnvParameterIuivNV", 3, _glGetProgramEnvParameterIuivNV_args};

static const char * _glProgramSubroutineParametersuivNV_args[3] = {"target", "count", "params"};
static const trace::FunctionSig _glProgramSubroutineParametersuivNV_sig = {2474, "glProgramSubroutineParametersuivNV", 3, _glProgramSubroutineParametersuivNV_args};

static const char * _glGetProgramSubroutineParameteruivNV_args[3] = {"target", "index", "param"};
static const trace::FunctionSig _glGetProgramSubroutineParameteruivNV_sig = {2475, "glGetProgramSubroutineParameteruivNV", 3, _glGetProgramSubroutineParameteruivNV_args};

static const char * _glUniform1i64NV_args[2] = {"location", "x"};
static const trace::FunctionSig _glUniform1i64NV_sig = {2476, "glUniform1i64NV", 2, _glUniform1i64NV_args};

static const char * _glUniform2i64NV_args[3] = {"location", "x", "y"};
static const trace::FunctionSig _glUniform2i64NV_sig = {2477, "glUniform2i64NV", 3, _glUniform2i64NV_args};

static const char * _glUniform3i64NV_args[4] = {"location", "x", "y", "z"};
static const trace::FunctionSig _glUniform3i64NV_sig = {2478, "glUniform3i64NV", 4, _glUniform3i64NV_args};

static const char * _glUniform4i64NV_args[5] = {"location", "x", "y", "z", "w"};
static const trace::FunctionSig _glUniform4i64NV_sig = {2479, "glUniform4i64NV", 5, _glUniform4i64NV_args};

static const char * _glUniform1i64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1i64vNV_sig = {2480, "glUniform1i64vNV", 3, _glUniform1i64vNV_args};

static const char * _glUniform2i64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2i64vNV_sig = {2481, "glUniform2i64vNV", 3, _glUniform2i64vNV_args};

static const char * _glUniform3i64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3i64vNV_sig = {2482, "glUniform3i64vNV", 3, _glUniform3i64vNV_args};

static const char * _glUniform4i64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4i64vNV_sig = {2483, "glUniform4i64vNV", 3, _glUniform4i64vNV_args};

static const char * _glUniform1ui64NV_args[2] = {"location", "x"};
static const trace::FunctionSig _glUniform1ui64NV_sig = {2484, "glUniform1ui64NV", 2, _glUniform1ui64NV_args};

static const char * _glUniform2ui64NV_args[3] = {"location", "x", "y"};
static const trace::FunctionSig _glUniform2ui64NV_sig = {2485, "glUniform2ui64NV", 3, _glUniform2ui64NV_args};

static const char * _glUniform3ui64NV_args[4] = {"location", "x", "y", "z"};
static const trace::FunctionSig _glUniform3ui64NV_sig = {2486, "glUniform3ui64NV", 4, _glUniform3ui64NV_args};

static const char * _glUniform4ui64NV_args[5] = {"location", "x", "y", "z", "w"};
static const trace::FunctionSig _glUniform4ui64NV_sig = {2487, "glUniform4ui64NV", 5, _glUniform4ui64NV_args};

static const char * _glUniform1ui64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform1ui64vNV_sig = {2488, "glUniform1ui64vNV", 3, _glUniform1ui64vNV_args};

static const char * _glUniform2ui64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform2ui64vNV_sig = {2489, "glUniform2ui64vNV", 3, _glUniform2ui64vNV_args};

static const char * _glUniform3ui64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform3ui64vNV_sig = {2490, "glUniform3ui64vNV", 3, _glUniform3ui64vNV_args};

static const char * _glUniform4ui64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniform4ui64vNV_sig = {2491, "glUniform4ui64vNV", 3, _glUniform4ui64vNV_args};

static const char * _glGetUniformi64vNV_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformi64vNV_sig = {2492, "glGetUniformi64vNV", 3, _glGetUniformi64vNV_args};

static const char * _glProgramUniform1i64NV_args[3] = {"program", "location", "x"};
static const trace::FunctionSig _glProgramUniform1i64NV_sig = {2493, "glProgramUniform1i64NV", 3, _glProgramUniform1i64NV_args};

static const char * _glProgramUniform2i64NV_args[4] = {"program", "location", "x", "y"};
static const trace::FunctionSig _glProgramUniform2i64NV_sig = {2494, "glProgramUniform2i64NV", 4, _glProgramUniform2i64NV_args};

static const char * _glProgramUniform3i64NV_args[5] = {"program", "location", "x", "y", "z"};
static const trace::FunctionSig _glProgramUniform3i64NV_sig = {2495, "glProgramUniform3i64NV", 5, _glProgramUniform3i64NV_args};

static const char * _glProgramUniform4i64NV_args[6] = {"program", "location", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramUniform4i64NV_sig = {2496, "glProgramUniform4i64NV", 6, _glProgramUniform4i64NV_args};

static const char * _glProgramUniform1i64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1i64vNV_sig = {2497, "glProgramUniform1i64vNV", 4, _glProgramUniform1i64vNV_args};

static const char * _glProgramUniform2i64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2i64vNV_sig = {2498, "glProgramUniform2i64vNV", 4, _glProgramUniform2i64vNV_args};

static const char * _glProgramUniform3i64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3i64vNV_sig = {2499, "glProgramUniform3i64vNV", 4, _glProgramUniform3i64vNV_args};

static const char * _glProgramUniform4i64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4i64vNV_sig = {2500, "glProgramUniform4i64vNV", 4, _glProgramUniform4i64vNV_args};

static const char * _glProgramUniform1ui64NV_args[3] = {"program", "location", "x"};
static const trace::FunctionSig _glProgramUniform1ui64NV_sig = {2501, "glProgramUniform1ui64NV", 3, _glProgramUniform1ui64NV_args};

static const char * _glProgramUniform2ui64NV_args[4] = {"program", "location", "x", "y"};
static const trace::FunctionSig _glProgramUniform2ui64NV_sig = {2502, "glProgramUniform2ui64NV", 4, _glProgramUniform2ui64NV_args};

static const char * _glProgramUniform3ui64NV_args[5] = {"program", "location", "x", "y", "z"};
static const trace::FunctionSig _glProgramUniform3ui64NV_sig = {2503, "glProgramUniform3ui64NV", 5, _glProgramUniform3ui64NV_args};

static const char * _glProgramUniform4ui64NV_args[6] = {"program", "location", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramUniform4ui64NV_sig = {2504, "glProgramUniform4ui64NV", 6, _glProgramUniform4ui64NV_args};

static const char * _glProgramUniform1ui64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform1ui64vNV_sig = {2505, "glProgramUniform1ui64vNV", 4, _glProgramUniform1ui64vNV_args};

static const char * _glProgramUniform2ui64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform2ui64vNV_sig = {2506, "glProgramUniform2ui64vNV", 4, _glProgramUniform2ui64vNV_args};

static const char * _glProgramUniform3ui64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform3ui64vNV_sig = {2507, "glProgramUniform3ui64vNV", 4, _glProgramUniform3ui64vNV_args};

static const char * _glProgramUniform4ui64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniform4ui64vNV_sig = {2508, "glProgramUniform4ui64vNV", 4, _glProgramUniform4ui64vNV_args};

static const char * _glVertex2hNV_args[2] = {"x", "y"};
static const trace::FunctionSig _glVertex2hNV_sig = {2509, "glVertex2hNV", 2, _glVertex2hNV_args};

static const char * _glVertex2hvNV_args[1] = {"v"};
static const trace::FunctionSig _glVertex2hvNV_sig = {2510, "glVertex2hvNV", 1, _glVertex2hvNV_args};

static const char * _glVertex3hNV_args[3] = {"x", "y", "z"};
static const trace::FunctionSig _glVertex3hNV_sig = {2511, "glVertex3hNV", 3, _glVertex3hNV_args};

static const char * _glVertex3hvNV_args[1] = {"v"};
static const trace::FunctionSig _glVertex3hvNV_sig = {2512, "glVertex3hvNV", 1, _glVertex3hvNV_args};

static const char * _glVertex4hNV_args[4] = {"x", "y", "z", "w"};
static const trace::FunctionSig _glVertex4hNV_sig = {2513, "glVertex4hNV", 4, _glVertex4hNV_args};

static const char * _glVertex4hvNV_args[1] = {"v"};
static const trace::FunctionSig _glVertex4hvNV_sig = {2514, "glVertex4hvNV", 1, _glVertex4hvNV_args};

static const char * _glNormal3hNV_args[3] = {"nx", "ny", "nz"};
static const trace::FunctionSig _glNormal3hNV_sig = {2515, "glNormal3hNV", 3, _glNormal3hNV_args};

static const char * _glNormal3hvNV_args[1] = {"v"};
static const trace::FunctionSig _glNormal3hvNV_sig = {2516, "glNormal3hvNV", 1, _glNormal3hvNV_args};

static const char * _glColor3hNV_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glColor3hNV_sig = {2517, "glColor3hNV", 3, _glColor3hNV_args};

static const char * _glColor3hvNV_args[1] = {"v"};
static const trace::FunctionSig _glColor3hvNV_sig = {2518, "glColor3hvNV", 1, _glColor3hvNV_args};

static const char * _glColor4hNV_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glColor4hNV_sig = {2519, "glColor4hNV", 4, _glColor4hNV_args};

static const char * _glColor4hvNV_args[1] = {"v"};
static const trace::FunctionSig _glColor4hvNV_sig = {2520, "glColor4hvNV", 1, _glColor4hvNV_args};

static const char * _glTexCoord1hNV_args[1] = {"s"};
static const trace::FunctionSig _glTexCoord1hNV_sig = {2521, "glTexCoord1hNV", 1, _glTexCoord1hNV_args};

static const char * _glTexCoord1hvNV_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord1hvNV_sig = {2522, "glTexCoord1hvNV", 1, _glTexCoord1hvNV_args};

static const char * _glTexCoord2hNV_args[2] = {"s", "t"};
static const trace::FunctionSig _glTexCoord2hNV_sig = {2523, "glTexCoord2hNV", 2, _glTexCoord2hNV_args};

static const char * _glTexCoord2hvNV_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord2hvNV_sig = {2524, "glTexCoord2hvNV", 1, _glTexCoord2hvNV_args};

static const char * _glTexCoord3hNV_args[3] = {"s", "t", "r"};
static const trace::FunctionSig _glTexCoord3hNV_sig = {2525, "glTexCoord3hNV", 3, _glTexCoord3hNV_args};

static const char * _glTexCoord3hvNV_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord3hvNV_sig = {2526, "glTexCoord3hvNV", 1, _glTexCoord3hvNV_args};

static const char * _glTexCoord4hNV_args[4] = {"s", "t", "r", "q"};
static const trace::FunctionSig _glTexCoord4hNV_sig = {2527, "glTexCoord4hNV", 4, _glTexCoord4hNV_args};

static const char * _glTexCoord4hvNV_args[1] = {"v"};
static const trace::FunctionSig _glTexCoord4hvNV_sig = {2528, "glTexCoord4hvNV", 1, _glTexCoord4hvNV_args};

static const char * _glMultiTexCoord1hNV_args[2] = {"target", "s"};
static const trace::FunctionSig _glMultiTexCoord1hNV_sig = {2529, "glMultiTexCoord1hNV", 2, _glMultiTexCoord1hNV_args};

static const char * _glMultiTexCoord1hvNV_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord1hvNV_sig = {2530, "glMultiTexCoord1hvNV", 2, _glMultiTexCoord1hvNV_args};

static const char * _glMultiTexCoord2hNV_args[3] = {"target", "s", "t"};
static const trace::FunctionSig _glMultiTexCoord2hNV_sig = {2531, "glMultiTexCoord2hNV", 3, _glMultiTexCoord2hNV_args};

static const char * _glMultiTexCoord2hvNV_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord2hvNV_sig = {2532, "glMultiTexCoord2hvNV", 2, _glMultiTexCoord2hvNV_args};

static const char * _glMultiTexCoord3hNV_args[4] = {"target", "s", "t", "r"};
static const trace::FunctionSig _glMultiTexCoord3hNV_sig = {2533, "glMultiTexCoord3hNV", 4, _glMultiTexCoord3hNV_args};

static const char * _glMultiTexCoord3hvNV_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord3hvNV_sig = {2534, "glMultiTexCoord3hvNV", 2, _glMultiTexCoord3hvNV_args};

static const char * _glMultiTexCoord4hNV_args[5] = {"target", "s", "t", "r", "q"};
static const trace::FunctionSig _glMultiTexCoord4hNV_sig = {2535, "glMultiTexCoord4hNV", 5, _glMultiTexCoord4hNV_args};

static const char * _glMultiTexCoord4hvNV_args[2] = {"target", "v"};
static const trace::FunctionSig _glMultiTexCoord4hvNV_sig = {2536, "glMultiTexCoord4hvNV", 2, _glMultiTexCoord4hvNV_args};

static const char * _glFogCoordhNV_args[1] = {"fog"};
static const trace::FunctionSig _glFogCoordhNV_sig = {2537, "glFogCoordhNV", 1, _glFogCoordhNV_args};

static const char * _glFogCoordhvNV_args[1] = {"fog"};
static const trace::FunctionSig _glFogCoordhvNV_sig = {2538, "glFogCoordhvNV", 1, _glFogCoordhvNV_args};

static const char * _glSecondaryColor3hNV_args[3] = {"red", "green", "blue"};
static const trace::FunctionSig _glSecondaryColor3hNV_sig = {2539, "glSecondaryColor3hNV", 3, _glSecondaryColor3hNV_args};

static const char * _glSecondaryColor3hvNV_args[1] = {"v"};
static const trace::FunctionSig _glSecondaryColor3hvNV_sig = {2540, "glSecondaryColor3hvNV", 1, _glSecondaryColor3hvNV_args};

static const char * _glVertexWeighthNV_args[1] = {"weight"};
static const trace::FunctionSig _glVertexWeighthNV_sig = {2541, "glVertexWeighthNV", 1, _glVertexWeighthNV_args};

static const char * _glVertexWeighthvNV_args[1] = {"weight"};
static const trace::FunctionSig _glVertexWeighthvNV_sig = {2542, "glVertexWeighthvNV", 1, _glVertexWeighthvNV_args};

static const char * _glVertexAttrib1hNV_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1hNV_sig = {2543, "glVertexAttrib1hNV", 2, _glVertexAttrib1hNV_args};

static const char * _glVertexAttrib1hvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1hvNV_sig = {2544, "glVertexAttrib1hvNV", 2, _glVertexAttrib1hvNV_args};

static const char * _glVertexAttrib2hNV_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2hNV_sig = {2545, "glVertexAttrib2hNV", 3, _glVertexAttrib2hNV_args};

static const char * _glVertexAttrib2hvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2hvNV_sig = {2546, "glVertexAttrib2hvNV", 2, _glVertexAttrib2hvNV_args};

static const char * _glVertexAttrib3hNV_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3hNV_sig = {2547, "glVertexAttrib3hNV", 4, _glVertexAttrib3hNV_args};

static const char * _glVertexAttrib3hvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3hvNV_sig = {2548, "glVertexAttrib3hvNV", 2, _glVertexAttrib3hvNV_args};

static const char * _glVertexAttrib4hNV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4hNV_sig = {2549, "glVertexAttrib4hNV", 5, _glVertexAttrib4hNV_args};

static const char * _glVertexAttrib4hvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4hvNV_sig = {2550, "glVertexAttrib4hvNV", 2, _glVertexAttrib4hvNV_args};

static const char * _glVertexAttribs1hvNV_args[3] = {"index", "n", "v"};
static const trace::FunctionSig _glVertexAttribs1hvNV_sig = {2551, "glVertexAttribs1hvNV", 3, _glVertexAttribs1hvNV_args};

static const char * _glVertexAttribs2hvNV_args[3] = {"index", "n", "v"};
static const trace::FunctionSig _glVertexAttribs2hvNV_sig = {2552, "glVertexAttribs2hvNV", 3, _glVertexAttribs2hvNV_args};

static const char * _glVertexAttribs3hvNV_args[3] = {"index", "n", "v"};
static const trace::FunctionSig _glVertexAttribs3hvNV_sig = {2553, "glVertexAttribs3hvNV", 3, _glVertexAttribs3hvNV_args};

static const char * _glVertexAttribs4hvNV_args[3] = {"index", "n", "v"};
static const trace::FunctionSig _glVertexAttribs4hvNV_sig = {2554, "glVertexAttribs4hvNV", 3, _glVertexAttribs4hvNV_args};

static const char * _glGenOcclusionQueriesNV_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenOcclusionQueriesNV_sig = {2555, "glGenOcclusionQueriesNV", 2, _glGenOcclusionQueriesNV_args};

static const char * _glDeleteOcclusionQueriesNV_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteOcclusionQueriesNV_sig = {2556, "glDeleteOcclusionQueriesNV", 2, _glDeleteOcclusionQueriesNV_args};

static const char * _glIsOcclusionQueryNV_args[1] = {"id"};
static const trace::FunctionSig _glIsOcclusionQueryNV_sig = {2557, "glIsOcclusionQueryNV", 1, _glIsOcclusionQueryNV_args};

static const char * _glBeginOcclusionQueryNV_args[1] = {"id"};
static const trace::FunctionSig _glBeginOcclusionQueryNV_sig = {2558, "glBeginOcclusionQueryNV", 1, _glBeginOcclusionQueryNV_args};

static const char ** _glEndOcclusionQueryNV_args = NULL;
static const trace::FunctionSig _glEndOcclusionQueryNV_sig = {2559, "glEndOcclusionQueryNV", 0, _glEndOcclusionQueryNV_args};

static const char * _glGetOcclusionQueryivNV_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetOcclusionQueryivNV_sig = {2560, "glGetOcclusionQueryivNV", 3, _glGetOcclusionQueryivNV_args};

static const char * _glGetOcclusionQueryuivNV_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetOcclusionQueryuivNV_sig = {2561, "glGetOcclusionQueryuivNV", 3, _glGetOcclusionQueryuivNV_args};

static const char * _glProgramBufferParametersfvNV_args[5] = {"target", "buffer", "index", "count", "params"};
static const trace::FunctionSig _glProgramBufferParametersfvNV_sig = {2562, "glProgramBufferParametersfvNV", 5, _glProgramBufferParametersfvNV_args};

static const char * _glProgramBufferParametersIivNV_args[5] = {"target", "buffer", "index", "count", "params"};
static const trace::FunctionSig _glProgramBufferParametersIivNV_sig = {2563, "glProgramBufferParametersIivNV", 5, _glProgramBufferParametersIivNV_args};

static const char * _glProgramBufferParametersIuivNV_args[5] = {"target", "buffer", "index", "count", "params"};
static const trace::FunctionSig _glProgramBufferParametersIuivNV_sig = {2564, "glProgramBufferParametersIuivNV", 5, _glProgramBufferParametersIuivNV_args};

static const char * _glGenPathsNV_args[1] = {"range"};
static const trace::FunctionSig _glGenPathsNV_sig = {2565, "glGenPathsNV", 1, _glGenPathsNV_args};

static const char * _glDeletePathsNV_args[2] = {"path", "range"};
static const trace::FunctionSig _glDeletePathsNV_sig = {2566, "glDeletePathsNV", 2, _glDeletePathsNV_args};

static const char * _glIsPathNV_args[1] = {"path"};
static const trace::FunctionSig _glIsPathNV_sig = {2567, "glIsPathNV", 1, _glIsPathNV_args};

static const char * _glPathCommandsNV_args[6] = {"path", "numCommands", "commands", "numCoords", "coordType", "coords"};
static const trace::FunctionSig _glPathCommandsNV_sig = {2568, "glPathCommandsNV", 6, _glPathCommandsNV_args};

static const char * _glPathCoordsNV_args[4] = {"path", "numCoords", "coordType", "coords"};
static const trace::FunctionSig _glPathCoordsNV_sig = {2569, "glPathCoordsNV", 4, _glPathCoordsNV_args};

static const char * _glPathSubCommandsNV_args[8] = {"path", "commandStart", "commandsToDelete", "numCommands", "commands", "numCoords", "coordType", "coords"};
static const trace::FunctionSig _glPathSubCommandsNV_sig = {2570, "glPathSubCommandsNV", 8, _glPathSubCommandsNV_args};

static const char * _glPathSubCoordsNV_args[5] = {"path", "coordStart", "numCoords", "coordType", "coords"};
static const trace::FunctionSig _glPathSubCoordsNV_sig = {2571, "glPathSubCoordsNV", 5, _glPathSubCoordsNV_args};

static const char * _glPathStringNV_args[4] = {"path", "format", "length", "pathString"};
static const trace::FunctionSig _glPathStringNV_sig = {2572, "glPathStringNV", 4, _glPathStringNV_args};

static const char * _glPathGlyphsNV_args[10] = {"firstPathName", "fontTarget", "fontName", "fontStyle", "numGlyphs", "type", "charcodes", "handleMissingGlyphs", "pathParameterTemplate", "emScale"};
static const trace::FunctionSig _glPathGlyphsNV_sig = {2573, "glPathGlyphsNV", 10, _glPathGlyphsNV_args};

static const char * _glPathGlyphRangeNV_args[9] = {"firstPathName", "fontTarget", "fontName", "fontStyle", "firstGlyph", "numGlyphs", "handleMissingGlyphs", "pathParameterTemplate", "emScale"};
static const trace::FunctionSig _glPathGlyphRangeNV_sig = {2574, "glPathGlyphRangeNV", 9, _glPathGlyphRangeNV_args};

static const char * _glWeightPathsNV_args[4] = {"resultPath", "numPaths", "paths", "weights"};
static const trace::FunctionSig _glWeightPathsNV_sig = {2575, "glWeightPathsNV", 4, _glWeightPathsNV_args};

static const char * _glCopyPathNV_args[2] = {"resultPath", "srcPath"};
static const trace::FunctionSig _glCopyPathNV_sig = {2576, "glCopyPathNV", 2, _glCopyPathNV_args};

static const char * _glInterpolatePathsNV_args[4] = {"resultPath", "pathA", "pathB", "weight"};
static const trace::FunctionSig _glInterpolatePathsNV_sig = {2577, "glInterpolatePathsNV", 4, _glInterpolatePathsNV_args};

static const char * _glTransformPathNV_args[4] = {"resultPath", "srcPath", "transformType", "transformValues"};
static const trace::FunctionSig _glTransformPathNV_sig = {2578, "glTransformPathNV", 4, _glTransformPathNV_args};

static const char * _glPathParameterivNV_args[3] = {"path", "pname", "value"};
static const trace::FunctionSig _glPathParameterivNV_sig = {2579, "glPathParameterivNV", 3, _glPathParameterivNV_args};

static const char * _glPathParameteriNV_args[3] = {"path", "pname", "value"};
static const trace::FunctionSig _glPathParameteriNV_sig = {2580, "glPathParameteriNV", 3, _glPathParameteriNV_args};

static const char * _glPathParameterfvNV_args[3] = {"path", "pname", "value"};
static const trace::FunctionSig _glPathParameterfvNV_sig = {2581, "glPathParameterfvNV", 3, _glPathParameterfvNV_args};

static const char * _glPathParameterfNV_args[3] = {"path", "pname", "value"};
static const trace::FunctionSig _glPathParameterfNV_sig = {2582, "glPathParameterfNV", 3, _glPathParameterfNV_args};

static const char * _glPathDashArrayNV_args[3] = {"path", "dashCount", "dashArray"};
static const trace::FunctionSig _glPathDashArrayNV_sig = {2583, "glPathDashArrayNV", 3, _glPathDashArrayNV_args};

static const char * _glPathStencilFuncNV_args[3] = {"func", "ref", "mask"};
static const trace::FunctionSig _glPathStencilFuncNV_sig = {2584, "glPathStencilFuncNV", 3, _glPathStencilFuncNV_args};

static const char * _glPathStencilDepthOffsetNV_args[2] = {"factor", "units"};
static const trace::FunctionSig _glPathStencilDepthOffsetNV_sig = {2585, "glPathStencilDepthOffsetNV", 2, _glPathStencilDepthOffsetNV_args};

static const char * _glStencilFillPathNV_args[3] = {"path", "fillMode", "mask"};
static const trace::FunctionSig _glStencilFillPathNV_sig = {2586, "glStencilFillPathNV", 3, _glStencilFillPathNV_args};

static const char * _glStencilStrokePathNV_args[3] = {"path", "reference", "mask"};
static const trace::FunctionSig _glStencilStrokePathNV_sig = {2587, "glStencilStrokePathNV", 3, _glStencilStrokePathNV_args};

static const char * _glStencilFillPathInstancedNV_args[8] = {"numPaths", "pathNameType", "paths", "pathBase", "fillMode", "mask", "transformType", "transformValues"};
static const trace::FunctionSig _glStencilFillPathInstancedNV_sig = {2588, "glStencilFillPathInstancedNV", 8, _glStencilFillPathInstancedNV_args};

static const char * _glStencilStrokePathInstancedNV_args[8] = {"numPaths", "pathNameType", "paths", "pathBase", "reference", "mask", "transformType", "transformValues"};
static const trace::FunctionSig _glStencilStrokePathInstancedNV_sig = {2589, "glStencilStrokePathInstancedNV", 8, _glStencilStrokePathInstancedNV_args};

static const char * _glPathCoverDepthFuncNV_args[1] = {"func"};
static const trace::FunctionSig _glPathCoverDepthFuncNV_sig = {2590, "glPathCoverDepthFuncNV", 1, _glPathCoverDepthFuncNV_args};

static const char * _glPathColorGenNV_args[4] = {"color", "genMode", "colorFormat", "coeffs"};
static const trace::FunctionSig _glPathColorGenNV_sig = {2591, "glPathColorGenNV", 4, _glPathColorGenNV_args};

static const char * _glPathTexGenNV_args[4] = {"texCoordSet", "genMode", "components", "coeffs"};
static const trace::FunctionSig _glPathTexGenNV_sig = {2592, "glPathTexGenNV", 4, _glPathTexGenNV_args};

static const char * _glPathFogGenNV_args[1] = {"genMode"};
static const trace::FunctionSig _glPathFogGenNV_sig = {2593, "glPathFogGenNV", 1, _glPathFogGenNV_args};

static const char * _glCoverFillPathNV_args[2] = {"path", "coverMode"};
static const trace::FunctionSig _glCoverFillPathNV_sig = {2594, "glCoverFillPathNV", 2, _glCoverFillPathNV_args};

static const char * _glCoverStrokePathNV_args[2] = {"path", "coverMode"};
static const trace::FunctionSig _glCoverStrokePathNV_sig = {2595, "glCoverStrokePathNV", 2, _glCoverStrokePathNV_args};

static const char * _glCoverFillPathInstancedNV_args[7] = {"numPaths", "pathNameType", "paths", "pathBase", "coverMode", "transformType", "transformValues"};
static const trace::FunctionSig _glCoverFillPathInstancedNV_sig = {2596, "glCoverFillPathInstancedNV", 7, _glCoverFillPathInstancedNV_args};

static const char * _glCoverStrokePathInstancedNV_args[7] = {"numPaths", "pathNameType", "paths", "pathBase", "coverMode", "transformType", "transformValues"};
static const trace::FunctionSig _glCoverStrokePathInstancedNV_sig = {2597, "glCoverStrokePathInstancedNV", 7, _glCoverStrokePathInstancedNV_args};

static const char * _glGetPathParameterivNV_args[3] = {"path", "pname", "value"};
static const trace::FunctionSig _glGetPathParameterivNV_sig = {2598, "glGetPathParameterivNV", 3, _glGetPathParameterivNV_args};

static const char * _glGetPathParameterfvNV_args[3] = {"path", "pname", "value"};
static const trace::FunctionSig _glGetPathParameterfvNV_sig = {2599, "glGetPathParameterfvNV", 3, _glGetPathParameterfvNV_args};

static const char * _glGetPathCommandsNV_args[2] = {"path", "commands"};
static const trace::FunctionSig _glGetPathCommandsNV_sig = {2600, "glGetPathCommandsNV", 2, _glGetPathCommandsNV_args};

static const char * _glGetPathCoordsNV_args[2] = {"path", "coords"};
static const trace::FunctionSig _glGetPathCoordsNV_sig = {2601, "glGetPathCoordsNV", 2, _glGetPathCoordsNV_args};

static const char * _glGetPathDashArrayNV_args[2] = {"path", "dashArray"};
static const trace::FunctionSig _glGetPathDashArrayNV_sig = {2602, "glGetPathDashArrayNV", 2, _glGetPathDashArrayNV_args};

static const char * _glGetPathMetricsNV_args[7] = {"metricQueryMask", "numPaths", "pathNameType", "paths", "pathBase", "stride", "metrics"};
static const trace::FunctionSig _glGetPathMetricsNV_sig = {2603, "glGetPathMetricsNV", 7, _glGetPathMetricsNV_args};

static const char * _glGetPathMetricRangeNV_args[5] = {"metricQueryMask", "firstPathName", "numPaths", "stride", "metrics"};
static const trace::FunctionSig _glGetPathMetricRangeNV_sig = {2604, "glGetPathMetricRangeNV", 5, _glGetPathMetricRangeNV_args};

static const char * _glGetPathSpacingNV_args[9] = {"pathListMode", "numPaths", "pathNameType", "paths", "pathBase", "advanceScale", "kerningScale", "transformType", "returnedSpacing"};
static const trace::FunctionSig _glGetPathSpacingNV_sig = {2605, "glGetPathSpacingNV", 9, _glGetPathSpacingNV_args};

static const char * _glGetPathColorGenivNV_args[3] = {"color", "pname", "value"};
static const trace::FunctionSig _glGetPathColorGenivNV_sig = {2606, "glGetPathColorGenivNV", 3, _glGetPathColorGenivNV_args};

static const char * _glGetPathColorGenfvNV_args[3] = {"color", "pname", "value"};
static const trace::FunctionSig _glGetPathColorGenfvNV_sig = {2607, "glGetPathColorGenfvNV", 3, _glGetPathColorGenfvNV_args};

static const char * _glGetPathTexGenivNV_args[3] = {"texCoordSet", "pname", "value"};
static const trace::FunctionSig _glGetPathTexGenivNV_sig = {2608, "glGetPathTexGenivNV", 3, _glGetPathTexGenivNV_args};

static const char * _glGetPathTexGenfvNV_args[3] = {"texCoordSet", "pname", "value"};
static const trace::FunctionSig _glGetPathTexGenfvNV_sig = {2609, "glGetPathTexGenfvNV", 3, _glGetPathTexGenfvNV_args};

static const char * _glIsPointInFillPathNV_args[4] = {"path", "mask", "x", "y"};
static const trace::FunctionSig _glIsPointInFillPathNV_sig = {2610, "glIsPointInFillPathNV", 4, _glIsPointInFillPathNV_args};

static const char * _glIsPointInStrokePathNV_args[3] = {"path", "x", "y"};
static const trace::FunctionSig _glIsPointInStrokePathNV_sig = {2611, "glIsPointInStrokePathNV", 3, _glIsPointInStrokePathNV_args};

static const char * _glGetPathLengthNV_args[3] = {"path", "startSegment", "numSegments"};
static const trace::FunctionSig _glGetPathLengthNV_sig = {2612, "glGetPathLengthNV", 3, _glGetPathLengthNV_args};

static const char * _glPointAlongPathNV_args[8] = {"path", "startSegment", "numSegments", "distance", "x", "y", "tangentX", "tangentY"};
static const trace::FunctionSig _glPointAlongPathNV_sig = {2613, "glPointAlongPathNV", 8, _glPointAlongPathNV_args};

static const char * _glMatrixLoad3x2fNV_args[2] = {"matrixMode", "m"};
static const trace::FunctionSig _glMatrixLoad3x2fNV_sig = {2614, "glMatrixLoad3x2fNV", 2, _glMatrixLoad3x2fNV_args};

static const char * _glMatrixLoad3x3fNV_args[2] = {"matrixMode", "m"};
static const trace::FunctionSig _glMatrixLoad3x3fNV_sig = {2615, "glMatrixLoad3x3fNV", 2, _glMatrixLoad3x3fNV_args};

static const char * _glMatrixLoadTranspose3x3fNV_args[2] = {"matrixMode", "m"};
static const trace::FunctionSig _glMatrixLoadTranspose3x3fNV_sig = {2616, "glMatrixLoadTranspose3x3fNV", 2, _glMatrixLoadTranspose3x3fNV_args};

static const char * _glMatrixMult3x2fNV_args[2] = {"matrixMode", "m"};
static const trace::FunctionSig _glMatrixMult3x2fNV_sig = {2617, "glMatrixMult3x2fNV", 2, _glMatrixMult3x2fNV_args};

static const char * _glMatrixMult3x3fNV_args[2] = {"matrixMode", "m"};
static const trace::FunctionSig _glMatrixMult3x3fNV_sig = {2618, "glMatrixMult3x3fNV", 2, _glMatrixMult3x3fNV_args};

static const char * _glMatrixMultTranspose3x3fNV_args[2] = {"matrixMode", "m"};
static const trace::FunctionSig _glMatrixMultTranspose3x3fNV_sig = {2619, "glMatrixMultTranspose3x3fNV", 2, _glMatrixMultTranspose3x3fNV_args};

static const char * _glStencilThenCoverFillPathNV_args[4] = {"path", "fillMode", "mask", "coverMode"};
static const trace::FunctionSig _glStencilThenCoverFillPathNV_sig = {2620, "glStencilThenCoverFillPathNV", 4, _glStencilThenCoverFillPathNV_args};

static const char * _glStencilThenCoverStrokePathNV_args[4] = {"path", "reference", "mask", "coverMode"};
static const trace::FunctionSig _glStencilThenCoverStrokePathNV_sig = {2621, "glStencilThenCoverStrokePathNV", 4, _glStencilThenCoverStrokePathNV_args};

static const char * _glStencilThenCoverFillPathInstancedNV_args[9] = {"numPaths", "pathNameType", "paths", "pathBase", "fillMode", "mask", "coverMode", "transformType", "transformValues"};
static const trace::FunctionSig _glStencilThenCoverFillPathInstancedNV_sig = {2622, "glStencilThenCoverFillPathInstancedNV", 9, _glStencilThenCoverFillPathInstancedNV_args};

static const char * _glStencilThenCoverStrokePathInstancedNV_args[9] = {"numPaths", "pathNameType", "paths", "pathBase", "reference", "mask", "coverMode", "transformType", "transformValues"};
static const trace::FunctionSig _glStencilThenCoverStrokePathInstancedNV_sig = {2623, "glStencilThenCoverStrokePathInstancedNV", 9, _glStencilThenCoverStrokePathInstancedNV_args};

static const char * _glPathGlyphIndexRangeNV_args[6] = {"fontTarget", "fontName", "fontStyle", "pathParameterTemplate", "emScale", "baseAndCount"};
static const trace::FunctionSig _glPathGlyphIndexRangeNV_sig = {2624, "glPathGlyphIndexRangeNV", 6, _glPathGlyphIndexRangeNV_args};

static const char * _glPathGlyphIndexArrayNV_args[8] = {"firstPathName", "fontTarget", "fontName", "fontStyle", "firstGlyphIndex", "numGlyphs", "pathParameterTemplate", "emScale"};
static const trace::FunctionSig _glPathGlyphIndexArrayNV_sig = {2625, "glPathGlyphIndexArrayNV", 8, _glPathGlyphIndexArrayNV_args};

static const char * _glPathMemoryGlyphIndexArrayNV_args[9] = {"firstPathName", "fontTarget", "fontSize", "fontData", "faceIndex", "firstGlyphIndex", "numGlyphs", "pathParameterTemplate", "emScale"};
static const trace::FunctionSig _glPathMemoryGlyphIndexArrayNV_sig = {2626, "glPathMemoryGlyphIndexArrayNV", 9, _glPathMemoryGlyphIndexArrayNV_args};

static const char * _glProgramPathFragmentInputGenNV_args[5] = {"program", "location", "genMode", "components", "coeffs"};
static const trace::FunctionSig _glProgramPathFragmentInputGenNV_sig = {2627, "glProgramPathFragmentInputGenNV", 5, _glProgramPathFragmentInputGenNV_args};

static const char * _glGetProgramResourcefvNV_args[8] = {"program", "programInterface", "index", "propCount", "props", "bufSize", "length", "params"};
static const trace::FunctionSig _glGetProgramResourcefvNV_sig = {2628, "glGetProgramResourcefvNV", 8, _glGetProgramResourcefvNV_args};

static const char * _glPixelDataRangeNV_args[3] = {"target", "length", "pointer"};
static const trace::FunctionSig _glPixelDataRangeNV_sig = {2629, "glPixelDataRangeNV", 3, _glPixelDataRangeNV_args};

static const char * _glFlushPixelDataRangeNV_args[1] = {"target"};
static const trace::FunctionSig _glFlushPixelDataRangeNV_sig = {2630, "glFlushPixelDataRangeNV", 1, _glFlushPixelDataRangeNV_args};

static const char * _glPointParameteriNV_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameteriNV_sig = {2631, "glPointParameteriNV", 2, _glPointParameteriNV_args};

static const char * _glPointParameterivNV_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameterivNV_sig = {2632, "glPointParameterivNV", 2, _glPointParameterivNV_args};

static const char * _glPresentFrameKeyedNV_args[11] = {"video_slot", "minPresentTime", "beginPresentTimeId", "presentDurationId", "type", "target0", "fill0", "key0", "target1", "fill1", "key1"};
static const trace::FunctionSig _glPresentFrameKeyedNV_sig = {2633, "glPresentFrameKeyedNV", 11, _glPresentFrameKeyedNV_args};

static const char * _glPresentFrameDualFillNV_args[13] = {"video_slot", "minPresentTime", "beginPresentTimeId", "presentDurationId", "type", "target0", "fill0", "target1", "fill1", "target2", "fill2", "target3", "fill3"};
static const trace::FunctionSig _glPresentFrameDualFillNV_sig = {2634, "glPresentFrameDualFillNV", 13, _glPresentFrameDualFillNV_args};

static const char * _glGetVideoivNV_args[3] = {"video_slot", "pname", "params"};
static const trace::FunctionSig _glGetVideoivNV_sig = {2635, "glGetVideoivNV", 3, _glGetVideoivNV_args};

static const char * _glGetVideouivNV_args[3] = {"video_slot", "pname", "params"};
static const trace::FunctionSig _glGetVideouivNV_sig = {2636, "glGetVideouivNV", 3, _glGetVideouivNV_args};

static const char * _glGetVideoi64vNV_args[3] = {"video_slot", "pname", "params"};
static const trace::FunctionSig _glGetVideoi64vNV_sig = {2637, "glGetVideoi64vNV", 3, _glGetVideoi64vNV_args};

static const char * _glGetVideoui64vNV_args[3] = {"video_slot", "pname", "params"};
static const trace::FunctionSig _glGetVideoui64vNV_sig = {2638, "glGetVideoui64vNV", 3, _glGetVideoui64vNV_args};

static const char ** _glPrimitiveRestartNV_args = NULL;
static const trace::FunctionSig _glPrimitiveRestartNV_sig = {2639, "glPrimitiveRestartNV", 0, _glPrimitiveRestartNV_args};

static const char * _glPrimitiveRestartIndexNV_args[1] = {"index"};
static const trace::FunctionSig _glPrimitiveRestartIndexNV_sig = {2640, "glPrimitiveRestartIndexNV", 1, _glPrimitiveRestartIndexNV_args};

static const char * _glReadBufferNV_args[1] = {"mode"};
static const trace::FunctionSig _glReadBufferNV_sig = {2641, "glReadBufferNV", 1, _glReadBufferNV_args};

static const char * _glCombinerParameterfvNV_args[2] = {"pname", "params"};
static const trace::FunctionSig _glCombinerParameterfvNV_sig = {2642, "glCombinerParameterfvNV", 2, _glCombinerParameterfvNV_args};

static const char * _glCombinerParameterfNV_args[2] = {"pname", "param"};
static const trace::FunctionSig _glCombinerParameterfNV_sig = {2643, "glCombinerParameterfNV", 2, _glCombinerParameterfNV_args};

static const char * _glCombinerParameterivNV_args[2] = {"pname", "params"};
static const trace::FunctionSig _glCombinerParameterivNV_sig = {2644, "glCombinerParameterivNV", 2, _glCombinerParameterivNV_args};

static const char * _glCombinerParameteriNV_args[2] = {"pname", "param"};
static const trace::FunctionSig _glCombinerParameteriNV_sig = {2645, "glCombinerParameteriNV", 2, _glCombinerParameteriNV_args};

static const char * _glCombinerInputNV_args[6] = {"stage", "portion", "variable", "input", "mapping", "componentUsage"};
static const trace::FunctionSig _glCombinerInputNV_sig = {2646, "glCombinerInputNV", 6, _glCombinerInputNV_args};

static const char * _glCombinerOutputNV_args[10] = {"stage", "portion", "abOutput", "cdOutput", "sumOutput", "scale", "bias", "abDotProduct", "cdDotProduct", "muxSum"};
static const trace::FunctionSig _glCombinerOutputNV_sig = {2647, "glCombinerOutputNV", 10, _glCombinerOutputNV_args};

static const char * _glFinalCombinerInputNV_args[4] = {"variable", "input", "mapping", "componentUsage"};
static const trace::FunctionSig _glFinalCombinerInputNV_sig = {2648, "glFinalCombinerInputNV", 4, _glFinalCombinerInputNV_args};

static const char * _glGetCombinerInputParameterfvNV_args[5] = {"stage", "portion", "variable", "pname", "params"};
static const trace::FunctionSig _glGetCombinerInputParameterfvNV_sig = {2649, "glGetCombinerInputParameterfvNV", 5, _glGetCombinerInputParameterfvNV_args};

static const char * _glGetCombinerInputParameterivNV_args[5] = {"stage", "portion", "variable", "pname", "params"};
static const trace::FunctionSig _glGetCombinerInputParameterivNV_sig = {2650, "glGetCombinerInputParameterivNV", 5, _glGetCombinerInputParameterivNV_args};

static const char * _glGetCombinerOutputParameterfvNV_args[4] = {"stage", "portion", "pname", "params"};
static const trace::FunctionSig _glGetCombinerOutputParameterfvNV_sig = {2651, "glGetCombinerOutputParameterfvNV", 4, _glGetCombinerOutputParameterfvNV_args};

static const char * _glGetCombinerOutputParameterivNV_args[4] = {"stage", "portion", "pname", "params"};
static const trace::FunctionSig _glGetCombinerOutputParameterivNV_sig = {2652, "glGetCombinerOutputParameterivNV", 4, _glGetCombinerOutputParameterivNV_args};

static const char * _glGetFinalCombinerInputParameterfvNV_args[3] = {"variable", "pname", "params"};
static const trace::FunctionSig _glGetFinalCombinerInputParameterfvNV_sig = {2653, "glGetFinalCombinerInputParameterfvNV", 3, _glGetFinalCombinerInputParameterfvNV_args};

static const char * _glGetFinalCombinerInputParameterivNV_args[3] = {"variable", "pname", "params"};
static const trace::FunctionSig _glGetFinalCombinerInputParameterivNV_sig = {2654, "glGetFinalCombinerInputParameterivNV", 3, _glGetFinalCombinerInputParameterivNV_args};

static const char * _glCombinerStageParameterfvNV_args[3] = {"stage", "pname", "params"};
static const trace::FunctionSig _glCombinerStageParameterfvNV_sig = {2655, "glCombinerStageParameterfvNV", 3, _glCombinerStageParameterfvNV_args};

static const char * _glGetCombinerStageParameterfvNV_args[3] = {"stage", "pname", "params"};
static const trace::FunctionSig _glGetCombinerStageParameterfvNV_sig = {2656, "glGetCombinerStageParameterfvNV", 3, _glGetCombinerStageParameterfvNV_args};

static const char * _glMakeBufferResidentNV_args[2] = {"target", "access"};
static const trace::FunctionSig _glMakeBufferResidentNV_sig = {2657, "glMakeBufferResidentNV", 2, _glMakeBufferResidentNV_args};

static const char * _glMakeBufferNonResidentNV_args[1] = {"target"};
static const trace::FunctionSig _glMakeBufferNonResidentNV_sig = {2658, "glMakeBufferNonResidentNV", 1, _glMakeBufferNonResidentNV_args};

static const char * _glIsBufferResidentNV_args[1] = {"target"};
static const trace::FunctionSig _glIsBufferResidentNV_sig = {2659, "glIsBufferResidentNV", 1, _glIsBufferResidentNV_args};

static const char * _glMakeNamedBufferResidentNV_args[2] = {"buffer", "access"};
static const trace::FunctionSig _glMakeNamedBufferResidentNV_sig = {2660, "glMakeNamedBufferResidentNV", 2, _glMakeNamedBufferResidentNV_args};

static const char * _glMakeNamedBufferNonResidentNV_args[1] = {"buffer"};
static const trace::FunctionSig _glMakeNamedBufferNonResidentNV_sig = {2661, "glMakeNamedBufferNonResidentNV", 1, _glMakeNamedBufferNonResidentNV_args};

static const char * _glIsNamedBufferResidentNV_args[1] = {"buffer"};
static const trace::FunctionSig _glIsNamedBufferResidentNV_sig = {2662, "glIsNamedBufferResidentNV", 1, _glIsNamedBufferResidentNV_args};

static const char * _glGetBufferParameterui64vNV_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferParameterui64vNV_sig = {2663, "glGetBufferParameterui64vNV", 3, _glGetBufferParameterui64vNV_args};

static const char * _glGetNamedBufferParameterui64vNV_args[3] = {"buffer", "pname", "params"};
static const trace::FunctionSig _glGetNamedBufferParameterui64vNV_sig = {2664, "glGetNamedBufferParameterui64vNV", 3, _glGetNamedBufferParameterui64vNV_args};

static const char * _glGetIntegerui64vNV_args[2] = {"value", "result"};
static const trace::FunctionSig _glGetIntegerui64vNV_sig = {2665, "glGetIntegerui64vNV", 2, _glGetIntegerui64vNV_args};

static const char * _glUniformui64NV_args[2] = {"location", "value"};
static const trace::FunctionSig _glUniformui64NV_sig = {2666, "glUniformui64NV", 2, _glUniformui64NV_args};

static const char * _glUniformui64vNV_args[3] = {"location", "count", "value"};
static const trace::FunctionSig _glUniformui64vNV_sig = {2667, "glUniformui64vNV", 3, _glUniformui64vNV_args};

static const char * _glGetUniformui64vNV_args[3] = {"program", "location", "params"};
static const trace::FunctionSig _glGetUniformui64vNV_sig = {2668, "glGetUniformui64vNV", 3, _glGetUniformui64vNV_args};

static const char * _glProgramUniformui64NV_args[3] = {"program", "location", "value"};
static const trace::FunctionSig _glProgramUniformui64NV_sig = {2669, "glProgramUniformui64NV", 3, _glProgramUniformui64NV_args};

static const char * _glProgramUniformui64vNV_args[4] = {"program", "location", "count", "value"};
static const trace::FunctionSig _glProgramUniformui64vNV_sig = {2670, "glProgramUniformui64vNV", 4, _glProgramUniformui64vNV_args};

static const char ** _glTextureBarrierNV_args = NULL;
static const trace::FunctionSig _glTextureBarrierNV_sig = {2671, "glTextureBarrierNV", 0, _glTextureBarrierNV_args};

static const char * _glTexImage2DMultisampleCoverageNV_args[7] = {"target", "coverageSamples", "colorSamples", "internalFormat", "width", "height", "fixedSampleLocations"};
static const trace::FunctionSig _glTexImage2DMultisampleCoverageNV_sig = {2672, "glTexImage2DMultisampleCoverageNV", 7, _glTexImage2DMultisampleCoverageNV_args};

static const char * _glTexImage3DMultisampleCoverageNV_args[8] = {"target", "coverageSamples", "colorSamples", "internalFormat", "width", "height", "depth", "fixedSampleLocations"};
static const trace::FunctionSig _glTexImage3DMultisampleCoverageNV_sig = {2673, "glTexImage3DMultisampleCoverageNV", 8, _glTexImage3DMultisampleCoverageNV_args};

static const char * _glTextureImage2DMultisampleNV_args[7] = {"texture", "target", "samples", "internalFormat", "width", "height", "fixedSampleLocations"};
static const trace::FunctionSig _glTextureImage2DMultisampleNV_sig = {2674, "glTextureImage2DMultisampleNV", 7, _glTextureImage2DMultisampleNV_args};

static const char * _glTextureImage3DMultisampleNV_args[8] = {"texture", "target", "samples", "internalFormat", "width", "height", "depth", "fixedSampleLocations"};
static const trace::FunctionSig _glTextureImage3DMultisampleNV_sig = {2675, "glTextureImage3DMultisampleNV", 8, _glTextureImage3DMultisampleNV_args};

static const char * _glTextureImage2DMultisampleCoverageNV_args[8] = {"texture", "target", "coverageSamples", "colorSamples", "internalFormat", "width", "height", "fixedSampleLocations"};
static const trace::FunctionSig _glTextureImage2DMultisampleCoverageNV_sig = {2676, "glTextureImage2DMultisampleCoverageNV", 8, _glTextureImage2DMultisampleCoverageNV_args};

static const char * _glTextureImage3DMultisampleCoverageNV_args[9] = {"texture", "target", "coverageSamples", "colorSamples", "internalFormat", "width", "height", "depth", "fixedSampleLocations"};
static const trace::FunctionSig _glTextureImage3DMultisampleCoverageNV_sig = {2677, "glTextureImage3DMultisampleCoverageNV", 9, _glTextureImage3DMultisampleCoverageNV_args};

static const char * _glBeginTransformFeedbackNV_args[1] = {"primitiveMode"};
static const trace::FunctionSig _glBeginTransformFeedbackNV_sig = {2678, "glBeginTransformFeedbackNV", 1, _glBeginTransformFeedbackNV_args};

static const char ** _glEndTransformFeedbackNV_args = NULL;
static const trace::FunctionSig _glEndTransformFeedbackNV_sig = {2679, "glEndTransformFeedbackNV", 0, _glEndTransformFeedbackNV_args};

static const char * _glTransformFeedbackAttribsNV_args[3] = {"count", "attribs", "bufferMode"};
static const trace::FunctionSig _glTransformFeedbackAttribsNV_sig = {2680, "glTransformFeedbackAttribsNV", 3, _glTransformFeedbackAttribsNV_args};

static const char * _glBindBufferRangeNV_args[5] = {"target", "index", "buffer", "offset", "size"};
static const trace::FunctionSig _glBindBufferRangeNV_sig = {2681, "glBindBufferRangeNV", 5, _glBindBufferRangeNV_args};

static const char * _glBindBufferOffsetNV_args[4] = {"target", "index", "buffer", "offset"};
static const trace::FunctionSig _glBindBufferOffsetNV_sig = {2682, "glBindBufferOffsetNV", 4, _glBindBufferOffsetNV_args};

static const char * _glBindBufferBaseNV_args[3] = {"target", "index", "buffer"};
static const trace::FunctionSig _glBindBufferBaseNV_sig = {2683, "glBindBufferBaseNV", 3, _glBindBufferBaseNV_args};

static const char * _glTransformFeedbackVaryingsNV_args[4] = {"program", "count", "locations", "bufferMode"};
static const trace::FunctionSig _glTransformFeedbackVaryingsNV_sig = {2684, "glTransformFeedbackVaryingsNV", 4, _glTransformFeedbackVaryingsNV_args};

static const char * _glActiveVaryingNV_args[2] = {"program", "name"};
static const trace::FunctionSig _glActiveVaryingNV_sig = {2685, "glActiveVaryingNV", 2, _glActiveVaryingNV_args};

static const char * _glGetVaryingLocationNV_args[2] = {"program", "name"};
static const trace::FunctionSig _glGetVaryingLocationNV_sig = {2686, "glGetVaryingLocationNV", 2, _glGetVaryingLocationNV_args};

static const char * _glGetActiveVaryingNV_args[7] = {"program", "index", "bufSize", "length", "size", "type", "name"};
static const trace::FunctionSig _glGetActiveVaryingNV_sig = {2687, "glGetActiveVaryingNV", 7, _glGetActiveVaryingNV_args};

static const char * _glGetTransformFeedbackVaryingNV_args[3] = {"program", "index", "location"};
static const trace::FunctionSig _glGetTransformFeedbackVaryingNV_sig = {2688, "glGetTransformFeedbackVaryingNV", 3, _glGetTransformFeedbackVaryingNV_args};

static const char * _glTransformFeedbackStreamAttribsNV_args[5] = {"count", "attribs", "nbuffers", "bufstreams", "bufferMode"};
static const trace::FunctionSig _glTransformFeedbackStreamAttribsNV_sig = {2689, "glTransformFeedbackStreamAttribsNV", 5, _glTransformFeedbackStreamAttribsNV_args};

static const char * _glBindTransformFeedbackNV_args[2] = {"target", "id"};
static const trace::FunctionSig _glBindTransformFeedbackNV_sig = {2690, "glBindTransformFeedbackNV", 2, _glBindTransformFeedbackNV_args};

static const char * _glDeleteTransformFeedbacksNV_args[2] = {"n", "ids"};
static const trace::FunctionSig _glDeleteTransformFeedbacksNV_sig = {2691, "glDeleteTransformFeedbacksNV", 2, _glDeleteTransformFeedbacksNV_args};

static const char * _glGenTransformFeedbacksNV_args[2] = {"n", "ids"};
static const trace::FunctionSig _glGenTransformFeedbacksNV_sig = {2692, "glGenTransformFeedbacksNV", 2, _glGenTransformFeedbacksNV_args};

static const char * _glIsTransformFeedbackNV_args[1] = {"id"};
static const trace::FunctionSig _glIsTransformFeedbackNV_sig = {2693, "glIsTransformFeedbackNV", 1, _glIsTransformFeedbackNV_args};

static const char ** _glPauseTransformFeedbackNV_args = NULL;
static const trace::FunctionSig _glPauseTransformFeedbackNV_sig = {2694, "glPauseTransformFeedbackNV", 0, _glPauseTransformFeedbackNV_args};

static const char ** _glResumeTransformFeedbackNV_args = NULL;
static const trace::FunctionSig _glResumeTransformFeedbackNV_sig = {2695, "glResumeTransformFeedbackNV", 0, _glResumeTransformFeedbackNV_args};

static const char * _glDrawTransformFeedbackNV_args[2] = {"mode", "id"};
static const trace::FunctionSig _glDrawTransformFeedbackNV_sig = {2696, "glDrawTransformFeedbackNV", 2, _glDrawTransformFeedbackNV_args};

static const char * _glVDPAUInitNV_args[2] = {"vdpDevice", "getProcAddress"};
static const trace::FunctionSig _glVDPAUInitNV_sig = {2697, "glVDPAUInitNV", 2, _glVDPAUInitNV_args};

static const char ** _glVDPAUFiniNV_args = NULL;
static const trace::FunctionSig _glVDPAUFiniNV_sig = {2698, "glVDPAUFiniNV", 0, _glVDPAUFiniNV_args};

static const char * _glVDPAURegisterVideoSurfaceNV_args[4] = {"vdpSurface", "target", "numTextureNames", "textureNames"};
static const trace::FunctionSig _glVDPAURegisterVideoSurfaceNV_sig = {2699, "glVDPAURegisterVideoSurfaceNV", 4, _glVDPAURegisterVideoSurfaceNV_args};

static const char * _glVDPAURegisterOutputSurfaceNV_args[4] = {"vdpSurface", "target", "numTextureNames", "textureNames"};
static const trace::FunctionSig _glVDPAURegisterOutputSurfaceNV_sig = {2700, "glVDPAURegisterOutputSurfaceNV", 4, _glVDPAURegisterOutputSurfaceNV_args};

static const char * _glVDPAUIsSurfaceNV_args[1] = {"surface"};
static const trace::FunctionSig _glVDPAUIsSurfaceNV_sig = {2701, "glVDPAUIsSurfaceNV", 1, _glVDPAUIsSurfaceNV_args};

static const char * _glVDPAUUnregisterSurfaceNV_args[1] = {"surface"};
static const trace::FunctionSig _glVDPAUUnregisterSurfaceNV_sig = {2702, "glVDPAUUnregisterSurfaceNV", 1, _glVDPAUUnregisterSurfaceNV_args};

static const char * _glVDPAUGetSurfaceivNV_args[5] = {"surface", "pname", "bufSize", "length", "values"};
static const trace::FunctionSig _glVDPAUGetSurfaceivNV_sig = {2703, "glVDPAUGetSurfaceivNV", 5, _glVDPAUGetSurfaceivNV_args};

static const char * _glVDPAUSurfaceAccessNV_args[2] = {"surface", "access"};
static const trace::FunctionSig _glVDPAUSurfaceAccessNV_sig = {2704, "glVDPAUSurfaceAccessNV", 2, _glVDPAUSurfaceAccessNV_args};

static const char * _glVDPAUMapSurfacesNV_args[2] = {"numSurfaces", "surfaces"};
static const trace::FunctionSig _glVDPAUMapSurfacesNV_sig = {2705, "glVDPAUMapSurfacesNV", 2, _glVDPAUMapSurfacesNV_args};

static const char * _glVDPAUUnmapSurfacesNV_args[2] = {"numSurface", "surfaces"};
static const trace::FunctionSig _glVDPAUUnmapSurfacesNV_sig = {2706, "glVDPAUUnmapSurfacesNV", 2, _glVDPAUUnmapSurfacesNV_args};

static const char ** _glFlushVertexArrayRangeNV_args = NULL;
static const trace::FunctionSig _glFlushVertexArrayRangeNV_sig = {2707, "glFlushVertexArrayRangeNV", 0, _glFlushVertexArrayRangeNV_args};

static const char * _glVertexArrayRangeNV_args[2] = {"length", "pointer"};
static const trace::FunctionSig _glVertexArrayRangeNV_sig = {2708, "glVertexArrayRangeNV", 2, _glVertexArrayRangeNV_args};

static const char * _glVertexAttribL1i64NV_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribL1i64NV_sig = {2709, "glVertexAttribL1i64NV", 2, _glVertexAttribL1i64NV_args};

static const char * _glVertexAttribL2i64NV_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribL2i64NV_sig = {2710, "glVertexAttribL2i64NV", 3, _glVertexAttribL2i64NV_args};

static const char * _glVertexAttribL3i64NV_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribL3i64NV_sig = {2711, "glVertexAttribL3i64NV", 4, _glVertexAttribL3i64NV_args};

static const char * _glVertexAttribL4i64NV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribL4i64NV_sig = {2712, "glVertexAttribL4i64NV", 5, _glVertexAttribL4i64NV_args};

static const char * _glVertexAttribL1i64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL1i64vNV_sig = {2713, "glVertexAttribL1i64vNV", 2, _glVertexAttribL1i64vNV_args};

static const char * _glVertexAttribL2i64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL2i64vNV_sig = {2714, "glVertexAttribL2i64vNV", 2, _glVertexAttribL2i64vNV_args};

static const char * _glVertexAttribL3i64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL3i64vNV_sig = {2715, "glVertexAttribL3i64vNV", 2, _glVertexAttribL3i64vNV_args};

static const char * _glVertexAttribL4i64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL4i64vNV_sig = {2716, "glVertexAttribL4i64vNV", 2, _glVertexAttribL4i64vNV_args};

static const char * _glVertexAttribL1ui64NV_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribL1ui64NV_sig = {2717, "glVertexAttribL1ui64NV", 2, _glVertexAttribL1ui64NV_args};

static const char * _glVertexAttribL2ui64NV_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribL2ui64NV_sig = {2718, "glVertexAttribL2ui64NV", 3, _glVertexAttribL2ui64NV_args};

static const char * _glVertexAttribL3ui64NV_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribL3ui64NV_sig = {2719, "glVertexAttribL3ui64NV", 4, _glVertexAttribL3ui64NV_args};

static const char * _glVertexAttribL4ui64NV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribL4ui64NV_sig = {2720, "glVertexAttribL4ui64NV", 5, _glVertexAttribL4ui64NV_args};

static const char * _glVertexAttribL1ui64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL1ui64vNV_sig = {2721, "glVertexAttribL1ui64vNV", 2, _glVertexAttribL1ui64vNV_args};

static const char * _glVertexAttribL2ui64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL2ui64vNV_sig = {2722, "glVertexAttribL2ui64vNV", 2, _glVertexAttribL2ui64vNV_args};

static const char * _glVertexAttribL3ui64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL3ui64vNV_sig = {2723, "glVertexAttribL3ui64vNV", 2, _glVertexAttribL3ui64vNV_args};

static const char * _glVertexAttribL4ui64vNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribL4ui64vNV_sig = {2724, "glVertexAttribL4ui64vNV", 2, _glVertexAttribL4ui64vNV_args};

static const char * _glGetVertexAttribLi64vNV_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribLi64vNV_sig = {2725, "glGetVertexAttribLi64vNV", 3, _glGetVertexAttribLi64vNV_args};

static const char * _glGetVertexAttribLui64vNV_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribLui64vNV_sig = {2726, "glGetVertexAttribLui64vNV", 3, _glGetVertexAttribLui64vNV_args};

static const char * _glVertexAttribLFormatNV_args[4] = {"index", "size", "type", "stride"};
static const trace::FunctionSig _glVertexAttribLFormatNV_sig = {2727, "glVertexAttribLFormatNV", 4, _glVertexAttribLFormatNV_args};

static const char * _glBufferAddressRangeNV_args[4] = {"pname", "index", "address", "length"};
static const trace::FunctionSig _glBufferAddressRangeNV_sig = {2728, "glBufferAddressRangeNV", 4, _glBufferAddressRangeNV_args};

static const char * _glVertexFormatNV_args[3] = {"size", "type", "stride"};
static const trace::FunctionSig _glVertexFormatNV_sig = {2729, "glVertexFormatNV", 3, _glVertexFormatNV_args};

static const char * _glNormalFormatNV_args[2] = {"type", "stride"};
static const trace::FunctionSig _glNormalFormatNV_sig = {2730, "glNormalFormatNV", 2, _glNormalFormatNV_args};

static const char * _glColorFormatNV_args[3] = {"size", "type", "stride"};
static const trace::FunctionSig _glColorFormatNV_sig = {2731, "glColorFormatNV", 3, _glColorFormatNV_args};

static const char * _glIndexFormatNV_args[2] = {"type", "stride"};
static const trace::FunctionSig _glIndexFormatNV_sig = {2732, "glIndexFormatNV", 2, _glIndexFormatNV_args};

static const char * _glTexCoordFormatNV_args[3] = {"size", "type", "stride"};
static const trace::FunctionSig _glTexCoordFormatNV_sig = {2733, "glTexCoordFormatNV", 3, _glTexCoordFormatNV_args};

static const char * _glEdgeFlagFormatNV_args[1] = {"stride"};
static const trace::FunctionSig _glEdgeFlagFormatNV_sig = {2734, "glEdgeFlagFormatNV", 1, _glEdgeFlagFormatNV_args};

static const char * _glSecondaryColorFormatNV_args[3] = {"size", "type", "stride"};
static const trace::FunctionSig _glSecondaryColorFormatNV_sig = {2735, "glSecondaryColorFormatNV", 3, _glSecondaryColorFormatNV_args};

static const char * _glFogCoordFormatNV_args[2] = {"type", "stride"};
static const trace::FunctionSig _glFogCoordFormatNV_sig = {2736, "glFogCoordFormatNV", 2, _glFogCoordFormatNV_args};

static const char * _glVertexAttribFormatNV_args[5] = {"index", "size", "type", "normalized", "stride"};
static const trace::FunctionSig _glVertexAttribFormatNV_sig = {2737, "glVertexAttribFormatNV", 5, _glVertexAttribFormatNV_args};

static const char * _glVertexAttribIFormatNV_args[4] = {"index", "size", "type", "stride"};
static const trace::FunctionSig _glVertexAttribIFormatNV_sig = {2738, "glVertexAttribIFormatNV", 4, _glVertexAttribIFormatNV_args};

static const char * _glGetIntegerui64i_vNV_args[3] = {"value", "index", "result"};
static const trace::FunctionSig _glGetIntegerui64i_vNV_sig = {2739, "glGetIntegerui64i_vNV", 3, _glGetIntegerui64i_vNV_args};

static const char * _glAreProgramsResidentNV_args[3] = {"n", "ids", "residences"};
static const trace::FunctionSig _glAreProgramsResidentNV_sig = {2740, "glAreProgramsResidentNV", 3, _glAreProgramsResidentNV_args};

static const char * _glBindProgramNV_args[2] = {"target", "program"};
static const trace::FunctionSig _glBindProgramNV_sig = {2741, "glBindProgramNV", 2, _glBindProgramNV_args};

static const char * _glDeleteProgramsNV_args[2] = {"n", "programs"};
static const trace::FunctionSig _glDeleteProgramsNV_sig = {2742, "glDeleteProgramsNV", 2, _glDeleteProgramsNV_args};

static const char * _glExecuteProgramNV_args[3] = {"target", "id", "params"};
static const trace::FunctionSig _glExecuteProgramNV_sig = {2743, "glExecuteProgramNV", 3, _glExecuteProgramNV_args};

static const char * _glGenProgramsNV_args[2] = {"n", "programs"};
static const trace::FunctionSig _glGenProgramsNV_sig = {2744, "glGenProgramsNV", 2, _glGenProgramsNV_args};

static const char * _glGetProgramParameterdvNV_args[4] = {"target", "index", "pname", "params"};
static const trace::FunctionSig _glGetProgramParameterdvNV_sig = {2745, "glGetProgramParameterdvNV", 4, _glGetProgramParameterdvNV_args};

static const char * _glGetProgramParameterfvNV_args[4] = {"target", "index", "pname", "params"};
static const trace::FunctionSig _glGetProgramParameterfvNV_sig = {2746, "glGetProgramParameterfvNV", 4, _glGetProgramParameterfvNV_args};

static const char * _glGetProgramivNV_args[3] = {"id", "pname", "params"};
static const trace::FunctionSig _glGetProgramivNV_sig = {2747, "glGetProgramivNV", 3, _glGetProgramivNV_args};

static const char * _glGetProgramStringNV_args[3] = {"id", "pname", "program"};
static const trace::FunctionSig _glGetProgramStringNV_sig = {2748, "glGetProgramStringNV", 3, _glGetProgramStringNV_args};

static const char * _glGetTrackMatrixivNV_args[4] = {"target", "address", "pname", "params"};
static const trace::FunctionSig _glGetTrackMatrixivNV_sig = {2749, "glGetTrackMatrixivNV", 4, _glGetTrackMatrixivNV_args};

static const char * _glGetVertexAttribdvNV_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribdvNV_sig = {2750, "glGetVertexAttribdvNV", 3, _glGetVertexAttribdvNV_args};

static const char * _glGetVertexAttribfvNV_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribfvNV_sig = {2751, "glGetVertexAttribfvNV", 3, _glGetVertexAttribfvNV_args};

static const char * _glGetVertexAttribivNV_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribivNV_sig = {2752, "glGetVertexAttribivNV", 3, _glGetVertexAttribivNV_args};

static const char * _glGetVertexAttribPointervNV_args[3] = {"index", "pname", "pointer"};
static const trace::FunctionSig _glGetVertexAttribPointervNV_sig = {2753, "glGetVertexAttribPointervNV", 3, _glGetVertexAttribPointervNV_args};

static const char * _glIsProgramNV_args[1] = {"program"};
static const trace::FunctionSig _glIsProgramNV_sig = {2754, "glIsProgramNV", 1, _glIsProgramNV_args};

static const char * _glLoadProgramNV_args[4] = {"target", "id", "len", "program"};
static const trace::FunctionSig _glLoadProgramNV_sig = {2755, "glLoadProgramNV", 4, _glLoadProgramNV_args};

static const char * _glProgramParameter4dNV_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramParameter4dNV_sig = {2756, "glProgramParameter4dNV", 6, _glProgramParameter4dNV_args};

static const char * _glProgramParameter4dvNV_args[3] = {"target", "index", "v"};
static const trace::FunctionSig _glProgramParameter4dvNV_sig = {2757, "glProgramParameter4dvNV", 3, _glProgramParameter4dvNV_args};

static const char * _glProgramParameter4fNV_args[6] = {"target", "index", "x", "y", "z", "w"};
static const trace::FunctionSig _glProgramParameter4fNV_sig = {2758, "glProgramParameter4fNV", 6, _glProgramParameter4fNV_args};

static const char * _glProgramParameter4fvNV_args[3] = {"target", "index", "v"};
static const trace::FunctionSig _glProgramParameter4fvNV_sig = {2759, "glProgramParameter4fvNV", 3, _glProgramParameter4fvNV_args};

static const char * _glProgramParameters4dvNV_args[4] = {"target", "index", "count", "v"};
static const trace::FunctionSig _glProgramParameters4dvNV_sig = {2760, "glProgramParameters4dvNV", 4, _glProgramParameters4dvNV_args};

static const char * _glProgramParameters4fvNV_args[4] = {"target", "index", "count", "v"};
static const trace::FunctionSig _glProgramParameters4fvNV_sig = {2761, "glProgramParameters4fvNV", 4, _glProgramParameters4fvNV_args};

static const char * _glRequestResidentProgramsNV_args[2] = {"n", "programs"};
static const trace::FunctionSig _glRequestResidentProgramsNV_sig = {2762, "glRequestResidentProgramsNV", 2, _glRequestResidentProgramsNV_args};

static const char * _glTrackMatrixNV_args[4] = {"target", "address", "matrix", "transform"};
static const trace::FunctionSig _glTrackMatrixNV_sig = {2763, "glTrackMatrixNV", 4, _glTrackMatrixNV_args};

static const char * _glVertexAttribPointerNV_args[5] = {"index", "size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribPointerNV_sig = {2764, "glVertexAttribPointerNV", 5, _glVertexAttribPointerNV_args};

static const char * _glVertexAttrib1dNV_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1dNV_sig = {2765, "glVertexAttrib1dNV", 2, _glVertexAttrib1dNV_args};

static const char * _glVertexAttrib1dvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1dvNV_sig = {2766, "glVertexAttrib1dvNV", 2, _glVertexAttrib1dvNV_args};

static const char * _glVertexAttrib1fNV_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1fNV_sig = {2767, "glVertexAttrib1fNV", 2, _glVertexAttrib1fNV_args};

static const char * _glVertexAttrib1fvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1fvNV_sig = {2768, "glVertexAttrib1fvNV", 2, _glVertexAttrib1fvNV_args};

static const char * _glVertexAttrib1sNV_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttrib1sNV_sig = {2769, "glVertexAttrib1sNV", 2, _glVertexAttrib1sNV_args};

static const char * _glVertexAttrib1svNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib1svNV_sig = {2770, "glVertexAttrib1svNV", 2, _glVertexAttrib1svNV_args};

static const char * _glVertexAttrib2dNV_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2dNV_sig = {2771, "glVertexAttrib2dNV", 3, _glVertexAttrib2dNV_args};

static const char * _glVertexAttrib2dvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2dvNV_sig = {2772, "glVertexAttrib2dvNV", 2, _glVertexAttrib2dvNV_args};

static const char * _glVertexAttrib2fNV_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2fNV_sig = {2773, "glVertexAttrib2fNV", 3, _glVertexAttrib2fNV_args};

static const char * _glVertexAttrib2fvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2fvNV_sig = {2774, "glVertexAttrib2fvNV", 2, _glVertexAttrib2fvNV_args};

static const char * _glVertexAttrib2sNV_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttrib2sNV_sig = {2775, "glVertexAttrib2sNV", 3, _glVertexAttrib2sNV_args};

static const char * _glVertexAttrib2svNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib2svNV_sig = {2776, "glVertexAttrib2svNV", 2, _glVertexAttrib2svNV_args};

static const char * _glVertexAttrib3dNV_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3dNV_sig = {2777, "glVertexAttrib3dNV", 4, _glVertexAttrib3dNV_args};

static const char * _glVertexAttrib3dvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3dvNV_sig = {2778, "glVertexAttrib3dvNV", 2, _glVertexAttrib3dvNV_args};

static const char * _glVertexAttrib3fNV_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3fNV_sig = {2779, "glVertexAttrib3fNV", 4, _glVertexAttrib3fNV_args};

static const char * _glVertexAttrib3fvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3fvNV_sig = {2780, "glVertexAttrib3fvNV", 2, _glVertexAttrib3fvNV_args};

static const char * _glVertexAttrib3sNV_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttrib3sNV_sig = {2781, "glVertexAttrib3sNV", 4, _glVertexAttrib3sNV_args};

static const char * _glVertexAttrib3svNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib3svNV_sig = {2782, "glVertexAttrib3svNV", 2, _glVertexAttrib3svNV_args};

static const char * _glVertexAttrib4dNV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4dNV_sig = {2783, "glVertexAttrib4dNV", 5, _glVertexAttrib4dNV_args};

static const char * _glVertexAttrib4dvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4dvNV_sig = {2784, "glVertexAttrib4dvNV", 2, _glVertexAttrib4dvNV_args};

static const char * _glVertexAttrib4fNV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4fNV_sig = {2785, "glVertexAttrib4fNV", 5, _glVertexAttrib4fNV_args};

static const char * _glVertexAttrib4fvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4fvNV_sig = {2786, "glVertexAttrib4fvNV", 2, _glVertexAttrib4fvNV_args};

static const char * _glVertexAttrib4sNV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4sNV_sig = {2787, "glVertexAttrib4sNV", 5, _glVertexAttrib4sNV_args};

static const char * _glVertexAttrib4svNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4svNV_sig = {2788, "glVertexAttrib4svNV", 2, _glVertexAttrib4svNV_args};

static const char * _glVertexAttrib4ubNV_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttrib4ubNV_sig = {2789, "glVertexAttrib4ubNV", 5, _glVertexAttrib4ubNV_args};

static const char * _glVertexAttrib4ubvNV_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttrib4ubvNV_sig = {2790, "glVertexAttrib4ubvNV", 2, _glVertexAttrib4ubvNV_args};

static const char * _glVertexAttribs1dvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs1dvNV_sig = {2791, "glVertexAttribs1dvNV", 3, _glVertexAttribs1dvNV_args};

static const char * _glVertexAttribs1fvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs1fvNV_sig = {2792, "glVertexAttribs1fvNV", 3, _glVertexAttribs1fvNV_args};

static const char * _glVertexAttribs1svNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs1svNV_sig = {2793, "glVertexAttribs1svNV", 3, _glVertexAttribs1svNV_args};

static const char * _glVertexAttribs2dvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs2dvNV_sig = {2794, "glVertexAttribs2dvNV", 3, _glVertexAttribs2dvNV_args};

static const char * _glVertexAttribs2fvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs2fvNV_sig = {2795, "glVertexAttribs2fvNV", 3, _glVertexAttribs2fvNV_args};

static const char * _glVertexAttribs2svNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs2svNV_sig = {2796, "glVertexAttribs2svNV", 3, _glVertexAttribs2svNV_args};

static const char * _glVertexAttribs3dvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs3dvNV_sig = {2797, "glVertexAttribs3dvNV", 3, _glVertexAttribs3dvNV_args};

static const char * _glVertexAttribs3fvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs3fvNV_sig = {2798, "glVertexAttribs3fvNV", 3, _glVertexAttribs3fvNV_args};

static const char * _glVertexAttribs3svNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs3svNV_sig = {2799, "glVertexAttribs3svNV", 3, _glVertexAttribs3svNV_args};

static const char * _glVertexAttribs4dvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs4dvNV_sig = {2800, "glVertexAttribs4dvNV", 3, _glVertexAttribs4dvNV_args};

static const char * _glVertexAttribs4fvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs4fvNV_sig = {2801, "glVertexAttribs4fvNV", 3, _glVertexAttribs4fvNV_args};

static const char * _glVertexAttribs4svNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs4svNV_sig = {2802, "glVertexAttribs4svNV", 3, _glVertexAttribs4svNV_args};

static const char * _glVertexAttribs4ubvNV_args[3] = {"index", "count", "v"};
static const trace::FunctionSig _glVertexAttribs4ubvNV_sig = {2803, "glVertexAttribs4ubvNV", 3, _glVertexAttribs4ubvNV_args};

static const char * _glVertexAttribI1iEXT_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribI1iEXT_sig = {2804, "glVertexAttribI1iEXT", 2, _glVertexAttribI1iEXT_args};

static const char * _glVertexAttribI2iEXT_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribI2iEXT_sig = {2805, "glVertexAttribI2iEXT", 3, _glVertexAttribI2iEXT_args};

static const char * _glVertexAttribI3iEXT_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribI3iEXT_sig = {2806, "glVertexAttribI3iEXT", 4, _glVertexAttribI3iEXT_args};

static const char * _glVertexAttribI4iEXT_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribI4iEXT_sig = {2807, "glVertexAttribI4iEXT", 5, _glVertexAttribI4iEXT_args};

static const char * _glVertexAttribI1uiEXT_args[2] = {"index", "x"};
static const trace::FunctionSig _glVertexAttribI1uiEXT_sig = {2808, "glVertexAttribI1uiEXT", 2, _glVertexAttribI1uiEXT_args};

static const char * _glVertexAttribI2uiEXT_args[3] = {"index", "x", "y"};
static const trace::FunctionSig _glVertexAttribI2uiEXT_sig = {2809, "glVertexAttribI2uiEXT", 3, _glVertexAttribI2uiEXT_args};

static const char * _glVertexAttribI3uiEXT_args[4] = {"index", "x", "y", "z"};
static const trace::FunctionSig _glVertexAttribI3uiEXT_sig = {2810, "glVertexAttribI3uiEXT", 4, _glVertexAttribI3uiEXT_args};

static const char * _glVertexAttribI4uiEXT_args[5] = {"index", "x", "y", "z", "w"};
static const trace::FunctionSig _glVertexAttribI4uiEXT_sig = {2811, "glVertexAttribI4uiEXT", 5, _glVertexAttribI4uiEXT_args};

static const char * _glVertexAttribI1ivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI1ivEXT_sig = {2812, "glVertexAttribI1ivEXT", 2, _glVertexAttribI1ivEXT_args};

static const char * _glVertexAttribI2ivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI2ivEXT_sig = {2813, "glVertexAttribI2ivEXT", 2, _glVertexAttribI2ivEXT_args};

static const char * _glVertexAttribI3ivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI3ivEXT_sig = {2814, "glVertexAttribI3ivEXT", 2, _glVertexAttribI3ivEXT_args};

static const char * _glVertexAttribI4ivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4ivEXT_sig = {2815, "glVertexAttribI4ivEXT", 2, _glVertexAttribI4ivEXT_args};

static const char * _glVertexAttribI1uivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI1uivEXT_sig = {2816, "glVertexAttribI1uivEXT", 2, _glVertexAttribI1uivEXT_args};

static const char * _glVertexAttribI2uivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI2uivEXT_sig = {2817, "glVertexAttribI2uivEXT", 2, _glVertexAttribI2uivEXT_args};

static const char * _glVertexAttribI3uivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI3uivEXT_sig = {2818, "glVertexAttribI3uivEXT", 2, _glVertexAttribI3uivEXT_args};

static const char * _glVertexAttribI4uivEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4uivEXT_sig = {2819, "glVertexAttribI4uivEXT", 2, _glVertexAttribI4uivEXT_args};

static const char * _glVertexAttribI4bvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4bvEXT_sig = {2820, "glVertexAttribI4bvEXT", 2, _glVertexAttribI4bvEXT_args};

static const char * _glVertexAttribI4svEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4svEXT_sig = {2821, "glVertexAttribI4svEXT", 2, _glVertexAttribI4svEXT_args};

static const char * _glVertexAttribI4ubvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4ubvEXT_sig = {2822, "glVertexAttribI4ubvEXT", 2, _glVertexAttribI4ubvEXT_args};

static const char * _glVertexAttribI4usvEXT_args[2] = {"index", "v"};
static const trace::FunctionSig _glVertexAttribI4usvEXT_sig = {2823, "glVertexAttribI4usvEXT", 2, _glVertexAttribI4usvEXT_args};

static const char * _glVertexAttribIPointerEXT_args[5] = {"index", "size", "type", "stride", "pointer"};
static const trace::FunctionSig _glVertexAttribIPointerEXT_sig = {2824, "glVertexAttribIPointerEXT", 5, _glVertexAttribIPointerEXT_args};

static const char * _glGetVertexAttribIivEXT_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribIivEXT_sig = {2825, "glGetVertexAttribIivEXT", 3, _glGetVertexAttribIivEXT_args};

static const char * _glGetVertexAttribIuivEXT_args[3] = {"index", "pname", "params"};
static const trace::FunctionSig _glGetVertexAttribIuivEXT_sig = {2826, "glGetVertexAttribIuivEXT", 3, _glGetVertexAttribIuivEXT_args};

static const char * _glBeginVideoCaptureNV_args[1] = {"video_capture_slot"};
static const trace::FunctionSig _glBeginVideoCaptureNV_sig = {2827, "glBeginVideoCaptureNV", 1, _glBeginVideoCaptureNV_args};

static const char * _glBindVideoCaptureStreamBufferNV_args[4] = {"video_capture_slot", "stream", "frame_region", "offset"};
static const trace::FunctionSig _glBindVideoCaptureStreamBufferNV_sig = {2828, "glBindVideoCaptureStreamBufferNV", 4, _glBindVideoCaptureStreamBufferNV_args};

static const char * _glBindVideoCaptureStreamTextureNV_args[5] = {"video_capture_slot", "stream", "frame_region", "target", "texture"};
static const trace::FunctionSig _glBindVideoCaptureStreamTextureNV_sig = {2829, "glBindVideoCaptureStreamTextureNV", 5, _glBindVideoCaptureStreamTextureNV_args};

static const char * _glEndVideoCaptureNV_args[1] = {"video_capture_slot"};
static const trace::FunctionSig _glEndVideoCaptureNV_sig = {2830, "glEndVideoCaptureNV", 1, _glEndVideoCaptureNV_args};

static const char * _glGetVideoCaptureivNV_args[3] = {"video_capture_slot", "pname", "params"};
static const trace::FunctionSig _glGetVideoCaptureivNV_sig = {2831, "glGetVideoCaptureivNV", 3, _glGetVideoCaptureivNV_args};

static const char * _glGetVideoCaptureStreamivNV_args[4] = {"video_capture_slot", "stream", "pname", "params"};
static const trace::FunctionSig _glGetVideoCaptureStreamivNV_sig = {2832, "glGetVideoCaptureStreamivNV", 4, _glGetVideoCaptureStreamivNV_args};

static const char * _glGetVideoCaptureStreamfvNV_args[4] = {"video_capture_slot", "stream", "pname", "params"};
static const trace::FunctionSig _glGetVideoCaptureStreamfvNV_sig = {2833, "glGetVideoCaptureStreamfvNV", 4, _glGetVideoCaptureStreamfvNV_args};

static const char * _glGetVideoCaptureStreamdvNV_args[4] = {"video_capture_slot", "stream", "pname", "params"};
static const trace::FunctionSig _glGetVideoCaptureStreamdvNV_sig = {2834, "glGetVideoCaptureStreamdvNV", 4, _glGetVideoCaptureStreamdvNV_args};

static const char * _glVideoCaptureNV_args[3] = {"video_capture_slot", "sequence_num", "capture_time"};
static const trace::FunctionSig _glVideoCaptureNV_sig = {2835, "glVideoCaptureNV", 3, _glVideoCaptureNV_args};

static const char * _glVideoCaptureStreamParameterivNV_args[4] = {"video_capture_slot", "stream", "pname", "params"};
static const trace::FunctionSig _glVideoCaptureStreamParameterivNV_sig = {2836, "glVideoCaptureStreamParameterivNV", 4, _glVideoCaptureStreamParameterivNV_args};

static const char * _glVideoCaptureStreamParameterfvNV_args[4] = {"video_capture_slot", "stream", "pname", "params"};
static const trace::FunctionSig _glVideoCaptureStreamParameterfvNV_sig = {2837, "glVideoCaptureStreamParameterfvNV", 4, _glVideoCaptureStreamParameterfvNV_args};

static const char * _glVideoCaptureStreamParameterdvNV_args[4] = {"video_capture_slot", "stream", "pname", "params"};
static const trace::FunctionSig _glVideoCaptureStreamParameterdvNV_sig = {2838, "glVideoCaptureStreamParameterdvNV", 4, _glVideoCaptureStreamParameterdvNV_args};

static const char * _glBlendEquationSeparateOES_args[2] = {"modeRGB", "modeAlpha"};
static const trace::FunctionSig _glBlendEquationSeparateOES_sig = {2839, "glBlendEquationSeparateOES", 2, _glBlendEquationSeparateOES_args};

static const char * _glBlendFuncSeparateOES_args[4] = {"sfactorRGB", "dfactorRGB", "sfactorAlpha", "dfactorAlpha"};
static const trace::FunctionSig _glBlendFuncSeparateOES_sig = {2840, "glBlendFuncSeparateOES", 4, _glBlendFuncSeparateOES_args};

static const char * _glBlendEquationOES_args[1] = {"mode"};
static const trace::FunctionSig _glBlendEquationOES_sig = {2841, "glBlendEquationOES", 1, _glBlendEquationOES_args};

static const char * _glDrawTexfOES_args[5] = {"x", "y", "z", "width", "height"};
static const trace::FunctionSig _glDrawTexfOES_sig = {2842, "glDrawTexfOES", 5, _glDrawTexfOES_args};

static const char * _glDrawTexfvOES_args[1] = {"coords"};
static const trace::FunctionSig _glDrawTexfvOES_sig = {2843, "glDrawTexfvOES", 1, _glDrawTexfvOES_args};

static const char * _glDrawTexiOES_args[5] = {"x", "y", "z", "width", "height"};
static const trace::FunctionSig _glDrawTexiOES_sig = {2844, "glDrawTexiOES", 5, _glDrawTexiOES_args};

static const char * _glDrawTexivOES_args[1] = {"coords"};
static const trace::FunctionSig _glDrawTexivOES_sig = {2845, "glDrawTexivOES", 1, _glDrawTexivOES_args};

static const char * _glDrawTexsOES_args[5] = {"x", "y", "z", "width", "height"};
static const trace::FunctionSig _glDrawTexsOES_sig = {2846, "glDrawTexsOES", 5, _glDrawTexsOES_args};

static const char * _glDrawTexsvOES_args[1] = {"coords"};
static const trace::FunctionSig _glDrawTexsvOES_sig = {2847, "glDrawTexsvOES", 1, _glDrawTexsvOES_args};

static const char * _glIsRenderbufferOES_args[1] = {"renderbuffer"};
static const trace::FunctionSig _glIsRenderbufferOES_sig = {2848, "glIsRenderbufferOES", 1, _glIsRenderbufferOES_args};

static const char * _glBindRenderbufferOES_args[2] = {"target", "renderbuffer"};
static const trace::FunctionSig _glBindRenderbufferOES_sig = {2849, "glBindRenderbufferOES", 2, _glBindRenderbufferOES_args};

static const char * _glDeleteRenderbuffersOES_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glDeleteRenderbuffersOES_sig = {2850, "glDeleteRenderbuffersOES", 2, _glDeleteRenderbuffersOES_args};

static const char * _glGenRenderbuffersOES_args[2] = {"n", "renderbuffers"};
static const trace::FunctionSig _glGenRenderbuffersOES_sig = {2851, "glGenRenderbuffersOES", 2, _glGenRenderbuffersOES_args};

static const char * _glRenderbufferStorageOES_args[4] = {"target", "internalformat", "width", "height"};
static const trace::FunctionSig _glRenderbufferStorageOES_sig = {2852, "glRenderbufferStorageOES", 4, _glRenderbufferStorageOES_args};

static const char * _glGetRenderbufferParameterivOES_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetRenderbufferParameterivOES_sig = {2853, "glGetRenderbufferParameterivOES", 3, _glGetRenderbufferParameterivOES_args};

static const char * _glIsFramebufferOES_args[1] = {"framebuffer"};
static const trace::FunctionSig _glIsFramebufferOES_sig = {2854, "glIsFramebufferOES", 1, _glIsFramebufferOES_args};

static const char * _glBindFramebufferOES_args[2] = {"target", "framebuffer"};
static const trace::FunctionSig _glBindFramebufferOES_sig = {2855, "glBindFramebufferOES", 2, _glBindFramebufferOES_args};

static const char * _glDeleteFramebuffersOES_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glDeleteFramebuffersOES_sig = {2856, "glDeleteFramebuffersOES", 2, _glDeleteFramebuffersOES_args};

static const char * _glGenFramebuffersOES_args[2] = {"n", "framebuffers"};
static const trace::FunctionSig _glGenFramebuffersOES_sig = {2857, "glGenFramebuffersOES", 2, _glGenFramebuffersOES_args};

static const char * _glCheckFramebufferStatusOES_args[1] = {"target"};
static const trace::FunctionSig _glCheckFramebufferStatusOES_sig = {2858, "glCheckFramebufferStatusOES", 1, _glCheckFramebufferStatusOES_args};

static const char * _glFramebufferTexture2DOES_args[5] = {"target", "attachment", "textarget", "texture", "level"};
static const trace::FunctionSig _glFramebufferTexture2DOES_sig = {2859, "glFramebufferTexture2DOES", 5, _glFramebufferTexture2DOES_args};

static const char * _glFramebufferRenderbufferOES_args[4] = {"target", "attachment", "renderbuffertarget", "renderbuffer"};
static const trace::FunctionSig _glFramebufferRenderbufferOES_sig = {2860, "glFramebufferRenderbufferOES", 4, _glFramebufferRenderbufferOES_args};

static const char * _glGetFramebufferAttachmentParameterivOES_args[4] = {"target", "attachment", "pname", "params"};
static const trace::FunctionSig _glGetFramebufferAttachmentParameterivOES_sig = {2861, "glGetFramebufferAttachmentParameterivOES", 4, _glGetFramebufferAttachmentParameterivOES_args};

static const char * _glGenerateMipmapOES_args[1] = {"target"};
static const trace::FunctionSig _glGenerateMipmapOES_sig = {2862, "glGenerateMipmapOES", 1, _glGenerateMipmapOES_args};

static const char * _glGetProgramBinaryOES_args[5] = {"program", "bufSize", "length", "binaryFormat", "binary"};
static const trace::FunctionSig _glGetProgramBinaryOES_sig = {2863, "glGetProgramBinaryOES", 5, _glGetProgramBinaryOES_args};

static const char * _glProgramBinaryOES_args[4] = {"program", "binaryFormat", "binary", "length"};
static const trace::FunctionSig _glProgramBinaryOES_sig = {2864, "glProgramBinaryOES", 4, _glProgramBinaryOES_args};

static const char * _glGetBufferPointervOES_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetBufferPointervOES_sig = {2865, "glGetBufferPointervOES", 3, _glGetBufferPointervOES_args};

static const char * _glMapBufferOES_args[2] = {"target", "access"};
static const trace::FunctionSig _glMapBufferOES_sig = {2866, "glMapBufferOES", 2, _glMapBufferOES_args};

static const char * _glUnmapBufferOES_args[1] = {"target"};
static const trace::FunctionSig _glUnmapBufferOES_sig = {2867, "glUnmapBufferOES", 1, _glUnmapBufferOES_args};

static const char * _glCurrentPaletteMatrixOES_args[1] = {"index"};
static const trace::FunctionSig _glCurrentPaletteMatrixOES_sig = {2868, "glCurrentPaletteMatrixOES", 1, _glCurrentPaletteMatrixOES_args};

static const char ** _glLoadPaletteFromModelViewMatrixOES_args = NULL;
static const trace::FunctionSig _glLoadPaletteFromModelViewMatrixOES_sig = {2869, "glLoadPaletteFromModelViewMatrixOES", 0, _glLoadPaletteFromModelViewMatrixOES_args};

static const char * _glMatrixIndexPointerOES_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glMatrixIndexPointerOES_sig = {2870, "glMatrixIndexPointerOES", 4, _glMatrixIndexPointerOES_args};

static const char * _glWeightPointerOES_args[4] = {"size", "type", "stride", "pointer"};
static const trace::FunctionSig _glWeightPointerOES_sig = {2871, "glWeightPointerOES", 4, _glWeightPointerOES_args};

static const char * _glPointSizePointerOES_args[3] = {"type", "stride", "ptr"};
static const trace::FunctionSig _glPointSizePointerOES_sig = {2872, "glPointSizePointerOES", 3, _glPointSizePointerOES_args};

static const char * _glQueryMatrixxOES_args[2] = {"mantissa", "exponent"};
static const trace::FunctionSig _glQueryMatrixxOES_sig = {2873, "glQueryMatrixxOES", 2, _glQueryMatrixxOES_args};

static const char * _glClearDepthfOES_args[1] = {"depth"};
static const trace::FunctionSig _glClearDepthfOES_sig = {2874, "glClearDepthfOES", 1, _glClearDepthfOES_args};

static const char * _glClipPlanefOES_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glClipPlanefOES_sig = {2875, "glClipPlanefOES", 2, _glClipPlanefOES_args};

static const char * _glDepthRangefOES_args[2] = {"n", "f"};
static const trace::FunctionSig _glDepthRangefOES_sig = {2876, "glDepthRangefOES", 2, _glDepthRangefOES_args};

static const char * _glFrustumfOES_args[6] = {"l", "r", "b", "t", "n", "f"};
static const trace::FunctionSig _glFrustumfOES_sig = {2877, "glFrustumfOES", 6, _glFrustumfOES_args};

static const char * _glGetClipPlanefOES_args[2] = {"plane", "equation"};
static const trace::FunctionSig _glGetClipPlanefOES_sig = {2878, "glGetClipPlanefOES", 2, _glGetClipPlanefOES_args};

static const char * _glOrthofOES_args[6] = {"l", "r", "b", "t", "n", "f"};
static const trace::FunctionSig _glOrthofOES_sig = {2879, "glOrthofOES", 6, _glOrthofOES_args};

static const char * _glTexImage3DOES_args[10] = {"target", "level", "internalformat", "width", "height", "depth", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTexImage3DOES_sig = {2880, "glTexImage3DOES", 10, _glTexImage3DOES_args};

static const char * _glTexSubImage3DOES_args[11] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage3DOES_sig = {2881, "glTexSubImage3DOES", 11, _glTexSubImage3DOES_args};

static const char * _glCopyTexSubImage3DOES_args[9] = {"target", "level", "xoffset", "yoffset", "zoffset", "x", "y", "width", "height"};
static const trace::FunctionSig _glCopyTexSubImage3DOES_sig = {2882, "glCopyTexSubImage3DOES", 9, _glCopyTexSubImage3DOES_args};

static const char * _glCompressedTexImage3DOES_args[9] = {"target", "level", "internalformat", "width", "height", "depth", "border", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexImage3DOES_sig = {2883, "glCompressedTexImage3DOES", 9, _glCompressedTexImage3DOES_args};

static const char * _glCompressedTexSubImage3DOES_args[11] = {"target", "level", "xoffset", "yoffset", "zoffset", "width", "height", "depth", "format", "imageSize", "data"};
static const trace::FunctionSig _glCompressedTexSubImage3DOES_sig = {2884, "glCompressedTexSubImage3DOES", 11, _glCompressedTexSubImage3DOES_args};

static const char * _glFramebufferTexture3DOES_args[6] = {"target", "attachment", "textarget", "texture", "level", "zoffset"};
static const trace::FunctionSig _glFramebufferTexture3DOES_sig = {2885, "glFramebufferTexture3DOES", 6, _glFramebufferTexture3DOES_args};

static const char * _glTexGenfOES_args[3] = {"coord", "pname", "param"};
static const trace::FunctionSig _glTexGenfOES_sig = {2886, "glTexGenfOES", 3, _glTexGenfOES_args};

static const char * _glTexGenfvOES_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glTexGenfvOES_sig = {2887, "glTexGenfvOES", 3, _glTexGenfvOES_args};

static const char * _glTexGeniOES_args[3] = {"coord", "pname", "param"};
static const trace::FunctionSig _glTexGeniOES_sig = {2888, "glTexGeniOES", 3, _glTexGeniOES_args};

static const char * _glTexGenivOES_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glTexGenivOES_sig = {2889, "glTexGenivOES", 3, _glTexGenivOES_args};

static const char * _glTexGenxOES_args[3] = {"coord", "pname", "param"};
static const trace::FunctionSig _glTexGenxOES_sig = {2890, "glTexGenxOES", 3, _glTexGenxOES_args};

static const char * _glTexGenxvOES_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glTexGenxvOES_sig = {2891, "glTexGenxvOES", 3, _glTexGenxvOES_args};

static const char * _glGetTexGenfvOES_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glGetTexGenfvOES_sig = {2892, "glGetTexGenfvOES", 3, _glGetTexGenfvOES_args};

static const char * _glGetTexGenivOES_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glGetTexGenivOES_sig = {2893, "glGetTexGenivOES", 3, _glGetTexGenivOES_args};

static const char * _glGetTexGenxvOES_args[3] = {"coord", "pname", "params"};
static const trace::FunctionSig _glGetTexGenxvOES_sig = {2894, "glGetTexGenxvOES", 3, _glGetTexGenxvOES_args};

static const char * _glBindVertexArrayOES_args[1] = {"array"};
static const trace::FunctionSig _glBindVertexArrayOES_sig = {2895, "glBindVertexArrayOES", 1, _glBindVertexArrayOES_args};

static const char * _glDeleteVertexArraysOES_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glDeleteVertexArraysOES_sig = {2896, "glDeleteVertexArraysOES", 2, _glDeleteVertexArraysOES_args};

static const char * _glGenVertexArraysOES_args[2] = {"n", "arrays"};
static const trace::FunctionSig _glGenVertexArraysOES_sig = {2897, "glGenVertexArraysOES", 2, _glGenVertexArraysOES_args};

static const char * _glIsVertexArrayOES_args[1] = {"array"};
static const trace::FunctionSig _glIsVertexArrayOES_sig = {2898, "glIsVertexArrayOES", 1, _glIsVertexArrayOES_args};

static const char * _glViewportArrayvOES_args[3] = {"first", "count", "v"};
static const trace::FunctionSig _glViewportArrayvOES_sig = {2899, "glViewportArrayvOES", 3, _glViewportArrayvOES_args};

static const char * _glViewportIndexedfOES_args[5] = {"index", "x", "y", "w", "h"};
static const trace::FunctionSig _glViewportIndexedfOES_sig = {2900, "glViewportIndexedfOES", 5, _glViewportIndexedfOES_args};

static const char * _glViewportIndexedfvOES_args[2] = {"index", "v"};
static const trace::FunctionSig _glViewportIndexedfvOES_sig = {2901, "glViewportIndexedfvOES", 2, _glViewportIndexedfvOES_args};

static const char * _glScissorArrayvOES_args[3] = {"first", "count", "v"};
static const trace::FunctionSig _glScissorArrayvOES_sig = {2902, "glScissorArrayvOES", 3, _glScissorArrayvOES_args};

static const char * _glScissorIndexedOES_args[5] = {"index", "left", "bottom", "width", "height"};
static const trace::FunctionSig _glScissorIndexedOES_sig = {2903, "glScissorIndexedOES", 5, _glScissorIndexedOES_args};

static const char * _glScissorIndexedvOES_args[2] = {"index", "v"};
static const trace::FunctionSig _glScissorIndexedvOES_sig = {2904, "glScissorIndexedvOES", 2, _glScissorIndexedvOES_args};

static const char * _glDepthRangeArrayfvOES_args[3] = {"first", "count", "v"};
static const trace::FunctionSig _glDepthRangeArrayfvOES_sig = {2905, "glDepthRangeArrayfvOES", 3, _glDepthRangeArrayfvOES_args};

static const char * _glDepthRangeIndexedfOES_args[3] = {"index", "n", "f"};
static const trace::FunctionSig _glDepthRangeIndexedfOES_sig = {2906, "glDepthRangeIndexedfOES", 3, _glDepthRangeIndexedfOES_args};

static const char * _glGetFloati_vOES_args[3] = {"target", "index", "data"};
static const trace::FunctionSig _glGetFloati_vOES_sig = {2907, "glGetFloati_vOES", 3, _glGetFloati_vOES_args};

static const char * _glFramebufferTextureMultiviewOVR_args[6] = {"target", "attachment", "texture", "level", "baseViewIndex", "numViews"};
static const trace::FunctionSig _glFramebufferTextureMultiviewOVR_sig = {2908, "glFramebufferTextureMultiviewOVR", 6, _glFramebufferTextureMultiviewOVR_args};

static const char * _glNamedFramebufferTextureMultiviewOVR_args[6] = {"framebuffer", "attachment", "texture", "level", "baseViewIndex", "numViews"};
static const trace::FunctionSig _glNamedFramebufferTextureMultiviewOVR_sig = {2909, "glNamedFramebufferTextureMultiviewOVR", 6, _glNamedFramebufferTextureMultiviewOVR_args};

static const char * _glHintPGI_args[2] = {"target", "mode"};
static const trace::FunctionSig _glHintPGI_sig = {2910, "glHintPGI", 2, _glHintPGI_args};

static const char * _glDetailTexFuncSGIS_args[3] = {"target", "n", "points"};
static const trace::FunctionSig _glDetailTexFuncSGIS_sig = {2911, "glDetailTexFuncSGIS", 3, _glDetailTexFuncSGIS_args};

static const char * _glGetDetailTexFuncSGIS_args[2] = {"target", "points"};
static const trace::FunctionSig _glGetDetailTexFuncSGIS_sig = {2912, "glGetDetailTexFuncSGIS", 2, _glGetDetailTexFuncSGIS_args};

static const char * _glFogFuncSGIS_args[2] = {"n", "points"};
static const trace::FunctionSig _glFogFuncSGIS_sig = {2913, "glFogFuncSGIS", 2, _glFogFuncSGIS_args};

static const char * _glGetFogFuncSGIS_args[1] = {"points"};
static const trace::FunctionSig _glGetFogFuncSGIS_sig = {2914, "glGetFogFuncSGIS", 1, _glGetFogFuncSGIS_args};

static const char * _glSampleMaskSGIS_args[2] = {"value", "invert"};
static const trace::FunctionSig _glSampleMaskSGIS_sig = {2915, "glSampleMaskSGIS", 2, _glSampleMaskSGIS_args};

static const char * _glSamplePatternSGIS_args[1] = {"pattern"};
static const trace::FunctionSig _glSamplePatternSGIS_sig = {2916, "glSamplePatternSGIS", 1, _glSamplePatternSGIS_args};

static const char * _glPixelTexGenParameteriSGIS_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPixelTexGenParameteriSGIS_sig = {2917, "glPixelTexGenParameteriSGIS", 2, _glPixelTexGenParameteriSGIS_args};

static const char * _glPixelTexGenParameterivSGIS_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPixelTexGenParameterivSGIS_sig = {2918, "glPixelTexGenParameterivSGIS", 2, _glPixelTexGenParameterivSGIS_args};

static const char * _glPixelTexGenParameterfSGIS_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPixelTexGenParameterfSGIS_sig = {2919, "glPixelTexGenParameterfSGIS", 2, _glPixelTexGenParameterfSGIS_args};

static const char * _glPixelTexGenParameterfvSGIS_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPixelTexGenParameterfvSGIS_sig = {2920, "glPixelTexGenParameterfvSGIS", 2, _glPixelTexGenParameterfvSGIS_args};

static const char * _glGetPixelTexGenParameterivSGIS_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetPixelTexGenParameterivSGIS_sig = {2921, "glGetPixelTexGenParameterivSGIS", 2, _glGetPixelTexGenParameterivSGIS_args};

static const char * _glGetPixelTexGenParameterfvSGIS_args[2] = {"pname", "params"};
static const trace::FunctionSig _glGetPixelTexGenParameterfvSGIS_sig = {2922, "glGetPixelTexGenParameterfvSGIS", 2, _glGetPixelTexGenParameterfvSGIS_args};

static const char * _glPointParameterfSGIS_args[2] = {"pname", "param"};
static const trace::FunctionSig _glPointParameterfSGIS_sig = {2923, "glPointParameterfSGIS", 2, _glPointParameterfSGIS_args};

static const char * _glPointParameterfvSGIS_args[2] = {"pname", "params"};
static const trace::FunctionSig _glPointParameterfvSGIS_sig = {2924, "glPointParameterfvSGIS", 2, _glPointParameterfvSGIS_args};

static const char * _glSharpenTexFuncSGIS_args[3] = {"target", "n", "points"};
static const trace::FunctionSig _glSharpenTexFuncSGIS_sig = {2925, "glSharpenTexFuncSGIS", 3, _glSharpenTexFuncSGIS_args};

static const char * _glGetSharpenTexFuncSGIS_args[2] = {"target", "points"};
static const trace::FunctionSig _glGetSharpenTexFuncSGIS_sig = {2926, "glGetSharpenTexFuncSGIS", 2, _glGetSharpenTexFuncSGIS_args};

static const char * _glTexImage4DSGIS_args[11] = {"target", "level", "internalformat", "width", "height", "depth", "size4d", "border", "format", "type", "pixels"};
static const trace::FunctionSig _glTexImage4DSGIS_sig = {2927, "glTexImage4DSGIS", 11, _glTexImage4DSGIS_args};

static const char * _glTexSubImage4DSGIS_args[13] = {"target", "level", "xoffset", "yoffset", "zoffset", "woffset", "width", "height", "depth", "size4d", "format", "type", "pixels"};
static const trace::FunctionSig _glTexSubImage4DSGIS_sig = {2928, "glTexSubImage4DSGIS", 13, _glTexSubImage4DSGIS_args};

static const char * _glTextureColorMaskSGIS_args[4] = {"red", "green", "blue", "alpha"};
static const trace::FunctionSig _glTextureColorMaskSGIS_sig = {2929, "glTextureColorMaskSGIS", 4, _glTextureColorMaskSGIS_args};

static const char * _glGetTexFilterFuncSGIS_args[3] = {"target", "filter", "weights"};
static const trace::FunctionSig _glGetTexFilterFuncSGIS_sig = {2930, "glGetTexFilterFuncSGIS", 3, _glGetTexFilterFuncSGIS_args};

static const char * _glTexFilterFuncSGIS_args[4] = {"target", "filter", "n", "weights"};
static const trace::FunctionSig _glTexFilterFuncSGIS_sig = {2931, "glTexFilterFuncSGIS", 4, _glTexFilterFuncSGIS_args};

static const char * _glAsyncMarkerSGIX_args[1] = {"marker"};
static const trace::FunctionSig _glAsyncMarkerSGIX_sig = {2932, "glAsyncMarkerSGIX", 1, _glAsyncMarkerSGIX_args};

static const char * _glFinishAsyncSGIX_args[1] = {"markerp"};
static const trace::FunctionSig _glFinishAsyncSGIX_sig = {2933, "glFinishAsyncSGIX", 1, _glFinishAsyncSGIX_args};

static const char * _glPollAsyncSGIX_args[1] = {"markerp"};
static const trace::FunctionSig _glPollAsyncSGIX_sig = {2934, "glPollAsyncSGIX", 1, _glPollAsyncSGIX_args};

static const char * _glGenAsyncMarkersSGIX_args[1] = {"range"};
static const trace::FunctionSig _glGenAsyncMarkersSGIX_sig = {2935, "glGenAsyncMarkersSGIX", 1, _glGenAsyncMarkersSGIX_args};

static const char * _glDeleteAsyncMarkersSGIX_args[2] = {"marker", "range"};
static const trace::FunctionSig _glDeleteAsyncMarkersSGIX_sig = {2936, "glDeleteAsyncMarkersSGIX", 2, _glDeleteAsyncMarkersSGIX_args};

static const char * _glIsAsyncMarkerSGIX_args[1] = {"marker"};
static const trace::FunctionSig _glIsAsyncMarkerSGIX_sig = {2937, "glIsAsyncMarkerSGIX", 1, _glIsAsyncMarkerSGIX_args};

static const char ** _glFlushRasterSGIX_args = NULL;
static const trace::FunctionSig _glFlushRasterSGIX_sig = {2938, "glFlushRasterSGIX", 0, _glFlushRasterSGIX_args};

static const char * _glFragmentColorMaterialSGIX_args[2] = {"face", "mode"};
static const trace::FunctionSig _glFragmentColorMaterialSGIX_sig = {2939, "glFragmentColorMaterialSGIX", 2, _glFragmentColorMaterialSGIX_args};

static const char * _glFragmentLightfSGIX_args[3] = {"light", "pname", "param"};
static const trace::FunctionSig _glFragmentLightfSGIX_sig = {2940, "glFragmentLightfSGIX", 3, _glFragmentLightfSGIX_args};

static const char * _glFragmentLightfvSGIX_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glFragmentLightfvSGIX_sig = {2941, "glFragmentLightfvSGIX", 3, _glFragmentLightfvSGIX_args};

static const char * _glFragmentLightiSGIX_args[3] = {"light", "pname", "param"};
static const trace::FunctionSig _glFragmentLightiSGIX_sig = {2942, "glFragmentLightiSGIX", 3, _glFragmentLightiSGIX_args};

static const char * _glFragmentLightivSGIX_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glFragmentLightivSGIX_sig = {2943, "glFragmentLightivSGIX", 3, _glFragmentLightivSGIX_args};

static const char * _glFragmentLightModelfSGIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glFragmentLightModelfSGIX_sig = {2944, "glFragmentLightModelfSGIX", 2, _glFragmentLightModelfSGIX_args};

static const char * _glFragmentLightModelfvSGIX_args[2] = {"pname", "params"};
static const trace::FunctionSig _glFragmentLightModelfvSGIX_sig = {2945, "glFragmentLightModelfvSGIX", 2, _glFragmentLightModelfvSGIX_args};

static const char * _glFragmentLightModeliSGIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glFragmentLightModeliSGIX_sig = {2946, "glFragmentLightModeliSGIX", 2, _glFragmentLightModeliSGIX_args};

static const char * _glFragmentLightModelivSGIX_args[2] = {"pname", "params"};
static const trace::FunctionSig _glFragmentLightModelivSGIX_sig = {2947, "glFragmentLightModelivSGIX", 2, _glFragmentLightModelivSGIX_args};

static const char * _glFragmentMaterialfSGIX_args[3] = {"face", "pname", "param"};
static const trace::FunctionSig _glFragmentMaterialfSGIX_sig = {2948, "glFragmentMaterialfSGIX", 3, _glFragmentMaterialfSGIX_args};

static const char * _glFragmentMaterialfvSGIX_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glFragmentMaterialfvSGIX_sig = {2949, "glFragmentMaterialfvSGIX", 3, _glFragmentMaterialfvSGIX_args};

static const char * _glFragmentMaterialiSGIX_args[3] = {"face", "pname", "param"};
static const trace::FunctionSig _glFragmentMaterialiSGIX_sig = {2950, "glFragmentMaterialiSGIX", 3, _glFragmentMaterialiSGIX_args};

static const char * _glFragmentMaterialivSGIX_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glFragmentMaterialivSGIX_sig = {2951, "glFragmentMaterialivSGIX", 3, _glFragmentMaterialivSGIX_args};

static const char * _glGetFragmentLightfvSGIX_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glGetFragmentLightfvSGIX_sig = {2952, "glGetFragmentLightfvSGIX", 3, _glGetFragmentLightfvSGIX_args};

static const char * _glGetFragmentLightivSGIX_args[3] = {"light", "pname", "params"};
static const trace::FunctionSig _glGetFragmentLightivSGIX_sig = {2953, "glGetFragmentLightivSGIX", 3, _glGetFragmentLightivSGIX_args};

static const char * _glGetFragmentMaterialfvSGIX_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glGetFragmentMaterialfvSGIX_sig = {2954, "glGetFragmentMaterialfvSGIX", 3, _glGetFragmentMaterialfvSGIX_args};

static const char * _glGetFragmentMaterialivSGIX_args[3] = {"face", "pname", "params"};
static const trace::FunctionSig _glGetFragmentMaterialivSGIX_sig = {2955, "glGetFragmentMaterialivSGIX", 3, _glGetFragmentMaterialivSGIX_args};

static const char * _glLightEnviSGIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glLightEnviSGIX_sig = {2956, "glLightEnviSGIX", 2, _glLightEnviSGIX_args};

static const char * _glFrameZoomSGIX_args[1] = {"factor"};
static const trace::FunctionSig _glFrameZoomSGIX_sig = {2957, "glFrameZoomSGIX", 1, _glFrameZoomSGIX_args};

static const char * _glIglooInterfaceSGIX_args[2] = {"pname", "params"};
static const trace::FunctionSig _glIglooInterfaceSGIX_sig = {2958, "glIglooInterfaceSGIX", 2, _glIglooInterfaceSGIX_args};

static const char ** _glGetInstrumentsSGIX_args = NULL;
static const trace::FunctionSig _glGetInstrumentsSGIX_sig = {2959, "glGetInstrumentsSGIX", 0, _glGetInstrumentsSGIX_args};

static const char * _glInstrumentsBufferSGIX_args[2] = {"size", "buffer"};
static const trace::FunctionSig _glInstrumentsBufferSGIX_sig = {2960, "glInstrumentsBufferSGIX", 2, _glInstrumentsBufferSGIX_args};

static const char * _glPollInstrumentsSGIX_args[1] = {"marker_p"};
static const trace::FunctionSig _glPollInstrumentsSGIX_sig = {2961, "glPollInstrumentsSGIX", 1, _glPollInstrumentsSGIX_args};

static const char * _glReadInstrumentsSGIX_args[1] = {"marker"};
static const trace::FunctionSig _glReadInstrumentsSGIX_sig = {2962, "glReadInstrumentsSGIX", 1, _glReadInstrumentsSGIX_args};

static const char ** _glStartInstrumentsSGIX_args = NULL;
static const trace::FunctionSig _glStartInstrumentsSGIX_sig = {2963, "glStartInstrumentsSGIX", 0, _glStartInstrumentsSGIX_args};

static const char * _glStopInstrumentsSGIX_args[1] = {"marker"};
static const trace::FunctionSig _glStopInstrumentsSGIX_sig = {2964, "glStopInstrumentsSGIX", 1, _glStopInstrumentsSGIX_args};

static const char * _glGetListParameterfvSGIX_args[3] = {"list", "pname", "params"};
static const trace::FunctionSig _glGetListParameterfvSGIX_sig = {2965, "glGetListParameterfvSGIX", 3, _glGetListParameterfvSGIX_args};

static const char * _glGetListParameterivSGIX_args[3] = {"list", "pname", "params"};
static const trace::FunctionSig _glGetListParameterivSGIX_sig = {2966, "glGetListParameterivSGIX", 3, _glGetListParameterivSGIX_args};

static const char * _glListParameterfSGIX_args[3] = {"list", "pname", "param"};
static const trace::FunctionSig _glListParameterfSGIX_sig = {2967, "glListParameterfSGIX", 3, _glListParameterfSGIX_args};

static const char * _glListParameterfvSGIX_args[3] = {"list", "pname", "params"};
static const trace::FunctionSig _glListParameterfvSGIX_sig = {2968, "glListParameterfvSGIX", 3, _glListParameterfvSGIX_args};

static const char * _glListParameteriSGIX_args[3] = {"list", "pname", "param"};
static const trace::FunctionSig _glListParameteriSGIX_sig = {2969, "glListParameteriSGIX", 3, _glListParameteriSGIX_args};

static const char * _glListParameterivSGIX_args[3] = {"list", "pname", "params"};
static const trace::FunctionSig _glListParameterivSGIX_sig = {2970, "glListParameterivSGIX", 3, _glListParameterivSGIX_args};

static const char * _glPixelTexGenSGIX_args[1] = {"mode"};
static const trace::FunctionSig _glPixelTexGenSGIX_sig = {2971, "glPixelTexGenSGIX", 1, _glPixelTexGenSGIX_args};

static const char * _glDeformationMap3dSGIX_args[14] = {"target", "u1", "u2", "ustride", "uorder", "v1", "v2", "vstride", "vorder", "w1", "w2", "wstride", "worder", "points"};
static const trace::FunctionSig _glDeformationMap3dSGIX_sig = {2972, "glDeformationMap3dSGIX", 14, _glDeformationMap3dSGIX_args};

static const char * _glDeformationMap3fSGIX_args[14] = {"target", "u1", "u2", "ustride", "uorder", "v1", "v2", "vstride", "vorder", "w1", "w2", "wstride", "worder", "points"};
static const trace::FunctionSig _glDeformationMap3fSGIX_sig = {2973, "glDeformationMap3fSGIX", 14, _glDeformationMap3fSGIX_args};

static const char * _glDeformSGIX_args[1] = {"mask"};
static const trace::FunctionSig _glDeformSGIX_sig = {2974, "glDeformSGIX", 1, _glDeformSGIX_args};

static const char * _glLoadIdentityDeformationMapSGIX_args[1] = {"mask"};
static const trace::FunctionSig _glLoadIdentityDeformationMapSGIX_sig = {2975, "glLoadIdentityDeformationMapSGIX", 1, _glLoadIdentityDeformationMapSGIX_args};

static const char * _glReferencePlaneSGIX_args[1] = {"equation"};
static const trace::FunctionSig _glReferencePlaneSGIX_sig = {2976, "glReferencePlaneSGIX", 1, _glReferencePlaneSGIX_args};

static const char * _glSpriteParameterfSGIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glSpriteParameterfSGIX_sig = {2977, "glSpriteParameterfSGIX", 2, _glSpriteParameterfSGIX_args};

static const char * _glSpriteParameterfvSGIX_args[2] = {"pname", "params"};
static const trace::FunctionSig _glSpriteParameterfvSGIX_sig = {2978, "glSpriteParameterfvSGIX", 2, _glSpriteParameterfvSGIX_args};

static const char * _glSpriteParameteriSGIX_args[2] = {"pname", "param"};
static const trace::FunctionSig _glSpriteParameteriSGIX_sig = {2979, "glSpriteParameteriSGIX", 2, _glSpriteParameteriSGIX_args};

static const char * _glSpriteParameterivSGIX_args[2] = {"pname", "params"};
static const trace::FunctionSig _glSpriteParameterivSGIX_sig = {2980, "glSpriteParameterivSGIX", 2, _glSpriteParameterivSGIX_args};

static const char ** _glTagSampleBufferSGIX_args = NULL;
static const trace::FunctionSig _glTagSampleBufferSGIX_sig = {2981, "glTagSampleBufferSGIX", 0, _glTagSampleBufferSGIX_args};

static const char * _glColorTableSGI_args[6] = {"target", "internalformat", "width", "format", "type", "table"};
static const trace::FunctionSig _glColorTableSGI_sig = {2982, "glColorTableSGI", 6, _glColorTableSGI_args};

static const char * _glColorTableParameterfvSGI_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glColorTableParameterfvSGI_sig = {2983, "glColorTableParameterfvSGI", 3, _glColorTableParameterfvSGI_args};

static const char * _glColorTableParameterivSGI_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glColorTableParameterivSGI_sig = {2984, "glColorTableParameterivSGI", 3, _glColorTableParameterivSGI_args};

static const char * _glCopyColorTableSGI_args[5] = {"target", "internalformat", "x", "y", "width"};
static const trace::FunctionSig _glCopyColorTableSGI_sig = {2985, "glCopyColorTableSGI", 5, _glCopyColorTableSGI_args};

static const char * _glGetColorTableSGI_args[4] = {"target", "format", "type", "table"};
static const trace::FunctionSig _glGetColorTableSGI_sig = {2986, "glGetColorTableSGI", 4, _glGetColorTableSGI_args};

static const char * _glGetColorTableParameterfvSGI_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetColorTableParameterfvSGI_sig = {2987, "glGetColorTableParameterfvSGI", 3, _glGetColorTableParameterfvSGI_args};

static const char * _glGetColorTableParameterivSGI_args[3] = {"target", "pname", "params"};
static const trace::FunctionSig _glGetColorTableParameterivSGI_sig = {2988, "glGetColorTableParameterivSGI", 3, _glGetColorTableParameterivSGI_args};

static const char ** _glFinishTextureSUNX_args = NULL;
static const trace::FunctionSig _glFinishTextureSUNX_sig = {2989, "glFinishTextureSUNX", 0, _glFinishTextureSUNX_args};

static const char * _glGlobalAlphaFactorbSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactorbSUN_sig = {2990, "glGlobalAlphaFactorbSUN", 1, _glGlobalAlphaFactorbSUN_args};

static const char * _glGlobalAlphaFactorsSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactorsSUN_sig = {2991, "glGlobalAlphaFactorsSUN", 1, _glGlobalAlphaFactorsSUN_args};

static const char * _glGlobalAlphaFactoriSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactoriSUN_sig = {2992, "glGlobalAlphaFactoriSUN", 1, _glGlobalAlphaFactoriSUN_args};

static const char * _glGlobalAlphaFactorfSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactorfSUN_sig = {2993, "glGlobalAlphaFactorfSUN", 1, _glGlobalAlphaFactorfSUN_args};

static const char * _glGlobalAlphaFactordSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactordSUN_sig = {2994, "glGlobalAlphaFactordSUN", 1, _glGlobalAlphaFactordSUN_args};

static const char * _glGlobalAlphaFactorubSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactorubSUN_sig = {2995, "glGlobalAlphaFactorubSUN", 1, _glGlobalAlphaFactorubSUN_args};

static const char * _glGlobalAlphaFactorusSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactorusSUN_sig = {2996, "glGlobalAlphaFactorusSUN", 1, _glGlobalAlphaFactorusSUN_args};

static const char * _glGlobalAlphaFactoruiSUN_args[1] = {"factor"};
static const trace::FunctionSig _glGlobalAlphaFactoruiSUN_sig = {2997, "glGlobalAlphaFactoruiSUN", 1, _glGlobalAlphaFactoruiSUN_args};

static const char * _glDrawMeshArraysSUN_args[4] = {"mode", "first", "count", "width"};
static const trace::FunctionSig _glDrawMeshArraysSUN_sig = {2998, "glDrawMeshArraysSUN", 4, _glDrawMeshArraysSUN_args};

static const char * _glReplacementCodeuiSUN_args[1] = {"code"};
static const trace::FunctionSig _glReplacementCodeuiSUN_sig = {2999, "glReplacementCodeuiSUN", 1, _glReplacementCodeuiSUN_args};

static const char * _glReplacementCodeusSUN_args[1] = {"code"};
static const trace::FunctionSig _glReplacementCodeusSUN_sig = {3000, "glReplacementCodeusSUN", 1, _glReplacementCodeusSUN_args};

static const char * _glReplacementCodeubSUN_args[1] = {"code"};
static const trace::FunctionSig _glReplacementCodeubSUN_sig = {3001, "glReplacementCodeubSUN", 1, _glReplacementCodeubSUN_args};

static const char * _glReplacementCodeuivSUN_args[1] = {"code"};
static const trace::FunctionSig _glReplacementCodeuivSUN_sig = {3002, "glReplacementCodeuivSUN", 1, _glReplacementCodeuivSUN_args};

static const char * _glReplacementCodeusvSUN_args[1] = {"code"};
static const trace::FunctionSig _glReplacementCodeusvSUN_sig = {3003, "glReplacementCodeusvSUN", 1, _glReplacementCodeusvSUN_args};

static const char * _glReplacementCodeubvSUN_args[1] = {"code"};
static const trace::FunctionSig _glReplacementCodeubvSUN_sig = {3004, "glReplacementCodeubvSUN", 1, _glReplacementCodeubvSUN_args};

static const char * _glReplacementCodePointerSUN_args[3] = {"type", "stride", "pointer"};
static const trace::FunctionSig _glReplacementCodePointerSUN_sig = {3005, "glReplacementCodePointerSUN", 3, _glReplacementCodePointerSUN_args};

static const char * _glColor4ubVertex2fSUN_args[6] = {"r", "g", "b", "a", "x", "y"};
static const trace::FunctionSig _glColor4ubVertex2fSUN_sig = {3006, "glColor4ubVertex2fSUN", 6, _glColor4ubVertex2fSUN_args};

static const char * _glColor4ubVertex2fvSUN_args[2] = {"c", "v"};
static const trace::FunctionSig _glColor4ubVertex2fvSUN_sig = {3007, "glColor4ubVertex2fvSUN", 2, _glColor4ubVertex2fvSUN_args};

static const char * _glColor4ubVertex3fSUN_args[7] = {"r", "g", "b", "a", "x", "y", "z"};
static const trace::FunctionSig _glColor4ubVertex3fSUN_sig = {3008, "glColor4ubVertex3fSUN", 7, _glColor4ubVertex3fSUN_args};

static const char * _glColor4ubVertex3fvSUN_args[2] = {"c", "v"};
static const trace::FunctionSig _glColor4ubVertex3fvSUN_sig = {3009, "glColor4ubVertex3fvSUN", 2, _glColor4ubVertex3fvSUN_args};

static const char * _glColor3fVertex3fSUN_args[6] = {"r", "g", "b", "x", "y", "z"};
static const trace::FunctionSig _glColor3fVertex3fSUN_sig = {3010, "glColor3fVertex3fSUN", 6, _glColor3fVertex3fSUN_args};

static const char * _glColor3fVertex3fvSUN_args[2] = {"c", "v"};
static const trace::FunctionSig _glColor3fVertex3fvSUN_sig = {3011, "glColor3fVertex3fvSUN", 2, _glColor3fVertex3fvSUN_args};

static const char * _glNormal3fVertex3fSUN_args[6] = {"nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glNormal3fVertex3fSUN_sig = {3012, "glNormal3fVertex3fSUN", 6, _glNormal3fVertex3fSUN_args};

static const char * _glNormal3fVertex3fvSUN_args[2] = {"n", "v"};
static const trace::FunctionSig _glNormal3fVertex3fvSUN_sig = {3013, "glNormal3fVertex3fvSUN", 2, _glNormal3fVertex3fvSUN_args};

static const char * _glColor4fNormal3fVertex3fSUN_args[10] = {"r", "g", "b", "a", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glColor4fNormal3fVertex3fSUN_sig = {3014, "glColor4fNormal3fVertex3fSUN", 10, _glColor4fNormal3fVertex3fSUN_args};

static const char * _glColor4fNormal3fVertex3fvSUN_args[3] = {"c", "n", "v"};
static const trace::FunctionSig _glColor4fNormal3fVertex3fvSUN_sig = {3015, "glColor4fNormal3fVertex3fvSUN", 3, _glColor4fNormal3fVertex3fvSUN_args};

static const char * _glTexCoord2fVertex3fSUN_args[5] = {"s", "t", "x", "y", "z"};
static const trace::FunctionSig _glTexCoord2fVertex3fSUN_sig = {3016, "glTexCoord2fVertex3fSUN", 5, _glTexCoord2fVertex3fSUN_args};

static const char * _glTexCoord2fVertex3fvSUN_args[2] = {"tc", "v"};
static const trace::FunctionSig _glTexCoord2fVertex3fvSUN_sig = {3017, "glTexCoord2fVertex3fvSUN", 2, _glTexCoord2fVertex3fvSUN_args};

static const char * _glTexCoord4fVertex4fSUN_args[8] = {"s", "t", "p", "q", "x", "y", "z", "w"};
static const trace::FunctionSig _glTexCoord4fVertex4fSUN_sig = {3018, "glTexCoord4fVertex4fSUN", 8, _glTexCoord4fVertex4fSUN_args};

static const char * _glTexCoord4fVertex4fvSUN_args[2] = {"tc", "v"};
static const trace::FunctionSig _glTexCoord4fVertex4fvSUN_sig = {3019, "glTexCoord4fVertex4fvSUN", 2, _glTexCoord4fVertex4fvSUN_args};

static const char * _glTexCoord2fColor4ubVertex3fSUN_args[9] = {"s", "t", "r", "g", "b", "a", "x", "y", "z"};
static const trace::FunctionSig _glTexCoord2fColor4ubVertex3fSUN_sig = {3020, "glTexCoord2fColor4ubVertex3fSUN", 9, _glTexCoord2fColor4ubVertex3fSUN_args};

static const char * _glTexCoord2fColor4ubVertex3fvSUN_args[3] = {"tc", "c", "v"};
static const trace::FunctionSig _glTexCoord2fColor4ubVertex3fvSUN_sig = {3021, "glTexCoord2fColor4ubVertex3fvSUN", 3, _glTexCoord2fColor4ubVertex3fvSUN_args};

static const char * _glTexCoord2fColor3fVertex3fSUN_args[8] = {"s", "t", "r", "g", "b", "x", "y", "z"};
static const trace::FunctionSig _glTexCoord2fColor3fVertex3fSUN_sig = {3022, "glTexCoord2fColor3fVertex3fSUN", 8, _glTexCoord2fColor3fVertex3fSUN_args};

static const char * _glTexCoord2fColor3fVertex3fvSUN_args[3] = {"tc", "c", "v"};
static const trace::FunctionSig _glTexCoord2fColor3fVertex3fvSUN_sig = {3023, "glTexCoord2fColor3fVertex3fvSUN", 3, _glTexCoord2fColor3fVertex3fvSUN_args};

static const char * _glTexCoord2fNormal3fVertex3fSUN_args[8] = {"s", "t", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glTexCoord2fNormal3fVertex3fSUN_sig = {3024, "glTexCoord2fNormal3fVertex3fSUN", 8, _glTexCoord2fNormal3fVertex3fSUN_args};

static const char * _glTexCoord2fNormal3fVertex3fvSUN_args[3] = {"tc", "n", "v"};
static const trace::FunctionSig _glTexCoord2fNormal3fVertex3fvSUN_sig = {3025, "glTexCoord2fNormal3fVertex3fvSUN", 3, _glTexCoord2fNormal3fVertex3fvSUN_args};

static const char * _glTexCoord2fColor4fNormal3fVertex3fSUN_args[12] = {"s", "t", "r", "g", "b", "a", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glTexCoord2fColor4fNormal3fVertex3fSUN_sig = {3026, "glTexCoord2fColor4fNormal3fVertex3fSUN", 12, _glTexCoord2fColor4fNormal3fVertex3fSUN_args};

static const char * _glTexCoord2fColor4fNormal3fVertex3fvSUN_args[4] = {"tc", "c", "n", "v"};
static const trace::FunctionSig _glTexCoord2fColor4fNormal3fVertex3fvSUN_sig = {3027, "glTexCoord2fColor4fNormal3fVertex3fvSUN", 4, _glTexCoord2fColor4fNormal3fVertex3fvSUN_args};

static const char * _glTexCoord4fColor4fNormal3fVertex4fSUN_args[15] = {"s", "t", "p", "q", "r", "g", "b", "a", "nx", "ny", "nz", "x", "y", "z", "w"};
static const trace::FunctionSig _glTexCoord4fColor4fNormal3fVertex4fSUN_sig = {3028, "glTexCoord4fColor4fNormal3fVertex4fSUN", 15, _glTexCoord4fColor4fNormal3fVertex4fSUN_args};

static const char * _glTexCoord4fColor4fNormal3fVertex4fvSUN_args[4] = {"tc", "c", "n", "v"};
static const trace::FunctionSig _glTexCoord4fColor4fNormal3fVertex4fvSUN_sig = {3029, "glTexCoord4fColor4fNormal3fVertex4fvSUN", 4, _glTexCoord4fColor4fNormal3fVertex4fvSUN_args};

static const char * _glReplacementCodeuiVertex3fSUN_args[4] = {"rc", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiVertex3fSUN_sig = {3030, "glReplacementCodeuiVertex3fSUN", 4, _glReplacementCodeuiVertex3fSUN_args};

static const char * _glReplacementCodeuiVertex3fvSUN_args[2] = {"rc", "v"};
static const trace::FunctionSig _glReplacementCodeuiVertex3fvSUN_sig = {3031, "glReplacementCodeuiVertex3fvSUN", 2, _glReplacementCodeuiVertex3fvSUN_args};

static const char * _glReplacementCodeuiColor4ubVertex3fSUN_args[8] = {"rc", "r", "g", "b", "a", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiColor4ubVertex3fSUN_sig = {3032, "glReplacementCodeuiColor4ubVertex3fSUN", 8, _glReplacementCodeuiColor4ubVertex3fSUN_args};

static const char * _glReplacementCodeuiColor4ubVertex3fvSUN_args[3] = {"rc", "c", "v"};
static const trace::FunctionSig _glReplacementCodeuiColor4ubVertex3fvSUN_sig = {3033, "glReplacementCodeuiColor4ubVertex3fvSUN", 3, _glReplacementCodeuiColor4ubVertex3fvSUN_args};

static const char * _glReplacementCodeuiColor3fVertex3fSUN_args[7] = {"rc", "r", "g", "b", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiColor3fVertex3fSUN_sig = {3034, "glReplacementCodeuiColor3fVertex3fSUN", 7, _glReplacementCodeuiColor3fVertex3fSUN_args};

static const char * _glReplacementCodeuiColor3fVertex3fvSUN_args[3] = {"rc", "c", "v"};
static const trace::FunctionSig _glReplacementCodeuiColor3fVertex3fvSUN_sig = {3035, "glReplacementCodeuiColor3fVertex3fvSUN", 3, _glReplacementCodeuiColor3fVertex3fvSUN_args};

static const char * _glReplacementCodeuiNormal3fVertex3fSUN_args[7] = {"rc", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiNormal3fVertex3fSUN_sig = {3036, "glReplacementCodeuiNormal3fVertex3fSUN", 7, _glReplacementCodeuiNormal3fVertex3fSUN_args};

static const char * _glReplacementCodeuiNormal3fVertex3fvSUN_args[3] = {"rc", "n", "v"};
static const trace::FunctionSig _glReplacementCodeuiNormal3fVertex3fvSUN_sig = {3037, "glReplacementCodeuiNormal3fVertex3fvSUN", 3, _glReplacementCodeuiNormal3fVertex3fvSUN_args};

static const char * _glReplacementCodeuiColor4fNormal3fVertex3fSUN_args[11] = {"rc", "r", "g", "b", "a", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiColor4fNormal3fVertex3fSUN_sig = {3038, "glReplacementCodeuiColor4fNormal3fVertex3fSUN", 11, _glReplacementCodeuiColor4fNormal3fVertex3fSUN_args};

static const char * _glReplacementCodeuiColor4fNormal3fVertex3fvSUN_args[4] = {"rc", "c", "n", "v"};
static const trace::FunctionSig _glReplacementCodeuiColor4fNormal3fVertex3fvSUN_sig = {3039, "glReplacementCodeuiColor4fNormal3fVertex3fvSUN", 4, _glReplacementCodeuiColor4fNormal3fVertex3fvSUN_args};

static const char * _glReplacementCodeuiTexCoord2fVertex3fSUN_args[6] = {"rc", "s", "t", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiTexCoord2fVertex3fSUN_sig = {3040, "glReplacementCodeuiTexCoord2fVertex3fSUN", 6, _glReplacementCodeuiTexCoord2fVertex3fSUN_args};

static const char * _glReplacementCodeuiTexCoord2fVertex3fvSUN_args[3] = {"rc", "tc", "v"};
static const trace::FunctionSig _glReplacementCodeuiTexCoord2fVertex3fvSUN_sig = {3041, "glReplacementCodeuiTexCoord2fVertex3fvSUN", 3, _glReplacementCodeuiTexCoord2fVertex3fvSUN_args};

static const char * _glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_args[9] = {"rc", "s", "t", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_sig = {3042, "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", 9, _glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_args};

static const char * _glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_args[4] = {"rc", "tc", "n", "v"};
static const trace::FunctionSig _glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_sig = {3043, "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", 4, _glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_args};

static const char * _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_args[13] = {"rc", "s", "t", "r", "g", "b", "a", "nx", "ny", "nz", "x", "y", "z"};
static const trace::FunctionSig _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_sig = {3044, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", 13, _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_args};

static const char * _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_args[5] = {"rc", "tc", "c", "n", "v"};
static const trace::FunctionSig _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_sig = {3045, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", 5, _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_args};

static const char * _glAddSwapHintRectWIN_args[4] = {"x", "y", "width", "height"};
static const trace::FunctionSig _glAddSwapHintRectWIN_sig = {3046, "glAddSwapHintRectWIN", 4, _glAddSwapHintRectWIN_args};

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglChooseConfig_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    {
    int _cCEGLint1;
    for (_cCEGLint1 = 0; attrib_list && attrib_list[_cCEGLint1] != EGL_NONE; _cCEGLint1 += 2) {
    }
    _cCEGLint1 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint1);
    for (int _iCEGLint1 = 0; _iCEGLint1 < _cCEGLint1; _iCEGLint1++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint1]);
        trace::localWriter.endElement();
        if (_iCEGLint1 + 1 >= _cCEGLint1) {
            break;
        }
        switch (int(attrib_list[_iCEGLint1++])) {
        case EGL_ALPHA_MASK_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_ALPHA_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_BIND_TO_TEXTURE_RGB:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_BIND_TO_TEXTURE_RGBA:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_BLUE_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_BUFFER_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_COLOR_BUFFER_TYPE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint39_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_CONFIG_CAVEAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint40_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_CONFIG_ID:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_CONFORMANT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint31_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_DEPTH_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_GREEN_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_LEVEL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_LUMINANCE_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_MATCH_NATIVE_PIXMAP:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_NATIVE_RENDERABLE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint41_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_MAX_SWAP_INTERVAL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_MIN_SWAP_INTERVAL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_RED_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_SAMPLE_BUFFERS:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_SAMPLES:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_STENCIL_SIZE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_RENDERABLE_TYPE:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint31_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_TYPE:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint30_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_TRANSPARENT_TYPE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint42_sig, (attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_TRANSPARENT_RED_VALUE:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_TRANSPARENT_GREEN_VALUE:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        case EGL_TRANSPARENT_BLUE_VALUE :
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint1 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint1]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(config_size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (configs) {
        size_t _cEGLConfig = *num_config > 0 ? *num_config : 0;
        trace::localWriter.beginArray(_cEGLConfig);
        for (size_t _iEGLConfig = 0; _iEGLConfig < _cEGLConfig; ++_iEGLConfig) {
            trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)(configs)[_iEGLConfig]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (num_config) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_config);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCopyBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCopyBuffers(dpy, surface, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list) {
    EGLContext _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateContext_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)share_context);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLint15;
    for (_cCEGLint15 = 0; attrib_list && attrib_list[_cCEGLint15] != EGL_NONE; _cCEGLint15 += 2) {
    }
    _cCEGLint15 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint15);
    for (int _iCEGLint15 = 0; _iCEGLint15 < _cCEGLint15; _iCEGLint15++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint15]);
        trace::localWriter.endElement();
        if (_iCEGLint15 + 1 >= _cCEGLint15) {
            break;
        }
        switch (int(attrib_list[_iCEGLint15++])) {
        case EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_MAJOR_VERSION:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_MINOR_VERSION:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_FLAGS_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint44_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_OPENGL_PROFILE_MASK:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint45_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        case EGL_CONTEXT_PRIORITY_LEVEL_IMG:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint46_sig, (attrib_list)[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint15 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint15]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateContext(dpy, config, share_context, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    if (_result != EGL_NO_CONTEXT)
        gltrace::createContext((uintptr_t)_result, (uintptr_t)share_context);
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePbufferSurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLint13;
    for (_cCEGLint13 = 0; attrib_list && attrib_list[_cCEGLint13] != EGL_NONE; _cCEGLint13 += 2) {
    }
    _cCEGLint13 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint13);
    for (int _iCEGLint13 = 0; _iCEGLint13 < _cCEGLint13; _iCEGLint13++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint13]);
        trace::localWriter.endElement();
        if (_iCEGLint13 + 1 >= _cCEGLint13) {
            break;
        }
        switch (int(attrib_list[_iCEGLint13++])) {
        case EGL_HEIGHT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_LARGEST_PBUFFER:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_MIPMAP_TEXTURE:
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_TEXTURE_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint35_sig, (attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_TEXTURE_TARGET:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint34_sig, (attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_ALPHA_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint32_sig, (attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_COLORSPACE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint33_sig, (attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        case EGL_WIDTH:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint13 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint13]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePbufferSurface(dpy, config, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePixmapSurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pixmap);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLint12;
    for (_cCEGLint12 = 0; attrib_list && attrib_list[_cCEGLint12] != EGL_NONE; _cCEGLint12 += 2) {
    }
    _cCEGLint12 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint12);
    for (int _iCEGLint12 = 0; _iCEGLint12 < _cCEGLint12; _iCEGLint12++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint12]);
        trace::localWriter.endElement();
        if (_iCEGLint12 + 1 >= _cCEGLint12) {
            break;
        }
        switch (int(attrib_list[_iCEGLint12++])) {
        case EGL_VG_ALPHA_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint32_sig, (attrib_list)[_iCEGLint12]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_COLORSPACE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint33_sig, (attrib_list)[_iCEGLint12]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint12 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint12]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateWindowSurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)win);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLint11;
    for (_cCEGLint11 = 0; attrib_list && attrib_list[_cCEGLint11] != EGL_NONE; _cCEGLint11 += 2) {
    }
    _cCEGLint11 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint11);
    for (int _iCEGLint11 = 0; _iCEGLint11 < _cCEGLint11; _iCEGLint11++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint11]);
        trace::localWriter.endElement();
        if (_iCEGLint11 + 1 >= _cCEGLint11) {
            break;
        }
        switch (int(attrib_list[_iCEGLint11++])) {
        case EGL_RENDER_BUFFER:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint43_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_ALPHA_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint32_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_COLORSPACE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint33_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        case EGL_POST_SUB_BUFFER_SUPPORTED_NV:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_PLANE1_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_PLANE2_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint11 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint11]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateWindowSurface(dpy, config, win, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroyContext_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)ctx);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroyContext(dpy, ctx);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    if (_result) {
        gltrace::releaseContext((uintptr_t)ctx);
    }
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroySurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroySurface(dpy, surface);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetConfigAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetConfigAttrib(dpy, config, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetConfigs_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(config_size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetConfigs(dpy, configs, config_size, num_config);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (configs) {
        size_t _cEGLConfig = *num_config > 0 ? *num_config : 0;
        trace::localWriter.beginArray(_cEGLConfig);
        for (size_t _iEGLConfig = 0; _iEGLConfig < _cEGLConfig; ++_iEGLConfig) {
            trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)(configs)[_iEGLConfig]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (num_config) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_config);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void) {
    EGLDisplay _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetCurrentDisplay_sig);
    trace::localWriter.endEnter();
    _result = _eglGetCurrentDisplay();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetCurrentSurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, readdraw);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetCurrentSurface(readdraw);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id) {
    EGLDisplay _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetDisplay_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)display_id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetDisplay(display_id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglGetError(void) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetError_sig);
    trace::localWriter.endEnter();
    _result = _eglGetError();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
__eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char * procname) {
    __eglMustCastToProperFunctionPointerType _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetProcAddress_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeString(procname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    if (strcmp("glNotifyMappedBufferRangeVMWX", (const char *)procname) == 0) {
        _result = (__eglMustCastToProperFunctionPointerType)&glNotifyMappedBufferRangeVMWX;
    } else if (strcmp("glStringMarkerGREMEDY", (const char *)procname) == 0) {
        _result = (__eglMustCastToProperFunctionPointerType)&glStringMarkerGREMEDY;
    } else if (strcmp("glFrameTerminatorGREMEDY", (const char *)procname) == 0) {
        _result = (__eglMustCastToProperFunctionPointerType)&glFrameTerminatorGREMEDY;
    } else {
    _result = _eglGetProcAddress(procname);
    _result = _wrapProcAddress(procname, _result);
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint * major, EGLint * minor) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglInitialize_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglInitialize(dpy, major, minor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (major) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*major);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (minor) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*minor);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglMakeCurrent_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)draw);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)read);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)ctx);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglMakeCurrent(dpy, draw, read, ctx);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    if (_result) {
        // update the profile
        if (ctx != EGL_NO_CONTEXT) {
            gltrace::setContext((uintptr_t)ctx);
            gltrace::Context *tr = gltrace::getContext();
            EGLint api = EGL_OPENGL_ES_API;
            _eglQueryContext(dpy, ctx, EGL_CONTEXT_CLIENT_TYPE, &api);
            if (api == EGL_OPENGL_API) {
                assert(tr->profile.api == glfeatures::API_GL);
            } else if (api == EGL_OPENGL_ES_API) {
                EGLint client_version = 1;
                _eglQueryContext(dpy, ctx, EGL_CONTEXT_CLIENT_VERSION, &client_version);
                if (tr->profile.api != glfeatures::API_GLES ||
                    tr->profile.major < client_version) {
                    std::string version = tr->profile.str();
                    os::log("apitrace: warning: eglMakeCurrent: expected OpenGL ES %i.x context, but got %s\n",
                            client_version, version.c_str());
                }
            } else {
                assert(0);
            }
        } else {
            gltrace::clearContext();
        }
    }
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryContext_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)ctx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryContext(dpy, ctx, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name) {
    const char * _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryString_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryString(dpy, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeString(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQuerySurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQuerySurface(dpy, surface, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSwapBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSwapBuffers(dpy, surface);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglTerminate_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglTerminate(dpy);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglWaitGL(void) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglWaitGL_sig);
    trace::localWriter.endEnter();
    _result = _eglWaitGL();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglWaitNative_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, engine);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglWaitNative(engine);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglBindTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglBindTexImage(dpy, surface, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglReleaseTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglReleaseTexImage(dpy, surface, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSurfaceAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSurfaceAttrib(dpy, surface, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSwapInterval_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(interval);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSwapInterval(dpy, interval);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglBindAPI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, api);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglBindAPI(api);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLenum EGLAPIENTRY eglQueryAPI(void) {
    EGLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryAPI_sig);
    trace::localWriter.endEnter();
    _result = _eglQueryAPI();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePbufferFromClientBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, buftype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    {
    int _cCEGLint14;
    for (_cCEGLint14 = 0; attrib_list && attrib_list[_cCEGLint14] != EGL_NONE; _cCEGLint14 += 2) {
    }
    _cCEGLint14 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint14);
    for (int _iCEGLint14 = 0; _iCEGLint14 < _cCEGLint14; _iCEGLint14++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint14]);
        trace::localWriter.endElement();
        if (_iCEGLint14 + 1 >= _cCEGLint14) {
            break;
        }
        switch (int(attrib_list[_iCEGLint14++])) {
        case EGL_MIPMAP_TEXTURE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint14]);
            trace::localWriter.endElement();
            break;
        case EGL_TEXTURE_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint35_sig, (attrib_list)[_iCEGLint14]);
            trace::localWriter.endElement();
            break;
        case EGL_TEXTURE_TARGET:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint34_sig, (attrib_list)[_iCEGLint14]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint14 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint14]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglReleaseThread(void) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglReleaseThread_sig);
    trace::localWriter.endEnter();
    _result = _eglReleaseThread();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglWaitClient(void) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglWaitClient_sig);
    trace::localWriter.endEnter();
    _result = _eglWaitClient();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLContext EGLAPIENTRY eglGetCurrentContext(void) {
    EGLContext _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetCurrentContext_sig);
    trace::localWriter.endEnter();
    _result = _eglGetCurrentContext();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSync EGLAPIENTRY eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list) {
    EGLSync _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLAttrib5;
    for (_cCEGLAttrib5 = 0; attrib_list && attrib_list[_cCEGLAttrib5] != EGL_NONE; _cCEGLAttrib5 += 2) {
    }
    _cCEGLAttrib5 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib5);
    for (int _iCEGLAttrib5 = 0; _iCEGLAttrib5 < _cCEGLAttrib5; _iCEGLAttrib5++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib5]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib5 + 1 >= _cCEGLAttrib5) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib5++])) {
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib5 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib5]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateSync(dpy, type, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroySync(EGLDisplay dpy, EGLSync sync) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroySync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroySync(dpy, sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglClientWaitSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglClientWaitSync(dpy, sync, flags, timeout);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglGetSyncAttrib(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetSyncAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetSyncAttrib(dpy, sync, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLImage EGLAPIENTRY eglCreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list) {
    EGLImage _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)ctx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    {
    int _cCEGLAttrib3;
    for (_cCEGLAttrib3 = 0; attrib_list && attrib_list[_cCEGLAttrib3] != EGL_NONE; _cCEGLAttrib3 += 2) {
    }
    _cCEGLAttrib3 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib3);
    for (int _iCEGLAttrib3 = 0; _iCEGLAttrib3 < _cCEGLAttrib3; _iCEGLAttrib3++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib3]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib3 + 1 >= _cCEGLAttrib3) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib3++])) {
        case EGL_IMAGE_PRESERVED:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_GL_TEXTURE_LEVEL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_GL_TEXTURE_ZOFFSET:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_LINUX_DRM_FOURCC_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_YUV_COLOR_SPACE_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint51_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_SAMPLE_RANGE_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint52_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint53_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint54_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        case EGL_WAYLAND_PLANE_WL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib3 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib3]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateImage(dpy, ctx, target, buffer, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroyImage(EGLDisplay dpy, EGLImage image) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroyImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroyImage(dpy, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLDisplay EGLAPIENTRY eglGetPlatformDisplay(EGLenum platform, void * native_display, const EGLAttrib * attrib_list) {
    EGLDisplay _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetPlatformDisplay_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, platform);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)native_display);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLAttrib2;
    for (_cCEGLAttrib2 = 0; attrib_list && attrib_list[_cCEGLAttrib2] != EGL_NONE; _cCEGLAttrib2 += 2) {
    }
    _cCEGLAttrib2 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib2);
    for (int _iCEGLAttrib2 = 0; _iCEGLAttrib2 < _cCEGLAttrib2; _iCEGLAttrib2++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib2]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib2 + 1 >= _cCEGLAttrib2) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib2++])) {
        case EGL_PLATFORM_X11_SCREEN_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLAttrib2]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib2 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib2]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetPlatformDisplay(platform, native_display, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePlatformWindowSurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)native_window);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLAttrib;
    for (_cCEGLAttrib = 0; attrib_list && attrib_list[_cCEGLAttrib] != EGL_NONE; _cCEGLAttrib += 2) {
    }
    _cCEGLAttrib += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib);
    for (int _iCEGLAttrib = 0; _iCEGLAttrib < _cCEGLAttrib; _iCEGLAttrib++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib + 1 >= _cCEGLAttrib) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib++])) {
        case EGL_RENDER_BUFFER:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint43_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_ALPHA_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint32_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_COLORSPACE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint33_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_POST_SUB_BUFFER_SUPPORTED_NV:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_PLANE1_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_PLANE2_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePlatformWindowSurface(dpy, config, native_window, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePlatformPixmapSurface_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)native_pixmap);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLAttrib1;
    for (_cCEGLAttrib1 = 0; attrib_list && attrib_list[_cCEGLAttrib1] != EGL_NONE; _cCEGLAttrib1 += 2) {
    }
    _cCEGLAttrib1 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib1);
    for (int _iCEGLAttrib1 = 0; _iCEGLAttrib1 < _cCEGLAttrib1; _iCEGLAttrib1++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib1]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib1 + 1 >= _cCEGLAttrib1) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib1++])) {
        case EGL_VG_ALPHA_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint32_sig, (attrib_list)[_iCEGLAttrib1]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_COLORSPACE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint33_sig, (attrib_list)[_iCEGLAttrib1]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib1 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib1]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePlatformPixmapSurface(dpy, config, native_pixmap, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglWaitSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglWaitSync(dpy, sync, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDupNativeFenceFDANDROID_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDupNativeFenceFDANDROID(dpy, sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void * * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQuerySurfacePointerANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQuerySurfacePointerANGLE(dpy, surface, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
bool EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy, EGLSurface surface, int64_t * ust, int64_t * msc, int64_t * sbc) {
    bool _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetSyncValuesCHROMIUM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetSyncValuesCHROMIUM(dpy, surface, ust, msc, sbc);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (ust) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*ust);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (msc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*msc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (sbc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*sbc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeBool(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryDevicesEXT(EGLint max_devices, EGLDeviceEXT * devices, EGLint * num_devices) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDevicesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(max_devices);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDevicesEXT(max_devices, devices, num_devices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (devices) {
        size_t _cEGLDeviceEXT = max_devices > 0 ? max_devices : 0;
        trace::localWriter.beginArray(_cEGLDeviceEXT);
        for (size_t _iEGLDeviceEXT = 0; _iEGLDeviceEXT < _cEGLDeviceEXT; ++_iEGLDeviceEXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)(devices)[_iEGLDeviceEXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (num_devices) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_devices);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT(EGLDeviceEXT device, EGLint attribute, EGLAttrib * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDeviceAttribEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)device);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDeviceAttribEXT(device, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
const char * EGLAPIENTRY eglQueryDeviceStringEXT(EGLDeviceEXT device, EGLint name) {
    const char * _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDeviceStringEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)device);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDeviceStringEXT(device, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeString(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute, EGLAttrib * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDisplayAttribEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDisplayAttribEXT(dpy, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT(EGLDisplay dpy, EGLint max_formats, EGLint * formats, EGLint * num_formats) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDmaBufFormatsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(max_formats);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDmaBufFormatsEXT(dpy, max_formats, formats, num_formats);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (formats) {
        size_t _cEGLint = max_formats > 0 ? max_formats : 0;
        trace::localWriter.beginArray(_cEGLint);
        for (size_t _iEGLint = 0; _iEGLint < _cEGLint; ++_iEGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((formats)[_iEGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (num_formats) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_formats);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR * modifiers, EGLBoolean * external_only, EGLint * num_modifiers) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDmaBufModifiersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(max_modifiers);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDmaBufModifiersEXT(dpy, format, max_modifiers, modifiers, external_only, num_modifiers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (modifiers) {
        size_t _cEGLuint64KHR1 = max_modifiers > 0 ? max_modifiers : 0;
        trace::localWriter.beginArray(_cEGLuint64KHR1);
        for (size_t _iEGLuint64KHR1 = 0; _iEGLuint64KHR1 < _cEGLuint64KHR1; ++_iEGLuint64KHR1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskEGLuint64KHR1_sig, (modifiers)[_iEGLuint64KHR1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (external_only) {
        size_t _cEGLBoolean = max_modifiers > 0 ? max_modifiers : 0;
        trace::localWriter.beginArray(_cEGLBoolean);
        for (size_t _iEGLBoolean = 0; _iEGLBoolean < _cEGLBoolean; ++_iEGLBoolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (external_only)[_iEGLBoolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (num_modifiers) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_modifiers);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT(EGLenum platform, void * native_display, const EGLint * attrib_list) {
    EGLDisplay _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetPlatformDisplayEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, platform);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)native_display);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLint110;
    for (_cCEGLint110 = 0; attrib_list && attrib_list[_cCEGLint110] != EGL_NONE; _cCEGLint110 += 2) {
    }
    _cCEGLint110 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint110);
    for (int _iCEGLint110 = 0; _iCEGLint110 < _cCEGLint110; _iCEGLint110++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint110]);
        trace::localWriter.endElement();
        if (_iCEGLint110 + 1 >= _cCEGLint110) {
            break;
        }
        switch (int(attrib_list[_iCEGLint110++])) {
        case EGL_PLATFORM_X11_SCREEN_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint110]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint110 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint110]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetPlatformDisplayEXT(platform, native_display, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePlatformWindowSurfaceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)native_window);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLint112;
    for (_cCEGLint112 = 0; attrib_list && attrib_list[_cCEGLint112] != EGL_NONE; _cCEGLint112 += 2) {
    }
    _cCEGLint112 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint112);
    for (int _iCEGLint112 = 0; _iCEGLint112 < _cCEGLint112; _iCEGLint112++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint112]);
        trace::localWriter.endElement();
        if (_iCEGLint112 + 1 >= _cCEGLint112) {
            break;
        }
        switch (int(attrib_list[_iCEGLint112++])) {
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint112 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint112]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePlatformWindowSurfaceEXT(dpy, config, native_window, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePlatformPixmapSurfaceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)native_pixmap);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    {
    int _cCEGLint113;
    for (_cCEGLint113 = 0; attrib_list && attrib_list[_cCEGLint113] != EGL_NONE; _cCEGLint113 += 2) {
    }
    _cCEGLint113 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint113);
    for (int _iCEGLint113 = 0; _iCEGLint113 < _cCEGLint113; _iCEGLint113++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint113]);
        trace::localWriter.endElement();
        if (_iCEGLint113 + 1 >= _cCEGLint113) {
            break;
        }
        switch (int(attrib_list[_iCEGLint113++])) {
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint113 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint113]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePlatformPixmapSurfaceEXT(dpy, config, native_pixmap, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSetDamageRegionKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (rects) {
        size_t _cEGLint = n_rects*4 > 0 ? n_rects*4 : 0;
        trace::localWriter.beginArray(_cEGLint);
        for (size_t _iEGLint = 0; _iEGLint < _cEGLint; ++_iEGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((rects)[_iEGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(n_rects);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSetDamageRegionKHR(dpy, surface, rects, n_rects);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, const EGLint * rects, EGLint n_rects) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSwapBuffersWithDamageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (rects) {
        size_t _cCEGLint = n_rects*4 > 0 ? n_rects*4 : 0;
        trace::localWriter.beginArray(_cCEGLint);
        for (size_t _iCEGLint = 0; _iCEGLint < _cCEGLint; ++_iCEGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((rects)[_iCEGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(n_rects);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSwapBuffersWithDamageEXT(dpy, surface, rects, n_rects);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI * pixmap) {
    EGLSurface _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreatePixmapSurfaceHI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (pixmap) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.beginStruct(&_structstructEGLClientPixmapHI_sig);
    trace::localWriter.writePointer((uintptr_t)(*pixmap).pData);
    trace::localWriter.writeSInt((*pixmap).iWidth);
    trace::localWriter.writeSInt((*pixmap).iHeight);
    trace::localWriter.writeSInt((*pixmap).iStride);
    trace::localWriter.endStruct();
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreatePixmapSurfaceHI(dpy, config, pixmap);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint * attrib_list) {
    EGLSyncKHR _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateSyncKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLint19;
    for (_cCEGLint19 = 0; attrib_list && attrib_list[_cCEGLint19] != EGL_NONE; _cCEGLint19 += 2) {
    }
    _cCEGLint19 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint19);
    for (int _iCEGLint19 = 0; _iCEGLint19 < _cCEGLint19; _iCEGLint19++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint19]);
        trace::localWriter.endElement();
        if (_iCEGLint19 + 1 >= _cCEGLint19) {
            break;
        }
        switch (int(attrib_list[_iCEGLint19++])) {
        case EGL_SYNC_NATIVE_FENCE_FD_ANDROID:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint19]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint19 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint19]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateSyncKHR(dpy, type, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroySyncKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroySyncKHR(dpy, sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglClientWaitSyncKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglClientWaitSyncKHR(dpy, sync, flags, timeout);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetSyncAttribKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetSyncAttribKHR(dpy, sync, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list) {
    EGLImageKHR _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateImageKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)ctx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    {
    int _cCEGLint111;
    for (_cCEGLint111 = 0; attrib_list && attrib_list[_cCEGLint111] != EGL_NONE; _cCEGLint111 += 2) {
    }
    _cCEGLint111 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint111);
    for (int _iCEGLint111 = 0; _iCEGLint111 < _cCEGLint111; _iCEGLint111++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint111]);
        trace::localWriter.endElement();
        if (_iCEGLint111 + 1 >= _cCEGLint111) {
            break;
        }
        switch (int(attrib_list[_iCEGLint111++])) {
        case EGL_IMAGE_PRESERVED:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_GL_TEXTURE_LEVEL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_GL_TEXTURE_ZOFFSET:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_LINUX_DRM_FOURCC_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_YUV_COLOR_SPACE_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint51_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_SAMPLE_RANGE_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint52_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint53_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint54_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_FD_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_OFFSET_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_PITCH_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint29_sig, (attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        case EGL_WAYLAND_PLANE_WL:
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attrib_list)[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint111 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint111]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroyImageKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroyImageKHR(dpy, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglLockSurfaceKHR(EGLDisplay dpy, EGLSurface surface, const EGLint * attrib_list) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglLockSurfaceKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLint17;
    for (_cCEGLint17 = 0; attrib_list && attrib_list[_cCEGLint17] != EGL_NONE; _cCEGLint17 += 2) {
    }
    _cCEGLint17 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint17);
    for (int _iCEGLint17 = 0; _iCEGLint17 < _cCEGLint17; _iCEGLint17++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint17]);
        trace::localWriter.endElement();
        if (_iCEGLint17 + 1 >= _cCEGLint17) {
            break;
        }
        switch (int(attrib_list[_iCEGLint17++])) {
        case EGL_MAP_PRESERVE_PIXELS_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLint17]);
            trace::localWriter.endElement();
            break;
        case EGL_LOCK_USAGE_HINT_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint49_sig, (attrib_list)[_iCEGLint17]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint17 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint17]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglLockSurfaceKHR(dpy, surface, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR(EGLDisplay dpy, EGLSurface surface) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglUnlockSurfaceKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglUnlockSurfaceKHR(dpy, surface);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSignalSyncKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSignalSyncKHR(dpy, sync, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR(EGLDisplay dpy, EGLSurface surface, const EGLint * rects, EGLint n_rects) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSwapBuffersWithDamageKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (rects) {
        size_t _cCEGLint2 = n_rects*4 > 0 ? n_rects*4 : 0;
        trace::localWriter.beginArray(_cCEGLint2);
        for (size_t _iCEGLint2 = 0; _iCEGLint2 < _cCEGLint2; ++_iCEGLint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((rects)[_iCEGLint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(n_rects);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSwapBuffersWithDamageKHR(dpy, surface, rects, n_rects);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglWaitSyncKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglWaitSyncKHR(dpy, sync, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV(EGLDisplay dpy, EGLenum condition, const EGLint * attrib_list) {
    EGLSyncNV _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateFenceSyncNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, condition);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLint18;
    for (_cCEGLint18 = 0; attrib_list && attrib_list[_cCEGLint18] != EGL_NONE; _cCEGLint18 += 2) {
    }
    _cCEGLint18 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint18);
    for (int _iCEGLint18 = 0; _iCEGLint18 < _cCEGLint18; _iCEGLint18++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint18]);
        trace::localWriter.endElement();
        if (_iCEGLint18 + 1 >= _cCEGLint18) {
            break;
        }
        switch (int(attrib_list[_iCEGLint18++])) {
        case EGL_SYNC_STATUS_NV:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint50_sig, (attrib_list)[_iCEGLint18]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint18 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint18]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateFenceSyncNV(dpy, condition, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglDestroySyncNV(EGLSyncNV sync) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDestroySyncNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDestroySyncNV(sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglFenceNV(EGLSyncNV sync) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglFenceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglFenceNV(sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglClientWaitSyncNV(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglClientWaitSyncNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglClientWaitSyncNV(sync, flags, timeout);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglSignalSyncNV(EGLSyncNV sync, EGLenum mode) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglSignalSyncNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglSignalSyncNV(sync, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglGetSyncAttribNV(EGLSyncNV sync, EGLint attribute, EGLint * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetSyncAttribNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglGetSyncAttribNV(sync, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint * attrib_list) {
    EGLImageKHR _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglCreateDRMImageMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    {
    int _cCEGLint16;
    for (_cCEGLint16 = 0; attrib_list && attrib_list[_cCEGLint16] != EGL_NONE; _cCEGLint16 += 2) {
    }
    _cCEGLint16 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLint16);
    for (int _iCEGLint16 = 0; _iCEGLint16 < _cCEGLint16; _iCEGLint16++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attrib_list[_iCEGLint16]);
        trace::localWriter.endElement();
        if (_iCEGLint16 + 1 >= _cCEGLint16) {
            break;
        }
        switch (int(attrib_list[_iCEGLint16++])) {
        case EGL_DRM_BUFFER_FORMAT_MESA:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint47_sig, (attrib_list)[_iCEGLint16]);
            trace::localWriter.endElement();
            break;
        case EGL_DRM_BUFFER_USE_MESA:
            trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskint48_sig, (attrib_list)[_iCEGLint16]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLint16 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLint16]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglCreateDRMImageMESA(dpy, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint * name, EGLint * handle, EGLint * stride) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglExportDRMImageMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglExportDRMImageMESA(dpy, image, name, handle, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (name) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*name);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (handle) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*handle);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (stride) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*stride);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA(EGLDisplay dpy, EGLImageKHR image, EGLint * fourcc, EGLint * num_planes, EGLuint64KHR * modifiers) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglExportDMABUFImageQueryMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglExportDMABUFImageQueryMESA(dpy, image, fourcc, num_planes, modifiers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (fourcc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*fourcc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (num_planes) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_planes);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (modifiers) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeBitmask(&_bitmaskEGLuint64KHR1_sig, *modifiers);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint * fds, EGLint * strides, EGLint * offsets) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglExportDMABUFImageMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglExportDMABUFImageMESA(dpy, image, fds, strides, offsets);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (fds) {
        size_t _cEGLint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cEGLint);
        for (size_t _iEGLint = 0; _iEGLint < _cEGLint; ++_iEGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((fds)[_iEGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (strides) {
        size_t _cEGLint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cEGLint);
        for (size_t _iEGLint = 0; _iEGLint < _cEGLint; ++_iEGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((strides)[_iEGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (offsets) {
        size_t _cEGLint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cEGLint);
        for (size_t _iEGLint = 0; _iEGLint < _cEGLint; ++_iEGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((offsets)[_iEGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglPostSubBufferNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglPostSubBufferNV(dpy, surface, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV(void) {
    EGLuint64NV _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetSystemTimeFrequencyNV_sig);
    trace::localWriter.endEnter();
    _result = _eglGetSystemTimeFrequencyNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV(void) {
    EGLuint64NV _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglGetSystemTimeNV_sig);
    trace::localWriter.endEnter();
    _result = _eglGetSystemTimeNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void EGLAPIENTRY glEGLImageTargetTexture2DOES(GLenum target, EGLImageKHR image) {
    unsigned _call = trace::localWriter.beginEnter(&_glEGLImageTargetTexture2DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEGLImageTargetTexture2DOES(target, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
    image_info *info = _EGLImageKHR_get_image_info(target, image);
    if (info) {
        GLint level = 0;
        GLint internalformat = info->internalformat;
        GLsizei width = info->width;
        GLsizei height = info->height;
        GLint border = 0;
        GLenum format = info->format;
        GLenum type = info->type;
        const GLvoid * pixels = info->pixels;
    _fake_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
        _EGLImageKHR_free_image_info(info);
    }
}

extern "C" PUBLIC
void EGLAPIENTRY glEGLImageTargetRenderbufferStorageOES(GLenum target, EGLImageKHR image) {
    unsigned _call = trace::localWriter.beginEnter(&_glEGLImageTargetRenderbufferStorageOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEGLImageTargetRenderbufferStorageOES(target, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQuerySupportedCompressionRatesEXT(EGLDisplay dpy, EGLConfig config, const EGLAttrib * attrib_list, int * rates, EGLint rate_size, EGLint * num_rates) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQuerySupportedCompressionRatesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)config);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCEGLAttrib;
    for (_cCEGLAttrib = 0; attrib_list && attrib_list[_cCEGLAttrib] != EGL_NONE; _cCEGLAttrib += 2) {
    }
    _cCEGLAttrib += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib);
    for (int _iCEGLAttrib = 0; _iCEGLAttrib < _cCEGLAttrib; _iCEGLAttrib++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib + 1 >= _cCEGLAttrib) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib++])) {
        case EGL_RENDER_BUFFER:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint43_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_ALPHA_FORMAT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint32_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_VG_COLORSPACE:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint33_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_POST_SUB_BUFFER_SUPPORTED_NV:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_PLANE1_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        case EGL_SURFACE_COMPRESSION_PLANE2_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (attrib_list)[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(rate_size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQuerySupportedCompressionRatesEXT(dpy, config, attrib_list, rates, rate_size, num_rates);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (rates) {
        size_t _cint38 = *num_rates > 0 ? *num_rates : 0;
        trace::localWriter.beginArray(_cint38);
        for (size_t _iint38 = 0; _iint38 < _cint38; ++_iint38) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumint38_sig, (rates)[_iint38]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (num_rates) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*num_rates);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display* display) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglBindWaylandDisplayWL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)display);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglBindWaylandDisplayWL(dpy, display);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display* display) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglUnbindWaylandDisplayWL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)display);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglUnbindWaylandDisplayWL(dpy, display);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_resource* buffer, EGLint attribute, EGLint * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryWaylandBufferWL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)dpy);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, attribute);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryWaylandBufferWL(dpy, buffer, attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglDebugMessageControlKHR(EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglDebugMessageControlKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)callback);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    {
    int _cCEGLAttrib4;
    for (_cCEGLAttrib4 = 0; attrib_list && attrib_list[_cCEGLAttrib4] != EGL_NONE; _cCEGLAttrib4 += 2) {
    }
    _cCEGLAttrib4 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCEGLAttrib4);
    for (int _iCEGLAttrib4 = 0; _iCEGLAttrib4 < _cCEGLAttrib4; _iCEGLAttrib4++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib4]);
        trace::localWriter.endElement();
        if (_iCEGLAttrib4 + 1 >= _cCEGLAttrib4) {
            break;
        }
        switch (int(attrib_list[_iCEGLAttrib4++])) {
        case EGL_DEBUG_MSG_CRITICAL_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib4]);
            trace::localWriter.endElement();
            break;
        case EGL_DEBUG_MSG_ERROR_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib4]);
            trace::localWriter.endElement();
            break;
        case EGL_DEBUG_MSG_WARN_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib4]);
            trace::localWriter.endElement();
            break;
        case EGL_DEBUG_MSG_INFO_KHR:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, (attrib_list)[_iCEGLAttrib4]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCEGLAttrib4 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCEGLAttrib4]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglDebugMessageControlKHR(callback, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLBoolean EGLAPIENTRY eglQueryDebugKHR(EGLint attribute, EGLAttrib * value) {
    EGLBoolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglQueryDebugKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(attribute);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglQueryDebugKHR(attribute, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumEGLBoolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
EGLint EGLAPIENTRY eglLabelObjectKHR(EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label) {
    EGLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_eglLabelObjectKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)display);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumEGLenum_sig, objectType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)object);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)label);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _eglLabelObjectKHR(display, objectType, object, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glCullFace(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glCullFace_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCullFace(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFrontFace(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrontFace_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFrontFace(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glHint(GLenum target, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glHint_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glHint(target, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLineWidth(GLfloat width) {
    unsigned _call = trace::localWriter.beginEnter(&_glLineWidth_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLineWidth(width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointSize(GLfloat size) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointSize_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointSize(size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPolygonMode(GLenum face, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glPolygonMode_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPolygonMode(face, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissor(x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterf(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat);
        for (size_t _iCGLfloat = 0; _iCGLfloat < _cCGLfloat; ++_iCGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameteri(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint);
        for (size_t _iCGLint = 0; _iCGLint < _cCGLint; ++_iCGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage1D(target, level, internalformat, width, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffer(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffer(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClear(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glClear_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield1_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClear(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearColor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearColor(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearStencil(GLint s) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearStencil_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearStencil(s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearDepth(GLdouble depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearDepth_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearDepth(depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilMask(GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilMask_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilMask(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorMask_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorMask(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthMask(GLboolean flag) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthMask_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, flag);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthMask(flag);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisable(GLenum cap) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, cap);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisable(cap);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnable(GLenum cap) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, cap);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnable(cap);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFinish(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinish_sig);
    trace::localWriter.endEnter();
    _glFinish();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlush(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFlush_sig);
    trace::localWriter.endEnter();
    _glFlush();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFunc_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFunc(sfactor, dfactor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLogicOp(GLenum opcode) {
    unsigned _call = trace::localWriter.beginEnter(&_glLogicOp_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, opcode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLogicOp(opcode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilFunc_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ref);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilFunc(func, ref, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilOp_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fail);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, zfail);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, zpass);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilOp(fail, zfail, zpass);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthFunc(GLenum func) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthFunc_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthFunc(func);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelStoref(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelStoref_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelStoref(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelStorei(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelStorei_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelStorei(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReadBuffer(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glReadBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadBuffer(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glReadPixels_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadPixels(x, y, width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(6);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBooleanv(GLenum pname, GLboolean * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBooleanv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBooleanv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLboolean = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLboolean);
        for (size_t _iGLboolean = 0; _iGLboolean < _cGLboolean; ++_iGLboolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, (params)[_iGLboolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetDoublev(GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetDoublev_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetDoublev(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glGetError(void) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetError_sig);
    trace::localWriter.endEnter();
    _result = _glGetError();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum2_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetFloatv(GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFloatv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFloatv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetIntegerv(GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetIntegerv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    gltrace::_glGetIntegerv_override(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
const GLubyte * APIENTRY glGetString(GLenum name) {
    const GLubyte * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetString_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = gltrace::_glGetString_override(name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeString(reinterpret_cast<const char *>(_result));
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexImage(target, level, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexLevelParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexLevelParameterfv(target, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexLevelParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexLevelParameteriv(target, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsEnabled(GLenum cap) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsEnabled_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, cap);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsEnabled(cap);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDepthRange(GLdouble zNear, GLdouble zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRange(zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewport_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewport(x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNewList(GLuint list, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glNewList_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNewList(list, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndList(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndList_sig);
    trace::localWriter.endEnter();
    _glEndList();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCallList(GLuint list) {
    unsigned _call = trace::localWriter.beginEnter(&_glCallList_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCallList(list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCallLists(GLsizei n, GLenum type, const GLvoid * lists) {
    unsigned _call = trace::localWriter.beginEnter(&_glCallLists_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(lists, _glCallLists_size(n, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCallLists(n, type, lists);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteLists(GLuint list, GLsizei range) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteLists_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteLists(list, range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGenLists(GLsizei range) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGenLists_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGenLists(range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glListBase(GLuint base) {
    unsigned _call = trace::localWriter.beginEnter(&_glListBase_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(base);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glListBase(base);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBegin(GLenum mode) {
    gltrace::Context *_ctx = gltrace::getContext();
    _ctx->userArraysOnBegin = _need_user_arrays(_ctx);
    unsigned _call = trace::localWriter.beginEnter(&_glBegin_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBegin(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glBitmap_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(xorig);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(yorig);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(xmove);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(ymove);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bitmap);
        } else {
    trace::localWriter.writeBlob(bitmap, _glBitmap_size(width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3b(GLbyte red, GLbyte green, GLbyte blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3b_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3b(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3bv(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3bv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte);
        for (size_t _iCGLbyte = 0; _iCGLbyte < _cCGLbyte; ++_iCGLbyte) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3bv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3d(GLdouble red, GLdouble green, GLdouble blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3d(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble);
        for (size_t _iCGLdouble = 0; _iCGLdouble < _cCGLdouble; ++_iCGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3f(GLfloat red, GLfloat green, GLfloat blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3f(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat1 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat1);
        for (size_t _iCGLfloat1 = 0; _iCGLfloat1 < _cCGLfloat1; ++_iCGLfloat1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3i(GLint red, GLint green, GLint blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3i(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint2 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint2);
        for (size_t _iCGLint2 = 0; _iCGLint2 < _cCGLint2; ++_iCGLint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3s(GLshort red, GLshort green, GLshort blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3s(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort);
        for (size_t _iCGLshort = 0; _iCGLshort < _cCGLshort; ++_iCGLshort) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3ub(GLubyte red, GLubyte green, GLubyte blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3ub_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3ub(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3ubv(const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3ubv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLubyte2 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLubyte2);
        for (size_t _iCGLubyte2 = 0; _iCGLubyte2 < _cCGLubyte2; ++_iCGLubyte2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3ubv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3ui(GLuint red, GLuint green, GLuint blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3ui(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3uiv(const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3uiv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLuint = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLuint);
        for (size_t _iCGLuint = 0; _iCGLuint < _cCGLuint; ++_iCGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3uiv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3us(GLushort red, GLushort green, GLushort blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3us_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3us(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3usv(const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3usv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLushort = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLushort);
        for (size_t _iCGLushort = 0; _iCGLushort < _cCGLushort; ++_iCGLushort) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3usv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4b_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4b(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4bv(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4bv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte1 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte1);
        for (size_t _iCGLbyte1 = 0; _iCGLbyte1 < _cCGLbyte1; ++_iCGLbyte1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4bv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4d(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble1 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble1);
        for (size_t _iCGLdouble1 = 0; _iCGLdouble1 < _cCGLdouble1; ++_iCGLdouble1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4f(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat2 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat2);
        for (size_t _iCGLfloat2 = 0; _iCGLfloat2 < _cCGLfloat2; ++_iCGLfloat2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4i(GLint red, GLint green, GLint blue, GLint alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4i(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint3 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint3);
        for (size_t _iCGLint3 = 0; _iCGLint3 < _cCGLint3; ++_iCGLint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4s(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort1 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort1);
        for (size_t _iCGLshort1 = 0; _iCGLshort1 < _cCGLshort1; ++_iCGLshort1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ub_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ub(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ubv(const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ubv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLubyte3 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte3);
        for (size_t _iCGLubyte3 = 0; _iCGLubyte3 < _cCGLubyte3; ++_iCGLubyte3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ubv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ui(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4uiv(const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4uiv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLuint1 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint1);
        for (size_t _iCGLuint1 = 0; _iCGLuint1 < _cCGLuint1; ++_iCGLuint1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4uiv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4us_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4us(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4usv(const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4usv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLushort1 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort1);
        for (size_t _iCGLushort1 = 0; _iCGLushort1 < _cCGLushort1; ++_iCGLushort1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4usv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEdgeFlag(GLboolean flag) {
    unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlag_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, flag);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEdgeFlag(flag);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEdgeFlagv(const GLboolean * flag) {
    unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlagv_sig);
    trace::localWriter.beginArg(0);
    if (flag) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, *flag);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEdgeFlagv(flag);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnd(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnd_sig);
    trace::localWriter.endEnter();
    _glEnd();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexd(GLdouble c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexd_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(c);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexd(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexdv(const GLdouble * c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexdv_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*c);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexdv(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexf(GLfloat c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(c);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexf(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexfv(const GLfloat * c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexfv_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*c);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexfv(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexi(GLint c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(c);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexi(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexiv(const GLint * c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexiv_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*c);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexiv(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexs(GLshort c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexs_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(c);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexs(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexsv(const GLshort * c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexsv_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*c);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexsv(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3b_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3b(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3bv(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3bv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte2 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte2);
        for (size_t _iCGLbyte2 = 0; _iCGLbyte2 < _cCGLbyte2; ++_iCGLbyte2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3bv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3d(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble3 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble3);
        for (size_t _iCGLdouble3 = 0; _iCGLdouble3 < _cCGLdouble3; ++_iCGLdouble3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3f(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat4 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat4);
        for (size_t _iCGLfloat4 = 0; _iCGLfloat4 < _cCGLfloat4; ++_iCGLfloat4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3i(GLint nx, GLint ny, GLint nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3i(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint5 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint5);
        for (size_t _iCGLint5 = 0; _iCGLint5 < _cCGLint5; ++_iCGLint5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3s(GLshort nx, GLshort ny, GLshort nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3s(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort3 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort3);
        for (size_t _iCGLshort3 = 0; _iCGLshort3 < _cCGLshort3; ++_iCGLshort3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2d(GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2d(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble4 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble4);
        for (size_t _iCGLdouble4 = 0; _iCGLdouble4 < _cCGLdouble4; ++_iCGLdouble4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2f(GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2f(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat5 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat5);
        for (size_t _iCGLfloat5 = 0; _iCGLfloat5 < _cCGLfloat5; ++_iCGLfloat5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2i(GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2i(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint6 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint6);
        for (size_t _iCGLint6 = 0; _iCGLint6 < _cCGLint6; ++_iCGLint6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2s(GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2s(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos2sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos2sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort4 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort4);
        for (size_t _iCGLshort4 = 0; _iCGLshort4 < _cCGLshort4; ++_iCGLshort4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos2sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3d(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3d(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble5 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble5);
        for (size_t _iCGLdouble5 = 0; _iCGLdouble5 < _cCGLdouble5; ++_iCGLdouble5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3f(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3f(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat6 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat6);
        for (size_t _iCGLfloat6 = 0; _iCGLfloat6 < _cCGLfloat6; ++_iCGLfloat6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3i(GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3i(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint7 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint7);
        for (size_t _iCGLint7 = 0; _iCGLint7 < _cCGLint7; ++_iCGLint7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3s(GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3s(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort5 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort5);
        for (size_t _iCGLshort5 = 0; _iCGLshort5 < _cCGLshort5; ++_iCGLshort5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4d(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble6 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble6);
        for (size_t _iCGLdouble6 = 0; _iCGLdouble6 < _cCGLdouble6; ++_iCGLdouble6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4f(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat7 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat7);
        for (size_t _iCGLfloat7 = 0; _iCGLfloat7 < _cCGLfloat7; ++_iCGLfloat7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4i(GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4i(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint8 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint8);
        for (size_t _iCGLint8 = 0; _iCGLint8 < _cCGLint8; ++_iCGLint8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4s(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterPos4sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterPos4sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort6 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort6);
        for (size_t _iCGLshort6 = 0; _iCGLshort6 < _cCGLshort6; ++_iCGLshort6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterPos4sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRectd_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRectd(x1, y1, x2, y2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRectdv(const GLdouble * v1, const GLdouble * v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRectdv_sig);
    trace::localWriter.beginArg(0);
    if (v1) {
        size_t _cCGLdouble7 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble7);
        for (size_t _iCGLdouble7 = 0; _iCGLdouble7 < _cCGLdouble7; ++_iCGLdouble7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v1)[_iCGLdouble7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v2) {
        size_t _cCGLdouble8 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble8);
        for (size_t _iCGLdouble8 = 0; _iCGLdouble8 < _cCGLdouble8; ++_iCGLdouble8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v2)[_iCGLdouble8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRectdv(v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRectf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRectf(x1, y1, x2, y2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRectfv(const GLfloat * v1, const GLfloat * v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRectfv_sig);
    trace::localWriter.beginArg(0);
    if (v1) {
        size_t _cCGLfloat8 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat8);
        for (size_t _iCGLfloat8 = 0; _iCGLfloat8 < _cCGLfloat8; ++_iCGLfloat8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v1)[_iCGLfloat8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v2) {
        size_t _cCGLfloat9 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat9);
        for (size_t _iCGLfloat9 = 0; _iCGLfloat9 < _cCGLfloat9; ++_iCGLfloat9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v2)[_iCGLfloat9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRectfv(v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRecti(GLint x1, GLint y1, GLint x2, GLint y2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRecti_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRecti(x1, y1, x2, y2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRectiv(const GLint * v1, const GLint * v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRectiv_sig);
    trace::localWriter.beginArg(0);
    if (v1) {
        size_t _cCGLint9 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint9);
        for (size_t _iCGLint9 = 0; _iCGLint9 < _cCGLint9; ++_iCGLint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v1)[_iCGLint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v2) {
        size_t _cCGLint10 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint10);
        for (size_t _iCGLint10 = 0; _iCGLint10 < _cCGLint10; ++_iCGLint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v2)[_iCGLint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRectiv(v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRects_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRects(x1, y1, x2, y2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRectsv(const GLshort * v1, const GLshort * v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glRectsv_sig);
    trace::localWriter.beginArg(0);
    if (v1) {
        size_t _cCGLshort7 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort7);
        for (size_t _iCGLshort7 = 0; _iCGLshort7 < _cCGLshort7; ++_iCGLshort7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v1)[_iCGLshort7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v2) {
        size_t _cCGLshort8 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort8);
        for (size_t _iCGLshort8 = 0; _iCGLshort8 < _cCGLshort8; ++_iCGLshort8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v2)[_iCGLshort8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRectsv(v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1d(GLdouble s) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1d(s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1f(GLfloat s) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1f(s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1i(GLint s) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1i(s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1s(GLshort s) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1s(s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2d(GLdouble s, GLdouble t) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2d(s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble10 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble10);
        for (size_t _iCGLdouble10 = 0; _iCGLdouble10 < _cCGLdouble10; ++_iCGLdouble10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2f(GLfloat s, GLfloat t) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2f(s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat11 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat11);
        for (size_t _iCGLfloat11 = 0; _iCGLfloat11 < _cCGLfloat11; ++_iCGLfloat11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2i(GLint s, GLint t) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2i(s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint12 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint12);
        for (size_t _iCGLint12 = 0; _iCGLint12 < _cCGLint12; ++_iCGLint12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2s(GLshort s, GLshort t) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2s(s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort10 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort10);
        for (size_t _iCGLshort10 = 0; _iCGLshort10 < _cCGLshort10; ++_iCGLshort10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3d(GLdouble s, GLdouble t, GLdouble r) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3d(s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble11 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble11);
        for (size_t _iCGLdouble11 = 0; _iCGLdouble11 < _cCGLdouble11; ++_iCGLdouble11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3f(GLfloat s, GLfloat t, GLfloat r) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3f(s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat12 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat12);
        for (size_t _iCGLfloat12 = 0; _iCGLfloat12 < _cCGLfloat12; ++_iCGLfloat12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3i(GLint s, GLint t, GLint r) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3i(s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint13 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint13);
        for (size_t _iCGLint13 = 0; _iCGLint13 < _cCGLint13; ++_iCGLint13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3s(GLshort s, GLshort t, GLshort r) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3s(s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort11 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort11);
        for (size_t _iCGLshort11 = 0; _iCGLshort11 < _cCGLshort11; ++_iCGLshort11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4d(s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble12 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble12);
        for (size_t _iCGLdouble12 = 0; _iCGLdouble12 < _cCGLdouble12; ++_iCGLdouble12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4f(s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat13 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat13);
        for (size_t _iCGLfloat13 = 0; _iCGLfloat13 < _cCGLfloat13; ++_iCGLfloat13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4i(GLint s, GLint t, GLint r, GLint q) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4i(s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint14 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint14);
        for (size_t _iCGLint14 = 0; _iCGLint14 < _cCGLint14; ++_iCGLint14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4s(s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort12 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort12);
        for (size_t _iCGLshort12 = 0; _iCGLshort12 < _cCGLshort12; ++_iCGLshort12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2d(GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2d(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble13 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble13);
        for (size_t _iCGLdouble13 = 0; _iCGLdouble13 < _cCGLdouble13; ++_iCGLdouble13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2f(GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2f(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat14 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat14);
        for (size_t _iCGLfloat14 = 0; _iCGLfloat14 < _cCGLfloat14; ++_iCGLfloat14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2i(GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2i(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint15 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint15);
        for (size_t _iCGLint15 = 0; _iCGLint15 < _cCGLint15; ++_iCGLint15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2s(GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2s(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort13 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort13);
        for (size_t _iCGLshort13 = 0; _iCGLshort13 < _cCGLshort13; ++_iCGLshort13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3d(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3d(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble14 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble14);
        for (size_t _iCGLdouble14 = 0; _iCGLdouble14 < _cCGLdouble14; ++_iCGLdouble14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3f(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat15 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat15);
        for (size_t _iCGLfloat15 = 0; _iCGLfloat15 < _cCGLfloat15; ++_iCGLfloat15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3i(GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3i(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint16 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint16);
        for (size_t _iCGLint16 = 0; _iCGLint16 < _cCGLint16; ++_iCGLint16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3s(GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3s(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort14 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort14);
        for (size_t _iCGLshort14 = 0; _iCGLshort14 < _cCGLshort14; ++_iCGLshort14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4d(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble15 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble15);
        for (size_t _iCGLdouble15 = 0; _iCGLdouble15 < _cCGLdouble15; ++_iCGLdouble15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4f(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat16 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat16);
        for (size_t _iCGLfloat16 = 0; _iCGLfloat16 < _cCGLfloat16; ++_iCGLfloat16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4i(GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4i(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint17 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint17);
        for (size_t _iCGLint17 = 0; _iCGLint17 < _cCGLint17; ++_iCGLint17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4s(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort15 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort15);
        for (size_t _iCGLshort15 = 0; _iCGLshort15 < _cCGLshort15; ++_iCGLshort15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClipPlane(GLenum plane, const GLdouble * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glClipPlane_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cCGLdouble16 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble16);
        for (size_t _iCGLdouble16 = 0; _iCGLdouble16 < _cCGLdouble16; ++_iCGLdouble16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((equation)[_iCGLdouble16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClipPlane(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorMaterial(GLenum face, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorMaterial_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorMaterial(face, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogf(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogf(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogfv(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat17 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat17);
        for (size_t _iCGLfloat17 = 0; _iCGLfloat17 < _cCGLfloat17; ++_iCGLfloat17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogfv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogi(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogi(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogiv(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint18 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint18);
        for (size_t _iCGLint18 = 0; _iCGLint18 < _cCGLint18; ++_iCGLint18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogiv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightf(GLenum light, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightf(light, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightfv(GLenum light, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat18 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat18);
        for (size_t _iCGLfloat18 = 0; _iCGLfloat18 < _cCGLfloat18; ++_iCGLfloat18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightfv(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLighti(GLenum light, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLighti_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLighti(light, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightiv(GLenum light, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint19 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint19);
        for (size_t _iCGLint19 = 0; _iCGLint19 < _cCGLint19; ++_iCGLint19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightiv(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightModelf(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightModelf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightModelf(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightModelfv(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightModelfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat19 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat19);
        for (size_t _iCGLfloat19 = 0; _iCGLfloat19 < _cCGLfloat19; ++_iCGLfloat19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightModelfv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightModeli(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightModeli_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightModeli(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightModeliv(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightModeliv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint20 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint20);
        for (size_t _iCGLint20 = 0; _iCGLint20 < _cCGLint20; ++_iCGLint20) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint20]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightModeliv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLineStipple(GLint factor, GLushort pattern) {
    unsigned _call = trace::localWriter.beginEnter(&_glLineStipple_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(pattern);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLineStipple(factor, pattern);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMaterialf(GLenum face, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMaterialf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMaterialf(face, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMaterialfv(GLenum face, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMaterialfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat20 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat20);
        for (size_t _iCGLfloat20 = 0; _iCGLfloat20 < _cCGLfloat20; ++_iCGLfloat20) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat20]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMaterialfv(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMateriali(GLenum face, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMateriali_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMateriali(face, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMaterialiv(GLenum face, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMaterialiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint21 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint21);
        for (size_t _iCGLint21 = 0; _iCGLint21 < _cCGLint21; ++_iCGLint21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMaterialiv(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPolygonStipple(const GLubyte * mask) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glPolygonStipple_sig);
    trace::localWriter.beginArg(0);
    if (mask) {
        size_t _cCGLubyte4 = _glPolygonStipple_size() > 0 ? _glPolygonStipple_size() : 0;
        trace::localWriter.beginArray(_cCGLubyte4);
        for (size_t _iCGLubyte4 = 0; _iCGLubyte4 < _cCGLubyte4; ++_iCGLubyte4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((mask)[_iCGLubyte4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPolygonStipple(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShadeModel(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glShadeModel_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShadeModel(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexEnvf(GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexEnvf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexEnvf(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexEnvfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat21 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat21);
        for (size_t _iCGLfloat21 = 0; _iCGLfloat21 < _cCGLfloat21; ++_iCGLfloat21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexEnvfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexEnvi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexEnvi(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexEnviv(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexEnviv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint22 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint22);
        for (size_t _iCGLint22 = 0; _iCGLint22 < _cCGLint22; ++_iCGLint22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexEnviv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGend(GLenum coord, GLenum pname, GLdouble param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGend_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeDouble(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGend(coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGendv(GLenum coord, GLenum pname, const GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGendv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLdouble17 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLdouble17);
        for (size_t _iCGLdouble17 = 0; _iCGLdouble17 < _cCGLdouble17; ++_iCGLdouble17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iCGLdouble17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGendv(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenf(GLenum coord, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenf(coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat22 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat22);
        for (size_t _iCGLfloat22 = 0; _iCGLfloat22 < _cCGLfloat22; ++_iCGLfloat22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenfv(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGeni(GLenum coord, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGeni_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGeni(coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGeniv(GLenum coord, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGeniv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint23 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint23);
        for (size_t _iCGLint23 = 0; _iCGLint23 < _cCGLint23; ++_iCGLint23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGeniv(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFeedbackBuffer(GLsizei size, GLenum type, GLfloat * buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFeedbackBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFeedbackBuffer(size, type, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (buffer) {
        size_t _cGLfloat = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((buffer)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSelectBuffer(GLsizei size, GLuint * buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glSelectBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSelectBuffer(size, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (buffer) {
        size_t _cGLuint = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffer)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glRenderMode(GLenum mode) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glRenderMode_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glRenderMode(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glInitNames(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glInitNames_sig);
    trace::localWriter.endEnter();
    _glInitNames();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadName(GLuint name) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadName(name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPassThrough(GLfloat token) {
    unsigned _call = trace::localWriter.beginEnter(&_glPassThrough_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(token);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPassThrough(token);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopName(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopName_sig);
    trace::localWriter.endEnter();
    _glPopName();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPushName(GLuint name) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushName(name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearAccum_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearAccum(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearIndex(GLfloat c) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(c);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearIndex(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexMask(GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexMask_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexMask(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAccum(GLenum op, GLfloat value) {
    unsigned _call = trace::localWriter.beginEnter(&_glAccum_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAccum(op, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopAttrib(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopAttrib_sig);
    trace::localWriter.endEnter();
    _glPopAttrib();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPushAttrib(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield1_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushAttrib(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMap1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(order);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (points) {
        size_t _cCGLdouble18 = _glMap1d_size(target, stride, order) > 0 ? _glMap1d_size(target, stride, order) : 0;
        trace::localWriter.beginArray(_cCGLdouble18);
        for (size_t _iCGLdouble18 = 0; _iCGLdouble18 < _cCGLdouble18; ++_iCGLdouble18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((points)[_iCGLdouble18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMap1d(target, u1, u2, stride, order, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMap1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(order);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (points) {
        size_t _cCGLfloat23 = _glMap1f_size(target, stride, order) > 0 ? _glMap1f_size(target, stride, order) : 0;
        trace::localWriter.beginArray(_cCGLfloat23);
        for (size_t _iCGLfloat23 = 0; _iCGLfloat23 < _cCGLfloat23; ++_iCGLfloat23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((points)[_iCGLfloat23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMap1f(target, u1, u2, stride, order, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMap2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    if (points) {
        size_t _cCGLdouble19 = _glMap2d_size(target, ustride, uorder, vstride, vorder) > 0 ? _glMap2d_size(target, ustride, uorder, vstride, vorder) : 0;
        trace::localWriter.beginArray(_cCGLdouble19);
        for (size_t _iCGLdouble19 = 0; _iCGLdouble19 < _cCGLdouble19; ++_iCGLdouble19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((points)[_iCGLdouble19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMap2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    if (points) {
        size_t _cCGLfloat24 = _glMap2f_size(target, ustride, uorder, vstride, vorder) > 0 ? _glMap2f_size(target, ustride, uorder, vstride, vorder) : 0;
        trace::localWriter.beginArray(_cCGLfloat24);
        for (size_t _iCGLfloat24 = 0; _iCGLfloat24 < _cCGLfloat24; ++_iCGLfloat24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((points)[_iCGLfloat24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapGrid1d(GLint un, GLdouble u1, GLdouble u2) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapGrid1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(un);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapGrid1d(un, u1, u2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapGrid1f(GLint un, GLfloat u1, GLfloat u2) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapGrid1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(un);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapGrid1f(un, u1, u2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapGrid2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(un);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(vn);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapGrid2d(un, u1, u2, vn, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapGrid2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(un);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(vn);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapGrid2f(un, u1, u2, vn, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord1d(GLdouble u) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(u);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord1d(u);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord1dv(const GLdouble * u) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord1dv_sig);
    trace::localWriter.beginArg(0);
    if (u) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*u);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord1dv(u);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord1f(GLfloat u) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(u);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord1f(u);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord1fv(const GLfloat * u) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord1fv_sig);
    trace::localWriter.beginArg(0);
    if (u) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*u);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord1fv(u);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord2d(GLdouble u, GLdouble v) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(u);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(v);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord2d(u, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord2dv(const GLdouble * u) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord2dv_sig);
    trace::localWriter.beginArg(0);
    if (u) {
        size_t _cCGLdouble21 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble21);
        for (size_t _iCGLdouble21 = 0; _iCGLdouble21 < _cCGLdouble21; ++_iCGLdouble21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((u)[_iCGLdouble21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord2dv(u);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord2f(GLfloat u, GLfloat v) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(u);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord2f(u, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalCoord2fv(const GLfloat * u) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalCoord2fv_sig);
    trace::localWriter.beginArg(0);
    if (u) {
        size_t _cCGLfloat26 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat26);
        for (size_t _iCGLfloat26 = 0; _iCGLfloat26 < _cCGLfloat26; ++_iCGLfloat26) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((u)[_iCGLfloat26]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalCoord2fv(u);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalMesh1(GLenum mode, GLint i1, GLint i2) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalMesh1_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(i1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(i2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalMesh1(mode, i1, i2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalPoint1(GLint i) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalPoint1_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(i);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalPoint1(i);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalMesh2_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(i1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(i2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(j1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(j2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalMesh2(mode, i1, i2, j1, j2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalPoint2(GLint i, GLint j) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalPoint2_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(i);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(j);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalPoint2(i, j);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAlphaFunc(GLenum func, GLfloat ref) {
    unsigned _call = trace::localWriter.beginEnter(&_glAlphaFunc_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(ref);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAlphaFunc(func, ref);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelZoom(GLfloat xfactor, GLfloat yfactor) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelZoom_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(xfactor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(yfactor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelZoom(xfactor, yfactor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTransferf(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTransferf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTransferf(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTransferi(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTransferi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTransferi(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glPixelMapfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(mapsize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cCGLfloat27 = mapsize > 0 ? mapsize : 0;
        trace::localWriter.beginArray(_cCGLfloat27);
        for (size_t _iCGLfloat27 = 0; _iCGLfloat27 < _cCGLfloat27; ++_iCGLfloat27) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((values)[_iCGLfloat27]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelMapfv(map, mapsize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glPixelMapuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(mapsize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cCGLuint2 = mapsize > 0 ? mapsize : 0;
        trace::localWriter.beginArray(_cCGLuint2);
        for (size_t _iCGLuint2 = 0; _iCGLuint2 < _cCGLuint2; ++_iCGLuint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iCGLuint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelMapuiv(map, mapsize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glPixelMapusv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(mapsize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cCGLushort2 = mapsize > 0 ? mapsize : 0;
        trace::localWriter.beginArray(_cCGLushort2);
        for (size_t _iCGLushort2 = 0; _iCGLushort2 < _cCGLushort2; ++_iCGLushort2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iCGLushort2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelMapusv(map, mapsize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyPixels_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyPixels(x, y, width, height, type);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glDrawPixels_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glDrawPixels_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawPixels(width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetClipPlane(GLenum plane, GLdouble * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetClipPlane_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetClipPlane(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cGLdouble = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((equation)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetLightfv(GLenum light, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetLightfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetLightfv(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetLightiv(GLenum light, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetLightiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetLightiv(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapdv(GLenum target, GLenum query, GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapdv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapdv(target, query, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapfv(GLenum target, GLenum query, GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapfv(target, query, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapiv(GLenum target, GLenum query, GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapiv(target, query, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMaterialfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMaterialfv(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMaterialiv(GLenum face, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMaterialiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMaterialiv(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelMapfv(GLenum map, GLfloat * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelMapfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelMapfv(map, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (values) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*values);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelMapuiv(GLenum map, GLuint * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelMapuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelMapuiv(map, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (values) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*values);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelMapusv(GLenum map, GLushort * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelMapusv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelMapusv(map, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (values) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*values);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPolygonStipple(GLubyte * mask) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetPolygonStipple_sig);
    trace::localWriter.endEnter();
    _glGetPolygonStipple(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)mask);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexEnvfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexEnvfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexEnviv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexEnviv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexEnviv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexGendv(GLenum coord, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexGendv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexGendv(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexGenfv(GLenum coord, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexGenfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexGenfv(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexGeniv(GLenum coord, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexGeniv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexGeniv(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsList(GLuint list) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsList_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsList(list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrustum_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFrustum(left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadIdentity(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadIdentity_sig);
    trace::localWriter.endEnter();
    _glLoadIdentity();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadMatrixf(const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadMatrixf_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfloat28 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat28);
        for (size_t _iCGLfloat28 = 0; _iCGLfloat28 < _cCGLfloat28; ++_iCGLfloat28) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat28]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadMatrixf(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadMatrixd(const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadMatrixd_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLdouble22 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble22);
        for (size_t _iCGLdouble22 = 0; _iCGLdouble22 < _cCGLdouble22; ++_iCGLdouble22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadMatrixd(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMode(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMode_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMode(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultMatrixf(const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultMatrixf_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfloat29 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat29);
        for (size_t _iCGLfloat29 = 0; _iCGLfloat29 < _cCGLfloat29; ++_iCGLfloat29) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat29]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultMatrixf(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultMatrixd(const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultMatrixd_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLdouble23 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble23);
        for (size_t _iCGLdouble23 = 0; _iCGLdouble23 < _cCGLdouble23; ++_iCGLdouble23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultMatrixd(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glOrtho_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glOrtho(left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopMatrix(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopMatrix_sig);
    trace::localWriter.endEnter();
    _glPopMatrix();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPushMatrix(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushMatrix_sig);
    trace::localWriter.endEnter();
    _glPushMatrix();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRotated_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(angle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRotated(angle, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRotatef_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(angle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRotatef(angle, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScaled(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glScaled_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScaled(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glScalef_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScalef(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTranslated_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTranslated(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTranslatef_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTranslatef(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArrays_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArrays(mode, first, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElements_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElements(mode, count, type, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPointerv(GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPointerv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    if (params &&
        (pname == GL_DEBUG_CALLBACK_FUNCTION ||
         pname == GL_DEBUG_CALLBACK_USER_PARAM)) {
        *params = NULL;
    }
    _glGetPointerv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPolygonOffset(GLfloat factor, GLfloat units) {
    unsigned _call = trace::localWriter.beginEnter(&_glPolygonOffset_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(factor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(units);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPolygonOffset(factor, units);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexImage1D(target, level, internalformat, x, y, width, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage1D(target, level, xoffset, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage1D(target, level, xoffset, width, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindTexture(GLenum target, GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindTexture(target, texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteTextures(GLsizei n, const GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteTextures_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cCPGLuint1 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint1);
        for (size_t _iCPGLuint1 = 0; _iCPGLuint1 < _cCPGLuint1; ++_iCPGLuint1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteTextures(n, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenTextures(GLsizei n, GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenTextures_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenTextures(n, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cPGLuint1 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint1);
        for (size_t _iPGLuint1 = 0; _iPGLuint1 < _cPGLuint1; ++_iPGLuint1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iPGLuint1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsTexture(GLuint texture) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsTexture(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glArrayElement(GLint i) {
    gltrace::Context *_ctx = gltrace::getContext();
    if (_ctx->userArraysOnBegin) {
        os::log("apitrace: warning: user arrays with glArrayElement not supported (https://git.io/JOM0l)\n");
        _ctx->userArraysOnBegin = false;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glArrayElement_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(i);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glArrayElement(i);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glColorPointer(size, type, stride, pointer);
        static bool _checked = false;
        if (!_checked && size == GL_BGRA) {
            GLint _size = 0;
            _glGetIntegerv(GL_COLOR_ARRAY_SIZE, &_size);
            if (_size != GL_BGRA) {
                os::log("apitrace: warning: glGetIntegerv(GL_COLOR_ARRAY_SIZE) does not return GL_BGRA; trace will be incorrect (https://git.io/JOM0n)\n");
            }
            _checked = true;
        }
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glColorPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorPointer(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableClientState(GLenum array) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableClientState_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableClientState(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEdgeFlagPointer(GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glEdgeFlagPointer(stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlagPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEdgeFlagPointer(stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableClientState(GLenum array) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableClientState_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableClientState(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexPointer(GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glIndexPointer(type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glIndexPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexPointer(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glInterleavedArrays(format, stride, pointer);

        GLboolean _secondary_color = GL_FALSE;
        GLboolean _fog_coord = GL_FALSE;
        GLboolean _edge_flag = GL_FALSE;
        GLboolean _texture_coord = GL_FALSE;
        GLboolean _index = GL_FALSE;
        GLboolean _color = GL_FALSE;
        GLboolean _normal = GL_FALSE;
        GLboolean _vertex = GL_FALSE;

        switch (format) {
            case GL_V2F:
                _vertex = GL_TRUE;
                break;
            case GL_V3F:
                _vertex = GL_TRUE;
                break;
            case GL_C4UB_V2F:
                _color = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_C4UB_V3F:
                _color = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_C3F_V3F:
                _color = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_N3F_V3F:
                _normal = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_C4F_N3F_V3F:
                _color = GL_TRUE;
                _normal = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T2F_V3F:
                _texture_coord = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T4F_V4F:
                _texture_coord = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T2F_C4UB_V3F:
                _texture_coord = GL_TRUE;
                _color = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T2F_C3F_V3F:
                _texture_coord = GL_TRUE;
                _color = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T2F_N3F_V3F:
                _texture_coord = GL_TRUE;
                _normal = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T2F_C4F_N3F_V3F:
                _texture_coord = GL_TRUE;
                _color = GL_TRUE;
                _normal = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            case GL_T4F_C4F_N3F_V4F:
                _texture_coord = GL_TRUE;
                _color = GL_TRUE;
                _normal = GL_TRUE;
                _vertex = GL_TRUE;
                break;
            default:
               return;
        }

        if (_secondary_color) {
            _fake_glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
        } else {
            _fake_glDisableClientState(GL_SECONDARY_COLOR_ARRAY);
        }
        if (_fog_coord) {
            _fake_glEnableClientState(GL_FOG_COORD_ARRAY);
        } else {
            _fake_glDisableClientState(GL_FOG_COORD_ARRAY);
        }
        if (_edge_flag) {
            _fake_glEnableClientState(GL_EDGE_FLAG_ARRAY);
        } else {
            _fake_glDisableClientState(GL_EDGE_FLAG_ARRAY);
        }
        if (_texture_coord) {
            _fake_glEnableClientState(GL_TEXTURE_COORD_ARRAY);
        } else {
            _fake_glDisableClientState(GL_TEXTURE_COORD_ARRAY);
        }
        if (_index) {
            _fake_glEnableClientState(GL_INDEX_ARRAY);
        } else {
            _fake_glDisableClientState(GL_INDEX_ARRAY);
        }
        if (_color) {
            _fake_glEnableClientState(GL_COLOR_ARRAY);
        } else {
            _fake_glDisableClientState(GL_COLOR_ARRAY);
        }
        if (_normal) {
            _fake_glEnableClientState(GL_NORMAL_ARRAY);
        } else {
            _fake_glDisableClientState(GL_NORMAL_ARRAY);
        }
        if (_vertex) {
            _fake_glEnableClientState(GL_VERTEX_ARRAY);
        } else {
            _fake_glDisableClientState(GL_VERTEX_ARRAY);
        }
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glInterleavedArrays_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInterleavedArrays(format, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glNormalPointer(type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glNormalPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalPointer(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glTexCoordPointer(size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordPointer(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexPointer(size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexPointer(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glAreTexturesResident(GLsizei n, const GLuint * textures, GLboolean * residences) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glAreTexturesResident_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cCPGLuint11 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint11);
        for (size_t _iCPGLuint11 = 0; _iCPGLuint11 < _cCPGLuint11; ++_iCPGLuint11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glAreTexturesResident(n, textures, residences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (residences) {
        size_t _cGLboolean = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cGLboolean);
        for (size_t _iGLboolean = 0; _iGLboolean < _cGLboolean; ++_iGLboolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, (residences)[_iGLboolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPrioritizeTextures(GLsizei n, const GLuint * textures, const GLclampf * priorities) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrioritizeTextures_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cCPGLuint12 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint12);
        for (size_t _iCPGLuint12 = 0; _iCPGLuint12 < _cCPGLuint12; ++_iCPGLuint12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (priorities) {
        size_t _cCGLclampf = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLclampf);
        for (size_t _iCGLclampf = 0; _iCGLclampf < _cCGLclampf; ++_iCGLclampf) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((priorities)[_iCGLclampf]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrioritizeTextures(n, textures, priorities);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexub(GLubyte c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexub_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(c);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexub(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexubv(const GLubyte * c) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexubv_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*c);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexubv(c);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopClientAttrib(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopClientAttrib_sig);
    trace::localWriter.endEnter();
    _glPopClientAttrib();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPushClientAttrib(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushClientAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield2_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushClientAttrib(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendColor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendColor(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquation(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquation(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.start = start;
        _params.end = end;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawRangeElements_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawRangeElements(mode, start, end, count, type, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glColorTable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)table);
        } else {
    trace::localWriter.writeBlob(table, _glColorTable_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTable(target, internalformat, width, format, type, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorTableParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat30 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat30);
        for (size_t _iCGLfloat30 = 0; _iCGLfloat30 < _cCGLfloat30; ++_iCGLfloat30) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat30]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTableParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTableParameteriv(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorTableParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint24 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint24);
        for (size_t _iCGLint24 = 0; _iCGLint24 < _cCGLint24; ++_iCGLint24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTableParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyColorTable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyColorTable(target, internalformat, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid * table) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTable(target, format, type, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)table);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glColorSubTable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
    trace::localWriter.writeBlob(data, _glColorSubTable_size(format, type, count));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorSubTable(target, start, count, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyColorSubTable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyColorSubTable(target, start, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionFilter1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)image);
        } else {
    trace::localWriter.writeBlob(image, _glConvolutionFilter1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionFilter1D(target, internalformat, width, format, type, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionFilter2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)image);
        } else {
    trace::localWriter.writeBlob(image, _glConvolutionFilter2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionFilter2D(target, internalformat, width, height, format, type, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameterf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameterf(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat31 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat31);
        for (size_t _iCGLfloat31 = 0; _iCGLfloat31 < _cCGLfloat31; ++_iCGLfloat31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameteri(GLenum target, GLenum pname, GLint params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameteri(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameteriv(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint25 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint25);
        for (size_t _iCGLint25 = 0; _iCGLint25 < _cCGLint25; ++_iCGLint25) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint25]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyConvolutionFilter1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyConvolutionFilter1D(target, internalformat, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyConvolutionFilter2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyConvolutionFilter2D(target, internalformat, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetConvolutionFilter_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetConvolutionFilter(target, format, type, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetConvolutionParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetConvolutionParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetConvolutionParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetConvolutionParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetSeparableFilter_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSeparableFilter(target, format, type, row, column, span);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)row);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)column);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)span);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glSeparableFilter2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)row);
        } else {
    trace::localWriter.writeBlob(row, _glConvolutionFilter1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)column);
        } else {
    trace::localWriter.writeBlob(column, _glConvolutionFilter1D_size(format, type, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSeparableFilter2D(target, internalformat, width, height, format, type, row, column);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetHistogram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetHistogram(target, reset, format, type, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetHistogramParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetHistogramParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetHistogramParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetHistogramParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetHistogramParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetMinmax_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMinmax(target, reset, format, type, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMinmaxParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMinmaxParameterfv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMinmaxParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMinmaxParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink) {
    unsigned _call = trace::localWriter.beginEnter(&_glHistogram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, sink);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glHistogram(target, width, internalformat, sink);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMinmax(GLenum target, GLenum internalformat, GLboolean sink) {
    unsigned _call = trace::localWriter.beginEnter(&_glMinmax_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, sink);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMinmax(target, internalformat, sink);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResetHistogram(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glResetHistogram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glResetHistogram(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResetMinmax(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glResetMinmax_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glResetMinmax(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glActiveTexture(GLenum texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveTexture(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleCoverage(GLfloat value, GLboolean invert) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleCoverage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, invert);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleCoverage(value, invert);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCompressedTexImage(GLenum target, GLint level, GLvoid * img) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetCompressedTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCompressedTexImage(target, level, img);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)img);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClientActiveTexture(GLenum texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glClientActiveTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClientActiveTexture(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1d(GLenum target, GLdouble s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1d(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1dv(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1dv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1f(GLenum target, GLfloat s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1f(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1fv(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1fv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1i(GLenum target, GLint s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1i(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1iv(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1iv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1s(GLenum target, GLshort s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1s(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1sv(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1sv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2d(GLenum target, GLdouble s, GLdouble t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2d(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2dv(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble25 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble25);
        for (size_t _iCGLdouble25 = 0; _iCGLdouble25 < _cCGLdouble25; ++_iCGLdouble25) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble25]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2dv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2f(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2fv(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat33 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat33);
        for (size_t _iCGLfloat33 = 0; _iCGLfloat33 < _cCGLfloat33; ++_iCGLfloat33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2fv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2i(GLenum target, GLint s, GLint t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2i(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2iv(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint27 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint27);
        for (size_t _iCGLint27 = 0; _iCGLint27 < _cCGLint27; ++_iCGLint27) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint27]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2iv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2s(GLenum target, GLshort s, GLshort t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2s(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2sv(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort17 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort17);
        for (size_t _iCGLshort17 = 0; _iCGLshort17 < _cCGLshort17; ++_iCGLshort17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2sv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3d(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3dv(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble26 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble26);
        for (size_t _iCGLdouble26 = 0; _iCGLdouble26 < _cCGLdouble26; ++_iCGLdouble26) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble26]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3dv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3f(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3fv(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat34 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat34);
        for (size_t _iCGLfloat34 = 0; _iCGLfloat34 < _cCGLfloat34; ++_iCGLfloat34) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat34]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3fv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3i(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3iv(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint28 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint28);
        for (size_t _iCGLint28 = 0; _iCGLint28 < _cCGLint28; ++_iCGLint28) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint28]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3iv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3s(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3sv(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort18 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort18);
        for (size_t _iCGLshort18 = 0; _iCGLshort18 < _cCGLshort18; ++_iCGLshort18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3sv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4d(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4dv(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble27 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble27);
        for (size_t _iCGLdouble27 = 0; _iCGLdouble27 < _cCGLdouble27; ++_iCGLdouble27) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble27]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4dv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4f(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4fv(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat35 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat35);
        for (size_t _iCGLfloat35 = 0; _iCGLfloat35 < _cCGLfloat35; ++_iCGLfloat35) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat35]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4fv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4i(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4iv(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint29 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint29);
        for (size_t _iCGLint29 = 0; _iCGLint29 < _cCGLint29; ++_iCGLint29) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint29]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4iv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4s(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4sv(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort19 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort19);
        for (size_t _iCGLshort19 = 0; _iCGLshort19 < _cCGLshort19; ++_iCGLshort19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4sv(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadTransposeMatrixf(const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadTransposeMatrixf_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfloat36 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat36);
        for (size_t _iCGLfloat36 = 0; _iCGLfloat36 < _cCGLfloat36; ++_iCGLfloat36) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat36]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadTransposeMatrixf(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadTransposeMatrixd(const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadTransposeMatrixd_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLdouble28 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble28);
        for (size_t _iCGLdouble28 = 0; _iCGLdouble28 < _cCGLdouble28; ++_iCGLdouble28) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble28]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadTransposeMatrixd(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultTransposeMatrixf(const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultTransposeMatrixf_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfloat37 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat37);
        for (size_t _iCGLfloat37 = 0; _iCGLfloat37 < _cCGLfloat37; ++_iCGLfloat37) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat37]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultTransposeMatrixf(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultTransposeMatrixd(const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultTransposeMatrixd_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLdouble29 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble29);
        for (size_t _iCGLdouble29 = 0; _iCGLdouble29 < _cCGLdouble29; ++_iCGLdouble29) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble29]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultTransposeMatrixd(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparate_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArrays(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.drawcount = drawcount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArrays_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (first) {
        size_t _cCGLint30 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint30);
        for (size_t _iCGLint30 = 0; _iCGLint30 < _cCGLint30; ++_iCGLint30) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((first)[_iCGLint30]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (count) {
        size_t _cCGLsizei = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei);
        for (size_t _iCGLsizei = 0; _iCGLsizei < _cCGLsizei; ++_iCGLsizei) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArrays(mode, first, count, drawcount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElements(GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei drawcount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.drawcount = drawcount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElements_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (count) {
        size_t _cCGLsizei1 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei1);
        for (size_t _iCGLsizei1 = 0; _iCGLsizei1 < _cCGLsizei1; ++_iCGLsizei1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (indices) {
        size_t _cCconstGLvoid29 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCconstGLvoid29);
        for (size_t _iCconstGLvoid29 = 0; _iCconstGLvoid29 < _cCconstGLvoid29; ++_iCconstGLvoid29) {
            trace::localWriter.beginElement();
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>((indices)[_iCconstGLvoid29]));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>((indices)[_iCconstGLvoid29]), count[_iCconstGLvoid29]*_gl_type_size(type));
        break;
    }
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElements(mode, count, type, indices, drawcount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterf(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterf(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfv(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat38 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat38);
        for (size_t _iCGLfloat38 = 0; _iCGLfloat38 < _cCGLfloat38; ++_iCGLfloat38) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat38]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameteri(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameteri(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameteriv(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint31 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint31);
        for (size_t _iCGLint31 = 0; _iCGLint31 < _cCGLint31; ++_iCGLint31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameteriv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordf(GLfloat coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(coord);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordf(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordfv(const GLfloat * coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordfv_sig);
    trace::localWriter.beginArg(0);
    if (coord) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*coord);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordfv(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordd(GLdouble coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordd_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(coord);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordd(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoorddv(const GLdouble * coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoorddv_sig);
    trace::localWriter.beginArg(0);
    if (coord) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*coord);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoorddv(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordPointer(GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glFogCoordPointer(type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordPointer(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3b_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3b(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3bv(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3bv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte3 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte3);
        for (size_t _iCGLbyte3 = 0; _iCGLbyte3 < _cCGLbyte3; ++_iCGLbyte3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3bv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3d(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble31 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble31);
        for (size_t _iCGLdouble31 = 0; _iCGLdouble31 < _cCGLdouble31; ++_iCGLdouble31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3f(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat40 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat40);
        for (size_t _iCGLfloat40 = 0; _iCGLfloat40 < _cCGLfloat40; ++_iCGLfloat40) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat40]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3i(GLint red, GLint green, GLint blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3i(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint32 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint32);
        for (size_t _iCGLint32 = 0; _iCGLint32 < _cCGLint32; ++_iCGLint32) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint32]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3s(GLshort red, GLshort green, GLshort blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3s(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort20 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort20);
        for (size_t _iCGLshort20 = 0; _iCGLshort20 < _cCGLshort20; ++_iCGLshort20) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort20]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3ub_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3ub(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3ubv(const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3ubv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLubyte6 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLubyte6);
        for (size_t _iCGLubyte6 = 0; _iCGLubyte6 < _cCGLubyte6; ++_iCGLubyte6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3ubv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3ui(GLuint red, GLuint green, GLuint blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3ui(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3uiv(const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3uiv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLuint3 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLuint3);
        for (size_t _iCGLuint3 = 0; _iCGLuint3 < _cCGLuint3; ++_iCGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3uiv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3us(GLushort red, GLushort green, GLushort blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3us_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3us(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3usv(const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3usv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLushort3 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLushort3);
        for (size_t _iCGLushort3 = 0; _iCGLushort3 < _cCGLushort3; ++_iCGLushort3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3usv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glSecondaryColorPointer(size, type, stride, pointer);
        static bool _checked = false;
        if (!_checked && size == GL_BGRA) {
            GLint _size = 0;
            _glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_SIZE, &_size);
            if (_size != GL_BGRA) {
                os::log("apitrace: warning: glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_SIZE) does not return GL_BGRA; trace will be incorrect (https://git.io/JOM0n)\n");
            }
            _checked = true;
        }
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColorPointer(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2d(GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2d(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble32 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble32);
        for (size_t _iCGLdouble32 = 0; _iCGLdouble32 < _cCGLdouble32; ++_iCGLdouble32) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble32]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2f(GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2f(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat41 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat41);
        for (size_t _iCGLfloat41 = 0; _iCGLfloat41 < _cCGLfloat41; ++_iCGLfloat41) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat41]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2i(GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2i(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint33 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint33);
        for (size_t _iCGLint33 = 0; _iCGLint33 < _cCGLint33; ++_iCGLint33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2s(GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2s(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort21 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort21);
        for (size_t _iCGLshort21 = 0; _iCGLshort21 < _cCGLshort21; ++_iCGLshort21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3d(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3d(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3dv(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3dv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble33 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble33);
        for (size_t _iCGLdouble33 = 0; _iCGLdouble33 < _cCGLdouble33; ++_iCGLdouble33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3dv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3f(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3f(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3fv(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3fv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat42 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat42);
        for (size_t _iCGLfloat42 = 0; _iCGLfloat42 < _cCGLfloat42; ++_iCGLfloat42) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat42]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3fv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3i(GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3i(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3iv(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3iv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint34 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint34);
        for (size_t _iCGLint34 = 0; _iCGLint34 < _cCGLint34; ++_iCGLint34) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint34]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3iv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3s(GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3s(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3sv(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3sv_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort22 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort22);
        for (size_t _iCGLshort22 = 0; _iCGLshort22 < _cCGLshort22; ++_iCGLshort22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3sv(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenQueries(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenQueries_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenQueries(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint3);
        for (size_t _iPGLuint3 = 0; _iPGLuint3 < _cPGLuint3; ++_iPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteQueries(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteQueries_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint3);
        for (size_t _iCPGLuint3 = 0; _iCPGLuint3 < _cCPGLuint3; ++_iCPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteQueries(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsQuery(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsQuery_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsQuery(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBeginQuery(GLenum target, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginQuery_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginQuery(target, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndQuery(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndQuery_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndQuery(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryiv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectiv(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectiv(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectuiv(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBuffer(GLenum target, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBuffer(target, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteBuffers(GLsizei n, const GLuint * buffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (buffers) {
        size_t _cCPGLuint2 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint2);
        for (size_t _iCPGLuint2 = 0; _iCPGLuint2 < _cCPGLuint2; ++_iCPGLuint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iCPGLuint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteBuffers(n, buffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenBuffers(GLsizei n, GLuint * buffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenBuffers(n, buffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (buffers) {
        size_t _cPGLuint2 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint2);
        for (size_t _iPGLuint2 = 0; _iPGLuint2 < _cPGLuint2; ++_iPGLuint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iPGLuint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsBuffer(GLuint buffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsBuffer(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage) {
    if (target == GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD) {
        os::log("apitrace: warning: GL_AMD_pinned_memory not fully supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glBufferData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, usage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferData(target, size, data, usage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferSubData(target, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferSubData(target, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapBuffer(GLenum target, GLenum access) {
    GLvoid * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glMapBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapBuffer(target, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glUnmapBuffer(GLenum target) {
    GLboolean _result;
    GLint access_flags = 0;
    GLint access = 0;
    bool flush;
    // GLES3 does not have GL_BUFFER_ACCESS;
    if (_checkBufferMapRange) {
        _glGetBufferParameteriv(target, GL_BUFFER_ACCESS_FLAGS, &access_flags);
        flush = (access_flags & GL_MAP_WRITE_BIT) && !(access_flags & (GL_MAP_FLUSH_EXPLICIT_BIT | GL_MAP_PERSISTENT_BIT));
    } else {
        _glGetBufferParameteriv(target, GL_BUFFER_ACCESS, &access);
        flush = access != GL_READ_ONLY;
    }
    if (gltrace::is_coherent_write_map(access_flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint buffer = getBufferName(target);
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            it->second->unmap(trace::fakeMemcpy);
        } else {
            os::log("apitrace: error: %s: cannot find memory shadow\n", __FUNCTION__);
        }
        flush = false;
    }
    if (flush) {
        GLvoid *map = NULL;
        _glGetBufferPointerv(target, GL_BUFFER_MAP_POINTER, &map);
        if (map) {
            GLint length = -1;
            if (_checkBufferMapRange) {
                _glGetBufferParameteriv(target, GL_BUFFER_MAP_LENGTH, &length);
                if (length == -1) {
                    // Mesa drivers refuse GL_BUFFER_MAP_LENGTH without GL 3.0 up-to
                    // http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffee498fb848b253a7833373fe5430f8c7ca0c5f
                    static bool warned = false;
                    if (!warned) {
                        os::log("apitrace: warning: glGetBufferParameteriv(GL_BUFFER_MAP_LENGTH) failed\n");
                        warned = true;
                    }
                }
            } else {
                length = 0;
                _glGetBufferParameteriv(target, GL_BUFFER_SIZE, &length);
            }
            if (_checkBufferFlushingUnmapAPPLE) {
                GLint flushing_unmap = GL_TRUE;
                _glGetBufferParameteriv(target, GL_BUFFER_FLUSHING_UNMAP_APPLE, &flushing_unmap);
                flush = flush && flushing_unmap;
            }
            if (flush && length > 0) {
    trace::fakeMemcpy(map, length);
            }
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glUnmapBuffer(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBufferPointerv(GLenum target, GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferPointerv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferPointerv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparate_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparate(modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffers(GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (bufs) {
        size_t _cCGLenum = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum);
        for (size_t _iCGLenum = 0; _iCGLenum < _cCGLenum; ++_iCGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffers(n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilOpSeparate_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfail);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dpfail);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dppass);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilOpSeparate(face, sfail, dpfail, dppass);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilFuncSeparate_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(ref);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilFuncSeparate(face, func, ref, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilMaskSeparate(GLenum face, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilMaskSeparate_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilMaskSeparate(face, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAttachShader(GLuint program, GLuint shader) {
    unsigned _call = trace::localWriter.beginEnter(&_glAttachShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAttachShader(program, shader);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindAttribLocation(GLuint program, GLuint index, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindAttribLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindAttribLocation(program, index, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompileShader(GLuint shader) {
    unsigned _call = trace::localWriter.beginEnter(&_glCompileShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompileShader(shader);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glCreateProgram(void) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateProgram_sig);
    trace::localWriter.endEnter();
    _result = _glCreateProgram();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glCreateShader(GLenum type) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCreateShader(type);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteProgram(GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteProgram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteProgram(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteShader(GLuint shader) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteShader(shader);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDetachShader(GLuint program, GLuint shader) {
    unsigned _call = trace::localWriter.beginEnter(&_glDetachShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDetachShader(program, shader);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVertexAttribArray(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVertexAttribArray_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVertexAttribArray(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVertexAttribArray(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVertexAttribArray_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVertexAttribArray(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveAttrib(program, index, bufSize, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveUniform_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveUniform(program, index, bufSize, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetAttachedShaders_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(maxCount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetAttachedShaders(program, maxCount, count, obj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (count) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*count);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (obj) {
        size_t _cGLuint = (count ? *count : maxCount) > 0 ? (count ? *count : maxCount) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((obj)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetAttribLocation(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetAttribLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetAttribLocation(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramiv(program, pname, params);
    if (params && pname == GL_PROGRAM_BINARY_LENGTH) {
        *params = 0;
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramInfoLog_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramInfoLog(program, bufSize, length, infoLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(infoLog), ((length) ? *(length) : strlen(infoLog)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetShaderiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetShaderiv(shader, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetShaderInfoLog_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetShaderInfoLog(shader, bufSize, length, infoLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(infoLog), ((length) ? *(length) : strlen(infoLog)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetShaderSource_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetShaderSource(shader, bufSize, length, source);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(source), ((length) ? *(length) : strlen(source)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetUniformLocation(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetUniformLocation(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetUniformfv(GLuint program, GLint location, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformfv(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformiv(GLuint program, GLint location, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformiv(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribdv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribdv(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribfv(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribiv(GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribiv(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribPointerv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribPointerv(index, pname, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (pointer) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*pointer);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsProgram(GLuint program) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsProgram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsProgram(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsShader(GLuint shader) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsShader(shader);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glLinkProgram(GLuint program) {
    _glLinkProgram(program);
    GLint active_attributes = 0;
    _glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, &active_attributes);
    for (GLint attrib = 0; attrib < active_attributes; ++attrib) {
        GLint size = 0;
        GLenum type = 0;
        GLchar name[256];
        _glGetActiveAttrib(program, attrib, sizeof name, NULL, &size, &type, name);
        if (name[0] != 'g' || name[1] != 'l' || name[2] != '_') {
            GLint location = _glGetAttribLocation(program, name);
            if (location >= 0) {
                _fake_glBindAttribLocation(program, location, name);
            }
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glLinkProgram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShaderSource(GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderSource_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (string) {
        size_t _cCconstGLchar1 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCconstGLchar1);
        for (size_t _iCconstGLchar1 = 0; _iCconstGLchar1 < _cCconstGLchar1; ++_iCconstGLchar1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((string)[_iCconstGLchar1]), _glShaderSource_length(string, length, _iCconstGLchar1));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (length) {
        size_t _cCGLint35 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint35);
        for (size_t _iCGLint35 = 0; _iCGLint35 < _cCGLint35; ++_iCGLint35) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((length)[_iCGLint35]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderSource(shader, count, string, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUseProgram(GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glUseProgram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUseProgram(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1f(GLint location, GLfloat v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1f(location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2f(GLint location, GLfloat v0, GLfloat v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2f(location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3f(location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4f(location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1i(GLint location, GLint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1i(location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2i(GLint location, GLint v0, GLint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2i(location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3i(location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4i(location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1fv(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat43 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLfloat43);
        for (size_t _iCGLfloat43 = 0; _iCGLfloat43 < _cCGLfloat43; ++_iCGLfloat43) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat43]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1fv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2fv(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat44 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat44);
        for (size_t _iCGLfloat44 = 0; _iCGLfloat44 < _cCGLfloat44; ++_iCGLfloat44) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat44]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2fv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3fv(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat45 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat45);
        for (size_t _iCGLfloat45 = 0; _iCGLfloat45 < _cCGLfloat45; ++_iCGLfloat45) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat45]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3fv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4fv(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat46 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat46);
        for (size_t _iCGLfloat46 = 0; _iCGLfloat46 < _cCGLfloat46; ++_iCGLfloat46) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat46]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4fv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1iv(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint36 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint36);
        for (size_t _iCGLint36 = 0; _iCGLint36 < _cCGLint36; ++_iCGLint36) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint36]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1iv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2iv(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint37 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint37);
        for (size_t _iCGLint37 = 0; _iCGLint37 < _cCGLint37; ++_iCGLint37) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint37]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2iv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3iv(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint38 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint38);
        for (size_t _iCGLint38 = 0; _iCGLint38 < _cCGLint38; ++_iCGLint38) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint38]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3iv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4iv(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint39 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint39);
        for (size_t _iCGLint39 = 0; _iCGLint39 < _cCGLint39; ++_iCGLint39) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint39]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4iv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat47 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat47);
        for (size_t _iCGLfloat47 = 0; _iCGLfloat47 < _cCGLfloat47; ++_iCGLfloat47) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat47]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat48 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat48);
        for (size_t _iCGLfloat48 = 0; _iCGLfloat48 < _cCGLfloat48; ++_iCGLfloat48) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat48]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat49 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat49);
        for (size_t _iCGLfloat49 = 0; _iCGLfloat49 < _cCGLfloat49; ++_iCGLfloat49) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat49]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glValidateProgram(GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glValidateProgram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glValidateProgram(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1d(GLuint index, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1d(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1f(GLuint index, GLfloat x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1f(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1fv(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1fv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1s(GLuint index, GLshort x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1s(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1sv(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1sv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2d(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble35 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble35);
        for (size_t _iCGLdouble35 = 0; _iCGLdouble35 < _cCGLdouble35; ++_iCGLdouble35) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble35]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2f(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2fv(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat51 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat51);
        for (size_t _iCGLfloat51 = 0; _iCGLfloat51 < _cCGLfloat51; ++_iCGLfloat51) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat51]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2fv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2s(GLuint index, GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2s(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2sv(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort24 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort24);
        for (size_t _iCGLshort24 = 0; _iCGLshort24 < _cCGLshort24; ++_iCGLshort24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2sv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3d(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble36 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble36);
        for (size_t _iCGLdouble36 = 0; _iCGLdouble36 < _cCGLdouble36; ++_iCGLdouble36) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble36]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3f(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3fv(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat52 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat52);
        for (size_t _iCGLfloat52 = 0; _iCGLfloat52 < _cCGLfloat52; ++_iCGLfloat52) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat52]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3fv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3s(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3sv(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort25 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort25);
        for (size_t _iCGLshort25 = 0; _iCGLshort25 < _cCGLshort25; ++_iCGLshort25) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort25]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3sv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Nbv(GLuint index, const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Nbv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLbyte4 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte4);
        for (size_t _iCGLbyte4 = 0; _iCGLbyte4 < _cCGLbyte4; ++_iCGLbyte4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Nbv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Niv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Niv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint40 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint40);
        for (size_t _iCGLint40 = 0; _iCGLint40 < _cCGLint40; ++_iCGLint40) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint40]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Niv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Nsv(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Nsv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort26 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort26);
        for (size_t _iCGLshort26 = 0; _iCGLshort26 < _cCGLshort26; ++_iCGLshort26) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort26]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Nsv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Nub_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Nub(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Nubv(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Nubv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte7 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte7);
        for (size_t _iCGLubyte7 = 0; _iCGLubyte7 < _cCGLubyte7; ++_iCGLubyte7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Nubv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Nuiv(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Nuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint4 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint4);
        for (size_t _iCGLuint4 = 0; _iCGLuint4 < _cCGLuint4; ++_iCGLuint4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Nuiv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4Nusv(GLuint index, const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4Nusv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLushort4 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort4);
        for (size_t _iCGLushort4 = 0; _iCGLushort4 < _cCGLushort4; ++_iCGLushort4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4Nusv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4bv(GLuint index, const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4bv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLbyte5 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte5);
        for (size_t _iCGLbyte5 = 0; _iCGLbyte5 < _cCGLbyte5; ++_iCGLbyte5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4bv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4d(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble37 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble37);
        for (size_t _iCGLdouble37 = 0; _iCGLdouble37 < _cCGLdouble37; ++_iCGLdouble37) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble37]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4f(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4fv(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat53 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat53);
        for (size_t _iCGLfloat53 = 0; _iCGLfloat53 < _cCGLfloat53; ++_iCGLfloat53) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat53]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4fv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4iv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint41 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint41);
        for (size_t _iCGLint41 = 0; _iCGLint41 < _cCGLint41; ++_iCGLint41) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint41]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4iv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4s_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4s(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4sv(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort27 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort27);
        for (size_t _iCGLshort27 = 0; _iCGLshort27 < _cCGLshort27; ++_iCGLshort27) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort27]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4sv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4ubv(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4ubv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte8 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte8);
        for (size_t _iCGLubyte8 = 0; _iCGLubyte8 < _cCGLubyte8; ++_iCGLubyte8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4ubv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4uiv(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint5 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint5);
        for (size_t _iCGLuint5 = 0; _iCGLuint5 < _cCGLuint5; ++_iCGLuint5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4uiv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4usv(GLuint index, const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4usv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLushort5 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort5);
        for (size_t _iCGLushort5 = 0; _iCGLushort5 < _cCGLushort5; ++_iCGLushort5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4usv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexAttribPointer(index, size, type, normalized, stride, pointer);
        static bool _checked = false;
        if (!_checked && size == GL_BGRA) {
            GLint _size = 0;
            _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_SIZE, &_size);
            if (_size != GL_BGRA) {
                os::log("apitrace: warning: glGetVertexAttribiv(GL_VERTEX_ATTRIB_ARRAY_SIZE) does not return GL_BGRA; trace will be incorrect (https://git.io/JOM0n)\n");
            }
            _checked = true;
        }
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribPointer(index, size, type, normalized, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2x3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat54 = count*2*3 > 0 ? count*2*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat54);
        for (size_t _iCGLfloat54 = 0; _iCGLfloat54 < _cCGLfloat54; ++_iCGLfloat54) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat54]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2x3fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3x2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat55 = count*3*2 > 0 ? count*3*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat55);
        for (size_t _iCGLfloat55 = 0; _iCGLfloat55 < _cCGLfloat55; ++_iCGLfloat55) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat55]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3x2fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2x4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat56 = count*2*4 > 0 ? count*2*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat56);
        for (size_t _iCGLfloat56 = 0; _iCGLfloat56 < _cCGLfloat56; ++_iCGLfloat56) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat56]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2x4fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4x2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat57 = count*4*2 > 0 ? count*4*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat57);
        for (size_t _iCGLfloat57 = 0; _iCGLfloat57 < _cCGLfloat57; ++_iCGLfloat57) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat57]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4x2fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3x4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat58 = count*3*4 > 0 ? count*3*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat58);
        for (size_t _iCGLfloat58 = 0; _iCGLfloat58 < _cCGLfloat58; ++_iCGLfloat58) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat58]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3x4fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4x3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat59 = count*4*3 > 0 ? count*4*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat59);
        for (size_t _iCGLfloat59 = 0; _iCGLfloat59 < _cCGLfloat59; ++_iCGLfloat59) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat59]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4x3fv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorMaski_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, a);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorMaski(index, r, g, b, a);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBooleani_v(GLenum target, GLuint index, GLboolean * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBooleani_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBooleani_v(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLboolean = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLboolean);
        for (size_t _iGLboolean = 0; _iGLboolean < _cGLboolean; ++_iGLboolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, (data)[_iGLboolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetIntegeri_v(GLenum target, GLuint index, GLint * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetIntegeri_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetIntegeri_v(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLint = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((data)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnablei(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnablei_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnablei(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisablei(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisablei_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisablei(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsEnabledi(GLenum target, GLuint index) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsEnabledi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsEnabledi(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBeginTransformFeedback(GLenum primitiveMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginTransformFeedback_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, primitiveMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginTransformFeedback(primitiveMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndTransformFeedback(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndTransformFeedback_sig);
    trace::localWriter.endEnter();
    _glEndTransformFeedback();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferRange(target, index, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferBase_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferBase(target, index, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar * const * varyings, GLenum bufferMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackVaryings_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (varyings) {
        size_t _cCconstGLchar = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCconstGLchar);
        for (size_t _iCconstGLchar = 0; _iCconstGLchar < _cCconstGLchar; ++_iCconstGLchar) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((varyings)[_iCconstGLchar]));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, bufferMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackVaryings(program, count, varyings, bufferMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTransformFeedbackVarying_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClampColor(GLenum target, GLenum clamp) {
    unsigned _call = trace::localWriter.beginEnter(&_glClampColor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, clamp);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClampColor(target, clamp);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginConditionalRender(GLuint id, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginConditionalRender_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginConditionalRender(id, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndConditionalRender(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndConditionalRender_sig);
    trace::localWriter.endEnter();
    _glEndConditionalRender();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexAttribIPointer(index, size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribIPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribIPointer(index, size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribIiv(GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribIiv(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribIuiv(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1i(GLuint index, GLint x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1i(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2i(GLuint index, GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2i(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3i(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4i(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1ui(GLuint index, GLuint x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1ui(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2ui(GLuint index, GLuint x, GLuint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2ui(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3ui(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4ui(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1iv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1iv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2iv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint43 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint43);
        for (size_t _iCGLint43 = 0; _iCGLint43 < _cCGLint43; ++_iCGLint43) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint43]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2iv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3iv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint44 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint44);
        for (size_t _iCGLint44 = 0; _iCGLint44 < _cCGLint44; ++_iCGLint44) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint44]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3iv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4iv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint45 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint45);
        for (size_t _iCGLint45 = 0; _iCGLint45 < _cCGLint45; ++_iCGLint45) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint45]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4iv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1uiv(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1uiv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2uiv(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint7 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLuint7);
        for (size_t _iCGLuint7 = 0; _iCGLuint7 < _cCGLuint7; ++_iCGLuint7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2uiv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3uiv(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint8 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLuint8);
        for (size_t _iCGLuint8 = 0; _iCGLuint8 < _cCGLuint8; ++_iCGLuint8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3uiv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4uiv(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint9 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint9);
        for (size_t _iCGLuint9 = 0; _iCGLuint9 < _cCGLuint9; ++_iCGLuint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4uiv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4bv(GLuint index, const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4bv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLbyte6 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte6);
        for (size_t _iCGLbyte6 = 0; _iCGLbyte6 < _cCGLbyte6; ++_iCGLbyte6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4bv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4sv(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4sv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort28 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort28);
        for (size_t _iCGLshort28 = 0; _iCGLshort28 < _cCGLshort28; ++_iCGLshort28) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort28]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4sv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4ubv(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4ubv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte9 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte9);
        for (size_t _iCGLubyte9 = 0; _iCGLubyte9 < _cCGLubyte9; ++_iCGLubyte9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4ubv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4usv(GLuint index, const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4usv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLushort6 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort6);
        for (size_t _iCGLushort6 = 0; _iCGLushort6 < _cCGLushort6; ++_iCGLushort6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4usv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformuiv(GLuint program, GLint location, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformuiv(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindFragDataLocation(GLuint program, GLuint color, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFragDataLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(color);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFragDataLocation(program, color, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetFragDataLocation(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragDataLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetFragDataLocation(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glUniform1ui(GLint location, GLuint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1ui(location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2ui(GLint location, GLuint v0, GLuint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2ui(location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3ui(location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4ui(location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1uiv(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint10 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint10);
        for (size_t _iCGLuint10 = 0; _iCGLuint10 < _cCGLuint10; ++_iCGLuint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1uiv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2uiv(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint11 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint11);
        for (size_t _iCGLuint11 = 0; _iCGLuint11 < _cCGLuint11; ++_iCGLuint11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2uiv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3uiv(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint12 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint12);
        for (size_t _iCGLuint12 = 0; _iCGLuint12 < _cCGLuint12; ++_iCGLuint12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3uiv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4uiv(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint13 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint13);
        for (size_t _iCGLuint13 = 0; _iCGLuint13 < _cCGLuint13; ++_iCGLuint13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4uiv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterIiv(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint46 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint46);
        for (size_t _iCGLint46 = 0; _iCGLint46 < _cCGLint46; ++_iCGLint46) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint46]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterIiv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterIuiv(GLenum target, GLenum pname, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLuint14 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint14);
        for (size_t _iCGLuint14 = 0; _iCGLuint14 < _cCGLuint14; ++_iCGLuint14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterIuiv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterIiv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterIiv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterIuiv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearBufferiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint47 = _glClearBuffer_size(buffer) > 0 ? _glClearBuffer_size(buffer) : 0;
        trace::localWriter.beginArray(_cCGLint47);
        for (size_t _iCGLint47 = 0; _iCGLint47 < _cCGLint47; ++_iCGLint47) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint47]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearBufferiv(buffer, drawbuffer, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearBufferuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint15 = _glClearBuffer_size(buffer) > 0 ? _glClearBuffer_size(buffer) : 0;
        trace::localWriter.beginArray(_cCGLuint15);
        for (size_t _iCGLuint15 = 0; _iCGLuint15 < _cCGLuint15; ++_iCGLuint15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearBufferuiv(buffer, drawbuffer, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearBufferfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat60 = _glClearBuffer_size(buffer) > 0 ? _glClearBuffer_size(buffer) : 0;
        trace::localWriter.beginArray(_cCGLfloat60);
        for (size_t _iCGLfloat60 = 0; _iCGLfloat60 < _cCGLfloat60; ++_iCGLfloat60) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat60]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearBufferfv(buffer, drawbuffer, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearBufferfi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stencil);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearBufferfi(buffer, drawbuffer, depth, stencil);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
const GLubyte * APIENTRY glGetStringi(GLenum name, GLuint index) {
    const GLubyte * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetStringi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = gltrace::_glGetStringi_override(name, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeString(reinterpret_cast<const char *>(_result));
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysInstanced_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysInstanced(mode, first, count, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstanced_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstanced(mode, count, type, indices, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBuffer(target, internalformat, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPrimitiveRestartIndex(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrimitiveRestartIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrimitiveRestartIndex(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInteger64i_v(GLenum target, GLuint index, GLint64 * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInteger64i_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInteger64i_v(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLint64 = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((data)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferParameteri64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferParameteri64v(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture(target, attachment, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribDivisor(GLuint index, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribDivisor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribDivisor(index, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMinSampleShading(GLfloat value) {
    unsigned _call = trace::localWriter.beginEnter(&_glMinSampleShading_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMinSampleShading(value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationi(GLuint buf, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationi(buf, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparatei_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFunci(GLuint buf, GLenum src, GLenum dst) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFunci_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFunci(buf, src, dst);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparatei_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnCompressedTexImage(GLenum target, GLint lod, GLsizei bufSize, void * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnCompressedTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(lod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnCompressedTexImage(target, lod, bufSize, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnTexImage(target, level, format, type, bufSize, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformdv(GLuint program, GLint location, GLsizei bufSize, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformdv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformdv(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMapdv(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnMapdv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMapdv(target, query, bufSize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cGLdouble = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMapfv(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnMapfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMapfv(target, query, bufSize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cGLfloat = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMapiv(GLenum target, GLenum query, GLsizei bufSize, GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnMapiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMapiv(target, query, bufSize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cGLint = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPixelMapfv(GLenum map, GLsizei bufSize, GLfloat * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPixelMapfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPixelMapfv(map, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cGLfloat = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((values)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPixelMapuiv(GLenum map, GLsizei bufSize, GLuint * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPixelMapuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPixelMapuiv(map, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cGLuint = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPixelMapusv(GLenum map, GLsizei bufSize, GLushort * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPixelMapusv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPixelMapusv(map, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cGLushort = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLushort);
        for (size_t _iGLushort = 0; _iGLushort < _cGLushort; ++_iGLushort) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iGLushort]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPolygonStipple(GLsizei bufSize, GLubyte * pattern) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPolygonStipple_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPolygonStipple(bufSize, pattern);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (pattern) {
        size_t _cGLubyte = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLubyte);
        for (size_t _iGLubyte = 0; _iGLubyte < _cGLubyte; ++_iGLubyte) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pattern)[_iGLubyte]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnColorTable(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnColorTable_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnColorTable(target, format, type, bufSize, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)table);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnConvolutionFilter(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnConvolutionFilter_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnConvolutionFilter(target, format, type, bufSize, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnSeparableFilter(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, void * column, GLvoid * span) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnSeparableFilter_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(rowBufSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(columnBufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnSeparableFilter(target, format, type, rowBufSize, row, columnBufSize, column, span);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)row);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writePointer((uintptr_t)column);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writePointer((uintptr_t)span);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnHistogram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnHistogram(target, reset, format, type, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnMinmax_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMinmax(target, reset, format, type, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSpecializeShader(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSpecializeShader_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(pEntryPoint));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(numSpecializationConstants);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (pConstantIndex) {
        size_t _cCGLuint16 = numSpecializationConstants > 0 ? numSpecializationConstants : 0;
        trace::localWriter.beginArray(_cCGLuint16);
        for (size_t _iCGLuint16 = 0; _iCGLuint16 < _cCGLuint16; ++_iCGLuint16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pConstantIndex)[_iCGLuint16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (pConstantValue) {
        size_t _cCGLuint17 = numSpecializationConstants > 0 ? numSpecializationConstants : 0;
        trace::localWriter.beginArray(_cCGLuint17);
        for (size_t _iCGLuint17 = 0; _iCGLuint17 < _cCGLuint17; ++_iCGLuint17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pConstantValue)[_iCGLuint17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSpecializeShader(shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysIndirectCount(GLenum mode, const GLvoid * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawArraysIndirectCount: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysIndirectCount_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), maxdrawcount * (stride ? stride : 16));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(maxdrawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysIndirectCount(mode, indirect, drawcount, maxdrawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsIndirectCount(GLenum mode, GLenum type, const GLvoid * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawElementsIndirectCount: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsIndirectCount_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), maxdrawcount * (stride ? stride : 20));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(maxdrawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsIndirectCount(mode, type, indirect, drawcount, maxdrawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClipPlanef(GLenum plane, const GLfloat * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glClipPlanef_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cCGLfloat61 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat61);
        for (size_t _iCGLfloat61 = 0; _iCGLfloat61 < _cCGLfloat61; ++_iCGLfloat61) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((equation)[_iCGLfloat61]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClipPlanef(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrustumf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFrustumf(left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetClipPlanef(GLenum plane, GLfloat * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetClipPlanef_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetClipPlanef(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cGLfloat = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((equation)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glOrthof_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glOrthof(left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAlphaFuncx(GLenum func, GLclampx ref) {
    unsigned _call = trace::localWriter.beginEnter(&_glAlphaFuncx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ref);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAlphaFuncx(func, ref);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearColorx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearColorx(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearDepthx(GLclampx depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearDepthx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearDepthx(depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClipPlanex(GLenum plane, const GLfixed * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glClipPlanex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cCGLfixed = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfixed);
        for (size_t _iCGLfixed = 0; _iCGLfixed < _cCGLfixed; ++_iCGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((equation)[_iCGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClipPlanex(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4x_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4x(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangex(GLclampx zNear, GLclampx zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangex(zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogx(GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogx(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogxv(GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfixed1 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed1);
        for (size_t _iCGLfixed1 = 0; _iCGLfixed1 < _cCGLfixed1; ++_iCGLfixed1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogxv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrustumx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFrustumx(left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetClipPlanex(GLenum plane, GLfixed * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetClipPlanex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetClipPlanex(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cGLfixed = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((equation)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFixedv(GLenum pname, GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFixedv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFixedv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLfixed = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetLightxv(GLenum light, GLenum pname, GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetLightxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetLightxv(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfixed = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMaterialxv(GLenum face, GLenum pname, GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMaterialxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMaterialxv(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfixed = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexEnvxv(GLenum target, GLenum pname, GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexEnvxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexEnvxv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfixed = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterxv(GLenum target, GLenum pname, GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterxv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfixed = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightModelx(GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightModelx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightModelx(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightModelxv(GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightModelxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfixed2 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed2);
        for (size_t _iCGLfixed2 = 0; _iCGLfixed2 < _cCGLfixed2; ++_iCGLfixed2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightModelxv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightx(GLenum light, GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightx(light, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightxv(GLenum light, GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfixed3 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed3);
        for (size_t _iCGLfixed3 = 0; _iCGLfixed3 < _cCGLfixed3; ++_iCGLfixed3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightxv(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLineWidthx(GLfixed width) {
    unsigned _call = trace::localWriter.beginEnter(&_glLineWidthx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLineWidthx(width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadMatrixx(const GLfixed * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadMatrixx_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfixed4 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfixed4);
        for (size_t _iCGLfixed4 = 0; _iCGLfixed4 < _cCGLfixed4; ++_iCGLfixed4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((m)[_iCGLfixed4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadMatrixx(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMaterialx(GLenum face, GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMaterialx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMaterialx(face, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMaterialxv(GLenum face, GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMaterialxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfixed5 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed5);
        for (size_t _iCGLfixed5 = 0; _iCGLfixed5 < _cCGLfixed5; ++_iCGLfixed5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMaterialxv(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultMatrixx(const GLfixed * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultMatrixx_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfixed6 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfixed6);
        for (size_t _iCGLfixed6 = 0; _iCGLfixed6 < _cCGLfixed6; ++_iCGLfixed6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((m)[_iCGLfixed6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultMatrixx(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4x_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4x(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3x_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3x(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glOrthox_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glOrthox(left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterx(GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterx(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterxv(GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfixed7 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed7);
        for (size_t _iCGLfixed7 = 0; _iCGLfixed7 < _cCGLfixed7; ++_iCGLfixed7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterxv(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointSizex(GLfixed size) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointSizex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointSizex(size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPolygonOffsetx(GLfixed factor, GLfixed units) {
    unsigned _call = trace::localWriter.beginEnter(&_glPolygonOffsetx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(units);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPolygonOffsetx(factor, units);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) {
    unsigned _call = trace::localWriter.beginEnter(&_glRotatex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(angle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRotatex(angle, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleCoveragex(GLclampx value, GLboolean invert) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleCoveragex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, invert);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleCoveragex(value, invert);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScalex(GLfixed x, GLfixed y, GLfixed z) {
    unsigned _call = trace::localWriter.beginEnter(&_glScalex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScalex(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexEnvx(GLenum target, GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexEnvx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexEnvx(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexEnvxv(GLenum target, GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexEnvxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfixed8 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed8);
        for (size_t _iCGLfixed8 = 0; _iCGLfixed8 < _cCGLfixed8; ++_iCGLfixed8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexEnvxv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterx(GLenum target, GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterx_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterx(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterxv(GLenum target, GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterxv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfixed9 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed9);
        for (size_t _iCGLfixed9 = 0; _iCGLfixed9 < _cCGLfixed9; ++_iCGLfixed9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterxv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTranslatex(GLfixed x, GLfixed y, GLfixed z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTranslatex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTranslatex(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendBarrier(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendBarrier_sig);
    trace::localWriter.endEnter();
    _glBlendBarrier();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPrimitiveBoundingBox(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrimitiveBoundingBox_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(minX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(minY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(minZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(minW);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(maxX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(maxY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(maxZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(maxW);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrimitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTbufferMask3DFX(GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glTbufferMask3DFX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTbufferMask3DFX(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageEnableAMD(GLenum category, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageEnableAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, category);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (ids) {
        size_t _cCGLuint18 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint18);
        for (size_t _iCGLuint18 = 0; _iCGLuint18 < _cCGLuint18; ++_iCGLuint18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCGLuint18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, enabled);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageEnableAMD(category, severity, count, ids, enabled);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageInsertAMD(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar * buf) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageInsertAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, category);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(buf), ((length) >= 0 ? (length) : strlen(buf)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageInsertAMD(category, severity, id, length, buf);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageCallbackAMD(GLDEBUGPROCAMD callback, GLvoid * userParam) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageCallbackAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)callback);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)userParam);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageCallbackAMD(callback, userParam);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGetDebugMessageLogAMD(GLuint count, GLsizei bufsize, GLenum * categories, GLuint * severities, GLuint * ids, GLsizei * lengths, GLchar * message) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetDebugMessageLogAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetDebugMessageLogAMD(count, bufsize, categories, severities, ids, lengths, message);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (categories) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (categories)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (severities) {
        size_t _cGLuint = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((severities)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cGLuint = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (lengths) {
        size_t _cGLsizei = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLsizei);
        for (size_t _iGLsizei = 0; _iGLsizei < _cGLsizei; ++_iGLsizei) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((lengths)[_iGLsizei]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(message), _glGetDebugMessageLog_length(message, lengths, _result));
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBlendFuncIndexedAMD(GLuint buf, GLenum src, GLenum dst) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncIndexedAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncIndexedAMD(buf, src, dst);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparateIndexedAMD(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparateIndexedAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparateIndexedAMD(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationIndexedAMD(GLuint buf, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationIndexedAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationIndexedAMD(buf, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparateIndexedAMD(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparateIndexedAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparateIndexedAMD(buf, modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribParameteriAMD(GLuint index, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribParameteriAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribParameteriAMD(index, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysIndirectAMD(GLenum mode, const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawArraysIndirectAMD: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysIndirectAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysIndirectAMD(mode, indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsIndirectAMD(GLenum mode, GLenum type, const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawElementsIndirectAMD: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsIndirectAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsIndirectAMD(mode, type, indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenNamesAMD(GLenum identifier, GLuint num, GLuint * names) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenNamesAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(num);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenNamesAMD(identifier, num, names);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (names) {
        size_t _cGLuint = num > 0 ? num : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((names)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteNamesAMD(GLenum identifier, GLuint num, const GLuint * names) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteNamesAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(num);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (names) {
        size_t _cCGLuint19 = num > 0 ? num : 0;
        trace::localWriter.beginArray(_cCGLuint19);
        for (size_t _iCGLuint19 = 0; _iCGLuint19 < _cCGLuint19; ++_iCGLuint19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((names)[_iCGLuint19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteNamesAMD(identifier, num, names);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsNameAMD(GLenum identifier, GLuint name) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsNameAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsNameAMD(identifier, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glQueryObjectParameteruiAMD(GLenum target, GLuint id, GLenum pname, GLuint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glQueryObjectParameteruiAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glQueryObjectParameteruiAMD(target, id, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfMonitorGroupsAMD(GLint * numGroups, GLsizei groupsSize, GLuint * groups) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfMonitorGroupsAMD_sig);
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(groupsSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfMonitorGroupsAMD(numGroups, groupsSize, groups);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    if (numGroups) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*numGroups);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (groups) {
        size_t _cGLuint = groupsSize > 0 ? groupsSize : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((groups)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfMonitorCountersAMD(GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei counterSize, GLuint * counters) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfMonitorCountersAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(group);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(counterSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfMonitorCountersAMD(group, numCounters, maxActiveCounters, counterSize, counters);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (numCounters) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*numCounters);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (maxActiveCounters) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*maxActiveCounters);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (counters) {
        size_t _cGLuint = counterSize > 0 ? counterSize : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((counters)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfMonitorGroupStringAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(group);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfMonitorGroupStringAMD(group, bufSize, length, groupString);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(groupString), ((length) ? *(length) : strlen(groupString)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfMonitorCounterStringAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(group);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(counter);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfMonitorCounterStringAMD(group, counter, bufSize, length, counterString);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(counterString), ((length) ? *(length) : strlen(counterString)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfMonitorCounterInfoAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(group);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(counter);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfMonitorCounterInfoAMD(group, counter, pname, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    _write__GLvoid3(pname, data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenPerfMonitorsAMD(GLsizei n, GLuint * monitors) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenPerfMonitorsAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenPerfMonitorsAMD(n, monitors);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (monitors) {
        size_t _cGLuint = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((monitors)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeletePerfMonitorsAMD(GLsizei n, GLuint * monitors) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeletePerfMonitorsAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (monitors) {
        size_t _cGLuint = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((monitors)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeletePerfMonitorsAMD(n, monitors);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList) {
    unsigned _call = trace::localWriter.beginEnter(&_glSelectPerfMonitorCountersAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(monitor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, enable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(group);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(numCounters);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (counterList) {
        size_t _cGLuint = numCounters > 0 ? numCounters : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((counterList)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSelectPerfMonitorCountersAMD(monitor, enable, group, numCounters, counterList);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginPerfMonitorAMD(GLuint monitor) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginPerfMonitorAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(monitor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginPerfMonitorAMD(monitor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndPerfMonitorAMD(GLuint monitor) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndPerfMonitorAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(monitor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndPerfMonitorAMD(monitor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfMonitorCounterDataAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(monitor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(dataSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfMonitorCounterDataAMD(monitor, pname, dataSize, data, bytesWritten);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (data) {
        size_t _cGLuint = dataSize > 0 ? dataSize : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((data)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (bytesWritten) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*bytesWritten);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSetMultisamplefvAMD(GLenum pname, GLuint index, const GLfloat * val) {
    unsigned _call = trace::localWriter.beginEnter(&_glSetMultisamplefvAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (val) {
        size_t _cCGLfloat62 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat62);
        for (size_t _iCGLfloat62 = 0; _iCGLfloat62 < _cCGLfloat62; ++_iCGLfloat62) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((val)[_iCGLfloat62]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSetMultisamplefvAMD(pname, index, val);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorageSparseAMD(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorageSparseAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(layers);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield10_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorageSparseAMD(target, internalFormat, width, height, depth, layers, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorageSparseAMD(GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorageSparseAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(layers);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield10_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorageSparseAMD(texture, target, internalFormat, width, height, depth, layers, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilOpValueAMD(GLenum face, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilOpValueAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilOpValueAMD(face, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTessellationFactorAMD(GLfloat factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glTessellationFactorAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTessellationFactorAMD(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTessellationModeAMD(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTessellationModeAMD_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTessellationModeAMD(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlitFramebufferANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(srcX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(srcY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(dstX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(dstY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(dstX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(dstY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield1_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageMultisampleANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysInstancedANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysInstancedANGLE(mode, first, count, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedANGLE(mode, count, type, indices, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribDivisorANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribDivisorANGLE(index, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenQueriesANGLE(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenQueriesANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenQueriesANGLE(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint3);
        for (size_t _iPGLuint3 = 0; _iPGLuint3 < _cPGLuint3; ++_iPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteQueriesANGLE(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteQueriesANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint31 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint31);
        for (size_t _iCPGLuint31 = 0; _iCPGLuint31 < _cCPGLuint31; ++_iCPGLuint31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteQueriesANGLE(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsQueryANGLE(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsQueryANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsQueryANGLE(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBeginQueryANGLE(GLenum target, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginQueryANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginQueryANGLE(target, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndQueryANGLE(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndQueryANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndQueryANGLE(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glQueryCounterANGLE(GLuint id, GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glQueryCounterANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glQueryCounterANGLE(id, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryivANGLE(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryivANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryivANGLE(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectivANGLE(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectivANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectivANGLE(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectuivANGLE(GLuint id, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectuivANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectuivANGLE(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjecti64vANGLE(GLuint id, GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjecti64vANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjecti64vANGLE(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectui64vANGLE(GLuint id, GLenum pname, GLuint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectui64vANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectui64vANGLE(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64);
        for (size_t _iGLuint64 = 0; _iGLuint64 < _cGLuint64; ++_iGLuint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTranslatedShaderSourceANGLE(GLuint shader, GLsizei bufsize, GLsizei * length, GLchar * source) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTranslatedShaderSourceANGLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTranslatedShaderSourceANGLE(shader, bufsize, length, source);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(source), ((length) ? *(length) : strlen(source)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureLevelsAPPLE(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureLevelsAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(destinationTexture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(sourceTexture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(sourceBaseLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(sourceLevelCount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureLevelsAPPLE(destinationTexture, sourceTexture, sourceBaseLevel, sourceLevelCount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glElementPointerAPPLE(GLenum type, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glElementPointerAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeBlob(pointer, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glElementPointerAPPLE(type, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementArrayAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementArrayAPPLE(mode, first, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawRangeElementArrayAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawRangeElementArrayAPPLE(mode, start, end, first, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementArrayAPPLE(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementArrayAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (first) {
        size_t _cCGLint48 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint48);
        for (size_t _iCGLint48 = 0; _iCGLint48 < _cCGLint48; ++_iCGLint48) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((first)[_iCGLint48]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (count) {
        size_t _cCGLsizei2 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei2);
        for (size_t _iCGLsizei2 = 0; _iCGLsizei2 < _cCGLsizei2; ++_iCGLsizei2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementArrayAPPLE(mode, first, count, drawcount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint * first, const GLsizei * count, GLsizei drawcount) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawRangeElementArrayAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (first) {
        size_t _cCGLint49 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint49);
        for (size_t _iCGLint49 = 0; _iCGLint49 < _cCGLint49; ++_iCGLint49) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((first)[_iCGLint49]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (count) {
        size_t _cCGLsizei3 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei3);
        for (size_t _iCGLsizei3 = 0; _iCGLsizei3 < _cCGLsizei3; ++_iCGLsizei3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawRangeElementArrayAPPLE(mode, start, end, first, count, drawcount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenFencesAPPLE(GLsizei n, GLuint * fences) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenFencesAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenFencesAPPLE(n, fences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (fences) {
        size_t _cPGLuint18 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint18);
        for (size_t _iPGLuint18 = 0; _iPGLuint18 < _cPGLuint18; ++_iPGLuint18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((fences)[_iPGLuint18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteFencesAPPLE(GLsizei n, const GLuint * fences) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteFencesAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (fences) {
        size_t _cCPGLuint18 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint18);
        for (size_t _iCPGLuint18 = 0; _iCPGLuint18 < _cCPGLuint18; ++_iCPGLuint18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((fences)[_iCPGLuint18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteFencesAPPLE(n, fences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSetFenceAPPLE(GLuint fence) {
    unsigned _call = trace::localWriter.beginEnter(&_glSetFenceAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSetFenceAPPLE(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsFenceAPPLE(GLuint fence) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsFenceAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsFenceAPPLE(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glTestFenceAPPLE(GLuint fence) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glTestFenceAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glTestFenceAPPLE(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFinishFenceAPPLE(GLuint fence) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinishFenceAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFinishFenceAPPLE(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glTestObjectAPPLE(GLenum object, GLuint name) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glTestObjectAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, object);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glTestObjectAPPLE(object, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFinishObjectAPPLE(GLenum object, GLint name) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinishObjectAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, object);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(name);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFinishObjectAPPLE(object, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param) {
    if (pname == GL_BUFFER_FLUSHING_UNMAP_APPLE && param == GL_FALSE) {
        _checkBufferFlushingUnmapAPPLE = true;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glBufferParameteriAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferParameteriAPPLE(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size) {
    GLvoid *map = NULL;
    _glGetBufferPointerv(target, GL_BUFFER_MAP_POINTER, &map);
    if (map && size > 0) {
    trace::fakeMemcpy((const char *)map + offset, size);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFlushMappedBufferRangeAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushMappedBufferRangeAPPLE(target, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlushRenderAPPLE(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFlushRenderAPPLE_sig);
    trace::localWriter.endEnter();
    _glFlushRenderAPPLE();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFinishRenderAPPLE(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinishRenderAPPLE_sig);
    trace::localWriter.endEnter();
    _glFinishRenderAPPLE();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSwapAPPLE(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glSwapAPPLE_sig);
    trace::localWriter.endEnter();
    _glSwapAPPLE();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageMultisampleAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageMultisampleAPPLE(target, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResolveMultisampleFramebufferAPPLE(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glResolveMultisampleFramebufferAPPLE_sig);
    trace::localWriter.endEnter();
    _glResolveMultisampleFramebufferAPPLE();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glObjectPurgeableAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, objectType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, option);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glObjectPurgeableAPPLE(objectType, name, option);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLenum APIENTRY glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glObjectUnpurgeableAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, objectType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, option);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glObjectUnpurgeableAPPLE(objectType, name, option);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectParameterivAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, objectType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectParameterivAPPLE(objectType, name, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointSizePointerAPPLE(GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointSizePointerAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointSizePointerAPPLE(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexPointSizefAPPLE(GLfloat size) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexPointSizefAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexPointSizefAPPLE(size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLsync APIENTRY glFenceSyncAPPLE(GLenum condition, GLbitfield flags) {
    GLsync _result;
    unsigned _call = trace::localWriter.beginEnter(&_glFenceSyncAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, condition);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glFenceSyncAPPLE(condition, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsSyncAPPLE(GLsync sync) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsSyncAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsSyncAPPLE(sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteSyncAPPLE(GLsync sync) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteSyncAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteSyncAPPLE(sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glClientWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glClientWaitSyncAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield6_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glClientWaitSyncAPPLE(sync, flags, timeout);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout) {
    unsigned _call = trace::localWriter.beginEnter(&_glWaitSyncAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWaitSyncAPPLE(sync, flags, timeout);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInteger64vAPPLE(GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInteger64vAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInteger64vAPPLE(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSyncivAPPLE(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSyncivAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSyncivAPPLE(sync, pname, bufSize, length, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (values) {
        size_t _cGLint = (length ? *length : bufSize) > 0 ? (length ? *length : bufSize) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((values)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureRangeAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(pointer, length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureRangeAPPLE(target, length, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterPointervAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterPointervAPPLE(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVertexArrayAPPLE(GLuint array) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVertexArrayAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVertexArrayAPPLE(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteVertexArraysAPPLE(GLsizei n, const GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteVertexArraysAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cCPGLuint13 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint13);
        for (size_t _iCPGLuint13 = 0; _iCPGLuint13 < _cCPGLuint13; ++_iCPGLuint13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iCPGLuint13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteVertexArraysAPPLE(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenVertexArraysAPPLE(GLsizei n, GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenVertexArraysAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenVertexArraysAPPLE(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cPGLuint13 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint13);
        for (size_t _iPGLuint13 = 0; _iPGLuint13 < _cPGLuint13; ++_iPGLuint13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iPGLuint13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsVertexArrayAPPLE(GLuint array) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsVertexArrayAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsVertexArrayAPPLE(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVertexArrayRangeAPPLE(GLsizei length, GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayRangeAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayRangeAPPLE(length, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlushVertexArrayRangeAPPLE(GLsizei length, GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFlushVertexArrayRangeAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushVertexArrayRangeAPPLE(length, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayParameteriAPPLE(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayParameteriAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayParameteriAPPLE(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVertexAttribAPPLE(GLuint index, GLenum pname) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVertexAttribAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVertexAttribAPPLE(index, pname);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVertexAttribAPPLE(GLuint index, GLenum pname) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVertexAttribAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVertexAttribAPPLE(index, pname);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsVertexAttribEnabledAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsVertexAttribEnabledAPPLE(index, pname);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapVertexAttrib1dAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(order);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapVertexAttrib1fAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(order);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapVertexAttrib2dAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeDouble(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapVertexAttrib2fAPPLE_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReleaseShaderCompiler(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glReleaseShaderCompiler_sig);
    trace::localWriter.endEnter();
    _glReleaseShaderCompiler();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShaderBinary(GLsizei count, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderBinary_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (shaders) {
        size_t _cCGLuint20 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint20);
        for (size_t _iCGLuint20 = 0; _iCGLuint20 < _cCGLuint20; ++_iCGLuint20) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((shaders)[_iCGLuint20]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, binaryformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(binary, length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderBinary(count, shaders, binaryformat, binary, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetShaderPrecisionFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, precisiontype);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (range) {
        size_t _cGLint = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((range)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (precision) {
        size_t _cGLint = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((precision)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangef(GLfloat n, GLfloat f) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangef_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(f);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangef(n, f);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearDepthf(GLfloat d) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearDepthf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(d);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearDepthf(d);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMemoryBarrierByRegion(GLbitfield barriers) {
    unsigned _call = trace::localWriter.beginEnter(&_glMemoryBarrierByRegion_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield7_sig, barriers);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMemoryBarrierByRegion(barriers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPrimitiveBoundingBoxARB(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrimitiveBoundingBoxARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(minX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(minY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(minZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(minW);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(maxX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(maxY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(maxZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(maxW);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrimitiveBoundingBoxARB(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.instancecount = instancecount;
        _params.baseinstance = baseinstance;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount + baseinstance);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysInstancedBaseInstance_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(baseinstance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLuint baseinstance) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        _params.baseinstance = baseinstance;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount + baseinstance);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedBaseInstance_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(baseinstance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedBaseInstance(mode, count, type, indices, instancecount, baseinstance);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        _params.basevertex = basevertex;
        _params.baseinstance = baseinstance;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount + baseinstance);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedBaseVertexBaseInstance_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(baseinstance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedBaseVertexBaseInstance(mode, count, type, indices, instancecount, basevertex, baseinstance);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint64 APIENTRY glGetTextureHandleARB(GLuint texture) {
    GLuint64 _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureHandleARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetTextureHandleARB(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint64 APIENTRY glGetTextureSamplerHandleARB(GLuint texture, GLuint sampler) {
    GLuint64 _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureSamplerHandleARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetTextureSamplerHandleARB(texture, sampler);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMakeTextureHandleResidentARB(GLuint64 handle) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeTextureHandleResidentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeTextureHandleResidentARB(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeTextureHandleNonResidentARB(GLuint64 handle) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeTextureHandleNonResidentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeTextureHandleNonResidentARB(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint64 APIENTRY glGetImageHandleARB(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format) {
    GLuint64 _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetImageHandleARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, layered);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetImageHandleARB(texture, level, layered, layer, format);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMakeImageHandleResidentARB(GLuint64 handle, GLenum access) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeImageHandleResidentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeImageHandleResidentARB(handle, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeImageHandleNonResidentARB(GLuint64 handle) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeImageHandleNonResidentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeImageHandleNonResidentARB(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformHandleui64ARB(GLint location, GLuint64 value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformHandleui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformHandleui64ARB(location, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformHandleui64vARB(GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformHandleui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCPGLuint64 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint64);
        for (size_t _iCPGLuint64 = 0; _iCPGLuint64 < _cCPGLuint64; ++_iCPGLuint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCPGLuint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformHandleui64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformHandleui64ARB(GLuint program, GLint location, GLuint64 value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformHandleui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformHandleui64ARB(program, location, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformHandleui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformHandleui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (values) {
        size_t _cCPGLuint641 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint641);
        for (size_t _iCPGLuint641 = 0; _iCPGLuint641 < _cCPGLuint641; ++_iCPGLuint641) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iCPGLuint641]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformHandleui64vARB(program, location, count, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsTextureHandleResidentARB(GLuint64 handle) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsTextureHandleResidentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsTextureHandleResidentARB(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsImageHandleResidentARB(GLuint64 handle) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsImageHandleResidentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsImageHandleResidentARB(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1ui64ARB(GLuint index, GLuint64 x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1ui64ARB(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1ui64vARB(GLuint index, const GLuint64 * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1ui64vARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribLui64vARB(GLuint index, GLenum pname, GLuint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribLui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribLui64vARB(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64);
        for (size_t _iGLuint64 = 0; _iGLuint64 < _cGLuint64; ++_iGLuint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFragDataLocationIndexed_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(colorNumber);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFragDataLocationIndexed(program, colorNumber, index, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetFragDataIndex(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragDataIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetFragDataIndex(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBufferStorage(GLenum target, GLsizeiptr size, const GLvoid * data, GLbitfield flags) {
    if (flags & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(flags & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(flags & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        flags &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }

    if (gltrace::is_coherent_write_map(flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint buffer = getBufferName(target);
        auto memoryShadow = std::make_unique<GLMemoryShadow>();
        const bool success = memoryShadow->init(data, size);
        if (success) {
            _ctx->sharedRes->bufferToShadowMemory.insert_or_assign(buffer, std::move(memoryShadow));
        } else {
            os::log("apitrace: error: %s: cannot create memory shadow\n", __FUNCTION__);
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glBufferStorage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield5_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferStorage(target, size, data, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLsync APIENTRY glCreateSyncFromCLeventARB(struct _cl_context * context, struct _cl_event * event, GLbitfield flags) {
    GLsync _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateSyncFromCLeventARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)context);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)event);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCreateSyncFromCLeventARB(context, event, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearBufferData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearBufferData(target, internalformat, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearBufferSubData(target, internalformat, offset, size, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearTexImage(texture, level, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearTexSubImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClipControl(GLenum origin, GLenum depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glClipControl_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, origin);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClipControl(origin, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClampColorARB(GLenum target, GLenum clamp) {
    unsigned _call = trace::localWriter.beginEnter(&_glClampColorARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, clamp);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClampColorARB(target, clamp);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    unsigned _call = trace::localWriter.beginEnter(&_glDispatchCompute_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(num_groups_x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(num_groups_y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(num_groups_z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDispatchComputeIndirect(GLintptr indirect) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    unsigned _call = trace::localWriter.beginEnter(&_glDispatchComputeIndirect_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(indirect);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDispatchComputeIndirect(indirect);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDispatchComputeGroupSizeARB(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    unsigned _call = trace::localWriter.beginEnter(&_glDispatchComputeGroupSizeARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(num_groups_x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(num_groups_y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(num_groups_z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(group_size_x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(group_size_y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(group_size_z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDispatchComputeGroupSizeARB(num_groups_x, num_groups_y, num_groups_z, group_size_x, group_size_y, group_size_z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, readTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, writeTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(readOffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(writeOffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyImageSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(srcName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(srcY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(srcZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(dstName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(dstLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(dstX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeSInt(dstY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeSInt(dstZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeSInt(srcWidth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(13);
    trace::localWriter.writeSInt(srcHeight);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(14);
    trace::localWriter.writeSInt(srcDepth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageControlARB(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageControlARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cCGLuint21 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint21);
        for (size_t _iCGLuint21 = 0; _iCGLuint21 < _cCGLuint21; ++_iCGLuint21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCGLuint21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, enabled);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageControlARB(source, type, severity, count, ids, enabled);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageInsertARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageInsertARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(buf), ((length) >= 0 ? (length) : strlen(buf)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageInsertARB(source, type, id, severity, length, buf);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageCallbackARB(GLDEBUGPROCARB callback, const GLvoid * userParam) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageCallbackARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)callback);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)userParam);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageCallbackARB(callback, userParam);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGetDebugMessageLogARB(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetDebugMessageLogARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetDebugMessageLogARB(count, bufsize, sources, types, ids, severities, lengths, messageLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (sources) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (sources)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (types) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (types)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cGLuint = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (severities) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (severities)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (lengths) {
        size_t _cGLsizei = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLsizei);
        for (size_t _iGLsizei = 0; _iGLsizei < _cGLsizei; ++_iGLsizei) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((lengths)[_iGLsizei]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeString(reinterpret_cast<const char *>(messageLog), _glGetDebugMessageLog_length(messageLog, lengths, _result));
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glCreateTransformFeedbacks(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateTransformFeedbacks_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateTransformFeedbacks(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint17 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint17);
        for (size_t _iPGLuint17 = 0; _iPGLuint17 < _cPGLuint17; ++_iPGLuint17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackBufferBase_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(xfb);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackBufferBase(xfb, index, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(xfb);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackBufferRange(xfb, index, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTransformFeedbackiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(xfb);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTransformFeedbackiv(xfb, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTransformFeedbacki_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(xfb);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTransformFeedbacki_v(xfb, pname, index, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index, GLint64 * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTransformFeedbacki64_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(xfb);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTransformFeedbacki64_v(xfb, pname, index, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateBuffers(GLsizei n, GLuint * buffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateBuffers(n, buffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (buffers) {
        size_t _cPGLuint2 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint2);
        for (size_t _iPGLuint2 = 0; _iPGLuint2 < _cPGLuint2; ++_iPGLuint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iPGLuint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferStorage(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags) {
    if (flags & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(flags & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(flags & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        flags &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }

    if (gltrace::is_coherent_write_map(flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        auto memoryShadow = std::make_unique<GLMemoryShadow>();
        const bool success = memoryShadow->init(data, size);
        if (success) {
            _ctx->sharedRes->bufferToShadowMemory.insert_or_assign(buffer, std::move(memoryShadow));
        } else {
            os::log("apitrace: error: %s: cannot create memory shadow\n", __FUNCTION__);
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferStorage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield5_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferStorage(buffer, size, data, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferData(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, usage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferData(buffer, size, data, usage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferSubData(buffer, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyNamedBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(readBuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(writeBuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(readOffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(writeOffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedBufferData(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedBufferData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedBufferData(buffer, internalformat, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapNamedBuffer(GLuint buffer, GLenum access) {
    GLvoid * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glMapNamedBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapNamedBuffer(buffer, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) {
    GLvoid * _result;
    if (access & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(access & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(access & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        if (access & GL_MAP_FLUSH_EXPLICIT_BIT) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/ MAP_FLUSH_EXPLICIT_BIT\n", __FUNCTION__);
        }
        access &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMapNamedBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield4_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapNamedBufferRange(buffer, offset, length, access);
    if (gltrace::is_coherent_write_map(access)) {
        gltrace::Context *_ctx = gltrace::getContext();
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            _result = it->second->map(_ctx, _result, access, offset, length);
        } else {
            os::log("apitrace: error: %s: %u: cannot find memory shadow\n", __FUNCTION__, _call);
        }
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glUnmapNamedBuffer(GLuint buffer) {
    GLboolean _result;
    GLint access_flags = 0;
    _glGetNamedBufferParameteriv(buffer, GL_BUFFER_ACCESS_FLAGS, &access_flags);
    if (gltrace::is_coherent_write_map(access_flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            it->second->unmap(trace::fakeMemcpy);
        } else {
            os::log("apitrace: error: %s: cannot find memory shadow\n", __FUNCTION__);
        }
    } else if ((access_flags & GL_MAP_WRITE_BIT) &&
               !(access_flags & (GL_MAP_FLUSH_EXPLICIT_BIT | GL_MAP_PERSISTENT_BIT))) {
        GLvoid *map = NULL;
        _glGetNamedBufferPointerv(buffer, GL_BUFFER_MAP_POINTER, &map);
        GLint length = 0;
        _glGetNamedBufferParameteriv(buffer, GL_BUFFER_MAP_LENGTH, &length);
        if (map && length > 0) {
    trace::fakeMemcpy(map, length);
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapNamedBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glUnmapNamedBuffer(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length) {
    GLvoid *map = NULL;
    _glGetNamedBufferPointerv(buffer, GL_BUFFER_MAP_POINTER, &map);
    if (map && length > 0) {
    trace::fakeMemcpy((const char *)map + offset, length);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFlushMappedNamedBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushMappedNamedBufferRange(buffer, offset, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferParameteriv(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferParameteri64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferParameteri64v(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferPointerv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferPointerv(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferSubData(buffer, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateFramebuffers(GLsizei n, GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateFramebuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateFramebuffers(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cPGLuint9 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint9);
        for (size_t _iPGLuint9 = 0; _iPGLuint9 < _cPGLuint9; ++_iPGLuint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iPGLuint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferRenderbuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, renderbuffertarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferRenderbuffer(framebuffer, attachment, renderbuffertarget, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferParameteri(GLuint framebuffer, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferParameteri(framebuffer, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTexture(framebuffer, attachment, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTextureLayer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTextureLayer(framebuffer, attachment, texture, level, layer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferDrawBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buf);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferDrawBuffer(framebuffer, buf);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferDrawBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (bufs) {
        size_t _cCGLenum1 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum1);
        for (size_t _iCGLenum1 = 0; _iCGLenum1 < _cCGLenum1; ++_iCGLenum1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferDrawBuffers(framebuffer, n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferReadBuffer(GLuint framebuffer, GLenum src) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferReadBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, src);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferReadBuffer(framebuffer, src);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateNamedFramebufferData(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateNamedFramebufferData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numAttachments);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (attachments) {
        size_t _cCGLenum2 = numAttachments > 0 ? numAttachments : 0;
        trace::localWriter.beginArray(_cCGLenum2);
        for (size_t _iCGLenum2 = 0; _iCGLenum2 < _cCGLenum2; ++_iCGLenum2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (attachments)[_iCGLenum2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateNamedFramebufferData(framebuffer, numAttachments, attachments);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateNamedFramebufferSubData(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateNamedFramebufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numAttachments);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (attachments) {
        size_t _cCGLenum3 = numAttachments > 0 ? numAttachments : 0;
        trace::localWriter.beginArray(_cCGLenum3);
        for (size_t _iCGLenum3 = 0; _iCGLenum3 < _cCGLenum3; ++_iCGLenum3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (attachments)[_iCGLenum3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateNamedFramebufferSubData(framebuffer, numAttachments, attachments, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedFramebufferiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint50 = _glClearBuffer_size(buffer) > 0 ? _glClearBuffer_size(buffer) : 0;
        trace::localWriter.beginArray(_cCGLint50);
        for (size_t _iCGLint50 = 0; _iCGLint50 < _cCGLint50; ++_iCGLint50) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint50]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedFramebufferiv(framebuffer, buffer, drawbuffer, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedFramebufferuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint22 = _glClearBuffer_size(buffer) > 0 ? _glClearBuffer_size(buffer) : 0;
        trace::localWriter.beginArray(_cCGLuint22);
        for (size_t _iCGLuint22 = 0; _iCGLuint22 < _cCGLuint22; ++_iCGLuint22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedFramebufferuiv(framebuffer, buffer, drawbuffer, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedFramebufferfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat65 = _glClearBuffer_size(buffer) > 0 ? _glClearBuffer_size(buffer) : 0;
        trace::localWriter.beginArray(_cCGLfloat65);
        for (size_t _iCGLfloat65 = 0; _iCGLfloat65 < _cCGLfloat65; ++_iCGLfloat65) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat65]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedFramebufferfv(framebuffer, buffer, drawbuffer, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedFramebufferfi_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stencil);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedFramebufferfi(framebuffer, buffer, drawbuffer, depth, stencil);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlitNamedFramebuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(readFramebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(drawFramebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(srcX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(srcY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(dstX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(dstY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(dstX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(dstY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlitNamedFramebuffer(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glCheckNamedFramebufferStatus(GLuint framebuffer, GLenum target) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCheckNamedFramebufferStatus_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCheckNamedFramebufferStatus(framebuffer, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedFramebufferParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedFramebufferParameteriv(framebuffer, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedFramebufferAttachmentParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedFramebufferAttachmentParameteriv(framebuffer, attachment, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateRenderbuffers(GLsizei n, GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateRenderbuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateRenderbuffers(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cPGLuint10 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint10);
        for (size_t _iPGLuint10 = 0; _iPGLuint10 < _cPGLuint10; ++_iPGLuint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iPGLuint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedRenderbufferStorage(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedRenderbufferStorage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedRenderbufferStorage(renderbuffer, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedRenderbufferStorageMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedRenderbufferStorageMultisample(renderbuffer, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedRenderbufferParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedRenderbufferParameteriv(renderbuffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateTextures(GLenum target, GLsizei n, GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateTextures_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateTextures(target, n, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (textures) {
        size_t _cPGLuint1 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint1);
        for (size_t _iPGLuint1 = 0; _iPGLuint1 < _cPGLuint1; ++_iPGLuint1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iPGLuint1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureBuffer(GLuint texture, GLenum internalformat, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureBuffer(texture, internalformat, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureBufferRange(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureBufferRange(texture, internalformat, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage1D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage1D(texture, levels, internalformat, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage2D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage2D(texture, levels, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage3D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage3D(texture, levels, internalformat, width, height, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage2DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage2DMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage2DMultisample(texture, samples, internalformat, width, height, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage3DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage3DMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage3DMultisample(texture, samples, internalformat, width, height, depth, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureSubImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureSubImage1D(texture, level, xoffset, width, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureSubImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureSubImage2D(texture, level, xoffset, yoffset, width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureSubImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureSubImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureSubImage1D(texture, level, xoffset, width, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureSubImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureSubImage2D(texture, level, xoffset, yoffset, width, height, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureSubImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureSubImage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureSubImage1D(texture, level, xoffset, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureSubImage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureSubImage2D(texture, level, xoffset, yoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureSubImage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterf(GLuint texture, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterf(texture, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterfv(GLuint texture, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat66 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat66);
        for (size_t _iCGLfloat66 = 0; _iCGLfloat66 < _cCGLfloat66; ++_iCGLfloat66) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat66]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterfv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameteri(GLuint texture, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameteri(texture, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterIiv(GLuint texture, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint51 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint51);
        for (size_t _iCGLint51 = 0; _iCGLint51 < _cCGLint51; ++_iCGLint51) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint51]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterIiv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterIuiv(GLuint texture, GLenum pname, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLuint23 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint23);
        for (size_t _iCGLuint23 = 0; _iCGLuint23 < _cCGLuint23; ++_iCGLuint23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterIuiv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameteriv(GLuint texture, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint52 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint52);
        for (size_t _iCGLint52 = 0; _iCGLint52 < _cCGLint52; ++_iCGLint52) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint52]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameteriv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenerateTextureMipmap(GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenerateTextureMipmap_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenerateTextureMipmap(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindTextureUnit(GLuint unit, GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindTextureUnit_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(unit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindTextureUnit(unit, texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureImage(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureImage(texture, level, format, type, bufSize, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCompressedTextureImage(GLuint texture, GLint level, GLsizei bufSize, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetCompressedTextureImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCompressedTextureImage(texture, level, bufSize, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureLevelParameterfv(GLuint texture, GLint level, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureLevelParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureLevelParameterfv(texture, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureLevelParameteriv(GLuint texture, GLint level, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureLevelParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureLevelParameteriv(texture, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterfv(GLuint texture, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterfv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterIiv(GLuint texture, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterIiv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterIuiv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameteriv(GLuint texture, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameteriv(texture, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateVertexArrays(GLsizei n, GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateVertexArrays_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateVertexArrays(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cPGLuint12 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint12);
        for (size_t _iPGLuint12 = 0; _iPGLuint12 < _cPGLuint12; ++_iPGLuint12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iPGLuint12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVertexArrayAttrib(GLuint vaobj, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVertexArrayAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVertexArrayAttrib(vaobj, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVertexArrayAttrib(GLuint vaobj, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVertexArrayAttrib_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVertexArrayAttrib(vaobj, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayElementBuffer(GLuint vaobj, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayElementBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayElementBuffer(vaobj, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexBuffer(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexBuffer(vaobj, bindingindex, buffer, offset, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (buffers) {
        size_t _cCGLuint24 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint24);
        for (size_t _iCGLuint24 = 0; _iCGLuint24 < _cCGLuint24; ++_iCGLuint24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iCGLuint24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (offsets) {
        size_t _cCGLintptr = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLintptr);
        for (size_t _iCGLintptr = 0; _iCGLintptr < _cCGLintptr; ++_iCGLintptr) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((offsets)[_iCGLintptr]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (strides) {
        size_t _cCGLsizei4 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLsizei4);
        for (size_t _iCGLsizei4 = 0; _iCGLsizei4 < _cCGLsizei4; ++_iCGLsizei4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((strides)[_iCGLsizei4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexBuffers(vaobj, first, count, buffers, offsets, strides);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayAttribBinding(GLuint vaobj, GLuint attribindex, GLuint bindingindex) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayAttribBinding_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayAttribBinding(vaobj, attribindex, bindingindex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayAttribFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayAttribFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayAttribFormat(vaobj, attribindex, size, type, normalized, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayAttribIFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayAttribIFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayAttribIFormat(vaobj, attribindex, size, type, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayAttribLFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayAttribLFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayAttribLFormat(vaobj, attribindex, size, type, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayBindingDivisor(GLuint vaobj, GLuint bindingindex, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayBindingDivisor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayBindingDivisor(vaobj, bindingindex, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayiv(GLuint vaobj, GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayiv(vaobj, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayIndexediv(GLuint vaobj, GLuint index, GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayIndexediv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayIndexediv(vaobj, index, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayIndexed64iv(GLuint vaobj, GLuint index, GLenum pname, GLint64 * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayIndexed64iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayIndexed64iv(vaobj, index, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateSamplers(GLsizei n, GLuint * samplers) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateSamplers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateSamplers(n, samplers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (samplers) {
        size_t _cPGLuint16 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint16);
        for (size_t _iPGLuint16 = 0; _iPGLuint16 < _cPGLuint16; ++_iPGLuint16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((samplers)[_iPGLuint16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateProgramPipelines(GLsizei n, GLuint * pipelines) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateProgramPipelines_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateProgramPipelines(n, pipelines);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (pipelines) {
        size_t _cPGLuint15 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint15);
        for (size_t _iPGLuint15 = 0; _iPGLuint15 < _cPGLuint15; ++_iPGLuint15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pipelines)[_iPGLuint15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreateQueries(GLenum target, GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreateQueries_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreateQueries(target, n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (ids) {
        size_t _cPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint3);
        for (size_t _iPGLuint3 = 0; _iPGLuint3 < _cPGLuint3; ++_iPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryBufferObjecti64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryBufferObjecti64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryBufferObjecti64v(id, buffer, pname, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryBufferObjectiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryBufferObjectiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryBufferObjectiv(id, buffer, pname, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryBufferObjectui64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryBufferObjectui64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryBufferObjectui64v(id, buffer, pname, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryBufferObjectuiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryBufferObjectuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryBufferObjectuiv(id, buffer, pname, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffersARB(GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffersARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (bufs) {
        size_t _cCGLenum4 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum4);
        for (size_t _iCGLenum4 = 0; _iCGLenum4 < _cCGLenum4; ++_iCGLenum4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffersARB(n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationiARB(GLuint buf, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationiARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationiARB(buf, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparateiARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparateiARB(buf, modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFunciARB(GLuint buf, GLenum src, GLenum dst) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFunciARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFunciARB(buf, src, dst);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparateiARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparateiARB(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsBaseVertex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsBaseVertex(mode, count, type, indices, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.start = start;
        _params.end = end;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawRangeElementsBaseVertex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLint basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedBaseVertex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedBaseVertex(mode, count, type, indices, instancecount, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei drawcount, const GLint * basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.drawcount = drawcount;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsBaseVertex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (count) {
        size_t _cCGLsizei5 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei5);
        for (size_t _iCGLsizei5 = 0; _iCGLsizei5 < _cCGLsizei5; ++_iCGLsizei5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (indices) {
        size_t _cCconstGLvoid67 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCconstGLvoid67);
        for (size_t _iCconstGLvoid67 = 0; _iCconstGLvoid67 < _cCconstGLvoid67; ++_iCconstGLvoid67) {
            trace::localWriter.beginElement();
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>((indices)[_iCconstGLvoid67]));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>((indices)[_iCconstGLvoid67]), count[_iCconstGLvoid67]*_gl_type_size(type));
        break;
    }
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (basevertex) {
        size_t _cCGLint53 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint53);
        for (size_t _iCGLint53 = 0; _iCGLint53 < _cCGLint53; ++_iCGLint53) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((basevertex)[_iCGLint53]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsBaseVertex(mode, count, type, indices, drawcount, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysIndirect(GLenum mode, const GLvoid * indirect) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glDrawArraysIndirect: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysIndirect_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), 1 * (0 ? 0 : 16));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysIndirect(mode, indirect);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid * indirect) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glDrawElementsIndirect: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsIndirect_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), 1 * (0 ? 0 : 20));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsIndirect(mode, type, indirect);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysInstancedARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysInstancedARB(mode, first, count, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedARB(mode, count, type, indices, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferParameteri(GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferParameteri(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFramebufferParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFramebufferParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsRenderbuffer(GLuint renderbuffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsRenderbuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsRenderbuffer(renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindRenderbuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindRenderbuffer(target, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteRenderbuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cCPGLuint10 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint10);
        for (size_t _iCPGLuint10 = 0; _iCPGLuint10 < _cCPGLuint10; ++_iCPGLuint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iCPGLuint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteRenderbuffers(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenRenderbuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenRenderbuffers(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cPGLuint10 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint10);
        for (size_t _iPGLuint10 = 0; _iPGLuint10 < _cPGLuint10; ++_iPGLuint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iPGLuint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorage(target, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetRenderbufferParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetRenderbufferParameteriv(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsFramebuffer(GLuint framebuffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsFramebuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsFramebuffer(framebuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFramebuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFramebuffer(target, framebuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteFramebuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cCPGLuint9 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint9);
        for (size_t _iCPGLuint9 = 0; _iCPGLuint9 < _cCPGLuint9; ++_iCPGLuint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iCPGLuint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteFramebuffers(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenFramebuffers(GLsizei n, GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenFramebuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenFramebuffers(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cPGLuint9 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint9);
        for (size_t _iPGLuint9 = 0; _iPGLuint9 < _cPGLuint9; ++_iPGLuint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iPGLuint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glCheckFramebufferStatus(GLenum target) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCheckFramebufferStatus_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCheckFramebufferStatus(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture1D(target, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture2D(target, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferRenderbuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, renderbuffertarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFramebufferAttachmentParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenerateMipmap(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenerateMipmap_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenerateMipmap(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlitFramebuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(srcX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(srcY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(dstX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(dstY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(dstX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(dstY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield1_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureLayer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureLayer(target, attachment, texture, level, layer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameteriARB(GLuint program, GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameteriARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameteriARB(program, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureARB(GLenum target, GLenum attachment, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureARB(target, attachment, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureLayerARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureLayerARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureLayerARB(target, attachment, texture, level, layer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureFaceARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureFaceARB(target, attachment, texture, level, face);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, GLvoid * binary) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramBinary_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    bufSize = 0;
    _glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
    if (length) {
        *length = 0;
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (binaryFormat) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *binaryFormat);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)binary);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid * binary, GLsizei length) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramBinary_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, binaryFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(binary, length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
   binaryFormat = 0xDEADDEAD;
   binary = &binaryFormat;
   length = sizeof binaryFormat;
    _glProgramBinary(program, binaryFormat, binary, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameteri(GLuint program, GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameteri(program, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureSubImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(11);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCompressedTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetCompressedTextureSubImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCompressedTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(9);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSpecializeShaderARB(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSpecializeShaderARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(pEntryPoint));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(numSpecializationConstants);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (pConstantIndex) {
        size_t _cCGLuint25 = numSpecializationConstants > 0 ? numSpecializationConstants : 0;
        trace::localWriter.beginArray(_cCGLuint25);
        for (size_t _iCGLuint25 = 0; _iCGLuint25 < _cCGLuint25; ++_iCGLuint25) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pConstantIndex)[_iCGLuint25]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (pConstantValue) {
        size_t _cCGLuint26 = numSpecializationConstants > 0 ? numSpecializationConstants : 0;
        trace::localWriter.beginArray(_cCGLuint26);
        for (size_t _iCGLuint26 = 0; _iCGLuint26 < _cCGLuint26; ++_iCGLuint26) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pConstantValue)[_iCGLuint26]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSpecializeShaderARB(shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1d(GLint location, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1d(location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2d(GLint location, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2d(location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3d(location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4d(location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1dv(GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLdouble40 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLdouble40);
        for (size_t _iCGLdouble40 = 0; _iCGLdouble40 < _cCGLdouble40; ++_iCGLdouble40) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble40]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1dv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2dv(GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLdouble41 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble41);
        for (size_t _iCGLdouble41 = 0; _iCGLdouble41 < _cCGLdouble41; ++_iCGLdouble41) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble41]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2dv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3dv(GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLdouble42 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble42);
        for (size_t _iCGLdouble42 = 0; _iCGLdouble42 < _cCGLdouble42; ++_iCGLdouble42) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble42]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3dv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4dv(GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLdouble43 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble43);
        for (size_t _iCGLdouble43 = 0; _iCGLdouble43 < _cCGLdouble43; ++_iCGLdouble43) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble43]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4dv(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble44 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble44);
        for (size_t _iCGLdouble44 = 0; _iCGLdouble44 < _cCGLdouble44; ++_iCGLdouble44) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble44]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble45 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble45);
        for (size_t _iCGLdouble45 = 0; _iCGLdouble45 < _cCGLdouble45; ++_iCGLdouble45) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble45]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble46 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble46);
        for (size_t _iCGLdouble46 = 0; _iCGLdouble46 < _cCGLdouble46; ++_iCGLdouble46) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble46]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2x3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble47 = count*2*3 > 0 ? count*2*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble47);
        for (size_t _iCGLdouble47 = 0; _iCGLdouble47 < _cCGLdouble47; ++_iCGLdouble47) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble47]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2x3dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2x4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble48 = count*2*4 > 0 ? count*2*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble48);
        for (size_t _iCGLdouble48 = 0; _iCGLdouble48 < _cCGLdouble48; ++_iCGLdouble48) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble48]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2x4dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3x2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble49 = count*3*2 > 0 ? count*3*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble49);
        for (size_t _iCGLdouble49 = 0; _iCGLdouble49 < _cCGLdouble49; ++_iCGLdouble49) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble49]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3x2dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3x4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble50 = count*3*4 > 0 ? count*3*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble50);
        for (size_t _iCGLdouble50 = 0; _iCGLdouble50 < _cCGLdouble50; ++_iCGLdouble50) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble50]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3x4dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4x2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble51 = count*4*2 > 0 ? count*4*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble51);
        for (size_t _iCGLdouble51 = 0; _iCGLdouble51 < _cCGLdouble51; ++_iCGLdouble51) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble51]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4x2dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4x3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble52 = count*4*3 > 0 ? count*4*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble52);
        for (size_t _iCGLdouble52 = 0; _iCGLdouble52 < _cCGLdouble52; ++_iCGLdouble52) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble52]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4x3dv(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformdv(GLuint program, GLint location, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformdv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformdv(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1i64ARB(GLint location, GLint64 x) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1i64ARB(location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2i64ARB(GLint location, GLint64 x, GLint64 y) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2i64ARB(location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3i64ARB(location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4i64ARB(location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1i64vARB(GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint64 = count*1 > 0 ? count*1 : 0;
        trace::localWriter.beginArray(_cCGLint64);
        for (size_t _iCGLint64 = 0; _iCGLint64 < _cCGLint64; ++_iCGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1i64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2i64vARB(GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint641 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint641);
        for (size_t _iCGLint641 = 0; _iCGLint641 < _cCGLint641; ++_iCGLint641) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint641]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2i64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3i64vARB(GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint642 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint642);
        for (size_t _iCGLint642 = 0; _iCGLint642 < _cCGLint642; ++_iCGLint642) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint642]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3i64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4i64vARB(GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint643 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint643);
        for (size_t _iCGLint643 = 0; _iCGLint643 < _cCGLint643; ++_iCGLint643) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint643]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4i64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1ui64ARB(GLint location, GLuint64 x) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1ui64ARB(location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2ui64ARB(GLint location, GLuint64 x, GLuint64 y) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2ui64ARB(location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3ui64ARB(location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4ui64ARB(location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1ui64vARB(GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint641 = count*1 > 0 ? count*1 : 0;
        trace::localWriter.beginArray(_cCGLuint641);
        for (size_t _iCGLuint641 = 0; _iCGLuint641 < _cCGLuint641; ++_iCGLuint641) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint641]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1ui64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2ui64vARB(GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint642 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint642);
        for (size_t _iCGLuint642 = 0; _iCGLuint642 < _cCGLuint642; ++_iCGLuint642) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint642]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2ui64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3ui64vARB(GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint643 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint643);
        for (size_t _iCGLuint643 = 0; _iCGLuint643 < _cCGLuint643; ++_iCGLuint643) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint643]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3ui64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4ui64vARB(GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint644 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint644);
        for (size_t _iCGLuint644 = 0; _iCGLuint644 < _cCGLuint644; ++_iCGLuint644) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint644]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4ui64vARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformi64vARB(GLuint program, GLint location, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformi64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformi64vARB(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformui64vARB(GLuint program, GLint location, GLuint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformui64vARB(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformi64vARB(GLuint program, GLint location, GLsizei bufSize, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformi64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformi64vARB(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint64 = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformui64vARB(GLuint program, GLint location, GLsizei bufSize, GLuint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformui64vARB(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint64 = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLuint64);
        for (size_t _iGLuint64 = 0; _iGLuint64 < _cGLuint64; ++_iGLuint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1i64ARB(GLuint program, GLint location, GLint64 x) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1i64ARB(program, location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2i64ARB(program, location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3i64ARB(program, location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4i64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4i64ARB(program, location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint644 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint644);
        for (size_t _iCGLint644 = 0; _iCGLint644 < _cCGLint644; ++_iCGLint644) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint644]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1i64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint645 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint645);
        for (size_t _iCGLint645 = 0; _iCGLint645 < _cCGLint645; ++_iCGLint645) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint645]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2i64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint646 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint646);
        for (size_t _iCGLint646 = 0; _iCGLint646 < _cCGLint646; ++_iCGLint646) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint646]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3i64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4i64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint647 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint647);
        for (size_t _iCGLint647 = 0; _iCGLint647 < _cCGLint647; ++_iCGLint647) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint647]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4i64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1ui64ARB(GLuint program, GLint location, GLuint64 x) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1ui64ARB(program, location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2ui64ARB(program, location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3ui64ARB(program, location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4ui64ARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4ui64ARB(program, location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint645 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint645);
        for (size_t _iCGLuint645 = 0; _iCGLuint645 < _cCGLuint645; ++_iCGLuint645) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint645]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1ui64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint646 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint646);
        for (size_t _iCGLuint646 = 0; _iCGLuint646 < _cCGLuint646; ++_iCGLuint646) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint646]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2ui64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint647 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint647);
        for (size_t _iCGLuint647 = 0; _iCGLuint647 < _cCGLuint647; ++_iCGLuint647) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint647]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3ui64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4ui64vARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint648 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint648);
        for (size_t _iCGLuint648 = 0; _iCGLuint648 < _cCGLuint648; ++_iCGLuint648) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint648]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4ui64vARB(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysIndirectCountARB(GLenum mode, const GLvoid * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawArraysIndirectCountARB: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysIndirectCountARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), maxdrawcount * (stride ? stride : 16));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(maxdrawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysIndirectCountARB(mode, indirect, drawcount, maxdrawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, const GLvoid * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawElementsIndirectCountARB: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsIndirectCountARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), maxdrawcount * (stride ? stride : 20));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(maxdrawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsIndirectCountARB(mode, type, indirect, drawcount, maxdrawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribDivisorARB(GLuint index, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribDivisorARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribDivisorARB(index, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInternalformativ_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInternalformativ(target, internalformat, pname, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLint = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInternalformati64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInternalformati64v(target, internalformat, pname, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLint64 = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateTexSubImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateTexImage(GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateTexImage_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateTexImage(texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateBufferSubData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateBufferSubData(buffer, offset, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateBufferData(GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateBufferData_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateBufferData(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum * attachments) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateFramebuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numAttachments);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (attachments) {
        size_t _cCGLenum5 = numAttachments > 0 ? numAttachments : 0;
        trace::localWriter.beginArray(_cCGLenum5);
        for (size_t _iCGLenum5 = 0; _iCGLenum5 < _cCGLenum5; ++_iCGLenum5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (attachments)[_iCGLenum5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateFramebuffer(target, numAttachments, attachments);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glInvalidateSubFramebuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numAttachments);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (attachments) {
        size_t _cCGLenum6 = numAttachments > 0 ? numAttachments : 0;
        trace::localWriter.beginArray(_cCGLenum6);
        for (size_t _iCGLenum6 = 0; _iCGLenum6 < _cCGLenum6; ++_iCGLenum6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (attachments)[_iCGLenum6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
    GLvoid * _result;
    if (access & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(access & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(access & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        if (access & GL_MAP_FLUSH_EXPLICIT_BIT) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/ MAP_FLUSH_EXPLICIT_BIT\n", __FUNCTION__);
        }
        access &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMapBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield4_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapBufferRange(target, offset, length, access);
    if (gltrace::is_coherent_write_map(access)) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint buffer = getBufferName(target);
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            _result = it->second->map(_ctx, _result, access, offset, length);
        } else {
            os::log("apitrace: error: %s: %u: cannot find memory shadow\n", __FUNCTION__, _call);
        }
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    if (access & GL_MAP_WRITE_BIT) {
        _checkBufferMapRange = true;
    }
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) {
    GLvoid *map = NULL;
    _glGetBufferPointerv(target, GL_BUFFER_MAP_POINTER, &map);
    if (map && length > 0) {
    trace::fakeMemcpy((const char *)map + offset, length);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFlushMappedBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushMappedBufferRange(target, offset, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCurrentPaletteMatrixARB(GLint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glCurrentPaletteMatrixARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCurrentPaletteMatrixARB(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixIndexubvARB(GLint size, const GLubyte * indices) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixIndexubvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (indices) {
        size_t _cCGLubyte11 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLubyte11);
        for (size_t _iCGLubyte11 = 0; _iCGLubyte11 < _cCGLubyte11; ++_iCGLubyte11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((indices)[_iCGLubyte11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixIndexubvARB(size, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixIndexusvARB(GLint size, const GLushort * indices) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixIndexusvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (indices) {
        size_t _cCGLushort7 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLushort7);
        for (size_t _iCGLushort7 = 0; _iCGLushort7 < _cCGLushort7; ++_iCGLushort7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((indices)[_iCGLushort7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixIndexusvARB(size, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixIndexuivARB(GLint size, const GLuint * indices) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixIndexuivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (indices) {
        size_t _cCGLuint27 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLuint27);
        for (size_t _iCGLuint27 = 0; _iCGLuint27 < _cCGLuint27; ++_iCGLuint27) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((indices)[_iCGLuint27]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixIndexuivARB(size, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixIndexPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixIndexPointerARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixIndexPointerARB(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint * buffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBuffersBase_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (buffers) {
        size_t _cCPGLuint21 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint21);
        for (size_t _iCPGLuint21 = 0; _iCPGLuint21 < _cCPGLuint21; ++_iCPGLuint21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iCPGLuint21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBuffersBase(target, first, count, buffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBuffersRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (buffers) {
        size_t _cCPGLuint22 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint22);
        for (size_t _iCPGLuint22 = 0; _iCPGLuint22 < _cCPGLuint22; ++_iCPGLuint22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iCPGLuint22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (offsets) {
        size_t _cCGLintptr1 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLintptr1);
        for (size_t _iCGLintptr1 = 0; _iCGLintptr1 < _cCGLintptr1; ++_iCGLintptr1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((offsets)[_iCGLintptr1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (sizes) {
        size_t _cCGLsizeiptr = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLsizeiptr);
        for (size_t _iCGLsizeiptr = 0; _iCGLsizeiptr < _cCGLsizeiptr; ++_iCGLsizeiptr) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((sizes)[_iCGLsizeiptr]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBuffersRange(target, first, count, buffers, offsets, sizes);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindTextures(GLuint first, GLsizei count, const GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindTextures_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (textures) {
        size_t _cCPGLuint14 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint14);
        for (size_t _iCPGLuint14 = 0; _iCPGLuint14 < _cCPGLuint14; ++_iCPGLuint14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindTextures(first, count, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindSamplers(GLuint first, GLsizei count, const GLuint * samplers) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindSamplers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (samplers) {
        size_t _cCPGLuint16 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint16);
        for (size_t _iCPGLuint16 = 0; _iCPGLuint16 < _cCPGLuint16; ++_iCPGLuint16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((samplers)[_iCPGLuint16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindSamplers(first, count, samplers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindImageTextures(GLuint first, GLsizei count, const GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindImageTextures_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (textures) {
        size_t _cCPGLuint15 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint15);
        for (size_t _iCPGLuint15 = 0; _iCPGLuint15 < _cCPGLuint15; ++_iCPGLuint15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindImageTextures(first, count, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVertexBuffers(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVertexBuffers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (buffers) {
        size_t _cCPGLuint23 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint23);
        for (size_t _iCPGLuint23 = 0; _iCPGLuint23 < _cCPGLuint23; ++_iCPGLuint23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iCPGLuint23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (offsets) {
        size_t _cCGLintptr2 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLintptr2);
        for (size_t _iCGLintptr2 = 0; _iCGLintptr2 < _cCGLintptr2; ++_iCGLintptr2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((offsets)[_iCGLintptr2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (strides) {
        size_t _cCGLsizei6 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLsizei6);
        for (size_t _iCGLsizei6 = 0; _iCGLsizei6 < _cCGLsizei6; ++_iCGLsizei6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((strides)[_iCGLsizei6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVertexBuffers(first, count, buffers, offsets, strides);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysIndirect(GLenum mode, const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawArraysIndirect: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysIndirect_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), drawcount * (stride ? stride : 16));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysIndirect(mode, indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawElementsIndirect: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsIndirect_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    switch (_draw_indirect_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indirect));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indirect), drawcount * (stride ? stride : 20));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsIndirect(mode, type, indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleCoverageARB(GLfloat value, GLboolean invert) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleCoverageARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, invert);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleCoverageARB(value, invert);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glActiveTextureARB(GLenum texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveTextureARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveTextureARB(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClientActiveTextureARB(GLenum texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glClientActiveTextureARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClientActiveTextureARB(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1dARB(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1dvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1fARB(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1fvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1iARB(GLenum target, GLint s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1iARB(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1ivARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1sARB(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1svARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2dARB(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble54 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble54);
        for (size_t _iCGLdouble54 = 0; _iCGLdouble54 < _cCGLdouble54; ++_iCGLdouble54) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble54]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2dvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2fARB(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat68 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat68);
        for (size_t _iCGLfloat68 = 0; _iCGLfloat68 < _cCGLfloat68; ++_iCGLfloat68) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat68]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2fvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2iARB(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint55 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint55);
        for (size_t _iCGLint55 = 0; _iCGLint55 < _cCGLint55; ++_iCGLint55) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint55]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2ivARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2sARB(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort30 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort30);
        for (size_t _iCGLshort30 = 0; _iCGLshort30 < _cCGLshort30; ++_iCGLshort30) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort30]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2svARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3dARB(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble55 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble55);
        for (size_t _iCGLdouble55 = 0; _iCGLdouble55 < _cCGLdouble55; ++_iCGLdouble55) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble55]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3dvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3fARB(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat69 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat69);
        for (size_t _iCGLfloat69 = 0; _iCGLfloat69 < _cCGLfloat69; ++_iCGLfloat69) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat69]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3fvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3iARB(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint56 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint56);
        for (size_t _iCGLint56 = 0; _iCGLint56 < _cCGLint56; ++_iCGLint56) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint56]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3ivARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3sARB(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort31 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort31);
        for (size_t _iCGLshort31 = 0; _iCGLshort31 < _cCGLshort31; ++_iCGLshort31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3svARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4dARB(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble56 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble56);
        for (size_t _iCGLdouble56 = 0; _iCGLdouble56 < _cCGLdouble56; ++_iCGLdouble56) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble56]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4dvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4fARB(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat70 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat70);
        for (size_t _iCGLfloat70 = 0; _iCGLfloat70 < _cCGLfloat70; ++_iCGLfloat70) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat70]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4fvARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4iARB(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint57 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint57);
        for (size_t _iCGLint57 = 0; _iCGLint57 < _cCGLint57; ++_iCGLint57) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint57]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4ivARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4sARB(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort32 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort32);
        for (size_t _iCGLshort32 = 0; _iCGLshort32 < _cCGLshort32; ++_iCGLshort32) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort32]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4svARB(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenQueriesARB(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenQueriesARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenQueriesARB(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint3);
        for (size_t _iPGLuint3 = 0; _iPGLuint3 < _cPGLuint3; ++_iPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteQueriesARB(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteQueriesARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint32 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint32);
        for (size_t _iCPGLuint32 = 0; _iCPGLuint32 < _cCPGLuint32; ++_iCPGLuint32) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint32]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteQueriesARB(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsQueryARB(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsQueryARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsQueryARB(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBeginQueryARB(GLenum target, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginQueryARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginQueryARB(target, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndQueryARB(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndQueryARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndQueryARB(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryivARB(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryivARB(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectivARB(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectivARB(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectuivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectuivARB(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMaxShaderCompilerThreadsARB(GLuint count) {
    unsigned _call = trace::localWriter.beginEnter(&_glMaxShaderCompilerThreadsARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMaxShaderCompilerThreadsARB(count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfARB(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfARB(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfvARB(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat71 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat71);
        for (size_t _iCGLfloat71 = 0; _iCGLfloat71 < _cCGLfloat71; ++_iCGLfloat71) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat71]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfvARB(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramInterfaceiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramInterfaceiv(program, programInterface, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar * name) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourceIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetProgramResourceIndex(program, programInterface, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourceName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramResourceName(program, programInterface, index, bufSize, length, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourceiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(propCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (props) {
        size_t _cCGLenum7 = propCount > 0 ? propCount : 0;
        trace::localWriter.beginArray(_cCGLenum7);
        for (size_t _iCGLenum7 = 0; _iCGLenum7 < _cCGLenum7; ++_iCGLenum7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (props)[_iCGLenum7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(6);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    if (params) {
        size_t _cGLint = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourceLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetProgramResourceLocation(program, programInterface, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLint APIENTRY glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourceLocationIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetProgramResourceLocationIndex(program, programInterface, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glProvokingVertex(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glProvokingVertex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProvokingVertex(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glGetGraphicsResetStatusARB(void) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetGraphicsResetStatusARB_sig);
    trace::localWriter.endEnter();
    _result = _glGetGraphicsResetStatusARB();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetnMapdvARB(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnMapdvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMapdvARB(target, query, bufSize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cGLdouble = bufSize/sizeof(GLdouble) > 0 ? bufSize/sizeof(GLdouble) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMapfvARB(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnMapfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMapfvARB(target, query, bufSize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cGLfloat = bufSize/sizeof(GLfloat) > 0 ? bufSize/sizeof(GLfloat) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMapivARB(GLenum target, GLenum query, GLsizei bufSize, GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnMapivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, query);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMapivARB(target, query, bufSize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cGLint = bufSize/sizeof(GLint) > 0 ? bufSize/sizeof(GLint) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPixelMapfvARB(GLenum map, GLsizei bufSize, GLfloat * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPixelMapfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPixelMapfvARB(map, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cGLfloat = bufSize/sizeof(GLfloat) > 0 ? bufSize/sizeof(GLfloat) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((values)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPixelMapuivARB(GLenum map, GLsizei bufSize, GLuint * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPixelMapuivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPixelMapuivARB(map, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cGLuint = bufSize/sizeof(GLuint) > 0 ? bufSize/sizeof(GLuint) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPixelMapusvARB(GLenum map, GLsizei bufSize, GLushort * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPixelMapusvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, map);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPixelMapusvARB(map, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cGLushort = bufSize/sizeof(GLushort) > 0 ? bufSize/sizeof(GLushort) : 0;
        trace::localWriter.beginArray(_cGLushort);
        for (size_t _iGLushort = 0; _iGLushort < _cGLushort; ++_iGLushort) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iGLushort]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnPolygonStippleARB(GLsizei bufSize, GLubyte * pattern) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnPolygonStippleARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnPolygonStippleARB(bufSize, pattern);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pattern);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnColorTableARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid * table) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnColorTableARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnColorTableARB(target, format, type, bufSize, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)table);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnConvolutionFilterARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnConvolutionFilterARB(target, format, type, bufSize, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid * row, GLsizei columnBufSize, GLvoid * column, GLvoid * span) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnSeparableFilterARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(rowBufSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(columnBufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnSeparableFilterARB(target, format, type, rowBufSize, row, columnBufSize, column, span);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)row);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writePointer((uintptr_t)column);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writePointer((uintptr_t)span);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnHistogramARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnHistogramARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnHistogramARB(target, reset, format, type, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnMinmaxARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnMinmaxARB(target, reset, format, type, bufSize, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid * img) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnTexImageARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnTexImageARB(target, level, format, type, bufSize, img);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)img);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReadnPixelsARB(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glReadnPixelsARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadnPixelsARB(x, y, width, height, format, type, bufSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(7);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, GLvoid * img) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetnCompressedTexImageARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(lod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnCompressedTexImageARB(target, lod, bufSize, img);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)img);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformfvARB(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformfvARB(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = bufSize/sizeof(GLfloat) > 0 ? bufSize/sizeof(GLfloat) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformivARB(GLuint program, GLint location, GLsizei bufSize, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformivARB(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = bufSize/sizeof(GLint) > 0 ? bufSize/sizeof(GLint) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformuivARB(GLuint program, GLint location, GLsizei bufSize, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformuivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformuivARB(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint = bufSize/sizeof(GLuint) > 0 ? bufSize/sizeof(GLuint) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformdvARB(GLuint program, GLint location, GLsizei bufSize, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformdvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformdvARB(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = bufSize/sizeof(GLdouble) > 0 ? bufSize/sizeof(GLdouble) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferSampleLocationsfvARB(GLenum target, GLuint start, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferSampleLocationsfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat72 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat72);
        for (size_t _iCGLfloat72 = 0; _iCGLfloat72 < _cCGLfloat72; ++_iCGLfloat72) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat72]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferSampleLocationsfvARB(target, start, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferSampleLocationsfvARB(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferSampleLocationsfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat73 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat73);
        for (size_t _iCGLfloat73 = 0; _iCGLfloat73 < _cCGLfloat73; ++_iCGLfloat73) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat73]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferSampleLocationsfvARB(framebuffer, start, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvaluateDepthValuesARB(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvaluateDepthValuesARB_sig);
    trace::localWriter.endEnter();
    _glEvaluateDepthValuesARB();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMinSampleShadingARB(GLfloat value) {
    unsigned _call = trace::localWriter.beginEnter(&_glMinSampleShadingARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMinSampleShadingARB(value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenSamplers(GLsizei count, GLuint * samplers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenSamplers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenSamplers(count, samplers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (samplers) {
        size_t _cPGLuint16 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cPGLuint16);
        for (size_t _iPGLuint16 = 0; _iPGLuint16 < _cPGLuint16; ++_iPGLuint16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((samplers)[_iPGLuint16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteSamplers(GLsizei count, const GLuint * samplers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteSamplers_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (samplers) {
        size_t _cCPGLuint161 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint161);
        for (size_t _iCPGLuint161 = 0; _iCPGLuint161 < _cCPGLuint161; ++_iCPGLuint161) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((samplers)[_iCPGLuint161]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteSamplers(count, samplers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsSampler(GLuint sampler) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsSampler_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsSampler(sampler);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindSampler(GLuint unit, GLuint sampler) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindSampler_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(unit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindSampler(unit, sampler);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameteri(GLuint sampler, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameteri(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (param) {
        size_t _cCGLint58 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint58);
        for (size_t _iCGLint58 = 0; _iCGLint58 < _cCGLint58; ++_iCGLint58) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((param)[_iCGLint58]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameteriv(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameterf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameterf(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (param) {
        size_t _cCGLfloat74 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat74);
        for (size_t _iCGLfloat74 = 0; _iCGLfloat74 < _cCGLfloat74; ++_iCGLfloat74) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((param)[_iCGLfloat74]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameterfv(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameterIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (param) {
        size_t _cCGLint59 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint59);
        for (size_t _iCGLint59 = 0; _iCGLint59 < _cCGLint59; ++_iCGLint59) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((param)[_iCGLint59]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameterIiv(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameterIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (param) {
        size_t _cCGLuint28 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint28);
        for (size_t _iCGLuint28 = 0; _iCGLuint28 < _cCGLuint28; ++_iCGLuint28) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((param)[_iCGLuint28]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameterIuiv(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSamplerParameteriv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSamplerParameteriv(sampler, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSamplerParameterIiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSamplerParameterIiv(sampler, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSamplerParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSamplerParameterfv(sampler, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSamplerParameterIuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSamplerParameterIuiv(sampler, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glUseProgramStages_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield3_sig, stages);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUseProgramStages(pipeline, stages, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glActiveShaderProgram(GLuint pipeline, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveShaderProgram_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveShaderProgram(pipeline, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar * const * strings) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateShaderProgramv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (strings) {
        size_t _cCconstGLchar2 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCconstGLchar2);
        for (size_t _iCconstGLchar2 = 0; _iCconstGLchar2 < _cCconstGLchar2; ++_iCconstGLchar2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((strings)[_iCconstGLchar2]));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCreateShaderProgramv(type, count, strings);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindProgramPipeline(GLuint pipeline) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindProgramPipeline_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindProgramPipeline(pipeline);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteProgramPipelines(GLsizei n, const GLuint * pipelines) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteProgramPipelines_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (pipelines) {
        size_t _cCGLuint29 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLuint29);
        for (size_t _iCGLuint29 = 0; _iCGLuint29 < _cCGLuint29; ++_iCGLuint29) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pipelines)[_iCGLuint29]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteProgramPipelines(n, pipelines);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenProgramPipelines(GLsizei n, GLuint * pipelines) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenProgramPipelines_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenProgramPipelines(n, pipelines);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (pipelines) {
        size_t _cPGLuint15 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint15);
        for (size_t _iPGLuint15 = 0; _iPGLuint15 < _cPGLuint15; ++_iPGLuint15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pipelines)[_iPGLuint15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsProgramPipeline(GLuint pipeline) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsProgramPipeline_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsProgramPipeline(pipeline);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramPipelineiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramPipelineiv(pipeline, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1i(GLuint program, GLint location, GLint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1i(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint60 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint60);
        for (size_t _iCGLint60 = 0; _iCGLint60 < _cCGLint60; ++_iCGLint60) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint60]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1iv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1f(GLuint program, GLint location, GLfloat v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1f(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat75 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLfloat75);
        for (size_t _iCGLfloat75 = 0; _iCGLfloat75 < _cCGLfloat75; ++_iCGLfloat75) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat75]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1fv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1d(GLuint program, GLint location, GLdouble v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1d(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble57 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLdouble57);
        for (size_t _iCGLdouble57 = 0; _iCGLdouble57 < _cCGLdouble57; ++_iCGLdouble57) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble57]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1dv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1ui(GLuint program, GLint location, GLuint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1ui(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint30 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint30);
        for (size_t _iCGLuint30 = 0; _iCGLuint30 < _cCGLuint30; ++_iCGLuint30) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint30]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1uiv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2i(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint61 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint61);
        for (size_t _iCGLint61 = 0; _iCGLint61 < _cCGLint61; ++_iCGLint61) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint61]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2iv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2f(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat76 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat76);
        for (size_t _iCGLfloat76 = 0; _iCGLfloat76 < _cCGLfloat76; ++_iCGLfloat76) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat76]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2fv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2d(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble58 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble58);
        for (size_t _iCGLdouble58 = 0; _iCGLdouble58 < _cCGLdouble58; ++_iCGLdouble58) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble58]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2dv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2ui(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint31 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint31);
        for (size_t _iCGLuint31 = 0; _iCGLuint31 < _cCGLuint31; ++_iCGLuint31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2uiv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3i(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint62 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint62);
        for (size_t _iCGLint62 = 0; _iCGLint62 < _cCGLint62; ++_iCGLint62) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint62]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3iv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3f(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat77 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat77);
        for (size_t _iCGLfloat77 = 0; _iCGLfloat77 < _cCGLfloat77; ++_iCGLfloat77) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat77]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3fv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3d(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble59 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble59);
        for (size_t _iCGLdouble59 = 0; _iCGLdouble59 < _cCGLdouble59; ++_iCGLdouble59) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble59]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3dv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3ui(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint32 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint32);
        for (size_t _iCGLuint32 = 0; _iCGLuint32 < _cCGLuint32; ++_iCGLuint32) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint32]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3uiv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4i_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4i(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4iv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint63 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint63);
        for (size_t _iCGLint63 = 0; _iCGLint63 < _cCGLint63; ++_iCGLint63) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint63]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4iv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4f_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4f(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat78 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat78);
        for (size_t _iCGLfloat78 = 0; _iCGLfloat78 < _cCGLfloat78; ++_iCGLfloat78) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat78]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4fv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4d(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble60 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble60);
        for (size_t _iCGLdouble60 = 0; _iCGLdouble60 < _cCGLdouble60; ++_iCGLdouble60) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble60]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4dv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4ui(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint33 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint33);
        for (size_t _iCGLuint33 = 0; _iCGLuint33 < _cCGLuint33; ++_iCGLuint33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4uiv(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat79 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat79);
        for (size_t _iCGLfloat79 = 0; _iCGLfloat79 < _cCGLfloat79; ++_iCGLfloat79) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat79]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat80 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat80);
        for (size_t _iCGLfloat80 = 0; _iCGLfloat80 < _cCGLfloat80; ++_iCGLfloat80) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat80]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat81 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat81);
        for (size_t _iCGLfloat81 = 0; _iCGLfloat81 < _cCGLfloat81; ++_iCGLfloat81) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat81]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble61 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble61);
        for (size_t _iCGLdouble61 = 0; _iCGLdouble61 < _cCGLdouble61; ++_iCGLdouble61) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble61]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble62 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble62);
        for (size_t _iCGLdouble62 = 0; _iCGLdouble62 < _cCGLdouble62; ++_iCGLdouble62) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble62]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble63 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble63);
        for (size_t _iCGLdouble63 = 0; _iCGLdouble63 < _cCGLdouble63; ++_iCGLdouble63) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble63]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat82 = count*2*3 > 0 ? count*2*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat82);
        for (size_t _iCGLfloat82 = 0; _iCGLfloat82 < _cCGLfloat82; ++_iCGLfloat82) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat82]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat83 = count*3*2 > 0 ? count*3*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat83);
        for (size_t _iCGLfloat83 = 0; _iCGLfloat83 < _cCGLfloat83; ++_iCGLfloat83) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat83]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat84 = count*2*4 > 0 ? count*2*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat84);
        for (size_t _iCGLfloat84 = 0; _iCGLfloat84 < _cCGLfloat84; ++_iCGLfloat84) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat84]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x2fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat85 = count*4*2 > 0 ? count*4*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat85);
        for (size_t _iCGLfloat85 = 0; _iCGLfloat85 < _cCGLfloat85; ++_iCGLfloat85) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat85]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x4fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat86 = count*3*4 > 0 ? count*3*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat86);
        for (size_t _iCGLfloat86 = 0; _iCGLfloat86 < _cCGLfloat86; ++_iCGLfloat86) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat86]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x3fv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat87 = count*4*3 > 0 ? count*4*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat87);
        for (size_t _iCGLfloat87 = 0; _iCGLfloat87 < _cCGLfloat87; ++_iCGLfloat87) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat87]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble64 = count*2*3 > 0 ? count*2*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble64);
        for (size_t _iCGLdouble64 = 0; _iCGLdouble64 < _cCGLdouble64; ++_iCGLdouble64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble65 = count*3*2 > 0 ? count*3*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble65);
        for (size_t _iCGLdouble65 = 0; _iCGLdouble65 < _cCGLdouble65; ++_iCGLdouble65) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble65]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble66 = count*2*4 > 0 ? count*2*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble66);
        for (size_t _iCGLdouble66 = 0; _iCGLdouble66 < _cCGLdouble66; ++_iCGLdouble66) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble66]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble67 = count*4*2 > 0 ? count*4*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble67);
        for (size_t _iCGLdouble67 = 0; _iCGLdouble67 < _cCGLdouble67; ++_iCGLdouble67) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble67]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble68 = count*3*4 > 0 ? count*3*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble68);
        for (size_t _iCGLdouble68 = 0; _iCGLdouble68 < _cCGLdouble68; ++_iCGLdouble68) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble68]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble69 = count*4*3 > 0 ? count*4*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble69);
        for (size_t _iCGLdouble69 = 0; _iCGLdouble69 < _cCGLdouble69; ++_iCGLdouble69) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble69]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glValidateProgramPipeline(GLuint pipeline) {
    unsigned _call = trace::localWriter.beginEnter(&_glValidateProgramPipeline_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glValidateProgramPipeline(pipeline);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramPipelineInfoLog_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(infoLog), ((length) ? *(length) : strlen(infoLog)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveAtomicCounterBufferiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(bufferIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindImageTexture_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(unit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, layered);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindImageTexture(unit, texture, level, layered, layer, access, format);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMemoryBarrier(GLbitfield barriers) {
    unsigned _call = trace::localWriter.beginEnter(&_glMemoryBarrier_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield7_sig, barriers);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMemoryBarrier(barriers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteObjectARB(GLhandleARB obj) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteObjectARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(obj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteObjectARB(obj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLhandleARB APIENTRY glGetHandleARB(GLenum pname) {
    GLhandleARB _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetHandleARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetHandleARB(pname);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj) {
    unsigned _call = trace::localWriter.beginEnter(&_glDetachObjectARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(containerObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attachedObj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDetachObjectARB(containerObj, attachedObj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLhandleARB APIENTRY glCreateShaderObjectARB(GLenum shaderType) {
    GLhandleARB _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateShaderObjectARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shaderType);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCreateShaderObjectARB(shaderType);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB * * const string, const GLint * length) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderSourceARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shaderObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (string) {
        size_t _cconstGLcharARB1 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cconstGLcharARB1);
        for (size_t _iconstGLcharARB1 = 0; _iconstGLcharARB1 < _cconstGLcharARB1; ++_iconstGLcharARB1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((string)[_iconstGLcharARB1]), _glShaderSource_length(string, length, _iconstGLcharARB1));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (length) {
        size_t _cCGLint65 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint65);
        for (size_t _iCGLint65 = 0; _iCGLint65 < _cCGLint65; ++_iCGLint65) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((length)[_iCGLint65]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderSourceARB(shaderObj, count, string, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompileShaderARB(GLhandleARB shaderObj) {
    unsigned _call = trace::localWriter.beginEnter(&_glCompileShaderARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shaderObj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompileShaderARB(shaderObj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLhandleARB APIENTRY glCreateProgramObjectARB(void) {
    GLhandleARB _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateProgramObjectARB_sig);
    trace::localWriter.endEnter();
    _result = _glCreateProgramObjectARB();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj) {
    unsigned _call = trace::localWriter.beginEnter(&_glAttachObjectARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(containerObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(obj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAttachObjectARB(containerObj, obj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLinkProgramARB(GLhandleARB programObj) {
    _glLinkProgramARB(programObj);
    GLint active_attributes = 0;
    _glGetObjectParameterivARB(programObj, GL_OBJECT_ACTIVE_ATTRIBUTES_ARB, &active_attributes);
    for (GLint attrib = 0; attrib < active_attributes; ++attrib) {
        GLint size = 0;
        GLenum type = 0;
        GLcharARB name[256];
        _glGetActiveAttribARB(programObj, attrib, sizeof name, NULL, &size, &type, name);
        if (name[0] != 'g' || name[1] != 'l' || name[2] != '_') {
            GLint location = _glGetAttribLocationARB(programObj, name);
            if (location >= 0) {
                _fake_glBindAttribLocationARB(programObj, location, name);
            }
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glLinkProgramARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUseProgramObjectARB(GLhandleARB programObj) {
    unsigned _call = trace::localWriter.beginEnter(&_glUseProgramObjectARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUseProgramObjectARB(programObj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glValidateProgramARB(GLhandleARB programObj) {
    unsigned _call = trace::localWriter.beginEnter(&_glValidateProgramARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glValidateProgramARB(programObj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1fARB(GLint location, GLfloat v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1fARB(location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2fARB(GLint location, GLfloat v0, GLfloat v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2fARB(location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3fARB(location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4fARB(location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1iARB(GLint location, GLint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1iARB(location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2iARB(GLint location, GLint v0, GLint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2iARB(location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3iARB(location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4iARB(location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1fvARB(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat88 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLfloat88);
        for (size_t _iCGLfloat88 = 0; _iCGLfloat88 < _cCGLfloat88; ++_iCGLfloat88) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat88]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1fvARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2fvARB(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat89 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat89);
        for (size_t _iCGLfloat89 = 0; _iCGLfloat89 < _cCGLfloat89; ++_iCGLfloat89) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat89]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2fvARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3fvARB(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat90 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat90);
        for (size_t _iCGLfloat90 = 0; _iCGLfloat90 < _cCGLfloat90; ++_iCGLfloat90) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat90]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3fvARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4fvARB(GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat91 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat91);
        for (size_t _iCGLfloat91 = 0; _iCGLfloat91 < _cCGLfloat91; ++_iCGLfloat91) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat91]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4fvARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1ivARB(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint66 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint66);
        for (size_t _iCGLint66 = 0; _iCGLint66 < _cCGLint66; ++_iCGLint66) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint66]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1ivARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2ivARB(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint67 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint67);
        for (size_t _iCGLint67 = 0; _iCGLint67 < _cCGLint67; ++_iCGLint67) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint67]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2ivARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3ivARB(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint68 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint68);
        for (size_t _iCGLint68 = 0; _iCGLint68 < _cCGLint68; ++_iCGLint68) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint68]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3ivARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4ivARB(GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint69 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint69);
        for (size_t _iCGLint69 = 0; _iCGLint69 < _cCGLint69; ++_iCGLint69) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint69]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4ivARB(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix2fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat92 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat92);
        for (size_t _iCGLfloat92 = 0; _iCGLfloat92 < _cCGLfloat92; ++_iCGLfloat92) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat92]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix2fvARB(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix3fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat93 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat93);
        for (size_t _iCGLfloat93 = 0; _iCGLfloat93 < _cCGLfloat93; ++_iCGLfloat93) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat93]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix3fvARB(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformMatrix4fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat94 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat94);
        for (size_t _iCGLfloat94 = 0; _iCGLfloat94 < _cCGLfloat94; ++_iCGLfloat94) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat94]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformMatrix4fvARB(location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectParameterfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(obj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectParameterfvARB(obj, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectParameterivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(obj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectParameterivARB(obj, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInfoLogARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(obj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(maxLength);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInfoLogARB(obj, maxLength, length, infoLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(infoLog), ((length) ? *(length) : strlen(infoLog)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetAttachedObjectsARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(containerObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(maxCount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetAttachedObjectsARB(containerObj, maxCount, count, obj);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (count) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*count);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (obj) {
        size_t _cPGLhandleARB = (count ? *count : maxCount) > 0 ? (count ? *count : maxCount) : 0;
        trace::localWriter.beginArray(_cPGLhandleARB);
        for (size_t _iPGLhandleARB = 0; _iPGLhandleARB < _cPGLhandleARB; ++_iPGLhandleARB) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((obj)[_iPGLhandleARB]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformLocationARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetUniformLocationARB(programObj, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveUniformARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveUniformARB(programObj, index, bufSize, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformfvARB(programObj, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformivARB(GLhandleARB programObj, GLint location, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformivARB(programObj, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetShaderSourceARB(GLhandleARB obj, GLsizei bufSize, GLsizei * length, GLcharARB * source) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetShaderSourceARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(obj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetShaderSourceARB(obj, bufSize, length, source);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(source), ((length) ? *(length) : strlen(source)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderStorageBlockBinding_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(storageBlockIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(storageBlockBinding);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderStorageBlockBinding(program, storageBlockIndex, storageBlockBinding);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetSubroutineUniformLocation_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetSubroutineUniformLocation(program, shadertype, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glGetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar * name) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetSubroutineIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetSubroutineIndex(program, shadertype, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveSubroutineUniformiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveSubroutineUniformName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveSubroutineUniformName(program, shadertype, index, bufsize, length, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveSubroutineName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveSubroutineName(program, shadertype, index, bufsize, length, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint * indices) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformSubroutinesuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (indices) {
        size_t _cCPGLuint19 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint19);
        for (size_t _iCPGLuint19 = 0; _iCPGLuint19 < _cCPGLuint19; ++_iCPGLuint19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((indices)[_iCPGLuint19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformSubroutinesuiv(shadertype, count, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformSubroutineuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformSubroutineuiv(shadertype, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramStageiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, shadertype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramStageiv(program, shadertype, pname, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (values) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((values)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedStringARB(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedStringARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(namelen);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((namelen) >= 0 ? (namelen) : strlen(name)));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stringlen);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string), ((stringlen) >= 0 ? (stringlen) : strlen(string)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedStringARB(type, namelen, name, stringlen, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteNamedStringARB(GLint namelen, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteNamedStringARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(namelen);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((namelen) >= 0 ? (namelen) : strlen(name)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteNamedStringARB(namelen, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompileShaderIncludeARB(GLuint shader, GLsizei count, const GLchar * const * path, const GLint * length) {
    unsigned _call = trace::localWriter.beginEnter(&_glCompileShaderIncludeARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(shader);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (path) {
        size_t _cCconstGLchar7 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCconstGLchar7);
        for (size_t _iCconstGLchar7 = 0; _iCconstGLchar7 < _cCconstGLchar7; ++_iCconstGLchar7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((path)[_iCconstGLchar7]), _glShaderSource_length(path, length, _iCconstGLchar7));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (length) {
        size_t _cCGLint70 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint70);
        for (size_t _iCGLint70 = 0; _iCGLint70 < _cCGLint70; ++_iCGLint70) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((length)[_iCGLint70]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompileShaderIncludeARB(shader, count, path, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsNamedStringARB(GLint namelen, const GLchar * name) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsNamedStringARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(namelen);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((namelen) >= 0 ? (namelen) : strlen(name)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsNamedStringARB(namelen, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetNamedStringARB(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedStringARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(namelen);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((namelen) >= 0 ? (namelen) : strlen(name)));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedStringARB(namelen, name, bufSize, stringlen, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (stringlen) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*stringlen);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string), ((stringlen) ? *(stringlen) : strlen(string)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedStringivARB(GLint namelen, const GLchar * name, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedStringivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(namelen);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((namelen) >= 0 ? (namelen) : strlen(name)));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedStringivARB(namelen, name, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBufferPageCommitmentARB(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit) {
    unsigned _call = trace::localWriter.beginEnter(&_glBufferPageCommitmentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, commit);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferPageCommitmentARB(target, offset, size, commit);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferPageCommitmentEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferPageCommitmentEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, commit);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferPageCommitmentEXT(buffer, offset, size, commit);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferPageCommitmentARB(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferPageCommitmentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, commit);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferPageCommitmentARB(buffer, offset, size, commit);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexPageCommitmentARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexPageCommitmentARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, resident);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexPageCommitmentARB(target, level, xoffset, yoffset, zoffset, width, height, depth, resident);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLsync APIENTRY glFenceSync(GLenum condition, GLbitfield flags) {
    GLsync _result;
    unsigned _call = trace::localWriter.beginEnter(&_glFenceSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, condition);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glFenceSync(condition, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsSync(GLsync sync) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsSync(sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteSync(GLsync sync) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteSync(sync);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glClientWaitSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield6_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glClientWaitSync(sync, flags, timeout);
    if (_result == GL_ALREADY_SIGNALED || _result == GL_CONDITION_SATISFIED) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
        GLMemoryShadow::syncAllForReads(_ctx);
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) {
    unsigned _call = trace::localWriter.beginEnter(&_glWaitSync_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(timeout);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWaitSync(sync, flags, timeout);
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    GLMemoryShadow::syncAllForReads(_ctx);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInteger64v(GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInteger64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInteger64v(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSynciv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSynciv(sync, pname, bufSize, length, values);
    if (pname == GL_SYNC_STATUS && bufSize > 0 && values[0] == GL_SIGNALED) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
        GLMemoryShadow::syncAllForReads(_ctx);
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (values) {
        size_t _cGLint = (length ? *length : bufSize) > 0 ? (length ? *length : bufSize) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((values)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPatchParameteri(GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glPatchParameteri_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPatchParameteri(pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPatchParameterfv(GLenum pname, const GLfloat * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glPatchParameterfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (values) {
        size_t _cCGLfloat95 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat95);
        for (size_t _iCGLfloat95 = 0; _iCGLfloat95 < _cCGLfloat95; ++_iCGLfloat95) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((values)[_iCGLfloat95]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPatchParameterfv(pname, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureBarrier(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureBarrier_sig);
    trace::localWriter.endEnter();
    _glTextureBarrier();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBufferARB(GLenum target, GLenum internalformat, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBufferARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBufferARB(target, internalformat, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBufferRange_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBufferRange(target, internalformat, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage3DARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage3DARB(target, level, internalformat, width, height, depth, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage2DARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage2DARB(target, level, internalformat, width, height, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage1DARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage1DARB(target, level, internalformat, width, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage3DARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage3DARB(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage2DARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage1DARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage1DARB(target, level, xoffset, width, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCompressedTexImageARB(GLenum target, GLint level, GLvoid * img) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetCompressedTexImageARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCompressedTexImageARB(target, level, img);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)img);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexImage2DMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexImage3DMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultisamplefv(GLenum pname, GLuint index, GLfloat * val) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultisamplefv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultisamplefv(pname, index, val);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (val) {
        size_t _cGLfloat = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((val)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleMaski(GLuint index, GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleMaski_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleMaski(index, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage1D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage1D(target, levels, internalformat, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage2D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage2D(target, levels, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage3D_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage3D(target, levels, internalformat, width, height, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorageAttribs2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint * attrib_list) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorageAttribs2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
    int _cCGLint1;
    for (_cCGLint1 = 0; attrib_list && attrib_list[_cCGLint1] != GL_NONE; _cCGLint1 += 2) {
    }
    _cCGLint1 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCGLint1);
    for (int _iCGLint1 = 0; _iCGLint1 < _cCGLint1; _iCGLint1++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, attrib_list[_iCGLint1]);
        trace::localWriter.endElement();
        if (_iCGLint1 + 1 >= _cCGLint1) {
            break;
        }
        switch (int(attrib_list[_iCGLint1++])) {
        case GL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLint3_sig, (attrib_list)[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCGLint1 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorageAttribs2DEXT(target, levels, internalformat, width, height, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorageAttribs3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint * attrib_list) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorageAttribs3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
    int _cCGLint1;
    for (_cCGLint1 = 0; attrib_list && attrib_list[_cCGLint1] != GL_NONE; _cCGLint1 += 2) {
    }
    _cCGLint1 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCGLint1);
    for (int _iCGLint1 = 0; _iCGLint1 < _cCGLint1; _iCGLint1++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, attrib_list[_iCGLint1]);
        trace::localWriter.endElement();
        if (_iCGLint1 + 1 >= _cCGLint1) {
            break;
        }
        switch (int(attrib_list[_iCGLint1++])) {
        case GL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLint3_sig, (attrib_list)[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCGLint1 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorageAttribs3DEXT(target, levels, internalformat, width, height, depth, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage2DMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage3DMultisample_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEGLImageTargetTexStorageEXT(GLenum target, GLeglImageOES image, const GLint * attrib_list) {
    unsigned _call = trace::localWriter.beginEnter(&_glEGLImageTargetTexStorageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCGLint1;
    for (_cCGLint1 = 0; attrib_list && attrib_list[_cCGLint1] != GL_NONE; _cCGLint1 += 2) {
    }
    _cCGLint1 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCGLint1);
    for (int _iCGLint1 = 0; _iCGLint1 < _cCGLint1; _iCGLint1++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, attrib_list[_iCGLint1]);
        trace::localWriter.endElement();
        if (_iCGLint1 + 1 >= _cCGLint1) {
            break;
        }
        switch (int(attrib_list[_iCGLint1++])) {
        case GL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLint3_sig, (attrib_list)[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCGLint1 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEGLImageTargetTexStorageEXT(target, image, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEGLImageTargetTextureStorageEXT(GLuint texture, GLeglImageOES image, const GLint * attrib_list) {
    unsigned _call = trace::localWriter.beginEnter(&_glEGLImageTargetTextureStorageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    {
    int _cCGLint1;
    for (_cCGLint1 = 0; attrib_list && attrib_list[_cCGLint1] != GL_NONE; _cCGLint1 += 2) {
    }
    _cCGLint1 += attrib_list ? 1 : 0;
    trace::localWriter.beginArray(_cCGLint1);
    for (int _iCGLint1 = 0; _iCGLint1 < _cCGLint1; _iCGLint1++) {
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, attrib_list[_iCGLint1]);
        trace::localWriter.endElement();
        if (_iCGLint1 + 1 >= _cCGLint1) {
            break;
        }
        switch (int(attrib_list[_iCGLint1++])) {
        case GL_SURFACE_COMPRESSION_EXT:
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLint3_sig, (attrib_list)[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        default:
            trace::localWriter.beginElement();
            os::log("apitrace: warning: %s: unknown key 0x%04X, interpreting value as int\n", __FUNCTION__, int(attrib_list[_iCGLint1 - 1]));
            trace::localWriter.writeSInt(attrib_list[_iCGLint1]);
            trace::localWriter.endElement();
            break;
        }
    }
    trace::localWriter.endArray();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEGLImageTargetTextureStorageEXT(texture, image, attrib_list);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureView_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(origtexture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(minlevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(numlevels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(minlayer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(numlayers);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureView(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glQueryCounter(GLuint id, GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glQueryCounter_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glQueryCounter(id, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjecti64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjecti64v(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectui64v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectui64v(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64);
        for (size_t _iGLuint64 = 0; _iGLuint64 < _cGLuint64; ++_iGLuint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindTransformFeedback(GLenum target, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindTransformFeedback_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindTransformFeedback(target, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteTransformFeedbacks(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteTransformFeedbacks_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint17 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint17);
        for (size_t _iCPGLuint17 = 0; _iCPGLuint17 < _cCPGLuint17; ++_iCPGLuint17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteTransformFeedbacks(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenTransformFeedbacks(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenTransformFeedbacks_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenTransformFeedbacks(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint17 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint17);
        for (size_t _iPGLuint17 = 0; _iPGLuint17 < _cPGLuint17; ++_iPGLuint17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsTransformFeedback(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsTransformFeedback_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsTransformFeedback(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPauseTransformFeedback(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPauseTransformFeedback_sig);
    trace::localWriter.endEnter();
    _glPauseTransformFeedback();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResumeTransformFeedback(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glResumeTransformFeedback_sig);
    trace::localWriter.endEnter();
    _glResumeTransformFeedback();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTransformFeedback(GLenum mode, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTransformFeedback_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTransformFeedback(mode, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTransformFeedbackStream_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTransformFeedbackStream(mode, id, stream);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginQueryIndexed(GLenum target, GLuint index, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginQueryIndexed_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginQueryIndexed(target, index, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndQueryIndexed(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndQueryIndexed_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndQueryIndexed(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryIndexediv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryIndexediv(target, index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTransformFeedbackInstanced_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTransformFeedbackInstanced(mode, id, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTransformFeedbackStreamInstanced_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadTransposeMatrixfARB(const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadTransposeMatrixfARB_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfloat96 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat96);
        for (size_t _iCGLfloat96 = 0; _iCGLfloat96 < _cCGLfloat96; ++_iCGLfloat96) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat96]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadTransposeMatrixfARB(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadTransposeMatrixdARB(const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadTransposeMatrixdARB_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLdouble70 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble70);
        for (size_t _iCGLdouble70 = 0; _iCGLdouble70 < _cCGLdouble70; ++_iCGLdouble70) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble70]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadTransposeMatrixdARB(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultTransposeMatrixfARB(const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultTransposeMatrixfARB_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLfloat97 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat97);
        for (size_t _iCGLfloat97 = 0; _iCGLfloat97 < _cCGLfloat97; ++_iCGLfloat97) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat97]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultTransposeMatrixfARB(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultTransposeMatrixdARB(const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultTransposeMatrixdARB_sig);
    trace::localWriter.beginArg(0);
    if (m) {
        size_t _cCGLdouble71 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble71);
        for (size_t _iCGLdouble71 = 0; _iCGLdouble71 < _cCGLdouble71; ++_iCGLdouble71) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble71]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultTransposeMatrixdARB(m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar * const * uniformNames, GLuint * uniformIndices) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformIndices_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(uniformCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (uniformNames) {
        size_t _cCconstGLchar3 = uniformCount > 0 ? uniformCount : 0;
        trace::localWriter.beginArray(_cCconstGLchar3);
        for (size_t _iCconstGLchar3 = 0; _iCconstGLchar3 < _cCconstGLchar3; ++_iCconstGLchar3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((uniformNames)[_iCconstGLchar3]));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (uniformIndices) {
        size_t _cGLuint = uniformCount > 0 ? uniformCount : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((uniformIndices)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveUniformsiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(uniformCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (uniformIndices) {
        size_t _cCGLuint34 = uniformCount > 0 ? uniformCount : 0;
        trace::localWriter.beginArray(_cCGLuint34);
        for (size_t _iCGLuint34 = 0; _iCGLuint34 < _cCGLuint34; ++_iCGLuint34) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((uniformIndices)[_iCGLuint34]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveUniformName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(uniformIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(uniformName), ((length) ? *(length) : strlen(uniformName)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGetUniformBlockIndex(GLuint program, const GLchar * uniformBlockName) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformBlockIndex_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(uniformBlockName));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetUniformBlockIndex(program, uniformBlockName);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveUniformBlockiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(uniformBlockIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveUniformBlockName_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(uniformBlockIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(uniformBlockName), ((length) ? *(length) : strlen(uniformBlockName)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformBlockBinding_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(uniformBlockIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(uniformBlockBinding);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVertexArray(GLuint array) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVertexArray_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVertexArray(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteVertexArrays(GLsizei n, const GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteVertexArrays_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cCPGLuint121 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint121);
        for (size_t _iCPGLuint121 = 0; _iCPGLuint121 < _cCPGLuint121; ++_iCPGLuint121) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iCPGLuint121]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteVertexArrays(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenVertexArrays(GLsizei n, GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenVertexArrays_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenVertexArrays(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cPGLuint12 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint12);
        for (size_t _iPGLuint12 = 0; _iPGLuint12 < _cPGLuint12; ++_iPGLuint12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iPGLuint12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsVertexArray(GLuint array) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsVertexArray_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsVertexArray(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1d(GLuint index, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1d(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2d(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3d(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4d_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4d(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble73 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble73);
        for (size_t _iCGLdouble73 = 0; _iCGLdouble73 < _cCGLdouble73; ++_iCGLdouble73) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble73]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble74 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble74);
        for (size_t _iCGLdouble74 = 0; _iCGLdouble74 < _cCGLdouble74; ++_iCGLdouble74) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble74]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4dv(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4dv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble75 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble75);
        for (size_t _iCGLdouble75 = 0; _iCGLdouble75 < _cCGLdouble75; ++_iCGLdouble75) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble75]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4dv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexAttribLPointer(index, size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribLPointer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribLPointer(index, size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribLdv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribLdv(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVertexBuffer_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVertexBuffer(bindingindex, buffer, offset, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribIFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribIFormat(attribindex, size, type, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribLFormat_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribLFormat(attribindex, size, type, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribBinding(GLuint attribindex, GLuint bindingindex) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribBinding_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribBinding(attribindex, bindingindex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexBindingDivisor(GLuint bindingindex, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexBindingDivisor_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexBindingDivisor(bindingindex, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightbvARB(GLint size, const GLbyte * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightbvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLbyte7 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLbyte7);
        for (size_t _iCGLbyte7 = 0; _iCGLbyte7 < _cCGLbyte7; ++_iCGLbyte7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((weights)[_iCGLbyte7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightbvARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightsvARB(GLint size, const GLshort * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightsvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLshort33 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLshort33);
        for (size_t _iCGLshort33 = 0; _iCGLshort33 < _cCGLshort33; ++_iCGLshort33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((weights)[_iCGLshort33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightsvARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightivARB(GLint size, const GLint * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLint71 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLint71);
        for (size_t _iCGLint71 = 0; _iCGLint71 < _cCGLint71; ++_iCGLint71) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((weights)[_iCGLint71]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightivARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightfvARB(GLint size, const GLfloat * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLfloat98 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLfloat98);
        for (size_t _iCGLfloat98 = 0; _iCGLfloat98 < _cCGLfloat98; ++_iCGLfloat98) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((weights)[_iCGLfloat98]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightfvARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightdvARB(GLint size, const GLdouble * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightdvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLdouble76 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLdouble76);
        for (size_t _iCGLdouble76 = 0; _iCGLdouble76 < _cCGLdouble76; ++_iCGLdouble76) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((weights)[_iCGLdouble76]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightdvARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightubvARB(GLint size, const GLubyte * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightubvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLubyte12 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLubyte12);
        for (size_t _iCGLubyte12 = 0; _iCGLubyte12 < _cCGLubyte12; ++_iCGLubyte12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((weights)[_iCGLubyte12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightubvARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightusvARB(GLint size, const GLushort * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightusvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLushort8 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLushort8);
        for (size_t _iCGLushort8 = 0; _iCGLushort8 < _cCGLushort8; ++_iCGLushort8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((weights)[_iCGLushort8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightusvARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightuivARB(GLint size, const GLuint * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightuivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (weights) {
        size_t _cCGLuint35 = size > 0 ? size : 0;
        trace::localWriter.beginArray(_cCGLuint35);
        for (size_t _iCGLuint35 = 0; _iCGLuint35 < _cCGLuint35; ++_iCGLuint35) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((weights)[_iCGLuint35]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightuivARB(size, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightPointerARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightPointerARB(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexBlendARB(GLint count) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexBlendARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexBlendARB(count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferARB(GLenum target, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferARB(target, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteBuffersARB(GLsizei n, const GLuint * buffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteBuffersARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (buffers) {
        size_t _cCPGLuint24 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint24);
        for (size_t _iCPGLuint24 = 0; _iCPGLuint24 < _cCPGLuint24; ++_iCPGLuint24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iCPGLuint24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteBuffersARB(n, buffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenBuffersARB(GLsizei n, GLuint * buffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenBuffersARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenBuffersARB(n, buffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (buffers) {
        size_t _cPGLuint2 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint2);
        for (size_t _iPGLuint2 = 0; _iPGLuint2 < _cPGLuint2; ++_iPGLuint2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((buffers)[_iPGLuint2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsBufferARB(GLuint buffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsBufferARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsBufferARB(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage) {
    if (target == GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD) {
        os::log("apitrace: warning: GL_AMD_pinned_memory not fully supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glBufferDataARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, usage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferDataARB(target, size, data, usage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glBufferSubDataARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferSubDataARB(target, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferSubDataARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferSubDataARB(target, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapBufferARB(GLenum target, GLenum access) {
    GLvoid * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glMapBufferARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapBufferARB(target, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glUnmapBufferARB(GLenum target) {
    GLboolean _result;
    GLint access_flags = 0;
    GLint access = 0;
    bool flush;
    // GLES3 does not have GL_BUFFER_ACCESS;
    if (_checkBufferMapRange) {
        _glGetBufferParameterivARB(target, GL_BUFFER_ACCESS_FLAGS, &access_flags);
        flush = (access_flags & GL_MAP_WRITE_BIT) && !(access_flags & (GL_MAP_FLUSH_EXPLICIT_BIT | GL_MAP_PERSISTENT_BIT));
    } else {
        _glGetBufferParameterivARB(target, GL_BUFFER_ACCESS, &access);
        flush = access != GL_READ_ONLY;
    }
    if (gltrace::is_coherent_write_map(access_flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint buffer = getBufferName(target);
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            it->second->unmap(trace::fakeMemcpy);
        } else {
            os::log("apitrace: error: %s: cannot find memory shadow\n", __FUNCTION__);
        }
        flush = false;
    }
    if (flush) {
        GLvoid *map = NULL;
        _glGetBufferPointervARB(target, GL_BUFFER_MAP_POINTER, &map);
        if (map) {
            GLint length = -1;
            if (_checkBufferMapRange) {
                _glGetBufferParameterivARB(target, GL_BUFFER_MAP_LENGTH, &length);
                if (length == -1) {
                    // Mesa drivers refuse GL_BUFFER_MAP_LENGTH without GL 3.0 up-to
                    // http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffee498fb848b253a7833373fe5430f8c7ca0c5f
                    static bool warned = false;
                    if (!warned) {
                        os::log("apitrace: warning: glGetBufferParameterivARB(GL_BUFFER_MAP_LENGTH) failed\n");
                        warned = true;
                    }
                }
            } else {
                length = 0;
                _glGetBufferParameterivARB(target, GL_BUFFER_SIZE, &length);
            }
            if (_checkBufferFlushingUnmapAPPLE) {
                GLint flushing_unmap = GL_TRUE;
                _glGetBufferParameterivARB(target, GL_BUFFER_FLUSHING_UNMAP_APPLE, &flushing_unmap);
                flush = flush && flushing_unmap;
            }
            if (flush && length > 0) {
    trace::fakeMemcpy(map, length);
            }
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapBufferARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glUnmapBufferARB(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetBufferParameterivARB(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferParameterivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferParameterivARB(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferPointervARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferPointervARB(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1dARB(GLuint index, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1dARB(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1dvARB(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1dvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1fARB(GLuint index, GLfloat x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1fARB(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1fvARB(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1fvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1sARB(GLuint index, GLshort x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1sARB(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1svARB(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1svARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2dARB(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2dvARB(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble78 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble78);
        for (size_t _iCGLdouble78 = 0; _iCGLdouble78 < _cCGLdouble78; ++_iCGLdouble78) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble78]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2dvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2fARB(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2fvARB(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat100 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat100);
        for (size_t _iCGLfloat100 = 0; _iCGLfloat100 < _cCGLfloat100; ++_iCGLfloat100) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat100]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2fvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2sARB(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2svARB(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort35 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort35);
        for (size_t _iCGLshort35 = 0; _iCGLshort35 < _cCGLshort35; ++_iCGLshort35) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort35]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2svARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3dARB(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3dvARB(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble79 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble79);
        for (size_t _iCGLdouble79 = 0; _iCGLdouble79 < _cCGLdouble79; ++_iCGLdouble79) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble79]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3dvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3fARB(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3fvARB(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat101 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat101);
        for (size_t _iCGLfloat101 = 0; _iCGLfloat101 < _cCGLfloat101; ++_iCGLfloat101) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat101]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3fvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3sARB(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3svARB(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort36 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort36);
        for (size_t _iCGLshort36 = 0; _iCGLshort36 < _cCGLshort36; ++_iCGLshort36) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort36]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3svARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NbvARB(GLuint index, const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NbvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLbyte8 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte8);
        for (size_t _iCGLbyte8 = 0; _iCGLbyte8 < _cCGLbyte8; ++_iCGLbyte8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NbvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NivARB(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint72 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint72);
        for (size_t _iCGLint72 = 0; _iCGLint72 < _cCGLint72; ++_iCGLint72) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint72]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NivARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NsvARB(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NsvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort37 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort37);
        for (size_t _iCGLshort37 = 0; _iCGLshort37 < _cCGLshort37; ++_iCGLshort37) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort37]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NsvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NubARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NubARB(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NubvARB(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NubvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte13 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte13);
        for (size_t _iCGLubyte13 = 0; _iCGLubyte13 < _cCGLubyte13; ++_iCGLubyte13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NubvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NuivARB(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NuivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint36 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint36);
        for (size_t _iCGLuint36 = 0; _iCGLuint36 < _cCGLuint36; ++_iCGLuint36) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint36]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NuivARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4NusvARB(GLuint index, const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4NusvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLushort9 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort9);
        for (size_t _iCGLushort9 = 0; _iCGLushort9 < _cCGLushort9; ++_iCGLushort9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4NusvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4bvARB(GLuint index, const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4bvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLbyte9 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte9);
        for (size_t _iCGLbyte9 = 0; _iCGLbyte9 < _cCGLbyte9; ++_iCGLbyte9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4bvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4dARB(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4dvARB(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble80 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble80);
        for (size_t _iCGLdouble80 = 0; _iCGLdouble80 < _cCGLdouble80; ++_iCGLdouble80) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble80]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4dvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4fARB(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4fvARB(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat102 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat102);
        for (size_t _iCGLfloat102 = 0; _iCGLfloat102 < _cCGLfloat102; ++_iCGLfloat102) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat102]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4fvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4ivARB(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4ivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint73 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint73);
        for (size_t _iCGLint73 = 0; _iCGLint73 < _cCGLint73; ++_iCGLint73) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint73]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4ivARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4sARB(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4svARB(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4svARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort38 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort38);
        for (size_t _iCGLshort38 = 0; _iCGLshort38 < _cCGLshort38; ++_iCGLshort38) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort38]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4svARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4ubvARB(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4ubvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte14 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte14);
        for (size_t _iCGLubyte14 = 0; _iCGLubyte14 < _cCGLubyte14; ++_iCGLubyte14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4ubvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4uivARB(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4uivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint37 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint37);
        for (size_t _iCGLuint37 = 0; _iCGLuint37 < _cCGLuint37; ++_iCGLuint37) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint37]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4uivARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4usvARB(GLuint index, const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4usvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLushort10 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort10);
        for (size_t _iCGLushort10 = 0; _iCGLushort10 < _cCGLushort10; ++_iCGLushort10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4usvARB(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexAttribPointerARB(index, size, type, normalized, stride, pointer);
        static bool _checked = false;
        if (!_checked && size == GL_BGRA) {
            GLint _size = 0;
            _glGetVertexAttribivARB(index, GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB, &_size);
            if (_size != GL_BGRA) {
                os::log("apitrace: warning: glGetVertexAttribivARB(GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB) does not return GL_BGRA; trace will be incorrect (https://git.io/JOM0n)\n");
            }
            _checked = true;
        }
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribPointerARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribPointerARB(index, size, type, normalized, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVertexAttribArrayARB(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVertexAttribArrayARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVertexAttribArrayARB(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVertexAttribArrayARB(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVertexAttribArrayARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVertexAttribArrayARB(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramStringARB(GLenum target, GLenum format, GLsizei len, const void * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramStringARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string), len);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramStringARB(target, format, len, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindProgramARB(GLenum target, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindProgramARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindProgramARB(target, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteProgramsARB(GLsizei n, const GLuint * programs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteProgramsARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (programs) {
        size_t _cCPGLuint8 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint8);
        for (size_t _iCPGLuint8 = 0; _iCPGLuint8 < _cCPGLuint8; ++_iCPGLuint8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((programs)[_iCPGLuint8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteProgramsARB(n, programs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenProgramsARB(GLsizei n, GLuint * programs) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenProgramsARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenProgramsARB(n, programs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (programs) {
        size_t _cPGLuint8 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint8);
        for (size_t _iPGLuint8 = 0; _iPGLuint8 < _cPGLuint8; ++_iPGLuint8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((programs)[_iPGLuint8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameter4dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameter4dARB(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameter4dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLdouble81 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble81);
        for (size_t _iCGLdouble81 = 0; _iCGLdouble81 < _cCGLdouble81; ++_iCGLdouble81) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iCGLdouble81]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameter4dvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameter4fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameter4fARB(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameter4fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat103 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat103);
        for (size_t _iCGLfloat103 = 0; _iCGLfloat103 < _cCGLfloat103; ++_iCGLfloat103) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat103]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameter4fvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameter4dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameter4dARB(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameter4dvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLdouble82 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble82);
        for (size_t _iCGLdouble82 = 0; _iCGLdouble82 < _cCGLdouble82; ++_iCGLdouble82) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iCGLdouble82]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameter4dvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameter4fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameter4fARB(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameter4fvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat104 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat104);
        for (size_t _iCGLfloat104 = 0; _iCGLfloat104 < _cCGLfloat104; ++_iCGLfloat104) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat104]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameter4fvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramEnvParameterdvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramEnvParameterdvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramEnvParameterfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramEnvParameterfvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramLocalParameterdvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramLocalParameterdvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramLocalParameterfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramLocalParameterfvARB(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramivARB(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramivARB(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramStringARB(GLenum target, GLenum pname, GLvoid * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramStringARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramStringARB(target, pname, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)string);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribdvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribdvARB(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribfvARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribfvARB(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribivARB(GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribivARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribivARB(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribPointervARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribPointervARB(index, pname, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (pointer) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*pointer);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsProgramARB(GLuint program) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsProgramARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsProgramARB(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindAttribLocationARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindAttribLocationARB(programObj, index, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveAttribARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(maxLength);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveAttribARB(programObj, index, maxLength, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetAttribLocationARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetAttribLocationARB(programObj, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP1ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP1ui(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP1uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP1uiv(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP2ui(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP2uiv(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP3ui(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP3uiv(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP4ui(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribP4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribP4uiv(index, type, normalized, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexP2ui(GLenum type, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexP2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexP2ui(type, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexP2uiv(GLenum type, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexP2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexP2uiv(type, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexP3ui(GLenum type, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexP3ui(type, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexP3uiv(GLenum type, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexP3uiv(type, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexP4ui(GLenum type, GLuint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexP4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexP4ui(type, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexP4uiv(GLenum type, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexP4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexP4uiv(type, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP1ui(GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP1ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP1ui(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP1uiv(GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP1uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP1uiv(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP2ui(GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP2ui(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP2uiv(GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP2uiv(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP3ui(GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP3ui(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP3uiv(GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP3uiv(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP4ui(GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP4ui(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordP4uiv(GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordP4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordP4uiv(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP1ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP1ui(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP1uiv(GLenum texture, GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP1uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP1uiv(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP2ui(GLenum texture, GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP2ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP2ui(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP2uiv(GLenum texture, GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP2uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP2uiv(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP3ui(GLenum texture, GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP3ui(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP3uiv(GLenum texture, GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP3uiv(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP4ui(GLenum texture, GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP4ui(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordP4uiv(GLenum texture, GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordP4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordP4uiv(texture, type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalP3ui(GLenum type, GLuint coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(coords);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalP3ui(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalP3uiv(GLenum type, const GLuint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalP3uiv(type, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorP3ui(GLenum type, GLuint color) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(color);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorP3ui(type, color);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorP3uiv(GLenum type, const GLuint * color) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (color) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*color);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorP3uiv(type, color);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorP4ui(GLenum type, GLuint color) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorP4ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(color);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorP4ui(type, color);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorP4uiv(GLenum type, const GLuint * color) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorP4uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (color) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*color);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorP4uiv(type, color);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColorP3ui(GLenum type, GLuint color) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorP3ui_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(color);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColorP3ui(type, color);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColorP3uiv(GLenum type, const GLuint * color) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorP3uiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (color) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*color);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColorP3uiv(type, color);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glViewportArrayv(GLuint first, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewportArrayv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat105 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat105);
        for (size_t _iCGLfloat105 = 0; _iCGLfloat105 < _cCGLfloat105; ++_iCGLfloat105) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat105]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewportArrayv(first, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewportIndexedf_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(h);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewportIndexedf(index, x, y, w, h);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glViewportIndexedfv(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewportIndexedfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat106 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat106);
        for (size_t _iCGLfloat106 = 0; _iCGLfloat106 < _cCGLfloat106; ++_iCGLfloat106) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat106]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewportIndexedfv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissorArrayv(GLuint first, GLsizei count, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissorArrayv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLint74 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint74);
        for (size_t _iCGLint74 = 0; _iCGLint74 < _cCGLint74; ++_iCGLint74) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint74]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissorArrayv(first, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissorIndexed_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissorIndexed(index, left, bottom, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissorIndexedv(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissorIndexedv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint75 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint75);
        for (size_t _iCGLint75 = 0; _iCGLint75 < _cCGLint75; ++_iCGLint75) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint75]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissorIndexedv(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangeArrayv(GLuint first, GLsizei count, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangeArrayv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLdouble83 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble83);
        for (size_t _iCGLdouble83 = 0; _iCGLdouble83 < _cCGLdouble83; ++_iCGLdouble83) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble83]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangeArrayv(first, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangeIndexed(GLuint index, GLdouble n, GLdouble f) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangeIndexed_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(f);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangeIndexed(index, n, f);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFloati_v(GLenum target, GLuint index, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFloati_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFloati_v(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLfloat = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((data)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetDoublei_v(GLenum target, GLuint index, GLdouble * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetDoublei_v_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetDoublei_v(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLdouble = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((data)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2dARB(GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2dARB(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2dvARB(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2dvARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble84 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble84);
        for (size_t _iCGLdouble84 = 0; _iCGLdouble84 < _cCGLdouble84; ++_iCGLdouble84) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble84]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2dvARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2fARB(GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2fARB(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2fvARB(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2fvARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat107 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat107);
        for (size_t _iCGLfloat107 = 0; _iCGLfloat107 < _cCGLfloat107; ++_iCGLfloat107) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat107]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2fvARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2iARB(GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2iARB(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2ivARB(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2ivARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint76 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint76);
        for (size_t _iCGLint76 = 0; _iCGLint76 < _cCGLint76; ++_iCGLint76) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint76]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2ivARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2sARB(GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2sARB(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2svARB(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2svARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort39 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort39);
        for (size_t _iCGLshort39 = 0; _iCGLshort39 < _cCGLshort39; ++_iCGLshort39) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort39]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2svARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3dARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3dARB(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3dvARB(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3dvARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble85 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble85);
        for (size_t _iCGLdouble85 = 0; _iCGLdouble85 < _cCGLdouble85; ++_iCGLdouble85) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble85]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3dvARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3fARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3fARB(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3fvARB(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3fvARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat108 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat108);
        for (size_t _iCGLfloat108 = 0; _iCGLfloat108 < _cCGLfloat108; ++_iCGLfloat108) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat108]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3fvARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3iARB(GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3iARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3iARB(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3ivARB(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3ivARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint77 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint77);
        for (size_t _iCGLint77 = 0; _iCGLint77 < _cCGLint77; ++_iCGLint77) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint77]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3ivARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3sARB(GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3sARB_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3sARB(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3svARB(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3svARB_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort40 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort40);
        for (size_t _iCGLshort40 = 0; _iCGLshort40 < _cCGLshort40; ++_iCGLshort40) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort40]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3svARB(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffersATI(GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffersATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (bufs) {
        size_t _cCGLenum8 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum8);
        for (size_t _iCGLenum8 = 0; _iCGLenum8 < _cCGLenum8; ++_iCGLenum8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffersATI(n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glElementPointerATI(GLenum type, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glElementPointerATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glElementPointerATI(type, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementArrayATI(GLenum mode, GLsizei count) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementArrayATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementArrayATI(mode, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawRangeElementArrayATI(GLenum mode, GLuint start, GLuint end, GLsizei count) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawRangeElementArrayATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawRangeElementArrayATI(mode, start, end, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBumpParameterivATI(GLenum pname, const GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBumpParameterivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (param) {
        size_t _cCGLint78 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint78);
        for (size_t _iCGLint78 = 0; _iCGLint78 < _cCGLint78; ++_iCGLint78) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((param)[_iCGLint78]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBumpParameterivATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBumpParameterfvATI(GLenum pname, const GLfloat * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBumpParameterfvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (param) {
        size_t _cCGLfloat109 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat109);
        for (size_t _iCGLfloat109 = 0; _iCGLfloat109 < _cCGLfloat109; ++_iCGLfloat109) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((param)[_iCGLfloat109]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBumpParameterfvATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexBumpParameterivATI(GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexBumpParameterivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexBumpParameterivATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (param) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((param)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexBumpParameterfvATI(GLenum pname, GLfloat * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexBumpParameterfvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexBumpParameterfvATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (param) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((param)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparateATI(GLenum equationRGB, GLenum equationAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparateATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, equationRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, equationAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparateATI(equationRGB, equationAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGenFragmentShadersATI(GLuint range) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGenFragmentShadersATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGenFragmentShadersATI(range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindFragmentShaderATI(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFragmentShaderATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFragmentShaderATI(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteFragmentShaderATI(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteFragmentShaderATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteFragmentShaderATI(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginFragmentShaderATI(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginFragmentShaderATI_sig);
    trace::localWriter.endEnter();
    _glBeginFragmentShaderATI();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndFragmentShaderATI(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndFragmentShaderATI_sig);
    trace::localWriter.endEnter();
    _glEndFragmentShaderATI();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPassTexCoordATI(GLenum dst, GLenum coord, GLenum swizzle) {
    unsigned _call = trace::localWriter.beginEnter(&_glPassTexCoordATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, swizzle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPassTexCoordATI(dst, coord, swizzle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleMapATI(GLenum dst, GLenum interp, GLenum swizzle) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleMapATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, interp);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, swizzle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleMapATI(dst, interp, swizzle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorFragmentOp1ATI(GLenum op, GLenum dst, GLuint dstMask, GLuint dstMod, GLenum arg1, GLuint arg1Rep, GLuint arg1Mod) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorFragmentOp1ATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(dstMask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(dstMod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(arg1Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(arg1Mod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorFragmentOp1ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorFragmentOp2ATI(GLenum op, GLenum dst, GLuint dstMask, GLuint dstMod, GLenum arg1, GLuint arg1Rep, GLuint arg1Mod, GLenum arg2, GLuint arg2Rep, GLuint arg2Mod) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorFragmentOp2ATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(dstMask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(dstMod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(arg1Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(arg1Mod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeUInt(arg2Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeUInt(arg2Mod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorFragmentOp2ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorFragmentOp3ATI(GLenum op, GLenum dst, GLuint dstMask, GLuint dstMod, GLenum arg1, GLuint arg1Rep, GLuint arg1Mod, GLenum arg2, GLuint arg2Rep, GLuint arg2Mod, GLenum arg3, GLuint arg3Rep, GLuint arg3Mod) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorFragmentOp3ATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(dstMask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(dstMod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(arg1Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(arg1Mod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeUInt(arg2Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeUInt(arg2Mod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg3);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeUInt(arg3Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeUInt(arg3Mod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorFragmentOp3ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAlphaFragmentOp1ATI(GLenum op, GLenum dst, GLuint dstMod, GLenum arg1, GLuint arg1Rep, GLuint arg1Mod) {
    unsigned _call = trace::localWriter.beginEnter(&_glAlphaFragmentOp1ATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(dstMod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(arg1Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(arg1Mod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAlphaFragmentOp1ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAlphaFragmentOp2ATI(GLenum op, GLenum dst, GLuint dstMod, GLenum arg1, GLuint arg1Rep, GLuint arg1Mod, GLenum arg2, GLuint arg2Rep, GLuint arg2Mod) {
    unsigned _call = trace::localWriter.beginEnter(&_glAlphaFragmentOp2ATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(dstMod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(arg1Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(arg1Mod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(arg2Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeUInt(arg2Mod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAlphaFragmentOp2ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAlphaFragmentOp3ATI(GLenum op, GLenum dst, GLuint dstMod, GLenum arg1, GLuint arg1Rep, GLuint arg1Mod, GLenum arg2, GLuint arg2Rep, GLuint arg2Mod, GLenum arg3, GLuint arg3Rep, GLuint arg3Mod) {
    unsigned _call = trace::localWriter.beginEnter(&_glAlphaFragmentOp3ATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(dstMod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(arg1Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(arg1Mod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(arg2Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeUInt(arg2Mod);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, arg3);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeUInt(arg3Rep);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeUInt(arg3Mod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAlphaFragmentOp3ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSetFragmentShaderConstantATI(GLenum dst, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glSetFragmentShaderConstantATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (value) {
        size_t _cCGLfloat110 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat110);
        for (size_t _iCGLfloat110 = 0; _iCGLfloat110 < _cCGLfloat110; ++_iCGLfloat110) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat110]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSetFragmentShaderConstantATI(dst, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapObjectBufferATI(GLuint buffer) {
    GLvoid * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glMapObjectBufferATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapObjectBufferATI(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glUnmapObjectBufferATI(GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapObjectBufferATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUnmapObjectBufferATI(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPNTrianglesiATI(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPNTrianglesiATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPNTrianglesiATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPNTrianglesfATI(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPNTrianglesfATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPNTrianglesfATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPNTrianglesiATIX(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPNTrianglesiATIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPNTrianglesiATIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPNTrianglesfATIX(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPNTrianglesfATIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPNTrianglesfATIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilOpSeparateATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfail);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dpfail);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dppass);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilOpSeparateATI(face, sfail, dpfail, dppass);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilFuncSeparateATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, frontfunc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, backfunc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(ref);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilFuncSeparateATI(frontfunc, backfunc, ref, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glNewObjectBufferATI(GLsizei size, const GLvoid * pointer, GLenum usage) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glNewObjectBufferATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeBlob(pointer, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, usage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glNewObjectBufferATI(size, pointer, usage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsObjectBufferATI(GLuint buffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsObjectBufferATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsObjectBufferATI(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glUpdateObjectBufferATI(GLuint buffer, GLuint offset, GLsizei size, const GLvoid * pointer, GLenum preserve) {
    unsigned _call = trace::localWriter.beginEnter(&_glUpdateObjectBufferATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(pointer, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, preserve);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUpdateObjectBufferATI(buffer, offset, size, pointer, preserve);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectBufferfvATI(GLuint buffer, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectBufferfvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectBufferfvATI(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectBufferivATI(GLuint buffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectBufferivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectBufferivATI(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFreeObjectBufferATI(GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFreeObjectBufferATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFreeObjectBufferATI(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glArrayObjectATI(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glArrayObjectATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glArrayObjectATI(array, size, type, stride, buffer, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetArrayObjectfvATI(GLenum array, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetArrayObjectfvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetArrayObjectfvATI(array, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetArrayObjectivATI(GLenum array, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetArrayObjectivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetArrayObjectivATI(array, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantArrayObjectATI(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantArrayObjectATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantArrayObjectATI(id, type, stride, buffer, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVariantArrayObjectfvATI(GLuint id, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVariantArrayObjectfvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVariantArrayObjectfvATI(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVariantArrayObjectivATI(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVariantArrayObjectivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVariantArrayObjectivATI(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribArrayObjectATI(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribArrayObjectATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribArrayObjectATI(index, size, type, normalized, stride, buffer, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribArrayObjectfvATI(GLuint index, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribArrayObjectfvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribArrayObjectfvATI(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = pname > 0 ? pname : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribArrayObjectivATI(GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribArrayObjectivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribArrayObjectivATI(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = pname > 0 ? pname : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1sATI(GLenum stream, GLshort x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1sATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1sATI(stream, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1svATI(GLenum stream, const GLshort * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1svATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1svATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1iATI(GLenum stream, GLint x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1iATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1iATI(stream, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1ivATI(GLenum stream, const GLint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1ivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1ivATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1fATI(GLenum stream, GLfloat x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1fATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1fATI(stream, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1fvATI(GLenum stream, const GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1fvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1fvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1dATI(GLenum stream, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1dATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1dATI(stream, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream1dvATI(GLenum stream, const GLdouble * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream1dvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream1dvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2sATI(GLenum stream, GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2sATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2sATI(stream, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2svATI(GLenum stream, const GLshort * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2svATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLshort42 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort42);
        for (size_t _iCGLshort42 = 0; _iCGLshort42 < _cCGLshort42; ++_iCGLshort42) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLshort42]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2svATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2iATI(GLenum stream, GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2iATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2iATI(stream, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2ivATI(GLenum stream, const GLint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2ivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLint80 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint80);
        for (size_t _iCGLint80 = 0; _iCGLint80 < _cCGLint80; ++_iCGLint80) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLint80]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2ivATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2fATI(GLenum stream, GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2fATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2fATI(stream, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2fvATI(GLenum stream, const GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2fvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLfloat112 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat112);
        for (size_t _iCGLfloat112 = 0; _iCGLfloat112 < _cCGLfloat112; ++_iCGLfloat112) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coords)[_iCGLfloat112]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2fvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2dATI(GLenum stream, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2dATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2dATI(stream, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream2dvATI(GLenum stream, const GLdouble * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream2dvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLdouble87 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble87);
        for (size_t _iCGLdouble87 = 0; _iCGLdouble87 < _cCGLdouble87; ++_iCGLdouble87) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((coords)[_iCGLdouble87]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream2dvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3sATI(GLenum stream, GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3sATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3sATI(stream, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3svATI(GLenum stream, const GLshort * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3svATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLshort43 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort43);
        for (size_t _iCGLshort43 = 0; _iCGLshort43 < _cCGLshort43; ++_iCGLshort43) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLshort43]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3svATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3iATI(GLenum stream, GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3iATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3iATI(stream, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3ivATI(GLenum stream, const GLint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3ivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLint81 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint81);
        for (size_t _iCGLint81 = 0; _iCGLint81 < _cCGLint81; ++_iCGLint81) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLint81]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3ivATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3fATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3fATI(stream, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3fvATI(GLenum stream, const GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3fvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLfloat113 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat113);
        for (size_t _iCGLfloat113 = 0; _iCGLfloat113 < _cCGLfloat113; ++_iCGLfloat113) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coords)[_iCGLfloat113]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3fvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3dATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3dATI(stream, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream3dvATI(GLenum stream, const GLdouble * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream3dvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLdouble88 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble88);
        for (size_t _iCGLdouble88 = 0; _iCGLdouble88 < _cCGLdouble88; ++_iCGLdouble88) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((coords)[_iCGLdouble88]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream3dvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4sATI(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4sATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4sATI(stream, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4svATI(GLenum stream, const GLshort * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4svATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLshort44 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort44);
        for (size_t _iCGLshort44 = 0; _iCGLshort44 < _cCGLshort44; ++_iCGLshort44) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLshort44]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4svATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4iATI(GLenum stream, GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4iATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4iATI(stream, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4ivATI(GLenum stream, const GLint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4ivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLint82 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint82);
        for (size_t _iCGLint82 = 0; _iCGLint82 < _cCGLint82; ++_iCGLint82) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLint82]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4ivATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4fATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4fATI(stream, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4fvATI(GLenum stream, const GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4fvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLfloat114 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat114);
        for (size_t _iCGLfloat114 = 0; _iCGLfloat114 < _cCGLfloat114; ++_iCGLfloat114) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coords)[_iCGLfloat114]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4fvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4dATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4dATI(stream, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexStream4dvATI(GLenum stream, const GLdouble * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexStream4dvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLdouble89 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble89);
        for (size_t _iCGLdouble89 = 0; _iCGLdouble89 < _cCGLdouble89; ++_iCGLdouble89) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((coords)[_iCGLdouble89]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexStream4dvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3bATI(GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3bATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3bATI(stream, nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3bvATI(GLenum stream, const GLbyte * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3bvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLbyte10 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte10);
        for (size_t _iCGLbyte10 = 0; _iCGLbyte10 < _cCGLbyte10; ++_iCGLbyte10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLbyte10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3bvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3sATI(GLenum stream, GLshort nx, GLshort ny, GLshort nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3sATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3sATI(stream, nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3svATI(GLenum stream, const GLshort * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3svATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLshort45 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort45);
        for (size_t _iCGLshort45 = 0; _iCGLshort45 < _cCGLshort45; ++_iCGLshort45) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLshort45]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3svATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3iATI(GLenum stream, GLint nx, GLint ny, GLint nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3iATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3iATI(stream, nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3ivATI(GLenum stream, const GLint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3ivATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLint83 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint83);
        for (size_t _iCGLint83 = 0; _iCGLint83 < _cCGLint83; ++_iCGLint83) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLint83]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3ivATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3fATI(GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3fATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3fATI(stream, nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3fvATI(GLenum stream, const GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3fvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLfloat115 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat115);
        for (size_t _iCGLfloat115 = 0; _iCGLfloat115 < _cCGLfloat115; ++_iCGLfloat115) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coords)[_iCGLfloat115]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3fvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3dATI(GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3dATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3dATI(stream, nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalStream3dvATI(GLenum stream, const GLdouble * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalStream3dvATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (coords) {
        size_t _cCGLdouble90 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble90);
        for (size_t _iCGLdouble90 = 0; _iCGLdouble90 < _cCGLdouble90; ++_iCGLdouble90) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((coords)[_iCGLdouble90]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalStream3dvATI(stream, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClientActiveVertexStreamATI(GLenum stream) {
    unsigned _call = trace::localWriter.beginEnter(&_glClientActiveVertexStreamATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stream);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClientActiveVertexStreamATI(stream);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexBlendEnviATI(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexBlendEnviATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexBlendEnviATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexBlendEnvfATI(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexBlendEnvfATI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexBlendEnvfATI(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysInstancedBaseInstanceEXT(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.instancecount = instancecount;
        _params.baseinstance = baseinstance;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount + baseinstance);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysInstancedBaseInstanceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(baseinstance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysInstancedBaseInstanceEXT(mode, first, count, instancecount, baseinstance);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedBaseInstanceEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLuint baseinstance) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        _params.baseinstance = baseinstance;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount + baseinstance);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedBaseInstanceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(baseinstance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedBaseInstanceEXT(mode, count, type, indices, instancecount, baseinstance);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        _params.basevertex = basevertex;
        _params.baseinstance = baseinstance;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount + baseinstance);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedBaseVertexBaseInstanceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(baseinstance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedBaseVertexBaseInstanceEXT(mode, count, type, indices, instancecount, basevertex, baseinstance);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformBufferEXT(GLuint program, GLint location, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformBufferEXT(program, location, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetUniformBufferSizeEXT(GLuint program, GLint location) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformBufferSizeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetUniformBufferSizeEXT(program, location);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLintptr APIENTRY glGetUniformOffsetEXT(GLuint program, GLint location) {
    GLintptr _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetUniformOffsetEXT(program, location);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBlendColorEXT(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendColorEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendColorEXT(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparateEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparateEXT(modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindFragDataLocationIndexedEXT(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFragDataLocationIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(colorNumber);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFragDataLocationIndexedEXT(program, colorNumber, index, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFragDataLocationEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(color);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFragDataLocationEXT(program, color, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetProgramResourceLocationIndexEXT(GLuint program, GLenum programInterface, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourceLocationIndexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetProgramResourceLocationIndexEXT(program, programInterface, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLint APIENTRY glGetFragDataIndexEXT(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragDataIndexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetFragDataIndexEXT(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparateEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparateEXT(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBufferStorageEXT(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags) {
    if (flags & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(flags & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(flags & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        flags &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }

    if (gltrace::is_coherent_write_map(flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint buffer = getBufferName(target);
        auto memoryShadow = std::make_unique<GLMemoryShadow>();
        const bool success = memoryShadow->init(data, size);
        if (success) {
            _ctx->sharedRes->bufferToShadowMemory.insert_or_assign(buffer, std::move(memoryShadow));
        } else {
            os::log("apitrace: error: %s: cannot create memory shadow\n", __FUNCTION__);
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glBufferStorageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield5_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferStorageEXT(target, size, data, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearTexImageEXT(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearTexImageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearTexImageEXT(texture, level, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearTexSubImageEXT(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearTexSubImageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearTexSubImageEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClipControlEXT(GLenum origin, GLenum depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glClipControlEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, origin);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClipControlEXT(origin, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glColorSubTableEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
    trace::localWriter.writeBlob(data, _glColorSubTable_size(format, type, count));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorSubTableEXT(target, start, count, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyColorSubTableEXT(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyColorSubTableEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyColorSubTableEXT(target, start, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLockArraysEXT(GLint first, GLsizei count) {
    gltrace::Context *_ctx = gltrace::getContext();
    if (_ctx) {
        _ctx->lockedArrayCount = first + count;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glLockArraysEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLockArraysEXT(first, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUnlockArraysEXT(void) {
    gltrace::Context *_ctx = gltrace::getContext();
    if (_ctx) {
        _ctx->lockedArrayCount = 0;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glUnlockArraysEXT_sig);
    trace::localWriter.endEnter();
    _glUnlockArraysEXT();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionFilter1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)image);
        } else {
    trace::localWriter.writeBlob(image, _glConvolutionFilter1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionFilter1DEXT(target, internalformat, width, format, type, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionFilter2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)image);
        } else {
    trace::localWriter.writeBlob(image, _glConvolutionFilter2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionFilter2DEXT(target, internalformat, width, height, format, type, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameterfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameterfEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameterfvEXT(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat116 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat116);
        for (size_t _iCGLfloat116 = 0; _iCGLfloat116 < _cCGLfloat116; ++_iCGLfloat116) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat116]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameteriEXT(GLenum target, GLenum pname, GLint params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameteriEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glConvolutionParameterivEXT(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glConvolutionParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint84 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint84);
        for (size_t _iCGLint84 = 0; _iCGLint84 < _cCGLint84; ++_iCGLint84) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint84]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glConvolutionParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyConvolutionFilter1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyConvolutionFilter1DEXT(target, internalformat, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyConvolutionFilter2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyConvolutionFilter2DEXT(target, internalformat, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid * image) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetConvolutionFilterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetConvolutionFilterEXT(target, format, type, image);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)image);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetConvolutionParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetConvolutionParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetConvolutionParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetConvolutionParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSeparableFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetSeparableFilterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSeparableFilterEXT(target, format, type, row, column, span);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)row);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)column);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)span);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSeparableFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glSeparableFilter2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)row);
        } else {
    trace::localWriter.writeBlob(row, _glConvolutionFilter1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)column);
        } else {
    trace::localWriter.writeBlob(column, _glConvolutionFilter1D_size(format, type, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSeparableFilter2DEXT(target, internalformat, width, height, format, type, row, column);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3bEXT(GLbyte tx, GLbyte ty, GLbyte tz) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3bEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(tx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ty);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(tz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3bEXT(tx, ty, tz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3bvEXT(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3bvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte11 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte11);
        for (size_t _iCGLbyte11 = 0; _iCGLbyte11 < _cCGLbyte11; ++_iCGLbyte11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3bvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3dEXT(GLdouble tx, GLdouble ty, GLdouble tz) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(tx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(ty);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(tz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3dEXT(tx, ty, tz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3dvEXT(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3dvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble91 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble91);
        for (size_t _iCGLdouble91 = 0; _iCGLdouble91 < _cCGLdouble91; ++_iCGLdouble91) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble91]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3dvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3fEXT(GLfloat tx, GLfloat ty, GLfloat tz) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(tx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(ty);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(tz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3fEXT(tx, ty, tz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3fvEXT(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3fvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat117 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat117);
        for (size_t _iCGLfloat117 = 0; _iCGLfloat117 < _cCGLfloat117; ++_iCGLfloat117) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat117]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3fvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3iEXT(GLint tx, GLint ty, GLint tz) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(tx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ty);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(tz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3iEXT(tx, ty, tz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3ivEXT(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3ivEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint85 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint85);
        for (size_t _iCGLint85 = 0; _iCGLint85 < _cCGLint85; ++_iCGLint85) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint85]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3ivEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3sEXT(GLshort tx, GLshort ty, GLshort tz) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3sEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(tx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ty);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(tz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3sEXT(tx, ty, tz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangent3svEXT(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangent3svEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort46 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort46);
        for (size_t _iCGLshort46 = 0; _iCGLshort46 < _cCGLshort46; ++_iCGLshort46) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort46]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangent3svEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3bEXT(GLbyte bx, GLbyte by, GLbyte bz) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3bEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(bx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(by);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3bEXT(bx, by, bz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3bvEXT(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3bvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte12 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte12);
        for (size_t _iCGLbyte12 = 0; _iCGLbyte12 < _cCGLbyte12; ++_iCGLbyte12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3bvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3dEXT(GLdouble bx, GLdouble by, GLdouble bz) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(bx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(by);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(bz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3dEXT(bx, by, bz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3dvEXT(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3dvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble92 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble92);
        for (size_t _iCGLdouble92 = 0; _iCGLdouble92 < _cCGLdouble92; ++_iCGLdouble92) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble92]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3dvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3fEXT(GLfloat bx, GLfloat by, GLfloat bz) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(bx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(by);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(bz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3fEXT(bx, by, bz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3fvEXT(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3fvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat118 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat118);
        for (size_t _iCGLfloat118 = 0; _iCGLfloat118 < _cCGLfloat118; ++_iCGLfloat118) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat118]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3fvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3iEXT(GLint bx, GLint by, GLint bz) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(bx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(by);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3iEXT(bx, by, bz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3ivEXT(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3ivEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint86 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint86);
        for (size_t _iCGLint86 = 0; _iCGLint86 < _cCGLint86; ++_iCGLint86) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint86]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3ivEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3sEXT(GLshort bx, GLshort by, GLshort bz) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3sEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(bx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(by);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3sEXT(bx, by, bz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormal3svEXT(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormal3svEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort47 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort47);
        for (size_t _iCGLshort47 = 0; _iCGLshort47 < _cCGLshort47; ++_iCGLshort47) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort47]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormal3svEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTangentPointerEXT(GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTangentPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTangentPointerEXT(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBinormalPointerEXT(GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBinormalPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBinormalPointerEXT(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyImageSubDataEXT(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyImageSubDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(srcName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(srcY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(srcZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(dstName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(dstLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(dstX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeSInt(dstY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeSInt(dstZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeSInt(srcWidth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(13);
    trace::localWriter.writeSInt(srcHeight);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(14);
    trace::localWriter.writeSInt(srcDepth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyImageSubDataEXT(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexImage1DEXT(target, level, internalformat, x, y, width, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexImage2DEXT(target, level, internalformat, x, y, width, height, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage1DEXT(target, level, xoffset, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage2DEXT(target, level, xoffset, yoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCullParameterdvEXT(GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glCullParameterdvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCullParameterdvEXT(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCullParameterfvEXT(GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glCullParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCullParameterfvEXT(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glLabelObjectEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(object);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLabelObjectEXT(type, object, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei * length, GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectLabelEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(object);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectLabelEXT(type, object, bufSize, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInsertEventMarkerEXT(GLsizei length, const GLchar * marker) {
    unsigned _call = trace::localWriter.beginEnter(&_glInsertEventMarkerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(marker), length ? length : strlen(marker));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInsertEventMarkerEXT(length, marker);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPushGroupMarkerEXT(GLsizei length, const GLchar * marker) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushGroupMarkerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(marker), length ? length : strlen(marker));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushGroupMarkerEXT(length, marker);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopGroupMarkerEXT(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopGroupMarkerEXT_sig);
    trace::localWriter.endEnter();
    _glPopGroupMarkerEXT();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthBoundsEXT(GLclampd zmin, GLclampd zmax) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthBoundsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(zmin);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(zmax);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthBoundsEXT(zmin, zmax);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindMultiTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindMultiTextureEXT(texunit, target, texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCheckNamedFramebufferStatusEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCheckNamedFramebufferStatusEXT(framebuffer, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedBufferDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedBufferDataEXT(buffer, internalformat, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearNamedBufferSubDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeBlob(data, _glClearBufferData_size(format, type));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearNamedBufferSubDataEXT(buffer, internalformat, offset, size, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClientAttribDefaultEXT(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glClientAttribDefaultEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield2_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClientAttribDefaultEXT(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedMultiTexImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
    trace::localWriter.writeBlob(bits, imageSize);
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedMultiTexImage1DEXT(texunit, target, level, internalformat, width, border, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedMultiTexImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
    trace::localWriter.writeBlob(bits, imageSize);
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedMultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedMultiTexImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
    trace::localWriter.writeBlob(bits, imageSize);
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedMultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedMultiTexSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
    trace::localWriter.writeBlob(bits, imageSize);
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedMultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedMultiTexSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
    trace::localWriter.writeBlob(bits, imageSize);
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedMultiTexSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
    trace::localWriter.writeBlob(bits, imageSize);
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
            writeCompressedTex(bits, internalformat, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureImage1DEXT(texture, target, level, internalformat, width, border, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
            writeCompressedTex(bits, internalformat, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureImage2DEXT(texture, target, level, internalformat, width, height, border, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
            writeCompressedTex(bits, internalformat, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
            writeCompressedTex(bits, format, width, 0, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureSubImage1DEXT(texture, target, level, xoffset, width, format, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
            writeCompressedTex(bits, format, width, height, 0, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * bits) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTextureSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)bits);
        } else {
            writeCompressedTex(bits, format, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyMultiTexImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyMultiTexImage1DEXT(texunit, target, level, internalformat, x, y, width, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyMultiTexImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyMultiTexImage2DEXT(texunit, target, level, internalformat, x, y, width, height, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyMultiTexSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyMultiTexSubImage1DEXT(texunit, target, level, xoffset, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyMultiTexSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyMultiTexSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureImage1DEXT(texture, target, level, internalformat, x, y, width, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureImage2DEXT(texture, target, level, internalformat, x, y, width, height, border);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureSubImage1DEXT(texture, target, level, xoffset, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTextureSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableClientStateIndexedEXT(GLenum array, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableClientStateIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableClientStateIndexedEXT(array, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableClientStateiEXT(GLenum array, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableClientStateiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableClientStateiEXT(array, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVertexArrayAttribEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVertexArrayAttribEXT(vaobj, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVertexArrayEXT(GLuint vaobj, GLenum array) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVertexArrayEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVertexArrayEXT(vaobj, array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableClientStateIndexedEXT(GLenum array, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableClientStateIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableClientStateIndexedEXT(array, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableClientStateiEXT(GLenum array, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableClientStateiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableClientStateiEXT(array, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVertexArrayAttribEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVertexArrayAttribEXT(vaobj, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVertexArrayEXT(GLuint vaobj, GLenum array) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVertexArrayEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVertexArrayEXT(vaobj, array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length) {
    GLvoid *map = NULL;
    _glGetNamedBufferPointervEXT(buffer, GL_BUFFER_MAP_POINTER, &map);
    if (map && length > 0) {
    trace::fakeMemcpy((const char *)map + offset, length);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFlushMappedNamedBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushMappedNamedBufferRangeEXT(buffer, offset, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferDrawBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferDrawBufferEXT(framebuffer, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferDrawBuffersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (bufs) {
        size_t _cCGLenum9 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum9);
        for (size_t _iCGLenum9 = 0; _iCGLenum9 < _cCGLenum9; ++_iCGLenum9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferDrawBuffersEXT(framebuffer, n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferReadBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferReadBufferEXT(framebuffer, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenerateMultiTexMipmapEXT(GLenum texunit, GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenerateMultiTexMipmapEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenerateMultiTexMipmapEXT(texunit, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenerateTextureMipmapEXT(GLuint texture, GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenerateTextureMipmapEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenerateTextureMipmapEXT(texture, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, GLvoid * img) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetCompressedMultiTexImageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(lod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCompressedMultiTexImageEXT(texunit, target, lod, img);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)img);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, GLvoid * img) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetCompressedTextureImageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(lod);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCompressedTextureImageEXT(texture, target, lod, img);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)img);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetDoubleIndexedvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetDoubleIndexedvEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLdouble = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((data)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetDoublei_vEXT(GLenum target, GLuint index, GLdouble * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetDoublei_vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetDoublei_vEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLdouble = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((data)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFloatIndexedvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFloatIndexedvEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLfloat = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((data)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFloati_vEXT(GLenum target, GLuint index, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFloati_vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFloati_vEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLfloat = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((data)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFramebufferParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFramebufferParameterivEXT(framebuffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexEnvfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexEnvfvEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexEnvivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexEnvivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexGendvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexGendvEXT(texunit, coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexGenfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexGenfvEXT(texunit, coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexGenivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexGenivEXT(texunit, coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexImageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexImageEXT(texunit, target, level, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexLevelParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexLevelParameterfvEXT(texunit, target, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexLevelParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexLevelParameterivEXT(texunit, target, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexParameterIivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexParameterIuivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexParameterfvEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultiTexParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultiTexParameterivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferParameterivEXT(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferPointervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferPointervEXT(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferSubDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferSubDataEXT(buffer, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedFramebufferAttachmentParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedFramebufferAttachmentParameterivEXT(framebuffer, attachment, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedFramebufferParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedFramebufferParameterivEXT(framebuffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedProgramLocalParameterIivEXT(GLuint program, GLenum target, GLuint index, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedProgramLocalParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedProgramLocalParameterIivEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedProgramLocalParameterIuivEXT(GLuint program, GLenum target, GLuint index, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedProgramLocalParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedProgramLocalParameterIuivEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedProgramLocalParameterdvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedProgramLocalParameterdvEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedProgramLocalParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedProgramLocalParameterfvEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedProgramStringEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedProgramStringEXT(program, target, pname, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)string);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedProgramivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedProgramivEXT(program, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedRenderbufferParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedRenderbufferParameterivEXT(renderbuffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPointerIndexedvEXT(GLenum target, GLuint index, GLvoid * * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPointerIndexedvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPointerIndexedvEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLvoid1 = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLvoid1);
        for (size_t _iGLvoid1 = 0; _iGLvoid1 < _cGLvoid1; ++_iGLvoid1) {
            trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)(data)[_iGLvoid1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPointeri_vEXT(GLenum target, GLuint index, GLvoid * * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPointeri_vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPointeri_vEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLvoid1 = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLvoid1);
        for (size_t _iGLvoid1 = 0; _iGLvoid1 < _cGLvoid1; ++_iGLvoid1) {
            trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)(data)[_iGLvoid1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureImageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureImageEXT(texture, target, level, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(5);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureLevelParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureLevelParameterfvEXT(texture, target, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureLevelParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureLevelParameterivEXT(texture, target, level, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterIivEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterIuivEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterfvEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTextureParameterivEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayIntegeri_vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayIntegeri_vEXT(vaobj, index, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayIntegervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayIntegervEXT(vaobj, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLvoid * * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayPointeri_vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayPointeri_vEXT(vaobj, index, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, GLvoid * * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexArrayPointervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexArrayPointervEXT(vaobj, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapNamedBufferEXT(GLuint buffer, GLenum access) {
    GLvoid * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glMapNamedBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapNamedBufferEXT(buffer, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) {
    GLvoid * _result;
    if (access & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(access & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(access & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        if (access & GL_MAP_FLUSH_EXPLICIT_BIT) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/ MAP_FLUSH_EXPLICIT_BIT\n", __FUNCTION__);
        }
        access &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMapNamedBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield4_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapNamedBufferRangeEXT(buffer, offset, length, access);
    if (gltrace::is_coherent_write_map(access)) {
        gltrace::Context *_ctx = gltrace::getContext();
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            _result = it->second->map(_ctx, _result, access, offset, length);
        } else {
            os::log("apitrace: error: %s: %u: cannot find memory shadow\n", __FUNCTION__, _call);
        }
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMatrixFrustumEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixFrustumEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixFrustumEXT(mode, left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoadIdentityEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoadIdentityEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoadIdentityEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoadTransposedEXT(GLenum mode, const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoadTransposedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLdouble93 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble93);
        for (size_t _iCGLdouble93 = 0; _iCGLdouble93 < _cCGLdouble93; ++_iCGLdouble93) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble93]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoadTransposedEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoadTransposefEXT(GLenum mode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoadTransposefEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat119 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat119);
        for (size_t _iCGLfloat119 = 0; _iCGLfloat119 < _cCGLfloat119; ++_iCGLfloat119) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat119]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoadTransposefEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoaddEXT(GLenum mode, const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoaddEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLdouble94 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble94);
        for (size_t _iCGLdouble94 = 0; _iCGLdouble94 < _cCGLdouble94; ++_iCGLdouble94) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble94]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoaddEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoadfEXT(GLenum mode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoadfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat120 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat120);
        for (size_t _iCGLfloat120 = 0; _iCGLfloat120 < _cCGLfloat120; ++_iCGLfloat120) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat120]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoadfEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMultTransposedEXT(GLenum mode, const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMultTransposedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLdouble95 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble95);
        for (size_t _iCGLdouble95 = 0; _iCGLdouble95 < _cCGLdouble95; ++_iCGLdouble95) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble95]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMultTransposedEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMultTransposefEXT(GLenum mode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMultTransposefEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat121 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat121);
        for (size_t _iCGLfloat121 = 0; _iCGLfloat121 < _cCGLfloat121; ++_iCGLfloat121) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat121]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMultTransposefEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMultdEXT(GLenum mode, const GLdouble * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMultdEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLdouble96 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLdouble96);
        for (size_t _iCGLdouble96 = 0; _iCGLdouble96 < _cCGLdouble96; ++_iCGLdouble96) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((m)[_iCGLdouble96]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMultdEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMultfEXT(GLenum mode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMultfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat122 = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cCGLfloat122);
        for (size_t _iCGLfloat122 = 0; _iCGLfloat122 < _cCGLfloat122; ++_iCGLfloat122) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat122]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMultfEXT(mode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixOrthoEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixOrthoEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(right);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(top);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixOrthoEXT(mode, left, right, bottom, top, zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixPopEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixPopEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixPopEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixPushEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixPushEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixPushEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixRotatedEXT(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixRotatedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(angle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixRotatedEXT(mode, angle, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixRotatefEXT(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixRotatefEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(angle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixRotatefEXT(mode, angle, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixScaledEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixScaledEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixScaledEXT(mode, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixScalefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixScalefEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixScalefEXT(mode, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixTranslatedEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixTranslatedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixTranslatedEXT(mode, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixTranslatefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixTranslatefEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixTranslatefEXT(mode, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexBufferEXT(texunit, target, internalformat, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glMultiTexCoordPointerEXT(texunit, size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoordPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoordPointerEXT(texunit, size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexEnvfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexEnvfEXT(texunit, target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexEnvfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat123 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat123);
        for (size_t _iCGLfloat123 = 0; _iCGLfloat123 < _cCGLfloat123; ++_iCGLfloat123) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat123]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexEnvfvEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexEnviEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexEnviEXT(texunit, target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexEnvivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint87 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint87);
        for (size_t _iCGLint87 = 0; _iCGLint87 < _cCGLint87; ++_iCGLint87) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint87]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexEnvivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexGendEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeDouble(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexGendEXT(texunit, coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexGendvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLdouble97 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLdouble97);
        for (size_t _iCGLdouble97 = 0; _iCGLdouble97 < _cCGLdouble97; ++_iCGLdouble97) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iCGLdouble97]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexGendvEXT(texunit, coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexGenfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexGenfEXT(texunit, coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexGenfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat124 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat124);
        for (size_t _iCGLfloat124 = 0; _iCGLfloat124 < _cCGLfloat124; ++_iCGLfloat124) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat124]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexGenfvEXT(texunit, coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexGeniEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexGeniEXT(texunit, coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexGenivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint88 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint88);
        for (size_t _iCGLint88 = 0; _iCGLint88 < _cCGLint88; ++_iCGLint88) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint88]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexGenivEXT(texunit, coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexImage1DEXT(texunit, target, level, internalformat, width, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint89 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint89);
        for (size_t _iCGLint89 = 0; _iCGLint89 < _cCGLint89; ++_iCGLint89) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint89]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexParameterIivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLuint57 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint57);
        for (size_t _iCGLuint57 = 0; _iCGLuint57 < _cCGLuint57; ++_iCGLuint57) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint57]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexParameterIuivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexParameterfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexParameterfEXT(texunit, target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat125 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat125);
        for (size_t _iCGLfloat125 = 0; _iCGLfloat125 < _cCGLfloat125; ++_iCGLfloat125) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat125]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexParameterfvEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexParameteriEXT(texunit, target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint90 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint90);
        for (size_t _iCGLint90 = 0; _iCGLint90 < _cCGLint90; ++_iCGLint90) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint90]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexParameterivEXT(texunit, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexRenderbufferEXT(GLenum texunit, GLenum target, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexRenderbufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexRenderbufferEXT(texunit, target, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid * data, GLenum usage) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, usage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferDataEXT(buffer, size, data, usage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, const GLvoid * data, GLbitfield flags) {
    if (flags & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(flags & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(flags & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        flags &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }

    if (gltrace::is_coherent_write_map(flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        auto memoryShadow = std::make_unique<GLMemoryShadow>();
        const bool success = memoryShadow->init(data, size);
        if (success) {
            _ctx->sharedRes->bufferToShadowMemory.insert_or_assign(buffer, std::move(memoryShadow));
        } else {
            os::log("apitrace: error: %s: cannot create memory shadow\n", __FUNCTION__);
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferStorageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield5_sig, flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferStorageEXT(buffer, size, data, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedBufferSubDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(data, size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedBufferSubDataEXT(buffer, offset, size, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedCopyBufferSubDataEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(readBuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(writeBuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(readOffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(writeOffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedCopyBufferSubDataEXT(readBuffer, writeBuffer, readOffset, writeOffset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferParameteriEXT(framebuffer, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferRenderbufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, renderbuffertarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferRenderbufferEXT(framebuffer, attachment, renderbuffertarget, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTexture1DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTexture1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTexture1DEXT(framebuffer, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTexture2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTexture2DEXT(framebuffer, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTexture3DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTexture3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTexture3DEXT(framebuffer, attachment, textarget, texture, level, zoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTextureEXT(framebuffer, attachment, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTextureFaceEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTextureFaceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTextureFaceEXT(framebuffer, attachment, texture, level, face);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTextureLayerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTextureLayerEXT(framebuffer, attachment, texture, level, layer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameter4dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameter4dEXT(program, target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameter4dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLdouble98 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble98);
        for (size_t _iCGLdouble98 = 0; _iCGLdouble98 < _cCGLdouble98; ++_iCGLdouble98) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iCGLdouble98]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameter4dvEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameter4fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameter4fEXT(program, target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameter4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat126 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat126);
        for (size_t _iCGLfloat126 = 0; _iCGLfloat126 < _cCGLfloat126; ++_iCGLfloat126) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat126]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameter4fvEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameterI4iEXT(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameterI4iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameterI4iEXT(program, target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameterI4ivEXT(GLuint program, GLenum target, GLuint index, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameterI4ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint91 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint91);
        for (size_t _iCGLint91 = 0; _iCGLint91 < _cCGLint91; ++_iCGLint91) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint91]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameterI4ivEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameterI4uiEXT(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameterI4uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameterI4uiEXT(program, target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameterI4uivEXT(GLuint program, GLenum target, GLuint index, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameterI4uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLuint58 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint58);
        for (size_t _iCGLuint58 = 0; _iCGLuint58 < _cCGLuint58; ++_iCGLuint58) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint58]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameterI4uivEXT(program, target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParameters4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cCGLfloat127 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat127);
        for (size_t _iCGLfloat127 = 0; _iCGLfloat127 < _cCGLfloat127; ++_iCGLfloat127) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat127]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParameters4fvEXT(program, target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParametersI4ivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParametersI4ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cCGLint92 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint92);
        for (size_t _iCGLint92 = 0; _iCGLint92 < _cCGLint92; ++_iCGLint92) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint92]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParametersI4ivEXT(program, target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramLocalParametersI4uivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramLocalParametersI4uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cCGLuint59 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint59);
        for (size_t _iCGLuint59 = 0; _iCGLuint59 < _cCGLuint59; ++_iCGLuint59) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint59]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramLocalParametersI4uivEXT(program, target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedProgramStringEXT(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedProgramStringEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string), len);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedProgramStringEXT(program, target, format, len, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedRenderbufferStorageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedRenderbufferStorageEXT(renderbuffer, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedRenderbufferStorageMultisampleCoverageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(coverageSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(colorSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedRenderbufferStorageMultisampleCoverageEXT(renderbuffer, coverageSamples, colorSamples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedRenderbufferStorageMultisampleEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedRenderbufferStorageMultisampleEXT(renderbuffer, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1dEXT(GLuint program, GLint location, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1dEXT(program, location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble99 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLdouble99);
        for (size_t _iCGLdouble99 = 0; _iCGLdouble99 < _cCGLdouble99; ++_iCGLdouble99) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble99]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1dvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1fEXT(GLuint program, GLint location, GLfloat v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1fEXT(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat128 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLfloat128);
        for (size_t _iCGLfloat128 = 0; _iCGLfloat128 < _cCGLfloat128; ++_iCGLfloat128) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat128]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1fvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1iEXT(GLuint program, GLint location, GLint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1iEXT(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint93 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint93);
        for (size_t _iCGLint93 = 0; _iCGLint93 < _cCGLint93; ++_iCGLint93) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint93]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1ivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1uiEXT(GLuint program, GLint location, GLuint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1uiEXT(program, location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1uivEXT(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint60 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint60);
        for (size_t _iCGLuint60 = 0; _iCGLuint60 < _cCGLuint60; ++_iCGLuint60) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint60]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1uivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2dEXT(GLuint program, GLint location, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2dEXT(program, location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble100 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble100);
        for (size_t _iCGLdouble100 = 0; _iCGLdouble100 < _cCGLdouble100; ++_iCGLdouble100) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble100]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2dvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2fEXT(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat129 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat129);
        for (size_t _iCGLfloat129 = 0; _iCGLfloat129 < _cCGLfloat129; ++_iCGLfloat129) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat129]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2fvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2iEXT(GLuint program, GLint location, GLint v0, GLint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2iEXT(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint94 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint94);
        for (size_t _iCGLint94 = 0; _iCGLint94 < _cCGLint94; ++_iCGLint94) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint94]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2ivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2uiEXT(program, location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2uivEXT(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint61 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint61);
        for (size_t _iCGLuint61 = 0; _iCGLuint61 < _cCGLuint61; ++_iCGLuint61) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint61]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2uivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3dEXT(program, location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble101 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble101);
        for (size_t _iCGLdouble101 = 0; _iCGLdouble101 < _cCGLdouble101; ++_iCGLdouble101) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble101]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3dvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3fEXT(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat130 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat130);
        for (size_t _iCGLfloat130 = 0; _iCGLfloat130 < _cCGLfloat130; ++_iCGLfloat130) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat130]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3fvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3iEXT(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint95 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint95);
        for (size_t _iCGLint95 = 0; _iCGLint95 < _cCGLint95; ++_iCGLint95) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint95]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3ivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3uiEXT(program, location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3uivEXT(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint62 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint62);
        for (size_t _iCGLuint62 = 0; _iCGLuint62 < _cCGLuint62; ++_iCGLuint62) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint62]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3uivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4dEXT(program, location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLdouble102 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble102);
        for (size_t _iCGLdouble102 = 0; _iCGLdouble102 < _cCGLdouble102; ++_iCGLdouble102) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble102]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4dvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4fEXT(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLfloat131 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat131);
        for (size_t _iCGLfloat131 = 0; _iCGLfloat131 < _cCGLfloat131; ++_iCGLfloat131) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat131]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4fvEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4iEXT(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint96 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint96);
        for (size_t _iCGLint96 = 0; _iCGLint96 < _cCGLint96; ++_iCGLint96) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint96]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4ivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4uiEXT(program, location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4uivEXT(GLuint program, GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint63 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint63);
        for (size_t _iCGLuint63 = 0; _iCGLuint63 < _cCGLuint63; ++_iCGLuint63) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint63]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4uivEXT(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble103 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble103);
        for (size_t _iCGLdouble103 = 0; _iCGLdouble103 < _cCGLdouble103; ++_iCGLdouble103) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble103]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat132 = count*2*2 > 0 ? count*2*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat132);
        for (size_t _iCGLfloat132 = 0; _iCGLfloat132 < _cCGLfloat132; ++_iCGLfloat132) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat132]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x3dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble104 = count*2*3 > 0 ? count*2*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble104);
        for (size_t _iCGLdouble104 = 0; _iCGLdouble104 < _cCGLdouble104; ++_iCGLdouble104) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble104]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x3dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x3fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat133 = count*2*3 > 0 ? count*2*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat133);
        for (size_t _iCGLfloat133 = 0; _iCGLfloat133 < _cCGLfloat133; ++_iCGLfloat133) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat133]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x3fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x4dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble105 = count*2*4 > 0 ? count*2*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble105);
        for (size_t _iCGLdouble105 = 0; _iCGLdouble105 < _cCGLdouble105; ++_iCGLdouble105) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble105]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x4dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix2x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix2x4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat134 = count*2*4 > 0 ? count*2*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat134);
        for (size_t _iCGLfloat134 = 0; _iCGLfloat134 < _cCGLfloat134; ++_iCGLfloat134) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat134]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix2x4fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble106 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble106);
        for (size_t _iCGLdouble106 = 0; _iCGLdouble106 < _cCGLdouble106; ++_iCGLdouble106) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble106]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat135 = count*3*3 > 0 ? count*3*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat135);
        for (size_t _iCGLfloat135 = 0; _iCGLfloat135 < _cCGLfloat135; ++_iCGLfloat135) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat135]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x2dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble107 = count*3*2 > 0 ? count*3*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble107);
        for (size_t _iCGLdouble107 = 0; _iCGLdouble107 < _cCGLdouble107; ++_iCGLdouble107) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble107]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x2dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x2fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat136 = count*3*2 > 0 ? count*3*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat136);
        for (size_t _iCGLfloat136 = 0; _iCGLfloat136 < _cCGLfloat136; ++_iCGLfloat136) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat136]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x2fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x4dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble108 = count*3*4 > 0 ? count*3*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble108);
        for (size_t _iCGLdouble108 = 0; _iCGLdouble108 < _cCGLdouble108; ++_iCGLdouble108) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble108]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x4dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix3x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix3x4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat137 = count*3*4 > 0 ? count*3*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat137);
        for (size_t _iCGLfloat137 = 0; _iCGLfloat137 < _cCGLfloat137; ++_iCGLfloat137) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat137]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix3x4fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble109 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble109);
        for (size_t _iCGLdouble109 = 0; _iCGLdouble109 < _cCGLdouble109; ++_iCGLdouble109) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble109]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat138 = count*4*4 > 0 ? count*4*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat138);
        for (size_t _iCGLfloat138 = 0; _iCGLfloat138 < _cCGLfloat138; ++_iCGLfloat138) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat138]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x2dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble110 = count*4*2 > 0 ? count*4*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble110);
        for (size_t _iCGLdouble110 = 0; _iCGLdouble110 < _cCGLdouble110; ++_iCGLdouble110) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble110]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x2dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x2fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat139 = count*4*2 > 0 ? count*4*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat139);
        for (size_t _iCGLfloat139 = 0; _iCGLfloat139 < _cCGLfloat139; ++_iCGLfloat139) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat139]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x2fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x3dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLdouble111 = count*4*3 > 0 ? count*4*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble111);
        for (size_t _iCGLdouble111 = 0; _iCGLdouble111 < _cCGLdouble111; ++_iCGLdouble111) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((value)[_iCGLdouble111]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x3dvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformMatrix4x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformMatrix4x3fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, transpose);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (value) {
        size_t _cCGLfloat140 = count*4*3 > 0 ? count*4*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat140);
        for (size_t _iCGLfloat140 = 0; _iCGLfloat140 < _cCGLfloat140; ++_iCGLfloat140) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat140]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformMatrix4x3fvEXT(program, location, count, transpose, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPushClientAttribDefaultEXT(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushClientAttribDefaultEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield2_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushClientAttribDefaultEXT(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureBufferEXT(texture, target, internalformat, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureBufferRangeEXT(texture, target, internalformat, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage1DEXT(texture, target, level, internalformat, width, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage2DEXT(texture, target, level, internalformat, width, height, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexturePageCommitmentEXT(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexturePageCommitmentEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, commit);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexturePageCommitmentEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, commit);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint97 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint97);
        for (size_t _iCGLint97 = 0; _iCGLint97 < _cCGLint97; ++_iCGLint97) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint97]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterIivEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLuint65 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint65);
        for (size_t _iCGLuint65 = 0; _iCGLuint65 < _cCGLuint65; ++_iCGLuint65) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint65]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterIuivEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterfEXT(texture, target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat141 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat141);
        for (size_t _iCGLfloat141 = 0; _iCGLfloat141 < _cCGLfloat141; ++_iCGLfloat141) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat141]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterfvEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameteriEXT(texture, target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint98 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint98);
        for (size_t _iCGLint98 = 0; _iCGLint98 < _cCGLint98; ++_iCGLint98) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint98]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureParameterivEXT(texture, target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureRenderbufferEXT(GLuint texture, GLenum target, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureRenderbufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureRenderbufferEXT(texture, target, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage1DEXT(texture, target, levels, internalformat, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage2DEXT(texture, target, levels, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage2DMultisampleEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage2DMultisampleEXT(texture, target, samples, internalformat, width, height, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage3DEXT(texture, target, levels, internalformat, width, height, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureStorage3DMultisampleEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureStorage3DMultisampleEXT(texture, target, samples, internalformat, width, height, depth, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureSubImage1DEXT(texture, target, level, xoffset, width, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTextureSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glUnmapNamedBufferEXT(GLuint buffer) {
    GLboolean _result;
    GLint access_flags = 0;
    _glGetNamedBufferParameterivEXT(buffer, GL_BUFFER_ACCESS_FLAGS, &access_flags);
    if (gltrace::is_coherent_write_map(access_flags)) {
        gltrace::Context *_ctx = gltrace::getContext();
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            it->second->unmap(trace::fakeMemcpy);
        } else {
            os::log("apitrace: error: %s: cannot find memory shadow\n", __FUNCTION__);
        }
    } else if ((access_flags & GL_MAP_WRITE_BIT) &&
               !(access_flags & (GL_MAP_FLUSH_EXPLICIT_BIT | GL_MAP_PERSISTENT_BIT))) {
        GLvoid *map = NULL;
        _glGetNamedBufferPointervEXT(buffer, GL_BUFFER_MAP_POINTER, &map);
        GLint length = 0;
        _glGetNamedBufferParameterivEXT(buffer, GL_BUFFER_MAP_LENGTH, &length);
        if (map && length > 0) {
    trace::fakeMemcpy(map, length);
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapNamedBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glUnmapNamedBufferEXT(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayBindVertexBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayBindVertexBufferEXT(vaobj, bindingindex, buffer, offset, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayColorOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayColorOffsetEXT(vaobj, buffer, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayEdgeFlagOffsetEXT(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayEdgeFlagOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayEdgeFlagOffsetEXT(vaobj, buffer, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayFogCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayFogCoordOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayFogCoordOffsetEXT(vaobj, buffer, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayIndexOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayIndexOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayIndexOffsetEXT(vaobj, buffer, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayMultiTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayMultiTexCoordOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texunit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayMultiTexCoordOffsetEXT(vaobj, buffer, texunit, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayNormalOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayNormalOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayNormalOffsetEXT(vaobj, buffer, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArraySecondaryColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArraySecondaryColorOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArraySecondaryColorOffsetEXT(vaobj, buffer, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayTexCoordOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayTexCoordOffsetEXT(vaobj, buffer, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribBindingEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribBindingEXT(vaobj, attribindex, bindingindex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribDivisorEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribDivisorEXT(vaobj, index, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribFormatEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribFormatEXT(vaobj, attribindex, size, type, normalized, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribIFormatEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribIFormatEXT(vaobj, attribindex, size, type, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribIOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribIOffsetEXT(vaobj, buffer, index, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribLFormatEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(attribindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(relativeoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribLFormatEXT(vaobj, attribindex, size, type, relativeoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribLOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribLOffsetEXT(vaobj, buffer, index, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexAttribOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexAttribOffsetEXT(vaobj, buffer, index, size, type, normalized, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexBindingDivisorEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(bindingindex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexBindingDivisorEXT(vaobj, bindingindex, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayVertexOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayVertexOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(vaobj);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayVertexOffsetEXT(vaobj, buffer, size, type, stride, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum * attachments) {
    unsigned _call = trace::localWriter.beginEnter(&_glDiscardFramebufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numAttachments);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (attachments) {
        size_t _cCGLenum10 = numAttachments > 0 ? numAttachments : 0;
        trace::localWriter.beginArray(_cCGLenum10);
        for (size_t _iCGLenum10 = 0; _iCGLenum10 < _cCGLenum10; ++_iCGLenum10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (attachments)[_iCGLenum10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDiscardFramebufferEXT(target, numAttachments, attachments);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenQueriesEXT(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenQueriesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenQueriesEXT(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint3);
        for (size_t _iPGLuint3 = 0; _iPGLuint3 < _cPGLuint3; ++_iPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteQueriesEXT(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteQueriesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint33 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint33);
        for (size_t _iCPGLuint33 = 0; _iCPGLuint33 < _cCPGLuint33; ++_iCPGLuint33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteQueriesEXT(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsQueryEXT(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsQueryEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsQueryEXT(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBeginQueryEXT(GLenum target, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginQueryEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginQueryEXT(target, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndQueryEXT(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndQueryEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndQueryEXT(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glQueryCounterEXT(GLuint id, GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glQueryCounterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glQueryCounterEXT(id, target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectivEXT(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectuivEXT(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjecti64vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjecti64vEXT(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64);
        for (size_t _iGLint64 = 0; _iGLint64 < _cGLint64; ++_iGLint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64 * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetQueryObjectui64vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetQueryObjectui64vEXT(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    gltrace::Context *_ctx = gltrace::getContext();
    GLint _query_buffer = 0;
    if (_ctx->features.query_buffer_object) {
        _query_buffer = _glGetInteger(GL_QUERY_BUFFER_BINDING);
    }
    if (_query_buffer) {
        trace::localWriter.writePointer((uintptr_t)params);
    } else {
    if (params) {
        size_t _cGLuint64 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64);
        for (size_t _iGLuint64 = 0; _iGLuint64 < _cGLuint64; ++_iGLuint64) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffersEXT(GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (bufs) {
        size_t _cCGLenum11 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum11);
        for (size_t _iCGLenum11 = 0; _iCGLenum11 < _cCGLenum11; ++_iCGLenum11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffersEXT(n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorMaskIndexedEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorMaskIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, a);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorMaskIndexedEXT(index, r, g, b, a);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBooleanIndexedvEXT(GLenum target, GLuint index, GLboolean * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBooleanIndexedvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBooleanIndexedvEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLboolean = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLboolean);
        for (size_t _iGLboolean = 0; _iGLboolean < _cGLboolean; ++_iGLboolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, (data)[_iGLboolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetIntegerIndexedvEXT(GLenum target, GLuint index, GLint * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetIntegerIndexedvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetIntegerIndexedvEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLint = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((data)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableIndexedEXT(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableIndexedEXT(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableIndexedEXT(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableIndexedEXT(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsEnabledIndexedEXT(GLenum target, GLuint index) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsEnabledIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsEnabledIndexedEXT(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glEnableiEXT(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableiEXT(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableiEXT(GLenum target, GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableiEXT(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationiEXT(GLuint buf, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationiEXT(buf, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparateiEXT(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparateiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparateiEXT(buf, modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFunciEXT(GLuint buf, GLenum src, GLenum dst) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFunciEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dst);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFunciEXT(buf, src, dst);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparateiEXT(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparateiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buf);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparateiEXT(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorMaskiEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorMaskiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, a);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorMaskiEXT(index, r, g, b, a);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsEnablediEXT(GLenum target, GLuint index) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsEnablediEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsEnablediEXT(target, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDrawElementsBaseVertexEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsBaseVertexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsBaseVertexEXT(mode, count, type, indices, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawRangeElementsBaseVertexEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.start = start;
        _params.end = end;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawRangeElementsBaseVertexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawRangeElementsBaseVertexEXT(mode, start, end, count, type, indices, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedBaseVertexEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLint basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedBaseVertexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(basevertex);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedBaseVertexEXT(mode, count, type, indices, instancecount, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsBaseVertexEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei drawcount, const GLint * basevertex) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.drawcount = drawcount;
        _params.basevertex = basevertex;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsBaseVertexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (count) {
        size_t _cCGLsizei7 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei7);
        for (size_t _iCGLsizei7 = 0; _iCGLsizei7 < _cCGLsizei7; ++_iCGLsizei7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (indices) {
        size_t _cCconstGLvoid152 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCconstGLvoid152);
        for (size_t _iCconstGLvoid152 = 0; _iCconstGLvoid152 < _cCconstGLvoid152; ++_iCconstGLvoid152) {
            trace::localWriter.beginElement();
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>((indices)[_iCconstGLvoid152]));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>((indices)[_iCconstGLvoid152]), count[_iCconstGLvoid152]*_gl_type_size(type));
        break;
    }
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (basevertex) {
        size_t _cCGLint99 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint99);
        for (size_t _iCGLint99 = 0; _iCGLint99 < _cCGLint99; ++_iCGLint99) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((basevertex)[_iCGLint99]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsBaseVertexEXT(mode, count, type, indices, drawcount, basevertex);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysInstancedEXT(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysInstancedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysInstancedEXT(mode, first, count, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawElementsInstancedEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.instancecount = instancecount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count, true, instancecount);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawElementsInstancedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(instancecount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawElementsInstancedEXT(mode, count, type, indices, instancecount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawElementsParams _params;
        _params.start = start;
        _params.end = end;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawRangeElementsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(start);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(end);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>(indices));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>(indices), count*_gl_type_size(type));
        break;
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawRangeElementsEXT(mode, start, end, count, type, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordfEXT(GLfloat coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(coord);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordfEXT(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordfvEXT(const GLfloat * coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordfvEXT_sig);
    trace::localWriter.beginArg(0);
    if (coord) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*coord);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordfvEXT(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoorddEXT(GLdouble coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoorddEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(coord);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoorddEXT(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoorddvEXT(const GLdouble * coord) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoorddvEXT_sig);
    trace::localWriter.beginArg(0);
    if (coord) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*coord);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoorddvEXT(coord);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glFogCoordPointerEXT(type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordPointerEXT(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlitFramebufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(srcX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(srcY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(dstX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(dstY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(dstX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(dstY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield1_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageMultisampleEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsRenderbufferEXT(GLuint renderbuffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsRenderbufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsRenderbufferEXT(renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindRenderbufferEXT(GLenum target, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindRenderbufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindRenderbufferEXT(target, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteRenderbuffersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cCPGLuint101 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint101);
        for (size_t _iCPGLuint101 = 0; _iCPGLuint101 < _cCPGLuint101; ++_iCPGLuint101) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iCPGLuint101]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteRenderbuffersEXT(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenRenderbuffersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenRenderbuffersEXT(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cPGLuint10 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint10);
        for (size_t _iPGLuint10 = 0; _iPGLuint10 < _cPGLuint10; ++_iPGLuint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iPGLuint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageEXT(target, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetRenderbufferParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetRenderbufferParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsFramebufferEXT(GLuint framebuffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsFramebufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsFramebufferEXT(framebuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindFramebufferEXT(GLenum target, GLuint framebuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFramebufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFramebufferEXT(target, framebuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteFramebuffersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cCPGLuint91 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint91);
        for (size_t _iCPGLuint91 = 0; _iCPGLuint91 < _cCPGLuint91; ++_iCPGLuint91) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iCPGLuint91]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteFramebuffersEXT(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenFramebuffersEXT(GLsizei n, GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenFramebuffersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenFramebuffersEXT(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cPGLuint9 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint9);
        for (size_t _iPGLuint9 = 0; _iPGLuint9 < _cPGLuint9; ++_iPGLuint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iPGLuint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glCheckFramebufferStatusEXT(GLenum target) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCheckFramebufferStatusEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCheckFramebufferStatusEXT(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture1DEXT(target, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture2DEXT(target, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferRenderbufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, renderbuffertarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFramebufferAttachmentParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenerateMipmapEXT(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenerateMipmapEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenerateMipmapEXT(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureEXT(target, attachment, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameteriEXT(GLuint program, GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameteriEXT(program, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameters4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat143 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat143);
        for (size_t _iCGLfloat143 = 0; _iCGLfloat143 < _cCGLfloat143; ++_iCGLfloat143) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat143]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameters4fvEXT(target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameters4fvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat144 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat144);
        for (size_t _iCGLfloat144 = 0; _iCGLfloat144 < _cCGLfloat144; ++_iCGLfloat144) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat144]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameters4fvEXT(target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformuivEXT(GLuint program, GLint location, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformuivEXT(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetFragDataLocationEXT(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragDataLocationEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetFragDataLocationEXT(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glUniform1uiEXT(GLint location, GLuint v0) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1uiEXT(location, v0);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2uiEXT(GLint location, GLuint v0, GLuint v1) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2uiEXT(location, v0, v1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3uiEXT(location, v0, v1, v2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(v0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(v3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4uiEXT(location, v0, v1, v2, v3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1uivEXT(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint66 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint66);
        for (size_t _iCGLuint66 = 0; _iCGLuint66 < _cCGLuint66; ++_iCGLuint66) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint66]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1uivEXT(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2uivEXT(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint67 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint67);
        for (size_t _iCGLuint67 = 0; _iCGLuint67 < _cCGLuint67; ++_iCGLuint67) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint67]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2uivEXT(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3uivEXT(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint68 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint68);
        for (size_t _iCGLuint68 = 0; _iCGLuint68 < _cCGLuint68; ++_iCGLuint68) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint68]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3uivEXT(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4uivEXT(GLint location, GLsizei count, const GLuint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint69 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint69);
        for (size_t _iCGLuint69 = 0; _iCGLuint69 < _cCGLuint69; ++_iCGLuint69) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint69]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4uivEXT(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetHistogramEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetHistogramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetHistogramEXT(target, reset, format, type, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetHistogramParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetHistogramParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetHistogramParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetHistogramParameterivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetHistogramParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetHistogramParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMinmaxEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glGetMinmaxEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, reset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMinmaxEXT(target, reset, format, type, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)values);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMinmaxParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMinmaxParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMinmaxParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMinmaxParameterivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMinmaxParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMinmaxParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glHistogramEXT(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink) {
    unsigned _call = trace::localWriter.beginEnter(&_glHistogramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, sink);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glHistogramEXT(target, width, internalformat, sink);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMinmaxEXT(GLenum target, GLenum internalformat, GLboolean sink) {
    unsigned _call = trace::localWriter.beginEnter(&_glMinmaxEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, sink);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMinmaxEXT(target, internalformat, sink);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResetHistogramEXT(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glResetHistogramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glResetHistogramEXT(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResetMinmaxEXT(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glResetMinmaxEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glResetMinmaxEXT(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexFuncEXT(GLenum func, GLclampf ref) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexFuncEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(ref);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexFuncEXT(func, ref);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexMaterialEXT(GLenum face, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexMaterialEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexMaterialEXT(face, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribDivisorEXT(GLuint index, GLuint divisor) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribDivisorEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(divisor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribDivisorEXT(index, divisor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glApplyTextureEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glApplyTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glApplyTextureEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureLightEXT(GLenum pname) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureLightEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureLightEXT(pname);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureMaterialEXT(GLenum face, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureMaterialEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureMaterialEXT(face, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
    GLvoid * _result;
    if (access & GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX) {
        if (!(access & GL_MAP_PERSISTENT_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_PERSISTENT_BIT\n", __FUNCTION__);
        }
        if (!(access & GL_MAP_WRITE_BIT)) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/o MAP_WRITE_BIT\n", __FUNCTION__);
        }
        if (access & GL_MAP_FLUSH_EXPLICIT_BIT) {
            os::log("apitrace: warning: %s: MAP_NOTIFY_EXPLICIT_BIT_VMWX set w/ MAP_FLUSH_EXPLICIT_BIT\n", __FUNCTION__);
        }
        access &= ~GL_MAP_NOTIFY_EXPLICIT_BIT_VMWX;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMapBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield4_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapBufferRangeEXT(target, offset, length, access);
    if (gltrace::is_coherent_write_map(access)) {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint buffer = getBufferName(target);
        auto it = _ctx->sharedRes->bufferToShadowMemory.find(buffer);
        if (it != _ctx->sharedRes->bufferToShadowMemory.end()) {
            _result = it->second->map(_ctx, _result, access, offset, length);
        } else {
            os::log("apitrace: error: %s: %u: cannot find memory shadow\n", __FUNCTION__, _call);
        }
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    if (access & GL_MAP_WRITE_BIT) {
        _checkBufferMapRange = true;
    }
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFlushMappedBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length) {
    GLvoid *map = NULL;
    _glGetBufferPointervOES(target, GL_BUFFER_MAP_POINTER_OES, &map);
    if (map && length > 0) {
    trace::fakeMemcpy((const char *)map + offset, length);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glFlushMappedBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushMappedBufferRangeEXT(target, offset, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawMeshTasksEXT(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawMeshTasksEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(num_groups_x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(num_groups_y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(num_groups_z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawMeshTasksEXT(num_groups_x, num_groups_y, num_groups_z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawMeshTasksIndirectEXT(const GLvoid * indirect) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawMeshTasksIndirectEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawMeshTasksIndirectEXT(indirect);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawMeshTasksIndirectEXT(const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawMeshTasksIndirectEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawMeshTasksIndirectEXT(indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawMeshTasksIndirectCountEXT(const GLvoid * indirect, GLsizei drawcount, GLsizei maxdrawcount, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawMeshTasksIndirectCountEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(maxdrawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawMeshTasksIndirectCountEXT(indirect, drawcount, maxdrawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysEXT(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.drawcount = drawcount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (first) {
        size_t _cCGLint100 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint100);
        for (size_t _iCGLint100 = 0; _iCGLint100 < _cCGLint100; ++_iCGLint100) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((first)[_iCGLint100]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (count) {
        size_t _cCGLsizei8 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei8);
        for (size_t _iCGLsizei8 = 0; _iCGLsizei8 < _cCGLsizei8; ++_iCGLsizei8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysEXT(mode, first, count, drawcount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei drawcount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.drawcount = drawcount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (count) {
        size_t _cCGLsizei9 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei9);
        for (size_t _iCGLsizei9 = 0; _iCGLsizei9 < _cCGLsizei9; ++_iCGLsizei9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (indices) {
        size_t _cCconstGLvoid161 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCconstGLvoid161);
        for (size_t _iCconstGLvoid161 = 0; _iCconstGLvoid161 < _cCconstGLvoid161; ++_iCconstGLvoid161) {
            trace::localWriter.beginElement();
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>((indices)[_iCconstGLvoid161]));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>((indices)[_iCconstGLvoid161]), count[_iCconstGLvoid161]*_gl_type_size(type));
        break;
    }
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsEXT(mode, count, type, indices, drawcount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysIndirectEXT(GLenum mode, const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawArraysIndirectEXT: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysIndirectEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysIndirectEXT(mode, indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsIndirectEXT(GLenum mode, GLenum type, const GLvoid * indirect, GLsizei drawcount, GLsizei stride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawElementsIndirectEXT: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsIndirectEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsIndirectEXT(mode, type, indirect, drawcount, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleMaskEXT(GLclampf value, GLboolean invert) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleMaskEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, invert);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleMaskEXT(value, invert);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplePatternEXT(GLenum pattern) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplePatternEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pattern);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplePatternEXT(pattern);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture2DMultisampleEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReadBufferIndexedEXT(GLenum src, GLint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glReadBufferIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadBufferIndexedEXT(src, index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffersIndexedEXT(GLint n, const GLenum * location, const GLint * indices) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffersIndexedEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (location) {
        size_t _cCGLenum12 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum12);
        for (size_t _iCGLenum12 = 0; _iCGLenum12 < _cCGLenum12; ++_iCGLenum12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (location)[_iCGLenum12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (indices) {
        size_t _cCGLint101 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLint101);
        for (size_t _iCGLint101 = 0; _iCGLint101 < _cCGLint101; ++_iCGLint101) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((indices)[_iCGLint101]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffersIndexedEXT(n, location, indices);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetIntegeri_vEXT(GLenum target, GLuint index, GLint * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetIntegeri_vEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetIntegeri_vEXT(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLint = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((data)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTableEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glColorTableEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)table);
        } else {
    trace::localWriter.writeBlob(table, _glColorTable_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTableEXT(target, internalformat, width, format, type, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableEXT(target, format, type, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTransformParameteriEXT(GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTransformParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTransformParameteriEXT(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTransformParameterfEXT(GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTransformParameterfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTransformParameterfEXT(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTransformParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint102 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint102);
        for (size_t _iCGLint102 = 0; _iCGLint102 < _cCGLint102; ++_iCGLint102) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint102]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTransformParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTransformParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat145 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat145);
        for (size_t _iCGLfloat145 = 0; _iCGLfloat145 < _cCGLfloat145; ++_iCGLfloat145) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat145]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTransformParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelTransformParameterivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelTransformParameterivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelTransformParameterivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelTransformParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelTransformParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelTransformParameterfvEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfEXT(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfEXT(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfvEXT(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat146 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat146);
        for (size_t _iCGLfloat146 = 0; _iCGLfloat146 < _cCGLfloat146; ++_iCGLfloat146) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat146]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfvEXT(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPolygonOffsetEXT(GLfloat factor, GLfloat bias) {
    unsigned _call = trace::localWriter.beginEnter(&_glPolygonOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(factor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(bias);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPolygonOffsetEXT(factor, bias);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp) {
    unsigned _call = trace::localWriter.beginEnter(&_glPolygonOffsetClampEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(factor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(units);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(clamp);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPolygonOffsetClampEXT(factor, units, clamp);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPrimitiveBoundingBoxEXT(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrimitiveBoundingBoxEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(minX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(minY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(minZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(minW);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(maxX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(maxY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(maxZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(maxW);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrimitiveBoundingBoxEXT(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProvokingVertexEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glProvokingVertexEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProvokingVertexEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRasterSamplesEXT(GLuint samples, GLboolean fixedsamplelocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glRasterSamplesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedsamplelocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRasterSamplesEXT(samples, fixedsamplelocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glGetGraphicsResetStatusEXT(void) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetGraphicsResetStatusEXT_sig);
    trace::localWriter.endEnter();
    _result = _glGetGraphicsResetStatusEXT();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glReadnPixelsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadnPixelsEXT(x, y, width, height, format, type, bufSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(7);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformfvEXT(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformivEXT(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3bEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3bEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3bvEXT(const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3bvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLbyte13 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLbyte13);
        for (size_t _iCGLbyte13 = 0; _iCGLbyte13 < _cCGLbyte13; ++_iCGLbyte13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3bvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3dEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3dvEXT(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3dvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble113 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble113);
        for (size_t _iCGLdouble113 = 0; _iCGLdouble113 < _cCGLdouble113; ++_iCGLdouble113) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble113]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3dvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3fEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3fEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3fvEXT(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3fvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat147 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat147);
        for (size_t _iCGLfloat147 = 0; _iCGLfloat147 < _cCGLfloat147; ++_iCGLfloat147) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat147]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3fvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3iEXT(GLint red, GLint green, GLint blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3iEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3ivEXT(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3ivEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint103 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint103);
        for (size_t _iCGLint103 = 0; _iCGLint103 < _cCGLint103; ++_iCGLint103) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint103]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3ivEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3sEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3sEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3svEXT(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3svEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort48 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort48);
        for (size_t _iCGLshort48 = 0; _iCGLshort48 < _cCGLshort48; ++_iCGLshort48) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort48]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3svEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3ubEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3ubEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3ubvEXT(const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3ubvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLubyte15 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLubyte15);
        for (size_t _iCGLubyte15 = 0; _iCGLubyte15 < _cCGLubyte15; ++_iCGLubyte15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3ubvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3uiEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3uivEXT(const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3uivEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLuint70 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLuint70);
        for (size_t _iCGLuint70 = 0; _iCGLuint70 < _cCGLuint70; ++_iCGLuint70) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint70]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3uivEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3usEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3usEXT(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3usvEXT(const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3usvEXT_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLushort11 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLushort11);
        for (size_t _iCGLushort11 = 0; _iCGLushort11 < _cCGLushort11; ++_iCGLushort11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3usvEXT(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glSecondaryColorPointerEXT(size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColorPointerEXT(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUseShaderProgramEXT(GLenum type, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glUseShaderProgramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUseShaderProgramEXT(type, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glActiveProgramEXT(GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveProgramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveProgramEXT(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glCreateShaderProgramEXT(GLenum type, const GLchar * string) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateShaderProgramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCreateShaderProgramEXT(type, string);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glActiveShaderProgramEXT(GLuint pipeline, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveShaderProgramEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveShaderProgramEXT(pipeline, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindProgramPipelineEXT(GLuint pipeline) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindProgramPipelineEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindProgramPipelineEXT(pipeline);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar * * const strings) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCreateShaderProgramvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (strings) {
        size_t _cconstGLchar = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cconstGLchar);
        for (size_t _iconstGLchar = 0; _iconstGLchar < _cconstGLchar; ++_iconstGLchar) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((strings)[_iconstGLchar]));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCreateShaderProgramvEXT(type, count, strings);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteProgramPipelinesEXT(GLsizei n, const GLuint * pipelines) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteProgramPipelinesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (pipelines) {
        size_t _cCGLuint71 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLuint71);
        for (size_t _iCGLuint71 = 0; _iCGLuint71 < _cCGLuint71; ++_iCGLuint71) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pipelines)[_iCGLuint71]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteProgramPipelinesEXT(n, pipelines);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenProgramPipelinesEXT(GLsizei n, GLuint * pipelines) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenProgramPipelinesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenProgramPipelinesEXT(n, pipelines);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (pipelines) {
        size_t _cPGLuint15 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint15);
        for (size_t _iPGLuint15 = 0; _iPGLuint15 < _cPGLuint15; ++_iPGLuint15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((pipelines)[_iPGLuint15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramPipelineInfoLogEXT(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramPipelineInfoLogEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramPipelineInfoLogEXT(pipeline, bufSize, length, infoLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(infoLog));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramPipelineivEXT(GLuint pipeline, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramPipelineivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramPipelineivEXT(pipeline, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsProgramPipelineEXT(GLuint pipeline) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsProgramPipelineEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsProgramPipelineEXT(pipeline);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glUseProgramStagesEXT(GLuint pipeline, GLbitfield stages, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glUseProgramStagesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield3_sig, stages);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUseProgramStagesEXT(pipeline, stages, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glValidateProgramPipelineEXT(GLuint pipeline) {
    unsigned _call = trace::localWriter.beginEnter(&_glValidateProgramPipelineEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(pipeline);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glValidateProgramPipelineEXT(pipeline);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindImageTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, layered);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(format);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindImageTextureEXT(index, texture, level, layered, layer, access, format);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMemoryBarrierEXT(GLbitfield barriers) {
    unsigned _call = trace::localWriter.beginEnter(&_glMemoryBarrierEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield7_sig, barriers);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMemoryBarrierEXT(barriers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferPixelLocalStorageSizeEXT(GLuint target, GLsizei size) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferPixelLocalStorageSizeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferPixelLocalStorageSizeEXT(target, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLsizei APIENTRY glGetFramebufferPixelLocalStorageSizeEXT(GLuint target) {
    GLsizei _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetFramebufferPixelLocalStorageSizeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetFramebufferPixelLocalStorageSizeEXT(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glClearPixelLocalStorageuiEXT(GLsizei offset, GLsizei n, const GLuint * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearPixelLocalStorageuiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (values) {
        size_t _cCGLuint72 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLuint72);
        for (size_t _iCGLuint72 = 0; _iCGLuint72 < _cCGLuint72; ++_iCGLuint72) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iCGLuint72]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearPixelLocalStorageuiEXT(offset, n, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexPageCommitmentEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexPageCommitmentEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, commit);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexPageCommitmentEXT(target, level, xoffset, yoffset, zoffset, width, height, depth, commit);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilClearTagEXT(GLsizei stencilTagBits, GLuint stencilClearTag) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilClearTagEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(stencilTagBits);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stencilClearTag);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilClearTagEXT(stencilTagBits, stencilClearTag);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glActiveStencilFaceEXT(GLenum face) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveStencilFaceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveStencilFaceEXT(face);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage1D_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage1DEXT(target, level, xoffset, width, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage2DEXT(target, level, xoffset, yoffset, width, height, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPatchParameteriEXT(GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glPatchParameteriEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPatchParameteriEXT(pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage3DEXT(target, level, internalformat, width, height, depth, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureLayerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureLayerEXT(target, attachment, texture, level, layer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterIivEXT(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint104 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint104);
        for (size_t _iCGLint104 = 0; _iCGLint104 < _cCGLint104; ++_iCGLint104) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint104]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterIivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexParameterIuivEXT(GLenum target, GLenum pname, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLuint73 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint73);
        for (size_t _iCGLuint73 = 0; _iCGLuint73 < _cCGLuint73; ++_iCGLuint73) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint73]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexParameterIuivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterIivEXT(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterIivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexParameterIuivEXT(GLenum target, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexParameterIuivEXT(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameterIivEXT(GLuint sampler, GLenum pname, const GLint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (param) {
        size_t _cCGLint105 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint105);
        for (size_t _iCGLint105 = 0; _iCGLint105 < _cCGLint105; ++_iCGLint105) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((param)[_iCGLint105]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameterIivEXT(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplerParameterIuivEXT(GLuint sampler, GLenum pname, const GLuint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplerParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (param) {
        size_t _cCGLuint74 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLuint74);
        for (size_t _iCGLuint74 = 0; _iCGLuint74 < _cCGLuint74; ++_iCGLuint74) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((param)[_iCGLuint74]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplerParameterIuivEXT(sampler, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSamplerParameterIivEXT(GLuint sampler, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSamplerParameterIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSamplerParameterIivEXT(sampler, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSamplerParameterIuivEXT(GLuint sampler, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSamplerParameterIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSamplerParameterIuivEXT(sampler, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBufferEXT(GLenum target, GLenum internalformat, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBufferEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBufferEXT(target, internalformat, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexBufferRangeEXT(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexBufferRangeEXT(target, internalformat, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearColorIiEXT(GLint red, GLint green, GLint blue, GLint alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearColorIiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearColorIiEXT(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearColorIuiEXT(GLuint red, GLuint green, GLuint blue, GLuint alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearColorIuiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearColorIuiEXT(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glAreTexturesResidentEXT(GLsizei n, const GLuint * textures, GLboolean * residences) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glAreTexturesResidentEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cCPGLuint110 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint110);
        for (size_t _iCPGLuint110 = 0; _iCPGLuint110 < _cCPGLuint110; ++_iCPGLuint110) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint110]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glAreTexturesResidentEXT(n, textures, residences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (residences) {
        size_t _cGLboolean = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cGLboolean);
        for (size_t _iGLboolean = 0; _iGLboolean < _cGLboolean; ++_iGLboolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, (residences)[_iGLboolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindTextureEXT(GLenum target, GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindTextureEXT(target, texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteTexturesEXT(GLsizei n, const GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteTexturesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cCPGLuint111 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint111);
        for (size_t _iCPGLuint111 = 0; _iCPGLuint111 < _cCPGLuint111; ++_iCPGLuint111) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint111]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteTexturesEXT(n, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenTexturesEXT(GLsizei n, GLuint * textures) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenTexturesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenTexturesEXT(n, textures);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cPGLuint1 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint1);
        for (size_t _iPGLuint1 = 0; _iPGLuint1 < _cPGLuint1; ++_iPGLuint1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iPGLuint1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsTextureEXT(GLuint texture) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsTextureEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsTextureEXT(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPrioritizeTexturesEXT(GLsizei n, const GLuint * textures, const GLclampf * priorities) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrioritizeTexturesEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (textures) {
        size_t _cCPGLuint112 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint112);
        for (size_t _iCPGLuint112 = 0; _iCPGLuint112 < _cCPGLuint112; ++_iCPGLuint112) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textures)[_iCPGLuint112]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (priorities) {
        size_t _cCGLclampf1 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLclampf1);
        for (size_t _iCGLclampf1 = 0; _iCGLclampf1 < _cCGLclampf1; ++_iCGLclampf1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((priorities)[_iCGLclampf1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrioritizeTexturesEXT(n, textures, priorities);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureNormalEXT(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureNormalEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureNormalEXT(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage1DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage1DEXT(target, levels, internalformat, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage2DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage2DEXT(target, levels, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexStorage3DEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(levels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexStorage3DEXT(target, levels, internalformat, width, height, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureViewEXT(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureViewEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(origtexture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(minlevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(numlevels);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(minlayer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(numlayers);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureViewEXT(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginTransformFeedbackEXT(GLenum primitiveMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginTransformFeedbackEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, primitiveMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginTransformFeedbackEXT(primitiveMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndTransformFeedbackEXT(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndTransformFeedbackEXT_sig);
    trace::localWriter.endEnter();
    _glEndTransformFeedbackEXT();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferRangeEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferRangeEXT(target, index, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferOffsetEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferOffsetEXT(target, index, buffer, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferBaseEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferBaseEXT(target, index, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar * const * varyings, GLenum bufferMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackVaryingsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (varyings) {
        size_t _cCconstGLchar4 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCconstGLchar4);
        for (size_t _iCconstGLchar4 = 0; _iCconstGLchar4 < _cCconstGLchar4; ++_iCconstGLchar4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeString(reinterpret_cast<const char *>((varyings)[_iCconstGLchar4]));
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, bufferMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackVaryingsEXT(program, count, varyings, bufferMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTransformFeedbackVaryingEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTransformFeedbackVaryingEXT(program, index, bufSize, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glArrayElementEXT(GLint i) {
    gltrace::Context *_ctx = gltrace::getContext();
    if (_ctx->userArraysOnBegin) {
        os::log("apitrace: warning: user arrays with glArrayElement not supported (https://git.io/JOM0l)\n");
        _ctx->userArraysOnBegin = false;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glArrayElementEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(i);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glArrayElementEXT(i);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glColorPointerEXT(size, type, stride, count, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glColorPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorPointerEXT(size, type, stride, count, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawArraysEXT(GLenum mode, GLint first, GLsizei count) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        DrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glDrawArraysEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawArraysEXT(mode, first, count);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glEdgeFlagPointerEXT(stride, count, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlagPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEdgeFlagPointerEXT(stride, count, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPointervEXT(GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPointervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPointervEXT(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glIndexPointerEXT(type, stride, count, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glIndexPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexPointerEXT(type, stride, count, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glNormalPointerEXT(type, stride, count, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glNormalPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalPointerEXT(type, stride, count, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glTexCoordPointerEXT(size, type, stride, count, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordPointerEXT(size, type, stride, count, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexPointerEXT(size, type, stride, count, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexPointerEXT(size, type, stride, count, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1dEXT(GLuint index, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1dEXT(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2dEXT(GLuint index, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2dEXT(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3dEXT(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4dEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4dEXT(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1dvEXT(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1dvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2dvEXT(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble115 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble115);
        for (size_t _iCGLdouble115 = 0; _iCGLdouble115 < _cCGLdouble115; ++_iCGLdouble115) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble115]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2dvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3dvEXT(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble116 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble116);
        for (size_t _iCGLdouble116 = 0; _iCGLdouble116 < _cCGLdouble116; ++_iCGLdouble116) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble116]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3dvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4dvEXT(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4dvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble117 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble117);
        for (size_t _iCGLdouble117 = 0; _iCGLdouble117 < _cCGLdouble117; ++_iCGLdouble117) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble117]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4dvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribLPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexAttribLPointerEXT(index, size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribLPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(pointer, size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribLPointerEXT(index, size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribLdvEXT(GLuint index, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribLdvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribLdvEXT(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginVertexShaderEXT(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginVertexShaderEXT_sig);
    trace::localWriter.endEnter();
    _glBeginVertexShaderEXT();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndVertexShaderEXT(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndVertexShaderEXT_sig);
    trace::localWriter.endEnter();
    _glEndVertexShaderEXT();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVertexShaderEXT(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVertexShaderEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVertexShaderEXT(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGenVertexShadersEXT(GLuint range) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGenVertexShadersEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGenVertexShadersEXT(range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteVertexShaderEXT(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteVertexShaderEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteVertexShaderEXT(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShaderOp1EXT(GLenum op, GLuint res, GLuint arg1) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderOp1EXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(arg1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderOp1EXT(op, res, arg1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShaderOp2EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderOp2EXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(arg2);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderOp2EXT(op, res, arg1, arg2);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glShaderOp3EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3) {
    unsigned _call = trace::localWriter.beginEnter(&_glShaderOp3EXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, op);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(arg1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(arg2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(arg3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glShaderOp3EXT(op, res, arg1, arg2, arg3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSwizzleEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW) {
    unsigned _call = trace::localWriter.beginEnter(&_glSwizzleEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(in);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outW);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSwizzleEXT(res, in, outX, outY, outZ, outW);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWriteMaskEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW) {
    unsigned _call = trace::localWriter.beginEnter(&_glWriteMaskEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(in);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, outW);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWriteMaskEXT(res, in, outX, outY, outZ, outW);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInsertComponentEXT(GLuint res, GLuint src, GLuint num) {
    unsigned _call = trace::localWriter.beginEnter(&_glInsertComponentEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(num);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInsertComponentEXT(res, src, num);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glExtractComponentEXT(GLuint res, GLuint src, GLuint num) {
    unsigned _call = trace::localWriter.beginEnter(&_glExtractComponentEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(res);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(src);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(num);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glExtractComponentEXT(res, src, num);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGenSymbolsEXT(GLenum datatype, GLenum storagetype, GLenum range, GLuint components) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGenSymbolsEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, datatype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, storagetype);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, range);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(components);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGenSymbolsEXT(datatype, storagetype, range, components);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glSetInvariantEXT(GLuint id, GLenum type, const GLvoid * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glSetInvariantEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSetInvariantEXT(id, type, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSetLocalConstantEXT(GLuint id, GLenum type, const GLvoid * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glSetLocalConstantEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSetLocalConstantEXT(id, type, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantbvEXT(GLuint id, const GLbyte * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantbvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantbvEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantsvEXT(GLuint id, const GLshort * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantsvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantsvEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantivEXT(GLuint id, const GLint * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantivEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantfvEXT(GLuint id, const GLfloat * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantfvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantfvEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantdvEXT(GLuint id, const GLdouble * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantdvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantdvEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantubvEXT(GLuint id, const GLubyte * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantubvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantubvEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantusvEXT(GLuint id, const GLushort * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantusvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantusvEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantuivEXT(GLuint id, const GLuint * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantuivEXT(id, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVariantPointerEXT(GLuint id, GLenum type, GLuint stride, const GLvoid * addr) {
    unsigned _call = trace::localWriter.beginEnter(&_glVariantPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)addr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVariantPointerEXT(id, type, stride, addr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEnableVariantClientStateEXT(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glEnableVariantClientStateEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEnableVariantClientStateEXT(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDisableVariantClientStateEXT(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glDisableVariantClientStateEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDisableVariantClientStateEXT(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glBindLightParameterEXT(GLenum light, GLenum value) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glBindLightParameterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glBindLightParameterEXT(light, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glBindMaterialParameterEXT(GLenum face, GLenum value) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glBindMaterialParameterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glBindMaterialParameterEXT(face, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glBindTexGenParameterEXT(GLenum unit, GLenum coord, GLenum value) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glBindTexGenParameterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, unit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glBindTexGenParameterEXT(unit, coord, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glBindTextureUnitParameterEXT(GLenum unit, GLenum value) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glBindTextureUnitParameterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, unit);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glBindTextureUnitParameterEXT(unit, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glBindParameterEXT(GLenum value) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glBindParameterEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glBindParameterEXT(value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsVariantEnabledEXT(GLuint id, GLenum cap) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsVariantEnabledEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, cap);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsVariantEnabledEXT(id, cap);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetVariantBooleanvEXT(GLuint id, GLenum value, GLboolean * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVariantBooleanvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVariantBooleanvEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVariantIntegervEXT(GLuint id, GLenum value, GLint * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVariantIntegervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVariantIntegervEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVariantFloatvEXT(GLuint id, GLenum value, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVariantFloatvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVariantFloatvEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVariantPointervEXT(GLuint id, GLenum value, GLvoid * * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVariantPointervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVariantPointervEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInvariantBooleanvEXT(GLuint id, GLenum value, GLboolean * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInvariantBooleanvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInvariantBooleanvEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInvariantIntegervEXT(GLuint id, GLenum value, GLint * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInvariantIntegervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInvariantIntegervEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetInvariantFloatvEXT(GLuint id, GLenum value, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetInvariantFloatvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetInvariantFloatvEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetLocalConstantBooleanvEXT(GLuint id, GLenum value, GLboolean * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetLocalConstantBooleanvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetLocalConstantBooleanvEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetLocalConstantIntegervEXT(GLuint id, GLenum value, GLint * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetLocalConstantIntegervEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetLocalConstantIntegervEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetLocalConstantFloatvEXT(GLuint id, GLenum value, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetLocalConstantFloatvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetLocalConstantFloatvEXT(id, value, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexWeightfEXT(GLfloat weight) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexWeightfEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(weight);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexWeightfEXT(weight);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexWeightfvEXT(const GLfloat * weight) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexWeightfvEXT_sig);
    trace::localWriter.beginArg(0);
    if (weight) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*weight);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexWeightfvEXT(weight);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexWeightPointerEXT(GLsizei size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexWeightPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexWeightPointerEXT(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLsync APIENTRY glImportSyncEXT(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags) {
    GLsync _result;
    unsigned _call = trace::localWriter.beginEnter(&_glImportSyncEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, external_sync_type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(external_sync);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glImportSyncEXT(external_sync_type, external_sync, flags);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFrameTerminatorGREMEDY(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrameTerminatorGREMEDY_sig);
    trace::localWriter.endEnter();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStringMarkerGREMEDY(GLsizei len, const GLvoid * string) {
    unsigned _call = trace::localWriter.beginEnter(&_glStringMarkerGREMEDY_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string), len > 0 ? len : strlen((const char *)string));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glImageTransformParameteriHP(GLenum target, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glImageTransformParameteriHP_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glImageTransformParameteriHP(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glImageTransformParameterfHP(GLenum target, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glImageTransformParameterfHP_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glImageTransformParameterfHP(target, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glImageTransformParameterivHP(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glImageTransformParameterivHP_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint107 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint107);
        for (size_t _iCGLint107 = 0; _iCGLint107 < _cCGLint107; ++_iCGLint107) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint107]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glImageTransformParameterivHP(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glImageTransformParameterfvHP(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glImageTransformParameterfvHP_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat150 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat150);
        for (size_t _iCGLfloat150 = 0; _iCGLfloat150 < _cCGLfloat150; ++_iCGLfloat150) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat150]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glImageTransformParameterfvHP(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetImageTransformParameterivHP(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetImageTransformParameterivHP_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetImageTransformParameterivHP(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetImageTransformParameterfvHP(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetImageTransformParameterfvHP_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetImageTransformParameterfvHP(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiModeDrawArraysIBM(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei drawcount, GLint modestride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawArraysParams _params;
        _params.first = first;
        _params.count = count;
        _params.drawcount = drawcount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiModeDrawArraysIBM_sig);
    trace::localWriter.beginArg(0);
    if (mode) {
        size_t _cCGLenum13 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLenum13);
        for (size_t _iCGLenum13 = 0; _iCGLenum13 < _cCGLenum13; ++_iCGLenum13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum1_sig, (mode)[_iCGLenum13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (first) {
        size_t _cCGLint108 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLint108);
        for (size_t _iCGLint108 = 0; _iCGLint108 < _cCGLint108; ++_iCGLint108) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((first)[_iCGLint108]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (count) {
        size_t _cCGLsizei10 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei10);
        for (size_t _iCGLsizei10 = 0; _iCGLsizei10 < _cCGLsizei10; ++_iCGLsizei10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(modestride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiModeDrawArraysIBM(mode, first, count, drawcount, modestride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiModeDrawElementsIBM(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei drawcount, GLint modestride) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        MultiDrawElementsParams _params;
        _params.count = count;
        _params.type = type;
        _params.indices = indices;
        _params.drawcount = drawcount;
        GLuint _count = _glDraw_count(_ctx, _params);
        _trace_user_arrays(_ctx, _count);
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiModeDrawElementsIBM_sig);
    trace::localWriter.beginArg(0);
    if (mode) {
        size_t _cCGLenum14 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLenum14);
        for (size_t _iCGLenum14 = 0; _iCGLenum14 < _cCGLenum14; ++_iCGLenum14) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum1_sig, (mode)[_iCGLenum14]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (count) {
        size_t _cCGLsizei11 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCGLsizei11);
        for (size_t _iCGLsizei11 = 0; _iCGLsizei11 < _cCGLsizei11; ++_iCGLsizei11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((count)[_iCGLsizei11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (indices) {
        size_t _cCconstGLvoid174 = drawcount > 0 ? drawcount : 0;
        trace::localWriter.beginArray(_cCconstGLvoid174);
        for (size_t _iCconstGLvoid174 = 0; _iCconstGLvoid174 < _cCconstGLvoid174; ++_iCconstGLvoid174) {
            trace::localWriter.beginElement();
    switch (_element_array_buffer_binding()) {
    default:
    trace::localWriter.writePointer((uintptr_t)static_cast<const GLvoid *>((indices)[_iCconstGLvoid174]));
        break;
    case 0:
    trace::localWriter.writeBlob(static_cast<const GLvoid *>((indices)[_iCconstGLvoid174]), count[_iCconstGLvoid174]*_gl_type_size(type));
        break;
    }
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(drawcount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(modestride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiModeDrawElementsIBM(mode, count, type, indices, drawcount, modestride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorPointerListIBM(size, type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColorPointerListIBM(size, type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEdgeFlagPointerListIBM(GLint stride, const GLboolean * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlagPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEdgeFlagPointerListIBM(stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordPointerListIBM(GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordPointerListIBM(type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexPointerListIBM(GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexPointerListIBM(type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalPointerListIBM(GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalPointerListIBM(type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordPointerListIBM(size, type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid * * pointer, GLint ptrstride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexPointerListIBM_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(ptrstride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexPointerListIBM(size, type, stride, pointer, ptrstride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageMultisampleIMG_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageMultisampleIMG(target, samples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture2DMultisampleIMG_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture2DMultisampleIMG(target, attachment, textarget, texture, level, samples);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparateINGR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparateINGR(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSyncTextureINTEL(GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glSyncTextureINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSyncTextureINTEL(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUnmapTexture2DINTEL(GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapTexture2DINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUnmapTexture2DINTEL(texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapTexture2DINTEL(GLuint texture, GLint level, GLbitfield access, GLint * stride, GLenum * layout) {
    GLvoid * _result;
    if (access & GL_MAP_WRITE_BIT) {
        os::log("apitrace: warning: GL_INTEL_map_texture not fully supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMapTexture2DINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield4_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapTexture2DINTEL(texture, level, access, stride, layout);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (stride) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*stride);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (layout) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *layout);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVertexPointervINTEL(GLint size, GLenum type, const GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexPointervINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexPointervINTEL(size, type, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalPointervINTEL(GLenum type, const GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalPointervINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalPointervINTEL(type, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorPointervINTEL(GLint size, GLenum type, const GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorPointervINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorPointervINTEL(size, type, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordPointervINTEL(GLint size, GLenum type, const GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordPointervINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordPointervINTEL(size, type, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginPerfQueryINTEL(GLuint queryHandle) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginPerfQueryINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryHandle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginPerfQueryINTEL(queryHandle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCreatePerfQueryINTEL(GLuint queryId, GLuint * queryHandle) {
    unsigned _call = trace::localWriter.beginEnter(&_glCreatePerfQueryINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryId);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCreatePerfQueryINTEL(queryId, queryHandle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (queryHandle) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*queryHandle);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeletePerfQueryINTEL(GLuint queryHandle) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeletePerfQueryINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryHandle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeletePerfQueryINTEL(queryHandle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndPerfQueryINTEL(GLuint queryHandle) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndPerfQueryINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryHandle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndPerfQueryINTEL(queryHandle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFirstPerfQueryIdINTEL(GLuint * queryId) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFirstPerfQueryIdINTEL_sig);
    trace::localWriter.endEnter();
    _glGetFirstPerfQueryIdINTEL(queryId);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    if (queryId) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*queryId);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNextPerfQueryIdINTEL(GLuint queryId, GLuint * nextQueryId) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNextPerfQueryIdINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryId);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNextPerfQueryIdINTEL(queryId, nextQueryId);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (nextQueryId) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*nextQueryId);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfCounterInfoINTEL(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfCounterInfoINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(counterId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(counterNameLength);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(counterDescLength);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfCounterInfoINTEL(queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(counterName));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(counterDesc));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (counterOffset) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*counterOffset);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    if (counterDataSize) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*counterDataSize);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    if (counterTypeEnum) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*counterTypeEnum);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    if (counterDataTypeEnum) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*counterDataTypeEnum);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    if (rawCounterMaxValue) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rawCounterMaxValue);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfQueryDataINTEL(GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid * data, GLuint * bytesWritten) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfQueryDataINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryHandle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(flags);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(dataSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfQueryDataINTEL(queryHandle, flags, dataSize, data, bytesWritten);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (bytesWritten) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*bytesWritten);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfQueryIdByNameINTEL(GLchar * queryName, GLuint * queryId) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfQueryIdByNameINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeString(reinterpret_cast<const char *>(queryName));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfQueryIdByNameINTEL(queryName, queryId);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (queryId) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*queryId);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPerfQueryInfoINTEL(GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPerfQueryInfoINTEL_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(queryId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(queryNameLength);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPerfQueryInfoINTEL(queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(queryName));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (dataSize) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*dataSize);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (noCounters) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*noCounters);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (noInstances) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*noInstances);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (capsMask) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*capsMask);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendBarrierKHR(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendBarrierKHR_sig);
    trace::localWriter.endEnter();
    _glBlendBarrierKHR();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageControl_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cCGLuint76 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint76);
        for (size_t _iCGLuint76 = 0; _iCGLuint76 < _cCGLuint76; ++_iCGLuint76) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCGLuint76]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, enabled);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageControl(source, type, severity, count, ids, enabled);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageInsert_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(buf), ((length) >= 0 ? (length) : strlen(buf)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageInsert(source, type, id, severity, length, buf);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageCallback(GLDEBUGPROC callback, const void * userParam) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageCallback_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)callback);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)userParam);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageCallback(callback, userParam);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetDebugMessageLog_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetDebugMessageLog(count, bufsize, sources, types, ids, severities, lengths, messageLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (sources) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (sources)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (types) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (types)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cGLuint = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (severities) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (severities)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (lengths) {
        size_t _cGLsizei = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLsizei);
        for (size_t _iGLsizei = 0; _iGLsizei < _cGLsizei; ++_iGLsizei) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((lengths)[_iGLsizei]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeString(reinterpret_cast<const char *>(messageLog), _glGetDebugMessageLog_length(messageLog, lengths, _result));
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar * message) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushDebugGroup_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(message), ((length) >= 0 ? (length) : strlen(message)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushDebugGroup(source, id, length, message);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopDebugGroup(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopDebugGroup_sig);
    trace::localWriter.endEnter();
    _glPopDebugGroup();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glObjectLabel_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) >= 0 ? (length) : strlen(label)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glObjectLabel(identifier, name, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectLabel_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectLabel(identifier, name, bufSize, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) ? *(length) : strlen(label)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glObjectPtrLabel(const void * ptr, GLsizei length, const GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glObjectPtrLabel_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)ptr);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) >= 0 ? (length) : strlen(label)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glObjectPtrLabel(ptr, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectPtrLabel(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectPtrLabel_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)ptr);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectPtrLabel(ptr, bufSize, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) ? *(length) : strlen(label)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageControlKHR(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageControlKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cCGLuint77 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint77);
        for (size_t _iCGLuint77 = 0; _iCGLuint77 < _cCGLuint77; ++_iCGLuint77) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCGLuint77]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, enabled);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageControlKHR(source, type, severity, count, ids, enabled);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageInsertKHR(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageInsertKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, severity);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeString(reinterpret_cast<const char *>(buf), ((length) >= 0 ? (length) : strlen(buf)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageInsertKHR(source, type, id, severity, length, buf);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDebugMessageCallbackKHR(GLDEBUGPROCKHR callback, const void * userParam) {
    unsigned _call = trace::localWriter.beginEnter(&_glDebugMessageCallbackKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)callback);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)userParam);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDebugMessageCallbackKHR(callback, userParam);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGetDebugMessageLogKHR(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetDebugMessageLogKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetDebugMessageLogKHR(count, bufsize, sources, types, ids, severities, lengths, messageLog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (sources) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (sources)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (types) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (types)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (ids) {
        size_t _cGLuint = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (severities) {
        size_t _cGLenum = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLenum);
        for (size_t _iGLenum = 0; _iGLenum < _cGLenum; ++_iGLenum) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (severities)[_iGLenum]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (lengths) {
        size_t _cGLsizei = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cGLsizei);
        for (size_t _iGLsizei = 0; _iGLsizei < _cGLsizei; ++_iGLsizei) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((lengths)[_iGLsizei]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeString(reinterpret_cast<const char *>(messageLog), _glGetDebugMessageLog_length(messageLog, lengths, _result));
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPushDebugGroupKHR(GLenum source, GLuint id, GLsizei length, const GLchar * message) {
    unsigned _call = trace::localWriter.beginEnter(&_glPushDebugGroupKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, source);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(message), ((length) >= 0 ? (length) : strlen(message)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPushDebugGroupKHR(source, id, length, message);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPopDebugGroupKHR(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPopDebugGroupKHR_sig);
    trace::localWriter.endEnter();
    _glPopDebugGroupKHR();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glObjectLabelKHR(GLenum identifier, GLuint name, GLsizei length, const GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glObjectLabelKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) >= 0 ? (length) : strlen(label)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glObjectLabelKHR(identifier, name, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectLabelKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, identifier);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(name);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectLabelKHR(identifier, name, bufSize, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) ? *(length) : strlen(label)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glObjectPtrLabelKHR(const void * ptr, GLsizei length, const GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glObjectPtrLabelKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)ptr);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) >= 0 ? (length) : strlen(label)));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glObjectPtrLabelKHR(ptr, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetObjectPtrLabelKHR(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetObjectPtrLabelKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)ptr);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetObjectPtrLabelKHR(ptr, bufSize, length, label);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(label), ((length) ? *(length) : strlen(label)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPointervKHR(GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPointervKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPointervKHR(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glGetGraphicsResetStatus(void) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetGraphicsResetStatus_sig);
    trace::localWriter.endEnter();
    _result = _glGetGraphicsResetStatus();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glReadnPixels_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadnPixels(x, y, width, height, format, type, bufSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(7);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformfv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformfv(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = bufSize/sizeof(GLfloat) > 0 ? bufSize/sizeof(GLfloat) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformiv(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = bufSize/sizeof(GLint) > 0 ? bufSize/sizeof(GLint) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformuiv_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformuiv(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint = bufSize/sizeof(GLuint) > 0 ? bufSize/sizeof(GLuint) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glGetGraphicsResetStatusKHR(void) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetGraphicsResetStatusKHR_sig);
    trace::localWriter.endEnter();
    _result = _glGetGraphicsResetStatusKHR();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glReadnPixelsKHR(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glReadnPixelsKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadnPixelsKHR(x, y, width, height, format, type, bufSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(7);
    trace::localWriter.writePointer((uintptr_t)data);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformfvKHR(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformfvKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformfvKHR(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = bufSize/sizeof(GLfloat) > 0 ? bufSize/sizeof(GLfloat) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformivKHR(GLuint program, GLint location, GLsizei bufSize, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformivKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformivKHR(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = bufSize/sizeof(GLint) > 0 ? bufSize/sizeof(GLint) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetnUniformuivKHR(GLuint program, GLint location, GLsizei bufSize, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetnUniformuivKHR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetnUniformuivKHR(program, location, bufSize, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLuint = bufSize/sizeof(GLuint) > 0 ? bufSize/sizeof(GLuint) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glNewBufferRegion(GLenum type) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glNewBufferRegion_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum3_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glNewBufferRegion(type);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteBufferRegion(GLuint region) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteBufferRegion_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(region);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteBufferRegion(region);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReadBufferRegion(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glReadBufferRegion_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(region);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadBufferRegion(region, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBufferRegion(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBufferRegion_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(region);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(xDest);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(yDest);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBufferRegion(region, x, y, width, height, xDest, yDest);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glBufferRegionEnabled(void) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glBufferRegionEnabled_sig);
    trace::localWriter.endEnter();
    _result = _glBufferRegionEnabled();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glResizeBuffersMESA(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glResizeBuffersMESA_sig);
    trace::localWriter.endEnter();
    _glResizeBuffersMESA();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2dMESA(GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2dMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2dMESA(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2dvMESA(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2dvMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble119 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble119);
        for (size_t _iCGLdouble119 = 0; _iCGLdouble119 < _cCGLdouble119; ++_iCGLdouble119) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble119]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2dvMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2fMESA(GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2fMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2fMESA(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2fvMESA(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2fvMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat151 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat151);
        for (size_t _iCGLfloat151 = 0; _iCGLfloat151 < _cCGLfloat151; ++_iCGLfloat151) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat151]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2fvMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2iMESA(GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2iMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2iMESA(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2ivMESA(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2ivMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint109 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint109);
        for (size_t _iCGLint109 = 0; _iCGLint109 < _cCGLint109; ++_iCGLint109) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint109]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2ivMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2sMESA(GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2sMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2sMESA(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos2svMESA(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos2svMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort50 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort50);
        for (size_t _iCGLshort50 = 0; _iCGLshort50 < _cCGLshort50; ++_iCGLshort50) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort50]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos2svMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3dMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3dMESA(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3dvMESA(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3dvMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble120 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble120);
        for (size_t _iCGLdouble120 = 0; _iCGLdouble120 < _cCGLdouble120; ++_iCGLdouble120) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble120]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3dvMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3fMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3fMESA(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3fvMESA(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3fvMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat152 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat152);
        for (size_t _iCGLfloat152 = 0; _iCGLfloat152 < _cCGLfloat152; ++_iCGLfloat152) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat152]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3fvMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3iMESA(GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3iMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3iMESA(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3ivMESA(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3ivMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint110 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint110);
        for (size_t _iCGLint110 = 0; _iCGLint110 < _cCGLint110; ++_iCGLint110) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint110]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3ivMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3sMESA(GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3sMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3sMESA(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos3svMESA(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos3svMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort51 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort51);
        for (size_t _iCGLshort51 = 0; _iCGLshort51 < _cCGLshort51; ++_iCGLshort51) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort51]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos3svMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4dMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4dMESA(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4dvMESA(const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4dvMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLdouble121 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble121);
        for (size_t _iCGLdouble121 = 0; _iCGLdouble121 < _cCGLdouble121; ++_iCGLdouble121) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble121]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4dvMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4fMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4fMESA(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4fvMESA(const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4fvMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLfloat153 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat153);
        for (size_t _iCGLfloat153 = 0; _iCGLfloat153 < _cCGLfloat153; ++_iCGLfloat153) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat153]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4fvMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4iMESA(GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4iMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4iMESA(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4ivMESA(const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4ivMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLint111 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint111);
        for (size_t _iCGLint111 = 0; _iCGLint111 < _cCGLint111; ++_iCGLint111) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint111]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4ivMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4sMESA_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4sMESA(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWindowPos4svMESA(const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glWindowPos4svMESA_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLshort52 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort52);
        for (size_t _iCGLshort52 = 0; _iCGLshort52 < _cCGLshort52; ++_iCGLshort52) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort52]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWindowPos4svMESA(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginConditionalRenderNVX(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginConditionalRenderNVX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginConditionalRenderNVX(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndConditionalRenderNVX(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndConditionalRenderNVX_sig);
    trace::localWriter.endEnter();
    _glEndConditionalRenderNVX();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawArraysIndirectBindlessNV(GLenum mode, const GLvoid * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawArraysIndirectBindlessNV: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawArraysIndirectBindlessNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(drawCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(vertexBufferCount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawArraysIndirectBindlessNV(mode, indirect, drawCount, stride, vertexBufferCount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiDrawElementsIndirectBindlessNV(GLenum mode, GLenum type, const GLvoid * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);
    if (_need_user_arrays(_ctx)) {
        os::log("apitrace: warning: glMultiDrawElementsIndirectBindlessNV: indirect user arrays not supported\n");
    }
    unsigned _call = trace::localWriter.beginEnter(&_glMultiDrawElementsIndirectBindlessNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)indirect);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(drawCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(vertexBufferCount);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiDrawElementsIndirectBindlessNV(mode, type, indirect, drawCount, stride, vertexBufferCount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint64 APIENTRY glGetTextureHandleNV(GLuint texture) {
    GLuint64 _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureHandleNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetTextureHandleNV(texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint64 APIENTRY glGetTextureSamplerHandleNV(GLuint texture, GLuint sampler) {
    GLuint64 _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetTextureSamplerHandleNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetTextureSamplerHandleNV(texture, sampler);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMakeTextureHandleResidentNV(GLuint64 handle) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeTextureHandleResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeTextureHandleResidentNV(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeTextureHandleNonResidentNV(GLuint64 handle) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeTextureHandleNonResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeTextureHandleNonResidentNV(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint64 APIENTRY glGetImageHandleNV(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format) {
    GLuint64 _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetImageHandleNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, layered);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(layer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetImageHandleNV(texture, level, layered, layer, format);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMakeImageHandleResidentNV(GLuint64 handle, GLenum access) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeImageHandleResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeImageHandleResidentNV(handle, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeImageHandleNonResidentNV(GLuint64 handle) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeImageHandleNonResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeImageHandleNonResidentNV(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformHandleui64NV(GLint location, GLuint64 value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformHandleui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformHandleui64NV(location, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformHandleui64vNV(GLint location, GLsizei count, const GLuint64 * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformHandleui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCPGLuint642 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint642);
        for (size_t _iCPGLuint642 = 0; _iCPGLuint642 < _cCPGLuint642; ++_iCPGLuint642) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCPGLuint642]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformHandleui64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformHandleui64NV(GLuint program, GLint location, GLuint64 value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformHandleui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformHandleui64NV(program, location, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformHandleui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64 * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformHandleui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (values) {
        size_t _cCPGLuint643 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCPGLuint643);
        for (size_t _iCPGLuint643 = 0; _iCPGLuint643 < _cCPGLuint643; ++_iCPGLuint643) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((values)[_iCPGLuint643]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformHandleui64vNV(program, location, count, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsTextureHandleResidentNV(GLuint64 handle) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsTextureHandleResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsTextureHandleResidentNV(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsImageHandleResidentNV(GLuint64 handle) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsImageHandleResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(handle);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsImageHandleResidentNV(handle);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBlendParameteriNV(GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendParameteriNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendParameteriNV(pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendBarrierNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendBarrierNV_sig);
    trace::localWriter.endEnter();
    _glBlendBarrierNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginConditionalRenderNV(GLuint id, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginConditionalRenderNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginConditionalRenderNV(id, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndConditionalRenderNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndConditionalRenderNV_sig);
    trace::localWriter.endEnter();
    _glEndConditionalRenderNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyImageSubDataNV(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyImageSubDataNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(srcName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, srcTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(srcY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(srcZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(dstName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dstTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(dstLevel);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(dstX);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeSInt(dstY);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeSInt(dstZ);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(13);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(14);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyImageSubDataNV(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverageMaskNV(GLboolean mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverageMaskNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverageMaskNV(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverageOperationNV(GLenum operation) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverageOperationNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, operation);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverageOperationNV(operation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangedNV(GLdouble zNear, GLdouble zFar) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(zNear);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(zFar);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangedNV(zNear, zFar);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClearDepthdNV(GLdouble depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearDepthdNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearDepthdNV(depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthBoundsdNV(GLdouble zmin, GLdouble zmax) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthBoundsdNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(zmin);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(zmax);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthBoundsdNV(zmin, zmax);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawBuffersNV(GLsizei n, const GLenum * bufs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawBuffersNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (bufs) {
        size_t _cCGLenum15 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLenum15);
        for (size_t _iCGLenum15 = 0; _iCGLenum15 < _cCGLenum15; ++_iCGLenum15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (bufs)[_iCGLenum15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawBuffersNV(n, bufs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTextureNV(GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTextureNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(sampler);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(x1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(y1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(s0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(t0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(s1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeFloat(t1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTextureNV(texture, sampler, x0, y0, x1, y1, z, s0, t0, s1, t1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapControlPointsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, packed);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapControlPointsNV(target, index, type, ustride, vstride, uorder, vorder, packed, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapParameterivNV(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapParameterivNV(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMapParameterfvNV(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glMapParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMapParameterfvNV(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapControlPointsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, packed);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapControlPointsNV(target, index, type, ustride, vstride, packed, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(6);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapParameterivNV(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapParameterivNV(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapParameterfvNV(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapParameterfvNV(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapAttribParameterivNV(GLenum target, GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapAttribParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapAttribParameterivNV(target, index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMapAttribParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMapAttribParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMapAttribParameterfvNV(target, index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEvalMapsNV(GLenum target, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glEvalMapsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEvalMapsNV(target, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetMultisamplefvNV(GLenum pname, GLuint index, GLfloat * val) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetMultisamplefvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetMultisamplefvNV(pname, index, val);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (val) {
        size_t _cGLfloat = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((val)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleMaskIndexedNV(GLuint index, GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleMaskIndexedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleMaskIndexedNV(index, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexRenderbufferNV(GLenum target, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexRenderbufferNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexRenderbufferNV(target, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteFencesNV(GLsizei n, const GLuint * fences) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteFencesNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (fences) {
        size_t _cCPGLuint181 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint181);
        for (size_t _iCPGLuint181 = 0; _iCPGLuint181 < _cCPGLuint181; ++_iCPGLuint181) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((fences)[_iCPGLuint181]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteFencesNV(n, fences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenFencesNV(GLsizei n, GLuint * fences) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenFencesNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenFencesNV(n, fences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (fences) {
        size_t _cPGLuint18 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint18);
        for (size_t _iPGLuint18 = 0; _iPGLuint18 < _cPGLuint18; ++_iPGLuint18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((fences)[_iPGLuint18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsFenceNV(GLuint fence) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsFenceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsFenceNV(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glTestFenceNV(GLuint fence) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glTestFenceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glTestFenceNV(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetFenceivNV(GLuint fence, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFenceivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFenceivNV(fence, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFinishFenceNV(GLuint fence) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinishFenceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFinishFenceNV(fence);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSetFenceNV(GLuint fence, GLenum condition) {
    unsigned _call = trace::localWriter.beginEnter(&_glSetFenceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fence);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, condition);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSetFenceNV(fence, condition);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramNamedParameter4fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramNamedParameter4fNV(id, len, name, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramNamedParameter4dNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramNamedParameter4dNV(id, len, name, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramNamedParameter4fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat155 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat155);
        for (size_t _iCGLfloat155 = 0; _iCGLfloat155 < _cCGLfloat155; ++_iCGLfloat155) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat155]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramNamedParameter4fvNV(id, len, name, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramNamedParameter4dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLdouble122 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble122);
        for (size_t _iCGLdouble122 = 0; _iCGLdouble122 < _cCGLdouble122; ++_iCGLdouble122) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble122]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramNamedParameter4dvNV(id, len, name, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramNamedParameterdvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), len);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramNamedParameterdvNV(id, len, name, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramNamedParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), len);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramNamedParameterfvNV(id, len, name, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlitFramebufferNV(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlitFramebufferNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(srcX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(srcY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(srcX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(srcY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(dstX0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(dstY0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(dstX1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(dstY1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield1_sig, mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlitFramebufferNV(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverageModulationTableNV(GLsizei n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverageModulationTableNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat156 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLfloat156);
        for (size_t _iCGLfloat156 = 0; _iCGLfloat156 < _cCGLfloat156; ++_iCGLfloat156) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat156]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverageModulationTableNV(n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCoverageModulationTableNV(GLsizei bufsize, GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetCoverageModulationTableNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(bufsize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCoverageModulationTableNV(bufsize, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cGLfloat = bufsize > 0 ? bufsize : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverageModulationNV(GLenum components) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverageModulationNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, components);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverageModulationNV(components);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageMultisampleCoverageNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(coverageSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(colorSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageMultisampleCoverageNV(target, coverageSamples, colorSamples, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramVertexLimitNV(GLenum target, GLint limit) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramVertexLimitNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(limit);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramVertexLimitNV(target, limit);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureFaceEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureFaceEXT(target, attachment, texture, level, face);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameterI4iNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameterI4iNV(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameterI4ivNV(GLenum target, GLuint index, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameterI4ivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint113 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint113);
        for (size_t _iCGLint113 = 0; _iCGLint113 < _cCGLint113; ++_iCGLint113) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint113]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameterI4ivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParametersI4ivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint114 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint114);
        for (size_t _iCGLint114 = 0; _iCGLint114 < _cCGLint114; ++_iCGLint114) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint114]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParametersI4ivNV(target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameterI4uiNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameterI4uiNV(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParameterI4uivNV(GLenum target, GLuint index, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParameterI4uivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLuint78 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint78);
        for (size_t _iCGLuint78 = 0; _iCGLuint78 < _cCGLuint78; ++_iCGLuint78) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint78]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParameterI4uivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramLocalParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramLocalParametersI4uivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLuint79 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint79);
        for (size_t _iCGLuint79 = 0; _iCGLuint79 < _cCGLuint79; ++_iCGLuint79) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint79]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramLocalParametersI4uivNV(target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameterI4iNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameterI4iNV(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameterI4ivNV(GLenum target, GLuint index, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameterI4ivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint115 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint115);
        for (size_t _iCGLint115 = 0; _iCGLint115 < _cCGLint115; ++_iCGLint115) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint115]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameterI4ivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParametersI4ivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint116 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint116);
        for (size_t _iCGLint116 = 0; _iCGLint116 < _cCGLint116; ++_iCGLint116) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint116]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParametersI4ivNV(target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameterI4uiNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameterI4uiNV(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParameterI4uivNV(GLenum target, GLuint index, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParameterI4uivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLuint80 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint80);
        for (size_t _iCGLuint80 = 0; _iCGLuint80 < _cCGLuint80; ++_iCGLuint80) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint80]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParameterI4uivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramEnvParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramEnvParametersI4uivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLuint81 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint81);
        for (size_t _iCGLuint81 = 0; _iCGLuint81 < _cCGLuint81; ++_iCGLuint81) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint81]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramEnvParametersI4uivNV(target, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramLocalParameterIivNV(GLenum target, GLuint index, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramLocalParameterIivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramLocalParameterIivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramLocalParameterIuivNV(GLenum target, GLuint index, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramLocalParameterIuivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramLocalParameterIuivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramEnvParameterIivNV(GLenum target, GLuint index, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramEnvParameterIivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramEnvParameterIivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramEnvParameterIuivNV(GLenum target, GLuint index, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramEnvParameterIuivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramEnvParameterIuivNV(target, index, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramSubroutineParametersuivNV(GLenum target, GLsizei count, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramSubroutineParametersuivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLuint82 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint82);
        for (size_t _iCGLuint82 = 0; _iCGLuint82 < _cCGLuint82; ++_iCGLuint82) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint82]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramSubroutineParametersuivNV(target, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramSubroutineParameteruivNV(GLenum target, GLuint index, GLuint * param) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramSubroutineParameteruivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramSubroutineParameteruivNV(target, index, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (param) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*param);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1i64NV(GLint location, GLint64EXT x) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1i64NV(location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2i64NV(GLint location, GLint64EXT x, GLint64EXT y) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2i64NV(location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3i64NV(location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4i64NV(location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1i64vNV(GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint64EXT = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint64EXT);
        for (size_t _iCGLint64EXT = 0; _iCGLint64EXT < _cCGLint64EXT; ++_iCGLint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1i64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2i64vNV(GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint64EXT1 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT1);
        for (size_t _iCGLint64EXT1 = 0; _iCGLint64EXT1 < _cCGLint64EXT1; ++_iCGLint64EXT1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2i64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3i64vNV(GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint64EXT2 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT2);
        for (size_t _iCGLint64EXT2 = 0; _iCGLint64EXT2 < _cCGLint64EXT2; ++_iCGLint64EXT2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3i64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4i64vNV(GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint64EXT3 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT3);
        for (size_t _iCGLint64EXT3 = 0; _iCGLint64EXT3 < _cCGLint64EXT3; ++_iCGLint64EXT3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4i64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1ui64NV(GLint location, GLuint64EXT x) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1ui64NV(location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2ui64NV(location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3ui64NV(location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4ui64NV(location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform1ui64vNV(GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform1ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint64EXT = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT);
        for (size_t _iCGLuint64EXT = 0; _iCGLuint64EXT < _cCGLuint64EXT; ++_iCGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform1ui64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform2ui64vNV(GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform2ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint64EXT1 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT1);
        for (size_t _iCGLuint64EXT1 = 0; _iCGLuint64EXT1 < _cCGLuint64EXT1; ++_iCGLuint64EXT1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform2ui64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform3ui64vNV(GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform3ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint64EXT2 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT2);
        for (size_t _iCGLuint64EXT2 = 0; _iCGLuint64EXT2 < _cCGLuint64EXT2; ++_iCGLuint64EXT2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform3ui64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniform4ui64vNV(GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniform4ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint64EXT3 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT3);
        for (size_t _iCGLuint64EXT3 = 0; _iCGLuint64EXT3 < _cCGLuint64EXT3; ++_iCGLuint64EXT3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniform4ui64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformi64vNV(GLuint program, GLint location, GLint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformi64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformi64vNV(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1i64NV(GLuint program, GLint location, GLint64EXT x) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1i64NV(program, location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2i64NV(program, location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3i64NV(program, location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4i64NV(program, location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint64EXT4 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint64EXT4);
        for (size_t _iCGLint64EXT4 = 0; _iCGLint64EXT4 < _cCGLint64EXT4; ++_iCGLint64EXT4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1i64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint64EXT5 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT5);
        for (size_t _iCGLint64EXT5 = 0; _iCGLint64EXT5 < _cCGLint64EXT5; ++_iCGLint64EXT5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2i64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint64EXT6 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT6);
        for (size_t _iCGLint64EXT6 = 0; _iCGLint64EXT6 < _cCGLint64EXT6; ++_iCGLint64EXT6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3i64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLint64EXT7 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT7);
        for (size_t _iCGLint64EXT7 = 0; _iCGLint64EXT7 < _cCGLint64EXT7; ++_iCGLint64EXT7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint64EXT7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4i64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1ui64NV(GLuint program, GLint location, GLuint64EXT x) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1ui64NV(program, location, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2ui64NV(program, location, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3ui64NV(program, location, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4ui64NV(program, location, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform1ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform1ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint64EXT4 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT4);
        for (size_t _iCGLuint64EXT4 = 0; _iCGLuint64EXT4 < _cCGLuint64EXT4; ++_iCGLuint64EXT4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform1ui64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform2ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform2ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint64EXT5 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT5);
        for (size_t _iCGLuint64EXT5 = 0; _iCGLuint64EXT5 < _cCGLuint64EXT5; ++_iCGLuint64EXT5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform2ui64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform3ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform3ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint64EXT6 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT6);
        for (size_t _iCGLuint64EXT6 = 0; _iCGLuint64EXT6 < _cCGLuint64EXT6; ++_iCGLuint64EXT6) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT6]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform3ui64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniform4ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniform4ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint64EXT7 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT7);
        for (size_t _iCGLuint64EXT7 = 0; _iCGLuint64EXT7 < _cCGLuint64EXT7; ++_iCGLuint64EXT7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniform4ui64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2hNV(GLhalfNV x, GLhalfNV y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2hNV(x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex2hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex2hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV);
        for (size_t _iCGLhalfNV = 0; _iCGLhalfNV < _cCGLhalfNV; ++_iCGLhalfNV) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex2hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3hNV(x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex3hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex3hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV1 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV1);
        for (size_t _iCGLhalfNV1 = 0; _iCGLhalfNV1 < _cCGLhalfNV1; ++_iCGLhalfNV1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex3hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4hNV(x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertex4hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertex4hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV2 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV2);
        for (size_t _iCGLhalfNV2 = 0; _iCGLhalfNV2 < _cCGLhalfNV2; ++_iCGLhalfNV2) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV2]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertex4hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(nz);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3hNV(nx, ny, nz);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV3 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV3);
        for (size_t _iCGLhalfNV3 = 0; _iCGLhalfNV3 < _cCGLhalfNV3; ++_iCGLhalfNV3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3hNV(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV4 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV4);
        for (size_t _iCGLhalfNV4 = 0; _iCGLhalfNV4 < _cCGLhalfNV4; ++_iCGLhalfNV4) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV4]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4hNV(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV5 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV5);
        for (size_t _iCGLhalfNV5 = 0; _iCGLhalfNV5 < _cCGLhalfNV5; ++_iCGLhalfNV5) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV5]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1hNV(GLhalfNV s) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1hNV(s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord1hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord1hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord1hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2hNV(GLhalfNV s, GLhalfNV t) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2hNV(s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV7 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV7);
        for (size_t _iCGLhalfNV7 = 0; _iCGLhalfNV7 < _cCGLhalfNV7; ++_iCGLhalfNV7) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV7]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3hNV(s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord3hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord3hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV8 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV8);
        for (size_t _iCGLhalfNV8 = 0; _iCGLhalfNV8 < _cCGLhalfNV8; ++_iCGLhalfNV8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord3hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4hNV(s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV9 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV9);
        for (size_t _iCGLhalfNV9 = 0; _iCGLhalfNV9 < _cCGLhalfNV9; ++_iCGLhalfNV9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1hNV(GLenum target, GLhalfNV s) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1hNV(target, s);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord1hvNV(GLenum target, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord1hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord1hvNV(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(t);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2hNV(target, s, t);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord2hvNV(GLenum target, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord2hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLhalfNV11 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV11);
        for (size_t _iCGLhalfNV11 = 0; _iCGLhalfNV11 < _cCGLhalfNV11; ++_iCGLhalfNV11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord2hvNV(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3hNV(target, s, t, r);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord3hvNV(GLenum target, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord3hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLhalfNV12 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV12);
        for (size_t _iCGLhalfNV12 = 0; _iCGLhalfNV12 < _cCGLhalfNV12; ++_iCGLhalfNV12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord3hvNV(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(q);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4hNV(target, s, t, r, q);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMultiTexCoord4hvNV(GLenum target, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glMultiTexCoord4hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLhalfNV13 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV13);
        for (size_t _iCGLhalfNV13 = 0; _iCGLhalfNV13 < _cCGLhalfNV13; ++_iCGLhalfNV13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMultiTexCoord4hvNV(target, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordhNV(GLhalfNV fog) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordhNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(fog);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordhNV(fog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordhvNV(const GLhalfNV * fog) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordhvNV_sig);
    trace::localWriter.beginArg(0);
    if (fog) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*fog);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordhvNV(fog);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(blue);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3hNV(red, green, blue);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColor3hvNV(const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColor3hvNV_sig);
    trace::localWriter.beginArg(0);
    if (v) {
        size_t _cCGLhalfNV15 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV15);
        for (size_t _iCGLhalfNV15 = 0; _iCGLhalfNV15 < _cCGLhalfNV15; ++_iCGLhalfNV15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColor3hvNV(v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexWeighthNV(GLhalfNV weight) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexWeighthNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(weight);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexWeighthNV(weight);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexWeighthvNV(const GLhalfNV * weight) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexWeighthvNV_sig);
    trace::localWriter.beginArg(0);
    if (weight) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*weight);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexWeighthvNV(weight);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1hNV(GLuint index, GLhalfNV x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1hNV(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1hvNV(GLuint index, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1hvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2hNV(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2hvNV(GLuint index, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLhalfNV18 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV18);
        for (size_t _iCGLhalfNV18 = 0; _iCGLhalfNV18 < _cCGLhalfNV18; ++_iCGLhalfNV18) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV18]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2hvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3hNV(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3hvNV(GLuint index, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLhalfNV19 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV19);
        for (size_t _iCGLhalfNV19 = 0; _iCGLhalfNV19 < _cCGLhalfNV19; ++_iCGLhalfNV19) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV19]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3hvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4hNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4hNV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4hvNV(GLuint index, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLhalfNV20 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLhalfNV20);
        for (size_t _iCGLhalfNV20 = 0; _iCGLhalfNV20 < _cCGLhalfNV20; ++_iCGLhalfNV20) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV20]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4hvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs1hvNV(GLuint index, GLsizei n, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs1hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLhalfNV21 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLhalfNV21);
        for (size_t _iCGLhalfNV21 = 0; _iCGLhalfNV21 < _cCGLhalfNV21; ++_iCGLhalfNV21) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV21]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs1hvNV(index, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs2hvNV(GLuint index, GLsizei n, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs2hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLhalfNV22 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLhalfNV22);
        for (size_t _iCGLhalfNV22 = 0; _iCGLhalfNV22 < _cCGLhalfNV22; ++_iCGLhalfNV22) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV22]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs2hvNV(index, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs3hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLhalfNV23 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLhalfNV23);
        for (size_t _iCGLhalfNV23 = 0; _iCGLhalfNV23 < _cCGLhalfNV23; ++_iCGLhalfNV23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs3hvNV(index, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalfNV * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs4hvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLhalfNV24 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLhalfNV24);
        for (size_t _iCGLhalfNV24 = 0; _iCGLhalfNV24 < _cCGLhalfNV24; ++_iCGLhalfNV24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLhalfNV24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs4hvNV(index, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenOcclusionQueriesNV(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenOcclusionQueriesNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenOcclusionQueriesNV(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint3 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint3);
        for (size_t _iPGLuint3 = 0; _iPGLuint3 < _cPGLuint3; ++_iPGLuint3) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint3]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteOcclusionQueriesNV(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteOcclusionQueriesNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint34 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint34);
        for (size_t _iCPGLuint34 = 0; _iCPGLuint34 < _cCPGLuint34; ++_iCPGLuint34) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint34]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteOcclusionQueriesNV(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsOcclusionQueryNV(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsOcclusionQueryNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsOcclusionQueryNV(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBeginOcclusionQueryNV(GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginOcclusionQueryNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginOcclusionQueryNV(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndOcclusionQueryNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndOcclusionQueryNV_sig);
    trace::localWriter.endEnter();
    _glEndOcclusionQueryNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetOcclusionQueryivNV(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetOcclusionQueryivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetOcclusionQueryivNV(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetOcclusionQueryuivNV(GLuint id, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetOcclusionQueryuivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetOcclusionQueryuivNV(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramBufferParametersfvNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramBufferParametersfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cCGLfloat157 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLfloat157);
        for (size_t _iCGLfloat157 = 0; _iCGLfloat157 < _cCGLfloat157; ++_iCGLfloat157) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat157]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramBufferParametersfvNV(target, buffer, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramBufferParametersIivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramBufferParametersIivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cCGLint117 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint117);
        for (size_t _iCGLint117 = 0; _iCGLint117 < _cCGLint117; ++_iCGLint117) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint117]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramBufferParametersIivNV(target, buffer, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramBufferParametersIuivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramBufferParametersIuivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cCGLuint83 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint83);
        for (size_t _iCGLuint83 = 0; _iCGLuint83 < _cCGLuint83; ++_iCGLuint83) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iCGLuint83]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramBufferParametersIuivNV(target, buffer, index, count, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLuint APIENTRY glGenPathsNV(GLsizei range) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGenPathsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGenPathsNV(range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeletePathsNV(GLuint path, GLsizei range) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeletePathsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeletePathsNV(path, range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsPathNV(GLuint path) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsPathNV(path);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPathCommandsNV(GLuint path, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const GLvoid * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathCommandsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numCommands);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (commands) {
        size_t _cCGLubyte23 = numCommands > 0 ? numCommands : 0;
        trace::localWriter.beginArray(_cCGLubyte23);
        for (size_t _iCGLubyte23 = 0; _iCGLubyte23 < _cCGLubyte23; ++_iCGLubyte23) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((commands)[_iCGLubyte23]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(numCoords);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coordType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeBlob(coords, _glPath_coords_size(numCoords, coordType));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathCommandsNV(path, numCommands, commands, numCoords, coordType, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const GLvoid * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathCoordsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numCoords);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coordType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(coords, _glPath_coords_size(numCoords, coordType));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathCoordsNV(path, numCoords, coordType, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathSubCommandsNV(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const GLvoid * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathSubCommandsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(commandStart);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(commandsToDelete);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(numCommands);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (commands) {
        size_t _cCGLubyte24 = numCommands > 0 ? numCommands : 0;
        trace::localWriter.beginArray(_cCGLubyte24);
        for (size_t _iCGLubyte24 = 0; _iCGLubyte24 < _cCGLubyte24; ++_iCGLubyte24) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((commands)[_iCGLubyte24]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(numCoords);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coordType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeBlob(coords, _glPath_coords_size(numCoords, coordType));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathSubCommandsNV(path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathSubCoordsNV(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const GLvoid * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathSubCoordsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(coordStart);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(numCoords);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coordType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeBlob(coords, _glPath_coords_size(numCoords, coordType));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathSubCoordsNV(path, coordStart, numCoords, coordType, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathStringNV(GLuint path, GLenum format, GLsizei length, const GLvoid * pathString) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathStringNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(pathString, length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathStringNV(path, format, length, pathString);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathGlyphsNV(GLuint firstPathName, GLenum fontTarget, const GLvoid * fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid * charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathGlyphsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(firstPathName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fontTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(fontName, _glPath_fontName_size(fontTarget, fontName));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield9_sig, fontStyle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(numGlyphs);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeBlob(charcodes, _glPath_chardcodes_size(numGlyphs, type));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, handleMissingGlyphs);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeUInt(pathParameterTemplate);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(emScale);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathGlyphsNV(firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathGlyphRangeNV(GLuint firstPathName, GLenum fontTarget, const GLvoid * fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathGlyphRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(firstPathName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fontTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(fontName, _glPath_fontName_size(fontTarget, fontName));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield9_sig, fontStyle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(firstGlyph);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(numGlyphs);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, handleMissingGlyphs);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(pathParameterTemplate);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(emScale);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathGlyphRangeNV(firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightPathsNV(GLuint resultPath, GLsizei numPaths, const GLuint * paths, const GLfloat * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightPathsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(resultPath);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (paths) {
        size_t _cCGLuint84 = numPaths > 0 ? numPaths : 0;
        trace::localWriter.beginArray(_cCGLuint84);
        for (size_t _iCGLuint84 = 0; _iCGLuint84 < _cCGLuint84; ++_iCGLuint84) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((paths)[_iCGLuint84]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (weights) {
        size_t _cCGLfloat158 = numPaths > 0 ? numPaths : 0;
        trace::localWriter.beginArray(_cCGLfloat158);
        for (size_t _iCGLfloat158 = 0; _iCGLfloat158 < _cCGLfloat158; ++_iCGLfloat158) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((weights)[_iCGLfloat158]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightPathsNV(resultPath, numPaths, paths, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyPathNV(GLuint resultPath, GLuint srcPath) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(resultPath);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(srcPath);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyPathNV(resultPath, srcPath);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glInterpolatePathsNV(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight) {
    unsigned _call = trace::localWriter.beginEnter(&_glInterpolatePathsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(resultPath);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(pathA);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(pathB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(weight);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInterpolatePathsNV(resultPath, pathA, pathB, weight);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformPathNV(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(resultPath);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(srcPath);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (transformValues) {
        size_t _cCGLfloat159 = _gl_transformType_size(transformType) > 0 ? _gl_transformType_size(transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat159);
        for (size_t _iCGLfloat159 = 0; _iCGLfloat159 < _cCGLfloat159; ++_iCGLfloat159) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat159]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformPathNV(resultPath, srcPath, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathParameterivNV(GLuint path, GLenum pname, const GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLint118 = _gl_PathParameter_size(pname) > 0 ? _gl_PathParameter_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint118);
        for (size_t _iCGLint118 = 0; _iCGLint118 < _cCGLint118; ++_iCGLint118) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iCGLint118]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathParameterivNV(path, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathParameteriNV(GLuint path, GLenum pname, GLint value) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathParameteriNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathParameteriNV(path, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathParameterfvNV(GLuint path, GLenum pname, const GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLfloat160 = _gl_PathParameter_size(pname) > 0 ? _gl_PathParameter_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat160);
        for (size_t _iCGLfloat160 = 0; _iCGLfloat160 < _cCGLfloat160; ++_iCGLfloat160) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iCGLfloat160]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathParameterfvNV(path, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathParameterfNV(GLuint path, GLenum pname, GLfloat value) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathParameterfNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathParameterfNV(path, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathDashArrayNV(GLuint path, GLsizei dashCount, const GLfloat * dashArray) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathDashArrayNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(dashCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (dashArray) {
        size_t _cCGLfloat161 = dashCount > 0 ? dashCount : 0;
        trace::localWriter.beginArray(_cCGLfloat161);
        for (size_t _iCGLfloat161 = 0; _iCGLfloat161 < _cCGLfloat161; ++_iCGLfloat161) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((dashArray)[_iCGLfloat161]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathDashArrayNV(path, dashCount, dashArray);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathStencilFuncNV(GLenum func, GLint ref, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathStencilFuncNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(ref);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathStencilFuncNV(func, ref, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathStencilDepthOffsetNV(GLfloat factor, GLfloat units) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathStencilDepthOffsetNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(factor);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(units);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathStencilDepthOffsetNV(factor, units);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilFillPathNV(GLuint path, GLenum fillMode, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilFillPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fillMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilFillPathNV(path, fillMode, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilStrokePathNV(GLuint path, GLint reference, GLuint mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilStrokePathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(reference);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilStrokePathNV(path, reference, mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilFillPathInstancedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fillMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    if (transformValues) {
        size_t _cCGLfloat162 = _gl_transformType_size(numPaths, transformType) > 0 ? _gl_transformType_size(numPaths, transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat162);
        for (size_t _iCGLfloat162 = 0; _iCGLfloat162 < _cCGLfloat162; ++_iCGLfloat162) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat162]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilFillPathInstancedNV(numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilStrokePathInstancedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(reference);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    if (transformValues) {
        size_t _cCGLfloat163 = _gl_transformType_size(numPaths, transformType) > 0 ? _gl_transformType_size(numPaths, transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat163);
        for (size_t _iCGLfloat163 = 0; _iCGLfloat163 < _cCGLfloat163; ++_iCGLfloat163) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat163]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilStrokePathInstancedNV(numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathCoverDepthFuncNV(GLenum func) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathCoverDepthFuncNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, func);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathCoverDepthFuncNV(func);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathColorGenNV(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat * coeffs) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathColorGenNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, color);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, genMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, colorFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (coeffs) {
        size_t _cCGLfloat164 = _gl_PathColorGen_size(genMode, colorFormat) > 0 ? _gl_PathColorGen_size(genMode, colorFormat) : 0;
        trace::localWriter.beginArray(_cCGLfloat164);
        for (size_t _iCGLfloat164 = 0; _iCGLfloat164 < _cCGLfloat164; ++_iCGLfloat164) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coeffs)[_iCGLfloat164]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathColorGenNV(color, genMode, colorFormat, coeffs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathTexGenNV(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat * coeffs) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathTexGenNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texCoordSet);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, genMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(components);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (coeffs) {
        size_t _cCGLfloat165 = _gl_PathTexGen_size(genMode, components) > 0 ? _gl_PathTexGen_size(genMode, components) : 0;
        trace::localWriter.beginArray(_cCGLfloat165);
        for (size_t _iCGLfloat165 = 0; _iCGLfloat165 < _cCGLfloat165; ++_iCGLfloat165) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coeffs)[_iCGLfloat165]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathTexGenNV(texCoordSet, genMode, components, coeffs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPathFogGenNV(GLenum genMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glPathFogGenNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, genMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPathFogGenNV(genMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverFillPathNV(GLuint path, GLenum coverMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverFillPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverFillPathNV(path, coverMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverStrokePathNV(GLuint path, GLenum coverMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverStrokePathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverStrokePathNV(path, coverMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverFillPathInstancedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (transformValues) {
        size_t _cCGLfloat166 = _gl_transformType_size(numPaths, transformType) > 0 ? _gl_transformType_size(numPaths, transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat166);
        for (size_t _iCGLfloat166 = 0; _iCGLfloat166 < _cCGLfloat166; ++_iCGLfloat166) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat166]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverFillPathInstancedNV(numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glCoverStrokePathInstancedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (transformValues) {
        size_t _cCGLfloat167 = _gl_transformType_size(numPaths, transformType) > 0 ? _gl_transformType_size(numPaths, transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat167);
        for (size_t _iCGLfloat167 = 0; _iCGLfloat167 < _cCGLfloat167; ++_iCGLfloat167) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat167]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCoverStrokePathInstancedNV(numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathParameterivNV(GLuint path, GLenum pname, GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathParameterivNV(path, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cGLint = _gl_GetPathParameter_size(pname) > 0 ? _gl_GetPathParameter_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((value)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathParameterfvNV(GLuint path, GLenum pname, GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathParameterfvNV(path, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cGLfloat = _gl_GetPathParameter_size(pname) > 0 ? _gl_GetPathParameter_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((value)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathCommandsNV(GLuint path, GLubyte * commands) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathCommandsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathCommandsNV(path, commands);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (commands) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*commands);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathCoordsNV(GLuint path, GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathCoordsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathCoordsNV(path, coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (coords) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*coords);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathDashArrayNV(GLuint path, GLfloat * dashArray) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathDashArrayNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathDashArrayNV(path, dashArray);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (dashArray) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*dashArray);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathMetricsNV(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLsizei stride, GLfloat * metrics) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathMetricsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield8_sig, metricQueryMask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathMetricsNV(metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(6);
    if (metrics) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*metrics);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathMetricRangeNV(GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat * metrics) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathMetricRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeBitmask(&_bitmaskGLbitfield8_sig, metricQueryMask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(firstPathName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathMetricRangeNV(metricQueryMask, firstPathName, numPaths, stride, metrics);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (metrics) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*metrics);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathSpacingNV(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat * returnedSpacing) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathSpacingNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathListMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(advanceScale);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(kerningScale);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathSpacingNV(pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(8);
    if (returnedSpacing) {
        size_t _cGLfloat = _gl_GetPathSpacing(numPaths,transformType) > 0 ? _gl_GetPathSpacing(numPaths,transformType) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((returnedSpacing)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathColorGenivNV(GLenum color, GLenum pname, GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathColorGenivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, color);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathColorGenivNV(color, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathColorGenfvNV(GLenum color, GLenum pname, GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathColorGenfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, color);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathColorGenfvNV(color, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathTexGenivNV(GLenum texCoordSet, GLenum pname, GLint * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathTexGenivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texCoordSet);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathTexGenivNV(texCoordSet, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPathTexGenfvNV(GLenum texCoordSet, GLenum pname, GLfloat * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathTexGenfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texCoordSet);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPathTexGenfvNV(texCoordSet, pname, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (value) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*value);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsPointInFillPathNV(GLuint path, GLuint mask, GLfloat x, GLfloat y) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsPointInFillPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsPointInFillPathNV(path, mask, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glIsPointInStrokePathNV(GLuint path, GLfloat x, GLfloat y) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsPointInStrokePathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsPointInStrokePathNV(path, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLfloat APIENTRY glGetPathLengthNV(GLuint path, GLsizei startSegment, GLsizei numSegments) {
    GLfloat _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetPathLengthNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(startSegment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(numSegments);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetPathLengthNV(path, startSegment, numSegments);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeFloat(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glPointAlongPathNV(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat * x, GLfloat * y, GLfloat * tangentX, GLfloat * tangentY) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glPointAlongPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(startSegment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(numSegments);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(distance);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glPointAlongPathNV(path, startSegment, numSegments, distance, x, y, tangentX, tangentY);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (x) {
        size_t _cGLfloat = 1 > 0 ? 1 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((x)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (y) {
        size_t _cGLfloat = 1 > 0 ? 1 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((y)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    if (tangentX) {
        size_t _cGLfloat = 1 > 0 ? 1 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tangentX)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    if (tangentY) {
        size_t _cGLfloat = 1 > 0 ? 1 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tangentY)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMatrixLoad3x2fNV(GLenum matrixMode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoad3x2fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrixMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat168 = 6 > 0 ? 6 : 0;
        trace::localWriter.beginArray(_cCGLfloat168);
        for (size_t _iCGLfloat168 = 0; _iCGLfloat168 < _cCGLfloat168; ++_iCGLfloat168) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat168]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoad3x2fNV(matrixMode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoad3x3fNV(GLenum matrixMode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoad3x3fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrixMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat169 = 9 > 0 ? 9 : 0;
        trace::localWriter.beginArray(_cCGLfloat169);
        for (size_t _iCGLfloat169 = 0; _iCGLfloat169 < _cCGLfloat169; ++_iCGLfloat169) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat169]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoad3x3fNV(matrixMode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixLoadTranspose3x3fNV(GLenum matrixMode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixLoadTranspose3x3fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrixMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat170 = 9 > 0 ? 9 : 0;
        trace::localWriter.beginArray(_cCGLfloat170);
        for (size_t _iCGLfloat170 = 0; _iCGLfloat170 < _cCGLfloat170; ++_iCGLfloat170) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat170]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixLoadTranspose3x3fNV(matrixMode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMult3x2fNV(GLenum matrixMode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMult3x2fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrixMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat171 = 6 > 0 ? 6 : 0;
        trace::localWriter.beginArray(_cCGLfloat171);
        for (size_t _iCGLfloat171 = 0; _iCGLfloat171 < _cCGLfloat171; ++_iCGLfloat171) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat171]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMult3x2fNV(matrixMode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMult3x3fNV(GLenum matrixMode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMult3x3fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrixMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat172 = 9 > 0 ? 9 : 0;
        trace::localWriter.beginArray(_cCGLfloat172);
        for (size_t _iCGLfloat172 = 0; _iCGLfloat172 < _cCGLfloat172; ++_iCGLfloat172) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat172]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMult3x3fNV(matrixMode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixMultTranspose3x3fNV(GLenum matrixMode, const GLfloat * m) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixMultTranspose3x3fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrixMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (m) {
        size_t _cCGLfloat173 = 9 > 0 ? 9 : 0;
        trace::localWriter.beginArray(_cCGLfloat173);
        for (size_t _iCGLfloat173 = 0; _iCGLfloat173 < _cCGLfloat173; ++_iCGLfloat173) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((m)[_iCGLfloat173]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixMultTranspose3x3fNV(matrixMode, m);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilThenCoverFillPathNV(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilThenCoverFillPathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fillMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilThenCoverFillPathNV(path, fillMode, mask, coverMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilThenCoverStrokePathNV(GLuint path, GLint reference, GLuint mask, GLenum coverMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilThenCoverStrokePathNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(path);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(reference);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilThenCoverStrokePathNV(path, reference, mask, coverMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilThenCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilThenCoverFillPathInstancedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fillMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    if (transformValues) {
        size_t _cCGLfloat174 = _gl_transformType_size(numPaths, transformType) > 0 ? _gl_transformType_size(numPaths, transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat174);
        for (size_t _iCGLfloat174 = 0; _iCGLfloat174 < _cCGLfloat174; ++_iCGLfloat174) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat174]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilThenCoverFillPathInstancedNV(numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
    unsigned _call = trace::localWriter.beginEnter(&_glStencilThenCoverStrokePathInstancedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numPaths);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pathNameType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(paths, _gl_Paths_size(numPaths, pathNameType, paths));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathBase);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(reference);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coverMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transformType);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    if (transformValues) {
        size_t _cCGLfloat175 = _gl_transformType_size(numPaths, transformType) > 0 ? _gl_transformType_size(numPaths, transformType) : 0;
        trace::localWriter.beginArray(_cCGLfloat175);
        for (size_t _iCGLfloat175 = 0; _iCGLfloat175 < _cCGLfloat175; ++_iCGLfloat175) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((transformValues)[_iCGLfloat175]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStencilThenCoverStrokePathInstancedNV(numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glPathGlyphIndexRangeNV(GLenum fontTarget, const GLvoid * fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint * baseAndCount) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glPathGlyphIndexRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fontTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(fontName));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(fontStyle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(pathParameterTemplate);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(emScale);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (baseAndCount) {
        size_t _cGLuint = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((baseAndCount)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glPathGlyphIndexRangeNV(fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLenum APIENTRY glPathGlyphIndexArrayNV(GLuint firstPathName, GLenum fontTarget, const GLvoid * fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glPathGlyphIndexArrayNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(firstPathName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fontTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(fontName));
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(fontStyle);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(firstGlyphIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(numGlyphs);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(pathParameterTemplate);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(emScale);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glPathGlyphIndexArrayNV(firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLenum APIENTRY glPathMemoryGlyphIndexArrayNV(GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void * fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glPathMemoryGlyphIndexArrayNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(firstPathName);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, fontTarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(fontSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeBlob(fontData, fontSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(faceIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(firstGlyphIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(numGlyphs);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(pathParameterTemplate);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(emScale);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glPathMemoryGlyphIndexArrayNV(firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glProgramPathFragmentInputGenNV(GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat * coeffs) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramPathFragmentInputGenNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, genMode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(components);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (coeffs) {
        size_t _cCGLfloat176 = _gl_PathTexGen_size(genMode, components) > 0 ? _gl_PathTexGen_size(genMode, components) : 0;
        trace::localWriter.beginArray(_cCGLfloat176);
        for (size_t _iCGLfloat176 = 0; _iCGLfloat176 < _cCGLfloat176; ++_iCGLfloat176) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coeffs)[_iCGLfloat176]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramPathFragmentInputGenNV(program, location, genMode, components, coeffs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramResourcefvNV(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramResourcefvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, programInterface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(propCount);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (props) {
        size_t _cCGLenum16 = propCount > 0 ? propCount : 0;
        trace::localWriter.beginArray(_cCGLenum16);
        for (size_t _iCGLenum16 = 0; _iCGLenum16 < _cCGLenum16; ++_iCGLenum16) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, (props)[_iCGLenum16]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramResourcefvNV(program, programInterface, index, propCount, props, bufSize, length, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(6);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    if (params) {
        size_t _cGLfloat = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelDataRangeNV(GLenum target, GLsizei length, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelDataRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelDataRangeNV(target, length, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlushPixelDataRangeNV(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glFlushPixelDataRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFlushPixelDataRangeNV(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameteriNV(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameteriNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameteriNV(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterivNV(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint119 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint119);
        for (size_t _iCGLint119 = 0; _iCGLint119 < _cCGLint119; ++_iCGLint119) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint119]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterivNV(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPresentFrameKeyedNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1) {
    unsigned _call = trace::localWriter.beginEnter(&_glPresentFrameKeyedNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(minPresentTime);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(beginPresentTimeId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(presentDurationId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(fill0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeUInt(key0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeUInt(fill1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeUInt(key1);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPresentFrameKeyedNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPresentFrameDualFillNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3) {
    unsigned _call = trace::localWriter.beginEnter(&_glPresentFrameDualFillNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(minPresentTime);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(beginPresentTimeId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(presentDurationId);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeUInt(fill0);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeUInt(fill1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeUInt(fill2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target3);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeUInt(fill3);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPresentFrameDualFillNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoivNV(GLuint video_slot, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoivNV(video_slot, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideouivNV(GLuint video_slot, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideouivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideouivNV(video_slot, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint);
        for (size_t _iGLuint = 0; _iGLuint < _cGLuint; ++_iGLuint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoi64vNV(GLuint video_slot, GLenum pname, GLint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoi64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoi64vNV(video_slot, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint64EXT = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64EXT);
        for (size_t _iGLint64EXT = 0; _iGLint64EXT < _cGLint64EXT; ++_iGLint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoui64vNV(GLuint video_slot, GLenum pname, GLuint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoui64vNV(video_slot, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint64EXT = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64EXT);
        for (size_t _iGLuint64EXT = 0; _iGLuint64EXT < _cGLuint64EXT; ++_iGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPrimitiveRestartNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrimitiveRestartNV_sig);
    trace::localWriter.endEnter();
    _glPrimitiveRestartNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPrimitiveRestartIndexNV(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glPrimitiveRestartIndexNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPrimitiveRestartIndexNV(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReadBufferNV(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glReadBufferNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadBufferNV(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerParameterfvNV(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat177 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat177);
        for (size_t _iCGLfloat177 = 0; _iCGLfloat177 < _cCGLfloat177; ++_iCGLfloat177) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat177]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerParameterfvNV(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerParameterfNV(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerParameterfNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerParameterfNV(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerParameterivNV(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint120 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint120);
        for (size_t _iCGLint120 = 0; _iCGLint120 < _cCGLint120; ++_iCGLint120) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint120]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerParameterivNV(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerParameteriNV(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerParameteriNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerParameteriNV(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerInputNV(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerInputNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, portion);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, variable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, input);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mapping);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, componentUsage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerInputNV(stage, portion, variable, input, mapping, componentUsage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerOutputNV(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerOutputNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, portion);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, abOutput);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, cdOutput);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sumOutput);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeEnum(&_enumGLenum_sig, scale);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, bias);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, abDotProduct);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, cdDotProduct);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, muxSum);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerOutputNV(stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFinalCombinerInputNV(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinalCombinerInputNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, variable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, input);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mapping);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, componentUsage);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFinalCombinerInputNV(variable, input, mapping, componentUsage);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCombinerInputParameterfvNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetCombinerInputParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, portion);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, variable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCombinerInputParameterfvNV(stage, portion, variable, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCombinerInputParameterivNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetCombinerInputParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, portion);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, variable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCombinerInputParameterivNV(stage, portion, variable, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(4);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCombinerOutputParameterfvNV(GLenum stage, GLenum portion, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetCombinerOutputParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, portion);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCombinerOutputParameterfvNV(stage, portion, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCombinerOutputParameterivNV(GLenum stage, GLenum portion, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetCombinerOutputParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, portion);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCombinerOutputParameterivNV(stage, portion, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFinalCombinerInputParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, variable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFinalCombinerInputParameterfvNV(variable, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFinalCombinerInputParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, variable);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFinalCombinerInputParameterivNV(variable, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCombinerStageParameterfvNV(GLenum stage, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glCombinerStageParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat178 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat178);
        for (size_t _iCGLfloat178 = 0; _iCGLfloat178 < _cCGLfloat178; ++_iCGLfloat178) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat178]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCombinerStageParameterfvNV(stage, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetCombinerStageParameterfvNV(GLenum stage, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetCombinerStageParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, stage);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetCombinerStageParameterfvNV(stage, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeBufferResidentNV(GLenum target, GLenum access) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeBufferResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeBufferResidentNV(target, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeBufferNonResidentNV(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeBufferNonResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeBufferNonResidentNV(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsBufferResidentNV(GLenum target) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsBufferResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsBufferResidentNV(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glMakeNamedBufferResidentNV(GLuint buffer, GLenum access) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeNamedBufferResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeNamedBufferResidentNV(buffer, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMakeNamedBufferNonResidentNV(GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glMakeNamedBufferNonResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMakeNamedBufferNonResidentNV(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsNamedBufferResidentNV(GLuint buffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsNamedBufferResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsNamedBufferResidentNV(buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetBufferParameterui64vNV(GLenum target, GLenum pname, GLuint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferParameterui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferParameterui64vNV(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint64EXT = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64EXT);
        for (size_t _iGLuint64EXT = 0; _iGLuint64EXT < _cGLuint64EXT; ++_iGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetNamedBufferParameterui64vNV(GLuint buffer, GLenum pname, GLuint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetNamedBufferParameterui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetNamedBufferParameterui64vNV(buffer, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint64EXT = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64EXT);
        for (size_t _iGLuint64EXT = 0; _iGLuint64EXT < _cGLuint64EXT; ++_iGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetIntegerui64vNV(GLenum value, GLuint64EXT * result) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetIntegerui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetIntegerui64vNV(value, result);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (result) {
        size_t _cGLuint64EXT = _gl_param_size(value) > 0 ? _gl_param_size(value) : 0;
        trace::localWriter.beginArray(_cGLuint64EXT);
        for (size_t _iGLuint64EXT = 0; _iGLuint64EXT < _cGLuint64EXT; ++_iGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((result)[_iGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformui64NV(GLint location, GLuint64EXT value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformui64NV(location, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glUniformui64vNV(GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glUniformui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (value) {
        size_t _cCGLuint64EXT8 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT8);
        for (size_t _iCGLuint64EXT8 = 0; _iCGLuint64EXT8 < _cCGLuint64EXT8; ++_iCGLuint64EXT8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glUniformui64vNV(location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetUniformui64vNV(GLuint program, GLint location, GLuint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetUniformui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetUniformui64vNV(program, location, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformui64NV(GLuint program, GLint location, GLuint64EXT value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(value);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformui64NV(program, location, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramUniformui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramUniformui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(location);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (value) {
        size_t _cCGLuint64EXT9 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT9);
        for (size_t _iCGLuint64EXT9 = 0; _iCGLuint64EXT9 < _cCGLuint64EXT9; ++_iCGLuint64EXT9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((value)[_iCGLuint64EXT9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramUniformui64vNV(program, location, count, value);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureBarrierNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureBarrierNV_sig);
    trace::localWriter.endEnter();
    _glTextureBarrierNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage2DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexImage2DMultisampleCoverageNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(coverageSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(colorSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedSampleLocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage2DMultisampleCoverageNV(target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage3DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexImage3DMultisampleCoverageNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(coverageSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(colorSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedSampleLocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage3DMultisampleCoverageNV(target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage2DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage2DMultisampleNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedSampleLocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage2DMultisampleNV(texture, target, samples, internalFormat, width, height, fixedSampleLocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage3DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage3DMultisampleNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(samples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedSampleLocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage3DMultisampleNV(texture, target, samples, internalFormat, width, height, depth, fixedSampleLocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage2DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage2DMultisampleCoverageNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(coverageSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(colorSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedSampleLocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage2DMultisampleCoverageNV(texture, target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureImage3DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureImage3DMultisampleCoverageNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(coverageSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(colorSamples);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(internalFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, fixedSampleLocations);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureImage3DMultisampleCoverageNV(texture, target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginTransformFeedbackNV(GLenum primitiveMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginTransformFeedbackNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, primitiveMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginTransformFeedbackNV(primitiveMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndTransformFeedbackNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndTransformFeedbackNV_sig);
    trace::localWriter.endEnter();
    _glEndTransformFeedbackNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackAttribsNV(GLsizei count, const GLint * attribs, GLenum bufferMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackAttribsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (attribs) {
        size_t _cCGLint121 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLint121);
        for (size_t _iCGLint121 = 0; _iCGLint121 < _cCGLint121; ++_iCGLint121) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attribs)[_iCGLint121]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, bufferMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackAttribsNV(count, attribs, bufferMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferRangeNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferRangeNV(target, index, buffer, offset, size);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferOffsetNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferOffsetNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferOffsetNV(target, index, buffer, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindBufferBaseNV(GLenum target, GLuint index, GLuint buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindBufferBaseNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindBufferBaseNV(target, index, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackVaryingsNV(GLuint program, GLsizei count, const GLint * locations, GLenum bufferMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackVaryingsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (locations) {
        size_t _cCGLint122 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint122);
        for (size_t _iCGLint122 = 0; _iCGLint122 < _cCGLint122; ++_iCGLint122) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((locations)[_iCGLint122]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, bufferMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackVaryingsNV(program, count, locations, bufferMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glActiveVaryingNV(GLuint program, const GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glActiveVaryingNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glActiveVaryingNV(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetVaryingLocationNV(GLuint program, const GLchar * name) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetVaryingLocationNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGetVaryingLocationNV(program, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glGetActiveVaryingNV(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetActiveVaryingNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetActiveVaryingNV(program, index, bufSize, length, size, type, name);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (size) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*size);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    if (type) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *type);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name), ((length) ? *(length) : strlen(name)));
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTransformFeedbackVaryingNV(GLuint program, GLuint index, GLint * location) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTransformFeedbackVaryingNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTransformFeedbackVaryingNV(program, index, location);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (location) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*location);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTransformFeedbackStreamAttribsNV(GLsizei count, const GLint * attribs, GLsizei nbuffers, const GLint * bufstreams, GLenum bufferMode) {
    unsigned _call = trace::localWriter.beginEnter(&_glTransformFeedbackStreamAttribsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (attribs) {
        size_t _cCGLint123 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLint123);
        for (size_t _iCGLint123 = 0; _iCGLint123 < _cCGLint123; ++_iCGLint123) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((attribs)[_iCGLint123]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(nbuffers);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (bufstreams) {
        size_t _cCGLint124 = nbuffers > 0 ? nbuffers : 0;
        trace::localWriter.beginArray(_cCGLint124);
        for (size_t _iCGLint124 = 0; _iCGLint124 < _cCGLint124; ++_iCGLint124) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((bufstreams)[_iCGLint124]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, bufferMode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTransformFeedbackStreamAttribsNV(count, attribs, nbuffers, bufstreams, bufferMode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindTransformFeedbackNV(GLenum target, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindTransformFeedbackNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindTransformFeedbackNV(target, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteTransformFeedbacksNV(GLsizei n, const GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteTransformFeedbacksNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint171 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint171);
        for (size_t _iCPGLuint171 = 0; _iCPGLuint171 < _cCPGLuint171; ++_iCPGLuint171) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint171]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteTransformFeedbacksNV(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenTransformFeedbacksNV(GLsizei n, GLuint * ids) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenTransformFeedbacksNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenTransformFeedbacksNV(n, ids);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cPGLuint17 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint17);
        for (size_t _iPGLuint17 = 0; _iPGLuint17 < _cPGLuint17; ++_iPGLuint17) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iPGLuint17]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsTransformFeedbackNV(GLuint id) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsTransformFeedbackNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsTransformFeedbackNV(id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glPauseTransformFeedbackNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glPauseTransformFeedbackNV_sig);
    trace::localWriter.endEnter();
    _glPauseTransformFeedbackNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glResumeTransformFeedbackNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glResumeTransformFeedbackNV_sig);
    trace::localWriter.endEnter();
    _glResumeTransformFeedbackNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTransformFeedbackNV(GLenum mode, GLuint id) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTransformFeedbackNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTransformFeedbackNV(mode, id);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVDPAUInitNV(const GLvoid * vdpDevice, const GLvoid * getProcAddress) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUInitNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)vdpDevice);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)getProcAddress);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVDPAUInitNV(vdpDevice, getProcAddress);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVDPAUFiniNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUFiniNV_sig);
    trace::localWriter.endEnter();
    _glVDPAUFiniNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames) {
    GLvdpauSurfaceNV _result;
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAURegisterVideoSurfaceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)vdpSurface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(numTextureNames);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (textureNames) {
        size_t _cCPGLuint113 = numTextureNames > 0 ? numTextureNames : 0;
        trace::localWriter.beginArray(_cCPGLuint113);
        for (size_t _iCPGLuint113 = 0; _iCPGLuint113 < _cCPGLuint113; ++_iCPGLuint113) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textureNames)[_iCPGLuint113]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glVDPAURegisterVideoSurfaceNV(vdpSurface, target, numTextureNames, textureNames);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames) {
    GLvdpauSurfaceNV _result;
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAURegisterOutputSurfaceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)vdpSurface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(numTextureNames);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (textureNames) {
        size_t _cCPGLuint114 = numTextureNames > 0 ? numTextureNames : 0;
        trace::localWriter.beginArray(_cCPGLuint114);
        for (size_t _iCPGLuint114 = 0; _iCPGLuint114 < _cCPGLuint114; ++_iCPGLuint114) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((textureNames)[_iCPGLuint114]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glVDPAURegisterOutputSurfaceNV(vdpSurface, target, numTextureNames, textureNames);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glVDPAUIsSurfaceNV(GLvdpauSurfaceNV surface) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUIsSurfaceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(surface);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glVDPAUIsSurfaceNV(surface);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVDPAUUnregisterSurfaceNV(GLvdpauSurfaceNV surface) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUUnregisterSurfaceNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(surface);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVDPAUUnregisterSurfaceNV(surface);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVDPAUGetSurfaceivNV(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUGetSurfaceivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVDPAUGetSurfaceivNV(surface, pname, bufSize, length, values);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (values) {
        size_t _cGLint = bufSize > 0 ? bufSize : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((values)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVDPAUSurfaceAccessNV(GLvdpauSurfaceNV surface, GLenum access) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUSurfaceAccessNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(surface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVDPAUSurfaceAccessNV(surface, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVDPAUMapSurfacesNV(GLsizei numSurfaces, const GLvdpauSurfaceNV * surfaces) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUMapSurfacesNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numSurfaces);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (surfaces) {
        size_t _cCGLvdpauSurfaceNV = numSurfaces > 0 ? numSurfaces : 0;
        trace::localWriter.beginArray(_cCGLvdpauSurfaceNV);
        for (size_t _iCGLvdpauSurfaceNV = 0; _iCGLvdpauSurfaceNV < _cCGLvdpauSurfaceNV; ++_iCGLvdpauSurfaceNV) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((surfaces)[_iCGLvdpauSurfaceNV]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVDPAUMapSurfacesNV(numSurfaces, surfaces);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVDPAUUnmapSurfacesNV(GLsizei numSurface, const GLvdpauSurfaceNV * surfaces) {
    unsigned _call = trace::localWriter.beginEnter(&_glVDPAUUnmapSurfacesNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(numSurface);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (surfaces) {
        size_t _cCGLvdpauSurfaceNV1 = numSurface > 0 ? numSurface : 0;
        trace::localWriter.beginArray(_cCGLvdpauSurfaceNV1);
        for (size_t _iCGLvdpauSurfaceNV1 = 0; _iCGLvdpauSurfaceNV1 < _cCGLvdpauSurfaceNV1; ++_iCGLvdpauSurfaceNV1) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((surfaces)[_iCGLvdpauSurfaceNV1]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVDPAUUnmapSurfacesNV(numSurface, surfaces);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFlushVertexArrayRangeNV(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFlushVertexArrayRangeNV_sig);
    trace::localWriter.endEnter();
    _glFlushVertexArrayRangeNV();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexArrayRangeNV(GLsizei length, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexArrayRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexArrayRangeNV(length, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1i64NV(GLuint index, GLint64EXT x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1i64NV(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2i64NV(GLuint index, GLint64EXT x, GLint64EXT y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2i64NV(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3i64NV(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4i64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4i64NV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1i64vNV(GLuint index, const GLint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1i64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2i64vNV(GLuint index, const GLint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint64EXT9 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT9);
        for (size_t _iCGLint64EXT9 = 0; _iCGLint64EXT9 < _cCGLint64EXT9; ++_iCGLint64EXT9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint64EXT9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2i64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3i64vNV(GLuint index, const GLint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint64EXT10 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT10);
        for (size_t _iCGLint64EXT10 = 0; _iCGLint64EXT10 < _cCGLint64EXT10; ++_iCGLint64EXT10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint64EXT10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3i64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4i64vNV(GLuint index, const GLint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4i64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint64EXT11 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint64EXT11);
        for (size_t _iCGLint64EXT11 = 0; _iCGLint64EXT11 < _cCGLint64EXT11; ++_iCGLint64EXT11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint64EXT11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4i64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1ui64NV(GLuint index, GLuint64EXT x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1ui64NV(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2ui64NV(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3ui64NV(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4ui64NV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4ui64NV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL1ui64vNV(GLuint index, const GLuint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL1ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL1ui64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL2ui64vNV(GLuint index, const GLuint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL2ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint64EXT11 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT11);
        for (size_t _iCGLuint64EXT11 = 0; _iCGLuint64EXT11 < _cCGLuint64EXT11; ++_iCGLuint64EXT11) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint64EXT11]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL2ui64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL3ui64vNV(GLuint index, const GLuint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL3ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint64EXT12 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT12);
        for (size_t _iCGLuint64EXT12 = 0; _iCGLuint64EXT12 < _cCGLuint64EXT12; ++_iCGLuint64EXT12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint64EXT12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL3ui64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribL4ui64vNV(GLuint index, const GLuint64EXT * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribL4ui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint64EXT13 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint64EXT13);
        for (size_t _iCGLuint64EXT13 = 0; _iCGLuint64EXT13 < _cCGLuint64EXT13; ++_iCGLuint64EXT13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint64EXT13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribL4ui64vNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribLi64vNV(GLuint index, GLenum pname, GLint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribLi64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribLi64vNV(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint64EXT = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint64EXT);
        for (size_t _iGLint64EXT = 0; _iGLint64EXT < _cGLint64EXT; ++_iGLint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribLui64vNV(GLuint index, GLenum pname, GLuint64EXT * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribLui64vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribLui64vNV(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLuint64EXT = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLuint64EXT);
        for (size_t _iGLuint64EXT = 0; _iGLuint64EXT < _cGLuint64EXT; ++_iGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((params)[_iGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribLFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribLFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribLFormatNV(index, size, type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBufferAddressRangeNV(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length) {
    unsigned _call = trace::localWriter.beginEnter(&_glBufferAddressRangeNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(address);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBufferAddressRangeNV(pname, index, address, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexFormatNV(GLint size, GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexFormatNV(size, type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormalFormatNV(GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormalFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormalFormatNV(type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorFormatNV(GLint size, GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorFormatNV(size, type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIndexFormatNV(GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glIndexFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIndexFormatNV(type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoordFormatNV(GLint size, GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoordFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoordFormatNV(size, type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEdgeFlagFormatNV(GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlagFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEdgeFlagFormatNV(stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSecondaryColorFormatNV(GLint size, GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSecondaryColorFormatNV(size, type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogCoordFormatNV(GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogCoordFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogCoordFormatNV(type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribFormatNV(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribFormatNV(index, size, type, normalized, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribIFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribIFormatNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribIFormatNV(index, size, type, stride);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetIntegerui64i_vNV(GLenum value, GLuint index, GLuint64EXT * result) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetIntegerui64i_vNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, value);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetIntegerui64i_vNV(value, index, result);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (result) {
        size_t _cGLuint64EXT = _gl_param_size(value) > 0 ? _gl_param_size(value) : 0;
        trace::localWriter.beginArray(_cGLuint64EXT);
        for (size_t _iGLuint64EXT = 0; _iGLuint64EXT < _cGLuint64EXT; ++_iGLuint64EXT) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((result)[_iGLuint64EXT]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glAreProgramsResidentNV(GLsizei n, const GLuint * ids, GLboolean * residences) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glAreProgramsResidentNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (ids) {
        size_t _cCPGLuint81 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint81);
        for (size_t _iCPGLuint81 = 0; _iCPGLuint81 < _cCPGLuint81; ++_iCPGLuint81) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((ids)[_iCPGLuint81]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glAreProgramsResidentNV(n, ids, residences);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (residences) {
        size_t _cGLboolean = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cGLboolean);
        for (size_t _iGLboolean = 0; _iGLboolean < _cGLboolean; ++_iGLboolean) {
            trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, (residences)[_iGLboolean]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindProgramNV(GLenum target, GLuint program) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindProgramNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindProgramNV(target, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteProgramsNV(GLsizei n, const GLuint * programs) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteProgramsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (programs) {
        size_t _cCPGLuint82 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint82);
        for (size_t _iCPGLuint82 = 0; _iCPGLuint82 < _cCPGLuint82; ++_iCPGLuint82) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((programs)[_iCPGLuint82]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteProgramsNV(n, programs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glExecuteProgramNV(GLenum target, GLuint id, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glExecuteProgramNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat179 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat179);
        for (size_t _iCGLfloat179 = 0; _iCGLfloat179 < _cCGLfloat179; ++_iCGLfloat179) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat179]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glExecuteProgramNV(target, id, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenProgramsNV(GLsizei n, GLuint * programs) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenProgramsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenProgramsNV(n, programs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (programs) {
        size_t _cPGLuint8 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint8);
        for (size_t _iPGLuint8 = 0; _iPGLuint8 < _cPGLuint8; ++_iPGLuint8) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((programs)[_iPGLuint8]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramParameterdvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramParameterdvNV(target, index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramParameterfvNV(target, index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramivNV(GLuint id, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramivNV(id, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramStringNV(GLuint id, GLenum pname, GLubyte * program) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramStringNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetProgramStringNV(id, pname, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (program) {
        size_t _cGLubyte = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLubyte);
        for (size_t _iGLubyte = 0; _iGLubyte < _cGLubyte; ++_iGLubyte) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((program)[_iGLubyte]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTrackMatrixivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(address);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTrackMatrixivNV(target, address, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribdvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribdvNV(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribfvNV(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribivNV(GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribivNV(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribPointervNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribPointervNV(index, pname, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (pointer) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*pointer);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsProgramNV(GLuint program) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsProgramNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsProgramNV(program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte * program) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadProgramNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(id);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(len);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeString(reinterpret_cast<const char *>(program), len);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadProgramNV(target, id, len, program);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameter4dNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameter4dNV(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameter4dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLdouble123 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble123);
        for (size_t _iCGLdouble123 = 0; _iCGLdouble123 < _cCGLdouble123; ++_iCGLdouble123) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble123]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameter4dvNV(target, index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameter4fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameter4fNV(target, index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameter4fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat180 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat180);
        for (size_t _iCGLfloat180 = 0; _iCGLfloat180 < _cCGLfloat180; ++_iCGLfloat180) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat180]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameter4fvNV(target, index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameters4dvNV(GLenum target, GLuint index, GLsizei count, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameters4dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLdouble124 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble124);
        for (size_t _iCGLdouble124 = 0; _iCGLdouble124 < _cCGLdouble124; ++_iCGLdouble124) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble124]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameters4dvNV(target, index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramParameters4fvNV(GLenum target, GLuint index, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramParameters4fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat181 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat181);
        for (size_t _iCGLfloat181 = 0; _iCGLfloat181 < _cCGLfloat181; ++_iCGLfloat181) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat181]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glProgramParameters4fvNV(target, index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRequestResidentProgramsNV(GLsizei n, const GLuint * programs) {
    unsigned _call = trace::localWriter.beginEnter(&_glRequestResidentProgramsNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (programs) {
        size_t _cCPGLuint83 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint83);
        for (size_t _iCPGLuint83 = 0; _iCPGLuint83 < _cCPGLuint83; ++_iCPGLuint83) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((programs)[_iCPGLuint83]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRequestResidentProgramsNV(n, programs);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform) {
    unsigned _call = trace::localWriter.beginEnter(&_glTrackMatrixNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(address);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, matrix);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, transform);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTrackMatrixNV(target, address, matrix, transform);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribPointerNV(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
        os::log("apitrace: warning: %s: user memory arrays with NV_vertex_program longer supported\n", __FUNCTION__);
    _glVertexAttribPointerNV(index, size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribPointerNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribPointerNV(index, size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1dNV(GLuint index, GLdouble x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1dNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1dNV(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1dvNV(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeDouble(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1dvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1fNV(GLuint index, GLfloat x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1fNV(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1fvNV(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeFloat(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1fvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1sNV(GLuint index, GLshort x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1sNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1sNV(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib1svNV(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib1svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib1svNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2dNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2dNV(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2dvNV(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble126 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLdouble126);
        for (size_t _iCGLdouble126 = 0; _iCGLdouble126 < _cCGLdouble126; ++_iCGLdouble126) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble126]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2dvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2fNV(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2fvNV(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat183 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat183);
        for (size_t _iCGLfloat183 = 0; _iCGLfloat183 < _cCGLfloat183; ++_iCGLfloat183) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat183]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2fvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2sNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2sNV(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib2svNV(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib2svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort54 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLshort54);
        for (size_t _iCGLshort54 = 0; _iCGLshort54 < _cCGLshort54; ++_iCGLshort54) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort54]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib2svNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3dNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3dNV(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3dvNV(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble127 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLdouble127);
        for (size_t _iCGLdouble127 = 0; _iCGLdouble127 < _cCGLdouble127; ++_iCGLdouble127) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble127]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3dvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3fNV(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3fvNV(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat184 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat184);
        for (size_t _iCGLfloat184 = 0; _iCGLfloat184 < _cCGLfloat184; ++_iCGLfloat184) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat184]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3fvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3sNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3sNV(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib3svNV(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib3svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort55 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLshort55);
        for (size_t _iCGLshort55 = 0; _iCGLshort55 < _cCGLshort55; ++_iCGLshort55) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort55]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib3svNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4dNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeDouble(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeDouble(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4dNV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4dvNV(GLuint index, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLdouble128 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble128);
        for (size_t _iCGLdouble128 = 0; _iCGLdouble128 < _cCGLdouble128; ++_iCGLdouble128) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble128]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4dvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4fNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4fNV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4fvNV(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat185 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat185);
        for (size_t _iCGLfloat185 = 0; _iCGLfloat185 < _cCGLfloat185; ++_iCGLfloat185) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat185]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4fvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4sNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4sNV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4svNV(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort56 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort56);
        for (size_t _iCGLshort56 = 0; _iCGLshort56 < _cCGLshort56; ++_iCGLshort56) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort56]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4svNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4ubNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4ubNV(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttrib4ubvNV(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttrib4ubvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte26 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte26);
        for (size_t _iCGLubyte26 = 0; _iCGLubyte26 < _cCGLubyte26; ++_iCGLubyte26) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte26]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttrib4ubvNV(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs1dvNV(GLuint index, GLsizei count, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs1dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLdouble129 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLdouble129);
        for (size_t _iCGLdouble129 = 0; _iCGLdouble129 < _cCGLdouble129; ++_iCGLdouble129) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble129]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs1dvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs1fvNV(GLuint index, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs1fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat186 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLfloat186);
        for (size_t _iCGLfloat186 = 0; _iCGLfloat186 < _cCGLfloat186; ++_iCGLfloat186) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat186]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs1fvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs1svNV(GLuint index, GLsizei count, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs1svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLshort57 = count > 0 ? count : 0;
        trace::localWriter.beginArray(_cCGLshort57);
        for (size_t _iCGLshort57 = 0; _iCGLshort57 < _cCGLshort57; ++_iCGLshort57) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort57]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs1svNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs2dvNV(GLuint index, GLsizei count, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs2dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLdouble130 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLdouble130);
        for (size_t _iCGLdouble130 = 0; _iCGLdouble130 < _cCGLdouble130; ++_iCGLdouble130) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble130]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs2dvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs2fvNV(GLuint index, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs2fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat187 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat187);
        for (size_t _iCGLfloat187 = 0; _iCGLfloat187 < _cCGLfloat187; ++_iCGLfloat187) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat187]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs2fvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs2svNV(GLuint index, GLsizei count, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs2svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLshort58 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLshort58);
        for (size_t _iCGLshort58 = 0; _iCGLshort58 < _cCGLshort58; ++_iCGLshort58) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort58]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs2svNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs3dvNV(GLuint index, GLsizei count, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs3dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLdouble131 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLdouble131);
        for (size_t _iCGLdouble131 = 0; _iCGLdouble131 < _cCGLdouble131; ++_iCGLdouble131) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble131]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs3dvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs3fvNV(GLuint index, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs3fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat188 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLfloat188);
        for (size_t _iCGLfloat188 = 0; _iCGLfloat188 < _cCGLfloat188; ++_iCGLfloat188) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat188]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs3fvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs3svNV(GLuint index, GLsizei count, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs3svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLshort59 = count*3 > 0 ? count*3 : 0;
        trace::localWriter.beginArray(_cCGLshort59);
        for (size_t _iCGLshort59 = 0; _iCGLshort59 < _cCGLshort59; ++_iCGLshort59) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort59]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs3svNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs4dvNV(GLuint index, GLsizei count, const GLdouble * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs4dvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLdouble132 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLdouble132);
        for (size_t _iCGLdouble132 = 0; _iCGLdouble132 < _cCGLdouble132; ++_iCGLdouble132) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((v)[_iCGLdouble132]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs4dvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs4fvNV(GLuint index, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs4fvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat189 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat189);
        for (size_t _iCGLfloat189 = 0; _iCGLfloat189 < _cCGLfloat189; ++_iCGLfloat189) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat189]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs4fvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs4svNV(GLuint index, GLsizei count, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs4svNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLshort60 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLshort60);
        for (size_t _iCGLshort60 = 0; _iCGLshort60 < _cCGLshort60; ++_iCGLshort60) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort60]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs4svNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribs4ubvNV(GLuint index, GLsizei count, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribs4ubvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLubyte27 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLubyte27);
        for (size_t _iCGLubyte27 = 0; _iCGLubyte27 < _cCGLubyte27; ++_iCGLubyte27) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte27]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribs4ubvNV(index, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1iEXT(GLuint index, GLint x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1iEXT(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2iEXT(GLuint index, GLint x, GLint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2iEXT(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3iEXT(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4iEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4iEXT(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1uiEXT(GLuint index, GLuint x) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1uiEXT(index, x);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2uiEXT(index, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3uiEXT(index, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4uiEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4uiEXT(index, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1ivEXT(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1ivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2ivEXT(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint126 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLint126);
        for (size_t _iCGLint126 = 0; _iCGLint126 < _cCGLint126; ++_iCGLint126) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint126]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2ivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3ivEXT(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint127 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLint127);
        for (size_t _iCGLint127 = 0; _iCGLint127 < _cCGLint127; ++_iCGLint127) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint127]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3ivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4ivEXT(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4ivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint128 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint128);
        for (size_t _iCGLint128 = 0; _iCGLint128 < _cCGLint128; ++_iCGLint128) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint128]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4ivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI1uivEXT(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI1uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*v);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI1uivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI2uivEXT(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI2uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint86 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLuint86);
        for (size_t _iCGLuint86 = 0; _iCGLuint86 < _cCGLuint86; ++_iCGLuint86) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint86]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI2uivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI3uivEXT(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI3uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint87 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLuint87);
        for (size_t _iCGLuint87 = 0; _iCGLuint87 < _cCGLuint87; ++_iCGLuint87) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint87]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI3uivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4uivEXT(GLuint index, const GLuint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4uivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLuint88 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLuint88);
        for (size_t _iCGLuint88 = 0; _iCGLuint88 < _cCGLuint88; ++_iCGLuint88) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLuint88]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4uivEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4bvEXT(GLuint index, const GLbyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4bvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLbyte15 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLbyte15);
        for (size_t _iCGLbyte15 = 0; _iCGLbyte15 < _cCGLbyte15; ++_iCGLbyte15) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLbyte15]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4bvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4svEXT(GLuint index, const GLshort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4svEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLshort61 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort61);
        for (size_t _iCGLshort61 = 0; _iCGLshort61 < _cCGLshort61; ++_iCGLshort61) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLshort61]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4svEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4ubvEXT(GLuint index, const GLubyte * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4ubvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLubyte28 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte28);
        for (size_t _iCGLubyte28 = 0; _iCGLubyte28 < _cCGLubyte28; ++_iCGLubyte28) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLubyte28]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4ubvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribI4usvEXT(GLuint index, const GLushort * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribI4usvEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLushort13 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLushort13);
        for (size_t _iCGLushort13 = 0; _iCGLushort13 < _cCGLushort13; ++_iCGLushort13) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((v)[_iCGLushort13]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribI4usvEXT(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (!_array_buffer) {
        static bool warned = false;
        if (!warned) {
            warned = true;
            os::log("apitrace: warning: %s: call will be faked due to pointer to user memory (https://git.io/JOMRv)\n", __FUNCTION__);
        }
        gltrace::Context *_ctx = gltrace::getContext();
        _ctx->user_arrays = true;
    _glVertexAttribIPointerEXT(index, size, type, stride, pointer);
        return;
    }
    unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribIPointerEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVertexAttribIPointerEXT(index, size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribIivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribIivEXT(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVertexAttribIuivEXT_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVertexAttribIuivEXT(index, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBeginVideoCaptureNV(GLuint video_capture_slot) {
    unsigned _call = trace::localWriter.beginEnter(&_glBeginVideoCaptureNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBeginVideoCaptureNV(video_capture_slot);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVideoCaptureStreamBufferNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVideoCaptureStreamBufferNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, frame_region);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(offset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVideoCaptureStreamBufferNV(video_capture_slot, stream, frame_region, offset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVideoCaptureStreamTextureNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVideoCaptureStreamTextureNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, frame_region);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVideoCaptureStreamTextureNV(video_capture_slot, stream, frame_region, target, texture);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glEndVideoCaptureNV(GLuint video_capture_slot) {
    unsigned _call = trace::localWriter.beginEnter(&_glEndVideoCaptureNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glEndVideoCaptureNV(video_capture_slot);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoCaptureivNV(GLuint video_capture_slot, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoCaptureivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoCaptureivNV(video_capture_slot, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoCaptureStreamivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoCaptureStreamivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoCaptureStreamivNV(video_capture_slot, stream, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoCaptureStreamfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoCaptureStreamfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoCaptureStreamfvNV(video_capture_slot, stream, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetVideoCaptureStreamdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetVideoCaptureStreamdvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetVideoCaptureStreamdvNV(video_capture_slot, stream, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLdouble = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLdouble);
        for (size_t _iGLdouble = 0; _iGLdouble < _cGLdouble; ++_iGLdouble) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iGLdouble]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glVideoCaptureNV(GLuint video_capture_slot, GLuint * sequence_num, GLuint64EXT * capture_time) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glVideoCaptureNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glVideoCaptureNV(video_capture_slot, sequence_num, capture_time);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (sequence_num) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*sequence_num);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (capture_time) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*capture_time);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glVideoCaptureStreamParameterivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glVideoCaptureStreamParameterivNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLint129 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint129);
        for (size_t _iCGLint129 = 0; _iCGLint129 < _cCGLint129; ++_iCGLint129) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint129]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVideoCaptureStreamParameterivNV(video_capture_slot, stream, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVideoCaptureStreamParameterfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glVideoCaptureStreamParameterfvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLfloat190 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat190);
        for (size_t _iCGLfloat190 = 0; _iCGLfloat190 < _cCGLfloat190; ++_iCGLfloat190) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat190]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVideoCaptureStreamParameterfvNV(video_capture_slot, stream, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glVideoCaptureStreamParameterdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glVideoCaptureStreamParameterdvNV_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(video_capture_slot);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(stream);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cCGLdouble133 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLdouble133);
        for (size_t _iCGLdouble133 = 0; _iCGLdouble133 < _cCGLdouble133; ++_iCGLdouble133) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((params)[_iCGLdouble133]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glVideoCaptureStreamParameterdvNV(video_capture_slot, stream, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationSeparateOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, modeAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationSeparateOES(modeRGB, modeAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendFuncSeparateOES(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendFuncSeparateOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorRGB);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, sfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, dfactorAlpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBlendEquationOES(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glBlendEquationOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBlendEquationOES(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTexfOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTexfOES(x, y, z, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTexfvOES(const GLfloat * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTexfvOES_sig);
    trace::localWriter.beginArg(0);
    if (coords) {
        size_t _cCGLfloat191 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat191);
        for (size_t _iCGLfloat191 = 0; _iCGLfloat191 < _cCGLfloat191; ++_iCGLfloat191) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((coords)[_iCGLfloat191]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTexfvOES(coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTexiOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTexiOES(x, y, z, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTexivOES(const GLint * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTexivOES_sig);
    trace::localWriter.beginArg(0);
    if (coords) {
        size_t _cCGLint130 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint130);
        for (size_t _iCGLint130 = 0; _iCGLint130 < _cCGLint130; ++_iCGLint130) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLint130]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTexivOES(coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTexsOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTexsOES(x, y, z, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawTexsvOES(const GLshort * coords) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawTexsvOES_sig);
    trace::localWriter.beginArg(0);
    if (coords) {
        size_t _cCGLshort62 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLshort62);
        for (size_t _iCGLshort62 = 0; _iCGLshort62 < _cCGLshort62; ++_iCGLshort62) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((coords)[_iCGLshort62]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawTexsvOES(coords);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsRenderbufferOES(GLuint renderbuffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsRenderbufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsRenderbufferOES(renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindRenderbufferOES(GLenum target, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindRenderbufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindRenderbufferOES(target, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteRenderbuffersOES(GLsizei n, const GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteRenderbuffersOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cCPGLuint102 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint102);
        for (size_t _iCPGLuint102 = 0; _iCPGLuint102 < _cCPGLuint102; ++_iCPGLuint102) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iCPGLuint102]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteRenderbuffersOES(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenRenderbuffersOES(GLsizei n, GLuint * renderbuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenRenderbuffersOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenRenderbuffersOES(n, renderbuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (renderbuffers) {
        size_t _cPGLuint10 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint10);
        for (size_t _iPGLuint10 = 0; _iPGLuint10 < _cPGLuint10; ++_iPGLuint10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((renderbuffers)[_iPGLuint10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glRenderbufferStorageOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glRenderbufferStorageOES(target, internalformat, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetRenderbufferParameterivOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetRenderbufferParameterivOES(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsFramebufferOES(GLuint framebuffer) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsFramebufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsFramebufferOES(framebuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glBindFramebufferOES(GLenum target, GLuint framebuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindFramebufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindFramebufferOES(target, framebuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteFramebuffersOES(GLsizei n, const GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteFramebuffersOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cCPGLuint92 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint92);
        for (size_t _iCPGLuint92 = 0; _iCPGLuint92 < _cCPGLuint92; ++_iCPGLuint92) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iCPGLuint92]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteFramebuffersOES(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenFramebuffersOES(GLsizei n, GLuint * framebuffers) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenFramebuffersOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenFramebuffersOES(n, framebuffers);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (framebuffers) {
        size_t _cPGLuint9 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint9);
        for (size_t _iPGLuint9 = 0; _iPGLuint9 < _cPGLuint9; ++_iPGLuint9) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((framebuffers)[_iPGLuint9]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLenum APIENTRY glCheckFramebufferStatusOES(GLenum target) {
    GLenum _result;
    unsigned _call = trace::localWriter.beginEnter(&_glCheckFramebufferStatusOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glCheckFramebufferStatusOES(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLenum_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture2DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferRenderbufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, renderbuffertarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(renderbuffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFramebufferAttachmentParameterivOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenerateMipmapOES(GLenum target) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenerateMipmapOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenerateMipmapOES(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, GLvoid * binary) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetProgramBinaryOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(bufSize);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    bufSize = 0;
    _glGetProgramBinaryOES(program, bufSize, length, binaryFormat, binary);
    if (length) {
        *length = 0;
    }
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (length) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*length);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (binaryFormat) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeEnum(&_enumGLenum_sig, *binaryFormat);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writePointer((uintptr_t)binary);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid * binary, GLsizei length) {
    unsigned _call = trace::localWriter.beginEnter(&_glProgramBinaryOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, binaryFormat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeBlob(binary, length);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(length);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
   binaryFormat = 0xDEADDEAD;
   binary = &binaryFormat;
   length = sizeof binaryFormat;
    _glProgramBinaryOES(program, binaryFormat, binary, length);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid * * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetBufferPointervOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetBufferPointervOES(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writePointer((uintptr_t)*params);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLvoid * APIENTRY glMapBufferOES(GLenum target, GLenum access) {
    GLvoid * _result;
    unsigned _call = trace::localWriter.beginEnter(&_glMapBufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, access);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glMapBufferOES(target, access);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writePointer((uintptr_t)_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLboolean APIENTRY glUnmapBufferOES(GLenum target) {
    GLboolean _result;
    GLint access_flags = 0;
    GLint access = 0;
    bool flush;
    // GLES3 does not have GL_BUFFER_ACCESS;
    if (_checkBufferMapRange) {
        _glGetBufferParameteriv(target, GL_BUFFER_ACCESS_FLAGS, &access_flags);
        flush = (access_flags & GL_MAP_WRITE_BIT) && !(access_flags & (GL_MAP_FLUSH_EXPLICIT_BIT | GL_MAP_PERSISTENT_BIT));
    } else {
        _glGetBufferParameteriv(target, GL_BUFFER_ACCESS, &access);
        flush = access != GL_READ_ONLY;
    }
    if (flush) {
        GLvoid *map = NULL;
        _glGetBufferPointervOES(target, GL_BUFFER_MAP_POINTER, &map);
        if (map) {
            GLint length = 0;
            GLint offset = 0;
            if (_checkBufferMapRange) {
                _glGetBufferParameteriv(target, GL_BUFFER_MAP_LENGTH, &length);
                _glGetBufferParameteriv(target, GL_BUFFER_MAP_OFFSET, &offset);
            } else {
                _glGetBufferParameteriv(target, GL_BUFFER_SIZE, &length);
            }
            if (flush && length > 0) {
    trace::fakeMemcpy(map, length);
            }
        }
    }
    unsigned _call = trace::localWriter.beginEnter(&_glUnmapBufferOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glUnmapBufferOES(target);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glCurrentPaletteMatrixOES(GLuint index) {
    unsigned _call = trace::localWriter.beginEnter(&_glCurrentPaletteMatrixOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCurrentPaletteMatrixOES(index);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadPaletteFromModelViewMatrixOES(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadPaletteFromModelViewMatrixOES_sig);
    trace::localWriter.endEnter();
    _glLoadPaletteFromModelViewMatrixOES();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glMatrixIndexPointerOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glMatrixIndexPointerOES(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glWeightPointerOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glWeightPointerOES(size, type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid * ptr) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointSizePointerOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)ptr);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointSizePointerOES(type, stride, ptr);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLbitfield APIENTRY glQueryMatrixxOES(GLfixed * mantissa, GLint * exponent) {
    GLbitfield _result;
    unsigned _call = trace::localWriter.beginEnter(&_glQueryMatrixxOES_sig);
    trace::localWriter.beginArg(0);
    if (mantissa) {
        size_t _cGLfixed = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((mantissa)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (exponent) {
        size_t _cGLint = 16 > 0 ? 16 : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((exponent)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glQueryMatrixxOES(mantissa, exponent);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glClearDepthfOES(GLclampf depth) {
    unsigned _call = trace::localWriter.beginEnter(&_glClearDepthfOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(depth);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClearDepthfOES(depth);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glClipPlanefOES(GLenum plane, const GLfloat * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glClipPlanefOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cCGLfloat192 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat192);
        for (size_t _iCGLfloat192 = 0; _iCGLfloat192 < _cCGLfloat192; ++_iCGLfloat192) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((equation)[_iCGLfloat192]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glClipPlanefOES(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangefOES(GLclampf n, GLclampf f) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangefOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(f);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangefOES(n, f);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFrustumfOES(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrustumfOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(l);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(f);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFrustumfOES(l, r, b, t, n, f);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetClipPlanefOES(GLenum plane, GLfloat * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetClipPlanefOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, plane);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetClipPlanefOES(plane, equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (equation) {
        size_t _cGLfloat = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((equation)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glOrthofOES(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f) {
    unsigned _call = trace::localWriter.beginEnter(&_glOrthofOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(l);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(f);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glOrthofOES(l, r, b, t, n, f);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexImage3DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage3DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)pixels);
        } else {
    trace::localWriter.writeBlob(pixels, _glTexImage3D_size(format, type, width, height, depth));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyTexSubImage3DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexImage3DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, internalformat, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glCompressedTexSubImage3DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(imageSize);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)data);
        } else {
            writeCompressedTex(data, format, width, height, depth, imageSize, can_unpack_subimage(), [](const void* data, GLsizei size){ trace::localWriter.writeBlob(data, size); });
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCompressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTexture3DOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, textarget);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenfOES(GLenum coord, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenfOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenfOES(coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenfvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat193 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat193);
        for (size_t _iCGLfloat193 = 0; _iCGLfloat193 < _cCGLfloat193; ++_iCGLfloat193) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat193]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenfvOES(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGeniOES(GLenum coord, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGeniOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGeniOES(coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenivOES(GLenum coord, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenivOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint131 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint131);
        for (size_t _iCGLint131 = 0; _iCGLint131 < _cCGLint131; ++_iCGLint131) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint131]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenivOES(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenxOES(GLenum coord, GLenum pname, GLfixed param) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenxOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(param);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenxOES(coord, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexGenxvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfixed10 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfixed10);
        for (size_t _iCGLfixed10 = 0; _iCGLfixed10 < _cCGLfixed10; ++_iCGLfixed10) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLfixed10]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexGenxvOES(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexGenfvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexGenfvOES(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexGenivOES(GLenum coord, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexGenivOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexGenivOES(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexGenxvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, coord);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexGenxvOES(coord, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfixed = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfixed);
        for (size_t _iGLfixed = 0; _iGLfixed < _cGLfixed; ++_iGLfixed) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLfixed]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glBindVertexArrayOES(GLuint array) {
    unsigned _call = trace::localWriter.beginEnter(&_glBindVertexArrayOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glBindVertexArrayOES(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeleteVertexArraysOES(GLsizei n, const GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteVertexArraysOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cCPGLuint122 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCPGLuint122);
        for (size_t _iCPGLuint122 = 0; _iCPGLuint122 < _cCPGLuint122; ++_iCPGLuint122) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iCPGLuint122]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteVertexArraysOES(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGenVertexArraysOES(GLsizei n, GLuint * arrays) {
    unsigned _call = trace::localWriter.beginEnter(&_glGenVertexArraysOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGenVertexArraysOES(n, arrays);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (arrays) {
        size_t _cPGLuint12 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cPGLuint12);
        for (size_t _iPGLuint12 = 0; _iPGLuint12 < _cPGLuint12; ++_iPGLuint12) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((arrays)[_iPGLuint12]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsVertexArrayOES(GLuint array) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsVertexArrayOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(array);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsVertexArrayOES(array);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glViewportArrayvOES(GLuint first, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewportArrayvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat194 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLfloat194);
        for (size_t _iCGLfloat194 = 0; _iCGLfloat194 < _cCGLfloat194; ++_iCGLfloat194) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat194]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewportArrayvOES(first, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glViewportIndexedfOES(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewportIndexedfOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(h);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewportIndexedfOES(index, x, y, w, h);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glViewportIndexedfvOES(GLuint index, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glViewportIndexedfvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat195 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat195);
        for (size_t _iCGLfloat195 = 0; _iCGLfloat195 < _cCGLfloat195; ++_iCGLfloat195) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat195]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glViewportIndexedfvOES(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissorArrayvOES(GLuint first, GLsizei count, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissorArrayvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLint132 = count*4 > 0 ? count*4 : 0;
        trace::localWriter.beginArray(_cCGLint132);
        for (size_t _iCGLint132 = 0; _iCGLint132 < _cCGLint132; ++_iCGLint132) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint132]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissorArrayvOES(first, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissorIndexedOES(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissorIndexedOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(left);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(bottom);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissorIndexedOES(index, left, bottom, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glScissorIndexedvOES(GLuint index, const GLint * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glScissorIndexedvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLint133 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLint133);
        for (size_t _iCGLint133 = 0; _iCGLint133 < _cCGLint133; ++_iCGLint133) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((v)[_iCGLint133]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glScissorIndexedvOES(index, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangeArrayfvOES(GLuint first, GLsizei count, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangeArrayfvOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat196 = count*2 > 0 ? count*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat196);
        for (size_t _iCGLfloat196 = 0; _iCGLfloat196 < _cCGLfloat196; ++_iCGLfloat196) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat196]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangeArrayfvOES(first, count, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDepthRangeIndexedfOES(GLuint index, GLfloat n, GLfloat f) {
    unsigned _call = trace::localWriter.beginEnter(&_glDepthRangeIndexedfOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(f);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDepthRangeIndexedfOES(index, n, f);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFloati_vOES(GLenum target, GLuint index, GLfloat * data) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFloati_vOES_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFloati_vOES(target, index, data);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (data) {
        size_t _cGLfloat = _gl_param_size(target) > 0 ? _gl_param_size(target) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((data)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFramebufferTextureMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews) {
    unsigned _call = trace::localWriter.beginEnter(&_glFramebufferTextureMultiviewOVR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(baseViewIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(numViews);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFramebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNamedFramebufferTextureMultiviewOVR(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews) {
    unsigned _call = trace::localWriter.beginEnter(&_glNamedFramebufferTextureMultiviewOVR_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(framebuffer);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, attachment);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(texture);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(baseViewIndex);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(numViews);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNamedFramebufferTextureMultiviewOVR(framebuffer, attachment, texture, level, baseViewIndex, numViews);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glHintPGI(GLenum target, GLint mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glHintPGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glHintPGI(target, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDetailTexFuncSGIS(GLenum target, GLsizei n, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glDetailTexFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (points) {
        size_t _cCGLfloat197 = n*2 > 0 ? n*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat197);
        for (size_t _iCGLfloat197 = 0; _iCGLfloat197 < _cCGLfloat197; ++_iCGLfloat197) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((points)[_iCGLfloat197]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDetailTexFuncSGIS(target, n, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetDetailTexFuncSGIS(GLenum target, GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetDetailTexFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetDetailTexFuncSGIS(target, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFogFuncSGIS(GLsizei n, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glFogFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (points) {
        size_t _cCGLfloat198 = n*2 > 0 ? n*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat198);
        for (size_t _iCGLfloat198 = 0; _iCGLfloat198 < _cCGLfloat198; ++_iCGLfloat198) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((points)[_iCGLfloat198]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFogFuncSGIS(n, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFogFuncSGIS(GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFogFuncSGIS_sig);
    trace::localWriter.endEnter();
    _glGetFogFuncSGIS(points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSampleMaskSGIS(GLclampf value, GLboolean invert) {
    unsigned _call = trace::localWriter.beginEnter(&_glSampleMaskSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(value);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, invert);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSampleMaskSGIS(value, invert);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSamplePatternSGIS(GLenum pattern) {
    unsigned _call = trace::localWriter.beginEnter(&_glSamplePatternSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pattern);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSamplePatternSGIS(pattern);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTexGenParameteriSGIS(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTexGenParameteriSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTexGenParameteriSGIS(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTexGenParameterivSGIS(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTexGenParameterivSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint134 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint134);
        for (size_t _iCGLint134 = 0; _iCGLint134 < _cCGLint134; ++_iCGLint134) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint134]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTexGenParameterivSGIS(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTexGenParameterfSGIS(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTexGenParameterfSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTexGenParameterfSGIS(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTexGenParameterfvSGIS(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTexGenParameterfvSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat199 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat199);
        for (size_t _iCGLfloat199 = 0; _iCGLfloat199 < _cCGLfloat199; ++_iCGLfloat199) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat199]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTexGenParameterfvSGIS(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelTexGenParameterivSGIS(GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelTexGenParameterivSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelTexGenParameterivSGIS(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetPixelTexGenParameterfvSGIS(GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetPixelTexGenParameterfvSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetPixelTexGenParameterfvSGIS(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfSGIS(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfSGIS(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPointParameterfvSGIS(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glPointParameterfvSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat200 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat200);
        for (size_t _iCGLfloat200 = 0; _iCGLfloat200 < _cCGLfloat200; ++_iCGLfloat200) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat200]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPointParameterfvSGIS(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSharpenTexFuncSGIS(GLenum target, GLsizei n, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glSharpenTexFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (points) {
        size_t _cCGLfloat201 = n*2 > 0 ? n*2 : 0;
        trace::localWriter.beginArray(_cCGLfloat201);
        for (size_t _iCGLfloat201 = 0; _iCGLfloat201 < _cCGLfloat201; ++_iCGLfloat201) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((points)[_iCGLfloat201]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSharpenTexFuncSGIS(target, n, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetSharpenTexFuncSGIS(GLenum target, GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetSharpenTexFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetSharpenTexFuncSGIS(target, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexImage4DSGIS(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexImage4DSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(size4d);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(border);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexImage4DSGIS(target, level, internalformat, width, height, depth, size4d, border, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexSubImage4DSGIS(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid * pixels) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glTexSubImage4DSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(xoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(yoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(zoffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(woffset);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(depth);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeSInt(size4d);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writePointer((uintptr_t)pixels);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexSubImage4DSGIS(target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTextureColorMaskSGIS(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
    unsigned _call = trace::localWriter.beginEnter(&_glTextureColorMaskSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, red);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, green);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, blue);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, alpha);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTextureColorMaskSGIS(red, green, blue, alpha);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetTexFilterFuncSGIS(GLenum target, GLenum filter, GLfloat * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetTexFilterFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetTexFilterFuncSGIS(target, filter, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)weights);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexFilterFuncSGIS(GLenum target, GLenum filter, GLsizei n, const GLfloat * weights) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexFilterFuncSGIS_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, filter);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(n);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (weights) {
        size_t _cCGLfloat202 = n > 0 ? n : 0;
        trace::localWriter.beginArray(_cCGLfloat202);
        for (size_t _iCGLfloat202 = 0; _iCGLfloat202 < _cCGLfloat202; ++_iCGLfloat202) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((weights)[_iCGLfloat202]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexFilterFuncSGIS(target, filter, n, weights);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAsyncMarkerSGIX(GLuint marker) {
    unsigned _call = trace::localWriter.beginEnter(&_glAsyncMarkerSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(marker);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAsyncMarkerSGIX(marker);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glFinishAsyncSGIX(GLuint * markerp) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glFinishAsyncSGIX_sig);
    trace::localWriter.endEnter();
    _result = _glFinishAsyncSGIX(markerp);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    if (markerp) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*markerp);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLint APIENTRY glPollAsyncSGIX(GLuint * markerp) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glPollAsyncSGIX_sig);
    trace::localWriter.endEnter();
    _result = _glPollAsyncSGIX(markerp);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    if (markerp) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*markerp);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
GLuint APIENTRY glGenAsyncMarkersSGIX(GLsizei range) {
    GLuint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGenAsyncMarkersSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glGenAsyncMarkersSGIX(range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeUInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glDeleteAsyncMarkersSGIX(GLuint marker, GLsizei range) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeleteAsyncMarkersSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(marker);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(range);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeleteAsyncMarkersSGIX(marker, range);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLboolean APIENTRY glIsAsyncMarkerSGIX(GLuint marker) {
    GLboolean _result;
    unsigned _call = trace::localWriter.beginEnter(&_glIsAsyncMarkerSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(marker);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _result = _glIsAsyncMarkerSGIX(marker);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeEnum(&_enumGLboolean_sig, _result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glFlushRasterSGIX(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFlushRasterSGIX_sig);
    trace::localWriter.endEnter();
    _glFlushRasterSGIX();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentColorMaterialSGIX(GLenum face, GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentColorMaterialSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentColorMaterialSGIX(face, mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightfSGIX(GLenum light, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightfSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightfSGIX(light, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightfvSGIX(GLenum light, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat203 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat203);
        for (size_t _iCGLfloat203 = 0; _iCGLfloat203 < _cCGLfloat203; ++_iCGLfloat203) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat203]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightfvSGIX(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightiSGIX(GLenum light, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightiSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightiSGIX(light, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightivSGIX(GLenum light, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint135 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint135);
        for (size_t _iCGLint135 = 0; _iCGLint135 < _cCGLint135; ++_iCGLint135) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint135]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightivSGIX(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightModelfSGIX(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightModelfSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightModelfSGIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightModelfvSGIX(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightModelfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat204 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat204);
        for (size_t _iCGLfloat204 = 0; _iCGLfloat204 < _cCGLfloat204; ++_iCGLfloat204) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat204]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightModelfvSGIX(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightModeliSGIX(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightModeliSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightModeliSGIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentLightModelivSGIX(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentLightModelivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint136 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint136);
        for (size_t _iCGLint136 = 0; _iCGLint136 < _cCGLint136; ++_iCGLint136) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint136]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentLightModelivSGIX(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentMaterialfSGIX(GLenum face, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentMaterialfSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentMaterialfSGIX(face, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentMaterialfvSGIX(GLenum face, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentMaterialfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat205 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat205);
        for (size_t _iCGLfloat205 = 0; _iCGLfloat205 < _cCGLfloat205; ++_iCGLfloat205) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat205]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentMaterialfvSGIX(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentMaterialiSGIX(GLenum face, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentMaterialiSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentMaterialiSGIX(face, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFragmentMaterialivSGIX(GLenum face, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glFragmentMaterialivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint137 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint137);
        for (size_t _iCGLint137 = 0; _iCGLint137 < _cCGLint137; ++_iCGLint137) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint137]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFragmentMaterialivSGIX(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFragmentLightfvSGIX(GLenum light, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragmentLightfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFragmentLightfvSGIX(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFragmentLightivSGIX(GLenum light, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragmentLightivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, light);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFragmentLightivSGIX(light, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFragmentMaterialfvSGIX(GLenum face, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragmentMaterialfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFragmentMaterialfvSGIX(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetFragmentMaterialivSGIX(GLenum face, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetFragmentMaterialivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, face);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetFragmentMaterialivSGIX(face, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLightEnviSGIX(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glLightEnviSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLightEnviSGIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFrameZoomSGIX(GLint factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glFrameZoomSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glFrameZoomSGIX(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glIglooInterfaceSGIX(GLenum pname, const GLvoid * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glIglooInterfaceSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)params);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glIglooInterfaceSGIX(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glGetInstrumentsSGIX(void) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glGetInstrumentsSGIX_sig);
    trace::localWriter.endEnter();
    _result = _glGetInstrumentsSGIX();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glInstrumentsBufferSGIX(GLsizei size, GLint * buffer) {
    unsigned _call = trace::localWriter.beginEnter(&_glInstrumentsBufferSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writePointer((uintptr_t)buffer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glInstrumentsBufferSGIX(size, buffer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
GLint APIENTRY glPollInstrumentsSGIX(GLint * marker_p) {
    GLint _result;
    unsigned _call = trace::localWriter.beginEnter(&_glPollInstrumentsSGIX_sig);
    trace::localWriter.endEnter();
    _result = _glPollInstrumentsSGIX(marker_p);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(0);
    if (marker_p) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeSInt(*marker_p);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.beginReturn();
    trace::localWriter.writeSInt(_result);
    trace::localWriter.endReturn();
    trace::localWriter.endLeave();
    return _result;
}

extern "C" PUBLIC
void APIENTRY glReadInstrumentsSGIX(GLint marker) {
    unsigned _call = trace::localWriter.beginEnter(&_glReadInstrumentsSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(marker);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReadInstrumentsSGIX(marker);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStartInstrumentsSGIX(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glStartInstrumentsSGIX_sig);
    trace::localWriter.endEnter();
    _glStartInstrumentsSGIX();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glStopInstrumentsSGIX(GLint marker) {
    unsigned _call = trace::localWriter.beginEnter(&_glStopInstrumentsSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(marker);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glStopInstrumentsSGIX(marker);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetListParameterfvSGIX(GLuint list, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetListParameterfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetListParameterfvSGIX(list, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetListParameterivSGIX(GLuint list, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetListParameterivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetListParameterivSGIX(list, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glListParameterfSGIX(GLuint list, GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glListParameterfSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glListParameterfSGIX(list, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glListParameterfvSGIX(GLuint list, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glListParameterfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat206 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat206);
        for (size_t _iCGLfloat206 = 0; _iCGLfloat206 < _cCGLfloat206; ++_iCGLfloat206) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat206]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glListParameterfvSGIX(list, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glListParameteriSGIX(GLuint list, GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glListParameteriSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glListParameteriSGIX(list, pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glListParameterivSGIX(GLuint list, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glListParameterivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint138 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint138);
        for (size_t _iCGLint138 = 0; _iCGLint138 < _cCGLint138; ++_iCGLint138) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint138]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glListParameterivSGIX(list, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glPixelTexGenSGIX(GLenum mode) {
    unsigned _call = trace::localWriter.beginEnter(&_glPixelTexGenSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glPixelTexGenSGIX(mode);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeformationMap3dSGIX(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeformationMap3dSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeDouble(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeDouble(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeDouble(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeDouble(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeDouble(w1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeDouble(w2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeSInt(wstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeSInt(worder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(13);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeformationMap3dSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeformationMap3fSGIX(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat * points) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeformationMap3fSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(u1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(u2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(ustride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(uorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(v1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(v2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeSInt(vstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeSInt(vorder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(w1);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeFloat(w2);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeSInt(wstride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeSInt(worder);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(13);
    trace::localWriter.writePointer((uintptr_t)points);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeformationMap3fSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDeformSGIX(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glDeformSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDeformSGIX(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glLoadIdentityDeformationMapSGIX(GLbitfield mask) {
    unsigned _call = trace::localWriter.beginEnter(&_glLoadIdentityDeformationMapSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(mask);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glLoadIdentityDeformationMapSGIX(mask);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReferencePlaneSGIX(const GLdouble * equation) {
    unsigned _call = trace::localWriter.beginEnter(&_glReferencePlaneSGIX_sig);
    trace::localWriter.beginArg(0);
    if (equation) {
        size_t _cCGLdouble135 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLdouble135);
        for (size_t _iCGLdouble135 = 0; _iCGLdouble135 < _cCGLdouble135; ++_iCGLdouble135) {
            trace::localWriter.beginElement();
    trace::localWriter.writeDouble((equation)[_iCGLdouble135]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReferencePlaneSGIX(equation);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSpriteParameterfSGIX(GLenum pname, GLfloat param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSpriteParameterfSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeFloat(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSpriteParameterfSGIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSpriteParameterfvSGIX(GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glSpriteParameterfvSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLfloat208 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat208);
        for (size_t _iCGLfloat208 = 0; _iCGLfloat208 < _cCGLfloat208; ++_iCGLfloat208) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat208]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSpriteParameterfvSGIX(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSpriteParameteriSGIX(GLenum pname, GLint param) {
    unsigned _call = trace::localWriter.beginEnter(&_glSpriteParameteriSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (is_symbolic_pname(pname) && is_symbolic_param(param)) {
    trace::localWriter.writeEnum(&_enumGLenum_sig, param);
    } else {
    trace::localWriter.writeSInt(param);
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSpriteParameteriSGIX(pname, param);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glSpriteParameterivSGIX(GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glSpriteParameterivSGIX_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (params) {
        size_t _cCGLint139 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint139);
        for (size_t _iCGLint139 = 0; _iCGLint139 < _cCGLint139; ++_iCGLint139) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint139]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glSpriteParameterivSGIX(pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTagSampleBufferSGIX(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glTagSampleBufferSGIX_sig);
    trace::localWriter.endEnter();
    _glTagSampleBufferSGIX();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTableSGI(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table) {
    gltrace::Context *_ctx = gltrace::getContext();
    GLMemoryShadow::commitAllWrites(_ctx, trace::fakeMemcpy);

    unsigned _call = trace::localWriter.beginEnter(&_glColorTableSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    {
        gltrace::Context *_ctx = gltrace::getContext();
        GLint _unpack_buffer = 0;
        if (_ctx->features.pixel_buffer_object)
            _glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &_unpack_buffer);
        if (_unpack_buffer) {
            trace::localWriter.writePointer((uintptr_t)table);
        } else {
    trace::localWriter.writeBlob(table, _glColorTable_size(format, type, width));
        }
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTableSGI(target, internalformat, width, format, type, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTableParameterfvSGI(GLenum target, GLenum pname, const GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorTableParameterfvSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLfloat209 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLfloat209);
        for (size_t _iCGLfloat209 = 0; _iCGLfloat209 < _cCGLfloat209; ++_iCGLfloat209) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iCGLfloat209]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTableParameterfvSGI(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColorTableParameterivSGI(GLenum target, GLenum pname, const GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glColorTableParameterivSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cCGLint140 = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cCGLint140);
        for (size_t _iCGLint140 = 0; _iCGLint140 < _cCGLint140; ++_iCGLint140) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iCGLint140]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColorTableParameterivSGI(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glCopyColorTableSGI(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glCopyColorTableSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glCopyColorTableSGI(target, internalformat, x, y, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableSGI(GLenum target, GLenum format, GLenum type, GLvoid * table) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableSGI(target, format, type, table);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(3);
    trace::localWriter.writePointer((uintptr_t)table);
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableParameterfvSGI(GLenum target, GLenum pname, GLfloat * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableParameterfvSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableParameterfvSGI(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLfloat = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLfloat);
        for (size_t _iGLfloat = 0; _iGLfloat < _cGLfloat; ++_iGLfloat) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((params)[_iGLfloat]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGetColorTableParameterivSGI(GLenum target, GLenum pname, GLint * params) {
    unsigned _call = trace::localWriter.beginEnter(&_glGetColorTableParameterivSGI_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, pname);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGetColorTableParameterivSGI(target, pname, params);
    trace::localWriter.beginLeave(_call);
    if (true) {
    trace::localWriter.beginArg(2);
    if (params) {
        size_t _cGLint = _gl_param_size(pname) > 0 ? _gl_param_size(pname) : 0;
        trace::localWriter.beginArray(_cGLint);
        for (size_t _iGLint = 0; _iGLint < _cGLint; ++_iGLint) {
            trace::localWriter.beginElement();
    trace::localWriter.writeSInt((params)[_iGLint]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glFinishTextureSUNX(void) {
    unsigned _call = trace::localWriter.beginEnter(&_glFinishTextureSUNX_sig);
    trace::localWriter.endEnter();
    _glFinishTextureSUNX();
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactorbSUN(GLbyte factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactorbSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactorbSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactorsSUN(GLshort factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactorsSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactorsSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactoriSUN(GLint factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactoriSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactoriSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactorfSUN(GLfloat factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactorfSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactorfSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactordSUN(GLdouble factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactordSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeDouble(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactordSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactorubSUN(GLubyte factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactorubSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactorubSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactorusSUN(GLushort factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactorusSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactorusSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glGlobalAlphaFactoruiSUN(GLuint factor) {
    unsigned _call = trace::localWriter.beginEnter(&_glGlobalAlphaFactoruiSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(factor);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glGlobalAlphaFactoruiSUN(factor);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glDrawMeshArraysSUN(GLenum mode, GLint first, GLsizei count, GLsizei width) {
    unsigned _call = trace::localWriter.beginEnter(&_glDrawMeshArraysSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum1_sig, mode);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(first);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(count);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glDrawMeshArraysSUN(mode, first, count, width);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiSUN(GLuint code) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(code);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiSUN(code);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeusSUN(GLushort code) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeusSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(code);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeusSUN(code);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeubSUN(GLubyte code) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeubSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(code);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeubSUN(code);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuivSUN(const GLuint * code) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuivSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)code);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuivSUN(code);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeusvSUN(const GLushort * code) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeusvSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)code);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeusvSUN(code);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeubvSUN(const GLubyte * code) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeubvSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writePointer((uintptr_t)code);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeubvSUN(code);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodePointerSUN(GLenum type, GLsizei stride, const GLvoid * * pointer) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodePointerSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writePointer((uintptr_t)pointer);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodePointerSUN(type, stride, pointer);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ubVertex2fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ubVertex2fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ubVertex2fSUN(r, g, b, a, x, y);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ubVertex2fvSUN(const GLubyte * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ubVertex2fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        size_t _cCGLubyte30 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte30);
        for (size_t _iCGLubyte30 = 0; _iCGLubyte30 < _cCGLubyte30; ++_iCGLubyte30) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((c)[_iCGLubyte30]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat210 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat210);
        for (size_t _iCGLfloat210 = 0; _iCGLfloat210 < _cCGLfloat210; ++_iCGLfloat210) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat210]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ubVertex2fvSUN(c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ubVertex3fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ubVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ubVertex3fSUN(r, g, b, a, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4ubVertex3fvSUN(const GLubyte * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4ubVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        size_t _cCGLubyte31 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte31);
        for (size_t _iCGLubyte31 = 0; _iCGLubyte31 < _cCGLubyte31; ++_iCGLubyte31) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((c)[_iCGLubyte31]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat211 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat211);
        for (size_t _iCGLfloat211 = 0; _iCGLfloat211 < _cCGLfloat211; ++_iCGLfloat211) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat211]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4ubVertex3fvSUN(c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3fVertex3fSUN(r, g, b, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor3fVertex3fvSUN(const GLfloat * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        size_t _cCGLfloat212 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat212);
        for (size_t _iCGLfloat212 = 0; _iCGLfloat212 < _cCGLfloat212; ++_iCGLfloat212) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat212]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat213 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat213);
        for (size_t _iCGLfloat213 = 0; _iCGLfloat213 < _cCGLfloat213; ++_iCGLfloat213) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat213]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor3fVertex3fvSUN(c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3fVertex3fSUN(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3fVertex3fSUN(nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glNormal3fVertex3fvSUN(const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (n) {
        size_t _cCGLfloat214 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat214);
        for (size_t _iCGLfloat214 = 0; _iCGLfloat214 < _cCGLfloat214; ++_iCGLfloat214) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat214]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat215 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat215);
        for (size_t _iCGLfloat215 = 0; _iCGLfloat215 < _cCGLfloat215; ++_iCGLfloat215) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat215]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glNormal3fVertex3fvSUN(n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4fNormal3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4fNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4fNormal3fVertex3fSUN(r, g, b, a, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glColor4fNormal3fVertex3fvSUN(const GLfloat * c, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glColor4fNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (c) {
        size_t _cCGLfloat216 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat216);
        for (size_t _iCGLfloat216 = 0; _iCGLfloat216 < _cCGLfloat216; ++_iCGLfloat216) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat216]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (n) {
        size_t _cCGLfloat217 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat217);
        for (size_t _iCGLfloat217 = 0; _iCGLfloat217 < _cCGLfloat217; ++_iCGLfloat217) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat217]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat218 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat218);
        for (size_t _iCGLfloat218 = 0; _iCGLfloat218 < _cCGLfloat218; ++_iCGLfloat218) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat218]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glColor4fNormal3fVertex3fvSUN(c, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fVertex3fSUN(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fVertex3fSUN(s, t, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fVertex3fvSUN(const GLfloat * tc, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat219 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat219);
        for (size_t _iCGLfloat219 = 0; _iCGLfloat219 < _cCGLfloat219; ++_iCGLfloat219) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat219]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat220 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat220);
        for (size_t _iCGLfloat220 = 0; _iCGLfloat220 < _cCGLfloat220; ++_iCGLfloat220) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat220]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fVertex3fvSUN(tc, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4fVertex4fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(p);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(q);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4fVertex4fSUN(s, t, p, q, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4fVertex4fvSUN(const GLfloat * tc, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4fVertex4fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat221 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat221);
        for (size_t _iCGLfloat221 = 0; _iCGLfloat221 < _cCGLfloat221; ++_iCGLfloat221) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat221]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat222 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat222);
        for (size_t _iCGLfloat222 = 0; _iCGLfloat222 < _cCGLfloat222; ++_iCGLfloat222) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat222]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4fVertex4fvSUN(tc, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fColor4ubVertex3fSUN(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fColor4ubVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeUInt(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fColor4ubVertex3fSUN(s, t, r, g, b, a, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fColor4ubVertex3fvSUN(const GLfloat * tc, const GLubyte * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fColor4ubVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat223 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat223);
        for (size_t _iCGLfloat223 = 0; _iCGLfloat223 < _cCGLfloat223; ++_iCGLfloat223) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat223]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLubyte32 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte32);
        for (size_t _iCGLubyte32 = 0; _iCGLubyte32 < _cCGLubyte32; ++_iCGLubyte32) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((c)[_iCGLubyte32]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat224 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat224);
        for (size_t _iCGLfloat224 = 0; _iCGLfloat224 < _cCGLfloat224; ++_iCGLfloat224) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat224]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fColor4ubVertex3fvSUN(tc, c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fColor3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fColor3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fColor3fVertex3fSUN(s, t, r, g, b, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fColor3fVertex3fvSUN(const GLfloat * tc, const GLfloat * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fColor3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat225 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat225);
        for (size_t _iCGLfloat225 = 0; _iCGLfloat225 < _cCGLfloat225; ++_iCGLfloat225) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat225]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLfloat226 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat226);
        for (size_t _iCGLfloat226 = 0; _iCGLfloat226 < _cCGLfloat226; ++_iCGLfloat226) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat226]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat227 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat227);
        for (size_t _iCGLfloat227 = 0; _iCGLfloat227 < _cCGLfloat227; ++_iCGLfloat227) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat227]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fColor3fVertex3fvSUN(tc, c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fNormal3fVertex3fSUN(s, t, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fNormal3fVertex3fvSUN(const GLfloat * tc, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat228 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat228);
        for (size_t _iCGLfloat228 = 0; _iCGLfloat228 < _cCGLfloat228; ++_iCGLfloat228) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat228]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (n) {
        size_t _cCGLfloat229 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat229);
        for (size_t _iCGLfloat229 = 0; _iCGLfloat229 < _cCGLfloat229; ++_iCGLfloat229) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat229]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat230 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat230);
        for (size_t _iCGLfloat230 = 0; _iCGLfloat230 < _cCGLfloat230; ++_iCGLfloat230) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat230]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fNormal3fVertex3fvSUN(tc, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fColor4fNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fColor4fNormal3fVertex3fSUN(s, t, r, g, b, a, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord2fColor4fNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat231 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat231);
        for (size_t _iCGLfloat231 = 0; _iCGLfloat231 < _cCGLfloat231; ++_iCGLfloat231) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat231]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLfloat232 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat232);
        for (size_t _iCGLfloat232 = 0; _iCGLfloat232 < _cCGLfloat232; ++_iCGLfloat232) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat232]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (n) {
        size_t _cCGLfloat233 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat233);
        for (size_t _iCGLfloat233 = 0; _iCGLfloat233 < _cCGLfloat233; ++_iCGLfloat233) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat233]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat234 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat234);
        for (size_t _iCGLfloat234 = 0; _iCGLfloat234 < _cCGLfloat234; ++_iCGLfloat234) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat234]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord2fColor4fNormal3fVertex3fvSUN(tc, c, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4fColor4fNormal3fVertex4fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(p);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(q);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(13);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(14);
    trace::localWriter.writeFloat(w);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4fColor4fNormal3fVertex4fSUN(s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glTexCoord4fColor4fNormal3fVertex4fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (tc) {
        size_t _cCGLfloat235 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat235);
        for (size_t _iCGLfloat235 = 0; _iCGLfloat235 < _cCGLfloat235; ++_iCGLfloat235) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat235]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLfloat236 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat236);
        for (size_t _iCGLfloat236 = 0; _iCGLfloat236 < _cCGLfloat236; ++_iCGLfloat236) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat236]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (n) {
        size_t _cCGLfloat237 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat237);
        for (size_t _iCGLfloat237 = 0; _iCGLfloat237 < _cCGLfloat237; ++_iCGLfloat237) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat237]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat238 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat238);
        for (size_t _iCGLfloat238 = 0; _iCGLfloat238 < _cCGLfloat238; ++_iCGLfloat238) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat238]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glTexCoord4fColor4fNormal3fVertex4fvSUN(tc, c, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiVertex3fSUN(GLuint rc, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiVertex3fSUN(rc, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiVertex3fvSUN(const GLuint * rc, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (v) {
        size_t _cCGLfloat239 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat239);
        for (size_t _iCGLfloat239 = 0; _iCGLfloat239 < _cCGLfloat239; ++_iCGLfloat239) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat239]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiVertex3fvSUN(rc, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiColor4ubVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeUInt(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeUInt(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeUInt(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiColor4ubVertex3fSUN(rc, r, g, b, a, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN(const GLuint * rc, const GLubyte * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiColor4ubVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLubyte33 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLubyte33);
        for (size_t _iCGLubyte33 = 0; _iCGLubyte33 < _cCGLubyte33; ++_iCGLubyte33) {
            trace::localWriter.beginElement();
    trace::localWriter.writeUInt((c)[_iCGLubyte33]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat240 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat240);
        for (size_t _iCGLfloat240 = 0; _iCGLfloat240 < _cCGLfloat240; ++_iCGLfloat240) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat240]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiColor4ubVertex3fvSUN(rc, c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiColor3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiColor3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiColor3fVertex3fSUN(rc, r, g, b, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN(const GLuint * rc, const GLfloat * c, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiColor3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLfloat241 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat241);
        for (size_t _iCGLfloat241 = 0; _iCGLfloat241 < _cCGLfloat241; ++_iCGLfloat241) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat241]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat242 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat242);
        for (size_t _iCGLfloat242 = 0; _iCGLfloat242 < _cCGLfloat242; ++_iCGLfloat242) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat242]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiColor3fVertex3fvSUN(rc, c, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiNormal3fVertex3fSUN(rc, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN(const GLuint * rc, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (n) {
        size_t _cCGLfloat243 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat243);
        for (size_t _iCGLfloat243 = 0; _iCGLfloat243 < _cCGLfloat243; ++_iCGLfloat243) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat243]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat244 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat244);
        for (size_t _iCGLfloat244 = 0; _iCGLfloat244 < _cCGLfloat244; ++_iCGLfloat244) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat244]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiNormal3fVertex3fvSUN(rc, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiColor4fNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiColor4fNormal3fVertex3fSUN(rc, r, g, b, a, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLuint * rc, const GLfloat * c, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiColor4fNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (c) {
        size_t _cCGLfloat245 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat245);
        for (size_t _iCGLfloat245 = 0; _iCGLfloat245 < _cCGLfloat245; ++_iCGLfloat245) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat245]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (n) {
        size_t _cCGLfloat246 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat246);
        for (size_t _iCGLfloat246 = 0; _iCGLfloat246 < _cCGLfloat246; ++_iCGLfloat246) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat246]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat247 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat247);
        for (size_t _iCGLfloat247 = 0; _iCGLfloat247 < _cCGLfloat247; ++_iCGLfloat247) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat247]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiColor4fNormal3fVertex3fvSUN(rc, c, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiTexCoord2fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiTexCoord2fVertex3fSUN(rc, s, t, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN(const GLuint * rc, const GLfloat * tc, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiTexCoord2fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (tc) {
        size_t _cCGLfloat248 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat248);
        for (size_t _iCGLfloat248 = 0; _iCGLfloat248 < _cCGLfloat248; ++_iCGLfloat248) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat248]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (v) {
        size_t _cCGLfloat249 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat249);
        for (size_t _iCGLfloat249 = 0; _iCGLfloat249 < _cCGLfloat249; ++_iCGLfloat249) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat249]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiTexCoord2fVertex3fvSUN(rc, tc, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(rc, s, t, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLuint * rc, const GLfloat * tc, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (tc) {
        size_t _cCGLfloat250 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat250);
        for (size_t _iCGLfloat250 = 0; _iCGLfloat250 < _cCGLfloat250; ++_iCGLfloat250) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat250]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (n) {
        size_t _cCGLfloat251 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat251);
        for (size_t _iCGLfloat251 = 0; _iCGLfloat251 < _cCGLfloat251; ++_iCGLfloat251) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat251]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (v) {
        size_t _cCGLfloat252 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat252);
        for (size_t _iCGLfloat252 = 0; _iCGLfloat252 < _cCGLfloat252; ++_iCGLfloat252) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat252]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(rc, tc, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(rc);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeFloat(s);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(t);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(r);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(g);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(b);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(6);
    trace::localWriter.writeFloat(a);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(7);
    trace::localWriter.writeFloat(nx);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(8);
    trace::localWriter.writeFloat(ny);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(9);
    trace::localWriter.writeFloat(nz);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(10);
    trace::localWriter.writeFloat(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(11);
    trace::localWriter.writeFloat(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(12);
    trace::localWriter.writeFloat(z);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(rc, s, t, r, g, b, a, nx, ny, nz, x, y, z);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLuint * rc, const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v) {
    unsigned _call = trace::localWriter.beginEnter(&_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_sig);
    trace::localWriter.beginArg(0);
    if (rc) {
        trace::localWriter.beginArray(1);
        trace::localWriter.beginElement();
    trace::localWriter.writeUInt(*rc);
        trace::localWriter.endElement();
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    if (tc) {
        size_t _cCGLfloat253 = 2 > 0 ? 2 : 0;
        trace::localWriter.beginArray(_cCGLfloat253);
        for (size_t _iCGLfloat253 = 0; _iCGLfloat253 < _cCGLfloat253; ++_iCGLfloat253) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((tc)[_iCGLfloat253]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    if (c) {
        size_t _cCGLfloat254 = 4 > 0 ? 4 : 0;
        trace::localWriter.beginArray(_cCGLfloat254);
        for (size_t _iCGLfloat254 = 0; _iCGLfloat254 < _cCGLfloat254; ++_iCGLfloat254) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((c)[_iCGLfloat254]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    if (n) {
        size_t _cCGLfloat255 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat255);
        for (size_t _iCGLfloat255 = 0; _iCGLfloat255 < _cCGLfloat255; ++_iCGLfloat255) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((n)[_iCGLfloat255]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.beginArg(4);
    if (v) {
        size_t _cCGLfloat256 = 3 > 0 ? 3 : 0;
        trace::localWriter.beginArray(_cCGLfloat256);
        for (size_t _iCGLfloat256 = 0; _iCGLfloat256 < _cCGLfloat256; ++_iCGLfloat256) {
            trace::localWriter.beginElement();
    trace::localWriter.writeFloat((v)[_iCGLfloat256]);
            trace::localWriter.endElement();
        }
        trace::localWriter.endArray();
    } else {
        trace::localWriter.writeNull();
    }
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(rc, tc, c, n, v);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}

extern "C" PUBLIC
void APIENTRY glAddSwapHintRectWIN(GLint x, GLint y, GLsizei width, GLsizei height) {
    unsigned _call = trace::localWriter.beginEnter(&_glAddSwapHintRectWIN_sig);
    trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
    trace::localWriter.endArg();
    trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
    trace::localWriter.endArg();
    trace::localWriter.endEnter();
    _glAddSwapHintRectWIN(x, y, width, height);
    trace::localWriter.beginLeave(_call);
    if (true) {
    }
    trace::localWriter.endLeave();
}


void APIENTRY _fake_glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glScissor_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glTexImage2D_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(level);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, internalformat);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(width);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(height);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(5);
    trace::localWriter.writeSInt(border);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(6);
    trace::localWriter.writeEnum(&_enumGLenum_sig, format);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(7);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(8);
    trace::localWriter.writeBlob(pixels, _glTexImage2D_size(format, type, width, height));
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glViewport_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(x);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(y);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(width);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
    trace::localWriter.writeSInt(height);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glNewList(GLuint list, GLenum mode)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glNewList_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(list);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, mode);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glEndList(void)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glEndList_sig, true);
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glBitmap_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(width);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(height);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeFloat(xorig);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
    trace::localWriter.writeFloat(yorig);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(4);
    trace::localWriter.writeFloat(xmove);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(5);
    trace::localWriter.writeFloat(ymove);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(6);
    trace::localWriter.writeBlob(bitmap, _glBitmap_size(width, height));
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glDisableClientState(GLenum array)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glDisableClientState_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glEnableClientState(GLenum array)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glEnableClientState_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, array);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glClientActiveTexture(GLenum texture)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glClientActiveTexture_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, texture);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glBindBuffer(GLenum target, GLuint buffer)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glBindBuffer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, target);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(buffer);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glBindAttribLocation(GLuint program, GLuint index, const GLchar * name)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glBindAttribLocation_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(program);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB * name)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glBindAttribLocationARB_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(programObj);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeUInt(index);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeString(reinterpret_cast<const char *>(name));
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

void APIENTRY _fake_glStringMarkerGREMEDY(GLsizei len, const GLvoid * string)
{
        {
            unsigned _fake_call = trace::localWriter.beginEnter(&_glStringMarkerGREMEDY_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(len);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeString(reinterpret_cast<const char *>(string), len > 0 ? len : strlen((const char *)string));
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_fake_call);
            trace::localWriter.endLeave();
        }
}

static void _trace_user_arrays(gltrace::Context *_ctx, GLuint count, bool instanced, GLuint instancecount)
{
    glfeatures::Profile profile = _ctx->profile;
    bool es1 = profile.es() && profile.major == 1;

    count = std::max(count, _ctx->lockedArrayCount);

    GLint _array_buffer = _glGetInteger(GL_ARRAY_BUFFER_BINDING);
    if (_array_buffer) {
        _fake_glBindBuffer(GL_ARRAY_BUFFER, 0);
    }

    // void APIENTRY glSecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
  if (profile.desktop()) {
    if (_glIsEnabled(GL_SECONDARY_COLOR_ARRAY)) {
        GLint _binding = _glGetInteger(GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint size = 0;
            _glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_SIZE, &size);
            GLint type = 0;
            _glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_SECONDARY_COLOR_ARRAY_POINTER, &pointer);
            size_t _size = _glSecondaryColorPointer_size(size, type, stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glSecondaryColorPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // void APIENTRY glFogCoordPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
  if (profile.desktop()) {
    if (_glIsEnabled(GL_FOG_COORD_ARRAY)) {
        GLint _binding = _glGetInteger(GL_FOG_COORD_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint type = 0;
            _glGetIntegerv(GL_FOG_COORD_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_FOG_COORD_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_FOG_COORD_ARRAY_POINTER, &pointer);
            size_t _size = _glFogCoordPointer_size(type, stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glFogCoordPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // void APIENTRY glEdgeFlagPointer(GLsizei stride, const GLvoid * pointer)
  if (profile.desktop()) {
    if (_glIsEnabled(GL_EDGE_FLAG_ARRAY)) {
        GLint _binding = _glGetInteger(GL_EDGE_FLAG_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint stride = 0;
            _glGetIntegerv(GL_EDGE_FLAG_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_EDGE_FLAG_ARRAY_POINTER, &pointer);
            size_t _size = _glEdgeFlagPointer_size(stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glEdgeFlagPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // void APIENTRY glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
  if ((profile.desktop() || es1)) {
    bool client_active_texture_dirty = false;
    GLint max_units = 0;
    if (_ctx->profile.desktop())
        _glGetIntegerv(GL_MAX_TEXTURE_COORDS, &max_units);
    else
        _glGetIntegerv(GL_MAX_TEXTURE_UNITS, &max_units);
    GLint client_active_texture = GL_TEXTURE0;
    if (max_units > 0) {
        _glGetIntegerv(GL_CLIENT_ACTIVE_TEXTURE, &client_active_texture);
    }
    GLint unit = 0;
    do {
        GLint texture = GL_TEXTURE0 + unit;
        if (max_units > 0) {
            _glClientActiveTexture(texture);
        }
    if (_glIsEnabled(GL_TEXTURE_COORD_ARRAY)) {
        GLint _binding = _glGetInteger(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint size = 0;
            _glGetIntegerv(GL_TEXTURE_COORD_ARRAY_SIZE, &size);
            GLint type = 0;
            _glGetIntegerv(GL_TEXTURE_COORD_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_TEXTURE_COORD_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_TEXTURE_COORD_ARRAY_POINTER, &pointer);
            size_t _size = _glTexCoordPointer_size(size, type, stride, count);
    if (texture != client_active_texture || client_active_texture_dirty) {
        client_active_texture_dirty = true;
        _fake_glClientActiveTexture(texture);
    }
            unsigned _call = trace::localWriter.beginEnter(&_glTexCoordPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
    } while (++unit < max_units);
    if (max_units > 0) {
        _glClientActiveTexture(client_active_texture);
    }
    if (client_active_texture_dirty) {
        _fake_glClientActiveTexture(client_active_texture);
    }
  }

    // void APIENTRY glIndexPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
  if (profile.desktop()) {
    if (_glIsEnabled(GL_INDEX_ARRAY)) {
        GLint _binding = _glGetInteger(GL_INDEX_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint type = 0;
            _glGetIntegerv(GL_INDEX_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_INDEX_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_INDEX_ARRAY_POINTER, &pointer);
            size_t _size = _glIndexPointer_size(type, stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glIndexPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // void APIENTRY glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
  if ((profile.desktop() || es1)) {
    if (_glIsEnabled(GL_COLOR_ARRAY)) {
        GLint _binding = _glGetInteger(GL_COLOR_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint size = 0;
            _glGetIntegerv(GL_COLOR_ARRAY_SIZE, &size);
            GLint type = 0;
            _glGetIntegerv(GL_COLOR_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_COLOR_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_COLOR_ARRAY_POINTER, &pointer);
            size_t _size = _glColorPointer_size(size, type, stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glColorPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // void APIENTRY glNormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer)
  if ((profile.desktop() || es1)) {
    if (_glIsEnabled(GL_NORMAL_ARRAY)) {
        GLint _binding = _glGetInteger(GL_NORMAL_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint type = 0;
            _glGetIntegerv(GL_NORMAL_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_NORMAL_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_NORMAL_ARRAY_POINTER, &pointer);
            size_t _size = _glNormalPointer_size(type, stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glNormalPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // void APIENTRY glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
  if ((profile.desktop() || es1)) {
    if (_glIsEnabled(GL_VERTEX_ARRAY)) {
        GLint _binding = _glGetInteger(GL_VERTEX_ARRAY_BUFFER_BINDING);
        if (!_binding) {
            GLint size = 0;
            _glGetIntegerv(GL_VERTEX_ARRAY_SIZE, &size);
            GLint type = 0;
            _glGetIntegerv(GL_VERTEX_ARRAY_TYPE, &type);
            GLint stride = 0;
            _glGetIntegerv(GL_VERTEX_ARRAY_STRIDE, &stride);
            GLvoid * pointer = 0;
            _glGetPointerv(GL_VERTEX_ARRAY_POINTER, &pointer);
            size_t _size = _glVertexPointer_size(size, type, stride, count);
            unsigned _call = trace::localWriter.beginEnter(&_glVertexPointer_sig, true);
            trace::localWriter.beginArg(0);
    trace::localWriter.writeSInt(size);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(2);
    trace::localWriter.writeSInt(stride);
            trace::localWriter.endArg();
            trace::localWriter.beginArg(3);
            trace::localWriter.writeBlob((const void *)pointer, _size);
            trace::localWriter.endArg();
            trace::localWriter.endEnter();
            trace::localWriter.beginLeave(_call);
            trace::localWriter.endLeave();
        }
    }
  }

    // ES1 does not support generic vertex attributes
    if (es1)
        return;

    // void APIENTRY glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer)
    GLint _max_vertex_attribs = _glGetInteger(GL_MAX_VERTEX_ATTRIBS);
    for (GLint index = 0; index < _max_vertex_attribs; ++index) {
        GLint _enabled = 0;
        _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &_enabled);
        if (_enabled) {
            GLint _binding = 0;
            _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, &_binding);
            if (!_binding) {
                GLint divisor = 0;
                if (instanced && _ctx->features.instanced_arrays) {
                    _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, &divisor);
                }
                GLint size = 0;
                _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_SIZE, &size);
                GLint type = 0;
                _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_TYPE, &type);
                GLint normalized = 0;
                _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, &normalized);
                GLint stride = 0;
                _glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_STRIDE, &stride);
                GLvoid * pointer = 0;
                _glGetVertexAttribPointerv(index, GL_VERTEX_ATTRIB_ARRAY_POINTER, &pointer);
                size_t _size = _glVertexAttribPointer_size(size, type, normalized, stride, divisor > 0 ? instancecount / divisor : count);
                unsigned _call = trace::localWriter.beginEnter(&_glVertexAttribPointer_sig, true);
                trace::localWriter.beginArg(0);
    trace::localWriter.writeUInt(index);
                trace::localWriter.endArg();
                trace::localWriter.beginArg(1);
    trace::localWriter.writeEnum(&_enumGLint2_sig, size);
                trace::localWriter.endArg();
                trace::localWriter.beginArg(2);
    trace::localWriter.writeEnum(&_enumGLenum_sig, type);
                trace::localWriter.endArg();
                trace::localWriter.beginArg(3);
    trace::localWriter.writeEnum(&_enumGLboolean_sig, normalized);
                trace::localWriter.endArg();
                trace::localWriter.beginArg(4);
    trace::localWriter.writeSInt(stride);
                trace::localWriter.endArg();
                trace::localWriter.beginArg(5);
                trace::localWriter.writeBlob((const void *)pointer, _size);
                trace::localWriter.endArg();
                trace::localWriter.endEnter();
                trace::localWriter.beginLeave(_call);
                trace::localWriter.endLeave();
            }
        }
    }

    if (_array_buffer) {
        _fake_glBindBuffer(GL_ARRAY_BUFFER, _array_buffer);
    }

}

static __eglMustCastToProperFunctionPointerType _wrapProcAddress(const char * procName, __eglMustCastToProperFunctionPointerType procPtr) {
    if (!procPtr) {
        if (strcmp("glDebugMessageControl", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageControl;
        }
        else if (strcmp("glDebugMessageInsert", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsert;
        }
        else if (strcmp("glDebugMessageCallback", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallback;
        }
        else if (strcmp("glGetDebugMessageLog", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLog;
        }
        else if (strcmp("glPushDebugGroup", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glPushDebugGroup;
        }
        else if (strcmp("glPopDebugGroup", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glPopDebugGroup;
        }
        else if (strcmp("glObjectLabel", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glObjectLabel;
        }
        else if (strcmp("glGetObjectLabel", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetObjectLabel;
        }
        else if (strcmp("glObjectPtrLabel", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glObjectPtrLabel;
        }
        else if (strcmp("glGetObjectPtrLabel", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetObjectPtrLabel;
        }
        else if (strcmp("glDebugMessageControlKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageControlKHR;
        }
        else if (strcmp("glDebugMessageInsertKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertKHR;
        }
        else if (strcmp("glDebugMessageCallbackKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackKHR;
        }
        else if (strcmp("glGetDebugMessageLogKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogKHR;
        }
        else if (strcmp("glPushDebugGroupKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glPushDebugGroupKHR;
        }
        else if (strcmp("glPopDebugGroupKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glPopDebugGroupKHR;
        }
        else if (strcmp("glObjectLabelKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glObjectLabelKHR;
        }
        else if (strcmp("glGetObjectLabelKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetObjectLabelKHR;
        }
        else if (strcmp("glObjectPtrLabelKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glObjectPtrLabelKHR;
        }
        else if (strcmp("glGetObjectPtrLabelKHR", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetObjectPtrLabelKHR;
        }
        else if (strcmp("glDebugMessageControlARB", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageControlARB;
        }
        else if (strcmp("glDebugMessageInsertARB", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertARB;
        }
        else if (strcmp("glDebugMessageCallbackARB", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackARB;
        }
        else if (strcmp("glGetDebugMessageLogARB", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogARB;
        }
        else if (strcmp("glDebugMessageEnableAMD", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageEnableAMD;
        }
        else if (strcmp("glDebugMessageInsertAMD", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertAMD;
        }
        else if (strcmp("glDebugMessageCallbackAMD", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackAMD;
        }
        else if (strcmp("glGetDebugMessageLogAMD", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogAMD;
        }
        else if (strcmp("glLabelObjectEXT", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glLabelObjectEXT;
        }
        else if (strcmp("glGetObjectLabelEXT", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glGetObjectLabelEXT;
        }
        else if (strcmp("glInsertEventMarkerEXT", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glInsertEventMarkerEXT;
        }
        else if (strcmp("glPushGroupMarkerEXT", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glPushGroupMarkerEXT;
        }
        else if (strcmp("glPopGroupMarkerEXT", (const char *)procName) == 0) {
            return (__eglMustCastToProperFunctionPointerType)&glPopGroupMarkerEXT;
        }
        else {
            return NULL;
        }
    }
    if (strcmp("eglChooseConfig", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglChooseConfig);
        _eglChooseConfig = (PFN_EGLCHOOSECONFIG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglChooseConfig;
    }
    if (strcmp("eglCopyBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCopyBuffers);
        _eglCopyBuffers = (PFN_EGLCOPYBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCopyBuffers;
    }
    if (strcmp("eglCreateContext", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateContext);
        _eglCreateContext = (PFN_EGLCREATECONTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateContext;
    }
    if (strcmp("eglCreatePbufferSurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePbufferSurface);
        _eglCreatePbufferSurface = (PFN_EGLCREATEPBUFFERSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePbufferSurface;
    }
    if (strcmp("eglCreatePixmapSurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePixmapSurface);
        _eglCreatePixmapSurface = (PFN_EGLCREATEPIXMAPSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePixmapSurface;
    }
    if (strcmp("eglCreateWindowSurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateWindowSurface);
        _eglCreateWindowSurface = (PFN_EGLCREATEWINDOWSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateWindowSurface;
    }
    if (strcmp("eglDestroyContext", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroyContext);
        _eglDestroyContext = (PFN_EGLDESTROYCONTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroyContext;
    }
    if (strcmp("eglDestroySurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroySurface);
        _eglDestroySurface = (PFN_EGLDESTROYSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroySurface;
    }
    if (strcmp("eglGetConfigAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetConfigAttrib);
        _eglGetConfigAttrib = (PFN_EGLGETCONFIGATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetConfigAttrib;
    }
    if (strcmp("eglGetConfigs", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetConfigs);
        _eglGetConfigs = (PFN_EGLGETCONFIGS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetConfigs;
    }
    if (strcmp("eglGetCurrentDisplay", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetCurrentDisplay);
        _eglGetCurrentDisplay = (PFN_EGLGETCURRENTDISPLAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetCurrentDisplay;
    }
    if (strcmp("eglGetCurrentSurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetCurrentSurface);
        _eglGetCurrentSurface = (PFN_EGLGETCURRENTSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetCurrentSurface;
    }
    if (strcmp("eglGetDisplay", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetDisplay);
        _eglGetDisplay = (PFN_EGLGETDISPLAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetDisplay;
    }
    if (strcmp("eglGetError", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetError);
        _eglGetError = (PFN_EGLGETERROR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetError;
    }
    if (strcmp("eglGetProcAddress", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetProcAddress);
        _eglGetProcAddress = (PFN_EGLGETPROCADDRESS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetProcAddress;
    }
    if (strcmp("eglInitialize", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglInitialize);
        _eglInitialize = (PFN_EGLINITIALIZE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglInitialize;
    }
    if (strcmp("eglMakeCurrent", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglMakeCurrent);
        _eglMakeCurrent = (PFN_EGLMAKECURRENT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglMakeCurrent;
    }
    if (strcmp("eglQueryContext", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryContext);
        _eglQueryContext = (PFN_EGLQUERYCONTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryContext;
    }
    if (strcmp("eglQueryString", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryString);
        _eglQueryString = (PFN_EGLQUERYSTRING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryString;
    }
    if (strcmp("eglQuerySurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQuerySurface);
        _eglQuerySurface = (PFN_EGLQUERYSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQuerySurface;
    }
    if (strcmp("eglSwapBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSwapBuffers);
        _eglSwapBuffers = (PFN_EGLSWAPBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSwapBuffers;
    }
    if (strcmp("eglTerminate", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglTerminate);
        _eglTerminate = (PFN_EGLTERMINATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglTerminate;
    }
    if (strcmp("eglWaitGL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglWaitGL);
        _eglWaitGL = (PFN_EGLWAITGL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglWaitGL;
    }
    if (strcmp("eglWaitNative", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglWaitNative);
        _eglWaitNative = (PFN_EGLWAITNATIVE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglWaitNative;
    }
    if (strcmp("eglBindTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglBindTexImage);
        _eglBindTexImage = (PFN_EGLBINDTEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglBindTexImage;
    }
    if (strcmp("eglReleaseTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglReleaseTexImage);
        _eglReleaseTexImage = (PFN_EGLRELEASETEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglReleaseTexImage;
    }
    if (strcmp("eglSurfaceAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSurfaceAttrib);
        _eglSurfaceAttrib = (PFN_EGLSURFACEATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSurfaceAttrib;
    }
    if (strcmp("eglSwapInterval", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSwapInterval);
        _eglSwapInterval = (PFN_EGLSWAPINTERVAL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSwapInterval;
    }
    if (strcmp("eglBindAPI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglBindAPI);
        _eglBindAPI = (PFN_EGLBINDAPI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglBindAPI;
    }
    if (strcmp("eglQueryAPI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryAPI);
        _eglQueryAPI = (PFN_EGLQUERYAPI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryAPI;
    }
    if (strcmp("eglCreatePbufferFromClientBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePbufferFromClientBuffer);
        _eglCreatePbufferFromClientBuffer = (PFN_EGLCREATEPBUFFERFROMCLIENTBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePbufferFromClientBuffer;
    }
    if (strcmp("eglReleaseThread", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglReleaseThread);
        _eglReleaseThread = (PFN_EGLRELEASETHREAD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglReleaseThread;
    }
    if (strcmp("eglWaitClient", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglWaitClient);
        _eglWaitClient = (PFN_EGLWAITCLIENT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglWaitClient;
    }
    if (strcmp("eglGetCurrentContext", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetCurrentContext);
        _eglGetCurrentContext = (PFN_EGLGETCURRENTCONTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetCurrentContext;
    }
    if (strcmp("eglCreateSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateSync);
        _eglCreateSync = (PFN_EGLCREATESYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateSync;
    }
    if (strcmp("eglDestroySync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroySync);
        _eglDestroySync = (PFN_EGLDESTROYSYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroySync;
    }
    if (strcmp("eglClientWaitSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglClientWaitSync);
        _eglClientWaitSync = (PFN_EGLCLIENTWAITSYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglClientWaitSync;
    }
    if (strcmp("eglGetSyncAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetSyncAttrib);
        _eglGetSyncAttrib = (PFN_EGLGETSYNCATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetSyncAttrib;
    }
    if (strcmp("eglCreateImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateImage);
        _eglCreateImage = (PFN_EGLCREATEIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateImage;
    }
    if (strcmp("eglDestroyImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroyImage);
        _eglDestroyImage = (PFN_EGLDESTROYIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroyImage;
    }
    if (strcmp("eglGetPlatformDisplay", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetPlatformDisplay);
        _eglGetPlatformDisplay = (PFN_EGLGETPLATFORMDISPLAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetPlatformDisplay;
    }
    if (strcmp("eglCreatePlatformWindowSurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformWindowSurface);
        _eglCreatePlatformWindowSurface = (PFN_EGLCREATEPLATFORMWINDOWSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformWindowSurface;
    }
    if (strcmp("eglCreatePlatformPixmapSurface", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformPixmapSurface);
        _eglCreatePlatformPixmapSurface = (PFN_EGLCREATEPLATFORMPIXMAPSURFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformPixmapSurface;
    }
    if (strcmp("eglWaitSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglWaitSync);
        _eglWaitSync = (PFN_EGLWAITSYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglWaitSync;
    }
    if (strcmp("eglDupNativeFenceFDANDROID", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDupNativeFenceFDANDROID);
        _eglDupNativeFenceFDANDROID = (PFN_EGLDUPNATIVEFENCEFDANDROID)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDupNativeFenceFDANDROID;
    }
    if (strcmp("eglQuerySurfacePointerANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQuerySurfacePointerANGLE);
        _eglQuerySurfacePointerANGLE = (PFN_EGLQUERYSURFACEPOINTERANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQuerySurfacePointerANGLE;
    }
    if (strcmp("eglGetSyncValuesCHROMIUM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetSyncValuesCHROMIUM);
        _eglGetSyncValuesCHROMIUM = (PFN_EGLGETSYNCVALUESCHROMIUM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetSyncValuesCHROMIUM;
    }
    if (strcmp("eglQueryDevicesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDevicesEXT);
        _eglQueryDevicesEXT = (PFN_EGLQUERYDEVICESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDevicesEXT;
    }
    if (strcmp("eglQueryDeviceAttribEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDeviceAttribEXT);
        _eglQueryDeviceAttribEXT = (PFN_EGLQUERYDEVICEATTRIBEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDeviceAttribEXT;
    }
    if (strcmp("eglQueryDeviceStringEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDeviceStringEXT);
        _eglQueryDeviceStringEXT = (PFN_EGLQUERYDEVICESTRINGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDeviceStringEXT;
    }
    if (strcmp("eglQueryDisplayAttribEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDisplayAttribEXT);
        _eglQueryDisplayAttribEXT = (PFN_EGLQUERYDISPLAYATTRIBEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDisplayAttribEXT;
    }
    if (strcmp("eglQueryDmaBufFormatsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDmaBufFormatsEXT);
        _eglQueryDmaBufFormatsEXT = (PFN_EGLQUERYDMABUFFORMATSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDmaBufFormatsEXT;
    }
    if (strcmp("eglQueryDmaBufModifiersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDmaBufModifiersEXT);
        _eglQueryDmaBufModifiersEXT = (PFN_EGLQUERYDMABUFMODIFIERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDmaBufModifiersEXT;
    }
    if (strcmp("eglGetPlatformDisplayEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetPlatformDisplayEXT);
        _eglGetPlatformDisplayEXT = (PFN_EGLGETPLATFORMDISPLAYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetPlatformDisplayEXT;
    }
    if (strcmp("eglCreatePlatformWindowSurfaceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformWindowSurfaceEXT);
        _eglCreatePlatformWindowSurfaceEXT = (PFN_EGLCREATEPLATFORMWINDOWSURFACEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformWindowSurfaceEXT;
    }
    if (strcmp("eglCreatePlatformPixmapSurfaceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformPixmapSurfaceEXT);
        _eglCreatePlatformPixmapSurfaceEXT = (PFN_EGLCREATEPLATFORMPIXMAPSURFACEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePlatformPixmapSurfaceEXT;
    }
    if (strcmp("eglSetDamageRegionKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSetDamageRegionKHR);
        _eglSetDamageRegionKHR = (PFN_EGLSETDAMAGEREGIONKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSetDamageRegionKHR;
    }
    if (strcmp("eglSwapBuffersWithDamageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSwapBuffersWithDamageEXT);
        _eglSwapBuffersWithDamageEXT = (PFN_EGLSWAPBUFFERSWITHDAMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSwapBuffersWithDamageEXT;
    }
    if (strcmp("eglCreatePixmapSurfaceHI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreatePixmapSurfaceHI);
        _eglCreatePixmapSurfaceHI = (PFN_EGLCREATEPIXMAPSURFACEHI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreatePixmapSurfaceHI;
    }
    if (strcmp("eglCreateSyncKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateSyncKHR);
        _eglCreateSyncKHR = (PFN_EGLCREATESYNCKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateSyncKHR;
    }
    if (strcmp("eglDestroySyncKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroySyncKHR);
        _eglDestroySyncKHR = (PFN_EGLDESTROYSYNCKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroySyncKHR;
    }
    if (strcmp("eglClientWaitSyncKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglClientWaitSyncKHR);
        _eglClientWaitSyncKHR = (PFN_EGLCLIENTWAITSYNCKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglClientWaitSyncKHR;
    }
    if (strcmp("eglGetSyncAttribKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetSyncAttribKHR);
        _eglGetSyncAttribKHR = (PFN_EGLGETSYNCATTRIBKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetSyncAttribKHR;
    }
    if (strcmp("eglCreateImageKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateImageKHR);
        _eglCreateImageKHR = (PFN_EGLCREATEIMAGEKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateImageKHR;
    }
    if (strcmp("eglDestroyImageKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroyImageKHR);
        _eglDestroyImageKHR = (PFN_EGLDESTROYIMAGEKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroyImageKHR;
    }
    if (strcmp("eglLockSurfaceKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglLockSurfaceKHR);
        _eglLockSurfaceKHR = (PFN_EGLLOCKSURFACEKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglLockSurfaceKHR;
    }
    if (strcmp("eglUnlockSurfaceKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglUnlockSurfaceKHR);
        _eglUnlockSurfaceKHR = (PFN_EGLUNLOCKSURFACEKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglUnlockSurfaceKHR;
    }
    if (strcmp("eglSignalSyncKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSignalSyncKHR);
        _eglSignalSyncKHR = (PFN_EGLSIGNALSYNCKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSignalSyncKHR;
    }
    if (strcmp("eglSwapBuffersWithDamageKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSwapBuffersWithDamageKHR);
        _eglSwapBuffersWithDamageKHR = (PFN_EGLSWAPBUFFERSWITHDAMAGEKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSwapBuffersWithDamageKHR;
    }
    if (strcmp("eglWaitSyncKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglWaitSyncKHR);
        _eglWaitSyncKHR = (PFN_EGLWAITSYNCKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglWaitSyncKHR;
    }
    if (strcmp("eglCreateFenceSyncNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateFenceSyncNV);
        _eglCreateFenceSyncNV = (PFN_EGLCREATEFENCESYNCNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateFenceSyncNV;
    }
    if (strcmp("eglDestroySyncNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDestroySyncNV);
        _eglDestroySyncNV = (PFN_EGLDESTROYSYNCNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDestroySyncNV;
    }
    if (strcmp("eglFenceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglFenceNV);
        _eglFenceNV = (PFN_EGLFENCENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglFenceNV;
    }
    if (strcmp("eglClientWaitSyncNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglClientWaitSyncNV);
        _eglClientWaitSyncNV = (PFN_EGLCLIENTWAITSYNCNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglClientWaitSyncNV;
    }
    if (strcmp("eglSignalSyncNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglSignalSyncNV);
        _eglSignalSyncNV = (PFN_EGLSIGNALSYNCNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglSignalSyncNV;
    }
    if (strcmp("eglGetSyncAttribNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetSyncAttribNV);
        _eglGetSyncAttribNV = (PFN_EGLGETSYNCATTRIBNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetSyncAttribNV;
    }
    if (strcmp("eglCreateDRMImageMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglCreateDRMImageMESA);
        _eglCreateDRMImageMESA = (PFN_EGLCREATEDRMIMAGEMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglCreateDRMImageMESA;
    }
    if (strcmp("eglExportDRMImageMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglExportDRMImageMESA);
        _eglExportDRMImageMESA = (PFN_EGLEXPORTDRMIMAGEMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglExportDRMImageMESA;
    }
    if (strcmp("eglExportDMABUFImageQueryMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglExportDMABUFImageQueryMESA);
        _eglExportDMABUFImageQueryMESA = (PFN_EGLEXPORTDMABUFIMAGEQUERYMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglExportDMABUFImageQueryMESA;
    }
    if (strcmp("eglExportDMABUFImageMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglExportDMABUFImageMESA);
        _eglExportDMABUFImageMESA = (PFN_EGLEXPORTDMABUFIMAGEMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglExportDMABUFImageMESA;
    }
    if (strcmp("eglPostSubBufferNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglPostSubBufferNV);
        _eglPostSubBufferNV = (PFN_EGLPOSTSUBBUFFERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglPostSubBufferNV;
    }
    if (strcmp("eglGetSystemTimeFrequencyNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetSystemTimeFrequencyNV);
        _eglGetSystemTimeFrequencyNV = (PFN_EGLGETSYSTEMTIMEFREQUENCYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetSystemTimeFrequencyNV;
    }
    if (strcmp("eglGetSystemTimeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglGetSystemTimeNV);
        _eglGetSystemTimeNV = (PFN_EGLGETSYSTEMTIMENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglGetSystemTimeNV;
    }
    if (strcmp("glEGLImageTargetTexture2DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetTexture2DOES);
        _glEGLImageTargetTexture2DOES = (PFN_GLEGLIMAGETARGETTEXTURE2DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetTexture2DOES;
    }
    if (strcmp("glEGLImageTargetRenderbufferStorageOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetRenderbufferStorageOES);
        _glEGLImageTargetRenderbufferStorageOES = (PFN_GLEGLIMAGETARGETRENDERBUFFERSTORAGEOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetRenderbufferStorageOES;
    }
    if (strcmp("eglQuerySupportedCompressionRatesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQuerySupportedCompressionRatesEXT);
        _eglQuerySupportedCompressionRatesEXT = (PFN_EGLQUERYSUPPORTEDCOMPRESSIONRATESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQuerySupportedCompressionRatesEXT;
    }
    if (strcmp("eglBindWaylandDisplayWL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglBindWaylandDisplayWL);
        _eglBindWaylandDisplayWL = (PFN_EGLBINDWAYLANDDISPLAYWL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglBindWaylandDisplayWL;
    }
    if (strcmp("eglUnbindWaylandDisplayWL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglUnbindWaylandDisplayWL);
        _eglUnbindWaylandDisplayWL = (PFN_EGLUNBINDWAYLANDDISPLAYWL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglUnbindWaylandDisplayWL;
    }
    if (strcmp("eglQueryWaylandBufferWL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryWaylandBufferWL);
        _eglQueryWaylandBufferWL = (PFN_EGLQUERYWAYLANDBUFFERWL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryWaylandBufferWL;
    }
    if (strcmp("eglDebugMessageControlKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglDebugMessageControlKHR);
        _eglDebugMessageControlKHR = (PFN_EGLDEBUGMESSAGECONTROLKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglDebugMessageControlKHR;
    }
    if (strcmp("eglQueryDebugKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglQueryDebugKHR);
        _eglQueryDebugKHR = (PFN_EGLQUERYDEBUGKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglQueryDebugKHR;
    }
    if (strcmp("eglLabelObjectKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&eglLabelObjectKHR);
        _eglLabelObjectKHR = (PFN_EGLLABELOBJECTKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&eglLabelObjectKHR;
    }
    if (strcmp("glCullFace", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCullFace);
        _glCullFace = (PFN_GLCULLFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCullFace;
    }
    if (strcmp("glFrontFace", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrontFace);
        _glFrontFace = (PFN_GLFRONTFACE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrontFace;
    }
    if (strcmp("glHint", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glHint);
        _glHint = (PFN_GLHINT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glHint;
    }
    if (strcmp("glLineWidth", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLineWidth);
        _glLineWidth = (PFN_GLLINEWIDTH)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLineWidth;
    }
    if (strcmp("glPointSize", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointSize);
        _glPointSize = (PFN_GLPOINTSIZE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointSize;
    }
    if (strcmp("glPolygonMode", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPolygonMode);
        _glPolygonMode = (PFN_GLPOLYGONMODE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPolygonMode;
    }
    if (strcmp("glScissor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissor);
        _glScissor = (PFN_GLSCISSOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissor;
    }
    if (strcmp("glTexParameterf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterf);
        _glTexParameterf = (PFN_GLTEXPARAMETERF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterf;
    }
    if (strcmp("glTexParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterfv);
        _glTexParameterfv = (PFN_GLTEXPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterfv;
    }
    if (strcmp("glTexParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameteri);
        _glTexParameteri = (PFN_GLTEXPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameteri;
    }
    if (strcmp("glTexParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameteriv);
        _glTexParameteriv = (PFN_GLTEXPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameteriv;
    }
    if (strcmp("glTexImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage1D);
        _glTexImage1D = (PFN_GLTEXIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage1D;
    }
    if (strcmp("glTexImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage2D);
        _glTexImage2D = (PFN_GLTEXIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage2D;
    }
    if (strcmp("glDrawBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffer);
        _glDrawBuffer = (PFN_GLDRAWBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffer;
    }
    if (strcmp("glClear", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClear);
        _glClear = (PFN_GLCLEAR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClear;
    }
    if (strcmp("glClearColor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearColor);
        _glClearColor = (PFN_GLCLEARCOLOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearColor;
    }
    if (strcmp("glClearStencil", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearStencil);
        _glClearStencil = (PFN_GLCLEARSTENCIL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearStencil;
    }
    if (strcmp("glClearDepth", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearDepth);
        _glClearDepth = (PFN_GLCLEARDEPTH)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearDepth;
    }
    if (strcmp("glStencilMask", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilMask);
        _glStencilMask = (PFN_GLSTENCILMASK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilMask;
    }
    if (strcmp("glColorMask", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorMask);
        _glColorMask = (PFN_GLCOLORMASK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorMask;
    }
    if (strcmp("glDepthMask", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthMask);
        _glDepthMask = (PFN_GLDEPTHMASK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthMask;
    }
    if (strcmp("glDisable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisable);
        _glDisable = (PFN_GLDISABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisable;
    }
    if (strcmp("glEnable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnable);
        _glEnable = (PFN_GLENABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnable;
    }
    if (strcmp("glFinish", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinish);
        _glFinish = (PFN_GLFINISH)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinish;
    }
    if (strcmp("glFlush", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlush);
        _glFlush = (PFN_GLFLUSH)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlush;
    }
    if (strcmp("glBlendFunc", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFunc);
        _glBlendFunc = (PFN_GLBLENDFUNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFunc;
    }
    if (strcmp("glLogicOp", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLogicOp);
        _glLogicOp = (PFN_GLLOGICOP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLogicOp;
    }
    if (strcmp("glStencilFunc", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilFunc);
        _glStencilFunc = (PFN_GLSTENCILFUNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilFunc;
    }
    if (strcmp("glStencilOp", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilOp);
        _glStencilOp = (PFN_GLSTENCILOP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilOp;
    }
    if (strcmp("glDepthFunc", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthFunc);
        _glDepthFunc = (PFN_GLDEPTHFUNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthFunc;
    }
    if (strcmp("glPixelStoref", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelStoref);
        _glPixelStoref = (PFN_GLPIXELSTOREF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelStoref;
    }
    if (strcmp("glPixelStorei", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelStorei);
        _glPixelStorei = (PFN_GLPIXELSTOREI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelStorei;
    }
    if (strcmp("glReadBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadBuffer);
        _glReadBuffer = (PFN_GLREADBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadBuffer;
    }
    if (strcmp("glReadPixels", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadPixels);
        _glReadPixels = (PFN_GLREADPIXELS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadPixels;
    }
    if (strcmp("glGetBooleanv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBooleanv);
        _glGetBooleanv = (PFN_GLGETBOOLEANV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBooleanv;
    }
    if (strcmp("glGetDoublev", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDoublev);
        _glGetDoublev = (PFN_GLGETDOUBLEV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDoublev;
    }
    if (strcmp("glGetError", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetError);
        _glGetError = (PFN_GLGETERROR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetError;
    }
    if (strcmp("glGetFloatv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFloatv);
        _glGetFloatv = (PFN_GLGETFLOATV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFloatv;
    }
    if (strcmp("glGetIntegerv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetIntegerv);
        _glGetIntegerv = (PFN_GLGETINTEGERV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetIntegerv;
    }
    if (strcmp("glGetString", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetString);
        _glGetString = (PFN_GLGETSTRING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetString;
    }
    if (strcmp("glGetTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexImage);
        _glGetTexImage = (PFN_GLGETTEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexImage;
    }
    if (strcmp("glGetTexParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterfv);
        _glGetTexParameterfv = (PFN_GLGETTEXPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterfv;
    }
    if (strcmp("glGetTexParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameteriv);
        _glGetTexParameteriv = (PFN_GLGETTEXPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameteriv;
    }
    if (strcmp("glGetTexLevelParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexLevelParameterfv);
        _glGetTexLevelParameterfv = (PFN_GLGETTEXLEVELPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexLevelParameterfv;
    }
    if (strcmp("glGetTexLevelParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexLevelParameteriv);
        _glGetTexLevelParameteriv = (PFN_GLGETTEXLEVELPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexLevelParameteriv;
    }
    if (strcmp("glIsEnabled", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsEnabled);
        _glIsEnabled = (PFN_GLISENABLED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsEnabled;
    }
    if (strcmp("glDepthRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRange);
        _glDepthRange = (PFN_GLDEPTHRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRange;
    }
    if (strcmp("glViewport", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewport);
        _glViewport = (PFN_GLVIEWPORT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewport;
    }
    if (strcmp("glNewList", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNewList);
        _glNewList = (PFN_GLNEWLIST)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNewList;
    }
    if (strcmp("glEndList", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndList);
        _glEndList = (PFN_GLENDLIST)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndList;
    }
    if (strcmp("glCallList", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCallList);
        _glCallList = (PFN_GLCALLLIST)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCallList;
    }
    if (strcmp("glCallLists", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCallLists);
        _glCallLists = (PFN_GLCALLLISTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCallLists;
    }
    if (strcmp("glDeleteLists", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteLists);
        _glDeleteLists = (PFN_GLDELETELISTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteLists;
    }
    if (strcmp("glGenLists", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenLists);
        _glGenLists = (PFN_GLGENLISTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenLists;
    }
    if (strcmp("glListBase", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glListBase);
        _glListBase = (PFN_GLLISTBASE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glListBase;
    }
    if (strcmp("glBegin", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBegin);
        _glBegin = (PFN_GLBEGIN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBegin;
    }
    if (strcmp("glBitmap", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBitmap);
        _glBitmap = (PFN_GLBITMAP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBitmap;
    }
    if (strcmp("glColor3b", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3b);
        _glColor3b = (PFN_GLCOLOR3B)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3b;
    }
    if (strcmp("glColor3bv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3bv);
        _glColor3bv = (PFN_GLCOLOR3BV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3bv;
    }
    if (strcmp("glColor3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3d);
        _glColor3d = (PFN_GLCOLOR3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3d;
    }
    if (strcmp("glColor3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3dv);
        _glColor3dv = (PFN_GLCOLOR3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3dv;
    }
    if (strcmp("glColor3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3f);
        _glColor3f = (PFN_GLCOLOR3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3f;
    }
    if (strcmp("glColor3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3fv);
        _glColor3fv = (PFN_GLCOLOR3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3fv;
    }
    if (strcmp("glColor3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3i);
        _glColor3i = (PFN_GLCOLOR3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3i;
    }
    if (strcmp("glColor3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3iv);
        _glColor3iv = (PFN_GLCOLOR3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3iv;
    }
    if (strcmp("glColor3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3s);
        _glColor3s = (PFN_GLCOLOR3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3s;
    }
    if (strcmp("glColor3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3sv);
        _glColor3sv = (PFN_GLCOLOR3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3sv;
    }
    if (strcmp("glColor3ub", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3ub);
        _glColor3ub = (PFN_GLCOLOR3UB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3ub;
    }
    if (strcmp("glColor3ubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3ubv);
        _glColor3ubv = (PFN_GLCOLOR3UBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3ubv;
    }
    if (strcmp("glColor3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3ui);
        _glColor3ui = (PFN_GLCOLOR3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3ui;
    }
    if (strcmp("glColor3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3uiv);
        _glColor3uiv = (PFN_GLCOLOR3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3uiv;
    }
    if (strcmp("glColor3us", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3us);
        _glColor3us = (PFN_GLCOLOR3US)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3us;
    }
    if (strcmp("glColor3usv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3usv);
        _glColor3usv = (PFN_GLCOLOR3USV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3usv;
    }
    if (strcmp("glColor4b", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4b);
        _glColor4b = (PFN_GLCOLOR4B)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4b;
    }
    if (strcmp("glColor4bv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4bv);
        _glColor4bv = (PFN_GLCOLOR4BV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4bv;
    }
    if (strcmp("glColor4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4d);
        _glColor4d = (PFN_GLCOLOR4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4d;
    }
    if (strcmp("glColor4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4dv);
        _glColor4dv = (PFN_GLCOLOR4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4dv;
    }
    if (strcmp("glColor4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4f);
        _glColor4f = (PFN_GLCOLOR4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4f;
    }
    if (strcmp("glColor4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4fv);
        _glColor4fv = (PFN_GLCOLOR4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4fv;
    }
    if (strcmp("glColor4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4i);
        _glColor4i = (PFN_GLCOLOR4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4i;
    }
    if (strcmp("glColor4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4iv);
        _glColor4iv = (PFN_GLCOLOR4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4iv;
    }
    if (strcmp("glColor4s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4s);
        _glColor4s = (PFN_GLCOLOR4S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4s;
    }
    if (strcmp("glColor4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4sv);
        _glColor4sv = (PFN_GLCOLOR4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4sv;
    }
    if (strcmp("glColor4ub", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ub);
        _glColor4ub = (PFN_GLCOLOR4UB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ub;
    }
    if (strcmp("glColor4ubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ubv);
        _glColor4ubv = (PFN_GLCOLOR4UBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ubv;
    }
    if (strcmp("glColor4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ui);
        _glColor4ui = (PFN_GLCOLOR4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ui;
    }
    if (strcmp("glColor4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4uiv);
        _glColor4uiv = (PFN_GLCOLOR4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4uiv;
    }
    if (strcmp("glColor4us", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4us);
        _glColor4us = (PFN_GLCOLOR4US)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4us;
    }
    if (strcmp("glColor4usv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4usv);
        _glColor4usv = (PFN_GLCOLOR4USV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4usv;
    }
    if (strcmp("glEdgeFlag", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEdgeFlag);
        _glEdgeFlag = (PFN_GLEDGEFLAG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEdgeFlag;
    }
    if (strcmp("glEdgeFlagv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEdgeFlagv);
        _glEdgeFlagv = (PFN_GLEDGEFLAGV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEdgeFlagv;
    }
    if (strcmp("glEnd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnd);
        _glEnd = (PFN_GLEND)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnd;
    }
    if (strcmp("glIndexd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexd);
        _glIndexd = (PFN_GLINDEXD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexd;
    }
    if (strcmp("glIndexdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexdv);
        _glIndexdv = (PFN_GLINDEXDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexdv;
    }
    if (strcmp("glIndexf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexf);
        _glIndexf = (PFN_GLINDEXF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexf;
    }
    if (strcmp("glIndexfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexfv);
        _glIndexfv = (PFN_GLINDEXFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexfv;
    }
    if (strcmp("glIndexi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexi);
        _glIndexi = (PFN_GLINDEXI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexi;
    }
    if (strcmp("glIndexiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexiv);
        _glIndexiv = (PFN_GLINDEXIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexiv;
    }
    if (strcmp("glIndexs", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexs);
        _glIndexs = (PFN_GLINDEXS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexs;
    }
    if (strcmp("glIndexsv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexsv);
        _glIndexsv = (PFN_GLINDEXSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexsv;
    }
    if (strcmp("glNormal3b", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3b);
        _glNormal3b = (PFN_GLNORMAL3B)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3b;
    }
    if (strcmp("glNormal3bv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3bv);
        _glNormal3bv = (PFN_GLNORMAL3BV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3bv;
    }
    if (strcmp("glNormal3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3d);
        _glNormal3d = (PFN_GLNORMAL3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3d;
    }
    if (strcmp("glNormal3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3dv);
        _glNormal3dv = (PFN_GLNORMAL3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3dv;
    }
    if (strcmp("glNormal3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3f);
        _glNormal3f = (PFN_GLNORMAL3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3f;
    }
    if (strcmp("glNormal3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3fv);
        _glNormal3fv = (PFN_GLNORMAL3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3fv;
    }
    if (strcmp("glNormal3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3i);
        _glNormal3i = (PFN_GLNORMAL3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3i;
    }
    if (strcmp("glNormal3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3iv);
        _glNormal3iv = (PFN_GLNORMAL3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3iv;
    }
    if (strcmp("glNormal3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3s);
        _glNormal3s = (PFN_GLNORMAL3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3s;
    }
    if (strcmp("glNormal3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3sv);
        _glNormal3sv = (PFN_GLNORMAL3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3sv;
    }
    if (strcmp("glRasterPos2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2d);
        _glRasterPos2d = (PFN_GLRASTERPOS2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2d;
    }
    if (strcmp("glRasterPos2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2dv);
        _glRasterPos2dv = (PFN_GLRASTERPOS2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2dv;
    }
    if (strcmp("glRasterPos2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2f);
        _glRasterPos2f = (PFN_GLRASTERPOS2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2f;
    }
    if (strcmp("glRasterPos2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2fv);
        _glRasterPos2fv = (PFN_GLRASTERPOS2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2fv;
    }
    if (strcmp("glRasterPos2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2i);
        _glRasterPos2i = (PFN_GLRASTERPOS2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2i;
    }
    if (strcmp("glRasterPos2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2iv);
        _glRasterPos2iv = (PFN_GLRASTERPOS2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2iv;
    }
    if (strcmp("glRasterPos2s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2s);
        _glRasterPos2s = (PFN_GLRASTERPOS2S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2s;
    }
    if (strcmp("glRasterPos2sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos2sv);
        _glRasterPos2sv = (PFN_GLRASTERPOS2SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos2sv;
    }
    if (strcmp("glRasterPos3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3d);
        _glRasterPos3d = (PFN_GLRASTERPOS3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3d;
    }
    if (strcmp("glRasterPos3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3dv);
        _glRasterPos3dv = (PFN_GLRASTERPOS3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3dv;
    }
    if (strcmp("glRasterPos3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3f);
        _glRasterPos3f = (PFN_GLRASTERPOS3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3f;
    }
    if (strcmp("glRasterPos3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3fv);
        _glRasterPos3fv = (PFN_GLRASTERPOS3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3fv;
    }
    if (strcmp("glRasterPos3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3i);
        _glRasterPos3i = (PFN_GLRASTERPOS3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3i;
    }
    if (strcmp("glRasterPos3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3iv);
        _glRasterPos3iv = (PFN_GLRASTERPOS3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3iv;
    }
    if (strcmp("glRasterPos3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3s);
        _glRasterPos3s = (PFN_GLRASTERPOS3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3s;
    }
    if (strcmp("glRasterPos3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos3sv);
        _glRasterPos3sv = (PFN_GLRASTERPOS3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos3sv;
    }
    if (strcmp("glRasterPos4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4d);
        _glRasterPos4d = (PFN_GLRASTERPOS4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4d;
    }
    if (strcmp("glRasterPos4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4dv);
        _glRasterPos4dv = (PFN_GLRASTERPOS4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4dv;
    }
    if (strcmp("glRasterPos4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4f);
        _glRasterPos4f = (PFN_GLRASTERPOS4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4f;
    }
    if (strcmp("glRasterPos4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4fv);
        _glRasterPos4fv = (PFN_GLRASTERPOS4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4fv;
    }
    if (strcmp("glRasterPos4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4i);
        _glRasterPos4i = (PFN_GLRASTERPOS4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4i;
    }
    if (strcmp("glRasterPos4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4iv);
        _glRasterPos4iv = (PFN_GLRASTERPOS4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4iv;
    }
    if (strcmp("glRasterPos4s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4s);
        _glRasterPos4s = (PFN_GLRASTERPOS4S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4s;
    }
    if (strcmp("glRasterPos4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterPos4sv);
        _glRasterPos4sv = (PFN_GLRASTERPOS4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterPos4sv;
    }
    if (strcmp("glRectd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRectd);
        _glRectd = (PFN_GLRECTD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRectd;
    }
    if (strcmp("glRectdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRectdv);
        _glRectdv = (PFN_GLRECTDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRectdv;
    }
    if (strcmp("glRectf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRectf);
        _glRectf = (PFN_GLRECTF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRectf;
    }
    if (strcmp("glRectfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRectfv);
        _glRectfv = (PFN_GLRECTFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRectfv;
    }
    if (strcmp("glRecti", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRecti);
        _glRecti = (PFN_GLRECTI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRecti;
    }
    if (strcmp("glRectiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRectiv);
        _glRectiv = (PFN_GLRECTIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRectiv;
    }
    if (strcmp("glRects", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRects);
        _glRects = (PFN_GLRECTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRects;
    }
    if (strcmp("glRectsv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRectsv);
        _glRectsv = (PFN_GLRECTSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRectsv;
    }
    if (strcmp("glTexCoord1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1d);
        _glTexCoord1d = (PFN_GLTEXCOORD1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1d;
    }
    if (strcmp("glTexCoord1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1dv);
        _glTexCoord1dv = (PFN_GLTEXCOORD1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1dv;
    }
    if (strcmp("glTexCoord1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1f);
        _glTexCoord1f = (PFN_GLTEXCOORD1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1f;
    }
    if (strcmp("glTexCoord1fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1fv);
        _glTexCoord1fv = (PFN_GLTEXCOORD1FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1fv;
    }
    if (strcmp("glTexCoord1i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1i);
        _glTexCoord1i = (PFN_GLTEXCOORD1I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1i;
    }
    if (strcmp("glTexCoord1iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1iv);
        _glTexCoord1iv = (PFN_GLTEXCOORD1IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1iv;
    }
    if (strcmp("glTexCoord1s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1s);
        _glTexCoord1s = (PFN_GLTEXCOORD1S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1s;
    }
    if (strcmp("glTexCoord1sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1sv);
        _glTexCoord1sv = (PFN_GLTEXCOORD1SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1sv;
    }
    if (strcmp("glTexCoord2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2d);
        _glTexCoord2d = (PFN_GLTEXCOORD2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2d;
    }
    if (strcmp("glTexCoord2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2dv);
        _glTexCoord2dv = (PFN_GLTEXCOORD2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2dv;
    }
    if (strcmp("glTexCoord2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2f);
        _glTexCoord2f = (PFN_GLTEXCOORD2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2f;
    }
    if (strcmp("glTexCoord2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fv);
        _glTexCoord2fv = (PFN_GLTEXCOORD2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fv;
    }
    if (strcmp("glTexCoord2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2i);
        _glTexCoord2i = (PFN_GLTEXCOORD2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2i;
    }
    if (strcmp("glTexCoord2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2iv);
        _glTexCoord2iv = (PFN_GLTEXCOORD2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2iv;
    }
    if (strcmp("glTexCoord2s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2s);
        _glTexCoord2s = (PFN_GLTEXCOORD2S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2s;
    }
    if (strcmp("glTexCoord2sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2sv);
        _glTexCoord2sv = (PFN_GLTEXCOORD2SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2sv;
    }
    if (strcmp("glTexCoord3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3d);
        _glTexCoord3d = (PFN_GLTEXCOORD3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3d;
    }
    if (strcmp("glTexCoord3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3dv);
        _glTexCoord3dv = (PFN_GLTEXCOORD3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3dv;
    }
    if (strcmp("glTexCoord3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3f);
        _glTexCoord3f = (PFN_GLTEXCOORD3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3f;
    }
    if (strcmp("glTexCoord3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3fv);
        _glTexCoord3fv = (PFN_GLTEXCOORD3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3fv;
    }
    if (strcmp("glTexCoord3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3i);
        _glTexCoord3i = (PFN_GLTEXCOORD3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3i;
    }
    if (strcmp("glTexCoord3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3iv);
        _glTexCoord3iv = (PFN_GLTEXCOORD3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3iv;
    }
    if (strcmp("glTexCoord3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3s);
        _glTexCoord3s = (PFN_GLTEXCOORD3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3s;
    }
    if (strcmp("glTexCoord3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3sv);
        _glTexCoord3sv = (PFN_GLTEXCOORD3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3sv;
    }
    if (strcmp("glTexCoord4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4d);
        _glTexCoord4d = (PFN_GLTEXCOORD4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4d;
    }
    if (strcmp("glTexCoord4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4dv);
        _glTexCoord4dv = (PFN_GLTEXCOORD4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4dv;
    }
    if (strcmp("glTexCoord4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4f);
        _glTexCoord4f = (PFN_GLTEXCOORD4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4f;
    }
    if (strcmp("glTexCoord4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4fv);
        _glTexCoord4fv = (PFN_GLTEXCOORD4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4fv;
    }
    if (strcmp("glTexCoord4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4i);
        _glTexCoord4i = (PFN_GLTEXCOORD4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4i;
    }
    if (strcmp("glTexCoord4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4iv);
        _glTexCoord4iv = (PFN_GLTEXCOORD4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4iv;
    }
    if (strcmp("glTexCoord4s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4s);
        _glTexCoord4s = (PFN_GLTEXCOORD4S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4s;
    }
    if (strcmp("glTexCoord4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4sv);
        _glTexCoord4sv = (PFN_GLTEXCOORD4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4sv;
    }
    if (strcmp("glVertex2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2d);
        _glVertex2d = (PFN_GLVERTEX2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2d;
    }
    if (strcmp("glVertex2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2dv);
        _glVertex2dv = (PFN_GLVERTEX2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2dv;
    }
    if (strcmp("glVertex2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2f);
        _glVertex2f = (PFN_GLVERTEX2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2f;
    }
    if (strcmp("glVertex2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2fv);
        _glVertex2fv = (PFN_GLVERTEX2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2fv;
    }
    if (strcmp("glVertex2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2i);
        _glVertex2i = (PFN_GLVERTEX2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2i;
    }
    if (strcmp("glVertex2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2iv);
        _glVertex2iv = (PFN_GLVERTEX2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2iv;
    }
    if (strcmp("glVertex2s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2s);
        _glVertex2s = (PFN_GLVERTEX2S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2s;
    }
    if (strcmp("glVertex2sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2sv);
        _glVertex2sv = (PFN_GLVERTEX2SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2sv;
    }
    if (strcmp("glVertex3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3d);
        _glVertex3d = (PFN_GLVERTEX3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3d;
    }
    if (strcmp("glVertex3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3dv);
        _glVertex3dv = (PFN_GLVERTEX3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3dv;
    }
    if (strcmp("glVertex3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3f);
        _glVertex3f = (PFN_GLVERTEX3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3f;
    }
    if (strcmp("glVertex3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3fv);
        _glVertex3fv = (PFN_GLVERTEX3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3fv;
    }
    if (strcmp("glVertex3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3i);
        _glVertex3i = (PFN_GLVERTEX3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3i;
    }
    if (strcmp("glVertex3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3iv);
        _glVertex3iv = (PFN_GLVERTEX3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3iv;
    }
    if (strcmp("glVertex3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3s);
        _glVertex3s = (PFN_GLVERTEX3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3s;
    }
    if (strcmp("glVertex3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3sv);
        _glVertex3sv = (PFN_GLVERTEX3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3sv;
    }
    if (strcmp("glVertex4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4d);
        _glVertex4d = (PFN_GLVERTEX4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4d;
    }
    if (strcmp("glVertex4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4dv);
        _glVertex4dv = (PFN_GLVERTEX4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4dv;
    }
    if (strcmp("glVertex4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4f);
        _glVertex4f = (PFN_GLVERTEX4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4f;
    }
    if (strcmp("glVertex4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4fv);
        _glVertex4fv = (PFN_GLVERTEX4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4fv;
    }
    if (strcmp("glVertex4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4i);
        _glVertex4i = (PFN_GLVERTEX4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4i;
    }
    if (strcmp("glVertex4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4iv);
        _glVertex4iv = (PFN_GLVERTEX4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4iv;
    }
    if (strcmp("glVertex4s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4s);
        _glVertex4s = (PFN_GLVERTEX4S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4s;
    }
    if (strcmp("glVertex4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4sv);
        _glVertex4sv = (PFN_GLVERTEX4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4sv;
    }
    if (strcmp("glClipPlane", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClipPlane);
        _glClipPlane = (PFN_GLCLIPPLANE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClipPlane;
    }
    if (strcmp("glColorMaterial", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorMaterial);
        _glColorMaterial = (PFN_GLCOLORMATERIAL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorMaterial;
    }
    if (strcmp("glFogf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogf);
        _glFogf = (PFN_GLFOGF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogf;
    }
    if (strcmp("glFogfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogfv);
        _glFogfv = (PFN_GLFOGFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogfv;
    }
    if (strcmp("glFogi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogi);
        _glFogi = (PFN_GLFOGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogi;
    }
    if (strcmp("glFogiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogiv);
        _glFogiv = (PFN_GLFOGIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogiv;
    }
    if (strcmp("glLightf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightf);
        _glLightf = (PFN_GLLIGHTF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightf;
    }
    if (strcmp("glLightfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightfv);
        _glLightfv = (PFN_GLLIGHTFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightfv;
    }
    if (strcmp("glLighti", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLighti);
        _glLighti = (PFN_GLLIGHTI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLighti;
    }
    if (strcmp("glLightiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightiv);
        _glLightiv = (PFN_GLLIGHTIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightiv;
    }
    if (strcmp("glLightModelf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightModelf);
        _glLightModelf = (PFN_GLLIGHTMODELF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightModelf;
    }
    if (strcmp("glLightModelfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightModelfv);
        _glLightModelfv = (PFN_GLLIGHTMODELFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightModelfv;
    }
    if (strcmp("glLightModeli", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightModeli);
        _glLightModeli = (PFN_GLLIGHTMODELI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightModeli;
    }
    if (strcmp("glLightModeliv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightModeliv);
        _glLightModeliv = (PFN_GLLIGHTMODELIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightModeliv;
    }
    if (strcmp("glLineStipple", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLineStipple);
        _glLineStipple = (PFN_GLLINESTIPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLineStipple;
    }
    if (strcmp("glMaterialf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMaterialf);
        _glMaterialf = (PFN_GLMATERIALF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMaterialf;
    }
    if (strcmp("glMaterialfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMaterialfv);
        _glMaterialfv = (PFN_GLMATERIALFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMaterialfv;
    }
    if (strcmp("glMateriali", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMateriali);
        _glMateriali = (PFN_GLMATERIALI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMateriali;
    }
    if (strcmp("glMaterialiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMaterialiv);
        _glMaterialiv = (PFN_GLMATERIALIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMaterialiv;
    }
    if (strcmp("glPolygonStipple", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPolygonStipple);
        _glPolygonStipple = (PFN_GLPOLYGONSTIPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPolygonStipple;
    }
    if (strcmp("glShadeModel", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShadeModel);
        _glShadeModel = (PFN_GLSHADEMODEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShadeModel;
    }
    if (strcmp("glTexEnvf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexEnvf);
        _glTexEnvf = (PFN_GLTEXENVF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexEnvf;
    }
    if (strcmp("glTexEnvfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexEnvfv);
        _glTexEnvfv = (PFN_GLTEXENVFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexEnvfv;
    }
    if (strcmp("glTexEnvi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexEnvi);
        _glTexEnvi = (PFN_GLTEXENVI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexEnvi;
    }
    if (strcmp("glTexEnviv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexEnviv);
        _glTexEnviv = (PFN_GLTEXENVIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexEnviv;
    }
    if (strcmp("glTexGend", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGend);
        _glTexGend = (PFN_GLTEXGEND)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGend;
    }
    if (strcmp("glTexGendv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGendv);
        _glTexGendv = (PFN_GLTEXGENDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGendv;
    }
    if (strcmp("glTexGenf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenf);
        _glTexGenf = (PFN_GLTEXGENF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenf;
    }
    if (strcmp("glTexGenfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenfv);
        _glTexGenfv = (PFN_GLTEXGENFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenfv;
    }
    if (strcmp("glTexGeni", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGeni);
        _glTexGeni = (PFN_GLTEXGENI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGeni;
    }
    if (strcmp("glTexGeniv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGeniv);
        _glTexGeniv = (PFN_GLTEXGENIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGeniv;
    }
    if (strcmp("glFeedbackBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFeedbackBuffer);
        _glFeedbackBuffer = (PFN_GLFEEDBACKBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFeedbackBuffer;
    }
    if (strcmp("glSelectBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSelectBuffer);
        _glSelectBuffer = (PFN_GLSELECTBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSelectBuffer;
    }
    if (strcmp("glRenderMode", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderMode);
        _glRenderMode = (PFN_GLRENDERMODE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderMode;
    }
    if (strcmp("glInitNames", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInitNames);
        _glInitNames = (PFN_GLINITNAMES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInitNames;
    }
    if (strcmp("glLoadName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadName);
        _glLoadName = (PFN_GLLOADNAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadName;
    }
    if (strcmp("glPassThrough", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPassThrough);
        _glPassThrough = (PFN_GLPASSTHROUGH)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPassThrough;
    }
    if (strcmp("glPopName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopName);
        _glPopName = (PFN_GLPOPNAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopName;
    }
    if (strcmp("glPushName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushName);
        _glPushName = (PFN_GLPUSHNAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushName;
    }
    if (strcmp("glClearAccum", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearAccum);
        _glClearAccum = (PFN_GLCLEARACCUM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearAccum;
    }
    if (strcmp("glClearIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearIndex);
        _glClearIndex = (PFN_GLCLEARINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearIndex;
    }
    if (strcmp("glIndexMask", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexMask);
        _glIndexMask = (PFN_GLINDEXMASK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexMask;
    }
    if (strcmp("glAccum", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAccum);
        _glAccum = (PFN_GLACCUM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAccum;
    }
    if (strcmp("glPopAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopAttrib);
        _glPopAttrib = (PFN_GLPOPATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopAttrib;
    }
    if (strcmp("glPushAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushAttrib);
        _glPushAttrib = (PFN_GLPUSHATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushAttrib;
    }
    if (strcmp("glMap1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMap1d);
        _glMap1d = (PFN_GLMAP1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMap1d;
    }
    if (strcmp("glMap1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMap1f);
        _glMap1f = (PFN_GLMAP1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMap1f;
    }
    if (strcmp("glMap2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMap2d);
        _glMap2d = (PFN_GLMAP2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMap2d;
    }
    if (strcmp("glMap2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMap2f);
        _glMap2f = (PFN_GLMAP2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMap2f;
    }
    if (strcmp("glMapGrid1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapGrid1d);
        _glMapGrid1d = (PFN_GLMAPGRID1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapGrid1d;
    }
    if (strcmp("glMapGrid1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapGrid1f);
        _glMapGrid1f = (PFN_GLMAPGRID1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapGrid1f;
    }
    if (strcmp("glMapGrid2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapGrid2d);
        _glMapGrid2d = (PFN_GLMAPGRID2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapGrid2d;
    }
    if (strcmp("glMapGrid2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapGrid2f);
        _glMapGrid2f = (PFN_GLMAPGRID2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapGrid2f;
    }
    if (strcmp("glEvalCoord1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord1d);
        _glEvalCoord1d = (PFN_GLEVALCOORD1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord1d;
    }
    if (strcmp("glEvalCoord1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord1dv);
        _glEvalCoord1dv = (PFN_GLEVALCOORD1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord1dv;
    }
    if (strcmp("glEvalCoord1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord1f);
        _glEvalCoord1f = (PFN_GLEVALCOORD1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord1f;
    }
    if (strcmp("glEvalCoord1fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord1fv);
        _glEvalCoord1fv = (PFN_GLEVALCOORD1FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord1fv;
    }
    if (strcmp("glEvalCoord2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord2d);
        _glEvalCoord2d = (PFN_GLEVALCOORD2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord2d;
    }
    if (strcmp("glEvalCoord2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord2dv);
        _glEvalCoord2dv = (PFN_GLEVALCOORD2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord2dv;
    }
    if (strcmp("glEvalCoord2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord2f);
        _glEvalCoord2f = (PFN_GLEVALCOORD2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord2f;
    }
    if (strcmp("glEvalCoord2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalCoord2fv);
        _glEvalCoord2fv = (PFN_GLEVALCOORD2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalCoord2fv;
    }
    if (strcmp("glEvalMesh1", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalMesh1);
        _glEvalMesh1 = (PFN_GLEVALMESH1)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalMesh1;
    }
    if (strcmp("glEvalPoint1", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalPoint1);
        _glEvalPoint1 = (PFN_GLEVALPOINT1)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalPoint1;
    }
    if (strcmp("glEvalMesh2", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalMesh2);
        _glEvalMesh2 = (PFN_GLEVALMESH2)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalMesh2;
    }
    if (strcmp("glEvalPoint2", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalPoint2);
        _glEvalPoint2 = (PFN_GLEVALPOINT2)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalPoint2;
    }
    if (strcmp("glAlphaFunc", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAlphaFunc);
        _glAlphaFunc = (PFN_GLALPHAFUNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAlphaFunc;
    }
    if (strcmp("glPixelZoom", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelZoom);
        _glPixelZoom = (PFN_GLPIXELZOOM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelZoom;
    }
    if (strcmp("glPixelTransferf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTransferf);
        _glPixelTransferf = (PFN_GLPIXELTRANSFERF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTransferf;
    }
    if (strcmp("glPixelTransferi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTransferi);
        _glPixelTransferi = (PFN_GLPIXELTRANSFERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTransferi;
    }
    if (strcmp("glPixelMapfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelMapfv);
        _glPixelMapfv = (PFN_GLPIXELMAPFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelMapfv;
    }
    if (strcmp("glPixelMapuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelMapuiv);
        _glPixelMapuiv = (PFN_GLPIXELMAPUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelMapuiv;
    }
    if (strcmp("glPixelMapusv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelMapusv);
        _glPixelMapusv = (PFN_GLPIXELMAPUSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelMapusv;
    }
    if (strcmp("glCopyPixels", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyPixels);
        _glCopyPixels = (PFN_GLCOPYPIXELS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyPixels;
    }
    if (strcmp("glDrawPixels", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawPixels);
        _glDrawPixels = (PFN_GLDRAWPIXELS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawPixels;
    }
    if (strcmp("glGetClipPlane", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetClipPlane);
        _glGetClipPlane = (PFN_GLGETCLIPPLANE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetClipPlane;
    }
    if (strcmp("glGetLightfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetLightfv);
        _glGetLightfv = (PFN_GLGETLIGHTFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetLightfv;
    }
    if (strcmp("glGetLightiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetLightiv);
        _glGetLightiv = (PFN_GLGETLIGHTIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetLightiv;
    }
    if (strcmp("glGetMapdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapdv);
        _glGetMapdv = (PFN_GLGETMAPDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapdv;
    }
    if (strcmp("glGetMapfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapfv);
        _glGetMapfv = (PFN_GLGETMAPFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapfv;
    }
    if (strcmp("glGetMapiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapiv);
        _glGetMapiv = (PFN_GLGETMAPIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapiv;
    }
    if (strcmp("glGetMaterialfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMaterialfv);
        _glGetMaterialfv = (PFN_GLGETMATERIALFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMaterialfv;
    }
    if (strcmp("glGetMaterialiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMaterialiv);
        _glGetMaterialiv = (PFN_GLGETMATERIALIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMaterialiv;
    }
    if (strcmp("glGetPixelMapfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelMapfv);
        _glGetPixelMapfv = (PFN_GLGETPIXELMAPFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelMapfv;
    }
    if (strcmp("glGetPixelMapuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelMapuiv);
        _glGetPixelMapuiv = (PFN_GLGETPIXELMAPUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelMapuiv;
    }
    if (strcmp("glGetPixelMapusv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelMapusv);
        _glGetPixelMapusv = (PFN_GLGETPIXELMAPUSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelMapusv;
    }
    if (strcmp("glGetPolygonStipple", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPolygonStipple);
        _glGetPolygonStipple = (PFN_GLGETPOLYGONSTIPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPolygonStipple;
    }
    if (strcmp("glGetTexEnvfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexEnvfv);
        _glGetTexEnvfv = (PFN_GLGETTEXENVFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexEnvfv;
    }
    if (strcmp("glGetTexEnviv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexEnviv);
        _glGetTexEnviv = (PFN_GLGETTEXENVIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexEnviv;
    }
    if (strcmp("glGetTexGendv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexGendv);
        _glGetTexGendv = (PFN_GLGETTEXGENDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexGendv;
    }
    if (strcmp("glGetTexGenfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexGenfv);
        _glGetTexGenfv = (PFN_GLGETTEXGENFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexGenfv;
    }
    if (strcmp("glGetTexGeniv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexGeniv);
        _glGetTexGeniv = (PFN_GLGETTEXGENIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexGeniv;
    }
    if (strcmp("glIsList", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsList);
        _glIsList = (PFN_GLISLIST)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsList;
    }
    if (strcmp("glFrustum", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrustum);
        _glFrustum = (PFN_GLFRUSTUM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrustum;
    }
    if (strcmp("glLoadIdentity", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadIdentity);
        _glLoadIdentity = (PFN_GLLOADIDENTITY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadIdentity;
    }
    if (strcmp("glLoadMatrixf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadMatrixf);
        _glLoadMatrixf = (PFN_GLLOADMATRIXF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadMatrixf;
    }
    if (strcmp("glLoadMatrixd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadMatrixd);
        _glLoadMatrixd = (PFN_GLLOADMATRIXD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadMatrixd;
    }
    if (strcmp("glMatrixMode", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMode);
        _glMatrixMode = (PFN_GLMATRIXMODE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMode;
    }
    if (strcmp("glMultMatrixf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultMatrixf);
        _glMultMatrixf = (PFN_GLMULTMATRIXF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultMatrixf;
    }
    if (strcmp("glMultMatrixd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultMatrixd);
        _glMultMatrixd = (PFN_GLMULTMATRIXD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultMatrixd;
    }
    if (strcmp("glOrtho", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glOrtho);
        _glOrtho = (PFN_GLORTHO)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glOrtho;
    }
    if (strcmp("glPopMatrix", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopMatrix);
        _glPopMatrix = (PFN_GLPOPMATRIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopMatrix;
    }
    if (strcmp("glPushMatrix", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushMatrix);
        _glPushMatrix = (PFN_GLPUSHMATRIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushMatrix;
    }
    if (strcmp("glRotated", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRotated);
        _glRotated = (PFN_GLROTATED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRotated;
    }
    if (strcmp("glRotatef", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRotatef);
        _glRotatef = (PFN_GLROTATEF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRotatef;
    }
    if (strcmp("glScaled", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScaled);
        _glScaled = (PFN_GLSCALED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScaled;
    }
    if (strcmp("glScalef", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScalef);
        _glScalef = (PFN_GLSCALEF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScalef;
    }
    if (strcmp("glTranslated", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTranslated);
        _glTranslated = (PFN_GLTRANSLATED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTranslated;
    }
    if (strcmp("glTranslatef", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTranslatef);
        _glTranslatef = (PFN_GLTRANSLATEF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTranslatef;
    }
    if (strcmp("glDrawArrays", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArrays);
        _glDrawArrays = (PFN_GLDRAWARRAYS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArrays;
    }
    if (strcmp("glDrawElements", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElements);
        _glDrawElements = (PFN_GLDRAWELEMENTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElements;
    }
    if (strcmp("glGetPointerv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPointerv);
        _glGetPointerv = (PFN_GLGETPOINTERV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPointerv;
    }
    if (strcmp("glPolygonOffset", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPolygonOffset);
        _glPolygonOffset = (PFN_GLPOLYGONOFFSET)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPolygonOffset;
    }
    if (strcmp("glCopyTexImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexImage1D);
        _glCopyTexImage1D = (PFN_GLCOPYTEXIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexImage1D;
    }
    if (strcmp("glCopyTexImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexImage2D);
        _glCopyTexImage2D = (PFN_GLCOPYTEXIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexImage2D;
    }
    if (strcmp("glCopyTexSubImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage1D);
        _glCopyTexSubImage1D = (PFN_GLCOPYTEXSUBIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage1D;
    }
    if (strcmp("glCopyTexSubImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage2D);
        _glCopyTexSubImage2D = (PFN_GLCOPYTEXSUBIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage2D;
    }
    if (strcmp("glTexSubImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage1D);
        _glTexSubImage1D = (PFN_GLTEXSUBIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage1D;
    }
    if (strcmp("glTexSubImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage2D);
        _glTexSubImage2D = (PFN_GLTEXSUBIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage2D;
    }
    if (strcmp("glBindTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTexture);
        _glBindTexture = (PFN_GLBINDTEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTexture;
    }
    if (strcmp("glDeleteTextures", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteTextures);
        _glDeleteTextures = (PFN_GLDELETETEXTURES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteTextures;
    }
    if (strcmp("glGenTextures", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenTextures);
        _glGenTextures = (PFN_GLGENTEXTURES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenTextures;
    }
    if (strcmp("glIsTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsTexture);
        _glIsTexture = (PFN_GLISTEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsTexture;
    }
    if (strcmp("glArrayElement", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glArrayElement);
        _glArrayElement = (PFN_GLARRAYELEMENT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glArrayElement;
    }
    if (strcmp("glColorPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorPointer);
        _glColorPointer = (PFN_GLCOLORPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorPointer;
    }
    if (strcmp("glDisableClientState", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableClientState);
        _glDisableClientState = (PFN_GLDISABLECLIENTSTATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableClientState;
    }
    if (strcmp("glEdgeFlagPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEdgeFlagPointer);
        _glEdgeFlagPointer = (PFN_GLEDGEFLAGPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEdgeFlagPointer;
    }
    if (strcmp("glEnableClientState", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableClientState);
        _glEnableClientState = (PFN_GLENABLECLIENTSTATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableClientState;
    }
    if (strcmp("glIndexPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexPointer);
        _glIndexPointer = (PFN_GLINDEXPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexPointer;
    }
    if (strcmp("glInterleavedArrays", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInterleavedArrays);
        _glInterleavedArrays = (PFN_GLINTERLEAVEDARRAYS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInterleavedArrays;
    }
    if (strcmp("glNormalPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalPointer);
        _glNormalPointer = (PFN_GLNORMALPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalPointer;
    }
    if (strcmp("glTexCoordPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordPointer);
        _glTexCoordPointer = (PFN_GLTEXCOORDPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordPointer;
    }
    if (strcmp("glVertexPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexPointer);
        _glVertexPointer = (PFN_GLVERTEXPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexPointer;
    }
    if (strcmp("glAreTexturesResident", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAreTexturesResident);
        _glAreTexturesResident = (PFN_GLARETEXTURESRESIDENT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAreTexturesResident;
    }
    if (strcmp("glPrioritizeTextures", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrioritizeTextures);
        _glPrioritizeTextures = (PFN_GLPRIORITIZETEXTURES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrioritizeTextures;
    }
    if (strcmp("glIndexub", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexub);
        _glIndexub = (PFN_GLINDEXUB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexub;
    }
    if (strcmp("glIndexubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexubv);
        _glIndexubv = (PFN_GLINDEXUBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexubv;
    }
    if (strcmp("glPopClientAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopClientAttrib);
        _glPopClientAttrib = (PFN_GLPOPCLIENTATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopClientAttrib;
    }
    if (strcmp("glPushClientAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushClientAttrib);
        _glPushClientAttrib = (PFN_GLPUSHCLIENTATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushClientAttrib;
    }
    if (strcmp("glBlendColor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendColor);
        _glBlendColor = (PFN_GLBLENDCOLOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendColor;
    }
    if (strcmp("glBlendEquation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquation);
        _glBlendEquation = (PFN_GLBLENDEQUATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquation;
    }
    if (strcmp("glDrawRangeElements", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawRangeElements);
        _glDrawRangeElements = (PFN_GLDRAWRANGEELEMENTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawRangeElements;
    }
    if (strcmp("glTexImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage3D);
        _glTexImage3D = (PFN_GLTEXIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage3D;
    }
    if (strcmp("glTexSubImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage3D);
        _glTexSubImage3D = (PFN_GLTEXSUBIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage3D;
    }
    if (strcmp("glCopyTexSubImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage3D);
        _glCopyTexSubImage3D = (PFN_GLCOPYTEXSUBIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage3D;
    }
    if (strcmp("glColorTable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTable);
        _glColorTable = (PFN_GLCOLORTABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTable;
    }
    if (strcmp("glColorTableParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTableParameterfv);
        _glColorTableParameterfv = (PFN_GLCOLORTABLEPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTableParameterfv;
    }
    if (strcmp("glColorTableParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTableParameteriv);
        _glColorTableParameteriv = (PFN_GLCOLORTABLEPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTableParameteriv;
    }
    if (strcmp("glCopyColorTable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyColorTable);
        _glCopyColorTable = (PFN_GLCOPYCOLORTABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyColorTable;
    }
    if (strcmp("glGetColorTable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTable);
        _glGetColorTable = (PFN_GLGETCOLORTABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTable;
    }
    if (strcmp("glGetColorTableParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterfv);
        _glGetColorTableParameterfv = (PFN_GLGETCOLORTABLEPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterfv;
    }
    if (strcmp("glGetColorTableParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameteriv);
        _glGetColorTableParameteriv = (PFN_GLGETCOLORTABLEPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameteriv;
    }
    if (strcmp("glColorSubTable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorSubTable);
        _glColorSubTable = (PFN_GLCOLORSUBTABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorSubTable;
    }
    if (strcmp("glCopyColorSubTable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyColorSubTable);
        _glCopyColorSubTable = (PFN_GLCOPYCOLORSUBTABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyColorSubTable;
    }
    if (strcmp("glConvolutionFilter1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter1D);
        _glConvolutionFilter1D = (PFN_GLCONVOLUTIONFILTER1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter1D;
    }
    if (strcmp("glConvolutionFilter2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter2D);
        _glConvolutionFilter2D = (PFN_GLCONVOLUTIONFILTER2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter2D;
    }
    if (strcmp("glConvolutionParameterf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterf);
        _glConvolutionParameterf = (PFN_GLCONVOLUTIONPARAMETERF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterf;
    }
    if (strcmp("glConvolutionParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterfv);
        _glConvolutionParameterfv = (PFN_GLCONVOLUTIONPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterfv;
    }
    if (strcmp("glConvolutionParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameteri);
        _glConvolutionParameteri = (PFN_GLCONVOLUTIONPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameteri;
    }
    if (strcmp("glConvolutionParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameteriv);
        _glConvolutionParameteriv = (PFN_GLCONVOLUTIONPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameteriv;
    }
    if (strcmp("glCopyConvolutionFilter1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter1D);
        _glCopyConvolutionFilter1D = (PFN_GLCOPYCONVOLUTIONFILTER1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter1D;
    }
    if (strcmp("glCopyConvolutionFilter2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter2D);
        _glCopyConvolutionFilter2D = (PFN_GLCOPYCONVOLUTIONFILTER2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter2D;
    }
    if (strcmp("glGetConvolutionFilter", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetConvolutionFilter);
        _glGetConvolutionFilter = (PFN_GLGETCONVOLUTIONFILTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetConvolutionFilter;
    }
    if (strcmp("glGetConvolutionParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameterfv);
        _glGetConvolutionParameterfv = (PFN_GLGETCONVOLUTIONPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameterfv;
    }
    if (strcmp("glGetConvolutionParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameteriv);
        _glGetConvolutionParameteriv = (PFN_GLGETCONVOLUTIONPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameteriv;
    }
    if (strcmp("glGetSeparableFilter", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSeparableFilter);
        _glGetSeparableFilter = (PFN_GLGETSEPARABLEFILTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSeparableFilter;
    }
    if (strcmp("glSeparableFilter2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSeparableFilter2D);
        _glSeparableFilter2D = (PFN_GLSEPARABLEFILTER2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSeparableFilter2D;
    }
    if (strcmp("glGetHistogram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHistogram);
        _glGetHistogram = (PFN_GLGETHISTOGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHistogram;
    }
    if (strcmp("glGetHistogramParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameterfv);
        _glGetHistogramParameterfv = (PFN_GLGETHISTOGRAMPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameterfv;
    }
    if (strcmp("glGetHistogramParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameteriv);
        _glGetHistogramParameteriv = (PFN_GLGETHISTOGRAMPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameteriv;
    }
    if (strcmp("glGetMinmax", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMinmax);
        _glGetMinmax = (PFN_GLGETMINMAX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMinmax;
    }
    if (strcmp("glGetMinmaxParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameterfv);
        _glGetMinmaxParameterfv = (PFN_GLGETMINMAXPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameterfv;
    }
    if (strcmp("glGetMinmaxParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameteriv);
        _glGetMinmaxParameteriv = (PFN_GLGETMINMAXPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameteriv;
    }
    if (strcmp("glHistogram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glHistogram);
        _glHistogram = (PFN_GLHISTOGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glHistogram;
    }
    if (strcmp("glMinmax", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMinmax);
        _glMinmax = (PFN_GLMINMAX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMinmax;
    }
    if (strcmp("glResetHistogram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResetHistogram);
        _glResetHistogram = (PFN_GLRESETHISTOGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResetHistogram;
    }
    if (strcmp("glResetMinmax", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResetMinmax);
        _glResetMinmax = (PFN_GLRESETMINMAX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResetMinmax;
    }
    if (strcmp("glActiveTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveTexture);
        _glActiveTexture = (PFN_GLACTIVETEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveTexture;
    }
    if (strcmp("glSampleCoverage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleCoverage);
        _glSampleCoverage = (PFN_GLSAMPLECOVERAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleCoverage;
    }
    if (strcmp("glCompressedTexImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage3D);
        _glCompressedTexImage3D = (PFN_GLCOMPRESSEDTEXIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage3D;
    }
    if (strcmp("glCompressedTexImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage2D);
        _glCompressedTexImage2D = (PFN_GLCOMPRESSEDTEXIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage2D;
    }
    if (strcmp("glCompressedTexImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage1D);
        _glCompressedTexImage1D = (PFN_GLCOMPRESSEDTEXIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage1D;
    }
    if (strcmp("glCompressedTexSubImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage3D);
        _glCompressedTexSubImage3D = (PFN_GLCOMPRESSEDTEXSUBIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage3D;
    }
    if (strcmp("glCompressedTexSubImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage2D);
        _glCompressedTexSubImage2D = (PFN_GLCOMPRESSEDTEXSUBIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage2D;
    }
    if (strcmp("glCompressedTexSubImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage1D);
        _glCompressedTexSubImage1D = (PFN_GLCOMPRESSEDTEXSUBIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage1D;
    }
    if (strcmp("glGetCompressedTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCompressedTexImage);
        _glGetCompressedTexImage = (PFN_GLGETCOMPRESSEDTEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCompressedTexImage;
    }
    if (strcmp("glClientActiveTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClientActiveTexture);
        _glClientActiveTexture = (PFN_GLCLIENTACTIVETEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClientActiveTexture;
    }
    if (strcmp("glMultiTexCoord1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1d);
        _glMultiTexCoord1d = (PFN_GLMULTITEXCOORD1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1d;
    }
    if (strcmp("glMultiTexCoord1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1dv);
        _glMultiTexCoord1dv = (PFN_GLMULTITEXCOORD1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1dv;
    }
    if (strcmp("glMultiTexCoord1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1f);
        _glMultiTexCoord1f = (PFN_GLMULTITEXCOORD1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1f;
    }
    if (strcmp("glMultiTexCoord1fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1fv);
        _glMultiTexCoord1fv = (PFN_GLMULTITEXCOORD1FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1fv;
    }
    if (strcmp("glMultiTexCoord1i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1i);
        _glMultiTexCoord1i = (PFN_GLMULTITEXCOORD1I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1i;
    }
    if (strcmp("glMultiTexCoord1iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1iv);
        _glMultiTexCoord1iv = (PFN_GLMULTITEXCOORD1IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1iv;
    }
    if (strcmp("glMultiTexCoord1s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1s);
        _glMultiTexCoord1s = (PFN_GLMULTITEXCOORD1S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1s;
    }
    if (strcmp("glMultiTexCoord1sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1sv);
        _glMultiTexCoord1sv = (PFN_GLMULTITEXCOORD1SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1sv;
    }
    if (strcmp("glMultiTexCoord2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2d);
        _glMultiTexCoord2d = (PFN_GLMULTITEXCOORD2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2d;
    }
    if (strcmp("glMultiTexCoord2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2dv);
        _glMultiTexCoord2dv = (PFN_GLMULTITEXCOORD2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2dv;
    }
    if (strcmp("glMultiTexCoord2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2f);
        _glMultiTexCoord2f = (PFN_GLMULTITEXCOORD2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2f;
    }
    if (strcmp("glMultiTexCoord2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2fv);
        _glMultiTexCoord2fv = (PFN_GLMULTITEXCOORD2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2fv;
    }
    if (strcmp("glMultiTexCoord2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2i);
        _glMultiTexCoord2i = (PFN_GLMULTITEXCOORD2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2i;
    }
    if (strcmp("glMultiTexCoord2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2iv);
        _glMultiTexCoord2iv = (PFN_GLMULTITEXCOORD2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2iv;
    }
    if (strcmp("glMultiTexCoord2s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2s);
        _glMultiTexCoord2s = (PFN_GLMULTITEXCOORD2S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2s;
    }
    if (strcmp("glMultiTexCoord2sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2sv);
        _glMultiTexCoord2sv = (PFN_GLMULTITEXCOORD2SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2sv;
    }
    if (strcmp("glMultiTexCoord3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3d);
        _glMultiTexCoord3d = (PFN_GLMULTITEXCOORD3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3d;
    }
    if (strcmp("glMultiTexCoord3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3dv);
        _glMultiTexCoord3dv = (PFN_GLMULTITEXCOORD3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3dv;
    }
    if (strcmp("glMultiTexCoord3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3f);
        _glMultiTexCoord3f = (PFN_GLMULTITEXCOORD3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3f;
    }
    if (strcmp("glMultiTexCoord3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3fv);
        _glMultiTexCoord3fv = (PFN_GLMULTITEXCOORD3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3fv;
    }
    if (strcmp("glMultiTexCoord3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3i);
        _glMultiTexCoord3i = (PFN_GLMULTITEXCOORD3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3i;
    }
    if (strcmp("glMultiTexCoord3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3iv);
        _glMultiTexCoord3iv = (PFN_GLMULTITEXCOORD3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3iv;
    }
    if (strcmp("glMultiTexCoord3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3s);
        _glMultiTexCoord3s = (PFN_GLMULTITEXCOORD3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3s;
    }
    if (strcmp("glMultiTexCoord3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3sv);
        _glMultiTexCoord3sv = (PFN_GLMULTITEXCOORD3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3sv;
    }
    if (strcmp("glMultiTexCoord4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4d);
        _glMultiTexCoord4d = (PFN_GLMULTITEXCOORD4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4d;
    }
    if (strcmp("glMultiTexCoord4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4dv);
        _glMultiTexCoord4dv = (PFN_GLMULTITEXCOORD4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4dv;
    }
    if (strcmp("glMultiTexCoord4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4f);
        _glMultiTexCoord4f = (PFN_GLMULTITEXCOORD4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4f;
    }
    if (strcmp("glMultiTexCoord4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4fv);
        _glMultiTexCoord4fv = (PFN_GLMULTITEXCOORD4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4fv;
    }
    if (strcmp("glMultiTexCoord4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4i);
        _glMultiTexCoord4i = (PFN_GLMULTITEXCOORD4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4i;
    }
    if (strcmp("glMultiTexCoord4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4iv);
        _glMultiTexCoord4iv = (PFN_GLMULTITEXCOORD4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4iv;
    }
    if (strcmp("glMultiTexCoord4s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4s);
        _glMultiTexCoord4s = (PFN_GLMULTITEXCOORD4S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4s;
    }
    if (strcmp("glMultiTexCoord4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4sv);
        _glMultiTexCoord4sv = (PFN_GLMULTITEXCOORD4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4sv;
    }
    if (strcmp("glLoadTransposeMatrixf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixf);
        _glLoadTransposeMatrixf = (PFN_GLLOADTRANSPOSEMATRIXF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixf;
    }
    if (strcmp("glLoadTransposeMatrixd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixd);
        _glLoadTransposeMatrixd = (PFN_GLLOADTRANSPOSEMATRIXD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixd;
    }
    if (strcmp("glMultTransposeMatrixf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixf);
        _glMultTransposeMatrixf = (PFN_GLMULTTRANSPOSEMATRIXF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixf;
    }
    if (strcmp("glMultTransposeMatrixd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixd);
        _glMultTransposeMatrixd = (PFN_GLMULTTRANSPOSEMATRIXD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixd;
    }
    if (strcmp("glBlendFuncSeparate", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparate);
        _glBlendFuncSeparate = (PFN_GLBLENDFUNCSEPARATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparate;
    }
    if (strcmp("glMultiDrawArrays", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArrays);
        _glMultiDrawArrays = (PFN_GLMULTIDRAWARRAYS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArrays;
    }
    if (strcmp("glMultiDrawElements", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElements);
        _glMultiDrawElements = (PFN_GLMULTIDRAWELEMENTS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElements;
    }
    if (strcmp("glPointParameterf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterf);
        _glPointParameterf = (PFN_GLPOINTPARAMETERF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterf;
    }
    if (strcmp("glPointParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfv);
        _glPointParameterfv = (PFN_GLPOINTPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfv;
    }
    if (strcmp("glPointParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameteri);
        _glPointParameteri = (PFN_GLPOINTPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameteri;
    }
    if (strcmp("glPointParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameteriv);
        _glPointParameteriv = (PFN_GLPOINTPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameteriv;
    }
    if (strcmp("glFogCoordf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordf);
        _glFogCoordf = (PFN_GLFOGCOORDF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordf;
    }
    if (strcmp("glFogCoordfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordfv);
        _glFogCoordfv = (PFN_GLFOGCOORDFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordfv;
    }
    if (strcmp("glFogCoordd", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordd);
        _glFogCoordd = (PFN_GLFOGCOORDD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordd;
    }
    if (strcmp("glFogCoorddv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoorddv);
        _glFogCoorddv = (PFN_GLFOGCOORDDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoorddv;
    }
    if (strcmp("glFogCoordPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordPointer);
        _glFogCoordPointer = (PFN_GLFOGCOORDPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordPointer;
    }
    if (strcmp("glSecondaryColor3b", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3b);
        _glSecondaryColor3b = (PFN_GLSECONDARYCOLOR3B)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3b;
    }
    if (strcmp("glSecondaryColor3bv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3bv);
        _glSecondaryColor3bv = (PFN_GLSECONDARYCOLOR3BV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3bv;
    }
    if (strcmp("glSecondaryColor3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3d);
        _glSecondaryColor3d = (PFN_GLSECONDARYCOLOR3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3d;
    }
    if (strcmp("glSecondaryColor3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3dv);
        _glSecondaryColor3dv = (PFN_GLSECONDARYCOLOR3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3dv;
    }
    if (strcmp("glSecondaryColor3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3f);
        _glSecondaryColor3f = (PFN_GLSECONDARYCOLOR3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3f;
    }
    if (strcmp("glSecondaryColor3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3fv);
        _glSecondaryColor3fv = (PFN_GLSECONDARYCOLOR3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3fv;
    }
    if (strcmp("glSecondaryColor3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3i);
        _glSecondaryColor3i = (PFN_GLSECONDARYCOLOR3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3i;
    }
    if (strcmp("glSecondaryColor3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3iv);
        _glSecondaryColor3iv = (PFN_GLSECONDARYCOLOR3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3iv;
    }
    if (strcmp("glSecondaryColor3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3s);
        _glSecondaryColor3s = (PFN_GLSECONDARYCOLOR3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3s;
    }
    if (strcmp("glSecondaryColor3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3sv);
        _glSecondaryColor3sv = (PFN_GLSECONDARYCOLOR3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3sv;
    }
    if (strcmp("glSecondaryColor3ub", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ub);
        _glSecondaryColor3ub = (PFN_GLSECONDARYCOLOR3UB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ub;
    }
    if (strcmp("glSecondaryColor3ubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ubv);
        _glSecondaryColor3ubv = (PFN_GLSECONDARYCOLOR3UBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ubv;
    }
    if (strcmp("glSecondaryColor3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ui);
        _glSecondaryColor3ui = (PFN_GLSECONDARYCOLOR3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ui;
    }
    if (strcmp("glSecondaryColor3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3uiv);
        _glSecondaryColor3uiv = (PFN_GLSECONDARYCOLOR3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3uiv;
    }
    if (strcmp("glSecondaryColor3us", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3us);
        _glSecondaryColor3us = (PFN_GLSECONDARYCOLOR3US)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3us;
    }
    if (strcmp("glSecondaryColor3usv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3usv);
        _glSecondaryColor3usv = (PFN_GLSECONDARYCOLOR3USV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3usv;
    }
    if (strcmp("glSecondaryColorPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColorPointer);
        _glSecondaryColorPointer = (PFN_GLSECONDARYCOLORPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColorPointer;
    }
    if (strcmp("glWindowPos2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2d);
        _glWindowPos2d = (PFN_GLWINDOWPOS2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2d;
    }
    if (strcmp("glWindowPos2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2dv);
        _glWindowPos2dv = (PFN_GLWINDOWPOS2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2dv;
    }
    if (strcmp("glWindowPos2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2f);
        _glWindowPos2f = (PFN_GLWINDOWPOS2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2f;
    }
    if (strcmp("glWindowPos2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2fv);
        _glWindowPos2fv = (PFN_GLWINDOWPOS2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2fv;
    }
    if (strcmp("glWindowPos2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2i);
        _glWindowPos2i = (PFN_GLWINDOWPOS2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2i;
    }
    if (strcmp("glWindowPos2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2iv);
        _glWindowPos2iv = (PFN_GLWINDOWPOS2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2iv;
    }
    if (strcmp("glWindowPos2s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2s);
        _glWindowPos2s = (PFN_GLWINDOWPOS2S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2s;
    }
    if (strcmp("glWindowPos2sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2sv);
        _glWindowPos2sv = (PFN_GLWINDOWPOS2SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2sv;
    }
    if (strcmp("glWindowPos3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3d);
        _glWindowPos3d = (PFN_GLWINDOWPOS3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3d;
    }
    if (strcmp("glWindowPos3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3dv);
        _glWindowPos3dv = (PFN_GLWINDOWPOS3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3dv;
    }
    if (strcmp("glWindowPos3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3f);
        _glWindowPos3f = (PFN_GLWINDOWPOS3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3f;
    }
    if (strcmp("glWindowPos3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3fv);
        _glWindowPos3fv = (PFN_GLWINDOWPOS3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3fv;
    }
    if (strcmp("glWindowPos3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3i);
        _glWindowPos3i = (PFN_GLWINDOWPOS3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3i;
    }
    if (strcmp("glWindowPos3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3iv);
        _glWindowPos3iv = (PFN_GLWINDOWPOS3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3iv;
    }
    if (strcmp("glWindowPos3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3s);
        _glWindowPos3s = (PFN_GLWINDOWPOS3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3s;
    }
    if (strcmp("glWindowPos3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3sv);
        _glWindowPos3sv = (PFN_GLWINDOWPOS3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3sv;
    }
    if (strcmp("glGenQueries", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenQueries);
        _glGenQueries = (PFN_GLGENQUERIES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenQueries;
    }
    if (strcmp("glDeleteQueries", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteQueries);
        _glDeleteQueries = (PFN_GLDELETEQUERIES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteQueries;
    }
    if (strcmp("glIsQuery", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsQuery);
        _glIsQuery = (PFN_GLISQUERY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsQuery;
    }
    if (strcmp("glBeginQuery", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginQuery);
        _glBeginQuery = (PFN_GLBEGINQUERY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginQuery;
    }
    if (strcmp("glEndQuery", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndQuery);
        _glEndQuery = (PFN_GLENDQUERY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndQuery;
    }
    if (strcmp("glGetQueryiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryiv);
        _glGetQueryiv = (PFN_GLGETQUERYIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryiv;
    }
    if (strcmp("glGetQueryObjectiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectiv);
        _glGetQueryObjectiv = (PFN_GLGETQUERYOBJECTIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectiv;
    }
    if (strcmp("glGetQueryObjectuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuiv);
        _glGetQueryObjectuiv = (PFN_GLGETQUERYOBJECTUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuiv;
    }
    if (strcmp("glBindBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBuffer);
        _glBindBuffer = (PFN_GLBINDBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBuffer;
    }
    if (strcmp("glDeleteBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteBuffers);
        _glDeleteBuffers = (PFN_GLDELETEBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteBuffers;
    }
    if (strcmp("glGenBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenBuffers);
        _glGenBuffers = (PFN_GLGENBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenBuffers;
    }
    if (strcmp("glIsBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsBuffer);
        _glIsBuffer = (PFN_GLISBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsBuffer;
    }
    if (strcmp("glBufferData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferData);
        _glBufferData = (PFN_GLBUFFERDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferData;
    }
    if (strcmp("glBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferSubData);
        _glBufferSubData = (PFN_GLBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferSubData;
    }
    if (strcmp("glGetBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferSubData);
        _glGetBufferSubData = (PFN_GLGETBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferSubData;
    }
    if (strcmp("glMapBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapBuffer);
        _glMapBuffer = (PFN_GLMAPBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapBuffer;
    }
    if (strcmp("glUnmapBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapBuffer);
        _glUnmapBuffer = (PFN_GLUNMAPBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapBuffer;
    }
    if (strcmp("glGetBufferParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferParameteriv);
        _glGetBufferParameteriv = (PFN_GLGETBUFFERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferParameteriv;
    }
    if (strcmp("glGetBufferPointerv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferPointerv);
        _glGetBufferPointerv = (PFN_GLGETBUFFERPOINTERV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferPointerv;
    }
    if (strcmp("glBlendEquationSeparate", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparate);
        _glBlendEquationSeparate = (PFN_GLBLENDEQUATIONSEPARATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparate;
    }
    if (strcmp("glDrawBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffers);
        _glDrawBuffers = (PFN_GLDRAWBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffers;
    }
    if (strcmp("glStencilOpSeparate", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilOpSeparate);
        _glStencilOpSeparate = (PFN_GLSTENCILOPSEPARATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilOpSeparate;
    }
    if (strcmp("glStencilFuncSeparate", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilFuncSeparate);
        _glStencilFuncSeparate = (PFN_GLSTENCILFUNCSEPARATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilFuncSeparate;
    }
    if (strcmp("glStencilMaskSeparate", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilMaskSeparate);
        _glStencilMaskSeparate = (PFN_GLSTENCILMASKSEPARATE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilMaskSeparate;
    }
    if (strcmp("glAttachShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAttachShader);
        _glAttachShader = (PFN_GLATTACHSHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAttachShader;
    }
    if (strcmp("glBindAttribLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindAttribLocation);
        _glBindAttribLocation = (PFN_GLBINDATTRIBLOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindAttribLocation;
    }
    if (strcmp("glCompileShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompileShader);
        _glCompileShader = (PFN_GLCOMPILESHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompileShader;
    }
    if (strcmp("glCreateProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateProgram);
        _glCreateProgram = (PFN_GLCREATEPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateProgram;
    }
    if (strcmp("glCreateShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateShader);
        _glCreateShader = (PFN_GLCREATESHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateShader;
    }
    if (strcmp("glDeleteProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteProgram);
        _glDeleteProgram = (PFN_GLDELETEPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteProgram;
    }
    if (strcmp("glDeleteShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteShader);
        _glDeleteShader = (PFN_GLDELETESHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteShader;
    }
    if (strcmp("glDetachShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDetachShader);
        _glDetachShader = (PFN_GLDETACHSHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDetachShader;
    }
    if (strcmp("glDisableVertexAttribArray", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVertexAttribArray);
        _glDisableVertexAttribArray = (PFN_GLDISABLEVERTEXATTRIBARRAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVertexAttribArray;
    }
    if (strcmp("glEnableVertexAttribArray", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVertexAttribArray);
        _glEnableVertexAttribArray = (PFN_GLENABLEVERTEXATTRIBARRAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVertexAttribArray;
    }
    if (strcmp("glGetActiveAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveAttrib);
        _glGetActiveAttrib = (PFN_GLGETACTIVEATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveAttrib;
    }
    if (strcmp("glGetActiveUniform", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveUniform);
        _glGetActiveUniform = (PFN_GLGETACTIVEUNIFORM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveUniform;
    }
    if (strcmp("glGetAttachedShaders", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetAttachedShaders);
        _glGetAttachedShaders = (PFN_GLGETATTACHEDSHADERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetAttachedShaders;
    }
    if (strcmp("glGetAttribLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetAttribLocation);
        _glGetAttribLocation = (PFN_GLGETATTRIBLOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetAttribLocation;
    }
    if (strcmp("glGetProgramiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramiv);
        _glGetProgramiv = (PFN_GLGETPROGRAMIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramiv;
    }
    if (strcmp("glGetProgramInfoLog", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramInfoLog);
        _glGetProgramInfoLog = (PFN_GLGETPROGRAMINFOLOG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramInfoLog;
    }
    if (strcmp("glGetShaderiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetShaderiv);
        _glGetShaderiv = (PFN_GLGETSHADERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetShaderiv;
    }
    if (strcmp("glGetShaderInfoLog", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetShaderInfoLog);
        _glGetShaderInfoLog = (PFN_GLGETSHADERINFOLOG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetShaderInfoLog;
    }
    if (strcmp("glGetShaderSource", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetShaderSource);
        _glGetShaderSource = (PFN_GLGETSHADERSOURCE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetShaderSource;
    }
    if (strcmp("glGetUniformLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformLocation);
        _glGetUniformLocation = (PFN_GLGETUNIFORMLOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformLocation;
    }
    if (strcmp("glGetUniformfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformfv);
        _glGetUniformfv = (PFN_GLGETUNIFORMFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformfv;
    }
    if (strcmp("glGetUniformiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformiv);
        _glGetUniformiv = (PFN_GLGETUNIFORMIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformiv;
    }
    if (strcmp("glGetVertexAttribdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribdv);
        _glGetVertexAttribdv = (PFN_GLGETVERTEXATTRIBDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribdv;
    }
    if (strcmp("glGetVertexAttribfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribfv);
        _glGetVertexAttribfv = (PFN_GLGETVERTEXATTRIBFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribfv;
    }
    if (strcmp("glGetVertexAttribiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribiv);
        _glGetVertexAttribiv = (PFN_GLGETVERTEXATTRIBIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribiv;
    }
    if (strcmp("glGetVertexAttribPointerv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribPointerv);
        _glGetVertexAttribPointerv = (PFN_GLGETVERTEXATTRIBPOINTERV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribPointerv;
    }
    if (strcmp("glIsProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsProgram);
        _glIsProgram = (PFN_GLISPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsProgram;
    }
    if (strcmp("glIsShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsShader);
        _glIsShader = (PFN_GLISSHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsShader;
    }
    if (strcmp("glLinkProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLinkProgram);
        _glLinkProgram = (PFN_GLLINKPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLinkProgram;
    }
    if (strcmp("glShaderSource", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderSource);
        _glShaderSource = (PFN_GLSHADERSOURCE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderSource;
    }
    if (strcmp("glUseProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUseProgram);
        _glUseProgram = (PFN_GLUSEPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUseProgram;
    }
    if (strcmp("glUniform1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1f);
        _glUniform1f = (PFN_GLUNIFORM1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1f;
    }
    if (strcmp("glUniform2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2f);
        _glUniform2f = (PFN_GLUNIFORM2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2f;
    }
    if (strcmp("glUniform3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3f);
        _glUniform3f = (PFN_GLUNIFORM3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3f;
    }
    if (strcmp("glUniform4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4f);
        _glUniform4f = (PFN_GLUNIFORM4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4f;
    }
    if (strcmp("glUniform1i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1i);
        _glUniform1i = (PFN_GLUNIFORM1I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1i;
    }
    if (strcmp("glUniform2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2i);
        _glUniform2i = (PFN_GLUNIFORM2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2i;
    }
    if (strcmp("glUniform3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3i);
        _glUniform3i = (PFN_GLUNIFORM3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3i;
    }
    if (strcmp("glUniform4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4i);
        _glUniform4i = (PFN_GLUNIFORM4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4i;
    }
    if (strcmp("glUniform1fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1fv);
        _glUniform1fv = (PFN_GLUNIFORM1FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1fv;
    }
    if (strcmp("glUniform2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2fv);
        _glUniform2fv = (PFN_GLUNIFORM2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2fv;
    }
    if (strcmp("glUniform3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3fv);
        _glUniform3fv = (PFN_GLUNIFORM3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3fv;
    }
    if (strcmp("glUniform4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4fv);
        _glUniform4fv = (PFN_GLUNIFORM4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4fv;
    }
    if (strcmp("glUniform1iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1iv);
        _glUniform1iv = (PFN_GLUNIFORM1IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1iv;
    }
    if (strcmp("glUniform2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2iv);
        _glUniform2iv = (PFN_GLUNIFORM2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2iv;
    }
    if (strcmp("glUniform3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3iv);
        _glUniform3iv = (PFN_GLUNIFORM3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3iv;
    }
    if (strcmp("glUniform4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4iv);
        _glUniform4iv = (PFN_GLUNIFORM4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4iv;
    }
    if (strcmp("glUniformMatrix2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2fv);
        _glUniformMatrix2fv = (PFN_GLUNIFORMMATRIX2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2fv;
    }
    if (strcmp("glUniformMatrix3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3fv);
        _glUniformMatrix3fv = (PFN_GLUNIFORMMATRIX3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3fv;
    }
    if (strcmp("glUniformMatrix4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4fv);
        _glUniformMatrix4fv = (PFN_GLUNIFORMMATRIX4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4fv;
    }
    if (strcmp("glValidateProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glValidateProgram);
        _glValidateProgram = (PFN_GLVALIDATEPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glValidateProgram;
    }
    if (strcmp("glVertexAttrib1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1d);
        _glVertexAttrib1d = (PFN_GLVERTEXATTRIB1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1d;
    }
    if (strcmp("glVertexAttrib1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dv);
        _glVertexAttrib1dv = (PFN_GLVERTEXATTRIB1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dv;
    }
    if (strcmp("glVertexAttrib1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1f);
        _glVertexAttrib1f = (PFN_GLVERTEXATTRIB1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1f;
    }
    if (strcmp("glVertexAttrib1fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fv);
        _glVertexAttrib1fv = (PFN_GLVERTEXATTRIB1FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fv;
    }
    if (strcmp("glVertexAttrib1s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1s);
        _glVertexAttrib1s = (PFN_GLVERTEXATTRIB1S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1s;
    }
    if (strcmp("glVertexAttrib1sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1sv);
        _glVertexAttrib1sv = (PFN_GLVERTEXATTRIB1SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1sv;
    }
    if (strcmp("glVertexAttrib2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2d);
        _glVertexAttrib2d = (PFN_GLVERTEXATTRIB2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2d;
    }
    if (strcmp("glVertexAttrib2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dv);
        _glVertexAttrib2dv = (PFN_GLVERTEXATTRIB2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dv;
    }
    if (strcmp("glVertexAttrib2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2f);
        _glVertexAttrib2f = (PFN_GLVERTEXATTRIB2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2f;
    }
    if (strcmp("glVertexAttrib2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fv);
        _glVertexAttrib2fv = (PFN_GLVERTEXATTRIB2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fv;
    }
    if (strcmp("glVertexAttrib2s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2s);
        _glVertexAttrib2s = (PFN_GLVERTEXATTRIB2S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2s;
    }
    if (strcmp("glVertexAttrib2sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2sv);
        _glVertexAttrib2sv = (PFN_GLVERTEXATTRIB2SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2sv;
    }
    if (strcmp("glVertexAttrib3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3d);
        _glVertexAttrib3d = (PFN_GLVERTEXATTRIB3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3d;
    }
    if (strcmp("glVertexAttrib3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dv);
        _glVertexAttrib3dv = (PFN_GLVERTEXATTRIB3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dv;
    }
    if (strcmp("glVertexAttrib3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3f);
        _glVertexAttrib3f = (PFN_GLVERTEXATTRIB3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3f;
    }
    if (strcmp("glVertexAttrib3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fv);
        _glVertexAttrib3fv = (PFN_GLVERTEXATTRIB3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fv;
    }
    if (strcmp("glVertexAttrib3s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3s);
        _glVertexAttrib3s = (PFN_GLVERTEXATTRIB3S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3s;
    }
    if (strcmp("glVertexAttrib3sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3sv);
        _glVertexAttrib3sv = (PFN_GLVERTEXATTRIB3SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3sv;
    }
    if (strcmp("glVertexAttrib4Nbv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nbv);
        _glVertexAttrib4Nbv = (PFN_GLVERTEXATTRIB4NBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nbv;
    }
    if (strcmp("glVertexAttrib4Niv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Niv);
        _glVertexAttrib4Niv = (PFN_GLVERTEXATTRIB4NIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Niv;
    }
    if (strcmp("glVertexAttrib4Nsv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nsv);
        _glVertexAttrib4Nsv = (PFN_GLVERTEXATTRIB4NSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nsv;
    }
    if (strcmp("glVertexAttrib4Nub", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nub);
        _glVertexAttrib4Nub = (PFN_GLVERTEXATTRIB4NUB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nub;
    }
    if (strcmp("glVertexAttrib4Nubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nubv);
        _glVertexAttrib4Nubv = (PFN_GLVERTEXATTRIB4NUBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nubv;
    }
    if (strcmp("glVertexAttrib4Nuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nuiv);
        _glVertexAttrib4Nuiv = (PFN_GLVERTEXATTRIB4NUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nuiv;
    }
    if (strcmp("glVertexAttrib4Nusv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nusv);
        _glVertexAttrib4Nusv = (PFN_GLVERTEXATTRIB4NUSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4Nusv;
    }
    if (strcmp("glVertexAttrib4bv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4bv);
        _glVertexAttrib4bv = (PFN_GLVERTEXATTRIB4BV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4bv;
    }
    if (strcmp("glVertexAttrib4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4d);
        _glVertexAttrib4d = (PFN_GLVERTEXATTRIB4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4d;
    }
    if (strcmp("glVertexAttrib4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dv);
        _glVertexAttrib4dv = (PFN_GLVERTEXATTRIB4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dv;
    }
    if (strcmp("glVertexAttrib4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4f);
        _glVertexAttrib4f = (PFN_GLVERTEXATTRIB4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4f;
    }
    if (strcmp("glVertexAttrib4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fv);
        _glVertexAttrib4fv = (PFN_GLVERTEXATTRIB4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fv;
    }
    if (strcmp("glVertexAttrib4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4iv);
        _glVertexAttrib4iv = (PFN_GLVERTEXATTRIB4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4iv;
    }
    if (strcmp("glVertexAttrib4s", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4s);
        _glVertexAttrib4s = (PFN_GLVERTEXATTRIB4S)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4s;
    }
    if (strcmp("glVertexAttrib4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4sv);
        _glVertexAttrib4sv = (PFN_GLVERTEXATTRIB4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4sv;
    }
    if (strcmp("glVertexAttrib4ubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubv);
        _glVertexAttrib4ubv = (PFN_GLVERTEXATTRIB4UBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubv;
    }
    if (strcmp("glVertexAttrib4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4uiv);
        _glVertexAttrib4uiv = (PFN_GLVERTEXATTRIB4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4uiv;
    }
    if (strcmp("glVertexAttrib4usv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4usv);
        _glVertexAttrib4usv = (PFN_GLVERTEXATTRIB4USV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4usv;
    }
    if (strcmp("glVertexAttribPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribPointer);
        _glVertexAttribPointer = (PFN_GLVERTEXATTRIBPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribPointer;
    }
    if (strcmp("glUniformMatrix2x3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x3fv);
        _glUniformMatrix2x3fv = (PFN_GLUNIFORMMATRIX2X3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x3fv;
    }
    if (strcmp("glUniformMatrix3x2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x2fv);
        _glUniformMatrix3x2fv = (PFN_GLUNIFORMMATRIX3X2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x2fv;
    }
    if (strcmp("glUniformMatrix2x4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x4fv);
        _glUniformMatrix2x4fv = (PFN_GLUNIFORMMATRIX2X4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x4fv;
    }
    if (strcmp("glUniformMatrix4x2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x2fv);
        _glUniformMatrix4x2fv = (PFN_GLUNIFORMMATRIX4X2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x2fv;
    }
    if (strcmp("glUniformMatrix3x4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x4fv);
        _glUniformMatrix3x4fv = (PFN_GLUNIFORMMATRIX3X4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x4fv;
    }
    if (strcmp("glUniformMatrix4x3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x3fv);
        _glUniformMatrix4x3fv = (PFN_GLUNIFORMMATRIX4X3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x3fv;
    }
    if (strcmp("glColorMaski", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorMaski);
        _glColorMaski = (PFN_GLCOLORMASKI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorMaski;
    }
    if (strcmp("glGetBooleani_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBooleani_v);
        _glGetBooleani_v = (PFN_GLGETBOOLEANI_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBooleani_v;
    }
    if (strcmp("glGetIntegeri_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetIntegeri_v);
        _glGetIntegeri_v = (PFN_GLGETINTEGERI_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetIntegeri_v;
    }
    if (strcmp("glEnablei", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnablei);
        _glEnablei = (PFN_GLENABLEI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnablei;
    }
    if (strcmp("glDisablei", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisablei);
        _glDisablei = (PFN_GLDISABLEI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisablei;
    }
    if (strcmp("glIsEnabledi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsEnabledi);
        _glIsEnabledi = (PFN_GLISENABLEDI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsEnabledi;
    }
    if (strcmp("glBeginTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginTransformFeedback);
        _glBeginTransformFeedback = (PFN_GLBEGINTRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginTransformFeedback;
    }
    if (strcmp("glEndTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndTransformFeedback);
        _glEndTransformFeedback = (PFN_GLENDTRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndTransformFeedback;
    }
    if (strcmp("glBindBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferRange);
        _glBindBufferRange = (PFN_GLBINDBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferRange;
    }
    if (strcmp("glBindBufferBase", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferBase);
        _glBindBufferBase = (PFN_GLBINDBUFFERBASE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferBase;
    }
    if (strcmp("glTransformFeedbackVaryings", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackVaryings);
        _glTransformFeedbackVaryings = (PFN_GLTRANSFORMFEEDBACKVARYINGS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackVaryings;
    }
    if (strcmp("glGetTransformFeedbackVarying", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackVarying);
        _glGetTransformFeedbackVarying = (PFN_GLGETTRANSFORMFEEDBACKVARYING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackVarying;
    }
    if (strcmp("glClampColor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClampColor);
        _glClampColor = (PFN_GLCLAMPCOLOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClampColor;
    }
    if (strcmp("glBeginConditionalRender", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginConditionalRender);
        _glBeginConditionalRender = (PFN_GLBEGINCONDITIONALRENDER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginConditionalRender;
    }
    if (strcmp("glEndConditionalRender", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndConditionalRender);
        _glEndConditionalRender = (PFN_GLENDCONDITIONALRENDER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndConditionalRender;
    }
    if (strcmp("glVertexAttribIPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribIPointer);
        _glVertexAttribIPointer = (PFN_GLVERTEXATTRIBIPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribIPointer;
    }
    if (strcmp("glGetVertexAttribIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIiv);
        _glGetVertexAttribIiv = (PFN_GLGETVERTEXATTRIBIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIiv;
    }
    if (strcmp("glGetVertexAttribIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIuiv);
        _glGetVertexAttribIuiv = (PFN_GLGETVERTEXATTRIBIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIuiv;
    }
    if (strcmp("glVertexAttribI1i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1i);
        _glVertexAttribI1i = (PFN_GLVERTEXATTRIBI1I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1i;
    }
    if (strcmp("glVertexAttribI2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2i);
        _glVertexAttribI2i = (PFN_GLVERTEXATTRIBI2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2i;
    }
    if (strcmp("glVertexAttribI3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3i);
        _glVertexAttribI3i = (PFN_GLVERTEXATTRIBI3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3i;
    }
    if (strcmp("glVertexAttribI4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4i);
        _glVertexAttribI4i = (PFN_GLVERTEXATTRIBI4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4i;
    }
    if (strcmp("glVertexAttribI1ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1ui);
        _glVertexAttribI1ui = (PFN_GLVERTEXATTRIBI1UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1ui;
    }
    if (strcmp("glVertexAttribI2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2ui);
        _glVertexAttribI2ui = (PFN_GLVERTEXATTRIBI2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2ui;
    }
    if (strcmp("glVertexAttribI3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3ui);
        _glVertexAttribI3ui = (PFN_GLVERTEXATTRIBI3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3ui;
    }
    if (strcmp("glVertexAttribI4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ui);
        _glVertexAttribI4ui = (PFN_GLVERTEXATTRIBI4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ui;
    }
    if (strcmp("glVertexAttribI1iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1iv);
        _glVertexAttribI1iv = (PFN_GLVERTEXATTRIBI1IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1iv;
    }
    if (strcmp("glVertexAttribI2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2iv);
        _glVertexAttribI2iv = (PFN_GLVERTEXATTRIBI2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2iv;
    }
    if (strcmp("glVertexAttribI3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3iv);
        _glVertexAttribI3iv = (PFN_GLVERTEXATTRIBI3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3iv;
    }
    if (strcmp("glVertexAttribI4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4iv);
        _glVertexAttribI4iv = (PFN_GLVERTEXATTRIBI4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4iv;
    }
    if (strcmp("glVertexAttribI1uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1uiv);
        _glVertexAttribI1uiv = (PFN_GLVERTEXATTRIBI1UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1uiv;
    }
    if (strcmp("glVertexAttribI2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2uiv);
        _glVertexAttribI2uiv = (PFN_GLVERTEXATTRIBI2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2uiv;
    }
    if (strcmp("glVertexAttribI3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3uiv);
        _glVertexAttribI3uiv = (PFN_GLVERTEXATTRIBI3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3uiv;
    }
    if (strcmp("glVertexAttribI4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4uiv);
        _glVertexAttribI4uiv = (PFN_GLVERTEXATTRIBI4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4uiv;
    }
    if (strcmp("glVertexAttribI4bv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4bv);
        _glVertexAttribI4bv = (PFN_GLVERTEXATTRIBI4BV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4bv;
    }
    if (strcmp("glVertexAttribI4sv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4sv);
        _glVertexAttribI4sv = (PFN_GLVERTEXATTRIBI4SV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4sv;
    }
    if (strcmp("glVertexAttribI4ubv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ubv);
        _glVertexAttribI4ubv = (PFN_GLVERTEXATTRIBI4UBV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ubv;
    }
    if (strcmp("glVertexAttribI4usv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4usv);
        _glVertexAttribI4usv = (PFN_GLVERTEXATTRIBI4USV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4usv;
    }
    if (strcmp("glGetUniformuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformuiv);
        _glGetUniformuiv = (PFN_GLGETUNIFORMUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformuiv;
    }
    if (strcmp("glBindFragDataLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocation);
        _glBindFragDataLocation = (PFN_GLBINDFRAGDATALOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocation;
    }
    if (strcmp("glGetFragDataLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragDataLocation);
        _glGetFragDataLocation = (PFN_GLGETFRAGDATALOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragDataLocation;
    }
    if (strcmp("glUniform1ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1ui);
        _glUniform1ui = (PFN_GLUNIFORM1UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1ui;
    }
    if (strcmp("glUniform2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2ui);
        _glUniform2ui = (PFN_GLUNIFORM2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2ui;
    }
    if (strcmp("glUniform3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3ui);
        _glUniform3ui = (PFN_GLUNIFORM3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3ui;
    }
    if (strcmp("glUniform4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4ui);
        _glUniform4ui = (PFN_GLUNIFORM4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4ui;
    }
    if (strcmp("glUniform1uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1uiv);
        _glUniform1uiv = (PFN_GLUNIFORM1UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1uiv;
    }
    if (strcmp("glUniform2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2uiv);
        _glUniform2uiv = (PFN_GLUNIFORM2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2uiv;
    }
    if (strcmp("glUniform3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3uiv);
        _glUniform3uiv = (PFN_GLUNIFORM3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3uiv;
    }
    if (strcmp("glUniform4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4uiv);
        _glUniform4uiv = (PFN_GLUNIFORM4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4uiv;
    }
    if (strcmp("glTexParameterIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterIiv);
        _glTexParameterIiv = (PFN_GLTEXPARAMETERIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterIiv;
    }
    if (strcmp("glTexParameterIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterIuiv);
        _glTexParameterIuiv = (PFN_GLTEXPARAMETERIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterIuiv;
    }
    if (strcmp("glGetTexParameterIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIiv);
        _glGetTexParameterIiv = (PFN_GLGETTEXPARAMETERIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIiv;
    }
    if (strcmp("glGetTexParameterIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIuiv);
        _glGetTexParameterIuiv = (PFN_GLGETTEXPARAMETERIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIuiv;
    }
    if (strcmp("glClearBufferiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearBufferiv);
        _glClearBufferiv = (PFN_GLCLEARBUFFERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearBufferiv;
    }
    if (strcmp("glClearBufferuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearBufferuiv);
        _glClearBufferuiv = (PFN_GLCLEARBUFFERUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearBufferuiv;
    }
    if (strcmp("glClearBufferfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearBufferfv);
        _glClearBufferfv = (PFN_GLCLEARBUFFERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearBufferfv;
    }
    if (strcmp("glClearBufferfi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearBufferfi);
        _glClearBufferfi = (PFN_GLCLEARBUFFERFI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearBufferfi;
    }
    if (strcmp("glGetStringi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetStringi);
        _glGetStringi = (PFN_GLGETSTRINGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetStringi;
    }
    if (strcmp("glDrawArraysInstanced", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstanced);
        _glDrawArraysInstanced = (PFN_GLDRAWARRAYSINSTANCED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstanced;
    }
    if (strcmp("glDrawElementsInstanced", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstanced);
        _glDrawElementsInstanced = (PFN_GLDRAWELEMENTSINSTANCED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstanced;
    }
    if (strcmp("glTexBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBuffer);
        _glTexBuffer = (PFN_GLTEXBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBuffer;
    }
    if (strcmp("glPrimitiveRestartIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrimitiveRestartIndex);
        _glPrimitiveRestartIndex = (PFN_GLPRIMITIVERESTARTINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrimitiveRestartIndex;
    }
    if (strcmp("glGetInteger64i_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInteger64i_v);
        _glGetInteger64i_v = (PFN_GLGETINTEGER64I_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInteger64i_v;
    }
    if (strcmp("glGetBufferParameteri64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferParameteri64v);
        _glGetBufferParameteri64v = (PFN_GLGETBUFFERPARAMETERI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferParameteri64v;
    }
    if (strcmp("glFramebufferTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture);
        _glFramebufferTexture = (PFN_GLFRAMEBUFFERTEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture;
    }
    if (strcmp("glVertexAttribDivisor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisor);
        _glVertexAttribDivisor = (PFN_GLVERTEXATTRIBDIVISOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisor;
    }
    if (strcmp("glMinSampleShading", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMinSampleShading);
        _glMinSampleShading = (PFN_GLMINSAMPLESHADING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMinSampleShading;
    }
    if (strcmp("glBlendEquationi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationi);
        _glBlendEquationi = (PFN_GLBLENDEQUATIONI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationi;
    }
    if (strcmp("glBlendEquationSeparatei", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparatei);
        _glBlendEquationSeparatei = (PFN_GLBLENDEQUATIONSEPARATEI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparatei;
    }
    if (strcmp("glBlendFunci", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFunci);
        _glBlendFunci = (PFN_GLBLENDFUNCI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFunci;
    }
    if (strcmp("glBlendFuncSeparatei", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparatei);
        _glBlendFuncSeparatei = (PFN_GLBLENDFUNCSEPARATEI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparatei;
    }
    if (strcmp("glGetnCompressedTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnCompressedTexImage);
        _glGetnCompressedTexImage = (PFN_GLGETNCOMPRESSEDTEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnCompressedTexImage;
    }
    if (strcmp("glGetnTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnTexImage);
        _glGetnTexImage = (PFN_GLGETNTEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnTexImage;
    }
    if (strcmp("glGetnUniformdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformdv);
        _glGetnUniformdv = (PFN_GLGETNUNIFORMDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformdv;
    }
    if (strcmp("glGetnMapdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMapdv);
        _glGetnMapdv = (PFN_GLGETNMAPDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMapdv;
    }
    if (strcmp("glGetnMapfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMapfv);
        _glGetnMapfv = (PFN_GLGETNMAPFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMapfv;
    }
    if (strcmp("glGetnMapiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMapiv);
        _glGetnMapiv = (PFN_GLGETNMAPIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMapiv;
    }
    if (strcmp("glGetnPixelMapfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapfv);
        _glGetnPixelMapfv = (PFN_GLGETNPIXELMAPFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapfv;
    }
    if (strcmp("glGetnPixelMapuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapuiv);
        _glGetnPixelMapuiv = (PFN_GLGETNPIXELMAPUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapuiv;
    }
    if (strcmp("glGetnPixelMapusv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapusv);
        _glGetnPixelMapusv = (PFN_GLGETNPIXELMAPUSV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapusv;
    }
    if (strcmp("glGetnPolygonStipple", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPolygonStipple);
        _glGetnPolygonStipple = (PFN_GLGETNPOLYGONSTIPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPolygonStipple;
    }
    if (strcmp("glGetnColorTable", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnColorTable);
        _glGetnColorTable = (PFN_GLGETNCOLORTABLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnColorTable;
    }
    if (strcmp("glGetnConvolutionFilter", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnConvolutionFilter);
        _glGetnConvolutionFilter = (PFN_GLGETNCONVOLUTIONFILTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnConvolutionFilter;
    }
    if (strcmp("glGetnSeparableFilter", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnSeparableFilter);
        _glGetnSeparableFilter = (PFN_GLGETNSEPARABLEFILTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnSeparableFilter;
    }
    if (strcmp("glGetnHistogram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnHistogram);
        _glGetnHistogram = (PFN_GLGETNHISTOGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnHistogram;
    }
    if (strcmp("glGetnMinmax", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMinmax);
        _glGetnMinmax = (PFN_GLGETNMINMAX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMinmax;
    }
    if (strcmp("glSpecializeShader", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSpecializeShader);
        _glSpecializeShader = (PFN_GLSPECIALIZESHADER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSpecializeShader;
    }
    if (strcmp("glMultiDrawArraysIndirectCount", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectCount);
        _glMultiDrawArraysIndirectCount = (PFN_GLMULTIDRAWARRAYSINDIRECTCOUNT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectCount;
    }
    if (strcmp("glMultiDrawElementsIndirectCount", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectCount);
        _glMultiDrawElementsIndirectCount = (PFN_GLMULTIDRAWELEMENTSINDIRECTCOUNT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectCount;
    }
    if (strcmp("glClipPlanef", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClipPlanef);
        _glClipPlanef = (PFN_GLCLIPPLANEF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClipPlanef;
    }
    if (strcmp("glFrustumf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrustumf);
        _glFrustumf = (PFN_GLFRUSTUMF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrustumf;
    }
    if (strcmp("glGetClipPlanef", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetClipPlanef);
        _glGetClipPlanef = (PFN_GLGETCLIPPLANEF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetClipPlanef;
    }
    if (strcmp("glOrthof", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glOrthof);
        _glOrthof = (PFN_GLORTHOF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glOrthof;
    }
    if (strcmp("glAlphaFuncx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAlphaFuncx);
        _glAlphaFuncx = (PFN_GLALPHAFUNCX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAlphaFuncx;
    }
    if (strcmp("glClearColorx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearColorx);
        _glClearColorx = (PFN_GLCLEARCOLORX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearColorx;
    }
    if (strcmp("glClearDepthx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearDepthx);
        _glClearDepthx = (PFN_GLCLEARDEPTHX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearDepthx;
    }
    if (strcmp("glClipPlanex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClipPlanex);
        _glClipPlanex = (PFN_GLCLIPPLANEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClipPlanex;
    }
    if (strcmp("glColor4x", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4x);
        _glColor4x = (PFN_GLCOLOR4X)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4x;
    }
    if (strcmp("glDepthRangex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangex);
        _glDepthRangex = (PFN_GLDEPTHRANGEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangex;
    }
    if (strcmp("glFogx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogx);
        _glFogx = (PFN_GLFOGX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogx;
    }
    if (strcmp("glFogxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogxv);
        _glFogxv = (PFN_GLFOGXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogxv;
    }
    if (strcmp("glFrustumx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrustumx);
        _glFrustumx = (PFN_GLFRUSTUMX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrustumx;
    }
    if (strcmp("glGetClipPlanex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetClipPlanex);
        _glGetClipPlanex = (PFN_GLGETCLIPPLANEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetClipPlanex;
    }
    if (strcmp("glGetFixedv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFixedv);
        _glGetFixedv = (PFN_GLGETFIXEDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFixedv;
    }
    if (strcmp("glGetLightxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetLightxv);
        _glGetLightxv = (PFN_GLGETLIGHTXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetLightxv;
    }
    if (strcmp("glGetMaterialxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMaterialxv);
        _glGetMaterialxv = (PFN_GLGETMATERIALXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMaterialxv;
    }
    if (strcmp("glGetTexEnvxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexEnvxv);
        _glGetTexEnvxv = (PFN_GLGETTEXENVXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexEnvxv;
    }
    if (strcmp("glGetTexParameterxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterxv);
        _glGetTexParameterxv = (PFN_GLGETTEXPARAMETERXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterxv;
    }
    if (strcmp("glLightModelx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightModelx);
        _glLightModelx = (PFN_GLLIGHTMODELX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightModelx;
    }
    if (strcmp("glLightModelxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightModelxv);
        _glLightModelxv = (PFN_GLLIGHTMODELXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightModelxv;
    }
    if (strcmp("glLightx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightx);
        _glLightx = (PFN_GLLIGHTX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightx;
    }
    if (strcmp("glLightxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightxv);
        _glLightxv = (PFN_GLLIGHTXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightxv;
    }
    if (strcmp("glLineWidthx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLineWidthx);
        _glLineWidthx = (PFN_GLLINEWIDTHX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLineWidthx;
    }
    if (strcmp("glLoadMatrixx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadMatrixx);
        _glLoadMatrixx = (PFN_GLLOADMATRIXX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadMatrixx;
    }
    if (strcmp("glMaterialx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMaterialx);
        _glMaterialx = (PFN_GLMATERIALX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMaterialx;
    }
    if (strcmp("glMaterialxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMaterialxv);
        _glMaterialxv = (PFN_GLMATERIALXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMaterialxv;
    }
    if (strcmp("glMultMatrixx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultMatrixx);
        _glMultMatrixx = (PFN_GLMULTMATRIXX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultMatrixx;
    }
    if (strcmp("glMultiTexCoord4x", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4x);
        _glMultiTexCoord4x = (PFN_GLMULTITEXCOORD4X)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4x;
    }
    if (strcmp("glNormal3x", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3x);
        _glNormal3x = (PFN_GLNORMAL3X)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3x;
    }
    if (strcmp("glOrthox", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glOrthox);
        _glOrthox = (PFN_GLORTHOX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glOrthox;
    }
    if (strcmp("glPointParameterx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterx);
        _glPointParameterx = (PFN_GLPOINTPARAMETERX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterx;
    }
    if (strcmp("glPointParameterxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterxv);
        _glPointParameterxv = (PFN_GLPOINTPARAMETERXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterxv;
    }
    if (strcmp("glPointSizex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointSizex);
        _glPointSizex = (PFN_GLPOINTSIZEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointSizex;
    }
    if (strcmp("glPolygonOffsetx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPolygonOffsetx);
        _glPolygonOffsetx = (PFN_GLPOLYGONOFFSETX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPolygonOffsetx;
    }
    if (strcmp("glRotatex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRotatex);
        _glRotatex = (PFN_GLROTATEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRotatex;
    }
    if (strcmp("glSampleCoveragex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleCoveragex);
        _glSampleCoveragex = (PFN_GLSAMPLECOVERAGEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleCoveragex;
    }
    if (strcmp("glScalex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScalex);
        _glScalex = (PFN_GLSCALEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScalex;
    }
    if (strcmp("glTexEnvx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexEnvx);
        _glTexEnvx = (PFN_GLTEXENVX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexEnvx;
    }
    if (strcmp("glTexEnvxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexEnvxv);
        _glTexEnvxv = (PFN_GLTEXENVXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexEnvxv;
    }
    if (strcmp("glTexParameterx", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterx);
        _glTexParameterx = (PFN_GLTEXPARAMETERX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterx;
    }
    if (strcmp("glTexParameterxv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterxv);
        _glTexParameterxv = (PFN_GLTEXPARAMETERXV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterxv;
    }
    if (strcmp("glTranslatex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTranslatex);
        _glTranslatex = (PFN_GLTRANSLATEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTranslatex;
    }
    if (strcmp("glBlendBarrier", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendBarrier);
        _glBlendBarrier = (PFN_GLBLENDBARRIER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendBarrier;
    }
    if (strcmp("glPrimitiveBoundingBox", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrimitiveBoundingBox);
        _glPrimitiveBoundingBox = (PFN_GLPRIMITIVEBOUNDINGBOX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrimitiveBoundingBox;
    }
    if (strcmp("glTbufferMask3DFX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTbufferMask3DFX);
        _glTbufferMask3DFX = (PFN_GLTBUFFERMASK3DFX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTbufferMask3DFX;
    }
    if (strcmp("glDebugMessageEnableAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageEnableAMD);
        _glDebugMessageEnableAMD = (PFN_GLDEBUGMESSAGEENABLEAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageEnableAMD;
    }
    if (strcmp("glDebugMessageInsertAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertAMD);
        _glDebugMessageInsertAMD = (PFN_GLDEBUGMESSAGEINSERTAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertAMD;
    }
    if (strcmp("glDebugMessageCallbackAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackAMD);
        _glDebugMessageCallbackAMD = (PFN_GLDEBUGMESSAGECALLBACKAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackAMD;
    }
    if (strcmp("glGetDebugMessageLogAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogAMD);
        _glGetDebugMessageLogAMD = (PFN_GLGETDEBUGMESSAGELOGAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogAMD;
    }
    if (strcmp("glBlendFuncIndexedAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncIndexedAMD);
        _glBlendFuncIndexedAMD = (PFN_GLBLENDFUNCINDEXEDAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncIndexedAMD;
    }
    if (strcmp("glBlendFuncSeparateIndexedAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateIndexedAMD);
        _glBlendFuncSeparateIndexedAMD = (PFN_GLBLENDFUNCSEPARATEINDEXEDAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateIndexedAMD;
    }
    if (strcmp("glBlendEquationIndexedAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationIndexedAMD);
        _glBlendEquationIndexedAMD = (PFN_GLBLENDEQUATIONINDEXEDAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationIndexedAMD;
    }
    if (strcmp("glBlendEquationSeparateIndexedAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateIndexedAMD);
        _glBlendEquationSeparateIndexedAMD = (PFN_GLBLENDEQUATIONSEPARATEINDEXEDAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateIndexedAMD;
    }
    if (strcmp("glVertexAttribParameteriAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribParameteriAMD);
        _glVertexAttribParameteriAMD = (PFN_GLVERTEXATTRIBPARAMETERIAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribParameteriAMD;
    }
    if (strcmp("glMultiDrawArraysIndirectAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectAMD);
        _glMultiDrawArraysIndirectAMD = (PFN_GLMULTIDRAWARRAYSINDIRECTAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectAMD;
    }
    if (strcmp("glMultiDrawElementsIndirectAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectAMD);
        _glMultiDrawElementsIndirectAMD = (PFN_GLMULTIDRAWELEMENTSINDIRECTAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectAMD;
    }
    if (strcmp("glGenNamesAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenNamesAMD);
        _glGenNamesAMD = (PFN_GLGENNAMESAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenNamesAMD;
    }
    if (strcmp("glDeleteNamesAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteNamesAMD);
        _glDeleteNamesAMD = (PFN_GLDELETENAMESAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteNamesAMD;
    }
    if (strcmp("glIsNameAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsNameAMD);
        _glIsNameAMD = (PFN_GLISNAMEAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsNameAMD;
    }
    if (strcmp("glQueryObjectParameteruiAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glQueryObjectParameteruiAMD);
        _glQueryObjectParameteruiAMD = (PFN_GLQUERYOBJECTPARAMETERUIAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glQueryObjectParameteruiAMD;
    }
    if (strcmp("glGetPerfMonitorGroupsAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorGroupsAMD);
        _glGetPerfMonitorGroupsAMD = (PFN_GLGETPERFMONITORGROUPSAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorGroupsAMD;
    }
    if (strcmp("glGetPerfMonitorCountersAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCountersAMD);
        _glGetPerfMonitorCountersAMD = (PFN_GLGETPERFMONITORCOUNTERSAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCountersAMD;
    }
    if (strcmp("glGetPerfMonitorGroupStringAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorGroupStringAMD);
        _glGetPerfMonitorGroupStringAMD = (PFN_GLGETPERFMONITORGROUPSTRINGAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorGroupStringAMD;
    }
    if (strcmp("glGetPerfMonitorCounterStringAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCounterStringAMD);
        _glGetPerfMonitorCounterStringAMD = (PFN_GLGETPERFMONITORCOUNTERSTRINGAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCounterStringAMD;
    }
    if (strcmp("glGetPerfMonitorCounterInfoAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCounterInfoAMD);
        _glGetPerfMonitorCounterInfoAMD = (PFN_GLGETPERFMONITORCOUNTERINFOAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCounterInfoAMD;
    }
    if (strcmp("glGenPerfMonitorsAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenPerfMonitorsAMD);
        _glGenPerfMonitorsAMD = (PFN_GLGENPERFMONITORSAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenPerfMonitorsAMD;
    }
    if (strcmp("glDeletePerfMonitorsAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeletePerfMonitorsAMD);
        _glDeletePerfMonitorsAMD = (PFN_GLDELETEPERFMONITORSAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeletePerfMonitorsAMD;
    }
    if (strcmp("glSelectPerfMonitorCountersAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSelectPerfMonitorCountersAMD);
        _glSelectPerfMonitorCountersAMD = (PFN_GLSELECTPERFMONITORCOUNTERSAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSelectPerfMonitorCountersAMD;
    }
    if (strcmp("glBeginPerfMonitorAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginPerfMonitorAMD);
        _glBeginPerfMonitorAMD = (PFN_GLBEGINPERFMONITORAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginPerfMonitorAMD;
    }
    if (strcmp("glEndPerfMonitorAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndPerfMonitorAMD);
        _glEndPerfMonitorAMD = (PFN_GLENDPERFMONITORAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndPerfMonitorAMD;
    }
    if (strcmp("glGetPerfMonitorCounterDataAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCounterDataAMD);
        _glGetPerfMonitorCounterDataAMD = (PFN_GLGETPERFMONITORCOUNTERDATAAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfMonitorCounterDataAMD;
    }
    if (strcmp("glSetMultisamplefvAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSetMultisamplefvAMD);
        _glSetMultisamplefvAMD = (PFN_GLSETMULTISAMPLEFVAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSetMultisamplefvAMD;
    }
    if (strcmp("glTexStorageSparseAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorageSparseAMD);
        _glTexStorageSparseAMD = (PFN_GLTEXSTORAGESPARSEAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorageSparseAMD;
    }
    if (strcmp("glTextureStorageSparseAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorageSparseAMD);
        _glTextureStorageSparseAMD = (PFN_GLTEXTURESTORAGESPARSEAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorageSparseAMD;
    }
    if (strcmp("glStencilOpValueAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilOpValueAMD);
        _glStencilOpValueAMD = (PFN_GLSTENCILOPVALUEAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilOpValueAMD;
    }
    if (strcmp("glTessellationFactorAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTessellationFactorAMD);
        _glTessellationFactorAMD = (PFN_GLTESSELLATIONFACTORAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTessellationFactorAMD;
    }
    if (strcmp("glTessellationModeAMD", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTessellationModeAMD);
        _glTessellationModeAMD = (PFN_GLTESSELLATIONMODEAMD)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTessellationModeAMD;
    }
    if (strcmp("glBlitFramebufferANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlitFramebufferANGLE);
        _glBlitFramebufferANGLE = (PFN_GLBLITFRAMEBUFFERANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlitFramebufferANGLE;
    }
    if (strcmp("glRenderbufferStorageMultisampleANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleANGLE);
        _glRenderbufferStorageMultisampleANGLE = (PFN_GLRENDERBUFFERSTORAGEMULTISAMPLEANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleANGLE;
    }
    if (strcmp("glDrawArraysInstancedANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedANGLE);
        _glDrawArraysInstancedANGLE = (PFN_GLDRAWARRAYSINSTANCEDANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedANGLE;
    }
    if (strcmp("glDrawElementsInstancedANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedANGLE);
        _glDrawElementsInstancedANGLE = (PFN_GLDRAWELEMENTSINSTANCEDANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedANGLE;
    }
    if (strcmp("glVertexAttribDivisorANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisorANGLE);
        _glVertexAttribDivisorANGLE = (PFN_GLVERTEXATTRIBDIVISORANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisorANGLE;
    }
    if (strcmp("glGenQueriesANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenQueriesANGLE);
        _glGenQueriesANGLE = (PFN_GLGENQUERIESANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenQueriesANGLE;
    }
    if (strcmp("glDeleteQueriesANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteQueriesANGLE);
        _glDeleteQueriesANGLE = (PFN_GLDELETEQUERIESANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteQueriesANGLE;
    }
    if (strcmp("glIsQueryANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsQueryANGLE);
        _glIsQueryANGLE = (PFN_GLISQUERYANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsQueryANGLE;
    }
    if (strcmp("glBeginQueryANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginQueryANGLE);
        _glBeginQueryANGLE = (PFN_GLBEGINQUERYANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginQueryANGLE;
    }
    if (strcmp("glEndQueryANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndQueryANGLE);
        _glEndQueryANGLE = (PFN_GLENDQUERYANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndQueryANGLE;
    }
    if (strcmp("glQueryCounterANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glQueryCounterANGLE);
        _glQueryCounterANGLE = (PFN_GLQUERYCOUNTERANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glQueryCounterANGLE;
    }
    if (strcmp("glGetQueryivANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryivANGLE);
        _glGetQueryivANGLE = (PFN_GLGETQUERYIVANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryivANGLE;
    }
    if (strcmp("glGetQueryObjectivANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectivANGLE);
        _glGetQueryObjectivANGLE = (PFN_GLGETQUERYOBJECTIVANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectivANGLE;
    }
    if (strcmp("glGetQueryObjectuivANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuivANGLE);
        _glGetQueryObjectuivANGLE = (PFN_GLGETQUERYOBJECTUIVANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuivANGLE;
    }
    if (strcmp("glGetQueryObjecti64vANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjecti64vANGLE);
        _glGetQueryObjecti64vANGLE = (PFN_GLGETQUERYOBJECTI64VANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjecti64vANGLE;
    }
    if (strcmp("glGetQueryObjectui64vANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectui64vANGLE);
        _glGetQueryObjectui64vANGLE = (PFN_GLGETQUERYOBJECTUI64VANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectui64vANGLE;
    }
    if (strcmp("glGetTranslatedShaderSourceANGLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTranslatedShaderSourceANGLE);
        _glGetTranslatedShaderSourceANGLE = (PFN_GLGETTRANSLATEDSHADERSOURCEANGLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTranslatedShaderSourceANGLE;
    }
    if (strcmp("glCopyTextureLevelsAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureLevelsAPPLE);
        _glCopyTextureLevelsAPPLE = (PFN_GLCOPYTEXTURELEVELSAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureLevelsAPPLE;
    }
    if (strcmp("glElementPointerAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glElementPointerAPPLE);
        _glElementPointerAPPLE = (PFN_GLELEMENTPOINTERAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glElementPointerAPPLE;
    }
    if (strcmp("glDrawElementArrayAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementArrayAPPLE);
        _glDrawElementArrayAPPLE = (PFN_GLDRAWELEMENTARRAYAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementArrayAPPLE;
    }
    if (strcmp("glDrawRangeElementArrayAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementArrayAPPLE);
        _glDrawRangeElementArrayAPPLE = (PFN_GLDRAWRANGEELEMENTARRAYAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementArrayAPPLE;
    }
    if (strcmp("glMultiDrawElementArrayAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementArrayAPPLE);
        _glMultiDrawElementArrayAPPLE = (PFN_GLMULTIDRAWELEMENTARRAYAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementArrayAPPLE;
    }
    if (strcmp("glMultiDrawRangeElementArrayAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawRangeElementArrayAPPLE);
        _glMultiDrawRangeElementArrayAPPLE = (PFN_GLMULTIDRAWRANGEELEMENTARRAYAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawRangeElementArrayAPPLE;
    }
    if (strcmp("glGenFencesAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenFencesAPPLE);
        _glGenFencesAPPLE = (PFN_GLGENFENCESAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenFencesAPPLE;
    }
    if (strcmp("glDeleteFencesAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteFencesAPPLE);
        _glDeleteFencesAPPLE = (PFN_GLDELETEFENCESAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteFencesAPPLE;
    }
    if (strcmp("glSetFenceAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSetFenceAPPLE);
        _glSetFenceAPPLE = (PFN_GLSETFENCEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSetFenceAPPLE;
    }
    if (strcmp("glIsFenceAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsFenceAPPLE);
        _glIsFenceAPPLE = (PFN_GLISFENCEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsFenceAPPLE;
    }
    if (strcmp("glTestFenceAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTestFenceAPPLE);
        _glTestFenceAPPLE = (PFN_GLTESTFENCEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTestFenceAPPLE;
    }
    if (strcmp("glFinishFenceAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinishFenceAPPLE);
        _glFinishFenceAPPLE = (PFN_GLFINISHFENCEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinishFenceAPPLE;
    }
    if (strcmp("glTestObjectAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTestObjectAPPLE);
        _glTestObjectAPPLE = (PFN_GLTESTOBJECTAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTestObjectAPPLE;
    }
    if (strcmp("glFinishObjectAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinishObjectAPPLE);
        _glFinishObjectAPPLE = (PFN_GLFINISHOBJECTAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinishObjectAPPLE;
    }
    if (strcmp("glBufferParameteriAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferParameteriAPPLE);
        _glBufferParameteriAPPLE = (PFN_GLBUFFERPARAMETERIAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferParameteriAPPLE;
    }
    if (strcmp("glFlushMappedBufferRangeAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushMappedBufferRangeAPPLE);
        _glFlushMappedBufferRangeAPPLE = (PFN_GLFLUSHMAPPEDBUFFERRANGEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushMappedBufferRangeAPPLE;
    }
    if (strcmp("glFlushRenderAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushRenderAPPLE);
        _glFlushRenderAPPLE = (PFN_GLFLUSHRENDERAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushRenderAPPLE;
    }
    if (strcmp("glFinishRenderAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinishRenderAPPLE);
        _glFinishRenderAPPLE = (PFN_GLFINISHRENDERAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinishRenderAPPLE;
    }
    if (strcmp("glSwapAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSwapAPPLE);
        _glSwapAPPLE = (PFN_GLSWAPAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSwapAPPLE;
    }
    if (strcmp("glRenderbufferStorageMultisampleAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleAPPLE);
        _glRenderbufferStorageMultisampleAPPLE = (PFN_GLRENDERBUFFERSTORAGEMULTISAMPLEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleAPPLE;
    }
    if (strcmp("glResolveMultisampleFramebufferAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResolveMultisampleFramebufferAPPLE);
        _glResolveMultisampleFramebufferAPPLE = (PFN_GLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResolveMultisampleFramebufferAPPLE;
    }
    if (strcmp("glObjectPurgeableAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glObjectPurgeableAPPLE);
        _glObjectPurgeableAPPLE = (PFN_GLOBJECTPURGEABLEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glObjectPurgeableAPPLE;
    }
    if (strcmp("glObjectUnpurgeableAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glObjectUnpurgeableAPPLE);
        _glObjectUnpurgeableAPPLE = (PFN_GLOBJECTUNPURGEABLEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glObjectUnpurgeableAPPLE;
    }
    if (strcmp("glGetObjectParameterivAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectParameterivAPPLE);
        _glGetObjectParameterivAPPLE = (PFN_GLGETOBJECTPARAMETERIVAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectParameterivAPPLE;
    }
    if (strcmp("glPointSizePointerAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointSizePointerAPPLE);
        _glPointSizePointerAPPLE = (PFN_GLPOINTSIZEPOINTERAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointSizePointerAPPLE;
    }
    if (strcmp("glVertexPointSizefAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexPointSizefAPPLE);
        _glVertexPointSizefAPPLE = (PFN_GLVERTEXPOINTSIZEFAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexPointSizefAPPLE;
    }
    if (strcmp("glFenceSyncAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFenceSyncAPPLE);
        _glFenceSyncAPPLE = (PFN_GLFENCESYNCAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFenceSyncAPPLE;
    }
    if (strcmp("glIsSyncAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsSyncAPPLE);
        _glIsSyncAPPLE = (PFN_GLISSYNCAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsSyncAPPLE;
    }
    if (strcmp("glDeleteSyncAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteSyncAPPLE);
        _glDeleteSyncAPPLE = (PFN_GLDELETESYNCAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteSyncAPPLE;
    }
    if (strcmp("glClientWaitSyncAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClientWaitSyncAPPLE);
        _glClientWaitSyncAPPLE = (PFN_GLCLIENTWAITSYNCAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClientWaitSyncAPPLE;
    }
    if (strcmp("glWaitSyncAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWaitSyncAPPLE);
        _glWaitSyncAPPLE = (PFN_GLWAITSYNCAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWaitSyncAPPLE;
    }
    if (strcmp("glGetInteger64vAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInteger64vAPPLE);
        _glGetInteger64vAPPLE = (PFN_GLGETINTEGER64VAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInteger64vAPPLE;
    }
    if (strcmp("glGetSyncivAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSyncivAPPLE);
        _glGetSyncivAPPLE = (PFN_GLGETSYNCIVAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSyncivAPPLE;
    }
    if (strcmp("glTextureRangeAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureRangeAPPLE);
        _glTextureRangeAPPLE = (PFN_GLTEXTURERANGEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureRangeAPPLE;
    }
    if (strcmp("glGetTexParameterPointervAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterPointervAPPLE);
        _glGetTexParameterPointervAPPLE = (PFN_GLGETTEXPARAMETERPOINTERVAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterPointervAPPLE;
    }
    if (strcmp("glBindVertexArrayAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVertexArrayAPPLE);
        _glBindVertexArrayAPPLE = (PFN_GLBINDVERTEXARRAYAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVertexArrayAPPLE;
    }
    if (strcmp("glDeleteVertexArraysAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteVertexArraysAPPLE);
        _glDeleteVertexArraysAPPLE = (PFN_GLDELETEVERTEXARRAYSAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteVertexArraysAPPLE;
    }
    if (strcmp("glGenVertexArraysAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenVertexArraysAPPLE);
        _glGenVertexArraysAPPLE = (PFN_GLGENVERTEXARRAYSAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenVertexArraysAPPLE;
    }
    if (strcmp("glIsVertexArrayAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsVertexArrayAPPLE);
        _glIsVertexArrayAPPLE = (PFN_GLISVERTEXARRAYAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsVertexArrayAPPLE;
    }
    if (strcmp("glVertexArrayRangeAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayRangeAPPLE);
        _glVertexArrayRangeAPPLE = (PFN_GLVERTEXARRAYRANGEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayRangeAPPLE;
    }
    if (strcmp("glFlushVertexArrayRangeAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushVertexArrayRangeAPPLE);
        _glFlushVertexArrayRangeAPPLE = (PFN_GLFLUSHVERTEXARRAYRANGEAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushVertexArrayRangeAPPLE;
    }
    if (strcmp("glVertexArrayParameteriAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayParameteriAPPLE);
        _glVertexArrayParameteriAPPLE = (PFN_GLVERTEXARRAYPARAMETERIAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayParameteriAPPLE;
    }
    if (strcmp("glEnableVertexAttribAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVertexAttribAPPLE);
        _glEnableVertexAttribAPPLE = (PFN_GLENABLEVERTEXATTRIBAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVertexAttribAPPLE;
    }
    if (strcmp("glDisableVertexAttribAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVertexAttribAPPLE);
        _glDisableVertexAttribAPPLE = (PFN_GLDISABLEVERTEXATTRIBAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVertexAttribAPPLE;
    }
    if (strcmp("glIsVertexAttribEnabledAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsVertexAttribEnabledAPPLE);
        _glIsVertexAttribEnabledAPPLE = (PFN_GLISVERTEXATTRIBENABLEDAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsVertexAttribEnabledAPPLE;
    }
    if (strcmp("glMapVertexAttrib1dAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib1dAPPLE);
        _glMapVertexAttrib1dAPPLE = (PFN_GLMAPVERTEXATTRIB1DAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib1dAPPLE;
    }
    if (strcmp("glMapVertexAttrib1fAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib1fAPPLE);
        _glMapVertexAttrib1fAPPLE = (PFN_GLMAPVERTEXATTRIB1FAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib1fAPPLE;
    }
    if (strcmp("glMapVertexAttrib2dAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib2dAPPLE);
        _glMapVertexAttrib2dAPPLE = (PFN_GLMAPVERTEXATTRIB2DAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib2dAPPLE;
    }
    if (strcmp("glMapVertexAttrib2fAPPLE", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib2fAPPLE);
        _glMapVertexAttrib2fAPPLE = (PFN_GLMAPVERTEXATTRIB2FAPPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapVertexAttrib2fAPPLE;
    }
    if (strcmp("glReleaseShaderCompiler", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReleaseShaderCompiler);
        _glReleaseShaderCompiler = (PFN_GLRELEASESHADERCOMPILER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReleaseShaderCompiler;
    }
    if (strcmp("glShaderBinary", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderBinary);
        _glShaderBinary = (PFN_GLSHADERBINARY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderBinary;
    }
    if (strcmp("glGetShaderPrecisionFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetShaderPrecisionFormat);
        _glGetShaderPrecisionFormat = (PFN_GLGETSHADERPRECISIONFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetShaderPrecisionFormat;
    }
    if (strcmp("glDepthRangef", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangef);
        _glDepthRangef = (PFN_GLDEPTHRANGEF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangef;
    }
    if (strcmp("glClearDepthf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearDepthf);
        _glClearDepthf = (PFN_GLCLEARDEPTHF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearDepthf;
    }
    if (strcmp("glMemoryBarrierByRegion", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMemoryBarrierByRegion);
        _glMemoryBarrierByRegion = (PFN_GLMEMORYBARRIERBYREGION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMemoryBarrierByRegion;
    }
    if (strcmp("glPrimitiveBoundingBoxARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrimitiveBoundingBoxARB);
        _glPrimitiveBoundingBoxARB = (PFN_GLPRIMITIVEBOUNDINGBOXARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrimitiveBoundingBoxARB;
    }
    if (strcmp("glDrawArraysInstancedBaseInstance", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedBaseInstance);
        _glDrawArraysInstancedBaseInstance = (PFN_GLDRAWARRAYSINSTANCEDBASEINSTANCE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedBaseInstance;
    }
    if (strcmp("glDrawElementsInstancedBaseInstance", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseInstance);
        _glDrawElementsInstancedBaseInstance = (PFN_GLDRAWELEMENTSINSTANCEDBASEINSTANCE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseInstance;
    }
    if (strcmp("glDrawElementsInstancedBaseVertexBaseInstance", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertexBaseInstance);
        _glDrawElementsInstancedBaseVertexBaseInstance = (PFN_GLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertexBaseInstance;
    }
    if (strcmp("glGetTextureHandleARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureHandleARB);
        _glGetTextureHandleARB = (PFN_GLGETTEXTUREHANDLEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureHandleARB;
    }
    if (strcmp("glGetTextureSamplerHandleARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureSamplerHandleARB);
        _glGetTextureSamplerHandleARB = (PFN_GLGETTEXTURESAMPLERHANDLEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureSamplerHandleARB;
    }
    if (strcmp("glMakeTextureHandleResidentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleResidentARB);
        _glMakeTextureHandleResidentARB = (PFN_GLMAKETEXTUREHANDLERESIDENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleResidentARB;
    }
    if (strcmp("glMakeTextureHandleNonResidentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleNonResidentARB);
        _glMakeTextureHandleNonResidentARB = (PFN_GLMAKETEXTUREHANDLENONRESIDENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleNonResidentARB;
    }
    if (strcmp("glGetImageHandleARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetImageHandleARB);
        _glGetImageHandleARB = (PFN_GLGETIMAGEHANDLEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetImageHandleARB;
    }
    if (strcmp("glMakeImageHandleResidentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleResidentARB);
        _glMakeImageHandleResidentARB = (PFN_GLMAKEIMAGEHANDLERESIDENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleResidentARB;
    }
    if (strcmp("glMakeImageHandleNonResidentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleNonResidentARB);
        _glMakeImageHandleNonResidentARB = (PFN_GLMAKEIMAGEHANDLENONRESIDENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleNonResidentARB;
    }
    if (strcmp("glUniformHandleui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64ARB);
        _glUniformHandleui64ARB = (PFN_GLUNIFORMHANDLEUI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64ARB;
    }
    if (strcmp("glUniformHandleui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64vARB);
        _glUniformHandleui64vARB = (PFN_GLUNIFORMHANDLEUI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64vARB;
    }
    if (strcmp("glProgramUniformHandleui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64ARB);
        _glProgramUniformHandleui64ARB = (PFN_GLPROGRAMUNIFORMHANDLEUI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64ARB;
    }
    if (strcmp("glProgramUniformHandleui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64vARB);
        _glProgramUniformHandleui64vARB = (PFN_GLPROGRAMUNIFORMHANDLEUI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64vARB;
    }
    if (strcmp("glIsTextureHandleResidentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsTextureHandleResidentARB);
        _glIsTextureHandleResidentARB = (PFN_GLISTEXTUREHANDLERESIDENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsTextureHandleResidentARB;
    }
    if (strcmp("glIsImageHandleResidentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsImageHandleResidentARB);
        _glIsImageHandleResidentARB = (PFN_GLISIMAGEHANDLERESIDENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsImageHandleResidentARB;
    }
    if (strcmp("glVertexAttribL1ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64ARB);
        _glVertexAttribL1ui64ARB = (PFN_GLVERTEXATTRIBL1UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64ARB;
    }
    if (strcmp("glVertexAttribL1ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64vARB);
        _glVertexAttribL1ui64vARB = (PFN_GLVERTEXATTRIBL1UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64vARB;
    }
    if (strcmp("glGetVertexAttribLui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLui64vARB);
        _glGetVertexAttribLui64vARB = (PFN_GLGETVERTEXATTRIBLUI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLui64vARB;
    }
    if (strcmp("glBindFragDataLocationIndexed", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocationIndexed);
        _glBindFragDataLocationIndexed = (PFN_GLBINDFRAGDATALOCATIONINDEXED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocationIndexed;
    }
    if (strcmp("glGetFragDataIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragDataIndex);
        _glGetFragDataIndex = (PFN_GLGETFRAGDATAINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragDataIndex;
    }
    if (strcmp("glBufferStorage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferStorage);
        _glBufferStorage = (PFN_GLBUFFERSTORAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferStorage;
    }
    if (strcmp("glCreateSyncFromCLeventARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateSyncFromCLeventARB);
        _glCreateSyncFromCLeventARB = (PFN_GLCREATESYNCFROMCLEVENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateSyncFromCLeventARB;
    }
    if (strcmp("glClearBufferData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearBufferData);
        _glClearBufferData = (PFN_GLCLEARBUFFERDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearBufferData;
    }
    if (strcmp("glClearBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearBufferSubData);
        _glClearBufferSubData = (PFN_GLCLEARBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearBufferSubData;
    }
    if (strcmp("glClearTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearTexImage);
        _glClearTexImage = (PFN_GLCLEARTEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearTexImage;
    }
    if (strcmp("glClearTexSubImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearTexSubImage);
        _glClearTexSubImage = (PFN_GLCLEARTEXSUBIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearTexSubImage;
    }
    if (strcmp("glClipControl", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClipControl);
        _glClipControl = (PFN_GLCLIPCONTROL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClipControl;
    }
    if (strcmp("glClampColorARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClampColorARB);
        _glClampColorARB = (PFN_GLCLAMPCOLORARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClampColorARB;
    }
    if (strcmp("glDispatchCompute", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDispatchCompute);
        _glDispatchCompute = (PFN_GLDISPATCHCOMPUTE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDispatchCompute;
    }
    if (strcmp("glDispatchComputeIndirect", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDispatchComputeIndirect);
        _glDispatchComputeIndirect = (PFN_GLDISPATCHCOMPUTEINDIRECT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDispatchComputeIndirect;
    }
    if (strcmp("glDispatchComputeGroupSizeARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDispatchComputeGroupSizeARB);
        _glDispatchComputeGroupSizeARB = (PFN_GLDISPATCHCOMPUTEGROUPSIZEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDispatchComputeGroupSizeARB;
    }
    if (strcmp("glCopyBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyBufferSubData);
        _glCopyBufferSubData = (PFN_GLCOPYBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyBufferSubData;
    }
    if (strcmp("glCopyImageSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyImageSubData);
        _glCopyImageSubData = (PFN_GLCOPYIMAGESUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyImageSubData;
    }
    if (strcmp("glDebugMessageControlARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageControlARB);
        _glDebugMessageControlARB = (PFN_GLDEBUGMESSAGECONTROLARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageControlARB;
    }
    if (strcmp("glDebugMessageInsertARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertARB);
        _glDebugMessageInsertARB = (PFN_GLDEBUGMESSAGEINSERTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertARB;
    }
    if (strcmp("glDebugMessageCallbackARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackARB);
        _glDebugMessageCallbackARB = (PFN_GLDEBUGMESSAGECALLBACKARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackARB;
    }
    if (strcmp("glGetDebugMessageLogARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogARB);
        _glGetDebugMessageLogARB = (PFN_GLGETDEBUGMESSAGELOGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogARB;
    }
    if (strcmp("glCreateTransformFeedbacks", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateTransformFeedbacks);
        _glCreateTransformFeedbacks = (PFN_GLCREATETRANSFORMFEEDBACKS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateTransformFeedbacks;
    }
    if (strcmp("glTransformFeedbackBufferBase", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackBufferBase);
        _glTransformFeedbackBufferBase = (PFN_GLTRANSFORMFEEDBACKBUFFERBASE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackBufferBase;
    }
    if (strcmp("glTransformFeedbackBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackBufferRange);
        _glTransformFeedbackBufferRange = (PFN_GLTRANSFORMFEEDBACKBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackBufferRange;
    }
    if (strcmp("glGetTransformFeedbackiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackiv);
        _glGetTransformFeedbackiv = (PFN_GLGETTRANSFORMFEEDBACKIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackiv;
    }
    if (strcmp("glGetTransformFeedbacki_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbacki_v);
        _glGetTransformFeedbacki_v = (PFN_GLGETTRANSFORMFEEDBACKI_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbacki_v;
    }
    if (strcmp("glGetTransformFeedbacki64_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbacki64_v);
        _glGetTransformFeedbacki64_v = (PFN_GLGETTRANSFORMFEEDBACKI64_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbacki64_v;
    }
    if (strcmp("glCreateBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateBuffers);
        _glCreateBuffers = (PFN_GLCREATEBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateBuffers;
    }
    if (strcmp("glNamedBufferStorage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferStorage);
        _glNamedBufferStorage = (PFN_GLNAMEDBUFFERSTORAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferStorage;
    }
    if (strcmp("glNamedBufferData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferData);
        _glNamedBufferData = (PFN_GLNAMEDBUFFERDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferData;
    }
    if (strcmp("glNamedBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferSubData);
        _glNamedBufferSubData = (PFN_GLNAMEDBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferSubData;
    }
    if (strcmp("glCopyNamedBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyNamedBufferSubData);
        _glCopyNamedBufferSubData = (PFN_GLCOPYNAMEDBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyNamedBufferSubData;
    }
    if (strcmp("glClearNamedBufferData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferData);
        _glClearNamedBufferData = (PFN_GLCLEARNAMEDBUFFERDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferData;
    }
    if (strcmp("glClearNamedBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferSubData);
        _glClearNamedBufferSubData = (PFN_GLCLEARNAMEDBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferSubData;
    }
    if (strcmp("glMapNamedBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapNamedBuffer);
        _glMapNamedBuffer = (PFN_GLMAPNAMEDBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapNamedBuffer;
    }
    if (strcmp("glMapNamedBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapNamedBufferRange);
        _glMapNamedBufferRange = (PFN_GLMAPNAMEDBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapNamedBufferRange;
    }
    if (strcmp("glUnmapNamedBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapNamedBuffer);
        _glUnmapNamedBuffer = (PFN_GLUNMAPNAMEDBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapNamedBuffer;
    }
    if (strcmp("glFlushMappedNamedBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushMappedNamedBufferRange);
        _glFlushMappedNamedBufferRange = (PFN_GLFLUSHMAPPEDNAMEDBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushMappedNamedBufferRange;
    }
    if (strcmp("glGetNamedBufferParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameteriv);
        _glGetNamedBufferParameteriv = (PFN_GLGETNAMEDBUFFERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameteriv;
    }
    if (strcmp("glGetNamedBufferParameteri64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameteri64v);
        _glGetNamedBufferParameteri64v = (PFN_GLGETNAMEDBUFFERPARAMETERI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameteri64v;
    }
    if (strcmp("glGetNamedBufferPointerv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferPointerv);
        _glGetNamedBufferPointerv = (PFN_GLGETNAMEDBUFFERPOINTERV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferPointerv;
    }
    if (strcmp("glGetNamedBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferSubData);
        _glGetNamedBufferSubData = (PFN_GLGETNAMEDBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferSubData;
    }
    if (strcmp("glCreateFramebuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateFramebuffers);
        _glCreateFramebuffers = (PFN_GLCREATEFRAMEBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateFramebuffers;
    }
    if (strcmp("glNamedFramebufferRenderbuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferRenderbuffer);
        _glNamedFramebufferRenderbuffer = (PFN_GLNAMEDFRAMEBUFFERRENDERBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferRenderbuffer;
    }
    if (strcmp("glNamedFramebufferParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferParameteri);
        _glNamedFramebufferParameteri = (PFN_GLNAMEDFRAMEBUFFERPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferParameteri;
    }
    if (strcmp("glNamedFramebufferTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture);
        _glNamedFramebufferTexture = (PFN_GLNAMEDFRAMEBUFFERTEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture;
    }
    if (strcmp("glNamedFramebufferTextureLayer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureLayer);
        _glNamedFramebufferTextureLayer = (PFN_GLNAMEDFRAMEBUFFERTEXTURELAYER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureLayer;
    }
    if (strcmp("glNamedFramebufferDrawBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferDrawBuffer);
        _glNamedFramebufferDrawBuffer = (PFN_GLNAMEDFRAMEBUFFERDRAWBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferDrawBuffer;
    }
    if (strcmp("glNamedFramebufferDrawBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferDrawBuffers);
        _glNamedFramebufferDrawBuffers = (PFN_GLNAMEDFRAMEBUFFERDRAWBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferDrawBuffers;
    }
    if (strcmp("glNamedFramebufferReadBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferReadBuffer);
        _glNamedFramebufferReadBuffer = (PFN_GLNAMEDFRAMEBUFFERREADBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferReadBuffer;
    }
    if (strcmp("glInvalidateNamedFramebufferData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateNamedFramebufferData);
        _glInvalidateNamedFramebufferData = (PFN_GLINVALIDATENAMEDFRAMEBUFFERDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateNamedFramebufferData;
    }
    if (strcmp("glInvalidateNamedFramebufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateNamedFramebufferSubData);
        _glInvalidateNamedFramebufferSubData = (PFN_GLINVALIDATENAMEDFRAMEBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateNamedFramebufferSubData;
    }
    if (strcmp("glClearNamedFramebufferiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferiv);
        _glClearNamedFramebufferiv = (PFN_GLCLEARNAMEDFRAMEBUFFERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferiv;
    }
    if (strcmp("glClearNamedFramebufferuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferuiv);
        _glClearNamedFramebufferuiv = (PFN_GLCLEARNAMEDFRAMEBUFFERUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferuiv;
    }
    if (strcmp("glClearNamedFramebufferfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferfv);
        _glClearNamedFramebufferfv = (PFN_GLCLEARNAMEDFRAMEBUFFERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferfv;
    }
    if (strcmp("glClearNamedFramebufferfi", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferfi);
        _glClearNamedFramebufferfi = (PFN_GLCLEARNAMEDFRAMEBUFFERFI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedFramebufferfi;
    }
    if (strcmp("glBlitNamedFramebuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlitNamedFramebuffer);
        _glBlitNamedFramebuffer = (PFN_GLBLITNAMEDFRAMEBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlitNamedFramebuffer;
    }
    if (strcmp("glCheckNamedFramebufferStatus", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCheckNamedFramebufferStatus);
        _glCheckNamedFramebufferStatus = (PFN_GLCHECKNAMEDFRAMEBUFFERSTATUS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCheckNamedFramebufferStatus;
    }
    if (strcmp("glGetNamedFramebufferParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferParameteriv);
        _glGetNamedFramebufferParameteriv = (PFN_GLGETNAMEDFRAMEBUFFERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferParameteriv;
    }
    if (strcmp("glGetNamedFramebufferAttachmentParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferAttachmentParameteriv);
        _glGetNamedFramebufferAttachmentParameteriv = (PFN_GLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferAttachmentParameteriv;
    }
    if (strcmp("glCreateRenderbuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateRenderbuffers);
        _glCreateRenderbuffers = (PFN_GLCREATERENDERBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateRenderbuffers;
    }
    if (strcmp("glNamedRenderbufferStorage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorage);
        _glNamedRenderbufferStorage = (PFN_GLNAMEDRENDERBUFFERSTORAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorage;
    }
    if (strcmp("glNamedRenderbufferStorageMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageMultisample);
        _glNamedRenderbufferStorageMultisample = (PFN_GLNAMEDRENDERBUFFERSTORAGEMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageMultisample;
    }
    if (strcmp("glGetNamedRenderbufferParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedRenderbufferParameteriv);
        _glGetNamedRenderbufferParameteriv = (PFN_GLGETNAMEDRENDERBUFFERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedRenderbufferParameteriv;
    }
    if (strcmp("glCreateTextures", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateTextures);
        _glCreateTextures = (PFN_GLCREATETEXTURES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateTextures;
    }
    if (strcmp("glTextureBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureBuffer);
        _glTextureBuffer = (PFN_GLTEXTUREBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureBuffer;
    }
    if (strcmp("glTextureBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureBufferRange);
        _glTextureBufferRange = (PFN_GLTEXTUREBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureBufferRange;
    }
    if (strcmp("glTextureStorage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage1D);
        _glTextureStorage1D = (PFN_GLTEXTURESTORAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage1D;
    }
    if (strcmp("glTextureStorage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage2D);
        _glTextureStorage2D = (PFN_GLTEXTURESTORAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage2D;
    }
    if (strcmp("glTextureStorage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage3D);
        _glTextureStorage3D = (PFN_GLTEXTURESTORAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage3D;
    }
    if (strcmp("glTextureStorage2DMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage2DMultisample);
        _glTextureStorage2DMultisample = (PFN_GLTEXTURESTORAGE2DMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage2DMultisample;
    }
    if (strcmp("glTextureStorage3DMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage3DMultisample);
        _glTextureStorage3DMultisample = (PFN_GLTEXTURESTORAGE3DMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage3DMultisample;
    }
    if (strcmp("glTextureSubImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureSubImage1D);
        _glTextureSubImage1D = (PFN_GLTEXTURESUBIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureSubImage1D;
    }
    if (strcmp("glTextureSubImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureSubImage2D);
        _glTextureSubImage2D = (PFN_GLTEXTURESUBIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureSubImage2D;
    }
    if (strcmp("glTextureSubImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureSubImage3D);
        _glTextureSubImage3D = (PFN_GLTEXTURESUBIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureSubImage3D;
    }
    if (strcmp("glCompressedTextureSubImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage1D);
        _glCompressedTextureSubImage1D = (PFN_GLCOMPRESSEDTEXTURESUBIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage1D;
    }
    if (strcmp("glCompressedTextureSubImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage2D);
        _glCompressedTextureSubImage2D = (PFN_GLCOMPRESSEDTEXTURESUBIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage2D;
    }
    if (strcmp("glCompressedTextureSubImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage3D);
        _glCompressedTextureSubImage3D = (PFN_GLCOMPRESSEDTEXTURESUBIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage3D;
    }
    if (strcmp("glCopyTextureSubImage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage1D);
        _glCopyTextureSubImage1D = (PFN_GLCOPYTEXTURESUBIMAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage1D;
    }
    if (strcmp("glCopyTextureSubImage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage2D);
        _glCopyTextureSubImage2D = (PFN_GLCOPYTEXTURESUBIMAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage2D;
    }
    if (strcmp("glCopyTextureSubImage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage3D);
        _glCopyTextureSubImage3D = (PFN_GLCOPYTEXTURESUBIMAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage3D;
    }
    if (strcmp("glTextureParameterf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterf);
        _glTextureParameterf = (PFN_GLTEXTUREPARAMETERF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterf;
    }
    if (strcmp("glTextureParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterfv);
        _glTextureParameterfv = (PFN_GLTEXTUREPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterfv;
    }
    if (strcmp("glTextureParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameteri);
        _glTextureParameteri = (PFN_GLTEXTUREPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameteri;
    }
    if (strcmp("glTextureParameterIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterIiv);
        _glTextureParameterIiv = (PFN_GLTEXTUREPARAMETERIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterIiv;
    }
    if (strcmp("glTextureParameterIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterIuiv);
        _glTextureParameterIuiv = (PFN_GLTEXTUREPARAMETERIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterIuiv;
    }
    if (strcmp("glTextureParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameteriv);
        _glTextureParameteriv = (PFN_GLTEXTUREPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameteriv;
    }
    if (strcmp("glGenerateTextureMipmap", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenerateTextureMipmap);
        _glGenerateTextureMipmap = (PFN_GLGENERATETEXTUREMIPMAP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenerateTextureMipmap;
    }
    if (strcmp("glBindTextureUnit", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTextureUnit);
        _glBindTextureUnit = (PFN_GLBINDTEXTUREUNIT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTextureUnit;
    }
    if (strcmp("glGetTextureImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureImage);
        _glGetTextureImage = (PFN_GLGETTEXTUREIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureImage;
    }
    if (strcmp("glGetCompressedTextureImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCompressedTextureImage);
        _glGetCompressedTextureImage = (PFN_GLGETCOMPRESSEDTEXTUREIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCompressedTextureImage;
    }
    if (strcmp("glGetTextureLevelParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameterfv);
        _glGetTextureLevelParameterfv = (PFN_GLGETTEXTURELEVELPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameterfv;
    }
    if (strcmp("glGetTextureLevelParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameteriv);
        _glGetTextureLevelParameteriv = (PFN_GLGETTEXTURELEVELPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameteriv;
    }
    if (strcmp("glGetTextureParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterfv);
        _glGetTextureParameterfv = (PFN_GLGETTEXTUREPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterfv;
    }
    if (strcmp("glGetTextureParameterIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIiv);
        _glGetTextureParameterIiv = (PFN_GLGETTEXTUREPARAMETERIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIiv;
    }
    if (strcmp("glGetTextureParameterIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIuiv);
        _glGetTextureParameterIuiv = (PFN_GLGETTEXTUREPARAMETERIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIuiv;
    }
    if (strcmp("glGetTextureParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameteriv);
        _glGetTextureParameteriv = (PFN_GLGETTEXTUREPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameteriv;
    }
    if (strcmp("glCreateVertexArrays", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateVertexArrays);
        _glCreateVertexArrays = (PFN_GLCREATEVERTEXARRAYS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateVertexArrays;
    }
    if (strcmp("glDisableVertexArrayAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVertexArrayAttrib);
        _glDisableVertexArrayAttrib = (PFN_GLDISABLEVERTEXARRAYATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVertexArrayAttrib;
    }
    if (strcmp("glEnableVertexArrayAttrib", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVertexArrayAttrib);
        _glEnableVertexArrayAttrib = (PFN_GLENABLEVERTEXARRAYATTRIB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVertexArrayAttrib;
    }
    if (strcmp("glVertexArrayElementBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayElementBuffer);
        _glVertexArrayElementBuffer = (PFN_GLVERTEXARRAYELEMENTBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayElementBuffer;
    }
    if (strcmp("glVertexArrayVertexBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexBuffer);
        _glVertexArrayVertexBuffer = (PFN_GLVERTEXARRAYVERTEXBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexBuffer;
    }
    if (strcmp("glVertexArrayVertexBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexBuffers);
        _glVertexArrayVertexBuffers = (PFN_GLVERTEXARRAYVERTEXBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexBuffers;
    }
    if (strcmp("glVertexArrayAttribBinding", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribBinding);
        _glVertexArrayAttribBinding = (PFN_GLVERTEXARRAYATTRIBBINDING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribBinding;
    }
    if (strcmp("glVertexArrayAttribFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribFormat);
        _glVertexArrayAttribFormat = (PFN_GLVERTEXARRAYATTRIBFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribFormat;
    }
    if (strcmp("glVertexArrayAttribIFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribIFormat);
        _glVertexArrayAttribIFormat = (PFN_GLVERTEXARRAYATTRIBIFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribIFormat;
    }
    if (strcmp("glVertexArrayAttribLFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribLFormat);
        _glVertexArrayAttribLFormat = (PFN_GLVERTEXARRAYATTRIBLFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayAttribLFormat;
    }
    if (strcmp("glVertexArrayBindingDivisor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayBindingDivisor);
        _glVertexArrayBindingDivisor = (PFN_GLVERTEXARRAYBINDINGDIVISOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayBindingDivisor;
    }
    if (strcmp("glGetVertexArrayiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayiv);
        _glGetVertexArrayiv = (PFN_GLGETVERTEXARRAYIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayiv;
    }
    if (strcmp("glGetVertexArrayIndexediv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIndexediv);
        _glGetVertexArrayIndexediv = (PFN_GLGETVERTEXARRAYINDEXEDIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIndexediv;
    }
    if (strcmp("glGetVertexArrayIndexed64iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIndexed64iv);
        _glGetVertexArrayIndexed64iv = (PFN_GLGETVERTEXARRAYINDEXED64IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIndexed64iv;
    }
    if (strcmp("glCreateSamplers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateSamplers);
        _glCreateSamplers = (PFN_GLCREATESAMPLERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateSamplers;
    }
    if (strcmp("glCreateProgramPipelines", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateProgramPipelines);
        _glCreateProgramPipelines = (PFN_GLCREATEPROGRAMPIPELINES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateProgramPipelines;
    }
    if (strcmp("glCreateQueries", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateQueries);
        _glCreateQueries = (PFN_GLCREATEQUERIES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateQueries;
    }
    if (strcmp("glGetQueryBufferObjecti64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjecti64v);
        _glGetQueryBufferObjecti64v = (PFN_GLGETQUERYBUFFEROBJECTI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjecti64v;
    }
    if (strcmp("glGetQueryBufferObjectiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjectiv);
        _glGetQueryBufferObjectiv = (PFN_GLGETQUERYBUFFEROBJECTIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjectiv;
    }
    if (strcmp("glGetQueryBufferObjectui64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjectui64v);
        _glGetQueryBufferObjectui64v = (PFN_GLGETQUERYBUFFEROBJECTUI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjectui64v;
    }
    if (strcmp("glGetQueryBufferObjectuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjectuiv);
        _glGetQueryBufferObjectuiv = (PFN_GLGETQUERYBUFFEROBJECTUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryBufferObjectuiv;
    }
    if (strcmp("glDrawBuffersARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffersARB);
        _glDrawBuffersARB = (PFN_GLDRAWBUFFERSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffersARB;
    }
    if (strcmp("glBlendEquationiARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationiARB);
        _glBlendEquationiARB = (PFN_GLBLENDEQUATIONIARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationiARB;
    }
    if (strcmp("glBlendEquationSeparateiARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateiARB);
        _glBlendEquationSeparateiARB = (PFN_GLBLENDEQUATIONSEPARATEIARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateiARB;
    }
    if (strcmp("glBlendFunciARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFunciARB);
        _glBlendFunciARB = (PFN_GLBLENDFUNCIARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFunciARB;
    }
    if (strcmp("glBlendFuncSeparateiARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateiARB);
        _glBlendFuncSeparateiARB = (PFN_GLBLENDFUNCSEPARATEIARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateiARB;
    }
    if (strcmp("glDrawElementsBaseVertex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsBaseVertex);
        _glDrawElementsBaseVertex = (PFN_GLDRAWELEMENTSBASEVERTEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsBaseVertex;
    }
    if (strcmp("glDrawRangeElementsBaseVertex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementsBaseVertex);
        _glDrawRangeElementsBaseVertex = (PFN_GLDRAWRANGEELEMENTSBASEVERTEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementsBaseVertex;
    }
    if (strcmp("glDrawElementsInstancedBaseVertex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertex);
        _glDrawElementsInstancedBaseVertex = (PFN_GLDRAWELEMENTSINSTANCEDBASEVERTEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertex;
    }
    if (strcmp("glMultiDrawElementsBaseVertex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsBaseVertex);
        _glMultiDrawElementsBaseVertex = (PFN_GLMULTIDRAWELEMENTSBASEVERTEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsBaseVertex;
    }
    if (strcmp("glDrawArraysIndirect", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysIndirect);
        _glDrawArraysIndirect = (PFN_GLDRAWARRAYSINDIRECT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysIndirect;
    }
    if (strcmp("glDrawElementsIndirect", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsIndirect);
        _glDrawElementsIndirect = (PFN_GLDRAWELEMENTSINDIRECT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsIndirect;
    }
    if (strcmp("glDrawArraysInstancedARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedARB);
        _glDrawArraysInstancedARB = (PFN_GLDRAWARRAYSINSTANCEDARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedARB;
    }
    if (strcmp("glDrawElementsInstancedARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedARB);
        _glDrawElementsInstancedARB = (PFN_GLDRAWELEMENTSINSTANCEDARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedARB;
    }
    if (strcmp("glFramebufferParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferParameteri);
        _glFramebufferParameteri = (PFN_GLFRAMEBUFFERPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferParameteri;
    }
    if (strcmp("glGetFramebufferParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFramebufferParameteriv);
        _glGetFramebufferParameteriv = (PFN_GLGETFRAMEBUFFERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFramebufferParameteriv;
    }
    if (strcmp("glIsRenderbuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsRenderbuffer);
        _glIsRenderbuffer = (PFN_GLISRENDERBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsRenderbuffer;
    }
    if (strcmp("glBindRenderbuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindRenderbuffer);
        _glBindRenderbuffer = (PFN_GLBINDRENDERBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindRenderbuffer;
    }
    if (strcmp("glDeleteRenderbuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteRenderbuffers);
        _glDeleteRenderbuffers = (PFN_GLDELETERENDERBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteRenderbuffers;
    }
    if (strcmp("glGenRenderbuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenRenderbuffers);
        _glGenRenderbuffers = (PFN_GLGENRENDERBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenRenderbuffers;
    }
    if (strcmp("glRenderbufferStorage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorage);
        _glRenderbufferStorage = (PFN_GLRENDERBUFFERSTORAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorage;
    }
    if (strcmp("glGetRenderbufferParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetRenderbufferParameteriv);
        _glGetRenderbufferParameteriv = (PFN_GLGETRENDERBUFFERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetRenderbufferParameteriv;
    }
    if (strcmp("glIsFramebuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsFramebuffer);
        _glIsFramebuffer = (PFN_GLISFRAMEBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsFramebuffer;
    }
    if (strcmp("glBindFramebuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFramebuffer);
        _glBindFramebuffer = (PFN_GLBINDFRAMEBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFramebuffer;
    }
    if (strcmp("glDeleteFramebuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteFramebuffers);
        _glDeleteFramebuffers = (PFN_GLDELETEFRAMEBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteFramebuffers;
    }
    if (strcmp("glGenFramebuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenFramebuffers);
        _glGenFramebuffers = (PFN_GLGENFRAMEBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenFramebuffers;
    }
    if (strcmp("glCheckFramebufferStatus", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCheckFramebufferStatus);
        _glCheckFramebufferStatus = (PFN_GLCHECKFRAMEBUFFERSTATUS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCheckFramebufferStatus;
    }
    if (strcmp("glFramebufferTexture1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture1D);
        _glFramebufferTexture1D = (PFN_GLFRAMEBUFFERTEXTURE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture1D;
    }
    if (strcmp("glFramebufferTexture2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2D);
        _glFramebufferTexture2D = (PFN_GLFRAMEBUFFERTEXTURE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2D;
    }
    if (strcmp("glFramebufferTexture3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture3D);
        _glFramebufferTexture3D = (PFN_GLFRAMEBUFFERTEXTURE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture3D;
    }
    if (strcmp("glFramebufferRenderbuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferRenderbuffer);
        _glFramebufferRenderbuffer = (PFN_GLFRAMEBUFFERRENDERBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferRenderbuffer;
    }
    if (strcmp("glGetFramebufferAttachmentParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFramebufferAttachmentParameteriv);
        _glGetFramebufferAttachmentParameteriv = (PFN_GLGETFRAMEBUFFERATTACHMENTPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFramebufferAttachmentParameteriv;
    }
    if (strcmp("glGenerateMipmap", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenerateMipmap);
        _glGenerateMipmap = (PFN_GLGENERATEMIPMAP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenerateMipmap;
    }
    if (strcmp("glBlitFramebuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlitFramebuffer);
        _glBlitFramebuffer = (PFN_GLBLITFRAMEBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlitFramebuffer;
    }
    if (strcmp("glRenderbufferStorageMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisample);
        _glRenderbufferStorageMultisample = (PFN_GLRENDERBUFFERSTORAGEMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisample;
    }
    if (strcmp("glFramebufferTextureLayer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureLayer);
        _glFramebufferTextureLayer = (PFN_GLFRAMEBUFFERTEXTURELAYER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureLayer;
    }
    if (strcmp("glProgramParameteriARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameteriARB);
        _glProgramParameteriARB = (PFN_GLPROGRAMPARAMETERIARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameteriARB;
    }
    if (strcmp("glFramebufferTextureARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureARB);
        _glFramebufferTextureARB = (PFN_GLFRAMEBUFFERTEXTUREARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureARB;
    }
    if (strcmp("glFramebufferTextureLayerARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureLayerARB);
        _glFramebufferTextureLayerARB = (PFN_GLFRAMEBUFFERTEXTURELAYERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureLayerARB;
    }
    if (strcmp("glFramebufferTextureFaceARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureFaceARB);
        _glFramebufferTextureFaceARB = (PFN_GLFRAMEBUFFERTEXTUREFACEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureFaceARB;
    }
    if (strcmp("glGetProgramBinary", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramBinary);
        _glGetProgramBinary = (PFN_GLGETPROGRAMBINARY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramBinary;
    }
    if (strcmp("glProgramBinary", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramBinary);
        _glProgramBinary = (PFN_GLPROGRAMBINARY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramBinary;
    }
    if (strcmp("glProgramParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameteri);
        _glProgramParameteri = (PFN_GLPROGRAMPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameteri;
    }
    if (strcmp("glGetTextureSubImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureSubImage);
        _glGetTextureSubImage = (PFN_GLGETTEXTURESUBIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureSubImage;
    }
    if (strcmp("glGetCompressedTextureSubImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCompressedTextureSubImage);
        _glGetCompressedTextureSubImage = (PFN_GLGETCOMPRESSEDTEXTURESUBIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCompressedTextureSubImage;
    }
    if (strcmp("glSpecializeShaderARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSpecializeShaderARB);
        _glSpecializeShaderARB = (PFN_GLSPECIALIZESHADERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSpecializeShaderARB;
    }
    if (strcmp("glUniform1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1d);
        _glUniform1d = (PFN_GLUNIFORM1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1d;
    }
    if (strcmp("glUniform2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2d);
        _glUniform2d = (PFN_GLUNIFORM2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2d;
    }
    if (strcmp("glUniform3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3d);
        _glUniform3d = (PFN_GLUNIFORM3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3d;
    }
    if (strcmp("glUniform4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4d);
        _glUniform4d = (PFN_GLUNIFORM4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4d;
    }
    if (strcmp("glUniform1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1dv);
        _glUniform1dv = (PFN_GLUNIFORM1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1dv;
    }
    if (strcmp("glUniform2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2dv);
        _glUniform2dv = (PFN_GLUNIFORM2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2dv;
    }
    if (strcmp("glUniform3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3dv);
        _glUniform3dv = (PFN_GLUNIFORM3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3dv;
    }
    if (strcmp("glUniform4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4dv);
        _glUniform4dv = (PFN_GLUNIFORM4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4dv;
    }
    if (strcmp("glUniformMatrix2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2dv);
        _glUniformMatrix2dv = (PFN_GLUNIFORMMATRIX2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2dv;
    }
    if (strcmp("glUniformMatrix3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3dv);
        _glUniformMatrix3dv = (PFN_GLUNIFORMMATRIX3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3dv;
    }
    if (strcmp("glUniformMatrix4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4dv);
        _glUniformMatrix4dv = (PFN_GLUNIFORMMATRIX4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4dv;
    }
    if (strcmp("glUniformMatrix2x3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x3dv);
        _glUniformMatrix2x3dv = (PFN_GLUNIFORMMATRIX2X3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x3dv;
    }
    if (strcmp("glUniformMatrix2x4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x4dv);
        _glUniformMatrix2x4dv = (PFN_GLUNIFORMMATRIX2X4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2x4dv;
    }
    if (strcmp("glUniformMatrix3x2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x2dv);
        _glUniformMatrix3x2dv = (PFN_GLUNIFORMMATRIX3X2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x2dv;
    }
    if (strcmp("glUniformMatrix3x4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x4dv);
        _glUniformMatrix3x4dv = (PFN_GLUNIFORMMATRIX3X4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3x4dv;
    }
    if (strcmp("glUniformMatrix4x2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x2dv);
        _glUniformMatrix4x2dv = (PFN_GLUNIFORMMATRIX4X2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x2dv;
    }
    if (strcmp("glUniformMatrix4x3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x3dv);
        _glUniformMatrix4x3dv = (PFN_GLUNIFORMMATRIX4X3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4x3dv;
    }
    if (strcmp("glGetUniformdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformdv);
        _glGetUniformdv = (PFN_GLGETUNIFORMDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformdv;
    }
    if (strcmp("glUniform1i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1i64ARB);
        _glUniform1i64ARB = (PFN_GLUNIFORM1I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1i64ARB;
    }
    if (strcmp("glUniform2i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2i64ARB);
        _glUniform2i64ARB = (PFN_GLUNIFORM2I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2i64ARB;
    }
    if (strcmp("glUniform3i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3i64ARB);
        _glUniform3i64ARB = (PFN_GLUNIFORM3I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3i64ARB;
    }
    if (strcmp("glUniform4i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4i64ARB);
        _glUniform4i64ARB = (PFN_GLUNIFORM4I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4i64ARB;
    }
    if (strcmp("glUniform1i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1i64vARB);
        _glUniform1i64vARB = (PFN_GLUNIFORM1I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1i64vARB;
    }
    if (strcmp("glUniform2i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2i64vARB);
        _glUniform2i64vARB = (PFN_GLUNIFORM2I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2i64vARB;
    }
    if (strcmp("glUniform3i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3i64vARB);
        _glUniform3i64vARB = (PFN_GLUNIFORM3I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3i64vARB;
    }
    if (strcmp("glUniform4i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4i64vARB);
        _glUniform4i64vARB = (PFN_GLUNIFORM4I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4i64vARB;
    }
    if (strcmp("glUniform1ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1ui64ARB);
        _glUniform1ui64ARB = (PFN_GLUNIFORM1UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1ui64ARB;
    }
    if (strcmp("glUniform2ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2ui64ARB);
        _glUniform2ui64ARB = (PFN_GLUNIFORM2UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2ui64ARB;
    }
    if (strcmp("glUniform3ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3ui64ARB);
        _glUniform3ui64ARB = (PFN_GLUNIFORM3UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3ui64ARB;
    }
    if (strcmp("glUniform4ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4ui64ARB);
        _glUniform4ui64ARB = (PFN_GLUNIFORM4UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4ui64ARB;
    }
    if (strcmp("glUniform1ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1ui64vARB);
        _glUniform1ui64vARB = (PFN_GLUNIFORM1UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1ui64vARB;
    }
    if (strcmp("glUniform2ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2ui64vARB);
        _glUniform2ui64vARB = (PFN_GLUNIFORM2UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2ui64vARB;
    }
    if (strcmp("glUniform3ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3ui64vARB);
        _glUniform3ui64vARB = (PFN_GLUNIFORM3UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3ui64vARB;
    }
    if (strcmp("glUniform4ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4ui64vARB);
        _glUniform4ui64vARB = (PFN_GLUNIFORM4UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4ui64vARB;
    }
    if (strcmp("glGetUniformi64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformi64vARB);
        _glGetUniformi64vARB = (PFN_GLGETUNIFORMI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformi64vARB;
    }
    if (strcmp("glGetUniformui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformui64vARB);
        _glGetUniformui64vARB = (PFN_GLGETUNIFORMUI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformui64vARB;
    }
    if (strcmp("glGetnUniformi64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformi64vARB);
        _glGetnUniformi64vARB = (PFN_GLGETNUNIFORMI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformi64vARB;
    }
    if (strcmp("glGetnUniformui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformui64vARB);
        _glGetnUniformui64vARB = (PFN_GLGETNUNIFORMUI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformui64vARB;
    }
    if (strcmp("glProgramUniform1i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64ARB);
        _glProgramUniform1i64ARB = (PFN_GLPROGRAMUNIFORM1I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64ARB;
    }
    if (strcmp("glProgramUniform2i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64ARB);
        _glProgramUniform2i64ARB = (PFN_GLPROGRAMUNIFORM2I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64ARB;
    }
    if (strcmp("glProgramUniform3i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64ARB);
        _glProgramUniform3i64ARB = (PFN_GLPROGRAMUNIFORM3I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64ARB;
    }
    if (strcmp("glProgramUniform4i64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64ARB);
        _glProgramUniform4i64ARB = (PFN_GLPROGRAMUNIFORM4I64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64ARB;
    }
    if (strcmp("glProgramUniform1i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64vARB);
        _glProgramUniform1i64vARB = (PFN_GLPROGRAMUNIFORM1I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64vARB;
    }
    if (strcmp("glProgramUniform2i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64vARB);
        _glProgramUniform2i64vARB = (PFN_GLPROGRAMUNIFORM2I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64vARB;
    }
    if (strcmp("glProgramUniform3i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64vARB);
        _glProgramUniform3i64vARB = (PFN_GLPROGRAMUNIFORM3I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64vARB;
    }
    if (strcmp("glProgramUniform4i64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64vARB);
        _glProgramUniform4i64vARB = (PFN_GLPROGRAMUNIFORM4I64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64vARB;
    }
    if (strcmp("glProgramUniform1ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64ARB);
        _glProgramUniform1ui64ARB = (PFN_GLPROGRAMUNIFORM1UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64ARB;
    }
    if (strcmp("glProgramUniform2ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64ARB);
        _glProgramUniform2ui64ARB = (PFN_GLPROGRAMUNIFORM2UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64ARB;
    }
    if (strcmp("glProgramUniform3ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64ARB);
        _glProgramUniform3ui64ARB = (PFN_GLPROGRAMUNIFORM3UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64ARB;
    }
    if (strcmp("glProgramUniform4ui64ARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64ARB);
        _glProgramUniform4ui64ARB = (PFN_GLPROGRAMUNIFORM4UI64ARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64ARB;
    }
    if (strcmp("glProgramUniform1ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64vARB);
        _glProgramUniform1ui64vARB = (PFN_GLPROGRAMUNIFORM1UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64vARB;
    }
    if (strcmp("glProgramUniform2ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64vARB);
        _glProgramUniform2ui64vARB = (PFN_GLPROGRAMUNIFORM2UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64vARB;
    }
    if (strcmp("glProgramUniform3ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64vARB);
        _glProgramUniform3ui64vARB = (PFN_GLPROGRAMUNIFORM3UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64vARB;
    }
    if (strcmp("glProgramUniform4ui64vARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64vARB);
        _glProgramUniform4ui64vARB = (PFN_GLPROGRAMUNIFORM4UI64VARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64vARB;
    }
    if (strcmp("glMultiDrawArraysIndirectCountARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectCountARB);
        _glMultiDrawArraysIndirectCountARB = (PFN_GLMULTIDRAWARRAYSINDIRECTCOUNTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectCountARB;
    }
    if (strcmp("glMultiDrawElementsIndirectCountARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectCountARB);
        _glMultiDrawElementsIndirectCountARB = (PFN_GLMULTIDRAWELEMENTSINDIRECTCOUNTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectCountARB;
    }
    if (strcmp("glVertexAttribDivisorARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisorARB);
        _glVertexAttribDivisorARB = (PFN_GLVERTEXATTRIBDIVISORARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisorARB;
    }
    if (strcmp("glGetInternalformativ", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInternalformativ);
        _glGetInternalformativ = (PFN_GLGETINTERNALFORMATIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInternalformativ;
    }
    if (strcmp("glGetInternalformati64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInternalformati64v);
        _glGetInternalformati64v = (PFN_GLGETINTERNALFORMATI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInternalformati64v;
    }
    if (strcmp("glInvalidateTexSubImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateTexSubImage);
        _glInvalidateTexSubImage = (PFN_GLINVALIDATETEXSUBIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateTexSubImage;
    }
    if (strcmp("glInvalidateTexImage", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateTexImage);
        _glInvalidateTexImage = (PFN_GLINVALIDATETEXIMAGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateTexImage;
    }
    if (strcmp("glInvalidateBufferSubData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateBufferSubData);
        _glInvalidateBufferSubData = (PFN_GLINVALIDATEBUFFERSUBDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateBufferSubData;
    }
    if (strcmp("glInvalidateBufferData", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateBufferData);
        _glInvalidateBufferData = (PFN_GLINVALIDATEBUFFERDATA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateBufferData;
    }
    if (strcmp("glInvalidateFramebuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateFramebuffer);
        _glInvalidateFramebuffer = (PFN_GLINVALIDATEFRAMEBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateFramebuffer;
    }
    if (strcmp("glInvalidateSubFramebuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInvalidateSubFramebuffer);
        _glInvalidateSubFramebuffer = (PFN_GLINVALIDATESUBFRAMEBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInvalidateSubFramebuffer;
    }
    if (strcmp("glMapBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapBufferRange);
        _glMapBufferRange = (PFN_GLMAPBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapBufferRange;
    }
    if (strcmp("glFlushMappedBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushMappedBufferRange);
        _glFlushMappedBufferRange = (PFN_GLFLUSHMAPPEDBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushMappedBufferRange;
    }
    if (strcmp("glCurrentPaletteMatrixARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCurrentPaletteMatrixARB);
        _glCurrentPaletteMatrixARB = (PFN_GLCURRENTPALETTEMATRIXARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCurrentPaletteMatrixARB;
    }
    if (strcmp("glMatrixIndexubvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixIndexubvARB);
        _glMatrixIndexubvARB = (PFN_GLMATRIXINDEXUBVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixIndexubvARB;
    }
    if (strcmp("glMatrixIndexusvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixIndexusvARB);
        _glMatrixIndexusvARB = (PFN_GLMATRIXINDEXUSVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixIndexusvARB;
    }
    if (strcmp("glMatrixIndexuivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixIndexuivARB);
        _glMatrixIndexuivARB = (PFN_GLMATRIXINDEXUIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixIndexuivARB;
    }
    if (strcmp("glMatrixIndexPointerARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixIndexPointerARB);
        _glMatrixIndexPointerARB = (PFN_GLMATRIXINDEXPOINTERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixIndexPointerARB;
    }
    if (strcmp("glBindBuffersBase", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBuffersBase);
        _glBindBuffersBase = (PFN_GLBINDBUFFERSBASE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBuffersBase;
    }
    if (strcmp("glBindBuffersRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBuffersRange);
        _glBindBuffersRange = (PFN_GLBINDBUFFERSRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBuffersRange;
    }
    if (strcmp("glBindTextures", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTextures);
        _glBindTextures = (PFN_GLBINDTEXTURES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTextures;
    }
    if (strcmp("glBindSamplers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindSamplers);
        _glBindSamplers = (PFN_GLBINDSAMPLERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindSamplers;
    }
    if (strcmp("glBindImageTextures", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindImageTextures);
        _glBindImageTextures = (PFN_GLBINDIMAGETEXTURES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindImageTextures;
    }
    if (strcmp("glBindVertexBuffers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVertexBuffers);
        _glBindVertexBuffers = (PFN_GLBINDVERTEXBUFFERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVertexBuffers;
    }
    if (strcmp("glMultiDrawArraysIndirect", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirect);
        _glMultiDrawArraysIndirect = (PFN_GLMULTIDRAWARRAYSINDIRECT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirect;
    }
    if (strcmp("glMultiDrawElementsIndirect", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirect);
        _glMultiDrawElementsIndirect = (PFN_GLMULTIDRAWELEMENTSINDIRECT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirect;
    }
    if (strcmp("glSampleCoverageARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleCoverageARB);
        _glSampleCoverageARB = (PFN_GLSAMPLECOVERAGEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleCoverageARB;
    }
    if (strcmp("glActiveTextureARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveTextureARB);
        _glActiveTextureARB = (PFN_GLACTIVETEXTUREARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveTextureARB;
    }
    if (strcmp("glClientActiveTextureARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClientActiveTextureARB);
        _glClientActiveTextureARB = (PFN_GLCLIENTACTIVETEXTUREARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClientActiveTextureARB;
    }
    if (strcmp("glMultiTexCoord1dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1dARB);
        _glMultiTexCoord1dARB = (PFN_GLMULTITEXCOORD1DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1dARB;
    }
    if (strcmp("glMultiTexCoord1dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1dvARB);
        _glMultiTexCoord1dvARB = (PFN_GLMULTITEXCOORD1DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1dvARB;
    }
    if (strcmp("glMultiTexCoord1fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1fARB);
        _glMultiTexCoord1fARB = (PFN_GLMULTITEXCOORD1FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1fARB;
    }
    if (strcmp("glMultiTexCoord1fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1fvARB);
        _glMultiTexCoord1fvARB = (PFN_GLMULTITEXCOORD1FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1fvARB;
    }
    if (strcmp("glMultiTexCoord1iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1iARB);
        _glMultiTexCoord1iARB = (PFN_GLMULTITEXCOORD1IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1iARB;
    }
    if (strcmp("glMultiTexCoord1ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1ivARB);
        _glMultiTexCoord1ivARB = (PFN_GLMULTITEXCOORD1IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1ivARB;
    }
    if (strcmp("glMultiTexCoord1sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1sARB);
        _glMultiTexCoord1sARB = (PFN_GLMULTITEXCOORD1SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1sARB;
    }
    if (strcmp("glMultiTexCoord1svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1svARB);
        _glMultiTexCoord1svARB = (PFN_GLMULTITEXCOORD1SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1svARB;
    }
    if (strcmp("glMultiTexCoord2dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2dARB);
        _glMultiTexCoord2dARB = (PFN_GLMULTITEXCOORD2DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2dARB;
    }
    if (strcmp("glMultiTexCoord2dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2dvARB);
        _glMultiTexCoord2dvARB = (PFN_GLMULTITEXCOORD2DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2dvARB;
    }
    if (strcmp("glMultiTexCoord2fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2fARB);
        _glMultiTexCoord2fARB = (PFN_GLMULTITEXCOORD2FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2fARB;
    }
    if (strcmp("glMultiTexCoord2fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2fvARB);
        _glMultiTexCoord2fvARB = (PFN_GLMULTITEXCOORD2FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2fvARB;
    }
    if (strcmp("glMultiTexCoord2iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2iARB);
        _glMultiTexCoord2iARB = (PFN_GLMULTITEXCOORD2IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2iARB;
    }
    if (strcmp("glMultiTexCoord2ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2ivARB);
        _glMultiTexCoord2ivARB = (PFN_GLMULTITEXCOORD2IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2ivARB;
    }
    if (strcmp("glMultiTexCoord2sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2sARB);
        _glMultiTexCoord2sARB = (PFN_GLMULTITEXCOORD2SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2sARB;
    }
    if (strcmp("glMultiTexCoord2svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2svARB);
        _glMultiTexCoord2svARB = (PFN_GLMULTITEXCOORD2SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2svARB;
    }
    if (strcmp("glMultiTexCoord3dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3dARB);
        _glMultiTexCoord3dARB = (PFN_GLMULTITEXCOORD3DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3dARB;
    }
    if (strcmp("glMultiTexCoord3dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3dvARB);
        _glMultiTexCoord3dvARB = (PFN_GLMULTITEXCOORD3DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3dvARB;
    }
    if (strcmp("glMultiTexCoord3fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3fARB);
        _glMultiTexCoord3fARB = (PFN_GLMULTITEXCOORD3FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3fARB;
    }
    if (strcmp("glMultiTexCoord3fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3fvARB);
        _glMultiTexCoord3fvARB = (PFN_GLMULTITEXCOORD3FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3fvARB;
    }
    if (strcmp("glMultiTexCoord3iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3iARB);
        _glMultiTexCoord3iARB = (PFN_GLMULTITEXCOORD3IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3iARB;
    }
    if (strcmp("glMultiTexCoord3ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3ivARB);
        _glMultiTexCoord3ivARB = (PFN_GLMULTITEXCOORD3IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3ivARB;
    }
    if (strcmp("glMultiTexCoord3sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3sARB);
        _glMultiTexCoord3sARB = (PFN_GLMULTITEXCOORD3SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3sARB;
    }
    if (strcmp("glMultiTexCoord3svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3svARB);
        _glMultiTexCoord3svARB = (PFN_GLMULTITEXCOORD3SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3svARB;
    }
    if (strcmp("glMultiTexCoord4dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4dARB);
        _glMultiTexCoord4dARB = (PFN_GLMULTITEXCOORD4DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4dARB;
    }
    if (strcmp("glMultiTexCoord4dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4dvARB);
        _glMultiTexCoord4dvARB = (PFN_GLMULTITEXCOORD4DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4dvARB;
    }
    if (strcmp("glMultiTexCoord4fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4fARB);
        _glMultiTexCoord4fARB = (PFN_GLMULTITEXCOORD4FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4fARB;
    }
    if (strcmp("glMultiTexCoord4fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4fvARB);
        _glMultiTexCoord4fvARB = (PFN_GLMULTITEXCOORD4FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4fvARB;
    }
    if (strcmp("glMultiTexCoord4iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4iARB);
        _glMultiTexCoord4iARB = (PFN_GLMULTITEXCOORD4IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4iARB;
    }
    if (strcmp("glMultiTexCoord4ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4ivARB);
        _glMultiTexCoord4ivARB = (PFN_GLMULTITEXCOORD4IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4ivARB;
    }
    if (strcmp("glMultiTexCoord4sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4sARB);
        _glMultiTexCoord4sARB = (PFN_GLMULTITEXCOORD4SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4sARB;
    }
    if (strcmp("glMultiTexCoord4svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4svARB);
        _glMultiTexCoord4svARB = (PFN_GLMULTITEXCOORD4SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4svARB;
    }
    if (strcmp("glGenQueriesARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenQueriesARB);
        _glGenQueriesARB = (PFN_GLGENQUERIESARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenQueriesARB;
    }
    if (strcmp("glDeleteQueriesARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteQueriesARB);
        _glDeleteQueriesARB = (PFN_GLDELETEQUERIESARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteQueriesARB;
    }
    if (strcmp("glIsQueryARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsQueryARB);
        _glIsQueryARB = (PFN_GLISQUERYARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsQueryARB;
    }
    if (strcmp("glBeginQueryARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginQueryARB);
        _glBeginQueryARB = (PFN_GLBEGINQUERYARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginQueryARB;
    }
    if (strcmp("glEndQueryARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndQueryARB);
        _glEndQueryARB = (PFN_GLENDQUERYARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndQueryARB;
    }
    if (strcmp("glGetQueryivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryivARB);
        _glGetQueryivARB = (PFN_GLGETQUERYIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryivARB;
    }
    if (strcmp("glGetQueryObjectivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectivARB);
        _glGetQueryObjectivARB = (PFN_GLGETQUERYOBJECTIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectivARB;
    }
    if (strcmp("glGetQueryObjectuivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuivARB);
        _glGetQueryObjectuivARB = (PFN_GLGETQUERYOBJECTUIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuivARB;
    }
    if (strcmp("glMaxShaderCompilerThreadsARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMaxShaderCompilerThreadsARB);
        _glMaxShaderCompilerThreadsARB = (PFN_GLMAXSHADERCOMPILERTHREADSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMaxShaderCompilerThreadsARB;
    }
    if (strcmp("glPointParameterfARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfARB);
        _glPointParameterfARB = (PFN_GLPOINTPARAMETERFARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfARB;
    }
    if (strcmp("glPointParameterfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfvARB);
        _glPointParameterfvARB = (PFN_GLPOINTPARAMETERFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfvARB;
    }
    if (strcmp("glGetProgramInterfaceiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramInterfaceiv);
        _glGetProgramInterfaceiv = (PFN_GLGETPROGRAMINTERFACEIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramInterfaceiv;
    }
    if (strcmp("glGetProgramResourceIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceIndex);
        _glGetProgramResourceIndex = (PFN_GLGETPROGRAMRESOURCEINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceIndex;
    }
    if (strcmp("glGetProgramResourceName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceName);
        _glGetProgramResourceName = (PFN_GLGETPROGRAMRESOURCENAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceName;
    }
    if (strcmp("glGetProgramResourceiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceiv);
        _glGetProgramResourceiv = (PFN_GLGETPROGRAMRESOURCEIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceiv;
    }
    if (strcmp("glGetProgramResourceLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceLocation);
        _glGetProgramResourceLocation = (PFN_GLGETPROGRAMRESOURCELOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceLocation;
    }
    if (strcmp("glGetProgramResourceLocationIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceLocationIndex);
        _glGetProgramResourceLocationIndex = (PFN_GLGETPROGRAMRESOURCELOCATIONINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceLocationIndex;
    }
    if (strcmp("glProvokingVertex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProvokingVertex);
        _glProvokingVertex = (PFN_GLPROVOKINGVERTEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProvokingVertex;
    }
    if (strcmp("glGetGraphicsResetStatusARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatusARB);
        _glGetGraphicsResetStatusARB = (PFN_GLGETGRAPHICSRESETSTATUSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatusARB;
    }
    if (strcmp("glGetnMapdvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMapdvARB);
        _glGetnMapdvARB = (PFN_GLGETNMAPDVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMapdvARB;
    }
    if (strcmp("glGetnMapfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMapfvARB);
        _glGetnMapfvARB = (PFN_GLGETNMAPFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMapfvARB;
    }
    if (strcmp("glGetnMapivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMapivARB);
        _glGetnMapivARB = (PFN_GLGETNMAPIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMapivARB;
    }
    if (strcmp("glGetnPixelMapfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapfvARB);
        _glGetnPixelMapfvARB = (PFN_GLGETNPIXELMAPFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapfvARB;
    }
    if (strcmp("glGetnPixelMapuivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapuivARB);
        _glGetnPixelMapuivARB = (PFN_GLGETNPIXELMAPUIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapuivARB;
    }
    if (strcmp("glGetnPixelMapusvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapusvARB);
        _glGetnPixelMapusvARB = (PFN_GLGETNPIXELMAPUSVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPixelMapusvARB;
    }
    if (strcmp("glGetnPolygonStippleARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnPolygonStippleARB);
        _glGetnPolygonStippleARB = (PFN_GLGETNPOLYGONSTIPPLEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnPolygonStippleARB;
    }
    if (strcmp("glGetnColorTableARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnColorTableARB);
        _glGetnColorTableARB = (PFN_GLGETNCOLORTABLEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnColorTableARB;
    }
    if (strcmp("glGetnConvolutionFilterARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnConvolutionFilterARB);
        _glGetnConvolutionFilterARB = (PFN_GLGETNCONVOLUTIONFILTERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnConvolutionFilterARB;
    }
    if (strcmp("glGetnSeparableFilterARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnSeparableFilterARB);
        _glGetnSeparableFilterARB = (PFN_GLGETNSEPARABLEFILTERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnSeparableFilterARB;
    }
    if (strcmp("glGetnHistogramARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnHistogramARB);
        _glGetnHistogramARB = (PFN_GLGETNHISTOGRAMARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnHistogramARB;
    }
    if (strcmp("glGetnMinmaxARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnMinmaxARB);
        _glGetnMinmaxARB = (PFN_GLGETNMINMAXARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnMinmaxARB;
    }
    if (strcmp("glGetnTexImageARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnTexImageARB);
        _glGetnTexImageARB = (PFN_GLGETNTEXIMAGEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnTexImageARB;
    }
    if (strcmp("glReadnPixelsARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadnPixelsARB);
        _glReadnPixelsARB = (PFN_GLREADNPIXELSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadnPixelsARB;
    }
    if (strcmp("glGetnCompressedTexImageARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnCompressedTexImageARB);
        _glGetnCompressedTexImageARB = (PFN_GLGETNCOMPRESSEDTEXIMAGEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnCompressedTexImageARB;
    }
    if (strcmp("glGetnUniformfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformfvARB);
        _glGetnUniformfvARB = (PFN_GLGETNUNIFORMFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformfvARB;
    }
    if (strcmp("glGetnUniformivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformivARB);
        _glGetnUniformivARB = (PFN_GLGETNUNIFORMIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformivARB;
    }
    if (strcmp("glGetnUniformuivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformuivARB);
        _glGetnUniformuivARB = (PFN_GLGETNUNIFORMUIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformuivARB;
    }
    if (strcmp("glGetnUniformdvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformdvARB);
        _glGetnUniformdvARB = (PFN_GLGETNUNIFORMDVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformdvARB;
    }
    if (strcmp("glFramebufferSampleLocationsfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferSampleLocationsfvARB);
        _glFramebufferSampleLocationsfvARB = (PFN_GLFRAMEBUFFERSAMPLELOCATIONSFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferSampleLocationsfvARB;
    }
    if (strcmp("glNamedFramebufferSampleLocationsfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferSampleLocationsfvARB);
        _glNamedFramebufferSampleLocationsfvARB = (PFN_GLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferSampleLocationsfvARB;
    }
    if (strcmp("glEvaluateDepthValuesARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvaluateDepthValuesARB);
        _glEvaluateDepthValuesARB = (PFN_GLEVALUATEDEPTHVALUESARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvaluateDepthValuesARB;
    }
    if (strcmp("glMinSampleShadingARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMinSampleShadingARB);
        _glMinSampleShadingARB = (PFN_GLMINSAMPLESHADINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMinSampleShadingARB;
    }
    if (strcmp("glGenSamplers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenSamplers);
        _glGenSamplers = (PFN_GLGENSAMPLERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenSamplers;
    }
    if (strcmp("glDeleteSamplers", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteSamplers);
        _glDeleteSamplers = (PFN_GLDELETESAMPLERS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteSamplers;
    }
    if (strcmp("glIsSampler", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsSampler);
        _glIsSampler = (PFN_GLISSAMPLER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsSampler;
    }
    if (strcmp("glBindSampler", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindSampler);
        _glBindSampler = (PFN_GLBINDSAMPLER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindSampler;
    }
    if (strcmp("glSamplerParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameteri);
        _glSamplerParameteri = (PFN_GLSAMPLERPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameteri;
    }
    if (strcmp("glSamplerParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameteriv);
        _glSamplerParameteriv = (PFN_GLSAMPLERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameteriv;
    }
    if (strcmp("glSamplerParameterf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameterf);
        _glSamplerParameterf = (PFN_GLSAMPLERPARAMETERF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameterf;
    }
    if (strcmp("glSamplerParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameterfv);
        _glSamplerParameterfv = (PFN_GLSAMPLERPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameterfv;
    }
    if (strcmp("glSamplerParameterIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIiv);
        _glSamplerParameterIiv = (PFN_GLSAMPLERPARAMETERIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIiv;
    }
    if (strcmp("glSamplerParameterIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIuiv);
        _glSamplerParameterIuiv = (PFN_GLSAMPLERPARAMETERIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIuiv;
    }
    if (strcmp("glGetSamplerParameteriv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameteriv);
        _glGetSamplerParameteriv = (PFN_GLGETSAMPLERPARAMETERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameteriv;
    }
    if (strcmp("glGetSamplerParameterIiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIiv);
        _glGetSamplerParameterIiv = (PFN_GLGETSAMPLERPARAMETERIIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIiv;
    }
    if (strcmp("glGetSamplerParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterfv);
        _glGetSamplerParameterfv = (PFN_GLGETSAMPLERPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterfv;
    }
    if (strcmp("glGetSamplerParameterIuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIuiv);
        _glGetSamplerParameterIuiv = (PFN_GLGETSAMPLERPARAMETERIUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIuiv;
    }
    if (strcmp("glUseProgramStages", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUseProgramStages);
        _glUseProgramStages = (PFN_GLUSEPROGRAMSTAGES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUseProgramStages;
    }
    if (strcmp("glActiveShaderProgram", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveShaderProgram);
        _glActiveShaderProgram = (PFN_GLACTIVESHADERPROGRAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveShaderProgram;
    }
    if (strcmp("glCreateShaderProgramv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateShaderProgramv);
        _glCreateShaderProgramv = (PFN_GLCREATESHADERPROGRAMV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateShaderProgramv;
    }
    if (strcmp("glBindProgramPipeline", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindProgramPipeline);
        _glBindProgramPipeline = (PFN_GLBINDPROGRAMPIPELINE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindProgramPipeline;
    }
    if (strcmp("glDeleteProgramPipelines", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteProgramPipelines);
        _glDeleteProgramPipelines = (PFN_GLDELETEPROGRAMPIPELINES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteProgramPipelines;
    }
    if (strcmp("glGenProgramPipelines", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenProgramPipelines);
        _glGenProgramPipelines = (PFN_GLGENPROGRAMPIPELINES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenProgramPipelines;
    }
    if (strcmp("glIsProgramPipeline", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsProgramPipeline);
        _glIsProgramPipeline = (PFN_GLISPROGRAMPIPELINE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsProgramPipeline;
    }
    if (strcmp("glGetProgramPipelineiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineiv);
        _glGetProgramPipelineiv = (PFN_GLGETPROGRAMPIPELINEIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineiv;
    }
    if (strcmp("glProgramUniform1i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i);
        _glProgramUniform1i = (PFN_GLPROGRAMUNIFORM1I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i;
    }
    if (strcmp("glProgramUniform1iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1iv);
        _glProgramUniform1iv = (PFN_GLPROGRAMUNIFORM1IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1iv;
    }
    if (strcmp("glProgramUniform1f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1f);
        _glProgramUniform1f = (PFN_GLPROGRAMUNIFORM1F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1f;
    }
    if (strcmp("glProgramUniform1fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1fv);
        _glProgramUniform1fv = (PFN_GLPROGRAMUNIFORM1FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1fv;
    }
    if (strcmp("glProgramUniform1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1d);
        _glProgramUniform1d = (PFN_GLPROGRAMUNIFORM1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1d;
    }
    if (strcmp("glProgramUniform1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1dv);
        _glProgramUniform1dv = (PFN_GLPROGRAMUNIFORM1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1dv;
    }
    if (strcmp("glProgramUniform1ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui);
        _glProgramUniform1ui = (PFN_GLPROGRAMUNIFORM1UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui;
    }
    if (strcmp("glProgramUniform1uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1uiv);
        _glProgramUniform1uiv = (PFN_GLPROGRAMUNIFORM1UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1uiv;
    }
    if (strcmp("glProgramUniform2i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i);
        _glProgramUniform2i = (PFN_GLPROGRAMUNIFORM2I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i;
    }
    if (strcmp("glProgramUniform2iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2iv);
        _glProgramUniform2iv = (PFN_GLPROGRAMUNIFORM2IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2iv;
    }
    if (strcmp("glProgramUniform2f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2f);
        _glProgramUniform2f = (PFN_GLPROGRAMUNIFORM2F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2f;
    }
    if (strcmp("glProgramUniform2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2fv);
        _glProgramUniform2fv = (PFN_GLPROGRAMUNIFORM2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2fv;
    }
    if (strcmp("glProgramUniform2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2d);
        _glProgramUniform2d = (PFN_GLPROGRAMUNIFORM2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2d;
    }
    if (strcmp("glProgramUniform2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2dv);
        _glProgramUniform2dv = (PFN_GLPROGRAMUNIFORM2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2dv;
    }
    if (strcmp("glProgramUniform2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui);
        _glProgramUniform2ui = (PFN_GLPROGRAMUNIFORM2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui;
    }
    if (strcmp("glProgramUniform2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2uiv);
        _glProgramUniform2uiv = (PFN_GLPROGRAMUNIFORM2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2uiv;
    }
    if (strcmp("glProgramUniform3i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i);
        _glProgramUniform3i = (PFN_GLPROGRAMUNIFORM3I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i;
    }
    if (strcmp("glProgramUniform3iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3iv);
        _glProgramUniform3iv = (PFN_GLPROGRAMUNIFORM3IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3iv;
    }
    if (strcmp("glProgramUniform3f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3f);
        _glProgramUniform3f = (PFN_GLPROGRAMUNIFORM3F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3f;
    }
    if (strcmp("glProgramUniform3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3fv);
        _glProgramUniform3fv = (PFN_GLPROGRAMUNIFORM3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3fv;
    }
    if (strcmp("glProgramUniform3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3d);
        _glProgramUniform3d = (PFN_GLPROGRAMUNIFORM3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3d;
    }
    if (strcmp("glProgramUniform3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3dv);
        _glProgramUniform3dv = (PFN_GLPROGRAMUNIFORM3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3dv;
    }
    if (strcmp("glProgramUniform3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui);
        _glProgramUniform3ui = (PFN_GLPROGRAMUNIFORM3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui;
    }
    if (strcmp("glProgramUniform3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3uiv);
        _glProgramUniform3uiv = (PFN_GLPROGRAMUNIFORM3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3uiv;
    }
    if (strcmp("glProgramUniform4i", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i);
        _glProgramUniform4i = (PFN_GLPROGRAMUNIFORM4I)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i;
    }
    if (strcmp("glProgramUniform4iv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4iv);
        _glProgramUniform4iv = (PFN_GLPROGRAMUNIFORM4IV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4iv;
    }
    if (strcmp("glProgramUniform4f", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4f);
        _glProgramUniform4f = (PFN_GLPROGRAMUNIFORM4F)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4f;
    }
    if (strcmp("glProgramUniform4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4fv);
        _glProgramUniform4fv = (PFN_GLPROGRAMUNIFORM4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4fv;
    }
    if (strcmp("glProgramUniform4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4d);
        _glProgramUniform4d = (PFN_GLPROGRAMUNIFORM4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4d;
    }
    if (strcmp("glProgramUniform4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4dv);
        _glProgramUniform4dv = (PFN_GLPROGRAMUNIFORM4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4dv;
    }
    if (strcmp("glProgramUniform4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui);
        _glProgramUniform4ui = (PFN_GLPROGRAMUNIFORM4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui;
    }
    if (strcmp("glProgramUniform4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4uiv);
        _glProgramUniform4uiv = (PFN_GLPROGRAMUNIFORM4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4uiv;
    }
    if (strcmp("glProgramUniformMatrix2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2fv);
        _glProgramUniformMatrix2fv = (PFN_GLPROGRAMUNIFORMMATRIX2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2fv;
    }
    if (strcmp("glProgramUniformMatrix3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3fv);
        _glProgramUniformMatrix3fv = (PFN_GLPROGRAMUNIFORMMATRIX3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3fv;
    }
    if (strcmp("glProgramUniformMatrix4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4fv);
        _glProgramUniformMatrix4fv = (PFN_GLPROGRAMUNIFORMMATRIX4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4fv;
    }
    if (strcmp("glProgramUniformMatrix2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2dv);
        _glProgramUniformMatrix2dv = (PFN_GLPROGRAMUNIFORMMATRIX2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2dv;
    }
    if (strcmp("glProgramUniformMatrix3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3dv);
        _glProgramUniformMatrix3dv = (PFN_GLPROGRAMUNIFORMMATRIX3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3dv;
    }
    if (strcmp("glProgramUniformMatrix4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4dv);
        _glProgramUniformMatrix4dv = (PFN_GLPROGRAMUNIFORMMATRIX4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4dv;
    }
    if (strcmp("glProgramUniformMatrix2x3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3fv);
        _glProgramUniformMatrix2x3fv = (PFN_GLPROGRAMUNIFORMMATRIX2X3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3fv;
    }
    if (strcmp("glProgramUniformMatrix3x2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2fv);
        _glProgramUniformMatrix3x2fv = (PFN_GLPROGRAMUNIFORMMATRIX3X2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2fv;
    }
    if (strcmp("glProgramUniformMatrix2x4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4fv);
        _glProgramUniformMatrix2x4fv = (PFN_GLPROGRAMUNIFORMMATRIX2X4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4fv;
    }
    if (strcmp("glProgramUniformMatrix4x2fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2fv);
        _glProgramUniformMatrix4x2fv = (PFN_GLPROGRAMUNIFORMMATRIX4X2FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2fv;
    }
    if (strcmp("glProgramUniformMatrix3x4fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4fv);
        _glProgramUniformMatrix3x4fv = (PFN_GLPROGRAMUNIFORMMATRIX3X4FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4fv;
    }
    if (strcmp("glProgramUniformMatrix4x3fv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3fv);
        _glProgramUniformMatrix4x3fv = (PFN_GLPROGRAMUNIFORMMATRIX4X3FV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3fv;
    }
    if (strcmp("glProgramUniformMatrix2x3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3dv);
        _glProgramUniformMatrix2x3dv = (PFN_GLPROGRAMUNIFORMMATRIX2X3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3dv;
    }
    if (strcmp("glProgramUniformMatrix3x2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2dv);
        _glProgramUniformMatrix3x2dv = (PFN_GLPROGRAMUNIFORMMATRIX3X2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2dv;
    }
    if (strcmp("glProgramUniformMatrix2x4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4dv);
        _glProgramUniformMatrix2x4dv = (PFN_GLPROGRAMUNIFORMMATRIX2X4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4dv;
    }
    if (strcmp("glProgramUniformMatrix4x2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2dv);
        _glProgramUniformMatrix4x2dv = (PFN_GLPROGRAMUNIFORMMATRIX4X2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2dv;
    }
    if (strcmp("glProgramUniformMatrix3x4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4dv);
        _glProgramUniformMatrix3x4dv = (PFN_GLPROGRAMUNIFORMMATRIX3X4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4dv;
    }
    if (strcmp("glProgramUniformMatrix4x3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3dv);
        _glProgramUniformMatrix4x3dv = (PFN_GLPROGRAMUNIFORMMATRIX4X3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3dv;
    }
    if (strcmp("glValidateProgramPipeline", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glValidateProgramPipeline);
        _glValidateProgramPipeline = (PFN_GLVALIDATEPROGRAMPIPELINE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glValidateProgramPipeline;
    }
    if (strcmp("glGetProgramPipelineInfoLog", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineInfoLog);
        _glGetProgramPipelineInfoLog = (PFN_GLGETPROGRAMPIPELINEINFOLOG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineInfoLog;
    }
    if (strcmp("glGetActiveAtomicCounterBufferiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveAtomicCounterBufferiv);
        _glGetActiveAtomicCounterBufferiv = (PFN_GLGETACTIVEATOMICCOUNTERBUFFERIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveAtomicCounterBufferiv;
    }
    if (strcmp("glBindImageTexture", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindImageTexture);
        _glBindImageTexture = (PFN_GLBINDIMAGETEXTURE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindImageTexture;
    }
    if (strcmp("glMemoryBarrier", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMemoryBarrier);
        _glMemoryBarrier = (PFN_GLMEMORYBARRIER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMemoryBarrier;
    }
    if (strcmp("glDeleteObjectARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteObjectARB);
        _glDeleteObjectARB = (PFN_GLDELETEOBJECTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteObjectARB;
    }
    if (strcmp("glGetHandleARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHandleARB);
        _glGetHandleARB = (PFN_GLGETHANDLEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHandleARB;
    }
    if (strcmp("glDetachObjectARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDetachObjectARB);
        _glDetachObjectARB = (PFN_GLDETACHOBJECTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDetachObjectARB;
    }
    if (strcmp("glCreateShaderObjectARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateShaderObjectARB);
        _glCreateShaderObjectARB = (PFN_GLCREATESHADEROBJECTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateShaderObjectARB;
    }
    if (strcmp("glShaderSourceARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderSourceARB);
        _glShaderSourceARB = (PFN_GLSHADERSOURCEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderSourceARB;
    }
    if (strcmp("glCompileShaderARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompileShaderARB);
        _glCompileShaderARB = (PFN_GLCOMPILESHADERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompileShaderARB;
    }
    if (strcmp("glCreateProgramObjectARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateProgramObjectARB);
        _glCreateProgramObjectARB = (PFN_GLCREATEPROGRAMOBJECTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateProgramObjectARB;
    }
    if (strcmp("glAttachObjectARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAttachObjectARB);
        _glAttachObjectARB = (PFN_GLATTACHOBJECTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAttachObjectARB;
    }
    if (strcmp("glLinkProgramARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLinkProgramARB);
        _glLinkProgramARB = (PFN_GLLINKPROGRAMARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLinkProgramARB;
    }
    if (strcmp("glUseProgramObjectARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUseProgramObjectARB);
        _glUseProgramObjectARB = (PFN_GLUSEPROGRAMOBJECTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUseProgramObjectARB;
    }
    if (strcmp("glValidateProgramARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glValidateProgramARB);
        _glValidateProgramARB = (PFN_GLVALIDATEPROGRAMARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glValidateProgramARB;
    }
    if (strcmp("glUniform1fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1fARB);
        _glUniform1fARB = (PFN_GLUNIFORM1FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1fARB;
    }
    if (strcmp("glUniform2fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2fARB);
        _glUniform2fARB = (PFN_GLUNIFORM2FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2fARB;
    }
    if (strcmp("glUniform3fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3fARB);
        _glUniform3fARB = (PFN_GLUNIFORM3FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3fARB;
    }
    if (strcmp("glUniform4fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4fARB);
        _glUniform4fARB = (PFN_GLUNIFORM4FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4fARB;
    }
    if (strcmp("glUniform1iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1iARB);
        _glUniform1iARB = (PFN_GLUNIFORM1IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1iARB;
    }
    if (strcmp("glUniform2iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2iARB);
        _glUniform2iARB = (PFN_GLUNIFORM2IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2iARB;
    }
    if (strcmp("glUniform3iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3iARB);
        _glUniform3iARB = (PFN_GLUNIFORM3IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3iARB;
    }
    if (strcmp("glUniform4iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4iARB);
        _glUniform4iARB = (PFN_GLUNIFORM4IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4iARB;
    }
    if (strcmp("glUniform1fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1fvARB);
        _glUniform1fvARB = (PFN_GLUNIFORM1FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1fvARB;
    }
    if (strcmp("glUniform2fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2fvARB);
        _glUniform2fvARB = (PFN_GLUNIFORM2FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2fvARB;
    }
    if (strcmp("glUniform3fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3fvARB);
        _glUniform3fvARB = (PFN_GLUNIFORM3FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3fvARB;
    }
    if (strcmp("glUniform4fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4fvARB);
        _glUniform4fvARB = (PFN_GLUNIFORM4FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4fvARB;
    }
    if (strcmp("glUniform1ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1ivARB);
        _glUniform1ivARB = (PFN_GLUNIFORM1IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1ivARB;
    }
    if (strcmp("glUniform2ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2ivARB);
        _glUniform2ivARB = (PFN_GLUNIFORM2IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2ivARB;
    }
    if (strcmp("glUniform3ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3ivARB);
        _glUniform3ivARB = (PFN_GLUNIFORM3IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3ivARB;
    }
    if (strcmp("glUniform4ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4ivARB);
        _glUniform4ivARB = (PFN_GLUNIFORM4IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4ivARB;
    }
    if (strcmp("glUniformMatrix2fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2fvARB);
        _glUniformMatrix2fvARB = (PFN_GLUNIFORMMATRIX2FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix2fvARB;
    }
    if (strcmp("glUniformMatrix3fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3fvARB);
        _glUniformMatrix3fvARB = (PFN_GLUNIFORMMATRIX3FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix3fvARB;
    }
    if (strcmp("glUniformMatrix4fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4fvARB);
        _glUniformMatrix4fvARB = (PFN_GLUNIFORMMATRIX4FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformMatrix4fvARB;
    }
    if (strcmp("glGetObjectParameterfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectParameterfvARB);
        _glGetObjectParameterfvARB = (PFN_GLGETOBJECTPARAMETERFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectParameterfvARB;
    }
    if (strcmp("glGetObjectParameterivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectParameterivARB);
        _glGetObjectParameterivARB = (PFN_GLGETOBJECTPARAMETERIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectParameterivARB;
    }
    if (strcmp("glGetInfoLogARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInfoLogARB);
        _glGetInfoLogARB = (PFN_GLGETINFOLOGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInfoLogARB;
    }
    if (strcmp("glGetAttachedObjectsARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetAttachedObjectsARB);
        _glGetAttachedObjectsARB = (PFN_GLGETATTACHEDOBJECTSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetAttachedObjectsARB;
    }
    if (strcmp("glGetUniformLocationARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformLocationARB);
        _glGetUniformLocationARB = (PFN_GLGETUNIFORMLOCATIONARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformLocationARB;
    }
    if (strcmp("glGetActiveUniformARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformARB);
        _glGetActiveUniformARB = (PFN_GLGETACTIVEUNIFORMARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformARB;
    }
    if (strcmp("glGetUniformfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformfvARB);
        _glGetUniformfvARB = (PFN_GLGETUNIFORMFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformfvARB;
    }
    if (strcmp("glGetUniformivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformivARB);
        _glGetUniformivARB = (PFN_GLGETUNIFORMIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformivARB;
    }
    if (strcmp("glGetShaderSourceARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetShaderSourceARB);
        _glGetShaderSourceARB = (PFN_GLGETSHADERSOURCEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetShaderSourceARB;
    }
    if (strcmp("glShaderStorageBlockBinding", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderStorageBlockBinding);
        _glShaderStorageBlockBinding = (PFN_GLSHADERSTORAGEBLOCKBINDING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderStorageBlockBinding;
    }
    if (strcmp("glGetSubroutineUniformLocation", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSubroutineUniformLocation);
        _glGetSubroutineUniformLocation = (PFN_GLGETSUBROUTINEUNIFORMLOCATION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSubroutineUniformLocation;
    }
    if (strcmp("glGetSubroutineIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSubroutineIndex);
        _glGetSubroutineIndex = (PFN_GLGETSUBROUTINEINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSubroutineIndex;
    }
    if (strcmp("glGetActiveSubroutineUniformiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveSubroutineUniformiv);
        _glGetActiveSubroutineUniformiv = (PFN_GLGETACTIVESUBROUTINEUNIFORMIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveSubroutineUniformiv;
    }
    if (strcmp("glGetActiveSubroutineUniformName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveSubroutineUniformName);
        _glGetActiveSubroutineUniformName = (PFN_GLGETACTIVESUBROUTINEUNIFORMNAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveSubroutineUniformName;
    }
    if (strcmp("glGetActiveSubroutineName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveSubroutineName);
        _glGetActiveSubroutineName = (PFN_GLGETACTIVESUBROUTINENAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveSubroutineName;
    }
    if (strcmp("glUniformSubroutinesuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformSubroutinesuiv);
        _glUniformSubroutinesuiv = (PFN_GLUNIFORMSUBROUTINESUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformSubroutinesuiv;
    }
    if (strcmp("glGetUniformSubroutineuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformSubroutineuiv);
        _glGetUniformSubroutineuiv = (PFN_GLGETUNIFORMSUBROUTINEUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformSubroutineuiv;
    }
    if (strcmp("glGetProgramStageiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramStageiv);
        _glGetProgramStageiv = (PFN_GLGETPROGRAMSTAGEIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramStageiv;
    }
    if (strcmp("glNamedStringARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedStringARB);
        _glNamedStringARB = (PFN_GLNAMEDSTRINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedStringARB;
    }
    if (strcmp("glDeleteNamedStringARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteNamedStringARB);
        _glDeleteNamedStringARB = (PFN_GLDELETENAMEDSTRINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteNamedStringARB;
    }
    if (strcmp("glCompileShaderIncludeARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompileShaderIncludeARB);
        _glCompileShaderIncludeARB = (PFN_GLCOMPILESHADERINCLUDEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompileShaderIncludeARB;
    }
    if (strcmp("glIsNamedStringARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsNamedStringARB);
        _glIsNamedStringARB = (PFN_GLISNAMEDSTRINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsNamedStringARB;
    }
    if (strcmp("glGetNamedStringARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedStringARB);
        _glGetNamedStringARB = (PFN_GLGETNAMEDSTRINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedStringARB;
    }
    if (strcmp("glGetNamedStringivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedStringivARB);
        _glGetNamedStringivARB = (PFN_GLGETNAMEDSTRINGIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedStringivARB;
    }
    if (strcmp("glBufferPageCommitmentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferPageCommitmentARB);
        _glBufferPageCommitmentARB = (PFN_GLBUFFERPAGECOMMITMENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferPageCommitmentARB;
    }
    if (strcmp("glNamedBufferPageCommitmentEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferPageCommitmentEXT);
        _glNamedBufferPageCommitmentEXT = (PFN_GLNAMEDBUFFERPAGECOMMITMENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferPageCommitmentEXT;
    }
    if (strcmp("glNamedBufferPageCommitmentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferPageCommitmentARB);
        _glNamedBufferPageCommitmentARB = (PFN_GLNAMEDBUFFERPAGECOMMITMENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferPageCommitmentARB;
    }
    if (strcmp("glTexPageCommitmentARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexPageCommitmentARB);
        _glTexPageCommitmentARB = (PFN_GLTEXPAGECOMMITMENTARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexPageCommitmentARB;
    }
    if (strcmp("glFenceSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFenceSync);
        _glFenceSync = (PFN_GLFENCESYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFenceSync;
    }
    if (strcmp("glIsSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsSync);
        _glIsSync = (PFN_GLISSYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsSync;
    }
    if (strcmp("glDeleteSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteSync);
        _glDeleteSync = (PFN_GLDELETESYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteSync;
    }
    if (strcmp("glClientWaitSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClientWaitSync);
        _glClientWaitSync = (PFN_GLCLIENTWAITSYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClientWaitSync;
    }
    if (strcmp("glWaitSync", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWaitSync);
        _glWaitSync = (PFN_GLWAITSYNC)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWaitSync;
    }
    if (strcmp("glGetInteger64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInteger64v);
        _glGetInteger64v = (PFN_GLGETINTEGER64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInteger64v;
    }
    if (strcmp("glGetSynciv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSynciv);
        _glGetSynciv = (PFN_GLGETSYNCIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSynciv;
    }
    if (strcmp("glPatchParameteri", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPatchParameteri);
        _glPatchParameteri = (PFN_GLPATCHPARAMETERI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPatchParameteri;
    }
    if (strcmp("glPatchParameterfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPatchParameterfv);
        _glPatchParameterfv = (PFN_GLPATCHPARAMETERFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPatchParameterfv;
    }
    if (strcmp("glTextureBarrier", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureBarrier);
        _glTextureBarrier = (PFN_GLTEXTUREBARRIER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureBarrier;
    }
    if (strcmp("glTexBufferARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBufferARB);
        _glTexBufferARB = (PFN_GLTEXBUFFERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBufferARB;
    }
    if (strcmp("glTexBufferRange", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBufferRange);
        _glTexBufferRange = (PFN_GLTEXBUFFERRANGE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBufferRange;
    }
    if (strcmp("glCompressedTexImage3DARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage3DARB);
        _glCompressedTexImage3DARB = (PFN_GLCOMPRESSEDTEXIMAGE3DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage3DARB;
    }
    if (strcmp("glCompressedTexImage2DARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage2DARB);
        _glCompressedTexImage2DARB = (PFN_GLCOMPRESSEDTEXIMAGE2DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage2DARB;
    }
    if (strcmp("glCompressedTexImage1DARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage1DARB);
        _glCompressedTexImage1DARB = (PFN_GLCOMPRESSEDTEXIMAGE1DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage1DARB;
    }
    if (strcmp("glCompressedTexSubImage3DARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage3DARB);
        _glCompressedTexSubImage3DARB = (PFN_GLCOMPRESSEDTEXSUBIMAGE3DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage3DARB;
    }
    if (strcmp("glCompressedTexSubImage2DARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage2DARB);
        _glCompressedTexSubImage2DARB = (PFN_GLCOMPRESSEDTEXSUBIMAGE2DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage2DARB;
    }
    if (strcmp("glCompressedTexSubImage1DARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage1DARB);
        _glCompressedTexSubImage1DARB = (PFN_GLCOMPRESSEDTEXSUBIMAGE1DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage1DARB;
    }
    if (strcmp("glGetCompressedTexImageARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCompressedTexImageARB);
        _glGetCompressedTexImageARB = (PFN_GLGETCOMPRESSEDTEXIMAGEARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCompressedTexImageARB;
    }
    if (strcmp("glTexImage2DMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage2DMultisample);
        _glTexImage2DMultisample = (PFN_GLTEXIMAGE2DMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage2DMultisample;
    }
    if (strcmp("glTexImage3DMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage3DMultisample);
        _glTexImage3DMultisample = (PFN_GLTEXIMAGE3DMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage3DMultisample;
    }
    if (strcmp("glGetMultisamplefv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultisamplefv);
        _glGetMultisamplefv = (PFN_GLGETMULTISAMPLEFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultisamplefv;
    }
    if (strcmp("glSampleMaski", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleMaski);
        _glSampleMaski = (PFN_GLSAMPLEMASKI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleMaski;
    }
    if (strcmp("glTexStorage1D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage1D);
        _glTexStorage1D = (PFN_GLTEXSTORAGE1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage1D;
    }
    if (strcmp("glTexStorage2D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage2D);
        _glTexStorage2D = (PFN_GLTEXSTORAGE2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage2D;
    }
    if (strcmp("glTexStorage3D", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage3D);
        _glTexStorage3D = (PFN_GLTEXSTORAGE3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage3D;
    }
    if (strcmp("glTexStorageAttribs2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorageAttribs2DEXT);
        _glTexStorageAttribs2DEXT = (PFN_GLTEXSTORAGEATTRIBS2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorageAttribs2DEXT;
    }
    if (strcmp("glTexStorageAttribs3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorageAttribs3DEXT);
        _glTexStorageAttribs3DEXT = (PFN_GLTEXSTORAGEATTRIBS3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorageAttribs3DEXT;
    }
    if (strcmp("glTexStorage2DMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage2DMultisample);
        _glTexStorage2DMultisample = (PFN_GLTEXSTORAGE2DMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage2DMultisample;
    }
    if (strcmp("glTexStorage3DMultisample", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage3DMultisample);
        _glTexStorage3DMultisample = (PFN_GLTEXSTORAGE3DMULTISAMPLE)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage3DMultisample;
    }
    if (strcmp("glEGLImageTargetTexStorageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetTexStorageEXT);
        _glEGLImageTargetTexStorageEXT = (PFN_GLEGLIMAGETARGETTEXSTORAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetTexStorageEXT;
    }
    if (strcmp("glEGLImageTargetTextureStorageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetTextureStorageEXT);
        _glEGLImageTargetTextureStorageEXT = (PFN_GLEGLIMAGETARGETTEXTURESTORAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEGLImageTargetTextureStorageEXT;
    }
    if (strcmp("glTextureView", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureView);
        _glTextureView = (PFN_GLTEXTUREVIEW)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureView;
    }
    if (strcmp("glQueryCounter", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glQueryCounter);
        _glQueryCounter = (PFN_GLQUERYCOUNTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glQueryCounter;
    }
    if (strcmp("glGetQueryObjecti64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjecti64v);
        _glGetQueryObjecti64v = (PFN_GLGETQUERYOBJECTI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjecti64v;
    }
    if (strcmp("glGetQueryObjectui64v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectui64v);
        _glGetQueryObjectui64v = (PFN_GLGETQUERYOBJECTUI64V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectui64v;
    }
    if (strcmp("glBindTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTransformFeedback);
        _glBindTransformFeedback = (PFN_GLBINDTRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTransformFeedback;
    }
    if (strcmp("glDeleteTransformFeedbacks", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteTransformFeedbacks);
        _glDeleteTransformFeedbacks = (PFN_GLDELETETRANSFORMFEEDBACKS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteTransformFeedbacks;
    }
    if (strcmp("glGenTransformFeedbacks", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenTransformFeedbacks);
        _glGenTransformFeedbacks = (PFN_GLGENTRANSFORMFEEDBACKS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenTransformFeedbacks;
    }
    if (strcmp("glIsTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsTransformFeedback);
        _glIsTransformFeedback = (PFN_GLISTRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsTransformFeedback;
    }
    if (strcmp("glPauseTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPauseTransformFeedback);
        _glPauseTransformFeedback = (PFN_GLPAUSETRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPauseTransformFeedback;
    }
    if (strcmp("glResumeTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResumeTransformFeedback);
        _glResumeTransformFeedback = (PFN_GLRESUMETRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResumeTransformFeedback;
    }
    if (strcmp("glDrawTransformFeedback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedback);
        _glDrawTransformFeedback = (PFN_GLDRAWTRANSFORMFEEDBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedback;
    }
    if (strcmp("glDrawTransformFeedbackStream", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackStream);
        _glDrawTransformFeedbackStream = (PFN_GLDRAWTRANSFORMFEEDBACKSTREAM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackStream;
    }
    if (strcmp("glBeginQueryIndexed", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginQueryIndexed);
        _glBeginQueryIndexed = (PFN_GLBEGINQUERYINDEXED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginQueryIndexed;
    }
    if (strcmp("glEndQueryIndexed", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndQueryIndexed);
        _glEndQueryIndexed = (PFN_GLENDQUERYINDEXED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndQueryIndexed;
    }
    if (strcmp("glGetQueryIndexediv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryIndexediv);
        _glGetQueryIndexediv = (PFN_GLGETQUERYINDEXEDIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryIndexediv;
    }
    if (strcmp("glDrawTransformFeedbackInstanced", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackInstanced);
        _glDrawTransformFeedbackInstanced = (PFN_GLDRAWTRANSFORMFEEDBACKINSTANCED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackInstanced;
    }
    if (strcmp("glDrawTransformFeedbackStreamInstanced", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackStreamInstanced);
        _glDrawTransformFeedbackStreamInstanced = (PFN_GLDRAWTRANSFORMFEEDBACKSTREAMINSTANCED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackStreamInstanced;
    }
    if (strcmp("glLoadTransposeMatrixfARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixfARB);
        _glLoadTransposeMatrixfARB = (PFN_GLLOADTRANSPOSEMATRIXFARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixfARB;
    }
    if (strcmp("glLoadTransposeMatrixdARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixdARB);
        _glLoadTransposeMatrixdARB = (PFN_GLLOADTRANSPOSEMATRIXDARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadTransposeMatrixdARB;
    }
    if (strcmp("glMultTransposeMatrixfARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixfARB);
        _glMultTransposeMatrixfARB = (PFN_GLMULTTRANSPOSEMATRIXFARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixfARB;
    }
    if (strcmp("glMultTransposeMatrixdARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixdARB);
        _glMultTransposeMatrixdARB = (PFN_GLMULTTRANSPOSEMATRIXDARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultTransposeMatrixdARB;
    }
    if (strcmp("glGetUniformIndices", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformIndices);
        _glGetUniformIndices = (PFN_GLGETUNIFORMINDICES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformIndices;
    }
    if (strcmp("glGetActiveUniformsiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformsiv);
        _glGetActiveUniformsiv = (PFN_GLGETACTIVEUNIFORMSIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformsiv;
    }
    if (strcmp("glGetActiveUniformName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformName);
        _glGetActiveUniformName = (PFN_GLGETACTIVEUNIFORMNAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformName;
    }
    if (strcmp("glGetUniformBlockIndex", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformBlockIndex);
        _glGetUniformBlockIndex = (PFN_GLGETUNIFORMBLOCKINDEX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformBlockIndex;
    }
    if (strcmp("glGetActiveUniformBlockiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformBlockiv);
        _glGetActiveUniformBlockiv = (PFN_GLGETACTIVEUNIFORMBLOCKIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformBlockiv;
    }
    if (strcmp("glGetActiveUniformBlockName", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformBlockName);
        _glGetActiveUniformBlockName = (PFN_GLGETACTIVEUNIFORMBLOCKNAME)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveUniformBlockName;
    }
    if (strcmp("glUniformBlockBinding", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformBlockBinding);
        _glUniformBlockBinding = (PFN_GLUNIFORMBLOCKBINDING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformBlockBinding;
    }
    if (strcmp("glBindVertexArray", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVertexArray);
        _glBindVertexArray = (PFN_GLBINDVERTEXARRAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVertexArray;
    }
    if (strcmp("glDeleteVertexArrays", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteVertexArrays);
        _glDeleteVertexArrays = (PFN_GLDELETEVERTEXARRAYS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteVertexArrays;
    }
    if (strcmp("glGenVertexArrays", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenVertexArrays);
        _glGenVertexArrays = (PFN_GLGENVERTEXARRAYS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenVertexArrays;
    }
    if (strcmp("glIsVertexArray", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsVertexArray);
        _glIsVertexArray = (PFN_GLISVERTEXARRAY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsVertexArray;
    }
    if (strcmp("glVertexAttribL1d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1d);
        _glVertexAttribL1d = (PFN_GLVERTEXATTRIBL1D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1d;
    }
    if (strcmp("glVertexAttribL2d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2d);
        _glVertexAttribL2d = (PFN_GLVERTEXATTRIBL2D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2d;
    }
    if (strcmp("glVertexAttribL3d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3d);
        _glVertexAttribL3d = (PFN_GLVERTEXATTRIBL3D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3d;
    }
    if (strcmp("glVertexAttribL4d", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4d);
        _glVertexAttribL4d = (PFN_GLVERTEXATTRIBL4D)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4d;
    }
    if (strcmp("glVertexAttribL1dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1dv);
        _glVertexAttribL1dv = (PFN_GLVERTEXATTRIBL1DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1dv;
    }
    if (strcmp("glVertexAttribL2dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2dv);
        _glVertexAttribL2dv = (PFN_GLVERTEXATTRIBL2DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2dv;
    }
    if (strcmp("glVertexAttribL3dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3dv);
        _glVertexAttribL3dv = (PFN_GLVERTEXATTRIBL3DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3dv;
    }
    if (strcmp("glVertexAttribL4dv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4dv);
        _glVertexAttribL4dv = (PFN_GLVERTEXATTRIBL4DV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4dv;
    }
    if (strcmp("glVertexAttribLPointer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribLPointer);
        _glVertexAttribLPointer = (PFN_GLVERTEXATTRIBLPOINTER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribLPointer;
    }
    if (strcmp("glGetVertexAttribLdv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLdv);
        _glGetVertexAttribLdv = (PFN_GLGETVERTEXATTRIBLDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLdv;
    }
    if (strcmp("glBindVertexBuffer", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVertexBuffer);
        _glBindVertexBuffer = (PFN_GLBINDVERTEXBUFFER)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVertexBuffer;
    }
    if (strcmp("glVertexAttribFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribFormat);
        _glVertexAttribFormat = (PFN_GLVERTEXATTRIBFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribFormat;
    }
    if (strcmp("glVertexAttribIFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribIFormat);
        _glVertexAttribIFormat = (PFN_GLVERTEXATTRIBIFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribIFormat;
    }
    if (strcmp("glVertexAttribLFormat", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribLFormat);
        _glVertexAttribLFormat = (PFN_GLVERTEXATTRIBLFORMAT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribLFormat;
    }
    if (strcmp("glVertexAttribBinding", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribBinding);
        _glVertexAttribBinding = (PFN_GLVERTEXATTRIBBINDING)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribBinding;
    }
    if (strcmp("glVertexBindingDivisor", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexBindingDivisor);
        _glVertexBindingDivisor = (PFN_GLVERTEXBINDINGDIVISOR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexBindingDivisor;
    }
    if (strcmp("glWeightbvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightbvARB);
        _glWeightbvARB = (PFN_GLWEIGHTBVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightbvARB;
    }
    if (strcmp("glWeightsvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightsvARB);
        _glWeightsvARB = (PFN_GLWEIGHTSVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightsvARB;
    }
    if (strcmp("glWeightivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightivARB);
        _glWeightivARB = (PFN_GLWEIGHTIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightivARB;
    }
    if (strcmp("glWeightfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightfvARB);
        _glWeightfvARB = (PFN_GLWEIGHTFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightfvARB;
    }
    if (strcmp("glWeightdvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightdvARB);
        _glWeightdvARB = (PFN_GLWEIGHTDVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightdvARB;
    }
    if (strcmp("glWeightubvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightubvARB);
        _glWeightubvARB = (PFN_GLWEIGHTUBVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightubvARB;
    }
    if (strcmp("glWeightusvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightusvARB);
        _glWeightusvARB = (PFN_GLWEIGHTUSVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightusvARB;
    }
    if (strcmp("glWeightuivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightuivARB);
        _glWeightuivARB = (PFN_GLWEIGHTUIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightuivARB;
    }
    if (strcmp("glWeightPointerARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightPointerARB);
        _glWeightPointerARB = (PFN_GLWEIGHTPOINTERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightPointerARB;
    }
    if (strcmp("glVertexBlendARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexBlendARB);
        _glVertexBlendARB = (PFN_GLVERTEXBLENDARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexBlendARB;
    }
    if (strcmp("glBindBufferARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferARB);
        _glBindBufferARB = (PFN_GLBINDBUFFERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferARB;
    }
    if (strcmp("glDeleteBuffersARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteBuffersARB);
        _glDeleteBuffersARB = (PFN_GLDELETEBUFFERSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteBuffersARB;
    }
    if (strcmp("glGenBuffersARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenBuffersARB);
        _glGenBuffersARB = (PFN_GLGENBUFFERSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenBuffersARB;
    }
    if (strcmp("glIsBufferARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsBufferARB);
        _glIsBufferARB = (PFN_GLISBUFFERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsBufferARB;
    }
    if (strcmp("glBufferDataARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferDataARB);
        _glBufferDataARB = (PFN_GLBUFFERDATAARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferDataARB;
    }
    if (strcmp("glBufferSubDataARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferSubDataARB);
        _glBufferSubDataARB = (PFN_GLBUFFERSUBDATAARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferSubDataARB;
    }
    if (strcmp("glGetBufferSubDataARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferSubDataARB);
        _glGetBufferSubDataARB = (PFN_GLGETBUFFERSUBDATAARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferSubDataARB;
    }
    if (strcmp("glMapBufferARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapBufferARB);
        _glMapBufferARB = (PFN_GLMAPBUFFERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapBufferARB;
    }
    if (strcmp("glUnmapBufferARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapBufferARB);
        _glUnmapBufferARB = (PFN_GLUNMAPBUFFERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapBufferARB;
    }
    if (strcmp("glGetBufferParameterivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferParameterivARB);
        _glGetBufferParameterivARB = (PFN_GLGETBUFFERPARAMETERIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferParameterivARB;
    }
    if (strcmp("glGetBufferPointervARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferPointervARB);
        _glGetBufferPointervARB = (PFN_GLGETBUFFERPOINTERVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferPointervARB;
    }
    if (strcmp("glVertexAttrib1dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dARB);
        _glVertexAttrib1dARB = (PFN_GLVERTEXATTRIB1DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dARB;
    }
    if (strcmp("glVertexAttrib1dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dvARB);
        _glVertexAttrib1dvARB = (PFN_GLVERTEXATTRIB1DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dvARB;
    }
    if (strcmp("glVertexAttrib1fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fARB);
        _glVertexAttrib1fARB = (PFN_GLVERTEXATTRIB1FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fARB;
    }
    if (strcmp("glVertexAttrib1fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fvARB);
        _glVertexAttrib1fvARB = (PFN_GLVERTEXATTRIB1FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fvARB;
    }
    if (strcmp("glVertexAttrib1sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1sARB);
        _glVertexAttrib1sARB = (PFN_GLVERTEXATTRIB1SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1sARB;
    }
    if (strcmp("glVertexAttrib1svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1svARB);
        _glVertexAttrib1svARB = (PFN_GLVERTEXATTRIB1SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1svARB;
    }
    if (strcmp("glVertexAttrib2dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dARB);
        _glVertexAttrib2dARB = (PFN_GLVERTEXATTRIB2DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dARB;
    }
    if (strcmp("glVertexAttrib2dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dvARB);
        _glVertexAttrib2dvARB = (PFN_GLVERTEXATTRIB2DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dvARB;
    }
    if (strcmp("glVertexAttrib2fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fARB);
        _glVertexAttrib2fARB = (PFN_GLVERTEXATTRIB2FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fARB;
    }
    if (strcmp("glVertexAttrib2fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fvARB);
        _glVertexAttrib2fvARB = (PFN_GLVERTEXATTRIB2FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fvARB;
    }
    if (strcmp("glVertexAttrib2sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2sARB);
        _glVertexAttrib2sARB = (PFN_GLVERTEXATTRIB2SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2sARB;
    }
    if (strcmp("glVertexAttrib2svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2svARB);
        _glVertexAttrib2svARB = (PFN_GLVERTEXATTRIB2SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2svARB;
    }
    if (strcmp("glVertexAttrib3dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dARB);
        _glVertexAttrib3dARB = (PFN_GLVERTEXATTRIB3DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dARB;
    }
    if (strcmp("glVertexAttrib3dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dvARB);
        _glVertexAttrib3dvARB = (PFN_GLVERTEXATTRIB3DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dvARB;
    }
    if (strcmp("glVertexAttrib3fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fARB);
        _glVertexAttrib3fARB = (PFN_GLVERTEXATTRIB3FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fARB;
    }
    if (strcmp("glVertexAttrib3fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fvARB);
        _glVertexAttrib3fvARB = (PFN_GLVERTEXATTRIB3FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fvARB;
    }
    if (strcmp("glVertexAttrib3sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3sARB);
        _glVertexAttrib3sARB = (PFN_GLVERTEXATTRIB3SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3sARB;
    }
    if (strcmp("glVertexAttrib3svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3svARB);
        _glVertexAttrib3svARB = (PFN_GLVERTEXATTRIB3SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3svARB;
    }
    if (strcmp("glVertexAttrib4NbvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NbvARB);
        _glVertexAttrib4NbvARB = (PFN_GLVERTEXATTRIB4NBVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NbvARB;
    }
    if (strcmp("glVertexAttrib4NivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NivARB);
        _glVertexAttrib4NivARB = (PFN_GLVERTEXATTRIB4NIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NivARB;
    }
    if (strcmp("glVertexAttrib4NsvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NsvARB);
        _glVertexAttrib4NsvARB = (PFN_GLVERTEXATTRIB4NSVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NsvARB;
    }
    if (strcmp("glVertexAttrib4NubARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NubARB);
        _glVertexAttrib4NubARB = (PFN_GLVERTEXATTRIB4NUBARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NubARB;
    }
    if (strcmp("glVertexAttrib4NubvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NubvARB);
        _glVertexAttrib4NubvARB = (PFN_GLVERTEXATTRIB4NUBVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NubvARB;
    }
    if (strcmp("glVertexAttrib4NuivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NuivARB);
        _glVertexAttrib4NuivARB = (PFN_GLVERTEXATTRIB4NUIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NuivARB;
    }
    if (strcmp("glVertexAttrib4NusvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NusvARB);
        _glVertexAttrib4NusvARB = (PFN_GLVERTEXATTRIB4NUSVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4NusvARB;
    }
    if (strcmp("glVertexAttrib4bvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4bvARB);
        _glVertexAttrib4bvARB = (PFN_GLVERTEXATTRIB4BVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4bvARB;
    }
    if (strcmp("glVertexAttrib4dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dARB);
        _glVertexAttrib4dARB = (PFN_GLVERTEXATTRIB4DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dARB;
    }
    if (strcmp("glVertexAttrib4dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dvARB);
        _glVertexAttrib4dvARB = (PFN_GLVERTEXATTRIB4DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dvARB;
    }
    if (strcmp("glVertexAttrib4fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fARB);
        _glVertexAttrib4fARB = (PFN_GLVERTEXATTRIB4FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fARB;
    }
    if (strcmp("glVertexAttrib4fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fvARB);
        _glVertexAttrib4fvARB = (PFN_GLVERTEXATTRIB4FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fvARB;
    }
    if (strcmp("glVertexAttrib4ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ivARB);
        _glVertexAttrib4ivARB = (PFN_GLVERTEXATTRIB4IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ivARB;
    }
    if (strcmp("glVertexAttrib4sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4sARB);
        _glVertexAttrib4sARB = (PFN_GLVERTEXATTRIB4SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4sARB;
    }
    if (strcmp("glVertexAttrib4svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4svARB);
        _glVertexAttrib4svARB = (PFN_GLVERTEXATTRIB4SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4svARB;
    }
    if (strcmp("glVertexAttrib4ubvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubvARB);
        _glVertexAttrib4ubvARB = (PFN_GLVERTEXATTRIB4UBVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubvARB;
    }
    if (strcmp("glVertexAttrib4uivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4uivARB);
        _glVertexAttrib4uivARB = (PFN_GLVERTEXATTRIB4UIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4uivARB;
    }
    if (strcmp("glVertexAttrib4usvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4usvARB);
        _glVertexAttrib4usvARB = (PFN_GLVERTEXATTRIB4USVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4usvARB;
    }
    if (strcmp("glVertexAttribPointerARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribPointerARB);
        _glVertexAttribPointerARB = (PFN_GLVERTEXATTRIBPOINTERARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribPointerARB;
    }
    if (strcmp("glEnableVertexAttribArrayARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVertexAttribArrayARB);
        _glEnableVertexAttribArrayARB = (PFN_GLENABLEVERTEXATTRIBARRAYARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVertexAttribArrayARB;
    }
    if (strcmp("glDisableVertexAttribArrayARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVertexAttribArrayARB);
        _glDisableVertexAttribArrayARB = (PFN_GLDISABLEVERTEXATTRIBARRAYARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVertexAttribArrayARB;
    }
    if (strcmp("glProgramStringARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramStringARB);
        _glProgramStringARB = (PFN_GLPROGRAMSTRINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramStringARB;
    }
    if (strcmp("glBindProgramARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindProgramARB);
        _glBindProgramARB = (PFN_GLBINDPROGRAMARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindProgramARB;
    }
    if (strcmp("glDeleteProgramsARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteProgramsARB);
        _glDeleteProgramsARB = (PFN_GLDELETEPROGRAMSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteProgramsARB;
    }
    if (strcmp("glGenProgramsARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenProgramsARB);
        _glGenProgramsARB = (PFN_GLGENPROGRAMSARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenProgramsARB;
    }
    if (strcmp("glProgramEnvParameter4dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4dARB);
        _glProgramEnvParameter4dARB = (PFN_GLPROGRAMENVPARAMETER4DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4dARB;
    }
    if (strcmp("glProgramEnvParameter4dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4dvARB);
        _glProgramEnvParameter4dvARB = (PFN_GLPROGRAMENVPARAMETER4DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4dvARB;
    }
    if (strcmp("glProgramEnvParameter4fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4fARB);
        _glProgramEnvParameter4fARB = (PFN_GLPROGRAMENVPARAMETER4FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4fARB;
    }
    if (strcmp("glProgramEnvParameter4fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4fvARB);
        _glProgramEnvParameter4fvARB = (PFN_GLPROGRAMENVPARAMETER4FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameter4fvARB;
    }
    if (strcmp("glProgramLocalParameter4dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4dARB);
        _glProgramLocalParameter4dARB = (PFN_GLPROGRAMLOCALPARAMETER4DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4dARB;
    }
    if (strcmp("glProgramLocalParameter4dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4dvARB);
        _glProgramLocalParameter4dvARB = (PFN_GLPROGRAMLOCALPARAMETER4DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4dvARB;
    }
    if (strcmp("glProgramLocalParameter4fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4fARB);
        _glProgramLocalParameter4fARB = (PFN_GLPROGRAMLOCALPARAMETER4FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4fARB;
    }
    if (strcmp("glProgramLocalParameter4fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4fvARB);
        _glProgramLocalParameter4fvARB = (PFN_GLPROGRAMLOCALPARAMETER4FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameter4fvARB;
    }
    if (strcmp("glGetProgramEnvParameterdvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterdvARB);
        _glGetProgramEnvParameterdvARB = (PFN_GLGETPROGRAMENVPARAMETERDVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterdvARB;
    }
    if (strcmp("glGetProgramEnvParameterfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterfvARB);
        _glGetProgramEnvParameterfvARB = (PFN_GLGETPROGRAMENVPARAMETERFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterfvARB;
    }
    if (strcmp("glGetProgramLocalParameterdvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterdvARB);
        _glGetProgramLocalParameterdvARB = (PFN_GLGETPROGRAMLOCALPARAMETERDVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterdvARB;
    }
    if (strcmp("glGetProgramLocalParameterfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterfvARB);
        _glGetProgramLocalParameterfvARB = (PFN_GLGETPROGRAMLOCALPARAMETERFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterfvARB;
    }
    if (strcmp("glGetProgramivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramivARB);
        _glGetProgramivARB = (PFN_GLGETPROGRAMIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramivARB;
    }
    if (strcmp("glGetProgramStringARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramStringARB);
        _glGetProgramStringARB = (PFN_GLGETPROGRAMSTRINGARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramStringARB;
    }
    if (strcmp("glGetVertexAttribdvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribdvARB);
        _glGetVertexAttribdvARB = (PFN_GLGETVERTEXATTRIBDVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribdvARB;
    }
    if (strcmp("glGetVertexAttribfvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribfvARB);
        _glGetVertexAttribfvARB = (PFN_GLGETVERTEXATTRIBFVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribfvARB;
    }
    if (strcmp("glGetVertexAttribivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribivARB);
        _glGetVertexAttribivARB = (PFN_GLGETVERTEXATTRIBIVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribivARB;
    }
    if (strcmp("glGetVertexAttribPointervARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribPointervARB);
        _glGetVertexAttribPointervARB = (PFN_GLGETVERTEXATTRIBPOINTERVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribPointervARB;
    }
    if (strcmp("glIsProgramARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsProgramARB);
        _glIsProgramARB = (PFN_GLISPROGRAMARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsProgramARB;
    }
    if (strcmp("glBindAttribLocationARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindAttribLocationARB);
        _glBindAttribLocationARB = (PFN_GLBINDATTRIBLOCATIONARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindAttribLocationARB;
    }
    if (strcmp("glGetActiveAttribARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveAttribARB);
        _glGetActiveAttribARB = (PFN_GLGETACTIVEATTRIBARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveAttribARB;
    }
    if (strcmp("glGetAttribLocationARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetAttribLocationARB);
        _glGetAttribLocationARB = (PFN_GLGETATTRIBLOCATIONARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetAttribLocationARB;
    }
    if (strcmp("glVertexAttribP1ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP1ui);
        _glVertexAttribP1ui = (PFN_GLVERTEXATTRIBP1UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP1ui;
    }
    if (strcmp("glVertexAttribP1uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP1uiv);
        _glVertexAttribP1uiv = (PFN_GLVERTEXATTRIBP1UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP1uiv;
    }
    if (strcmp("glVertexAttribP2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP2ui);
        _glVertexAttribP2ui = (PFN_GLVERTEXATTRIBP2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP2ui;
    }
    if (strcmp("glVertexAttribP2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP2uiv);
        _glVertexAttribP2uiv = (PFN_GLVERTEXATTRIBP2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP2uiv;
    }
    if (strcmp("glVertexAttribP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP3ui);
        _glVertexAttribP3ui = (PFN_GLVERTEXATTRIBP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP3ui;
    }
    if (strcmp("glVertexAttribP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP3uiv);
        _glVertexAttribP3uiv = (PFN_GLVERTEXATTRIBP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP3uiv;
    }
    if (strcmp("glVertexAttribP4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP4ui);
        _glVertexAttribP4ui = (PFN_GLVERTEXATTRIBP4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP4ui;
    }
    if (strcmp("glVertexAttribP4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribP4uiv);
        _glVertexAttribP4uiv = (PFN_GLVERTEXATTRIBP4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribP4uiv;
    }
    if (strcmp("glVertexP2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexP2ui);
        _glVertexP2ui = (PFN_GLVERTEXP2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexP2ui;
    }
    if (strcmp("glVertexP2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexP2uiv);
        _glVertexP2uiv = (PFN_GLVERTEXP2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexP2uiv;
    }
    if (strcmp("glVertexP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexP3ui);
        _glVertexP3ui = (PFN_GLVERTEXP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexP3ui;
    }
    if (strcmp("glVertexP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexP3uiv);
        _glVertexP3uiv = (PFN_GLVERTEXP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexP3uiv;
    }
    if (strcmp("glVertexP4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexP4ui);
        _glVertexP4ui = (PFN_GLVERTEXP4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexP4ui;
    }
    if (strcmp("glVertexP4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexP4uiv);
        _glVertexP4uiv = (PFN_GLVERTEXP4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexP4uiv;
    }
    if (strcmp("glTexCoordP1ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP1ui);
        _glTexCoordP1ui = (PFN_GLTEXCOORDP1UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP1ui;
    }
    if (strcmp("glTexCoordP1uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP1uiv);
        _glTexCoordP1uiv = (PFN_GLTEXCOORDP1UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP1uiv;
    }
    if (strcmp("glTexCoordP2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP2ui);
        _glTexCoordP2ui = (PFN_GLTEXCOORDP2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP2ui;
    }
    if (strcmp("glTexCoordP2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP2uiv);
        _glTexCoordP2uiv = (PFN_GLTEXCOORDP2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP2uiv;
    }
    if (strcmp("glTexCoordP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP3ui);
        _glTexCoordP3ui = (PFN_GLTEXCOORDP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP3ui;
    }
    if (strcmp("glTexCoordP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP3uiv);
        _glTexCoordP3uiv = (PFN_GLTEXCOORDP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP3uiv;
    }
    if (strcmp("glTexCoordP4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP4ui);
        _glTexCoordP4ui = (PFN_GLTEXCOORDP4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP4ui;
    }
    if (strcmp("glTexCoordP4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordP4uiv);
        _glTexCoordP4uiv = (PFN_GLTEXCOORDP4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordP4uiv;
    }
    if (strcmp("glMultiTexCoordP1ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP1ui);
        _glMultiTexCoordP1ui = (PFN_GLMULTITEXCOORDP1UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP1ui;
    }
    if (strcmp("glMultiTexCoordP1uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP1uiv);
        _glMultiTexCoordP1uiv = (PFN_GLMULTITEXCOORDP1UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP1uiv;
    }
    if (strcmp("glMultiTexCoordP2ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP2ui);
        _glMultiTexCoordP2ui = (PFN_GLMULTITEXCOORDP2UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP2ui;
    }
    if (strcmp("glMultiTexCoordP2uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP2uiv);
        _glMultiTexCoordP2uiv = (PFN_GLMULTITEXCOORDP2UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP2uiv;
    }
    if (strcmp("glMultiTexCoordP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP3ui);
        _glMultiTexCoordP3ui = (PFN_GLMULTITEXCOORDP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP3ui;
    }
    if (strcmp("glMultiTexCoordP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP3uiv);
        _glMultiTexCoordP3uiv = (PFN_GLMULTITEXCOORDP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP3uiv;
    }
    if (strcmp("glMultiTexCoordP4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP4ui);
        _glMultiTexCoordP4ui = (PFN_GLMULTITEXCOORDP4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP4ui;
    }
    if (strcmp("glMultiTexCoordP4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP4uiv);
        _glMultiTexCoordP4uiv = (PFN_GLMULTITEXCOORDP4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordP4uiv;
    }
    if (strcmp("glNormalP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalP3ui);
        _glNormalP3ui = (PFN_GLNORMALP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalP3ui;
    }
    if (strcmp("glNormalP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalP3uiv);
        _glNormalP3uiv = (PFN_GLNORMALP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalP3uiv;
    }
    if (strcmp("glColorP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorP3ui);
        _glColorP3ui = (PFN_GLCOLORP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorP3ui;
    }
    if (strcmp("glColorP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorP3uiv);
        _glColorP3uiv = (PFN_GLCOLORP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorP3uiv;
    }
    if (strcmp("glColorP4ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorP4ui);
        _glColorP4ui = (PFN_GLCOLORP4UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorP4ui;
    }
    if (strcmp("glColorP4uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorP4uiv);
        _glColorP4uiv = (PFN_GLCOLORP4UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorP4uiv;
    }
    if (strcmp("glSecondaryColorP3ui", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColorP3ui);
        _glSecondaryColorP3ui = (PFN_GLSECONDARYCOLORP3UI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColorP3ui;
    }
    if (strcmp("glSecondaryColorP3uiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColorP3uiv);
        _glSecondaryColorP3uiv = (PFN_GLSECONDARYCOLORP3UIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColorP3uiv;
    }
    if (strcmp("glViewportArrayv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewportArrayv);
        _glViewportArrayv = (PFN_GLVIEWPORTARRAYV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewportArrayv;
    }
    if (strcmp("glViewportIndexedf", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewportIndexedf);
        _glViewportIndexedf = (PFN_GLVIEWPORTINDEXEDF)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewportIndexedf;
    }
    if (strcmp("glViewportIndexedfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewportIndexedfv);
        _glViewportIndexedfv = (PFN_GLVIEWPORTINDEXEDFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewportIndexedfv;
    }
    if (strcmp("glScissorArrayv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissorArrayv);
        _glScissorArrayv = (PFN_GLSCISSORARRAYV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissorArrayv;
    }
    if (strcmp("glScissorIndexed", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissorIndexed);
        _glScissorIndexed = (PFN_GLSCISSORINDEXED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissorIndexed;
    }
    if (strcmp("glScissorIndexedv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissorIndexedv);
        _glScissorIndexedv = (PFN_GLSCISSORINDEXEDV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissorIndexedv;
    }
    if (strcmp("glDepthRangeArrayv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangeArrayv);
        _glDepthRangeArrayv = (PFN_GLDEPTHRANGEARRAYV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangeArrayv;
    }
    if (strcmp("glDepthRangeIndexed", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangeIndexed);
        _glDepthRangeIndexed = (PFN_GLDEPTHRANGEINDEXED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangeIndexed;
    }
    if (strcmp("glGetFloati_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFloati_v);
        _glGetFloati_v = (PFN_GLGETFLOATI_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFloati_v;
    }
    if (strcmp("glGetDoublei_v", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDoublei_v);
        _glGetDoublei_v = (PFN_GLGETDOUBLEI_V)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDoublei_v;
    }
    if (strcmp("glWindowPos2dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2dARB);
        _glWindowPos2dARB = (PFN_GLWINDOWPOS2DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2dARB;
    }
    if (strcmp("glWindowPos2dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2dvARB);
        _glWindowPos2dvARB = (PFN_GLWINDOWPOS2DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2dvARB;
    }
    if (strcmp("glWindowPos2fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2fARB);
        _glWindowPos2fARB = (PFN_GLWINDOWPOS2FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2fARB;
    }
    if (strcmp("glWindowPos2fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2fvARB);
        _glWindowPos2fvARB = (PFN_GLWINDOWPOS2FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2fvARB;
    }
    if (strcmp("glWindowPos2iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2iARB);
        _glWindowPos2iARB = (PFN_GLWINDOWPOS2IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2iARB;
    }
    if (strcmp("glWindowPos2ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2ivARB);
        _glWindowPos2ivARB = (PFN_GLWINDOWPOS2IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2ivARB;
    }
    if (strcmp("glWindowPos2sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2sARB);
        _glWindowPos2sARB = (PFN_GLWINDOWPOS2SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2sARB;
    }
    if (strcmp("glWindowPos2svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2svARB);
        _glWindowPos2svARB = (PFN_GLWINDOWPOS2SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2svARB;
    }
    if (strcmp("glWindowPos3dARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3dARB);
        _glWindowPos3dARB = (PFN_GLWINDOWPOS3DARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3dARB;
    }
    if (strcmp("glWindowPos3dvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3dvARB);
        _glWindowPos3dvARB = (PFN_GLWINDOWPOS3DVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3dvARB;
    }
    if (strcmp("glWindowPos3fARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3fARB);
        _glWindowPos3fARB = (PFN_GLWINDOWPOS3FARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3fARB;
    }
    if (strcmp("glWindowPos3fvARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3fvARB);
        _glWindowPos3fvARB = (PFN_GLWINDOWPOS3FVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3fvARB;
    }
    if (strcmp("glWindowPos3iARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3iARB);
        _glWindowPos3iARB = (PFN_GLWINDOWPOS3IARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3iARB;
    }
    if (strcmp("glWindowPos3ivARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3ivARB);
        _glWindowPos3ivARB = (PFN_GLWINDOWPOS3IVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3ivARB;
    }
    if (strcmp("glWindowPos3sARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3sARB);
        _glWindowPos3sARB = (PFN_GLWINDOWPOS3SARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3sARB;
    }
    if (strcmp("glWindowPos3svARB", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3svARB);
        _glWindowPos3svARB = (PFN_GLWINDOWPOS3SVARB)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3svARB;
    }
    if (strcmp("glDrawBuffersATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffersATI);
        _glDrawBuffersATI = (PFN_GLDRAWBUFFERSATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffersATI;
    }
    if (strcmp("glElementPointerATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glElementPointerATI);
        _glElementPointerATI = (PFN_GLELEMENTPOINTERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glElementPointerATI;
    }
    if (strcmp("glDrawElementArrayATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementArrayATI);
        _glDrawElementArrayATI = (PFN_GLDRAWELEMENTARRAYATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementArrayATI;
    }
    if (strcmp("glDrawRangeElementArrayATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementArrayATI);
        _glDrawRangeElementArrayATI = (PFN_GLDRAWRANGEELEMENTARRAYATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementArrayATI;
    }
    if (strcmp("glTexBumpParameterivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBumpParameterivATI);
        _glTexBumpParameterivATI = (PFN_GLTEXBUMPPARAMETERIVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBumpParameterivATI;
    }
    if (strcmp("glTexBumpParameterfvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBumpParameterfvATI);
        _glTexBumpParameterfvATI = (PFN_GLTEXBUMPPARAMETERFVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBumpParameterfvATI;
    }
    if (strcmp("glGetTexBumpParameterivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexBumpParameterivATI);
        _glGetTexBumpParameterivATI = (PFN_GLGETTEXBUMPPARAMETERIVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexBumpParameterivATI;
    }
    if (strcmp("glGetTexBumpParameterfvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexBumpParameterfvATI);
        _glGetTexBumpParameterfvATI = (PFN_GLGETTEXBUMPPARAMETERFVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexBumpParameterfvATI;
    }
    if (strcmp("glBlendEquationSeparateATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateATI);
        _glBlendEquationSeparateATI = (PFN_GLBLENDEQUATIONSEPARATEATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateATI;
    }
    if (strcmp("glGenFragmentShadersATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenFragmentShadersATI);
        _glGenFragmentShadersATI = (PFN_GLGENFRAGMENTSHADERSATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenFragmentShadersATI;
    }
    if (strcmp("glBindFragmentShaderATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFragmentShaderATI);
        _glBindFragmentShaderATI = (PFN_GLBINDFRAGMENTSHADERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFragmentShaderATI;
    }
    if (strcmp("glDeleteFragmentShaderATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteFragmentShaderATI);
        _glDeleteFragmentShaderATI = (PFN_GLDELETEFRAGMENTSHADERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteFragmentShaderATI;
    }
    if (strcmp("glBeginFragmentShaderATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginFragmentShaderATI);
        _glBeginFragmentShaderATI = (PFN_GLBEGINFRAGMENTSHADERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginFragmentShaderATI;
    }
    if (strcmp("glEndFragmentShaderATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndFragmentShaderATI);
        _glEndFragmentShaderATI = (PFN_GLENDFRAGMENTSHADERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndFragmentShaderATI;
    }
    if (strcmp("glPassTexCoordATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPassTexCoordATI);
        _glPassTexCoordATI = (PFN_GLPASSTEXCOORDATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPassTexCoordATI;
    }
    if (strcmp("glSampleMapATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleMapATI);
        _glSampleMapATI = (PFN_GLSAMPLEMAPATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleMapATI;
    }
    if (strcmp("glColorFragmentOp1ATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorFragmentOp1ATI);
        _glColorFragmentOp1ATI = (PFN_GLCOLORFRAGMENTOP1ATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorFragmentOp1ATI;
    }
    if (strcmp("glColorFragmentOp2ATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorFragmentOp2ATI);
        _glColorFragmentOp2ATI = (PFN_GLCOLORFRAGMENTOP2ATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorFragmentOp2ATI;
    }
    if (strcmp("glColorFragmentOp3ATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorFragmentOp3ATI);
        _glColorFragmentOp3ATI = (PFN_GLCOLORFRAGMENTOP3ATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorFragmentOp3ATI;
    }
    if (strcmp("glAlphaFragmentOp1ATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAlphaFragmentOp1ATI);
        _glAlphaFragmentOp1ATI = (PFN_GLALPHAFRAGMENTOP1ATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAlphaFragmentOp1ATI;
    }
    if (strcmp("glAlphaFragmentOp2ATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAlphaFragmentOp2ATI);
        _glAlphaFragmentOp2ATI = (PFN_GLALPHAFRAGMENTOP2ATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAlphaFragmentOp2ATI;
    }
    if (strcmp("glAlphaFragmentOp3ATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAlphaFragmentOp3ATI);
        _glAlphaFragmentOp3ATI = (PFN_GLALPHAFRAGMENTOP3ATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAlphaFragmentOp3ATI;
    }
    if (strcmp("glSetFragmentShaderConstantATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSetFragmentShaderConstantATI);
        _glSetFragmentShaderConstantATI = (PFN_GLSETFRAGMENTSHADERCONSTANTATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSetFragmentShaderConstantATI;
    }
    if (strcmp("glMapObjectBufferATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapObjectBufferATI);
        _glMapObjectBufferATI = (PFN_GLMAPOBJECTBUFFERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapObjectBufferATI;
    }
    if (strcmp("glUnmapObjectBufferATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapObjectBufferATI);
        _glUnmapObjectBufferATI = (PFN_GLUNMAPOBJECTBUFFERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapObjectBufferATI;
    }
    if (strcmp("glPNTrianglesiATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPNTrianglesiATI);
        _glPNTrianglesiATI = (PFN_GLPNTRIANGLESIATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPNTrianglesiATI;
    }
    if (strcmp("glPNTrianglesfATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPNTrianglesfATI);
        _glPNTrianglesfATI = (PFN_GLPNTRIANGLESFATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPNTrianglesfATI;
    }
    if (strcmp("glPNTrianglesiATIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPNTrianglesiATIX);
        _glPNTrianglesiATIX = (PFN_GLPNTRIANGLESIATIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPNTrianglesiATIX;
    }
    if (strcmp("glPNTrianglesfATIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPNTrianglesfATIX);
        _glPNTrianglesfATIX = (PFN_GLPNTRIANGLESFATIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPNTrianglesfATIX;
    }
    if (strcmp("glStencilOpSeparateATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilOpSeparateATI);
        _glStencilOpSeparateATI = (PFN_GLSTENCILOPSEPARATEATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilOpSeparateATI;
    }
    if (strcmp("glStencilFuncSeparateATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilFuncSeparateATI);
        _glStencilFuncSeparateATI = (PFN_GLSTENCILFUNCSEPARATEATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilFuncSeparateATI;
    }
    if (strcmp("glNewObjectBufferATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNewObjectBufferATI);
        _glNewObjectBufferATI = (PFN_GLNEWOBJECTBUFFERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNewObjectBufferATI;
    }
    if (strcmp("glIsObjectBufferATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsObjectBufferATI);
        _glIsObjectBufferATI = (PFN_GLISOBJECTBUFFERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsObjectBufferATI;
    }
    if (strcmp("glUpdateObjectBufferATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUpdateObjectBufferATI);
        _glUpdateObjectBufferATI = (PFN_GLUPDATEOBJECTBUFFERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUpdateObjectBufferATI;
    }
    if (strcmp("glGetObjectBufferfvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectBufferfvATI);
        _glGetObjectBufferfvATI = (PFN_GLGETOBJECTBUFFERFVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectBufferfvATI;
    }
    if (strcmp("glGetObjectBufferivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectBufferivATI);
        _glGetObjectBufferivATI = (PFN_GLGETOBJECTBUFFERIVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectBufferivATI;
    }
    if (strcmp("glFreeObjectBufferATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFreeObjectBufferATI);
        _glFreeObjectBufferATI = (PFN_GLFREEOBJECTBUFFERATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFreeObjectBufferATI;
    }
    if (strcmp("glArrayObjectATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glArrayObjectATI);
        _glArrayObjectATI = (PFN_GLARRAYOBJECTATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glArrayObjectATI;
    }
    if (strcmp("glGetArrayObjectfvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetArrayObjectfvATI);
        _glGetArrayObjectfvATI = (PFN_GLGETARRAYOBJECTFVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetArrayObjectfvATI;
    }
    if (strcmp("glGetArrayObjectivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetArrayObjectivATI);
        _glGetArrayObjectivATI = (PFN_GLGETARRAYOBJECTIVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetArrayObjectivATI;
    }
    if (strcmp("glVariantArrayObjectATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantArrayObjectATI);
        _glVariantArrayObjectATI = (PFN_GLVARIANTARRAYOBJECTATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantArrayObjectATI;
    }
    if (strcmp("glGetVariantArrayObjectfvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVariantArrayObjectfvATI);
        _glGetVariantArrayObjectfvATI = (PFN_GLGETVARIANTARRAYOBJECTFVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVariantArrayObjectfvATI;
    }
    if (strcmp("glGetVariantArrayObjectivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVariantArrayObjectivATI);
        _glGetVariantArrayObjectivATI = (PFN_GLGETVARIANTARRAYOBJECTIVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVariantArrayObjectivATI;
    }
    if (strcmp("glVertexAttribArrayObjectATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribArrayObjectATI);
        _glVertexAttribArrayObjectATI = (PFN_GLVERTEXATTRIBARRAYOBJECTATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribArrayObjectATI;
    }
    if (strcmp("glGetVertexAttribArrayObjectfvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribArrayObjectfvATI);
        _glGetVertexAttribArrayObjectfvATI = (PFN_GLGETVERTEXATTRIBARRAYOBJECTFVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribArrayObjectfvATI;
    }
    if (strcmp("glGetVertexAttribArrayObjectivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribArrayObjectivATI);
        _glGetVertexAttribArrayObjectivATI = (PFN_GLGETVERTEXATTRIBARRAYOBJECTIVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribArrayObjectivATI;
    }
    if (strcmp("glVertexStream1sATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1sATI);
        _glVertexStream1sATI = (PFN_GLVERTEXSTREAM1SATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1sATI;
    }
    if (strcmp("glVertexStream1svATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1svATI);
        _glVertexStream1svATI = (PFN_GLVERTEXSTREAM1SVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1svATI;
    }
    if (strcmp("glVertexStream1iATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1iATI);
        _glVertexStream1iATI = (PFN_GLVERTEXSTREAM1IATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1iATI;
    }
    if (strcmp("glVertexStream1ivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1ivATI);
        _glVertexStream1ivATI = (PFN_GLVERTEXSTREAM1IVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1ivATI;
    }
    if (strcmp("glVertexStream1fATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1fATI);
        _glVertexStream1fATI = (PFN_GLVERTEXSTREAM1FATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1fATI;
    }
    if (strcmp("glVertexStream1fvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1fvATI);
        _glVertexStream1fvATI = (PFN_GLVERTEXSTREAM1FVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1fvATI;
    }
    if (strcmp("glVertexStream1dATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1dATI);
        _glVertexStream1dATI = (PFN_GLVERTEXSTREAM1DATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1dATI;
    }
    if (strcmp("glVertexStream1dvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream1dvATI);
        _glVertexStream1dvATI = (PFN_GLVERTEXSTREAM1DVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream1dvATI;
    }
    if (strcmp("glVertexStream2sATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2sATI);
        _glVertexStream2sATI = (PFN_GLVERTEXSTREAM2SATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2sATI;
    }
    if (strcmp("glVertexStream2svATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2svATI);
        _glVertexStream2svATI = (PFN_GLVERTEXSTREAM2SVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2svATI;
    }
    if (strcmp("glVertexStream2iATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2iATI);
        _glVertexStream2iATI = (PFN_GLVERTEXSTREAM2IATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2iATI;
    }
    if (strcmp("glVertexStream2ivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2ivATI);
        _glVertexStream2ivATI = (PFN_GLVERTEXSTREAM2IVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2ivATI;
    }
    if (strcmp("glVertexStream2fATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2fATI);
        _glVertexStream2fATI = (PFN_GLVERTEXSTREAM2FATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2fATI;
    }
    if (strcmp("glVertexStream2fvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2fvATI);
        _glVertexStream2fvATI = (PFN_GLVERTEXSTREAM2FVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2fvATI;
    }
    if (strcmp("glVertexStream2dATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2dATI);
        _glVertexStream2dATI = (PFN_GLVERTEXSTREAM2DATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2dATI;
    }
    if (strcmp("glVertexStream2dvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream2dvATI);
        _glVertexStream2dvATI = (PFN_GLVERTEXSTREAM2DVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream2dvATI;
    }
    if (strcmp("glVertexStream3sATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3sATI);
        _glVertexStream3sATI = (PFN_GLVERTEXSTREAM3SATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3sATI;
    }
    if (strcmp("glVertexStream3svATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3svATI);
        _glVertexStream3svATI = (PFN_GLVERTEXSTREAM3SVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3svATI;
    }
    if (strcmp("glVertexStream3iATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3iATI);
        _glVertexStream3iATI = (PFN_GLVERTEXSTREAM3IATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3iATI;
    }
    if (strcmp("glVertexStream3ivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3ivATI);
        _glVertexStream3ivATI = (PFN_GLVERTEXSTREAM3IVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3ivATI;
    }
    if (strcmp("glVertexStream3fATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3fATI);
        _glVertexStream3fATI = (PFN_GLVERTEXSTREAM3FATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3fATI;
    }
    if (strcmp("glVertexStream3fvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3fvATI);
        _glVertexStream3fvATI = (PFN_GLVERTEXSTREAM3FVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3fvATI;
    }
    if (strcmp("glVertexStream3dATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3dATI);
        _glVertexStream3dATI = (PFN_GLVERTEXSTREAM3DATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3dATI;
    }
    if (strcmp("glVertexStream3dvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream3dvATI);
        _glVertexStream3dvATI = (PFN_GLVERTEXSTREAM3DVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream3dvATI;
    }
    if (strcmp("glVertexStream4sATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4sATI);
        _glVertexStream4sATI = (PFN_GLVERTEXSTREAM4SATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4sATI;
    }
    if (strcmp("glVertexStream4svATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4svATI);
        _glVertexStream4svATI = (PFN_GLVERTEXSTREAM4SVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4svATI;
    }
    if (strcmp("glVertexStream4iATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4iATI);
        _glVertexStream4iATI = (PFN_GLVERTEXSTREAM4IATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4iATI;
    }
    if (strcmp("glVertexStream4ivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4ivATI);
        _glVertexStream4ivATI = (PFN_GLVERTEXSTREAM4IVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4ivATI;
    }
    if (strcmp("glVertexStream4fATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4fATI);
        _glVertexStream4fATI = (PFN_GLVERTEXSTREAM4FATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4fATI;
    }
    if (strcmp("glVertexStream4fvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4fvATI);
        _glVertexStream4fvATI = (PFN_GLVERTEXSTREAM4FVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4fvATI;
    }
    if (strcmp("glVertexStream4dATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4dATI);
        _glVertexStream4dATI = (PFN_GLVERTEXSTREAM4DATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4dATI;
    }
    if (strcmp("glVertexStream4dvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexStream4dvATI);
        _glVertexStream4dvATI = (PFN_GLVERTEXSTREAM4DVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexStream4dvATI;
    }
    if (strcmp("glNormalStream3bATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3bATI);
        _glNormalStream3bATI = (PFN_GLNORMALSTREAM3BATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3bATI;
    }
    if (strcmp("glNormalStream3bvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3bvATI);
        _glNormalStream3bvATI = (PFN_GLNORMALSTREAM3BVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3bvATI;
    }
    if (strcmp("glNormalStream3sATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3sATI);
        _glNormalStream3sATI = (PFN_GLNORMALSTREAM3SATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3sATI;
    }
    if (strcmp("glNormalStream3svATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3svATI);
        _glNormalStream3svATI = (PFN_GLNORMALSTREAM3SVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3svATI;
    }
    if (strcmp("glNormalStream3iATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3iATI);
        _glNormalStream3iATI = (PFN_GLNORMALSTREAM3IATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3iATI;
    }
    if (strcmp("glNormalStream3ivATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3ivATI);
        _glNormalStream3ivATI = (PFN_GLNORMALSTREAM3IVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3ivATI;
    }
    if (strcmp("glNormalStream3fATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3fATI);
        _glNormalStream3fATI = (PFN_GLNORMALSTREAM3FATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3fATI;
    }
    if (strcmp("glNormalStream3fvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3fvATI);
        _glNormalStream3fvATI = (PFN_GLNORMALSTREAM3FVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3fvATI;
    }
    if (strcmp("glNormalStream3dATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3dATI);
        _glNormalStream3dATI = (PFN_GLNORMALSTREAM3DATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3dATI;
    }
    if (strcmp("glNormalStream3dvATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalStream3dvATI);
        _glNormalStream3dvATI = (PFN_GLNORMALSTREAM3DVATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalStream3dvATI;
    }
    if (strcmp("glClientActiveVertexStreamATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClientActiveVertexStreamATI);
        _glClientActiveVertexStreamATI = (PFN_GLCLIENTACTIVEVERTEXSTREAMATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClientActiveVertexStreamATI;
    }
    if (strcmp("glVertexBlendEnviATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexBlendEnviATI);
        _glVertexBlendEnviATI = (PFN_GLVERTEXBLENDENVIATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexBlendEnviATI;
    }
    if (strcmp("glVertexBlendEnvfATI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexBlendEnvfATI);
        _glVertexBlendEnvfATI = (PFN_GLVERTEXBLENDENVFATI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexBlendEnvfATI;
    }
    if (strcmp("glDrawArraysInstancedBaseInstanceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedBaseInstanceEXT);
        _glDrawArraysInstancedBaseInstanceEXT = (PFN_GLDRAWARRAYSINSTANCEDBASEINSTANCEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedBaseInstanceEXT;
    }
    if (strcmp("glDrawElementsInstancedBaseInstanceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseInstanceEXT);
        _glDrawElementsInstancedBaseInstanceEXT = (PFN_GLDRAWELEMENTSINSTANCEDBASEINSTANCEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseInstanceEXT;
    }
    if (strcmp("glDrawElementsInstancedBaseVertexBaseInstanceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertexBaseInstanceEXT);
        _glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFN_GLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertexBaseInstanceEXT;
    }
    if (strcmp("glUniformBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformBufferEXT);
        _glUniformBufferEXT = (PFN_GLUNIFORMBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformBufferEXT;
    }
    if (strcmp("glGetUniformBufferSizeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformBufferSizeEXT);
        _glGetUniformBufferSizeEXT = (PFN_GLGETUNIFORMBUFFERSIZEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformBufferSizeEXT;
    }
    if (strcmp("glGetUniformOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformOffsetEXT);
        _glGetUniformOffsetEXT = (PFN_GLGETUNIFORMOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformOffsetEXT;
    }
    if (strcmp("glBlendColorEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendColorEXT);
        _glBlendColorEXT = (PFN_GLBLENDCOLOREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendColorEXT;
    }
    if (strcmp("glBlendEquationSeparateEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateEXT);
        _glBlendEquationSeparateEXT = (PFN_GLBLENDEQUATIONSEPARATEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateEXT;
    }
    if (strcmp("glBindFragDataLocationIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocationIndexedEXT);
        _glBindFragDataLocationIndexedEXT = (PFN_GLBINDFRAGDATALOCATIONINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocationIndexedEXT;
    }
    if (strcmp("glBindFragDataLocationEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocationEXT);
        _glBindFragDataLocationEXT = (PFN_GLBINDFRAGDATALOCATIONEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFragDataLocationEXT;
    }
    if (strcmp("glGetProgramResourceLocationIndexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceLocationIndexEXT);
        _glGetProgramResourceLocationIndexEXT = (PFN_GLGETPROGRAMRESOURCELOCATIONINDEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourceLocationIndexEXT;
    }
    if (strcmp("glGetFragDataIndexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragDataIndexEXT);
        _glGetFragDataIndexEXT = (PFN_GLGETFRAGDATAINDEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragDataIndexEXT;
    }
    if (strcmp("glBlendFuncSeparateEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateEXT);
        _glBlendFuncSeparateEXT = (PFN_GLBLENDFUNCSEPARATEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateEXT;
    }
    if (strcmp("glBlendEquationEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationEXT);
        _glBlendEquationEXT = (PFN_GLBLENDEQUATIONEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationEXT;
    }
    if (strcmp("glBufferStorageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferStorageEXT);
        _glBufferStorageEXT = (PFN_GLBUFFERSTORAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferStorageEXT;
    }
    if (strcmp("glClearTexImageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearTexImageEXT);
        _glClearTexImageEXT = (PFN_GLCLEARTEXIMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearTexImageEXT;
    }
    if (strcmp("glClearTexSubImageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearTexSubImageEXT);
        _glClearTexSubImageEXT = (PFN_GLCLEARTEXSUBIMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearTexSubImageEXT;
    }
    if (strcmp("glClipControlEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClipControlEXT);
        _glClipControlEXT = (PFN_GLCLIPCONTROLEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClipControlEXT;
    }
    if (strcmp("glColorSubTableEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorSubTableEXT);
        _glColorSubTableEXT = (PFN_GLCOLORSUBTABLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorSubTableEXT;
    }
    if (strcmp("glCopyColorSubTableEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyColorSubTableEXT);
        _glCopyColorSubTableEXT = (PFN_GLCOPYCOLORSUBTABLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyColorSubTableEXT;
    }
    if (strcmp("glLockArraysEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLockArraysEXT);
        _glLockArraysEXT = (PFN_GLLOCKARRAYSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLockArraysEXT;
    }
    if (strcmp("glUnlockArraysEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnlockArraysEXT);
        _glUnlockArraysEXT = (PFN_GLUNLOCKARRAYSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnlockArraysEXT;
    }
    if (strcmp("glConvolutionFilter1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter1DEXT);
        _glConvolutionFilter1DEXT = (PFN_GLCONVOLUTIONFILTER1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter1DEXT;
    }
    if (strcmp("glConvolutionFilter2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter2DEXT);
        _glConvolutionFilter2DEXT = (PFN_GLCONVOLUTIONFILTER2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionFilter2DEXT;
    }
    if (strcmp("glConvolutionParameterfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterfEXT);
        _glConvolutionParameterfEXT = (PFN_GLCONVOLUTIONPARAMETERFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterfEXT;
    }
    if (strcmp("glConvolutionParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterfvEXT);
        _glConvolutionParameterfvEXT = (PFN_GLCONVOLUTIONPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterfvEXT;
    }
    if (strcmp("glConvolutionParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameteriEXT);
        _glConvolutionParameteriEXT = (PFN_GLCONVOLUTIONPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameteriEXT;
    }
    if (strcmp("glConvolutionParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterivEXT);
        _glConvolutionParameterivEXT = (PFN_GLCONVOLUTIONPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glConvolutionParameterivEXT;
    }
    if (strcmp("glCopyConvolutionFilter1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter1DEXT);
        _glCopyConvolutionFilter1DEXT = (PFN_GLCOPYCONVOLUTIONFILTER1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter1DEXT;
    }
    if (strcmp("glCopyConvolutionFilter2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter2DEXT);
        _glCopyConvolutionFilter2DEXT = (PFN_GLCOPYCONVOLUTIONFILTER2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyConvolutionFilter2DEXT;
    }
    if (strcmp("glGetConvolutionFilterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetConvolutionFilterEXT);
        _glGetConvolutionFilterEXT = (PFN_GLGETCONVOLUTIONFILTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetConvolutionFilterEXT;
    }
    if (strcmp("glGetConvolutionParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameterfvEXT);
        _glGetConvolutionParameterfvEXT = (PFN_GLGETCONVOLUTIONPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameterfvEXT;
    }
    if (strcmp("glGetConvolutionParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameterivEXT);
        _glGetConvolutionParameterivEXT = (PFN_GLGETCONVOLUTIONPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetConvolutionParameterivEXT;
    }
    if (strcmp("glGetSeparableFilterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSeparableFilterEXT);
        _glGetSeparableFilterEXT = (PFN_GLGETSEPARABLEFILTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSeparableFilterEXT;
    }
    if (strcmp("glSeparableFilter2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSeparableFilter2DEXT);
        _glSeparableFilter2DEXT = (PFN_GLSEPARABLEFILTER2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSeparableFilter2DEXT;
    }
    if (strcmp("glTangent3bEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3bEXT);
        _glTangent3bEXT = (PFN_GLTANGENT3BEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3bEXT;
    }
    if (strcmp("glTangent3bvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3bvEXT);
        _glTangent3bvEXT = (PFN_GLTANGENT3BVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3bvEXT;
    }
    if (strcmp("glTangent3dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3dEXT);
        _glTangent3dEXT = (PFN_GLTANGENT3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3dEXT;
    }
    if (strcmp("glTangent3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3dvEXT);
        _glTangent3dvEXT = (PFN_GLTANGENT3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3dvEXT;
    }
    if (strcmp("glTangent3fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3fEXT);
        _glTangent3fEXT = (PFN_GLTANGENT3FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3fEXT;
    }
    if (strcmp("glTangent3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3fvEXT);
        _glTangent3fvEXT = (PFN_GLTANGENT3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3fvEXT;
    }
    if (strcmp("glTangent3iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3iEXT);
        _glTangent3iEXT = (PFN_GLTANGENT3IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3iEXT;
    }
    if (strcmp("glTangent3ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3ivEXT);
        _glTangent3ivEXT = (PFN_GLTANGENT3IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3ivEXT;
    }
    if (strcmp("glTangent3sEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3sEXT);
        _glTangent3sEXT = (PFN_GLTANGENT3SEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3sEXT;
    }
    if (strcmp("glTangent3svEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangent3svEXT);
        _glTangent3svEXT = (PFN_GLTANGENT3SVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangent3svEXT;
    }
    if (strcmp("glBinormal3bEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3bEXT);
        _glBinormal3bEXT = (PFN_GLBINORMAL3BEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3bEXT;
    }
    if (strcmp("glBinormal3bvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3bvEXT);
        _glBinormal3bvEXT = (PFN_GLBINORMAL3BVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3bvEXT;
    }
    if (strcmp("glBinormal3dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3dEXT);
        _glBinormal3dEXT = (PFN_GLBINORMAL3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3dEXT;
    }
    if (strcmp("glBinormal3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3dvEXT);
        _glBinormal3dvEXT = (PFN_GLBINORMAL3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3dvEXT;
    }
    if (strcmp("glBinormal3fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3fEXT);
        _glBinormal3fEXT = (PFN_GLBINORMAL3FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3fEXT;
    }
    if (strcmp("glBinormal3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3fvEXT);
        _glBinormal3fvEXT = (PFN_GLBINORMAL3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3fvEXT;
    }
    if (strcmp("glBinormal3iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3iEXT);
        _glBinormal3iEXT = (PFN_GLBINORMAL3IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3iEXT;
    }
    if (strcmp("glBinormal3ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3ivEXT);
        _glBinormal3ivEXT = (PFN_GLBINORMAL3IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3ivEXT;
    }
    if (strcmp("glBinormal3sEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3sEXT);
        _glBinormal3sEXT = (PFN_GLBINORMAL3SEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3sEXT;
    }
    if (strcmp("glBinormal3svEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormal3svEXT);
        _glBinormal3svEXT = (PFN_GLBINORMAL3SVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormal3svEXT;
    }
    if (strcmp("glTangentPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTangentPointerEXT);
        _glTangentPointerEXT = (PFN_GLTANGENTPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTangentPointerEXT;
    }
    if (strcmp("glBinormalPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBinormalPointerEXT);
        _glBinormalPointerEXT = (PFN_GLBINORMALPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBinormalPointerEXT;
    }
    if (strcmp("glCopyImageSubDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyImageSubDataEXT);
        _glCopyImageSubDataEXT = (PFN_GLCOPYIMAGESUBDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyImageSubDataEXT;
    }
    if (strcmp("glCopyTexImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexImage1DEXT);
        _glCopyTexImage1DEXT = (PFN_GLCOPYTEXIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexImage1DEXT;
    }
    if (strcmp("glCopyTexImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexImage2DEXT);
        _glCopyTexImage2DEXT = (PFN_GLCOPYTEXIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexImage2DEXT;
    }
    if (strcmp("glCopyTexSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage1DEXT);
        _glCopyTexSubImage1DEXT = (PFN_GLCOPYTEXSUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage1DEXT;
    }
    if (strcmp("glCopyTexSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage2DEXT);
        _glCopyTexSubImage2DEXT = (PFN_GLCOPYTEXSUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage2DEXT;
    }
    if (strcmp("glCopyTexSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage3DEXT);
        _glCopyTexSubImage3DEXT = (PFN_GLCOPYTEXSUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage3DEXT;
    }
    if (strcmp("glCullParameterdvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCullParameterdvEXT);
        _glCullParameterdvEXT = (PFN_GLCULLPARAMETERDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCullParameterdvEXT;
    }
    if (strcmp("glCullParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCullParameterfvEXT);
        _glCullParameterfvEXT = (PFN_GLCULLPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCullParameterfvEXT;
    }
    if (strcmp("glLabelObjectEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLabelObjectEXT);
        _glLabelObjectEXT = (PFN_GLLABELOBJECTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLabelObjectEXT;
    }
    if (strcmp("glGetObjectLabelEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectLabelEXT);
        _glGetObjectLabelEXT = (PFN_GLGETOBJECTLABELEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectLabelEXT;
    }
    if (strcmp("glInsertEventMarkerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInsertEventMarkerEXT);
        _glInsertEventMarkerEXT = (PFN_GLINSERTEVENTMARKEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInsertEventMarkerEXT;
    }
    if (strcmp("glPushGroupMarkerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushGroupMarkerEXT);
        _glPushGroupMarkerEXT = (PFN_GLPUSHGROUPMARKEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushGroupMarkerEXT;
    }
    if (strcmp("glPopGroupMarkerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopGroupMarkerEXT);
        _glPopGroupMarkerEXT = (PFN_GLPOPGROUPMARKEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopGroupMarkerEXT;
    }
    if (strcmp("glDepthBoundsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthBoundsEXT);
        _glDepthBoundsEXT = (PFN_GLDEPTHBOUNDSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthBoundsEXT;
    }
    if (strcmp("glBindMultiTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindMultiTextureEXT);
        _glBindMultiTextureEXT = (PFN_GLBINDMULTITEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindMultiTextureEXT;
    }
    if (strcmp("glCheckNamedFramebufferStatusEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCheckNamedFramebufferStatusEXT);
        _glCheckNamedFramebufferStatusEXT = (PFN_GLCHECKNAMEDFRAMEBUFFERSTATUSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCheckNamedFramebufferStatusEXT;
    }
    if (strcmp("glClearNamedBufferDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferDataEXT);
        _glClearNamedBufferDataEXT = (PFN_GLCLEARNAMEDBUFFERDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferDataEXT;
    }
    if (strcmp("glClearNamedBufferSubDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferSubDataEXT);
        _glClearNamedBufferSubDataEXT = (PFN_GLCLEARNAMEDBUFFERSUBDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearNamedBufferSubDataEXT;
    }
    if (strcmp("glClientAttribDefaultEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClientAttribDefaultEXT);
        _glClientAttribDefaultEXT = (PFN_GLCLIENTATTRIBDEFAULTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClientAttribDefaultEXT;
    }
    if (strcmp("glCompressedMultiTexImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexImage1DEXT);
        _glCompressedMultiTexImage1DEXT = (PFN_GLCOMPRESSEDMULTITEXIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexImage1DEXT;
    }
    if (strcmp("glCompressedMultiTexImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexImage2DEXT);
        _glCompressedMultiTexImage2DEXT = (PFN_GLCOMPRESSEDMULTITEXIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexImage2DEXT;
    }
    if (strcmp("glCompressedMultiTexImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexImage3DEXT);
        _glCompressedMultiTexImage3DEXT = (PFN_GLCOMPRESSEDMULTITEXIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexImage3DEXT;
    }
    if (strcmp("glCompressedMultiTexSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexSubImage1DEXT);
        _glCompressedMultiTexSubImage1DEXT = (PFN_GLCOMPRESSEDMULTITEXSUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexSubImage1DEXT;
    }
    if (strcmp("glCompressedMultiTexSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexSubImage2DEXT);
        _glCompressedMultiTexSubImage2DEXT = (PFN_GLCOMPRESSEDMULTITEXSUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexSubImage2DEXT;
    }
    if (strcmp("glCompressedMultiTexSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexSubImage3DEXT);
        _glCompressedMultiTexSubImage3DEXT = (PFN_GLCOMPRESSEDMULTITEXSUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedMultiTexSubImage3DEXT;
    }
    if (strcmp("glCompressedTextureImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureImage1DEXT);
        _glCompressedTextureImage1DEXT = (PFN_GLCOMPRESSEDTEXTUREIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureImage1DEXT;
    }
    if (strcmp("glCompressedTextureImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureImage2DEXT);
        _glCompressedTextureImage2DEXT = (PFN_GLCOMPRESSEDTEXTUREIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureImage2DEXT;
    }
    if (strcmp("glCompressedTextureImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureImage3DEXT);
        _glCompressedTextureImage3DEXT = (PFN_GLCOMPRESSEDTEXTUREIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureImage3DEXT;
    }
    if (strcmp("glCompressedTextureSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage1DEXT);
        _glCompressedTextureSubImage1DEXT = (PFN_GLCOMPRESSEDTEXTURESUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage1DEXT;
    }
    if (strcmp("glCompressedTextureSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage2DEXT);
        _glCompressedTextureSubImage2DEXT = (PFN_GLCOMPRESSEDTEXTURESUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage2DEXT;
    }
    if (strcmp("glCompressedTextureSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage3DEXT);
        _glCompressedTextureSubImage3DEXT = (PFN_GLCOMPRESSEDTEXTURESUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTextureSubImage3DEXT;
    }
    if (strcmp("glCopyMultiTexImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexImage1DEXT);
        _glCopyMultiTexImage1DEXT = (PFN_GLCOPYMULTITEXIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexImage1DEXT;
    }
    if (strcmp("glCopyMultiTexImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexImage2DEXT);
        _glCopyMultiTexImage2DEXT = (PFN_GLCOPYMULTITEXIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexImage2DEXT;
    }
    if (strcmp("glCopyMultiTexSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexSubImage1DEXT);
        _glCopyMultiTexSubImage1DEXT = (PFN_GLCOPYMULTITEXSUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexSubImage1DEXT;
    }
    if (strcmp("glCopyMultiTexSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexSubImage2DEXT);
        _glCopyMultiTexSubImage2DEXT = (PFN_GLCOPYMULTITEXSUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexSubImage2DEXT;
    }
    if (strcmp("glCopyMultiTexSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexSubImage3DEXT);
        _glCopyMultiTexSubImage3DEXT = (PFN_GLCOPYMULTITEXSUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyMultiTexSubImage3DEXT;
    }
    if (strcmp("glCopyTextureImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureImage1DEXT);
        _glCopyTextureImage1DEXT = (PFN_GLCOPYTEXTUREIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureImage1DEXT;
    }
    if (strcmp("glCopyTextureImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureImage2DEXT);
        _glCopyTextureImage2DEXT = (PFN_GLCOPYTEXTUREIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureImage2DEXT;
    }
    if (strcmp("glCopyTextureSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage1DEXT);
        _glCopyTextureSubImage1DEXT = (PFN_GLCOPYTEXTURESUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage1DEXT;
    }
    if (strcmp("glCopyTextureSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage2DEXT);
        _glCopyTextureSubImage2DEXT = (PFN_GLCOPYTEXTURESUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage2DEXT;
    }
    if (strcmp("glCopyTextureSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage3DEXT);
        _glCopyTextureSubImage3DEXT = (PFN_GLCOPYTEXTURESUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTextureSubImage3DEXT;
    }
    if (strcmp("glDisableClientStateIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableClientStateIndexedEXT);
        _glDisableClientStateIndexedEXT = (PFN_GLDISABLECLIENTSTATEINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableClientStateIndexedEXT;
    }
    if (strcmp("glDisableClientStateiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableClientStateiEXT);
        _glDisableClientStateiEXT = (PFN_GLDISABLECLIENTSTATEIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableClientStateiEXT;
    }
    if (strcmp("glDisableVertexArrayAttribEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVertexArrayAttribEXT);
        _glDisableVertexArrayAttribEXT = (PFN_GLDISABLEVERTEXARRAYATTRIBEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVertexArrayAttribEXT;
    }
    if (strcmp("glDisableVertexArrayEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVertexArrayEXT);
        _glDisableVertexArrayEXT = (PFN_GLDISABLEVERTEXARRAYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVertexArrayEXT;
    }
    if (strcmp("glEnableClientStateIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableClientStateIndexedEXT);
        _glEnableClientStateIndexedEXT = (PFN_GLENABLECLIENTSTATEINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableClientStateIndexedEXT;
    }
    if (strcmp("glEnableClientStateiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableClientStateiEXT);
        _glEnableClientStateiEXT = (PFN_GLENABLECLIENTSTATEIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableClientStateiEXT;
    }
    if (strcmp("glEnableVertexArrayAttribEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVertexArrayAttribEXT);
        _glEnableVertexArrayAttribEXT = (PFN_GLENABLEVERTEXARRAYATTRIBEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVertexArrayAttribEXT;
    }
    if (strcmp("glEnableVertexArrayEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVertexArrayEXT);
        _glEnableVertexArrayEXT = (PFN_GLENABLEVERTEXARRAYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVertexArrayEXT;
    }
    if (strcmp("glFlushMappedNamedBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushMappedNamedBufferRangeEXT);
        _glFlushMappedNamedBufferRangeEXT = (PFN_GLFLUSHMAPPEDNAMEDBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushMappedNamedBufferRangeEXT;
    }
    if (strcmp("glFramebufferDrawBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferDrawBufferEXT);
        _glFramebufferDrawBufferEXT = (PFN_GLFRAMEBUFFERDRAWBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferDrawBufferEXT;
    }
    if (strcmp("glFramebufferDrawBuffersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferDrawBuffersEXT);
        _glFramebufferDrawBuffersEXT = (PFN_GLFRAMEBUFFERDRAWBUFFERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferDrawBuffersEXT;
    }
    if (strcmp("glFramebufferReadBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferReadBufferEXT);
        _glFramebufferReadBufferEXT = (PFN_GLFRAMEBUFFERREADBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferReadBufferEXT;
    }
    if (strcmp("glGenerateMultiTexMipmapEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenerateMultiTexMipmapEXT);
        _glGenerateMultiTexMipmapEXT = (PFN_GLGENERATEMULTITEXMIPMAPEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenerateMultiTexMipmapEXT;
    }
    if (strcmp("glGenerateTextureMipmapEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenerateTextureMipmapEXT);
        _glGenerateTextureMipmapEXT = (PFN_GLGENERATETEXTUREMIPMAPEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenerateTextureMipmapEXT;
    }
    if (strcmp("glGetCompressedMultiTexImageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCompressedMultiTexImageEXT);
        _glGetCompressedMultiTexImageEXT = (PFN_GLGETCOMPRESSEDMULTITEXIMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCompressedMultiTexImageEXT;
    }
    if (strcmp("glGetCompressedTextureImageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCompressedTextureImageEXT);
        _glGetCompressedTextureImageEXT = (PFN_GLGETCOMPRESSEDTEXTUREIMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCompressedTextureImageEXT;
    }
    if (strcmp("glGetDoubleIndexedvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDoubleIndexedvEXT);
        _glGetDoubleIndexedvEXT = (PFN_GLGETDOUBLEINDEXEDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDoubleIndexedvEXT;
    }
    if (strcmp("glGetDoublei_vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDoublei_vEXT);
        _glGetDoublei_vEXT = (PFN_GLGETDOUBLEI_VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDoublei_vEXT;
    }
    if (strcmp("glGetFloatIndexedvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFloatIndexedvEXT);
        _glGetFloatIndexedvEXT = (PFN_GLGETFLOATINDEXEDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFloatIndexedvEXT;
    }
    if (strcmp("glGetFloati_vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFloati_vEXT);
        _glGetFloati_vEXT = (PFN_GLGETFLOATI_VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFloati_vEXT;
    }
    if (strcmp("glGetFramebufferParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFramebufferParameterivEXT);
        _glGetFramebufferParameterivEXT = (PFN_GLGETFRAMEBUFFERPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFramebufferParameterivEXT;
    }
    if (strcmp("glGetMultiTexEnvfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexEnvfvEXT);
        _glGetMultiTexEnvfvEXT = (PFN_GLGETMULTITEXENVFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexEnvfvEXT;
    }
    if (strcmp("glGetMultiTexEnvivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexEnvivEXT);
        _glGetMultiTexEnvivEXT = (PFN_GLGETMULTITEXENVIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexEnvivEXT;
    }
    if (strcmp("glGetMultiTexGendvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexGendvEXT);
        _glGetMultiTexGendvEXT = (PFN_GLGETMULTITEXGENDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexGendvEXT;
    }
    if (strcmp("glGetMultiTexGenfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexGenfvEXT);
        _glGetMultiTexGenfvEXT = (PFN_GLGETMULTITEXGENFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexGenfvEXT;
    }
    if (strcmp("glGetMultiTexGenivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexGenivEXT);
        _glGetMultiTexGenivEXT = (PFN_GLGETMULTITEXGENIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexGenivEXT;
    }
    if (strcmp("glGetMultiTexImageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexImageEXT);
        _glGetMultiTexImageEXT = (PFN_GLGETMULTITEXIMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexImageEXT;
    }
    if (strcmp("glGetMultiTexLevelParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexLevelParameterfvEXT);
        _glGetMultiTexLevelParameterfvEXT = (PFN_GLGETMULTITEXLEVELPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexLevelParameterfvEXT;
    }
    if (strcmp("glGetMultiTexLevelParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexLevelParameterivEXT);
        _glGetMultiTexLevelParameterivEXT = (PFN_GLGETMULTITEXLEVELPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexLevelParameterivEXT;
    }
    if (strcmp("glGetMultiTexParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterIivEXT);
        _glGetMultiTexParameterIivEXT = (PFN_GLGETMULTITEXPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterIivEXT;
    }
    if (strcmp("glGetMultiTexParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterIuivEXT);
        _glGetMultiTexParameterIuivEXT = (PFN_GLGETMULTITEXPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterIuivEXT;
    }
    if (strcmp("glGetMultiTexParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterfvEXT);
        _glGetMultiTexParameterfvEXT = (PFN_GLGETMULTITEXPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterfvEXT;
    }
    if (strcmp("glGetMultiTexParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterivEXT);
        _glGetMultiTexParameterivEXT = (PFN_GLGETMULTITEXPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultiTexParameterivEXT;
    }
    if (strcmp("glGetNamedBufferParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameterivEXT);
        _glGetNamedBufferParameterivEXT = (PFN_GLGETNAMEDBUFFERPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameterivEXT;
    }
    if (strcmp("glGetNamedBufferPointervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferPointervEXT);
        _glGetNamedBufferPointervEXT = (PFN_GLGETNAMEDBUFFERPOINTERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferPointervEXT;
    }
    if (strcmp("glGetNamedBufferSubDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferSubDataEXT);
        _glGetNamedBufferSubDataEXT = (PFN_GLGETNAMEDBUFFERSUBDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferSubDataEXT;
    }
    if (strcmp("glGetNamedFramebufferAttachmentParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferAttachmentParameterivEXT);
        _glGetNamedFramebufferAttachmentParameterivEXT = (PFN_GLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferAttachmentParameterivEXT;
    }
    if (strcmp("glGetNamedFramebufferParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferParameterivEXT);
        _glGetNamedFramebufferParameterivEXT = (PFN_GLGETNAMEDFRAMEBUFFERPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedFramebufferParameterivEXT;
    }
    if (strcmp("glGetNamedProgramLocalParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterIivEXT);
        _glGetNamedProgramLocalParameterIivEXT = (PFN_GLGETNAMEDPROGRAMLOCALPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterIivEXT;
    }
    if (strcmp("glGetNamedProgramLocalParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterIuivEXT);
        _glGetNamedProgramLocalParameterIuivEXT = (PFN_GLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterIuivEXT;
    }
    if (strcmp("glGetNamedProgramLocalParameterdvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterdvEXT);
        _glGetNamedProgramLocalParameterdvEXT = (PFN_GLGETNAMEDPROGRAMLOCALPARAMETERDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterdvEXT;
    }
    if (strcmp("glGetNamedProgramLocalParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterfvEXT);
        _glGetNamedProgramLocalParameterfvEXT = (PFN_GLGETNAMEDPROGRAMLOCALPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramLocalParameterfvEXT;
    }
    if (strcmp("glGetNamedProgramStringEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramStringEXT);
        _glGetNamedProgramStringEXT = (PFN_GLGETNAMEDPROGRAMSTRINGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramStringEXT;
    }
    if (strcmp("glGetNamedProgramivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramivEXT);
        _glGetNamedProgramivEXT = (PFN_GLGETNAMEDPROGRAMIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedProgramivEXT;
    }
    if (strcmp("glGetNamedRenderbufferParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedRenderbufferParameterivEXT);
        _glGetNamedRenderbufferParameterivEXT = (PFN_GLGETNAMEDRENDERBUFFERPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedRenderbufferParameterivEXT;
    }
    if (strcmp("glGetPointerIndexedvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPointerIndexedvEXT);
        _glGetPointerIndexedvEXT = (PFN_GLGETPOINTERINDEXEDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPointerIndexedvEXT;
    }
    if (strcmp("glGetPointeri_vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPointeri_vEXT);
        _glGetPointeri_vEXT = (PFN_GLGETPOINTERI_VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPointeri_vEXT;
    }
    if (strcmp("glGetTextureImageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureImageEXT);
        _glGetTextureImageEXT = (PFN_GLGETTEXTUREIMAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureImageEXT;
    }
    if (strcmp("glGetTextureLevelParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameterfvEXT);
        _glGetTextureLevelParameterfvEXT = (PFN_GLGETTEXTURELEVELPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameterfvEXT;
    }
    if (strcmp("glGetTextureLevelParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameterivEXT);
        _glGetTextureLevelParameterivEXT = (PFN_GLGETTEXTURELEVELPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureLevelParameterivEXT;
    }
    if (strcmp("glGetTextureParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIivEXT);
        _glGetTextureParameterIivEXT = (PFN_GLGETTEXTUREPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIivEXT;
    }
    if (strcmp("glGetTextureParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIuivEXT);
        _glGetTextureParameterIuivEXT = (PFN_GLGETTEXTUREPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterIuivEXT;
    }
    if (strcmp("glGetTextureParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterfvEXT);
        _glGetTextureParameterfvEXT = (PFN_GLGETTEXTUREPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterfvEXT;
    }
    if (strcmp("glGetTextureParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterivEXT);
        _glGetTextureParameterivEXT = (PFN_GLGETTEXTUREPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureParameterivEXT;
    }
    if (strcmp("glGetVertexArrayIntegeri_vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIntegeri_vEXT);
        _glGetVertexArrayIntegeri_vEXT = (PFN_GLGETVERTEXARRAYINTEGERI_VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIntegeri_vEXT;
    }
    if (strcmp("glGetVertexArrayIntegervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIntegervEXT);
        _glGetVertexArrayIntegervEXT = (PFN_GLGETVERTEXARRAYINTEGERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayIntegervEXT;
    }
    if (strcmp("glGetVertexArrayPointeri_vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayPointeri_vEXT);
        _glGetVertexArrayPointeri_vEXT = (PFN_GLGETVERTEXARRAYPOINTERI_VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayPointeri_vEXT;
    }
    if (strcmp("glGetVertexArrayPointervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayPointervEXT);
        _glGetVertexArrayPointervEXT = (PFN_GLGETVERTEXARRAYPOINTERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexArrayPointervEXT;
    }
    if (strcmp("glMapNamedBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapNamedBufferEXT);
        _glMapNamedBufferEXT = (PFN_GLMAPNAMEDBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapNamedBufferEXT;
    }
    if (strcmp("glMapNamedBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapNamedBufferRangeEXT);
        _glMapNamedBufferRangeEXT = (PFN_GLMAPNAMEDBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapNamedBufferRangeEXT;
    }
    if (strcmp("glMatrixFrustumEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixFrustumEXT);
        _glMatrixFrustumEXT = (PFN_GLMATRIXFRUSTUMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixFrustumEXT;
    }
    if (strcmp("glMatrixLoadIdentityEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoadIdentityEXT);
        _glMatrixLoadIdentityEXT = (PFN_GLMATRIXLOADIDENTITYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoadIdentityEXT;
    }
    if (strcmp("glMatrixLoadTransposedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoadTransposedEXT);
        _glMatrixLoadTransposedEXT = (PFN_GLMATRIXLOADTRANSPOSEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoadTransposedEXT;
    }
    if (strcmp("glMatrixLoadTransposefEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoadTransposefEXT);
        _glMatrixLoadTransposefEXT = (PFN_GLMATRIXLOADTRANSPOSEFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoadTransposefEXT;
    }
    if (strcmp("glMatrixLoaddEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoaddEXT);
        _glMatrixLoaddEXT = (PFN_GLMATRIXLOADDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoaddEXT;
    }
    if (strcmp("glMatrixLoadfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoadfEXT);
        _glMatrixLoadfEXT = (PFN_GLMATRIXLOADFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoadfEXT;
    }
    if (strcmp("glMatrixMultTransposedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMultTransposedEXT);
        _glMatrixMultTransposedEXT = (PFN_GLMATRIXMULTTRANSPOSEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMultTransposedEXT;
    }
    if (strcmp("glMatrixMultTransposefEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMultTransposefEXT);
        _glMatrixMultTransposefEXT = (PFN_GLMATRIXMULTTRANSPOSEFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMultTransposefEXT;
    }
    if (strcmp("glMatrixMultdEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMultdEXT);
        _glMatrixMultdEXT = (PFN_GLMATRIXMULTDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMultdEXT;
    }
    if (strcmp("glMatrixMultfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMultfEXT);
        _glMatrixMultfEXT = (PFN_GLMATRIXMULTFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMultfEXT;
    }
    if (strcmp("glMatrixOrthoEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixOrthoEXT);
        _glMatrixOrthoEXT = (PFN_GLMATRIXORTHOEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixOrthoEXT;
    }
    if (strcmp("glMatrixPopEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixPopEXT);
        _glMatrixPopEXT = (PFN_GLMATRIXPOPEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixPopEXT;
    }
    if (strcmp("glMatrixPushEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixPushEXT);
        _glMatrixPushEXT = (PFN_GLMATRIXPUSHEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixPushEXT;
    }
    if (strcmp("glMatrixRotatedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixRotatedEXT);
        _glMatrixRotatedEXT = (PFN_GLMATRIXROTATEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixRotatedEXT;
    }
    if (strcmp("glMatrixRotatefEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixRotatefEXT);
        _glMatrixRotatefEXT = (PFN_GLMATRIXROTATEFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixRotatefEXT;
    }
    if (strcmp("glMatrixScaledEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixScaledEXT);
        _glMatrixScaledEXT = (PFN_GLMATRIXSCALEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixScaledEXT;
    }
    if (strcmp("glMatrixScalefEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixScalefEXT);
        _glMatrixScalefEXT = (PFN_GLMATRIXSCALEFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixScalefEXT;
    }
    if (strcmp("glMatrixTranslatedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixTranslatedEXT);
        _glMatrixTranslatedEXT = (PFN_GLMATRIXTRANSLATEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixTranslatedEXT;
    }
    if (strcmp("glMatrixTranslatefEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixTranslatefEXT);
        _glMatrixTranslatefEXT = (PFN_GLMATRIXTRANSLATEFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixTranslatefEXT;
    }
    if (strcmp("glMultiTexBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexBufferEXT);
        _glMultiTexBufferEXT = (PFN_GLMULTITEXBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexBufferEXT;
    }
    if (strcmp("glMultiTexCoordPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordPointerEXT);
        _glMultiTexCoordPointerEXT = (PFN_GLMULTITEXCOORDPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoordPointerEXT;
    }
    if (strcmp("glMultiTexEnvfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexEnvfEXT);
        _glMultiTexEnvfEXT = (PFN_GLMULTITEXENVFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexEnvfEXT;
    }
    if (strcmp("glMultiTexEnvfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexEnvfvEXT);
        _glMultiTexEnvfvEXT = (PFN_GLMULTITEXENVFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexEnvfvEXT;
    }
    if (strcmp("glMultiTexEnviEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexEnviEXT);
        _glMultiTexEnviEXT = (PFN_GLMULTITEXENVIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexEnviEXT;
    }
    if (strcmp("glMultiTexEnvivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexEnvivEXT);
        _glMultiTexEnvivEXT = (PFN_GLMULTITEXENVIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexEnvivEXT;
    }
    if (strcmp("glMultiTexGendEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexGendEXT);
        _glMultiTexGendEXT = (PFN_GLMULTITEXGENDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexGendEXT;
    }
    if (strcmp("glMultiTexGendvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexGendvEXT);
        _glMultiTexGendvEXT = (PFN_GLMULTITEXGENDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexGendvEXT;
    }
    if (strcmp("glMultiTexGenfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexGenfEXT);
        _glMultiTexGenfEXT = (PFN_GLMULTITEXGENFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexGenfEXT;
    }
    if (strcmp("glMultiTexGenfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexGenfvEXT);
        _glMultiTexGenfvEXT = (PFN_GLMULTITEXGENFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexGenfvEXT;
    }
    if (strcmp("glMultiTexGeniEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexGeniEXT);
        _glMultiTexGeniEXT = (PFN_GLMULTITEXGENIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexGeniEXT;
    }
    if (strcmp("glMultiTexGenivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexGenivEXT);
        _glMultiTexGenivEXT = (PFN_GLMULTITEXGENIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexGenivEXT;
    }
    if (strcmp("glMultiTexImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexImage1DEXT);
        _glMultiTexImage1DEXT = (PFN_GLMULTITEXIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexImage1DEXT;
    }
    if (strcmp("glMultiTexImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexImage2DEXT);
        _glMultiTexImage2DEXT = (PFN_GLMULTITEXIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexImage2DEXT;
    }
    if (strcmp("glMultiTexImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexImage3DEXT);
        _glMultiTexImage3DEXT = (PFN_GLMULTITEXIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexImage3DEXT;
    }
    if (strcmp("glMultiTexParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterIivEXT);
        _glMultiTexParameterIivEXT = (PFN_GLMULTITEXPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterIivEXT;
    }
    if (strcmp("glMultiTexParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterIuivEXT);
        _glMultiTexParameterIuivEXT = (PFN_GLMULTITEXPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterIuivEXT;
    }
    if (strcmp("glMultiTexParameterfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterfEXT);
        _glMultiTexParameterfEXT = (PFN_GLMULTITEXPARAMETERFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterfEXT;
    }
    if (strcmp("glMultiTexParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterfvEXT);
        _glMultiTexParameterfvEXT = (PFN_GLMULTITEXPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterfvEXT;
    }
    if (strcmp("glMultiTexParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexParameteriEXT);
        _glMultiTexParameteriEXT = (PFN_GLMULTITEXPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexParameteriEXT;
    }
    if (strcmp("glMultiTexParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterivEXT);
        _glMultiTexParameterivEXT = (PFN_GLMULTITEXPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexParameterivEXT;
    }
    if (strcmp("glMultiTexRenderbufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexRenderbufferEXT);
        _glMultiTexRenderbufferEXT = (PFN_GLMULTITEXRENDERBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexRenderbufferEXT;
    }
    if (strcmp("glMultiTexSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexSubImage1DEXT);
        _glMultiTexSubImage1DEXT = (PFN_GLMULTITEXSUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexSubImage1DEXT;
    }
    if (strcmp("glMultiTexSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexSubImage2DEXT);
        _glMultiTexSubImage2DEXT = (PFN_GLMULTITEXSUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexSubImage2DEXT;
    }
    if (strcmp("glMultiTexSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexSubImage3DEXT);
        _glMultiTexSubImage3DEXT = (PFN_GLMULTITEXSUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexSubImage3DEXT;
    }
    if (strcmp("glNamedBufferDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferDataEXT);
        _glNamedBufferDataEXT = (PFN_GLNAMEDBUFFERDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferDataEXT;
    }
    if (strcmp("glNamedBufferStorageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferStorageEXT);
        _glNamedBufferStorageEXT = (PFN_GLNAMEDBUFFERSTORAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferStorageEXT;
    }
    if (strcmp("glNamedBufferSubDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedBufferSubDataEXT);
        _glNamedBufferSubDataEXT = (PFN_GLNAMEDBUFFERSUBDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedBufferSubDataEXT;
    }
    if (strcmp("glNamedCopyBufferSubDataEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedCopyBufferSubDataEXT);
        _glNamedCopyBufferSubDataEXT = (PFN_GLNAMEDCOPYBUFFERSUBDATAEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedCopyBufferSubDataEXT;
    }
    if (strcmp("glNamedFramebufferParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferParameteriEXT);
        _glNamedFramebufferParameteriEXT = (PFN_GLNAMEDFRAMEBUFFERPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferParameteriEXT;
    }
    if (strcmp("glNamedFramebufferRenderbufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferRenderbufferEXT);
        _glNamedFramebufferRenderbufferEXT = (PFN_GLNAMEDFRAMEBUFFERRENDERBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferRenderbufferEXT;
    }
    if (strcmp("glNamedFramebufferTexture1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture1DEXT);
        _glNamedFramebufferTexture1DEXT = (PFN_GLNAMEDFRAMEBUFFERTEXTURE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture1DEXT;
    }
    if (strcmp("glNamedFramebufferTexture2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture2DEXT);
        _glNamedFramebufferTexture2DEXT = (PFN_GLNAMEDFRAMEBUFFERTEXTURE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture2DEXT;
    }
    if (strcmp("glNamedFramebufferTexture3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture3DEXT);
        _glNamedFramebufferTexture3DEXT = (PFN_GLNAMEDFRAMEBUFFERTEXTURE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTexture3DEXT;
    }
    if (strcmp("glNamedFramebufferTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureEXT);
        _glNamedFramebufferTextureEXT = (PFN_GLNAMEDFRAMEBUFFERTEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureEXT;
    }
    if (strcmp("glNamedFramebufferTextureFaceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureFaceEXT);
        _glNamedFramebufferTextureFaceEXT = (PFN_GLNAMEDFRAMEBUFFERTEXTUREFACEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureFaceEXT;
    }
    if (strcmp("glNamedFramebufferTextureLayerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureLayerEXT);
        _glNamedFramebufferTextureLayerEXT = (PFN_GLNAMEDFRAMEBUFFERTEXTURELAYEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureLayerEXT;
    }
    if (strcmp("glNamedProgramLocalParameter4dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4dEXT);
        _glNamedProgramLocalParameter4dEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETER4DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4dEXT;
    }
    if (strcmp("glNamedProgramLocalParameter4dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4dvEXT);
        _glNamedProgramLocalParameter4dvEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETER4DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4dvEXT;
    }
    if (strcmp("glNamedProgramLocalParameter4fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4fEXT);
        _glNamedProgramLocalParameter4fEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETER4FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4fEXT;
    }
    if (strcmp("glNamedProgramLocalParameter4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4fvEXT);
        _glNamedProgramLocalParameter4fvEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETER4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameter4fvEXT;
    }
    if (strcmp("glNamedProgramLocalParameterI4iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4iEXT);
        _glNamedProgramLocalParameterI4iEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERI4IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4iEXT;
    }
    if (strcmp("glNamedProgramLocalParameterI4ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4ivEXT);
        _glNamedProgramLocalParameterI4ivEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERI4IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4ivEXT;
    }
    if (strcmp("glNamedProgramLocalParameterI4uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4uiEXT);
        _glNamedProgramLocalParameterI4uiEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERI4UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4uiEXT;
    }
    if (strcmp("glNamedProgramLocalParameterI4uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4uivEXT);
        _glNamedProgramLocalParameterI4uivEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERI4UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameterI4uivEXT;
    }
    if (strcmp("glNamedProgramLocalParameters4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameters4fvEXT);
        _glNamedProgramLocalParameters4fvEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERS4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParameters4fvEXT;
    }
    if (strcmp("glNamedProgramLocalParametersI4ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParametersI4ivEXT);
        _glNamedProgramLocalParametersI4ivEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERSI4IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParametersI4ivEXT;
    }
    if (strcmp("glNamedProgramLocalParametersI4uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParametersI4uivEXT);
        _glNamedProgramLocalParametersI4uivEXT = (PFN_GLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramLocalParametersI4uivEXT;
    }
    if (strcmp("glNamedProgramStringEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedProgramStringEXT);
        _glNamedProgramStringEXT = (PFN_GLNAMEDPROGRAMSTRINGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedProgramStringEXT;
    }
    if (strcmp("glNamedRenderbufferStorageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageEXT);
        _glNamedRenderbufferStorageEXT = (PFN_GLNAMEDRENDERBUFFERSTORAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageEXT;
    }
    if (strcmp("glNamedRenderbufferStorageMultisampleCoverageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageMultisampleCoverageEXT);
        _glNamedRenderbufferStorageMultisampleCoverageEXT = (PFN_GLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageMultisampleCoverageEXT;
    }
    if (strcmp("glNamedRenderbufferStorageMultisampleEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageMultisampleEXT);
        _glNamedRenderbufferStorageMultisampleEXT = (PFN_GLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedRenderbufferStorageMultisampleEXT;
    }
    if (strcmp("glProgramUniform1dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1dEXT);
        _glProgramUniform1dEXT = (PFN_GLPROGRAMUNIFORM1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1dEXT;
    }
    if (strcmp("glProgramUniform1dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1dvEXT);
        _glProgramUniform1dvEXT = (PFN_GLPROGRAMUNIFORM1DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1dvEXT;
    }
    if (strcmp("glProgramUniform1fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1fEXT);
        _glProgramUniform1fEXT = (PFN_GLPROGRAMUNIFORM1FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1fEXT;
    }
    if (strcmp("glProgramUniform1fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1fvEXT);
        _glProgramUniform1fvEXT = (PFN_GLPROGRAMUNIFORM1FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1fvEXT;
    }
    if (strcmp("glProgramUniform1iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1iEXT);
        _glProgramUniform1iEXT = (PFN_GLPROGRAMUNIFORM1IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1iEXT;
    }
    if (strcmp("glProgramUniform1ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ivEXT);
        _glProgramUniform1ivEXT = (PFN_GLPROGRAMUNIFORM1IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ivEXT;
    }
    if (strcmp("glProgramUniform1uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1uiEXT);
        _glProgramUniform1uiEXT = (PFN_GLPROGRAMUNIFORM1UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1uiEXT;
    }
    if (strcmp("glProgramUniform1uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1uivEXT);
        _glProgramUniform1uivEXT = (PFN_GLPROGRAMUNIFORM1UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1uivEXT;
    }
    if (strcmp("glProgramUniform2dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2dEXT);
        _glProgramUniform2dEXT = (PFN_GLPROGRAMUNIFORM2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2dEXT;
    }
    if (strcmp("glProgramUniform2dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2dvEXT);
        _glProgramUniform2dvEXT = (PFN_GLPROGRAMUNIFORM2DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2dvEXT;
    }
    if (strcmp("glProgramUniform2fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2fEXT);
        _glProgramUniform2fEXT = (PFN_GLPROGRAMUNIFORM2FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2fEXT;
    }
    if (strcmp("glProgramUniform2fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2fvEXT);
        _glProgramUniform2fvEXT = (PFN_GLPROGRAMUNIFORM2FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2fvEXT;
    }
    if (strcmp("glProgramUniform2iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2iEXT);
        _glProgramUniform2iEXT = (PFN_GLPROGRAMUNIFORM2IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2iEXT;
    }
    if (strcmp("glProgramUniform2ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ivEXT);
        _glProgramUniform2ivEXT = (PFN_GLPROGRAMUNIFORM2IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ivEXT;
    }
    if (strcmp("glProgramUniform2uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2uiEXT);
        _glProgramUniform2uiEXT = (PFN_GLPROGRAMUNIFORM2UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2uiEXT;
    }
    if (strcmp("glProgramUniform2uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2uivEXT);
        _glProgramUniform2uivEXT = (PFN_GLPROGRAMUNIFORM2UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2uivEXT;
    }
    if (strcmp("glProgramUniform3dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3dEXT);
        _glProgramUniform3dEXT = (PFN_GLPROGRAMUNIFORM3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3dEXT;
    }
    if (strcmp("glProgramUniform3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3dvEXT);
        _glProgramUniform3dvEXT = (PFN_GLPROGRAMUNIFORM3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3dvEXT;
    }
    if (strcmp("glProgramUniform3fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3fEXT);
        _glProgramUniform3fEXT = (PFN_GLPROGRAMUNIFORM3FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3fEXT;
    }
    if (strcmp("glProgramUniform3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3fvEXT);
        _glProgramUniform3fvEXT = (PFN_GLPROGRAMUNIFORM3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3fvEXT;
    }
    if (strcmp("glProgramUniform3iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3iEXT);
        _glProgramUniform3iEXT = (PFN_GLPROGRAMUNIFORM3IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3iEXT;
    }
    if (strcmp("glProgramUniform3ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ivEXT);
        _glProgramUniform3ivEXT = (PFN_GLPROGRAMUNIFORM3IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ivEXT;
    }
    if (strcmp("glProgramUniform3uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3uiEXT);
        _glProgramUniform3uiEXT = (PFN_GLPROGRAMUNIFORM3UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3uiEXT;
    }
    if (strcmp("glProgramUniform3uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3uivEXT);
        _glProgramUniform3uivEXT = (PFN_GLPROGRAMUNIFORM3UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3uivEXT;
    }
    if (strcmp("glProgramUniform4dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4dEXT);
        _glProgramUniform4dEXT = (PFN_GLPROGRAMUNIFORM4DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4dEXT;
    }
    if (strcmp("glProgramUniform4dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4dvEXT);
        _glProgramUniform4dvEXT = (PFN_GLPROGRAMUNIFORM4DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4dvEXT;
    }
    if (strcmp("glProgramUniform4fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4fEXT);
        _glProgramUniform4fEXT = (PFN_GLPROGRAMUNIFORM4FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4fEXT;
    }
    if (strcmp("glProgramUniform4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4fvEXT);
        _glProgramUniform4fvEXT = (PFN_GLPROGRAMUNIFORM4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4fvEXT;
    }
    if (strcmp("glProgramUniform4iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4iEXT);
        _glProgramUniform4iEXT = (PFN_GLPROGRAMUNIFORM4IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4iEXT;
    }
    if (strcmp("glProgramUniform4ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ivEXT);
        _glProgramUniform4ivEXT = (PFN_GLPROGRAMUNIFORM4IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ivEXT;
    }
    if (strcmp("glProgramUniform4uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4uiEXT);
        _glProgramUniform4uiEXT = (PFN_GLPROGRAMUNIFORM4UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4uiEXT;
    }
    if (strcmp("glProgramUniform4uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4uivEXT);
        _glProgramUniform4uivEXT = (PFN_GLPROGRAMUNIFORM4UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4uivEXT;
    }
    if (strcmp("glProgramUniformMatrix2dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2dvEXT);
        _glProgramUniformMatrix2dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX2DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2dvEXT;
    }
    if (strcmp("glProgramUniformMatrix2fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2fvEXT);
        _glProgramUniformMatrix2fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX2FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2fvEXT;
    }
    if (strcmp("glProgramUniformMatrix2x3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3dvEXT);
        _glProgramUniformMatrix2x3dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX2X3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3dvEXT;
    }
    if (strcmp("glProgramUniformMatrix2x3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3fvEXT);
        _glProgramUniformMatrix2x3fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX2X3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x3fvEXT;
    }
    if (strcmp("glProgramUniformMatrix2x4dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4dvEXT);
        _glProgramUniformMatrix2x4dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX2X4DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4dvEXT;
    }
    if (strcmp("glProgramUniformMatrix2x4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4fvEXT);
        _glProgramUniformMatrix2x4fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX2X4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix2x4fvEXT;
    }
    if (strcmp("glProgramUniformMatrix3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3dvEXT);
        _glProgramUniformMatrix3dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3dvEXT;
    }
    if (strcmp("glProgramUniformMatrix3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3fvEXT);
        _glProgramUniformMatrix3fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3fvEXT;
    }
    if (strcmp("glProgramUniformMatrix3x2dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2dvEXT);
        _glProgramUniformMatrix3x2dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX3X2DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2dvEXT;
    }
    if (strcmp("glProgramUniformMatrix3x2fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2fvEXT);
        _glProgramUniformMatrix3x2fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX3X2FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x2fvEXT;
    }
    if (strcmp("glProgramUniformMatrix3x4dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4dvEXT);
        _glProgramUniformMatrix3x4dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX3X4DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4dvEXT;
    }
    if (strcmp("glProgramUniformMatrix3x4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4fvEXT);
        _glProgramUniformMatrix3x4fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX3X4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix3x4fvEXT;
    }
    if (strcmp("glProgramUniformMatrix4dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4dvEXT);
        _glProgramUniformMatrix4dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX4DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4dvEXT;
    }
    if (strcmp("glProgramUniformMatrix4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4fvEXT);
        _glProgramUniformMatrix4fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4fvEXT;
    }
    if (strcmp("glProgramUniformMatrix4x2dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2dvEXT);
        _glProgramUniformMatrix4x2dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX4X2DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2dvEXT;
    }
    if (strcmp("glProgramUniformMatrix4x2fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2fvEXT);
        _glProgramUniformMatrix4x2fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX4X2FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x2fvEXT;
    }
    if (strcmp("glProgramUniformMatrix4x3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3dvEXT);
        _glProgramUniformMatrix4x3dvEXT = (PFN_GLPROGRAMUNIFORMMATRIX4X3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3dvEXT;
    }
    if (strcmp("glProgramUniformMatrix4x3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3fvEXT);
        _glProgramUniformMatrix4x3fvEXT = (PFN_GLPROGRAMUNIFORMMATRIX4X3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformMatrix4x3fvEXT;
    }
    if (strcmp("glPushClientAttribDefaultEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushClientAttribDefaultEXT);
        _glPushClientAttribDefaultEXT = (PFN_GLPUSHCLIENTATTRIBDEFAULTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushClientAttribDefaultEXT;
    }
    if (strcmp("glTextureBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureBufferEXT);
        _glTextureBufferEXT = (PFN_GLTEXTUREBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureBufferEXT;
    }
    if (strcmp("glTextureBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureBufferRangeEXT);
        _glTextureBufferRangeEXT = (PFN_GLTEXTUREBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureBufferRangeEXT;
    }
    if (strcmp("glTextureImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage1DEXT);
        _glTextureImage1DEXT = (PFN_GLTEXTUREIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage1DEXT;
    }
    if (strcmp("glTextureImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage2DEXT);
        _glTextureImage2DEXT = (PFN_GLTEXTUREIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage2DEXT;
    }
    if (strcmp("glTextureImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage3DEXT);
        _glTextureImage3DEXT = (PFN_GLTEXTUREIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage3DEXT;
    }
    if (strcmp("glTexturePageCommitmentEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexturePageCommitmentEXT);
        _glTexturePageCommitmentEXT = (PFN_GLTEXTUREPAGECOMMITMENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexturePageCommitmentEXT;
    }
    if (strcmp("glTextureParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterIivEXT);
        _glTextureParameterIivEXT = (PFN_GLTEXTUREPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterIivEXT;
    }
    if (strcmp("glTextureParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterIuivEXT);
        _glTextureParameterIuivEXT = (PFN_GLTEXTUREPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterIuivEXT;
    }
    if (strcmp("glTextureParameterfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterfEXT);
        _glTextureParameterfEXT = (PFN_GLTEXTUREPARAMETERFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterfEXT;
    }
    if (strcmp("glTextureParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterfvEXT);
        _glTextureParameterfvEXT = (PFN_GLTEXTUREPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterfvEXT;
    }
    if (strcmp("glTextureParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameteriEXT);
        _glTextureParameteriEXT = (PFN_GLTEXTUREPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameteriEXT;
    }
    if (strcmp("glTextureParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureParameterivEXT);
        _glTextureParameterivEXT = (PFN_GLTEXTUREPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureParameterivEXT;
    }
    if (strcmp("glTextureRenderbufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureRenderbufferEXT);
        _glTextureRenderbufferEXT = (PFN_GLTEXTURERENDERBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureRenderbufferEXT;
    }
    if (strcmp("glTextureStorage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage1DEXT);
        _glTextureStorage1DEXT = (PFN_GLTEXTURESTORAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage1DEXT;
    }
    if (strcmp("glTextureStorage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage2DEXT);
        _glTextureStorage2DEXT = (PFN_GLTEXTURESTORAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage2DEXT;
    }
    if (strcmp("glTextureStorage2DMultisampleEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage2DMultisampleEXT);
        _glTextureStorage2DMultisampleEXT = (PFN_GLTEXTURESTORAGE2DMULTISAMPLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage2DMultisampleEXT;
    }
    if (strcmp("glTextureStorage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage3DEXT);
        _glTextureStorage3DEXT = (PFN_GLTEXTURESTORAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage3DEXT;
    }
    if (strcmp("glTextureStorage3DMultisampleEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureStorage3DMultisampleEXT);
        _glTextureStorage3DMultisampleEXT = (PFN_GLTEXTURESTORAGE3DMULTISAMPLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureStorage3DMultisampleEXT;
    }
    if (strcmp("glTextureSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureSubImage1DEXT);
        _glTextureSubImage1DEXT = (PFN_GLTEXTURESUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureSubImage1DEXT;
    }
    if (strcmp("glTextureSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureSubImage2DEXT);
        _glTextureSubImage2DEXT = (PFN_GLTEXTURESUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureSubImage2DEXT;
    }
    if (strcmp("glTextureSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureSubImage3DEXT);
        _glTextureSubImage3DEXT = (PFN_GLTEXTURESUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureSubImage3DEXT;
    }
    if (strcmp("glUnmapNamedBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapNamedBufferEXT);
        _glUnmapNamedBufferEXT = (PFN_GLUNMAPNAMEDBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapNamedBufferEXT;
    }
    if (strcmp("glVertexArrayBindVertexBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayBindVertexBufferEXT);
        _glVertexArrayBindVertexBufferEXT = (PFN_GLVERTEXARRAYBINDVERTEXBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayBindVertexBufferEXT;
    }
    if (strcmp("glVertexArrayColorOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayColorOffsetEXT);
        _glVertexArrayColorOffsetEXT = (PFN_GLVERTEXARRAYCOLOROFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayColorOffsetEXT;
    }
    if (strcmp("glVertexArrayEdgeFlagOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayEdgeFlagOffsetEXT);
        _glVertexArrayEdgeFlagOffsetEXT = (PFN_GLVERTEXARRAYEDGEFLAGOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayEdgeFlagOffsetEXT;
    }
    if (strcmp("glVertexArrayFogCoordOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayFogCoordOffsetEXT);
        _glVertexArrayFogCoordOffsetEXT = (PFN_GLVERTEXARRAYFOGCOORDOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayFogCoordOffsetEXT;
    }
    if (strcmp("glVertexArrayIndexOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayIndexOffsetEXT);
        _glVertexArrayIndexOffsetEXT = (PFN_GLVERTEXARRAYINDEXOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayIndexOffsetEXT;
    }
    if (strcmp("glVertexArrayMultiTexCoordOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayMultiTexCoordOffsetEXT);
        _glVertexArrayMultiTexCoordOffsetEXT = (PFN_GLVERTEXARRAYMULTITEXCOORDOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayMultiTexCoordOffsetEXT;
    }
    if (strcmp("glVertexArrayNormalOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayNormalOffsetEXT);
        _glVertexArrayNormalOffsetEXT = (PFN_GLVERTEXARRAYNORMALOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayNormalOffsetEXT;
    }
    if (strcmp("glVertexArraySecondaryColorOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArraySecondaryColorOffsetEXT);
        _glVertexArraySecondaryColorOffsetEXT = (PFN_GLVERTEXARRAYSECONDARYCOLOROFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArraySecondaryColorOffsetEXT;
    }
    if (strcmp("glVertexArrayTexCoordOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayTexCoordOffsetEXT);
        _glVertexArrayTexCoordOffsetEXT = (PFN_GLVERTEXARRAYTEXCOORDOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayTexCoordOffsetEXT;
    }
    if (strcmp("glVertexArrayVertexAttribBindingEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribBindingEXT);
        _glVertexArrayVertexAttribBindingEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBBINDINGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribBindingEXT;
    }
    if (strcmp("glVertexArrayVertexAttribDivisorEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribDivisorEXT);
        _glVertexArrayVertexAttribDivisorEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBDIVISOREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribDivisorEXT;
    }
    if (strcmp("glVertexArrayVertexAttribFormatEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribFormatEXT);
        _glVertexArrayVertexAttribFormatEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBFORMATEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribFormatEXT;
    }
    if (strcmp("glVertexArrayVertexAttribIFormatEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribIFormatEXT);
        _glVertexArrayVertexAttribIFormatEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBIFORMATEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribIFormatEXT;
    }
    if (strcmp("glVertexArrayVertexAttribIOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribIOffsetEXT);
        _glVertexArrayVertexAttribIOffsetEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBIOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribIOffsetEXT;
    }
    if (strcmp("glVertexArrayVertexAttribLFormatEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribLFormatEXT);
        _glVertexArrayVertexAttribLFormatEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBLFORMATEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribLFormatEXT;
    }
    if (strcmp("glVertexArrayVertexAttribLOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribLOffsetEXT);
        _glVertexArrayVertexAttribLOffsetEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBLOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribLOffsetEXT;
    }
    if (strcmp("glVertexArrayVertexAttribOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribOffsetEXT);
        _glVertexArrayVertexAttribOffsetEXT = (PFN_GLVERTEXARRAYVERTEXATTRIBOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexAttribOffsetEXT;
    }
    if (strcmp("glVertexArrayVertexBindingDivisorEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexBindingDivisorEXT);
        _glVertexArrayVertexBindingDivisorEXT = (PFN_GLVERTEXARRAYVERTEXBINDINGDIVISOREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexBindingDivisorEXT;
    }
    if (strcmp("glVertexArrayVertexOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexOffsetEXT);
        _glVertexArrayVertexOffsetEXT = (PFN_GLVERTEXARRAYVERTEXOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayVertexOffsetEXT;
    }
    if (strcmp("glDiscardFramebufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDiscardFramebufferEXT);
        _glDiscardFramebufferEXT = (PFN_GLDISCARDFRAMEBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDiscardFramebufferEXT;
    }
    if (strcmp("glGenQueriesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenQueriesEXT);
        _glGenQueriesEXT = (PFN_GLGENQUERIESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenQueriesEXT;
    }
    if (strcmp("glDeleteQueriesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteQueriesEXT);
        _glDeleteQueriesEXT = (PFN_GLDELETEQUERIESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteQueriesEXT;
    }
    if (strcmp("glIsQueryEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsQueryEXT);
        _glIsQueryEXT = (PFN_GLISQUERYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsQueryEXT;
    }
    if (strcmp("glBeginQueryEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginQueryEXT);
        _glBeginQueryEXT = (PFN_GLBEGINQUERYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginQueryEXT;
    }
    if (strcmp("glEndQueryEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndQueryEXT);
        _glEndQueryEXT = (PFN_GLENDQUERYEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndQueryEXT;
    }
    if (strcmp("glQueryCounterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glQueryCounterEXT);
        _glQueryCounterEXT = (PFN_GLQUERYCOUNTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glQueryCounterEXT;
    }
    if (strcmp("glGetQueryivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryivEXT);
        _glGetQueryivEXT = (PFN_GLGETQUERYIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryivEXT;
    }
    if (strcmp("glGetQueryObjectivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectivEXT);
        _glGetQueryObjectivEXT = (PFN_GLGETQUERYOBJECTIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectivEXT;
    }
    if (strcmp("glGetQueryObjectuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuivEXT);
        _glGetQueryObjectuivEXT = (PFN_GLGETQUERYOBJECTUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectuivEXT;
    }
    if (strcmp("glGetQueryObjecti64vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjecti64vEXT);
        _glGetQueryObjecti64vEXT = (PFN_GLGETQUERYOBJECTI64VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjecti64vEXT;
    }
    if (strcmp("glGetQueryObjectui64vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectui64vEXT);
        _glGetQueryObjectui64vEXT = (PFN_GLGETQUERYOBJECTUI64VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetQueryObjectui64vEXT;
    }
    if (strcmp("glDrawBuffersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffersEXT);
        _glDrawBuffersEXT = (PFN_GLDRAWBUFFERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffersEXT;
    }
    if (strcmp("glColorMaskIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorMaskIndexedEXT);
        _glColorMaskIndexedEXT = (PFN_GLCOLORMASKINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorMaskIndexedEXT;
    }
    if (strcmp("glGetBooleanIndexedvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBooleanIndexedvEXT);
        _glGetBooleanIndexedvEXT = (PFN_GLGETBOOLEANINDEXEDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBooleanIndexedvEXT;
    }
    if (strcmp("glGetIntegerIndexedvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetIntegerIndexedvEXT);
        _glGetIntegerIndexedvEXT = (PFN_GLGETINTEGERINDEXEDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetIntegerIndexedvEXT;
    }
    if (strcmp("glEnableIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableIndexedEXT);
        _glEnableIndexedEXT = (PFN_GLENABLEINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableIndexedEXT;
    }
    if (strcmp("glDisableIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableIndexedEXT);
        _glDisableIndexedEXT = (PFN_GLDISABLEINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableIndexedEXT;
    }
    if (strcmp("glIsEnabledIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsEnabledIndexedEXT);
        _glIsEnabledIndexedEXT = (PFN_GLISENABLEDINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsEnabledIndexedEXT;
    }
    if (strcmp("glEnableiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableiEXT);
        _glEnableiEXT = (PFN_GLENABLEIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableiEXT;
    }
    if (strcmp("glDisableiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableiEXT);
        _glDisableiEXT = (PFN_GLDISABLEIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableiEXT;
    }
    if (strcmp("glBlendEquationiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationiEXT);
        _glBlendEquationiEXT = (PFN_GLBLENDEQUATIONIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationiEXT;
    }
    if (strcmp("glBlendEquationSeparateiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateiEXT);
        _glBlendEquationSeparateiEXT = (PFN_GLBLENDEQUATIONSEPARATEIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateiEXT;
    }
    if (strcmp("glBlendFunciEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFunciEXT);
        _glBlendFunciEXT = (PFN_GLBLENDFUNCIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFunciEXT;
    }
    if (strcmp("glBlendFuncSeparateiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateiEXT);
        _glBlendFuncSeparateiEXT = (PFN_GLBLENDFUNCSEPARATEIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateiEXT;
    }
    if (strcmp("glColorMaskiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorMaskiEXT);
        _glColorMaskiEXT = (PFN_GLCOLORMASKIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorMaskiEXT;
    }
    if (strcmp("glIsEnablediEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsEnablediEXT);
        _glIsEnablediEXT = (PFN_GLISENABLEDIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsEnablediEXT;
    }
    if (strcmp("glDrawElementsBaseVertexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsBaseVertexEXT);
        _glDrawElementsBaseVertexEXT = (PFN_GLDRAWELEMENTSBASEVERTEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsBaseVertexEXT;
    }
    if (strcmp("glDrawRangeElementsBaseVertexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementsBaseVertexEXT);
        _glDrawRangeElementsBaseVertexEXT = (PFN_GLDRAWRANGEELEMENTSBASEVERTEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementsBaseVertexEXT;
    }
    if (strcmp("glDrawElementsInstancedBaseVertexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertexEXT);
        _glDrawElementsInstancedBaseVertexEXT = (PFN_GLDRAWELEMENTSINSTANCEDBASEVERTEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedBaseVertexEXT;
    }
    if (strcmp("glMultiDrawElementsBaseVertexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsBaseVertexEXT);
        _glMultiDrawElementsBaseVertexEXT = (PFN_GLMULTIDRAWELEMENTSBASEVERTEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsBaseVertexEXT;
    }
    if (strcmp("glDrawArraysInstancedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedEXT);
        _glDrawArraysInstancedEXT = (PFN_GLDRAWARRAYSINSTANCEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysInstancedEXT;
    }
    if (strcmp("glDrawElementsInstancedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedEXT);
        _glDrawElementsInstancedEXT = (PFN_GLDRAWELEMENTSINSTANCEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawElementsInstancedEXT;
    }
    if (strcmp("glDrawRangeElementsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementsEXT);
        _glDrawRangeElementsEXT = (PFN_GLDRAWRANGEELEMENTSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawRangeElementsEXT;
    }
    if (strcmp("glFogCoordfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordfEXT);
        _glFogCoordfEXT = (PFN_GLFOGCOORDFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordfEXT;
    }
    if (strcmp("glFogCoordfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordfvEXT);
        _glFogCoordfvEXT = (PFN_GLFOGCOORDFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordfvEXT;
    }
    if (strcmp("glFogCoorddEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoorddEXT);
        _glFogCoorddEXT = (PFN_GLFOGCOORDDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoorddEXT;
    }
    if (strcmp("glFogCoorddvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoorddvEXT);
        _glFogCoorddvEXT = (PFN_GLFOGCOORDDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoorddvEXT;
    }
    if (strcmp("glFogCoordPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordPointerEXT);
        _glFogCoordPointerEXT = (PFN_GLFOGCOORDPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordPointerEXT;
    }
    if (strcmp("glBlitFramebufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlitFramebufferEXT);
        _glBlitFramebufferEXT = (PFN_GLBLITFRAMEBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlitFramebufferEXT;
    }
    if (strcmp("glRenderbufferStorageMultisampleEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleEXT);
        _glRenderbufferStorageMultisampleEXT = (PFN_GLRENDERBUFFERSTORAGEMULTISAMPLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleEXT;
    }
    if (strcmp("glIsRenderbufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsRenderbufferEXT);
        _glIsRenderbufferEXT = (PFN_GLISRENDERBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsRenderbufferEXT;
    }
    if (strcmp("glBindRenderbufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindRenderbufferEXT);
        _glBindRenderbufferEXT = (PFN_GLBINDRENDERBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindRenderbufferEXT;
    }
    if (strcmp("glDeleteRenderbuffersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteRenderbuffersEXT);
        _glDeleteRenderbuffersEXT = (PFN_GLDELETERENDERBUFFERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteRenderbuffersEXT;
    }
    if (strcmp("glGenRenderbuffersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenRenderbuffersEXT);
        _glGenRenderbuffersEXT = (PFN_GLGENRENDERBUFFERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenRenderbuffersEXT;
    }
    if (strcmp("glRenderbufferStorageEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageEXT);
        _glRenderbufferStorageEXT = (PFN_GLRENDERBUFFERSTORAGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageEXT;
    }
    if (strcmp("glGetRenderbufferParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetRenderbufferParameterivEXT);
        _glGetRenderbufferParameterivEXT = (PFN_GLGETRENDERBUFFERPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetRenderbufferParameterivEXT;
    }
    if (strcmp("glIsFramebufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsFramebufferEXT);
        _glIsFramebufferEXT = (PFN_GLISFRAMEBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsFramebufferEXT;
    }
    if (strcmp("glBindFramebufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFramebufferEXT);
        _glBindFramebufferEXT = (PFN_GLBINDFRAMEBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFramebufferEXT;
    }
    if (strcmp("glDeleteFramebuffersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteFramebuffersEXT);
        _glDeleteFramebuffersEXT = (PFN_GLDELETEFRAMEBUFFERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteFramebuffersEXT;
    }
    if (strcmp("glGenFramebuffersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenFramebuffersEXT);
        _glGenFramebuffersEXT = (PFN_GLGENFRAMEBUFFERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenFramebuffersEXT;
    }
    if (strcmp("glCheckFramebufferStatusEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCheckFramebufferStatusEXT);
        _glCheckFramebufferStatusEXT = (PFN_GLCHECKFRAMEBUFFERSTATUSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCheckFramebufferStatusEXT;
    }
    if (strcmp("glFramebufferTexture1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture1DEXT);
        _glFramebufferTexture1DEXT = (PFN_GLFRAMEBUFFERTEXTURE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture1DEXT;
    }
    if (strcmp("glFramebufferTexture2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DEXT);
        _glFramebufferTexture2DEXT = (PFN_GLFRAMEBUFFERTEXTURE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DEXT;
    }
    if (strcmp("glFramebufferTexture3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture3DEXT);
        _glFramebufferTexture3DEXT = (PFN_GLFRAMEBUFFERTEXTURE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture3DEXT;
    }
    if (strcmp("glFramebufferRenderbufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferRenderbufferEXT);
        _glFramebufferRenderbufferEXT = (PFN_GLFRAMEBUFFERRENDERBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferRenderbufferEXT;
    }
    if (strcmp("glGetFramebufferAttachmentParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFramebufferAttachmentParameterivEXT);
        _glGetFramebufferAttachmentParameterivEXT = (PFN_GLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFramebufferAttachmentParameterivEXT;
    }
    if (strcmp("glGenerateMipmapEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenerateMipmapEXT);
        _glGenerateMipmapEXT = (PFN_GLGENERATEMIPMAPEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenerateMipmapEXT;
    }
    if (strcmp("glFramebufferTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureEXT);
        _glFramebufferTextureEXT = (PFN_GLFRAMEBUFFERTEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureEXT;
    }
    if (strcmp("glProgramParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameteriEXT);
        _glProgramParameteriEXT = (PFN_GLPROGRAMPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameteriEXT;
    }
    if (strcmp("glProgramEnvParameters4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameters4fvEXT);
        _glProgramEnvParameters4fvEXT = (PFN_GLPROGRAMENVPARAMETERS4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameters4fvEXT;
    }
    if (strcmp("glProgramLocalParameters4fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameters4fvEXT);
        _glProgramLocalParameters4fvEXT = (PFN_GLPROGRAMLOCALPARAMETERS4FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameters4fvEXT;
    }
    if (strcmp("glGetUniformuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformuivEXT);
        _glGetUniformuivEXT = (PFN_GLGETUNIFORMUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformuivEXT;
    }
    if (strcmp("glGetFragDataLocationEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragDataLocationEXT);
        _glGetFragDataLocationEXT = (PFN_GLGETFRAGDATALOCATIONEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragDataLocationEXT;
    }
    if (strcmp("glUniform1uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1uiEXT);
        _glUniform1uiEXT = (PFN_GLUNIFORM1UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1uiEXT;
    }
    if (strcmp("glUniform2uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2uiEXT);
        _glUniform2uiEXT = (PFN_GLUNIFORM2UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2uiEXT;
    }
    if (strcmp("glUniform3uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3uiEXT);
        _glUniform3uiEXT = (PFN_GLUNIFORM3UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3uiEXT;
    }
    if (strcmp("glUniform4uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4uiEXT);
        _glUniform4uiEXT = (PFN_GLUNIFORM4UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4uiEXT;
    }
    if (strcmp("glUniform1uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1uivEXT);
        _glUniform1uivEXT = (PFN_GLUNIFORM1UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1uivEXT;
    }
    if (strcmp("glUniform2uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2uivEXT);
        _glUniform2uivEXT = (PFN_GLUNIFORM2UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2uivEXT;
    }
    if (strcmp("glUniform3uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3uivEXT);
        _glUniform3uivEXT = (PFN_GLUNIFORM3UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3uivEXT;
    }
    if (strcmp("glUniform4uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4uivEXT);
        _glUniform4uivEXT = (PFN_GLUNIFORM4UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4uivEXT;
    }
    if (strcmp("glGetHistogramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHistogramEXT);
        _glGetHistogramEXT = (PFN_GLGETHISTOGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHistogramEXT;
    }
    if (strcmp("glGetHistogramParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameterfvEXT);
        _glGetHistogramParameterfvEXT = (PFN_GLGETHISTOGRAMPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameterfvEXT;
    }
    if (strcmp("glGetHistogramParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameterivEXT);
        _glGetHistogramParameterivEXT = (PFN_GLGETHISTOGRAMPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetHistogramParameterivEXT;
    }
    if (strcmp("glGetMinmaxEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMinmaxEXT);
        _glGetMinmaxEXT = (PFN_GLGETMINMAXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMinmaxEXT;
    }
    if (strcmp("glGetMinmaxParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameterfvEXT);
        _glGetMinmaxParameterfvEXT = (PFN_GLGETMINMAXPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameterfvEXT;
    }
    if (strcmp("glGetMinmaxParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameterivEXT);
        _glGetMinmaxParameterivEXT = (PFN_GLGETMINMAXPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMinmaxParameterivEXT;
    }
    if (strcmp("glHistogramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glHistogramEXT);
        _glHistogramEXT = (PFN_GLHISTOGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glHistogramEXT;
    }
    if (strcmp("glMinmaxEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMinmaxEXT);
        _glMinmaxEXT = (PFN_GLMINMAXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMinmaxEXT;
    }
    if (strcmp("glResetHistogramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResetHistogramEXT);
        _glResetHistogramEXT = (PFN_GLRESETHISTOGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResetHistogramEXT;
    }
    if (strcmp("glResetMinmaxEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResetMinmaxEXT);
        _glResetMinmaxEXT = (PFN_GLRESETMINMAXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResetMinmaxEXT;
    }
    if (strcmp("glIndexFuncEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexFuncEXT);
        _glIndexFuncEXT = (PFN_GLINDEXFUNCEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexFuncEXT;
    }
    if (strcmp("glIndexMaterialEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexMaterialEXT);
        _glIndexMaterialEXT = (PFN_GLINDEXMATERIALEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexMaterialEXT;
    }
    if (strcmp("glVertexAttribDivisorEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisorEXT);
        _glVertexAttribDivisorEXT = (PFN_GLVERTEXATTRIBDIVISOREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribDivisorEXT;
    }
    if (strcmp("glApplyTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glApplyTextureEXT);
        _glApplyTextureEXT = (PFN_GLAPPLYTEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glApplyTextureEXT;
    }
    if (strcmp("glTextureLightEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureLightEXT);
        _glTextureLightEXT = (PFN_GLTEXTURELIGHTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureLightEXT;
    }
    if (strcmp("glTextureMaterialEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureMaterialEXT);
        _glTextureMaterialEXT = (PFN_GLTEXTUREMATERIALEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureMaterialEXT;
    }
    if (strcmp("glMapBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapBufferRangeEXT);
        _glMapBufferRangeEXT = (PFN_GLMAPBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapBufferRangeEXT;
    }
    if (strcmp("glFlushMappedBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushMappedBufferRangeEXT);
        _glFlushMappedBufferRangeEXT = (PFN_GLFLUSHMAPPEDBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushMappedBufferRangeEXT;
    }
    if (strcmp("glDrawMeshTasksEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawMeshTasksEXT);
        _glDrawMeshTasksEXT = (PFN_GLDRAWMESHTASKSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawMeshTasksEXT;
    }
    if (strcmp("glDrawMeshTasksIndirectEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawMeshTasksIndirectEXT);
        _glDrawMeshTasksIndirectEXT = (PFN_GLDRAWMESHTASKSINDIRECTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawMeshTasksIndirectEXT;
    }
    if (strcmp("glMultiDrawMeshTasksIndirectEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawMeshTasksIndirectEXT);
        _glMultiDrawMeshTasksIndirectEXT = (PFN_GLMULTIDRAWMESHTASKSINDIRECTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawMeshTasksIndirectEXT;
    }
    if (strcmp("glMultiDrawMeshTasksIndirectCountEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawMeshTasksIndirectCountEXT);
        _glMultiDrawMeshTasksIndirectCountEXT = (PFN_GLMULTIDRAWMESHTASKSINDIRECTCOUNTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawMeshTasksIndirectCountEXT;
    }
    if (strcmp("glMultiDrawArraysEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysEXT);
        _glMultiDrawArraysEXT = (PFN_GLMULTIDRAWARRAYSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysEXT;
    }
    if (strcmp("glMultiDrawElementsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsEXT);
        _glMultiDrawElementsEXT = (PFN_GLMULTIDRAWELEMENTSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsEXT;
    }
    if (strcmp("glMultiDrawArraysIndirectEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectEXT);
        _glMultiDrawArraysIndirectEXT = (PFN_GLMULTIDRAWARRAYSINDIRECTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectEXT;
    }
    if (strcmp("glMultiDrawElementsIndirectEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectEXT);
        _glMultiDrawElementsIndirectEXT = (PFN_GLMULTIDRAWELEMENTSINDIRECTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectEXT;
    }
    if (strcmp("glSampleMaskEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleMaskEXT);
        _glSampleMaskEXT = (PFN_GLSAMPLEMASKEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleMaskEXT;
    }
    if (strcmp("glSamplePatternEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplePatternEXT);
        _glSamplePatternEXT = (PFN_GLSAMPLEPATTERNEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplePatternEXT;
    }
    if (strcmp("glFramebufferTexture2DMultisampleEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DMultisampleEXT);
        _glFramebufferTexture2DMultisampleEXT = (PFN_GLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DMultisampleEXT;
    }
    if (strcmp("glReadBufferIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadBufferIndexedEXT);
        _glReadBufferIndexedEXT = (PFN_GLREADBUFFERINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadBufferIndexedEXT;
    }
    if (strcmp("glDrawBuffersIndexedEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffersIndexedEXT);
        _glDrawBuffersIndexedEXT = (PFN_GLDRAWBUFFERSINDEXEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffersIndexedEXT;
    }
    if (strcmp("glGetIntegeri_vEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetIntegeri_vEXT);
        _glGetIntegeri_vEXT = (PFN_GLGETINTEGERI_VEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetIntegeri_vEXT;
    }
    if (strcmp("glColorTableEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTableEXT);
        _glColorTableEXT = (PFN_GLCOLORTABLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTableEXT;
    }
    if (strcmp("glGetColorTableEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableEXT);
        _glGetColorTableEXT = (PFN_GLGETCOLORTABLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableEXT;
    }
    if (strcmp("glGetColorTableParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterivEXT);
        _glGetColorTableParameterivEXT = (PFN_GLGETCOLORTABLEPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterivEXT;
    }
    if (strcmp("glGetColorTableParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterfvEXT);
        _glGetColorTableParameterfvEXT = (PFN_GLGETCOLORTABLEPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterfvEXT;
    }
    if (strcmp("glPixelTransformParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameteriEXT);
        _glPixelTransformParameteriEXT = (PFN_GLPIXELTRANSFORMPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameteriEXT;
    }
    if (strcmp("glPixelTransformParameterfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameterfEXT);
        _glPixelTransformParameterfEXT = (PFN_GLPIXELTRANSFORMPARAMETERFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameterfEXT;
    }
    if (strcmp("glPixelTransformParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameterivEXT);
        _glPixelTransformParameterivEXT = (PFN_GLPIXELTRANSFORMPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameterivEXT;
    }
    if (strcmp("glPixelTransformParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameterfvEXT);
        _glPixelTransformParameterfvEXT = (PFN_GLPIXELTRANSFORMPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTransformParameterfvEXT;
    }
    if (strcmp("glGetPixelTransformParameterivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelTransformParameterivEXT);
        _glGetPixelTransformParameterivEXT = (PFN_GLGETPIXELTRANSFORMPARAMETERIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelTransformParameterivEXT;
    }
    if (strcmp("glGetPixelTransformParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelTransformParameterfvEXT);
        _glGetPixelTransformParameterfvEXT = (PFN_GLGETPIXELTRANSFORMPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelTransformParameterfvEXT;
    }
    if (strcmp("glPointParameterfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfEXT);
        _glPointParameterfEXT = (PFN_GLPOINTPARAMETERFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfEXT;
    }
    if (strcmp("glPointParameterfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfvEXT);
        _glPointParameterfvEXT = (PFN_GLPOINTPARAMETERFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfvEXT;
    }
    if (strcmp("glPolygonOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPolygonOffsetEXT);
        _glPolygonOffsetEXT = (PFN_GLPOLYGONOFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPolygonOffsetEXT;
    }
    if (strcmp("glPolygonOffsetClampEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPolygonOffsetClampEXT);
        _glPolygonOffsetClampEXT = (PFN_GLPOLYGONOFFSETCLAMPEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPolygonOffsetClampEXT;
    }
    if (strcmp("glPrimitiveBoundingBoxEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrimitiveBoundingBoxEXT);
        _glPrimitiveBoundingBoxEXT = (PFN_GLPRIMITIVEBOUNDINGBOXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrimitiveBoundingBoxEXT;
    }
    if (strcmp("glProvokingVertexEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProvokingVertexEXT);
        _glProvokingVertexEXT = (PFN_GLPROVOKINGVERTEXEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProvokingVertexEXT;
    }
    if (strcmp("glRasterSamplesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRasterSamplesEXT);
        _glRasterSamplesEXT = (PFN_GLRASTERSAMPLESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRasterSamplesEXT;
    }
    if (strcmp("glGetGraphicsResetStatusEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatusEXT);
        _glGetGraphicsResetStatusEXT = (PFN_GLGETGRAPHICSRESETSTATUSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatusEXT;
    }
    if (strcmp("glReadnPixelsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadnPixelsEXT);
        _glReadnPixelsEXT = (PFN_GLREADNPIXELSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadnPixelsEXT;
    }
    if (strcmp("glGetnUniformfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformfvEXT);
        _glGetnUniformfvEXT = (PFN_GLGETNUNIFORMFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformfvEXT;
    }
    if (strcmp("glGetnUniformivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformivEXT);
        _glGetnUniformivEXT = (PFN_GLGETNUNIFORMIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformivEXT;
    }
    if (strcmp("glSecondaryColor3bEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3bEXT);
        _glSecondaryColor3bEXT = (PFN_GLSECONDARYCOLOR3BEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3bEXT;
    }
    if (strcmp("glSecondaryColor3bvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3bvEXT);
        _glSecondaryColor3bvEXT = (PFN_GLSECONDARYCOLOR3BVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3bvEXT;
    }
    if (strcmp("glSecondaryColor3dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3dEXT);
        _glSecondaryColor3dEXT = (PFN_GLSECONDARYCOLOR3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3dEXT;
    }
    if (strcmp("glSecondaryColor3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3dvEXT);
        _glSecondaryColor3dvEXT = (PFN_GLSECONDARYCOLOR3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3dvEXT;
    }
    if (strcmp("glSecondaryColor3fEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3fEXT);
        _glSecondaryColor3fEXT = (PFN_GLSECONDARYCOLOR3FEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3fEXT;
    }
    if (strcmp("glSecondaryColor3fvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3fvEXT);
        _glSecondaryColor3fvEXT = (PFN_GLSECONDARYCOLOR3FVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3fvEXT;
    }
    if (strcmp("glSecondaryColor3iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3iEXT);
        _glSecondaryColor3iEXT = (PFN_GLSECONDARYCOLOR3IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3iEXT;
    }
    if (strcmp("glSecondaryColor3ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ivEXT);
        _glSecondaryColor3ivEXT = (PFN_GLSECONDARYCOLOR3IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ivEXT;
    }
    if (strcmp("glSecondaryColor3sEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3sEXT);
        _glSecondaryColor3sEXT = (PFN_GLSECONDARYCOLOR3SEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3sEXT;
    }
    if (strcmp("glSecondaryColor3svEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3svEXT);
        _glSecondaryColor3svEXT = (PFN_GLSECONDARYCOLOR3SVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3svEXT;
    }
    if (strcmp("glSecondaryColor3ubEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ubEXT);
        _glSecondaryColor3ubEXT = (PFN_GLSECONDARYCOLOR3UBEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ubEXT;
    }
    if (strcmp("glSecondaryColor3ubvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ubvEXT);
        _glSecondaryColor3ubvEXT = (PFN_GLSECONDARYCOLOR3UBVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3ubvEXT;
    }
    if (strcmp("glSecondaryColor3uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3uiEXT);
        _glSecondaryColor3uiEXT = (PFN_GLSECONDARYCOLOR3UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3uiEXT;
    }
    if (strcmp("glSecondaryColor3uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3uivEXT);
        _glSecondaryColor3uivEXT = (PFN_GLSECONDARYCOLOR3UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3uivEXT;
    }
    if (strcmp("glSecondaryColor3usEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3usEXT);
        _glSecondaryColor3usEXT = (PFN_GLSECONDARYCOLOR3USEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3usEXT;
    }
    if (strcmp("glSecondaryColor3usvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3usvEXT);
        _glSecondaryColor3usvEXT = (PFN_GLSECONDARYCOLOR3USVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3usvEXT;
    }
    if (strcmp("glSecondaryColorPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColorPointerEXT);
        _glSecondaryColorPointerEXT = (PFN_GLSECONDARYCOLORPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColorPointerEXT;
    }
    if (strcmp("glUseShaderProgramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUseShaderProgramEXT);
        _glUseShaderProgramEXT = (PFN_GLUSESHADERPROGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUseShaderProgramEXT;
    }
    if (strcmp("glActiveProgramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveProgramEXT);
        _glActiveProgramEXT = (PFN_GLACTIVEPROGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveProgramEXT;
    }
    if (strcmp("glCreateShaderProgramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateShaderProgramEXT);
        _glCreateShaderProgramEXT = (PFN_GLCREATESHADERPROGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateShaderProgramEXT;
    }
    if (strcmp("glActiveShaderProgramEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveShaderProgramEXT);
        _glActiveShaderProgramEXT = (PFN_GLACTIVESHADERPROGRAMEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveShaderProgramEXT;
    }
    if (strcmp("glBindProgramPipelineEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindProgramPipelineEXT);
        _glBindProgramPipelineEXT = (PFN_GLBINDPROGRAMPIPELINEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindProgramPipelineEXT;
    }
    if (strcmp("glCreateShaderProgramvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreateShaderProgramvEXT);
        _glCreateShaderProgramvEXT = (PFN_GLCREATESHADERPROGRAMVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreateShaderProgramvEXT;
    }
    if (strcmp("glDeleteProgramPipelinesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteProgramPipelinesEXT);
        _glDeleteProgramPipelinesEXT = (PFN_GLDELETEPROGRAMPIPELINESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteProgramPipelinesEXT;
    }
    if (strcmp("glGenProgramPipelinesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenProgramPipelinesEXT);
        _glGenProgramPipelinesEXT = (PFN_GLGENPROGRAMPIPELINESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenProgramPipelinesEXT;
    }
    if (strcmp("glGetProgramPipelineInfoLogEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineInfoLogEXT);
        _glGetProgramPipelineInfoLogEXT = (PFN_GLGETPROGRAMPIPELINEINFOLOGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineInfoLogEXT;
    }
    if (strcmp("glGetProgramPipelineivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineivEXT);
        _glGetProgramPipelineivEXT = (PFN_GLGETPROGRAMPIPELINEIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramPipelineivEXT;
    }
    if (strcmp("glIsProgramPipelineEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsProgramPipelineEXT);
        _glIsProgramPipelineEXT = (PFN_GLISPROGRAMPIPELINEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsProgramPipelineEXT;
    }
    if (strcmp("glUseProgramStagesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUseProgramStagesEXT);
        _glUseProgramStagesEXT = (PFN_GLUSEPROGRAMSTAGESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUseProgramStagesEXT;
    }
    if (strcmp("glValidateProgramPipelineEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glValidateProgramPipelineEXT);
        _glValidateProgramPipelineEXT = (PFN_GLVALIDATEPROGRAMPIPELINEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glValidateProgramPipelineEXT;
    }
    if (strcmp("glBindImageTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindImageTextureEXT);
        _glBindImageTextureEXT = (PFN_GLBINDIMAGETEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindImageTextureEXT;
    }
    if (strcmp("glMemoryBarrierEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMemoryBarrierEXT);
        _glMemoryBarrierEXT = (PFN_GLMEMORYBARRIEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMemoryBarrierEXT;
    }
    if (strcmp("glFramebufferPixelLocalStorageSizeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferPixelLocalStorageSizeEXT);
        _glFramebufferPixelLocalStorageSizeEXT = (PFN_GLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferPixelLocalStorageSizeEXT;
    }
    if (strcmp("glGetFramebufferPixelLocalStorageSizeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFramebufferPixelLocalStorageSizeEXT);
        _glGetFramebufferPixelLocalStorageSizeEXT = (PFN_GLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFramebufferPixelLocalStorageSizeEXT;
    }
    if (strcmp("glClearPixelLocalStorageuiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearPixelLocalStorageuiEXT);
        _glClearPixelLocalStorageuiEXT = (PFN_GLCLEARPIXELLOCALSTORAGEUIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearPixelLocalStorageuiEXT;
    }
    if (strcmp("glTexPageCommitmentEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexPageCommitmentEXT);
        _glTexPageCommitmentEXT = (PFN_GLTEXPAGECOMMITMENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexPageCommitmentEXT;
    }
    if (strcmp("glStencilClearTagEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilClearTagEXT);
        _glStencilClearTagEXT = (PFN_GLSTENCILCLEARTAGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilClearTagEXT;
    }
    if (strcmp("glActiveStencilFaceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveStencilFaceEXT);
        _glActiveStencilFaceEXT = (PFN_GLACTIVESTENCILFACEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveStencilFaceEXT;
    }
    if (strcmp("glTexSubImage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage1DEXT);
        _glTexSubImage1DEXT = (PFN_GLTEXSUBIMAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage1DEXT;
    }
    if (strcmp("glTexSubImage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage2DEXT);
        _glTexSubImage2DEXT = (PFN_GLTEXSUBIMAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage2DEXT;
    }
    if (strcmp("glPatchParameteriEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPatchParameteriEXT);
        _glPatchParameteriEXT = (PFN_GLPATCHPARAMETERIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPatchParameteriEXT;
    }
    if (strcmp("glTexImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage3DEXT);
        _glTexImage3DEXT = (PFN_GLTEXIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage3DEXT;
    }
    if (strcmp("glTexSubImage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage3DEXT);
        _glTexSubImage3DEXT = (PFN_GLTEXSUBIMAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage3DEXT;
    }
    if (strcmp("glFramebufferTextureLayerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureLayerEXT);
        _glFramebufferTextureLayerEXT = (PFN_GLFRAMEBUFFERTEXTURELAYEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureLayerEXT;
    }
    if (strcmp("glTexParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterIivEXT);
        _glTexParameterIivEXT = (PFN_GLTEXPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterIivEXT;
    }
    if (strcmp("glTexParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexParameterIuivEXT);
        _glTexParameterIuivEXT = (PFN_GLTEXPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexParameterIuivEXT;
    }
    if (strcmp("glGetTexParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIivEXT);
        _glGetTexParameterIivEXT = (PFN_GLGETTEXPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIivEXT;
    }
    if (strcmp("glGetTexParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIuivEXT);
        _glGetTexParameterIuivEXT = (PFN_GLGETTEXPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexParameterIuivEXT;
    }
    if (strcmp("glSamplerParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIivEXT);
        _glSamplerParameterIivEXT = (PFN_GLSAMPLERPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIivEXT;
    }
    if (strcmp("glSamplerParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIuivEXT);
        _glSamplerParameterIuivEXT = (PFN_GLSAMPLERPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplerParameterIuivEXT;
    }
    if (strcmp("glGetSamplerParameterIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIivEXT);
        _glGetSamplerParameterIivEXT = (PFN_GLGETSAMPLERPARAMETERIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIivEXT;
    }
    if (strcmp("glGetSamplerParameterIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIuivEXT);
        _glGetSamplerParameterIuivEXT = (PFN_GLGETSAMPLERPARAMETERIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSamplerParameterIuivEXT;
    }
    if (strcmp("glTexBufferEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBufferEXT);
        _glTexBufferEXT = (PFN_GLTEXBUFFEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBufferEXT;
    }
    if (strcmp("glTexBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexBufferRangeEXT);
        _glTexBufferRangeEXT = (PFN_GLTEXBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexBufferRangeEXT;
    }
    if (strcmp("glClearColorIiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearColorIiEXT);
        _glClearColorIiEXT = (PFN_GLCLEARCOLORIIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearColorIiEXT;
    }
    if (strcmp("glClearColorIuiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearColorIuiEXT);
        _glClearColorIuiEXT = (PFN_GLCLEARCOLORIUIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearColorIuiEXT;
    }
    if (strcmp("glAreTexturesResidentEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAreTexturesResidentEXT);
        _glAreTexturesResidentEXT = (PFN_GLARETEXTURESRESIDENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAreTexturesResidentEXT;
    }
    if (strcmp("glBindTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTextureEXT);
        _glBindTextureEXT = (PFN_GLBINDTEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTextureEXT;
    }
    if (strcmp("glDeleteTexturesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteTexturesEXT);
        _glDeleteTexturesEXT = (PFN_GLDELETETEXTURESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteTexturesEXT;
    }
    if (strcmp("glGenTexturesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenTexturesEXT);
        _glGenTexturesEXT = (PFN_GLGENTEXTURESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenTexturesEXT;
    }
    if (strcmp("glIsTextureEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsTextureEXT);
        _glIsTextureEXT = (PFN_GLISTEXTUREEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsTextureEXT;
    }
    if (strcmp("glPrioritizeTexturesEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrioritizeTexturesEXT);
        _glPrioritizeTexturesEXT = (PFN_GLPRIORITIZETEXTURESEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrioritizeTexturesEXT;
    }
    if (strcmp("glTextureNormalEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureNormalEXT);
        _glTextureNormalEXT = (PFN_GLTEXTURENORMALEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureNormalEXT;
    }
    if (strcmp("glTexStorage1DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage1DEXT);
        _glTexStorage1DEXT = (PFN_GLTEXSTORAGE1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage1DEXT;
    }
    if (strcmp("glTexStorage2DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage2DEXT);
        _glTexStorage2DEXT = (PFN_GLTEXSTORAGE2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage2DEXT;
    }
    if (strcmp("glTexStorage3DEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexStorage3DEXT);
        _glTexStorage3DEXT = (PFN_GLTEXSTORAGE3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexStorage3DEXT;
    }
    if (strcmp("glTextureViewEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureViewEXT);
        _glTextureViewEXT = (PFN_GLTEXTUREVIEWEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureViewEXT;
    }
    if (strcmp("glBeginTransformFeedbackEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginTransformFeedbackEXT);
        _glBeginTransformFeedbackEXT = (PFN_GLBEGINTRANSFORMFEEDBACKEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginTransformFeedbackEXT;
    }
    if (strcmp("glEndTransformFeedbackEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndTransformFeedbackEXT);
        _glEndTransformFeedbackEXT = (PFN_GLENDTRANSFORMFEEDBACKEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndTransformFeedbackEXT;
    }
    if (strcmp("glBindBufferRangeEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferRangeEXT);
        _glBindBufferRangeEXT = (PFN_GLBINDBUFFERRANGEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferRangeEXT;
    }
    if (strcmp("glBindBufferOffsetEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferOffsetEXT);
        _glBindBufferOffsetEXT = (PFN_GLBINDBUFFEROFFSETEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferOffsetEXT;
    }
    if (strcmp("glBindBufferBaseEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferBaseEXT);
        _glBindBufferBaseEXT = (PFN_GLBINDBUFFERBASEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferBaseEXT;
    }
    if (strcmp("glTransformFeedbackVaryingsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackVaryingsEXT);
        _glTransformFeedbackVaryingsEXT = (PFN_GLTRANSFORMFEEDBACKVARYINGSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackVaryingsEXT;
    }
    if (strcmp("glGetTransformFeedbackVaryingEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackVaryingEXT);
        _glGetTransformFeedbackVaryingEXT = (PFN_GLGETTRANSFORMFEEDBACKVARYINGEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackVaryingEXT;
    }
    if (strcmp("glArrayElementEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glArrayElementEXT);
        _glArrayElementEXT = (PFN_GLARRAYELEMENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glArrayElementEXT;
    }
    if (strcmp("glColorPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorPointerEXT);
        _glColorPointerEXT = (PFN_GLCOLORPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorPointerEXT;
    }
    if (strcmp("glDrawArraysEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawArraysEXT);
        _glDrawArraysEXT = (PFN_GLDRAWARRAYSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawArraysEXT;
    }
    if (strcmp("glEdgeFlagPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEdgeFlagPointerEXT);
        _glEdgeFlagPointerEXT = (PFN_GLEDGEFLAGPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEdgeFlagPointerEXT;
    }
    if (strcmp("glGetPointervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPointervEXT);
        _glGetPointervEXT = (PFN_GLGETPOINTERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPointervEXT;
    }
    if (strcmp("glIndexPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexPointerEXT);
        _glIndexPointerEXT = (PFN_GLINDEXPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexPointerEXT;
    }
    if (strcmp("glNormalPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalPointerEXT);
        _glNormalPointerEXT = (PFN_GLNORMALPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalPointerEXT;
    }
    if (strcmp("glTexCoordPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordPointerEXT);
        _glTexCoordPointerEXT = (PFN_GLTEXCOORDPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordPointerEXT;
    }
    if (strcmp("glVertexPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexPointerEXT);
        _glVertexPointerEXT = (PFN_GLVERTEXPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexPointerEXT;
    }
    if (strcmp("glVertexAttribL1dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1dEXT);
        _glVertexAttribL1dEXT = (PFN_GLVERTEXATTRIBL1DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1dEXT;
    }
    if (strcmp("glVertexAttribL2dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2dEXT);
        _glVertexAttribL2dEXT = (PFN_GLVERTEXATTRIBL2DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2dEXT;
    }
    if (strcmp("glVertexAttribL3dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3dEXT);
        _glVertexAttribL3dEXT = (PFN_GLVERTEXATTRIBL3DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3dEXT;
    }
    if (strcmp("glVertexAttribL4dEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4dEXT);
        _glVertexAttribL4dEXT = (PFN_GLVERTEXATTRIBL4DEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4dEXT;
    }
    if (strcmp("glVertexAttribL1dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1dvEXT);
        _glVertexAttribL1dvEXT = (PFN_GLVERTEXATTRIBL1DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1dvEXT;
    }
    if (strcmp("glVertexAttribL2dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2dvEXT);
        _glVertexAttribL2dvEXT = (PFN_GLVERTEXATTRIBL2DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2dvEXT;
    }
    if (strcmp("glVertexAttribL3dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3dvEXT);
        _glVertexAttribL3dvEXT = (PFN_GLVERTEXATTRIBL3DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3dvEXT;
    }
    if (strcmp("glVertexAttribL4dvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4dvEXT);
        _glVertexAttribL4dvEXT = (PFN_GLVERTEXATTRIBL4DVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4dvEXT;
    }
    if (strcmp("glVertexAttribLPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribLPointerEXT);
        _glVertexAttribLPointerEXT = (PFN_GLVERTEXATTRIBLPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribLPointerEXT;
    }
    if (strcmp("glGetVertexAttribLdvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLdvEXT);
        _glGetVertexAttribLdvEXT = (PFN_GLGETVERTEXATTRIBLDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLdvEXT;
    }
    if (strcmp("glBeginVertexShaderEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginVertexShaderEXT);
        _glBeginVertexShaderEXT = (PFN_GLBEGINVERTEXSHADEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginVertexShaderEXT;
    }
    if (strcmp("glEndVertexShaderEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndVertexShaderEXT);
        _glEndVertexShaderEXT = (PFN_GLENDVERTEXSHADEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndVertexShaderEXT;
    }
    if (strcmp("glBindVertexShaderEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVertexShaderEXT);
        _glBindVertexShaderEXT = (PFN_GLBINDVERTEXSHADEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVertexShaderEXT;
    }
    if (strcmp("glGenVertexShadersEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenVertexShadersEXT);
        _glGenVertexShadersEXT = (PFN_GLGENVERTEXSHADERSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenVertexShadersEXT;
    }
    if (strcmp("glDeleteVertexShaderEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteVertexShaderEXT);
        _glDeleteVertexShaderEXT = (PFN_GLDELETEVERTEXSHADEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteVertexShaderEXT;
    }
    if (strcmp("glShaderOp1EXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderOp1EXT);
        _glShaderOp1EXT = (PFN_GLSHADEROP1EXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderOp1EXT;
    }
    if (strcmp("glShaderOp2EXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderOp2EXT);
        _glShaderOp2EXT = (PFN_GLSHADEROP2EXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderOp2EXT;
    }
    if (strcmp("glShaderOp3EXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glShaderOp3EXT);
        _glShaderOp3EXT = (PFN_GLSHADEROP3EXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glShaderOp3EXT;
    }
    if (strcmp("glSwizzleEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSwizzleEXT);
        _glSwizzleEXT = (PFN_GLSWIZZLEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSwizzleEXT;
    }
    if (strcmp("glWriteMaskEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWriteMaskEXT);
        _glWriteMaskEXT = (PFN_GLWRITEMASKEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWriteMaskEXT;
    }
    if (strcmp("glInsertComponentEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInsertComponentEXT);
        _glInsertComponentEXT = (PFN_GLINSERTCOMPONENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInsertComponentEXT;
    }
    if (strcmp("glExtractComponentEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glExtractComponentEXT);
        _glExtractComponentEXT = (PFN_GLEXTRACTCOMPONENTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glExtractComponentEXT;
    }
    if (strcmp("glGenSymbolsEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenSymbolsEXT);
        _glGenSymbolsEXT = (PFN_GLGENSYMBOLSEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenSymbolsEXT;
    }
    if (strcmp("glSetInvariantEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSetInvariantEXT);
        _glSetInvariantEXT = (PFN_GLSETINVARIANTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSetInvariantEXT;
    }
    if (strcmp("glSetLocalConstantEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSetLocalConstantEXT);
        _glSetLocalConstantEXT = (PFN_GLSETLOCALCONSTANTEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSetLocalConstantEXT;
    }
    if (strcmp("glVariantbvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantbvEXT);
        _glVariantbvEXT = (PFN_GLVARIANTBVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantbvEXT;
    }
    if (strcmp("glVariantsvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantsvEXT);
        _glVariantsvEXT = (PFN_GLVARIANTSVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantsvEXT;
    }
    if (strcmp("glVariantivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantivEXT);
        _glVariantivEXT = (PFN_GLVARIANTIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantivEXT;
    }
    if (strcmp("glVariantfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantfvEXT);
        _glVariantfvEXT = (PFN_GLVARIANTFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantfvEXT;
    }
    if (strcmp("glVariantdvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantdvEXT);
        _glVariantdvEXT = (PFN_GLVARIANTDVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantdvEXT;
    }
    if (strcmp("glVariantubvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantubvEXT);
        _glVariantubvEXT = (PFN_GLVARIANTUBVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantubvEXT;
    }
    if (strcmp("glVariantusvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantusvEXT);
        _glVariantusvEXT = (PFN_GLVARIANTUSVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantusvEXT;
    }
    if (strcmp("glVariantuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantuivEXT);
        _glVariantuivEXT = (PFN_GLVARIANTUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantuivEXT;
    }
    if (strcmp("glVariantPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVariantPointerEXT);
        _glVariantPointerEXT = (PFN_GLVARIANTPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVariantPointerEXT;
    }
    if (strcmp("glEnableVariantClientStateEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEnableVariantClientStateEXT);
        _glEnableVariantClientStateEXT = (PFN_GLENABLEVARIANTCLIENTSTATEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEnableVariantClientStateEXT;
    }
    if (strcmp("glDisableVariantClientStateEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDisableVariantClientStateEXT);
        _glDisableVariantClientStateEXT = (PFN_GLDISABLEVARIANTCLIENTSTATEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDisableVariantClientStateEXT;
    }
    if (strcmp("glBindLightParameterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindLightParameterEXT);
        _glBindLightParameterEXT = (PFN_GLBINDLIGHTPARAMETEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindLightParameterEXT;
    }
    if (strcmp("glBindMaterialParameterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindMaterialParameterEXT);
        _glBindMaterialParameterEXT = (PFN_GLBINDMATERIALPARAMETEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindMaterialParameterEXT;
    }
    if (strcmp("glBindTexGenParameterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTexGenParameterEXT);
        _glBindTexGenParameterEXT = (PFN_GLBINDTEXGENPARAMETEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTexGenParameterEXT;
    }
    if (strcmp("glBindTextureUnitParameterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTextureUnitParameterEXT);
        _glBindTextureUnitParameterEXT = (PFN_GLBINDTEXTUREUNITPARAMETEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTextureUnitParameterEXT;
    }
    if (strcmp("glBindParameterEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindParameterEXT);
        _glBindParameterEXT = (PFN_GLBINDPARAMETEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindParameterEXT;
    }
    if (strcmp("glIsVariantEnabledEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsVariantEnabledEXT);
        _glIsVariantEnabledEXT = (PFN_GLISVARIANTENABLEDEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsVariantEnabledEXT;
    }
    if (strcmp("glGetVariantBooleanvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVariantBooleanvEXT);
        _glGetVariantBooleanvEXT = (PFN_GLGETVARIANTBOOLEANVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVariantBooleanvEXT;
    }
    if (strcmp("glGetVariantIntegervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVariantIntegervEXT);
        _glGetVariantIntegervEXT = (PFN_GLGETVARIANTINTEGERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVariantIntegervEXT;
    }
    if (strcmp("glGetVariantFloatvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVariantFloatvEXT);
        _glGetVariantFloatvEXT = (PFN_GLGETVARIANTFLOATVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVariantFloatvEXT;
    }
    if (strcmp("glGetVariantPointervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVariantPointervEXT);
        _glGetVariantPointervEXT = (PFN_GLGETVARIANTPOINTERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVariantPointervEXT;
    }
    if (strcmp("glGetInvariantBooleanvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInvariantBooleanvEXT);
        _glGetInvariantBooleanvEXT = (PFN_GLGETINVARIANTBOOLEANVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInvariantBooleanvEXT;
    }
    if (strcmp("glGetInvariantIntegervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInvariantIntegervEXT);
        _glGetInvariantIntegervEXT = (PFN_GLGETINVARIANTINTEGERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInvariantIntegervEXT;
    }
    if (strcmp("glGetInvariantFloatvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInvariantFloatvEXT);
        _glGetInvariantFloatvEXT = (PFN_GLGETINVARIANTFLOATVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInvariantFloatvEXT;
    }
    if (strcmp("glGetLocalConstantBooleanvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetLocalConstantBooleanvEXT);
        _glGetLocalConstantBooleanvEXT = (PFN_GLGETLOCALCONSTANTBOOLEANVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetLocalConstantBooleanvEXT;
    }
    if (strcmp("glGetLocalConstantIntegervEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetLocalConstantIntegervEXT);
        _glGetLocalConstantIntegervEXT = (PFN_GLGETLOCALCONSTANTINTEGERVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetLocalConstantIntegervEXT;
    }
    if (strcmp("glGetLocalConstantFloatvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetLocalConstantFloatvEXT);
        _glGetLocalConstantFloatvEXT = (PFN_GLGETLOCALCONSTANTFLOATVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetLocalConstantFloatvEXT;
    }
    if (strcmp("glVertexWeightfEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexWeightfEXT);
        _glVertexWeightfEXT = (PFN_GLVERTEXWEIGHTFEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexWeightfEXT;
    }
    if (strcmp("glVertexWeightfvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexWeightfvEXT);
        _glVertexWeightfvEXT = (PFN_GLVERTEXWEIGHTFVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexWeightfvEXT;
    }
    if (strcmp("glVertexWeightPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexWeightPointerEXT);
        _glVertexWeightPointerEXT = (PFN_GLVERTEXWEIGHTPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexWeightPointerEXT;
    }
    if (strcmp("glImportSyncEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glImportSyncEXT);
        _glImportSyncEXT = (PFN_GLIMPORTSYNCEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glImportSyncEXT;
    }
    if (strcmp("glFrameTerminatorGREMEDY", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrameTerminatorGREMEDY);
        _glFrameTerminatorGREMEDY = (PFN_GLFRAMETERMINATORGREMEDY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrameTerminatorGREMEDY;
    }
    if (strcmp("glStringMarkerGREMEDY", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStringMarkerGREMEDY);
        _glStringMarkerGREMEDY = (PFN_GLSTRINGMARKERGREMEDY)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStringMarkerGREMEDY;
    }
    if (strcmp("glImageTransformParameteriHP", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glImageTransformParameteriHP);
        _glImageTransformParameteriHP = (PFN_GLIMAGETRANSFORMPARAMETERIHP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glImageTransformParameteriHP;
    }
    if (strcmp("glImageTransformParameterfHP", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glImageTransformParameterfHP);
        _glImageTransformParameterfHP = (PFN_GLIMAGETRANSFORMPARAMETERFHP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glImageTransformParameterfHP;
    }
    if (strcmp("glImageTransformParameterivHP", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glImageTransformParameterivHP);
        _glImageTransformParameterivHP = (PFN_GLIMAGETRANSFORMPARAMETERIVHP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glImageTransformParameterivHP;
    }
    if (strcmp("glImageTransformParameterfvHP", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glImageTransformParameterfvHP);
        _glImageTransformParameterfvHP = (PFN_GLIMAGETRANSFORMPARAMETERFVHP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glImageTransformParameterfvHP;
    }
    if (strcmp("glGetImageTransformParameterivHP", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetImageTransformParameterivHP);
        _glGetImageTransformParameterivHP = (PFN_GLGETIMAGETRANSFORMPARAMETERIVHP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetImageTransformParameterivHP;
    }
    if (strcmp("glGetImageTransformParameterfvHP", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetImageTransformParameterfvHP);
        _glGetImageTransformParameterfvHP = (PFN_GLGETIMAGETRANSFORMPARAMETERFVHP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetImageTransformParameterfvHP;
    }
    if (strcmp("glMultiModeDrawArraysIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiModeDrawArraysIBM);
        _glMultiModeDrawArraysIBM = (PFN_GLMULTIMODEDRAWARRAYSIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiModeDrawArraysIBM;
    }
    if (strcmp("glMultiModeDrawElementsIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiModeDrawElementsIBM);
        _glMultiModeDrawElementsIBM = (PFN_GLMULTIMODEDRAWELEMENTSIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiModeDrawElementsIBM;
    }
    if (strcmp("glColorPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorPointerListIBM);
        _glColorPointerListIBM = (PFN_GLCOLORPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorPointerListIBM;
    }
    if (strcmp("glSecondaryColorPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColorPointerListIBM);
        _glSecondaryColorPointerListIBM = (PFN_GLSECONDARYCOLORPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColorPointerListIBM;
    }
    if (strcmp("glEdgeFlagPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEdgeFlagPointerListIBM);
        _glEdgeFlagPointerListIBM = (PFN_GLEDGEFLAGPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEdgeFlagPointerListIBM;
    }
    if (strcmp("glFogCoordPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordPointerListIBM);
        _glFogCoordPointerListIBM = (PFN_GLFOGCOORDPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordPointerListIBM;
    }
    if (strcmp("glIndexPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexPointerListIBM);
        _glIndexPointerListIBM = (PFN_GLINDEXPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexPointerListIBM;
    }
    if (strcmp("glNormalPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalPointerListIBM);
        _glNormalPointerListIBM = (PFN_GLNORMALPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalPointerListIBM;
    }
    if (strcmp("glTexCoordPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordPointerListIBM);
        _glTexCoordPointerListIBM = (PFN_GLTEXCOORDPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordPointerListIBM;
    }
    if (strcmp("glVertexPointerListIBM", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexPointerListIBM);
        _glVertexPointerListIBM = (PFN_GLVERTEXPOINTERLISTIBM)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexPointerListIBM;
    }
    if (strcmp("glRenderbufferStorageMultisampleIMG", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleIMG);
        _glRenderbufferStorageMultisampleIMG = (PFN_GLRENDERBUFFERSTORAGEMULTISAMPLEIMG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleIMG;
    }
    if (strcmp("glFramebufferTexture2DMultisampleIMG", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DMultisampleIMG);
        _glFramebufferTexture2DMultisampleIMG = (PFN_GLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DMultisampleIMG;
    }
    if (strcmp("glBlendFuncSeparateINGR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateINGR);
        _glBlendFuncSeparateINGR = (PFN_GLBLENDFUNCSEPARATEINGR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateINGR;
    }
    if (strcmp("glSyncTextureINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSyncTextureINTEL);
        _glSyncTextureINTEL = (PFN_GLSYNCTEXTUREINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSyncTextureINTEL;
    }
    if (strcmp("glUnmapTexture2DINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapTexture2DINTEL);
        _glUnmapTexture2DINTEL = (PFN_GLUNMAPTEXTURE2DINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapTexture2DINTEL;
    }
    if (strcmp("glMapTexture2DINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapTexture2DINTEL);
        _glMapTexture2DINTEL = (PFN_GLMAPTEXTURE2DINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapTexture2DINTEL;
    }
    if (strcmp("glVertexPointervINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexPointervINTEL);
        _glVertexPointervINTEL = (PFN_GLVERTEXPOINTERVINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexPointervINTEL;
    }
    if (strcmp("glNormalPointervINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalPointervINTEL);
        _glNormalPointervINTEL = (PFN_GLNORMALPOINTERVINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalPointervINTEL;
    }
    if (strcmp("glColorPointervINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorPointervINTEL);
        _glColorPointervINTEL = (PFN_GLCOLORPOINTERVINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorPointervINTEL;
    }
    if (strcmp("glTexCoordPointervINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordPointervINTEL);
        _glTexCoordPointervINTEL = (PFN_GLTEXCOORDPOINTERVINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordPointervINTEL;
    }
    if (strcmp("glBeginPerfQueryINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginPerfQueryINTEL);
        _glBeginPerfQueryINTEL = (PFN_GLBEGINPERFQUERYINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginPerfQueryINTEL;
    }
    if (strcmp("glCreatePerfQueryINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCreatePerfQueryINTEL);
        _glCreatePerfQueryINTEL = (PFN_GLCREATEPERFQUERYINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCreatePerfQueryINTEL;
    }
    if (strcmp("glDeletePerfQueryINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeletePerfQueryINTEL);
        _glDeletePerfQueryINTEL = (PFN_GLDELETEPERFQUERYINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeletePerfQueryINTEL;
    }
    if (strcmp("glEndPerfQueryINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndPerfQueryINTEL);
        _glEndPerfQueryINTEL = (PFN_GLENDPERFQUERYINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndPerfQueryINTEL;
    }
    if (strcmp("glGetFirstPerfQueryIdINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFirstPerfQueryIdINTEL);
        _glGetFirstPerfQueryIdINTEL = (PFN_GLGETFIRSTPERFQUERYIDINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFirstPerfQueryIdINTEL;
    }
    if (strcmp("glGetNextPerfQueryIdINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNextPerfQueryIdINTEL);
        _glGetNextPerfQueryIdINTEL = (PFN_GLGETNEXTPERFQUERYIDINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNextPerfQueryIdINTEL;
    }
    if (strcmp("glGetPerfCounterInfoINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfCounterInfoINTEL);
        _glGetPerfCounterInfoINTEL = (PFN_GLGETPERFCOUNTERINFOINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfCounterInfoINTEL;
    }
    if (strcmp("glGetPerfQueryDataINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfQueryDataINTEL);
        _glGetPerfQueryDataINTEL = (PFN_GLGETPERFQUERYDATAINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfQueryDataINTEL;
    }
    if (strcmp("glGetPerfQueryIdByNameINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfQueryIdByNameINTEL);
        _glGetPerfQueryIdByNameINTEL = (PFN_GLGETPERFQUERYIDBYNAMEINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfQueryIdByNameINTEL;
    }
    if (strcmp("glGetPerfQueryInfoINTEL", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPerfQueryInfoINTEL);
        _glGetPerfQueryInfoINTEL = (PFN_GLGETPERFQUERYINFOINTEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPerfQueryInfoINTEL;
    }
    if (strcmp("glBlendBarrierKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendBarrierKHR);
        _glBlendBarrierKHR = (PFN_GLBLENDBARRIERKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendBarrierKHR;
    }
    if (strcmp("glDebugMessageControl", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageControl);
        _glDebugMessageControl = (PFN_GLDEBUGMESSAGECONTROL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageControl;
    }
    if (strcmp("glDebugMessageInsert", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsert);
        _glDebugMessageInsert = (PFN_GLDEBUGMESSAGEINSERT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsert;
    }
    if (strcmp("glDebugMessageCallback", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallback);
        _glDebugMessageCallback = (PFN_GLDEBUGMESSAGECALLBACK)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallback;
    }
    if (strcmp("glGetDebugMessageLog", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLog);
        _glGetDebugMessageLog = (PFN_GLGETDEBUGMESSAGELOG)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLog;
    }
    if (strcmp("glPushDebugGroup", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushDebugGroup);
        _glPushDebugGroup = (PFN_GLPUSHDEBUGGROUP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushDebugGroup;
    }
    if (strcmp("glPopDebugGroup", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopDebugGroup);
        _glPopDebugGroup = (PFN_GLPOPDEBUGGROUP)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopDebugGroup;
    }
    if (strcmp("glObjectLabel", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glObjectLabel);
        _glObjectLabel = (PFN_GLOBJECTLABEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glObjectLabel;
    }
    if (strcmp("glGetObjectLabel", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectLabel);
        _glGetObjectLabel = (PFN_GLGETOBJECTLABEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectLabel;
    }
    if (strcmp("glObjectPtrLabel", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glObjectPtrLabel);
        _glObjectPtrLabel = (PFN_GLOBJECTPTRLABEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glObjectPtrLabel;
    }
    if (strcmp("glGetObjectPtrLabel", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectPtrLabel);
        _glGetObjectPtrLabel = (PFN_GLGETOBJECTPTRLABEL)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectPtrLabel;
    }
    if (strcmp("glDebugMessageControlKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageControlKHR);
        _glDebugMessageControlKHR = (PFN_GLDEBUGMESSAGECONTROLKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageControlKHR;
    }
    if (strcmp("glDebugMessageInsertKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertKHR);
        _glDebugMessageInsertKHR = (PFN_GLDEBUGMESSAGEINSERTKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageInsertKHR;
    }
    if (strcmp("glDebugMessageCallbackKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackKHR);
        _glDebugMessageCallbackKHR = (PFN_GLDEBUGMESSAGECALLBACKKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDebugMessageCallbackKHR;
    }
    if (strcmp("glGetDebugMessageLogKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogKHR);
        _glGetDebugMessageLogKHR = (PFN_GLGETDEBUGMESSAGELOGKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDebugMessageLogKHR;
    }
    if (strcmp("glPushDebugGroupKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPushDebugGroupKHR);
        _glPushDebugGroupKHR = (PFN_GLPUSHDEBUGGROUPKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPushDebugGroupKHR;
    }
    if (strcmp("glPopDebugGroupKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPopDebugGroupKHR);
        _glPopDebugGroupKHR = (PFN_GLPOPDEBUGGROUPKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPopDebugGroupKHR;
    }
    if (strcmp("glObjectLabelKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glObjectLabelKHR);
        _glObjectLabelKHR = (PFN_GLOBJECTLABELKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glObjectLabelKHR;
    }
    if (strcmp("glGetObjectLabelKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectLabelKHR);
        _glGetObjectLabelKHR = (PFN_GLGETOBJECTLABELKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectLabelKHR;
    }
    if (strcmp("glObjectPtrLabelKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glObjectPtrLabelKHR);
        _glObjectPtrLabelKHR = (PFN_GLOBJECTPTRLABELKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glObjectPtrLabelKHR;
    }
    if (strcmp("glGetObjectPtrLabelKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetObjectPtrLabelKHR);
        _glGetObjectPtrLabelKHR = (PFN_GLGETOBJECTPTRLABELKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetObjectPtrLabelKHR;
    }
    if (strcmp("glGetPointervKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPointervKHR);
        _glGetPointervKHR = (PFN_GLGETPOINTERVKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPointervKHR;
    }
    if (strcmp("glGetGraphicsResetStatus", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatus);
        _glGetGraphicsResetStatus = (PFN_GLGETGRAPHICSRESETSTATUS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatus;
    }
    if (strcmp("glReadnPixels", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadnPixels);
        _glReadnPixels = (PFN_GLREADNPIXELS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadnPixels;
    }
    if (strcmp("glGetnUniformfv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformfv);
        _glGetnUniformfv = (PFN_GLGETNUNIFORMFV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformfv;
    }
    if (strcmp("glGetnUniformiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformiv);
        _glGetnUniformiv = (PFN_GLGETNUNIFORMIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformiv;
    }
    if (strcmp("glGetnUniformuiv", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformuiv);
        _glGetnUniformuiv = (PFN_GLGETNUNIFORMUIV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformuiv;
    }
    if (strcmp("glGetGraphicsResetStatusKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatusKHR);
        _glGetGraphicsResetStatusKHR = (PFN_GLGETGRAPHICSRESETSTATUSKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetGraphicsResetStatusKHR;
    }
    if (strcmp("glReadnPixelsKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadnPixelsKHR);
        _glReadnPixelsKHR = (PFN_GLREADNPIXELSKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadnPixelsKHR;
    }
    if (strcmp("glGetnUniformfvKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformfvKHR);
        _glGetnUniformfvKHR = (PFN_GLGETNUNIFORMFVKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformfvKHR;
    }
    if (strcmp("glGetnUniformivKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformivKHR);
        _glGetnUniformivKHR = (PFN_GLGETNUNIFORMIVKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformivKHR;
    }
    if (strcmp("glGetnUniformuivKHR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetnUniformuivKHR);
        _glGetnUniformuivKHR = (PFN_GLGETNUNIFORMUIVKHR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetnUniformuivKHR;
    }
    if (strcmp("glNewBufferRegion", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNewBufferRegion);
        _glNewBufferRegion = (PFN_GLNEWBUFFERREGION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNewBufferRegion;
    }
    if (strcmp("glDeleteBufferRegion", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteBufferRegion);
        _glDeleteBufferRegion = (PFN_GLDELETEBUFFERREGION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteBufferRegion;
    }
    if (strcmp("glReadBufferRegion", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadBufferRegion);
        _glReadBufferRegion = (PFN_GLREADBUFFERREGION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadBufferRegion;
    }
    if (strcmp("glDrawBufferRegion", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBufferRegion);
        _glDrawBufferRegion = (PFN_GLDRAWBUFFERREGION)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBufferRegion;
    }
    if (strcmp("glBufferRegionEnabled", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferRegionEnabled);
        _glBufferRegionEnabled = (PFN_GLBUFFERREGIONENABLED)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferRegionEnabled;
    }
    if (strcmp("glResizeBuffersMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResizeBuffersMESA);
        _glResizeBuffersMESA = (PFN_GLRESIZEBUFFERSMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResizeBuffersMESA;
    }
    if (strcmp("glWindowPos2dMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2dMESA);
        _glWindowPos2dMESA = (PFN_GLWINDOWPOS2DMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2dMESA;
    }
    if (strcmp("glWindowPos2dvMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2dvMESA);
        _glWindowPos2dvMESA = (PFN_GLWINDOWPOS2DVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2dvMESA;
    }
    if (strcmp("glWindowPos2fMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2fMESA);
        _glWindowPos2fMESA = (PFN_GLWINDOWPOS2FMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2fMESA;
    }
    if (strcmp("glWindowPos2fvMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2fvMESA);
        _glWindowPos2fvMESA = (PFN_GLWINDOWPOS2FVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2fvMESA;
    }
    if (strcmp("glWindowPos2iMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2iMESA);
        _glWindowPos2iMESA = (PFN_GLWINDOWPOS2IMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2iMESA;
    }
    if (strcmp("glWindowPos2ivMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2ivMESA);
        _glWindowPos2ivMESA = (PFN_GLWINDOWPOS2IVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2ivMESA;
    }
    if (strcmp("glWindowPos2sMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2sMESA);
        _glWindowPos2sMESA = (PFN_GLWINDOWPOS2SMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2sMESA;
    }
    if (strcmp("glWindowPos2svMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos2svMESA);
        _glWindowPos2svMESA = (PFN_GLWINDOWPOS2SVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos2svMESA;
    }
    if (strcmp("glWindowPos3dMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3dMESA);
        _glWindowPos3dMESA = (PFN_GLWINDOWPOS3DMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3dMESA;
    }
    if (strcmp("glWindowPos3dvMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3dvMESA);
        _glWindowPos3dvMESA = (PFN_GLWINDOWPOS3DVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3dvMESA;
    }
    if (strcmp("glWindowPos3fMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3fMESA);
        _glWindowPos3fMESA = (PFN_GLWINDOWPOS3FMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3fMESA;
    }
    if (strcmp("glWindowPos3fvMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3fvMESA);
        _glWindowPos3fvMESA = (PFN_GLWINDOWPOS3FVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3fvMESA;
    }
    if (strcmp("glWindowPos3iMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3iMESA);
        _glWindowPos3iMESA = (PFN_GLWINDOWPOS3IMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3iMESA;
    }
    if (strcmp("glWindowPos3ivMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3ivMESA);
        _glWindowPos3ivMESA = (PFN_GLWINDOWPOS3IVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3ivMESA;
    }
    if (strcmp("glWindowPos3sMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3sMESA);
        _glWindowPos3sMESA = (PFN_GLWINDOWPOS3SMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3sMESA;
    }
    if (strcmp("glWindowPos3svMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos3svMESA);
        _glWindowPos3svMESA = (PFN_GLWINDOWPOS3SVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos3svMESA;
    }
    if (strcmp("glWindowPos4dMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4dMESA);
        _glWindowPos4dMESA = (PFN_GLWINDOWPOS4DMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4dMESA;
    }
    if (strcmp("glWindowPos4dvMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4dvMESA);
        _glWindowPos4dvMESA = (PFN_GLWINDOWPOS4DVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4dvMESA;
    }
    if (strcmp("glWindowPos4fMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4fMESA);
        _glWindowPos4fMESA = (PFN_GLWINDOWPOS4FMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4fMESA;
    }
    if (strcmp("glWindowPos4fvMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4fvMESA);
        _glWindowPos4fvMESA = (PFN_GLWINDOWPOS4FVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4fvMESA;
    }
    if (strcmp("glWindowPos4iMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4iMESA);
        _glWindowPos4iMESA = (PFN_GLWINDOWPOS4IMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4iMESA;
    }
    if (strcmp("glWindowPos4ivMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4ivMESA);
        _glWindowPos4ivMESA = (PFN_GLWINDOWPOS4IVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4ivMESA;
    }
    if (strcmp("glWindowPos4sMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4sMESA);
        _glWindowPos4sMESA = (PFN_GLWINDOWPOS4SMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4sMESA;
    }
    if (strcmp("glWindowPos4svMESA", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWindowPos4svMESA);
        _glWindowPos4svMESA = (PFN_GLWINDOWPOS4SVMESA)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWindowPos4svMESA;
    }
    if (strcmp("glBeginConditionalRenderNVX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginConditionalRenderNVX);
        _glBeginConditionalRenderNVX = (PFN_GLBEGINCONDITIONALRENDERNVX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginConditionalRenderNVX;
    }
    if (strcmp("glEndConditionalRenderNVX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndConditionalRenderNVX);
        _glEndConditionalRenderNVX = (PFN_GLENDCONDITIONALRENDERNVX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndConditionalRenderNVX;
    }
    if (strcmp("glMultiDrawArraysIndirectBindlessNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectBindlessNV);
        _glMultiDrawArraysIndirectBindlessNV = (PFN_GLMULTIDRAWARRAYSINDIRECTBINDLESSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawArraysIndirectBindlessNV;
    }
    if (strcmp("glMultiDrawElementsIndirectBindlessNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectBindlessNV);
        _glMultiDrawElementsIndirectBindlessNV = (PFN_GLMULTIDRAWELEMENTSINDIRECTBINDLESSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiDrawElementsIndirectBindlessNV;
    }
    if (strcmp("glGetTextureHandleNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureHandleNV);
        _glGetTextureHandleNV = (PFN_GLGETTEXTUREHANDLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureHandleNV;
    }
    if (strcmp("glGetTextureSamplerHandleNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTextureSamplerHandleNV);
        _glGetTextureSamplerHandleNV = (PFN_GLGETTEXTURESAMPLERHANDLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTextureSamplerHandleNV;
    }
    if (strcmp("glMakeTextureHandleResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleResidentNV);
        _glMakeTextureHandleResidentNV = (PFN_GLMAKETEXTUREHANDLERESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleResidentNV;
    }
    if (strcmp("glMakeTextureHandleNonResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleNonResidentNV);
        _glMakeTextureHandleNonResidentNV = (PFN_GLMAKETEXTUREHANDLENONRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeTextureHandleNonResidentNV;
    }
    if (strcmp("glGetImageHandleNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetImageHandleNV);
        _glGetImageHandleNV = (PFN_GLGETIMAGEHANDLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetImageHandleNV;
    }
    if (strcmp("glMakeImageHandleResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleResidentNV);
        _glMakeImageHandleResidentNV = (PFN_GLMAKEIMAGEHANDLERESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleResidentNV;
    }
    if (strcmp("glMakeImageHandleNonResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleNonResidentNV);
        _glMakeImageHandleNonResidentNV = (PFN_GLMAKEIMAGEHANDLENONRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeImageHandleNonResidentNV;
    }
    if (strcmp("glUniformHandleui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64NV);
        _glUniformHandleui64NV = (PFN_GLUNIFORMHANDLEUI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64NV;
    }
    if (strcmp("glUniformHandleui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64vNV);
        _glUniformHandleui64vNV = (PFN_GLUNIFORMHANDLEUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformHandleui64vNV;
    }
    if (strcmp("glProgramUniformHandleui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64NV);
        _glProgramUniformHandleui64NV = (PFN_GLPROGRAMUNIFORMHANDLEUI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64NV;
    }
    if (strcmp("glProgramUniformHandleui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64vNV);
        _glProgramUniformHandleui64vNV = (PFN_GLPROGRAMUNIFORMHANDLEUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformHandleui64vNV;
    }
    if (strcmp("glIsTextureHandleResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsTextureHandleResidentNV);
        _glIsTextureHandleResidentNV = (PFN_GLISTEXTUREHANDLERESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsTextureHandleResidentNV;
    }
    if (strcmp("glIsImageHandleResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsImageHandleResidentNV);
        _glIsImageHandleResidentNV = (PFN_GLISIMAGEHANDLERESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsImageHandleResidentNV;
    }
    if (strcmp("glBlendParameteriNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendParameteriNV);
        _glBlendParameteriNV = (PFN_GLBLENDPARAMETERINV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendParameteriNV;
    }
    if (strcmp("glBlendBarrierNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendBarrierNV);
        _glBlendBarrierNV = (PFN_GLBLENDBARRIERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendBarrierNV;
    }
    if (strcmp("glBeginConditionalRenderNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginConditionalRenderNV);
        _glBeginConditionalRenderNV = (PFN_GLBEGINCONDITIONALRENDERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginConditionalRenderNV;
    }
    if (strcmp("glEndConditionalRenderNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndConditionalRenderNV);
        _glEndConditionalRenderNV = (PFN_GLENDCONDITIONALRENDERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndConditionalRenderNV;
    }
    if (strcmp("glCopyImageSubDataNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyImageSubDataNV);
        _glCopyImageSubDataNV = (PFN_GLCOPYIMAGESUBDATANV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyImageSubDataNV;
    }
    if (strcmp("glCoverageMaskNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverageMaskNV);
        _glCoverageMaskNV = (PFN_GLCOVERAGEMASKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverageMaskNV;
    }
    if (strcmp("glCoverageOperationNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverageOperationNV);
        _glCoverageOperationNV = (PFN_GLCOVERAGEOPERATIONNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverageOperationNV;
    }
    if (strcmp("glDepthRangedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangedNV);
        _glDepthRangedNV = (PFN_GLDEPTHRANGEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangedNV;
    }
    if (strcmp("glClearDepthdNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearDepthdNV);
        _glClearDepthdNV = (PFN_GLCLEARDEPTHDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearDepthdNV;
    }
    if (strcmp("glDepthBoundsdNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthBoundsdNV);
        _glDepthBoundsdNV = (PFN_GLDEPTHBOUNDSDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthBoundsdNV;
    }
    if (strcmp("glDrawBuffersNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawBuffersNV);
        _glDrawBuffersNV = (PFN_GLDRAWBUFFERSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawBuffersNV;
    }
    if (strcmp("glDrawTextureNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTextureNV);
        _glDrawTextureNV = (PFN_GLDRAWTEXTURENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTextureNV;
    }
    if (strcmp("glMapControlPointsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapControlPointsNV);
        _glMapControlPointsNV = (PFN_GLMAPCONTROLPOINTSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapControlPointsNV;
    }
    if (strcmp("glMapParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapParameterivNV);
        _glMapParameterivNV = (PFN_GLMAPPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapParameterivNV;
    }
    if (strcmp("glMapParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapParameterfvNV);
        _glMapParameterfvNV = (PFN_GLMAPPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapParameterfvNV;
    }
    if (strcmp("glGetMapControlPointsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapControlPointsNV);
        _glGetMapControlPointsNV = (PFN_GLGETMAPCONTROLPOINTSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapControlPointsNV;
    }
    if (strcmp("glGetMapParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapParameterivNV);
        _glGetMapParameterivNV = (PFN_GLGETMAPPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapParameterivNV;
    }
    if (strcmp("glGetMapParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapParameterfvNV);
        _glGetMapParameterfvNV = (PFN_GLGETMAPPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapParameterfvNV;
    }
    if (strcmp("glGetMapAttribParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapAttribParameterivNV);
        _glGetMapAttribParameterivNV = (PFN_GLGETMAPATTRIBPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapAttribParameterivNV;
    }
    if (strcmp("glGetMapAttribParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMapAttribParameterfvNV);
        _glGetMapAttribParameterfvNV = (PFN_GLGETMAPATTRIBPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMapAttribParameterfvNV;
    }
    if (strcmp("glEvalMapsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEvalMapsNV);
        _glEvalMapsNV = (PFN_GLEVALMAPSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEvalMapsNV;
    }
    if (strcmp("glGetMultisamplefvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetMultisamplefvNV);
        _glGetMultisamplefvNV = (PFN_GLGETMULTISAMPLEFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetMultisamplefvNV;
    }
    if (strcmp("glSampleMaskIndexedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleMaskIndexedNV);
        _glSampleMaskIndexedNV = (PFN_GLSAMPLEMASKINDEXEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleMaskIndexedNV;
    }
    if (strcmp("glTexRenderbufferNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexRenderbufferNV);
        _glTexRenderbufferNV = (PFN_GLTEXRENDERBUFFERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexRenderbufferNV;
    }
    if (strcmp("glDeleteFencesNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteFencesNV);
        _glDeleteFencesNV = (PFN_GLDELETEFENCESNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteFencesNV;
    }
    if (strcmp("glGenFencesNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenFencesNV);
        _glGenFencesNV = (PFN_GLGENFENCESNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenFencesNV;
    }
    if (strcmp("glIsFenceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsFenceNV);
        _glIsFenceNV = (PFN_GLISFENCENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsFenceNV;
    }
    if (strcmp("glTestFenceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTestFenceNV);
        _glTestFenceNV = (PFN_GLTESTFENCENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTestFenceNV;
    }
    if (strcmp("glGetFenceivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFenceivNV);
        _glGetFenceivNV = (PFN_GLGETFENCEIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFenceivNV;
    }
    if (strcmp("glFinishFenceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinishFenceNV);
        _glFinishFenceNV = (PFN_GLFINISHFENCENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinishFenceNV;
    }
    if (strcmp("glSetFenceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSetFenceNV);
        _glSetFenceNV = (PFN_GLSETFENCENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSetFenceNV;
    }
    if (strcmp("glProgramNamedParameter4fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4fNV);
        _glProgramNamedParameter4fNV = (PFN_GLPROGRAMNAMEDPARAMETER4FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4fNV;
    }
    if (strcmp("glProgramNamedParameter4dNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4dNV);
        _glProgramNamedParameter4dNV = (PFN_GLPROGRAMNAMEDPARAMETER4DNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4dNV;
    }
    if (strcmp("glProgramNamedParameter4fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4fvNV);
        _glProgramNamedParameter4fvNV = (PFN_GLPROGRAMNAMEDPARAMETER4FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4fvNV;
    }
    if (strcmp("glProgramNamedParameter4dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4dvNV);
        _glProgramNamedParameter4dvNV = (PFN_GLPROGRAMNAMEDPARAMETER4DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramNamedParameter4dvNV;
    }
    if (strcmp("glGetProgramNamedParameterdvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramNamedParameterdvNV);
        _glGetProgramNamedParameterdvNV = (PFN_GLGETPROGRAMNAMEDPARAMETERDVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramNamedParameterdvNV;
    }
    if (strcmp("glGetProgramNamedParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramNamedParameterfvNV);
        _glGetProgramNamedParameterfvNV = (PFN_GLGETPROGRAMNAMEDPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramNamedParameterfvNV;
    }
    if (strcmp("glBlitFramebufferNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlitFramebufferNV);
        _glBlitFramebufferNV = (PFN_GLBLITFRAMEBUFFERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlitFramebufferNV;
    }
    if (strcmp("glCoverageModulationTableNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverageModulationTableNV);
        _glCoverageModulationTableNV = (PFN_GLCOVERAGEMODULATIONTABLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverageModulationTableNV;
    }
    if (strcmp("glGetCoverageModulationTableNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCoverageModulationTableNV);
        _glGetCoverageModulationTableNV = (PFN_GLGETCOVERAGEMODULATIONTABLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCoverageModulationTableNV;
    }
    if (strcmp("glCoverageModulationNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverageModulationNV);
        _glCoverageModulationNV = (PFN_GLCOVERAGEMODULATIONNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverageModulationNV;
    }
    if (strcmp("glRenderbufferStorageMultisampleCoverageNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleCoverageNV);
        _glRenderbufferStorageMultisampleCoverageNV = (PFN_GLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageMultisampleCoverageNV;
    }
    if (strcmp("glProgramVertexLimitNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramVertexLimitNV);
        _glProgramVertexLimitNV = (PFN_GLPROGRAMVERTEXLIMITNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramVertexLimitNV;
    }
    if (strcmp("glFramebufferTextureFaceEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureFaceEXT);
        _glFramebufferTextureFaceEXT = (PFN_GLFRAMEBUFFERTEXTUREFACEEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureFaceEXT;
    }
    if (strcmp("glProgramLocalParameterI4iNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4iNV);
        _glProgramLocalParameterI4iNV = (PFN_GLPROGRAMLOCALPARAMETERI4INV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4iNV;
    }
    if (strcmp("glProgramLocalParameterI4ivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4ivNV);
        _glProgramLocalParameterI4ivNV = (PFN_GLPROGRAMLOCALPARAMETERI4IVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4ivNV;
    }
    if (strcmp("glProgramLocalParametersI4ivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParametersI4ivNV);
        _glProgramLocalParametersI4ivNV = (PFN_GLPROGRAMLOCALPARAMETERSI4IVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParametersI4ivNV;
    }
    if (strcmp("glProgramLocalParameterI4uiNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4uiNV);
        _glProgramLocalParameterI4uiNV = (PFN_GLPROGRAMLOCALPARAMETERI4UINV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4uiNV;
    }
    if (strcmp("glProgramLocalParameterI4uivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4uivNV);
        _glProgramLocalParameterI4uivNV = (PFN_GLPROGRAMLOCALPARAMETERI4UIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParameterI4uivNV;
    }
    if (strcmp("glProgramLocalParametersI4uivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramLocalParametersI4uivNV);
        _glProgramLocalParametersI4uivNV = (PFN_GLPROGRAMLOCALPARAMETERSI4UIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramLocalParametersI4uivNV;
    }
    if (strcmp("glProgramEnvParameterI4iNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4iNV);
        _glProgramEnvParameterI4iNV = (PFN_GLPROGRAMENVPARAMETERI4INV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4iNV;
    }
    if (strcmp("glProgramEnvParameterI4ivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4ivNV);
        _glProgramEnvParameterI4ivNV = (PFN_GLPROGRAMENVPARAMETERI4IVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4ivNV;
    }
    if (strcmp("glProgramEnvParametersI4ivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParametersI4ivNV);
        _glProgramEnvParametersI4ivNV = (PFN_GLPROGRAMENVPARAMETERSI4IVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParametersI4ivNV;
    }
    if (strcmp("glProgramEnvParameterI4uiNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4uiNV);
        _glProgramEnvParameterI4uiNV = (PFN_GLPROGRAMENVPARAMETERI4UINV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4uiNV;
    }
    if (strcmp("glProgramEnvParameterI4uivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4uivNV);
        _glProgramEnvParameterI4uivNV = (PFN_GLPROGRAMENVPARAMETERI4UIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParameterI4uivNV;
    }
    if (strcmp("glProgramEnvParametersI4uivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramEnvParametersI4uivNV);
        _glProgramEnvParametersI4uivNV = (PFN_GLPROGRAMENVPARAMETERSI4UIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramEnvParametersI4uivNV;
    }
    if (strcmp("glGetProgramLocalParameterIivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterIivNV);
        _glGetProgramLocalParameterIivNV = (PFN_GLGETPROGRAMLOCALPARAMETERIIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterIivNV;
    }
    if (strcmp("glGetProgramLocalParameterIuivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterIuivNV);
        _glGetProgramLocalParameterIuivNV = (PFN_GLGETPROGRAMLOCALPARAMETERIUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramLocalParameterIuivNV;
    }
    if (strcmp("glGetProgramEnvParameterIivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterIivNV);
        _glGetProgramEnvParameterIivNV = (PFN_GLGETPROGRAMENVPARAMETERIIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterIivNV;
    }
    if (strcmp("glGetProgramEnvParameterIuivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterIuivNV);
        _glGetProgramEnvParameterIuivNV = (PFN_GLGETPROGRAMENVPARAMETERIUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramEnvParameterIuivNV;
    }
    if (strcmp("glProgramSubroutineParametersuivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramSubroutineParametersuivNV);
        _glProgramSubroutineParametersuivNV = (PFN_GLPROGRAMSUBROUTINEPARAMETERSUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramSubroutineParametersuivNV;
    }
    if (strcmp("glGetProgramSubroutineParameteruivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramSubroutineParameteruivNV);
        _glGetProgramSubroutineParameteruivNV = (PFN_GLGETPROGRAMSUBROUTINEPARAMETERUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramSubroutineParameteruivNV;
    }
    if (strcmp("glUniform1i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1i64NV);
        _glUniform1i64NV = (PFN_GLUNIFORM1I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1i64NV;
    }
    if (strcmp("glUniform2i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2i64NV);
        _glUniform2i64NV = (PFN_GLUNIFORM2I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2i64NV;
    }
    if (strcmp("glUniform3i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3i64NV);
        _glUniform3i64NV = (PFN_GLUNIFORM3I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3i64NV;
    }
    if (strcmp("glUniform4i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4i64NV);
        _glUniform4i64NV = (PFN_GLUNIFORM4I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4i64NV;
    }
    if (strcmp("glUniform1i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1i64vNV);
        _glUniform1i64vNV = (PFN_GLUNIFORM1I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1i64vNV;
    }
    if (strcmp("glUniform2i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2i64vNV);
        _glUniform2i64vNV = (PFN_GLUNIFORM2I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2i64vNV;
    }
    if (strcmp("glUniform3i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3i64vNV);
        _glUniform3i64vNV = (PFN_GLUNIFORM3I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3i64vNV;
    }
    if (strcmp("glUniform4i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4i64vNV);
        _glUniform4i64vNV = (PFN_GLUNIFORM4I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4i64vNV;
    }
    if (strcmp("glUniform1ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1ui64NV);
        _glUniform1ui64NV = (PFN_GLUNIFORM1UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1ui64NV;
    }
    if (strcmp("glUniform2ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2ui64NV);
        _glUniform2ui64NV = (PFN_GLUNIFORM2UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2ui64NV;
    }
    if (strcmp("glUniform3ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3ui64NV);
        _glUniform3ui64NV = (PFN_GLUNIFORM3UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3ui64NV;
    }
    if (strcmp("glUniform4ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4ui64NV);
        _glUniform4ui64NV = (PFN_GLUNIFORM4UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4ui64NV;
    }
    if (strcmp("glUniform1ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform1ui64vNV);
        _glUniform1ui64vNV = (PFN_GLUNIFORM1UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform1ui64vNV;
    }
    if (strcmp("glUniform2ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform2ui64vNV);
        _glUniform2ui64vNV = (PFN_GLUNIFORM2UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform2ui64vNV;
    }
    if (strcmp("glUniform3ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform3ui64vNV);
        _glUniform3ui64vNV = (PFN_GLUNIFORM3UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform3ui64vNV;
    }
    if (strcmp("glUniform4ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniform4ui64vNV);
        _glUniform4ui64vNV = (PFN_GLUNIFORM4UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniform4ui64vNV;
    }
    if (strcmp("glGetUniformi64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformi64vNV);
        _glGetUniformi64vNV = (PFN_GLGETUNIFORMI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformi64vNV;
    }
    if (strcmp("glProgramUniform1i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64NV);
        _glProgramUniform1i64NV = (PFN_GLPROGRAMUNIFORM1I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64NV;
    }
    if (strcmp("glProgramUniform2i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64NV);
        _glProgramUniform2i64NV = (PFN_GLPROGRAMUNIFORM2I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64NV;
    }
    if (strcmp("glProgramUniform3i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64NV);
        _glProgramUniform3i64NV = (PFN_GLPROGRAMUNIFORM3I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64NV;
    }
    if (strcmp("glProgramUniform4i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64NV);
        _glProgramUniform4i64NV = (PFN_GLPROGRAMUNIFORM4I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64NV;
    }
    if (strcmp("glProgramUniform1i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64vNV);
        _glProgramUniform1i64vNV = (PFN_GLPROGRAMUNIFORM1I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1i64vNV;
    }
    if (strcmp("glProgramUniform2i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64vNV);
        _glProgramUniform2i64vNV = (PFN_GLPROGRAMUNIFORM2I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2i64vNV;
    }
    if (strcmp("glProgramUniform3i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64vNV);
        _glProgramUniform3i64vNV = (PFN_GLPROGRAMUNIFORM3I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3i64vNV;
    }
    if (strcmp("glProgramUniform4i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64vNV);
        _glProgramUniform4i64vNV = (PFN_GLPROGRAMUNIFORM4I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4i64vNV;
    }
    if (strcmp("glProgramUniform1ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64NV);
        _glProgramUniform1ui64NV = (PFN_GLPROGRAMUNIFORM1UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64NV;
    }
    if (strcmp("glProgramUniform2ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64NV);
        _glProgramUniform2ui64NV = (PFN_GLPROGRAMUNIFORM2UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64NV;
    }
    if (strcmp("glProgramUniform3ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64NV);
        _glProgramUniform3ui64NV = (PFN_GLPROGRAMUNIFORM3UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64NV;
    }
    if (strcmp("glProgramUniform4ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64NV);
        _glProgramUniform4ui64NV = (PFN_GLPROGRAMUNIFORM4UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64NV;
    }
    if (strcmp("glProgramUniform1ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64vNV);
        _glProgramUniform1ui64vNV = (PFN_GLPROGRAMUNIFORM1UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform1ui64vNV;
    }
    if (strcmp("glProgramUniform2ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64vNV);
        _glProgramUniform2ui64vNV = (PFN_GLPROGRAMUNIFORM2UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform2ui64vNV;
    }
    if (strcmp("glProgramUniform3ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64vNV);
        _glProgramUniform3ui64vNV = (PFN_GLPROGRAMUNIFORM3UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform3ui64vNV;
    }
    if (strcmp("glProgramUniform4ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64vNV);
        _glProgramUniform4ui64vNV = (PFN_GLPROGRAMUNIFORM4UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniform4ui64vNV;
    }
    if (strcmp("glVertex2hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2hNV);
        _glVertex2hNV = (PFN_GLVERTEX2HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2hNV;
    }
    if (strcmp("glVertex2hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex2hvNV);
        _glVertex2hvNV = (PFN_GLVERTEX2HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex2hvNV;
    }
    if (strcmp("glVertex3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3hNV);
        _glVertex3hNV = (PFN_GLVERTEX3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3hNV;
    }
    if (strcmp("glVertex3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex3hvNV);
        _glVertex3hvNV = (PFN_GLVERTEX3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex3hvNV;
    }
    if (strcmp("glVertex4hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4hNV);
        _glVertex4hNV = (PFN_GLVERTEX4HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4hNV;
    }
    if (strcmp("glVertex4hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertex4hvNV);
        _glVertex4hvNV = (PFN_GLVERTEX4HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertex4hvNV;
    }
    if (strcmp("glNormal3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3hNV);
        _glNormal3hNV = (PFN_GLNORMAL3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3hNV;
    }
    if (strcmp("glNormal3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3hvNV);
        _glNormal3hvNV = (PFN_GLNORMAL3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3hvNV;
    }
    if (strcmp("glColor3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3hNV);
        _glColor3hNV = (PFN_GLCOLOR3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3hNV;
    }
    if (strcmp("glColor3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3hvNV);
        _glColor3hvNV = (PFN_GLCOLOR3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3hvNV;
    }
    if (strcmp("glColor4hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4hNV);
        _glColor4hNV = (PFN_GLCOLOR4HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4hNV;
    }
    if (strcmp("glColor4hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4hvNV);
        _glColor4hvNV = (PFN_GLCOLOR4HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4hvNV;
    }
    if (strcmp("glTexCoord1hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1hNV);
        _glTexCoord1hNV = (PFN_GLTEXCOORD1HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1hNV;
    }
    if (strcmp("glTexCoord1hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord1hvNV);
        _glTexCoord1hvNV = (PFN_GLTEXCOORD1HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord1hvNV;
    }
    if (strcmp("glTexCoord2hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2hNV);
        _glTexCoord2hNV = (PFN_GLTEXCOORD2HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2hNV;
    }
    if (strcmp("glTexCoord2hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2hvNV);
        _glTexCoord2hvNV = (PFN_GLTEXCOORD2HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2hvNV;
    }
    if (strcmp("glTexCoord3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3hNV);
        _glTexCoord3hNV = (PFN_GLTEXCOORD3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3hNV;
    }
    if (strcmp("glTexCoord3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord3hvNV);
        _glTexCoord3hvNV = (PFN_GLTEXCOORD3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord3hvNV;
    }
    if (strcmp("glTexCoord4hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4hNV);
        _glTexCoord4hNV = (PFN_GLTEXCOORD4HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4hNV;
    }
    if (strcmp("glTexCoord4hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4hvNV);
        _glTexCoord4hvNV = (PFN_GLTEXCOORD4HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4hvNV;
    }
    if (strcmp("glMultiTexCoord1hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1hNV);
        _glMultiTexCoord1hNV = (PFN_GLMULTITEXCOORD1HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1hNV;
    }
    if (strcmp("glMultiTexCoord1hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1hvNV);
        _glMultiTexCoord1hvNV = (PFN_GLMULTITEXCOORD1HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord1hvNV;
    }
    if (strcmp("glMultiTexCoord2hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2hNV);
        _glMultiTexCoord2hNV = (PFN_GLMULTITEXCOORD2HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2hNV;
    }
    if (strcmp("glMultiTexCoord2hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2hvNV);
        _glMultiTexCoord2hvNV = (PFN_GLMULTITEXCOORD2HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord2hvNV;
    }
    if (strcmp("glMultiTexCoord3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3hNV);
        _glMultiTexCoord3hNV = (PFN_GLMULTITEXCOORD3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3hNV;
    }
    if (strcmp("glMultiTexCoord3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3hvNV);
        _glMultiTexCoord3hvNV = (PFN_GLMULTITEXCOORD3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord3hvNV;
    }
    if (strcmp("glMultiTexCoord4hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4hNV);
        _glMultiTexCoord4hNV = (PFN_GLMULTITEXCOORD4HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4hNV;
    }
    if (strcmp("glMultiTexCoord4hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4hvNV);
        _glMultiTexCoord4hvNV = (PFN_GLMULTITEXCOORD4HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMultiTexCoord4hvNV;
    }
    if (strcmp("glFogCoordhNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordhNV);
        _glFogCoordhNV = (PFN_GLFOGCOORDHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordhNV;
    }
    if (strcmp("glFogCoordhvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordhvNV);
        _glFogCoordhvNV = (PFN_GLFOGCOORDHVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordhvNV;
    }
    if (strcmp("glSecondaryColor3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3hNV);
        _glSecondaryColor3hNV = (PFN_GLSECONDARYCOLOR3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3hNV;
    }
    if (strcmp("glSecondaryColor3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3hvNV);
        _glSecondaryColor3hvNV = (PFN_GLSECONDARYCOLOR3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColor3hvNV;
    }
    if (strcmp("glVertexWeighthNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexWeighthNV);
        _glVertexWeighthNV = (PFN_GLVERTEXWEIGHTHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexWeighthNV;
    }
    if (strcmp("glVertexWeighthvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexWeighthvNV);
        _glVertexWeighthvNV = (PFN_GLVERTEXWEIGHTHVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexWeighthvNV;
    }
    if (strcmp("glVertexAttrib1hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1hNV);
        _glVertexAttrib1hNV = (PFN_GLVERTEXATTRIB1HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1hNV;
    }
    if (strcmp("glVertexAttrib1hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1hvNV);
        _glVertexAttrib1hvNV = (PFN_GLVERTEXATTRIB1HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1hvNV;
    }
    if (strcmp("glVertexAttrib2hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2hNV);
        _glVertexAttrib2hNV = (PFN_GLVERTEXATTRIB2HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2hNV;
    }
    if (strcmp("glVertexAttrib2hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2hvNV);
        _glVertexAttrib2hvNV = (PFN_GLVERTEXATTRIB2HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2hvNV;
    }
    if (strcmp("glVertexAttrib3hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3hNV);
        _glVertexAttrib3hNV = (PFN_GLVERTEXATTRIB3HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3hNV;
    }
    if (strcmp("glVertexAttrib3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3hvNV);
        _glVertexAttrib3hvNV = (PFN_GLVERTEXATTRIB3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3hvNV;
    }
    if (strcmp("glVertexAttrib4hNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4hNV);
        _glVertexAttrib4hNV = (PFN_GLVERTEXATTRIB4HNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4hNV;
    }
    if (strcmp("glVertexAttrib4hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4hvNV);
        _glVertexAttrib4hvNV = (PFN_GLVERTEXATTRIB4HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4hvNV;
    }
    if (strcmp("glVertexAttribs1hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1hvNV);
        _glVertexAttribs1hvNV = (PFN_GLVERTEXATTRIBS1HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1hvNV;
    }
    if (strcmp("glVertexAttribs2hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2hvNV);
        _glVertexAttribs2hvNV = (PFN_GLVERTEXATTRIBS2HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2hvNV;
    }
    if (strcmp("glVertexAttribs3hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3hvNV);
        _glVertexAttribs3hvNV = (PFN_GLVERTEXATTRIBS3HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3hvNV;
    }
    if (strcmp("glVertexAttribs4hvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4hvNV);
        _glVertexAttribs4hvNV = (PFN_GLVERTEXATTRIBS4HVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4hvNV;
    }
    if (strcmp("glGenOcclusionQueriesNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenOcclusionQueriesNV);
        _glGenOcclusionQueriesNV = (PFN_GLGENOCCLUSIONQUERIESNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenOcclusionQueriesNV;
    }
    if (strcmp("glDeleteOcclusionQueriesNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteOcclusionQueriesNV);
        _glDeleteOcclusionQueriesNV = (PFN_GLDELETEOCCLUSIONQUERIESNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteOcclusionQueriesNV;
    }
    if (strcmp("glIsOcclusionQueryNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsOcclusionQueryNV);
        _glIsOcclusionQueryNV = (PFN_GLISOCCLUSIONQUERYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsOcclusionQueryNV;
    }
    if (strcmp("glBeginOcclusionQueryNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginOcclusionQueryNV);
        _glBeginOcclusionQueryNV = (PFN_GLBEGINOCCLUSIONQUERYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginOcclusionQueryNV;
    }
    if (strcmp("glEndOcclusionQueryNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndOcclusionQueryNV);
        _glEndOcclusionQueryNV = (PFN_GLENDOCCLUSIONQUERYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndOcclusionQueryNV;
    }
    if (strcmp("glGetOcclusionQueryivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetOcclusionQueryivNV);
        _glGetOcclusionQueryivNV = (PFN_GLGETOCCLUSIONQUERYIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetOcclusionQueryivNV;
    }
    if (strcmp("glGetOcclusionQueryuivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetOcclusionQueryuivNV);
        _glGetOcclusionQueryuivNV = (PFN_GLGETOCCLUSIONQUERYUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetOcclusionQueryuivNV;
    }
    if (strcmp("glProgramBufferParametersfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramBufferParametersfvNV);
        _glProgramBufferParametersfvNV = (PFN_GLPROGRAMBUFFERPARAMETERSFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramBufferParametersfvNV;
    }
    if (strcmp("glProgramBufferParametersIivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramBufferParametersIivNV);
        _glProgramBufferParametersIivNV = (PFN_GLPROGRAMBUFFERPARAMETERSIIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramBufferParametersIivNV;
    }
    if (strcmp("glProgramBufferParametersIuivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramBufferParametersIuivNV);
        _glProgramBufferParametersIuivNV = (PFN_GLPROGRAMBUFFERPARAMETERSIUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramBufferParametersIuivNV;
    }
    if (strcmp("glGenPathsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenPathsNV);
        _glGenPathsNV = (PFN_GLGENPATHSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenPathsNV;
    }
    if (strcmp("glDeletePathsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeletePathsNV);
        _glDeletePathsNV = (PFN_GLDELETEPATHSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeletePathsNV;
    }
    if (strcmp("glIsPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsPathNV);
        _glIsPathNV = (PFN_GLISPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsPathNV;
    }
    if (strcmp("glPathCommandsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathCommandsNV);
        _glPathCommandsNV = (PFN_GLPATHCOMMANDSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathCommandsNV;
    }
    if (strcmp("glPathCoordsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathCoordsNV);
        _glPathCoordsNV = (PFN_GLPATHCOORDSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathCoordsNV;
    }
    if (strcmp("glPathSubCommandsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathSubCommandsNV);
        _glPathSubCommandsNV = (PFN_GLPATHSUBCOMMANDSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathSubCommandsNV;
    }
    if (strcmp("glPathSubCoordsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathSubCoordsNV);
        _glPathSubCoordsNV = (PFN_GLPATHSUBCOORDSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathSubCoordsNV;
    }
    if (strcmp("glPathStringNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathStringNV);
        _glPathStringNV = (PFN_GLPATHSTRINGNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathStringNV;
    }
    if (strcmp("glPathGlyphsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathGlyphsNV);
        _glPathGlyphsNV = (PFN_GLPATHGLYPHSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathGlyphsNV;
    }
    if (strcmp("glPathGlyphRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathGlyphRangeNV);
        _glPathGlyphRangeNV = (PFN_GLPATHGLYPHRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathGlyphRangeNV;
    }
    if (strcmp("glWeightPathsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightPathsNV);
        _glWeightPathsNV = (PFN_GLWEIGHTPATHSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightPathsNV;
    }
    if (strcmp("glCopyPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyPathNV);
        _glCopyPathNV = (PFN_GLCOPYPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyPathNV;
    }
    if (strcmp("glInterpolatePathsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInterpolatePathsNV);
        _glInterpolatePathsNV = (PFN_GLINTERPOLATEPATHSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInterpolatePathsNV;
    }
    if (strcmp("glTransformPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformPathNV);
        _glTransformPathNV = (PFN_GLTRANSFORMPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformPathNV;
    }
    if (strcmp("glPathParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathParameterivNV);
        _glPathParameterivNV = (PFN_GLPATHPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathParameterivNV;
    }
    if (strcmp("glPathParameteriNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathParameteriNV);
        _glPathParameteriNV = (PFN_GLPATHPARAMETERINV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathParameteriNV;
    }
    if (strcmp("glPathParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathParameterfvNV);
        _glPathParameterfvNV = (PFN_GLPATHPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathParameterfvNV;
    }
    if (strcmp("glPathParameterfNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathParameterfNV);
        _glPathParameterfNV = (PFN_GLPATHPARAMETERFNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathParameterfNV;
    }
    if (strcmp("glPathDashArrayNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathDashArrayNV);
        _glPathDashArrayNV = (PFN_GLPATHDASHARRAYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathDashArrayNV;
    }
    if (strcmp("glPathStencilFuncNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathStencilFuncNV);
        _glPathStencilFuncNV = (PFN_GLPATHSTENCILFUNCNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathStencilFuncNV;
    }
    if (strcmp("glPathStencilDepthOffsetNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathStencilDepthOffsetNV);
        _glPathStencilDepthOffsetNV = (PFN_GLPATHSTENCILDEPTHOFFSETNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathStencilDepthOffsetNV;
    }
    if (strcmp("glStencilFillPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilFillPathNV);
        _glStencilFillPathNV = (PFN_GLSTENCILFILLPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilFillPathNV;
    }
    if (strcmp("glStencilStrokePathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilStrokePathNV);
        _glStencilStrokePathNV = (PFN_GLSTENCILSTROKEPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilStrokePathNV;
    }
    if (strcmp("glStencilFillPathInstancedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilFillPathInstancedNV);
        _glStencilFillPathInstancedNV = (PFN_GLSTENCILFILLPATHINSTANCEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilFillPathInstancedNV;
    }
    if (strcmp("glStencilStrokePathInstancedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilStrokePathInstancedNV);
        _glStencilStrokePathInstancedNV = (PFN_GLSTENCILSTROKEPATHINSTANCEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilStrokePathInstancedNV;
    }
    if (strcmp("glPathCoverDepthFuncNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathCoverDepthFuncNV);
        _glPathCoverDepthFuncNV = (PFN_GLPATHCOVERDEPTHFUNCNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathCoverDepthFuncNV;
    }
    if (strcmp("glPathColorGenNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathColorGenNV);
        _glPathColorGenNV = (PFN_GLPATHCOLORGENNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathColorGenNV;
    }
    if (strcmp("glPathTexGenNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathTexGenNV);
        _glPathTexGenNV = (PFN_GLPATHTEXGENNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathTexGenNV;
    }
    if (strcmp("glPathFogGenNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathFogGenNV);
        _glPathFogGenNV = (PFN_GLPATHFOGGENNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathFogGenNV;
    }
    if (strcmp("glCoverFillPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverFillPathNV);
        _glCoverFillPathNV = (PFN_GLCOVERFILLPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverFillPathNV;
    }
    if (strcmp("glCoverStrokePathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverStrokePathNV);
        _glCoverStrokePathNV = (PFN_GLCOVERSTROKEPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverStrokePathNV;
    }
    if (strcmp("glCoverFillPathInstancedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverFillPathInstancedNV);
        _glCoverFillPathInstancedNV = (PFN_GLCOVERFILLPATHINSTANCEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverFillPathInstancedNV;
    }
    if (strcmp("glCoverStrokePathInstancedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCoverStrokePathInstancedNV);
        _glCoverStrokePathInstancedNV = (PFN_GLCOVERSTROKEPATHINSTANCEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCoverStrokePathInstancedNV;
    }
    if (strcmp("glGetPathParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathParameterivNV);
        _glGetPathParameterivNV = (PFN_GLGETPATHPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathParameterivNV;
    }
    if (strcmp("glGetPathParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathParameterfvNV);
        _glGetPathParameterfvNV = (PFN_GLGETPATHPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathParameterfvNV;
    }
    if (strcmp("glGetPathCommandsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathCommandsNV);
        _glGetPathCommandsNV = (PFN_GLGETPATHCOMMANDSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathCommandsNV;
    }
    if (strcmp("glGetPathCoordsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathCoordsNV);
        _glGetPathCoordsNV = (PFN_GLGETPATHCOORDSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathCoordsNV;
    }
    if (strcmp("glGetPathDashArrayNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathDashArrayNV);
        _glGetPathDashArrayNV = (PFN_GLGETPATHDASHARRAYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathDashArrayNV;
    }
    if (strcmp("glGetPathMetricsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathMetricsNV);
        _glGetPathMetricsNV = (PFN_GLGETPATHMETRICSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathMetricsNV;
    }
    if (strcmp("glGetPathMetricRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathMetricRangeNV);
        _glGetPathMetricRangeNV = (PFN_GLGETPATHMETRICRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathMetricRangeNV;
    }
    if (strcmp("glGetPathSpacingNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathSpacingNV);
        _glGetPathSpacingNV = (PFN_GLGETPATHSPACINGNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathSpacingNV;
    }
    if (strcmp("glGetPathColorGenivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathColorGenivNV);
        _glGetPathColorGenivNV = (PFN_GLGETPATHCOLORGENIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathColorGenivNV;
    }
    if (strcmp("glGetPathColorGenfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathColorGenfvNV);
        _glGetPathColorGenfvNV = (PFN_GLGETPATHCOLORGENFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathColorGenfvNV;
    }
    if (strcmp("glGetPathTexGenivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathTexGenivNV);
        _glGetPathTexGenivNV = (PFN_GLGETPATHTEXGENIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathTexGenivNV;
    }
    if (strcmp("glGetPathTexGenfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathTexGenfvNV);
        _glGetPathTexGenfvNV = (PFN_GLGETPATHTEXGENFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathTexGenfvNV;
    }
    if (strcmp("glIsPointInFillPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsPointInFillPathNV);
        _glIsPointInFillPathNV = (PFN_GLISPOINTINFILLPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsPointInFillPathNV;
    }
    if (strcmp("glIsPointInStrokePathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsPointInStrokePathNV);
        _glIsPointInStrokePathNV = (PFN_GLISPOINTINSTROKEPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsPointInStrokePathNV;
    }
    if (strcmp("glGetPathLengthNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPathLengthNV);
        _glGetPathLengthNV = (PFN_GLGETPATHLENGTHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPathLengthNV;
    }
    if (strcmp("glPointAlongPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointAlongPathNV);
        _glPointAlongPathNV = (PFN_GLPOINTALONGPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointAlongPathNV;
    }
    if (strcmp("glMatrixLoad3x2fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoad3x2fNV);
        _glMatrixLoad3x2fNV = (PFN_GLMATRIXLOAD3X2FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoad3x2fNV;
    }
    if (strcmp("glMatrixLoad3x3fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoad3x3fNV);
        _glMatrixLoad3x3fNV = (PFN_GLMATRIXLOAD3X3FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoad3x3fNV;
    }
    if (strcmp("glMatrixLoadTranspose3x3fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixLoadTranspose3x3fNV);
        _glMatrixLoadTranspose3x3fNV = (PFN_GLMATRIXLOADTRANSPOSE3X3FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixLoadTranspose3x3fNV;
    }
    if (strcmp("glMatrixMult3x2fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMult3x2fNV);
        _glMatrixMult3x2fNV = (PFN_GLMATRIXMULT3X2FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMult3x2fNV;
    }
    if (strcmp("glMatrixMult3x3fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMult3x3fNV);
        _glMatrixMult3x3fNV = (PFN_GLMATRIXMULT3X3FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMult3x3fNV;
    }
    if (strcmp("glMatrixMultTranspose3x3fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixMultTranspose3x3fNV);
        _glMatrixMultTranspose3x3fNV = (PFN_GLMATRIXMULTTRANSPOSE3X3FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixMultTranspose3x3fNV;
    }
    if (strcmp("glStencilThenCoverFillPathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverFillPathNV);
        _glStencilThenCoverFillPathNV = (PFN_GLSTENCILTHENCOVERFILLPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverFillPathNV;
    }
    if (strcmp("glStencilThenCoverStrokePathNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverStrokePathNV);
        _glStencilThenCoverStrokePathNV = (PFN_GLSTENCILTHENCOVERSTROKEPATHNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverStrokePathNV;
    }
    if (strcmp("glStencilThenCoverFillPathInstancedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverFillPathInstancedNV);
        _glStencilThenCoverFillPathInstancedNV = (PFN_GLSTENCILTHENCOVERFILLPATHINSTANCEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverFillPathInstancedNV;
    }
    if (strcmp("glStencilThenCoverStrokePathInstancedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverStrokePathInstancedNV);
        _glStencilThenCoverStrokePathInstancedNV = (PFN_GLSTENCILTHENCOVERSTROKEPATHINSTANCEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStencilThenCoverStrokePathInstancedNV;
    }
    if (strcmp("glPathGlyphIndexRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathGlyphIndexRangeNV);
        _glPathGlyphIndexRangeNV = (PFN_GLPATHGLYPHINDEXRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathGlyphIndexRangeNV;
    }
    if (strcmp("glPathGlyphIndexArrayNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathGlyphIndexArrayNV);
        _glPathGlyphIndexArrayNV = (PFN_GLPATHGLYPHINDEXARRAYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathGlyphIndexArrayNV;
    }
    if (strcmp("glPathMemoryGlyphIndexArrayNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPathMemoryGlyphIndexArrayNV);
        _glPathMemoryGlyphIndexArrayNV = (PFN_GLPATHMEMORYGLYPHINDEXARRAYNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPathMemoryGlyphIndexArrayNV;
    }
    if (strcmp("glProgramPathFragmentInputGenNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramPathFragmentInputGenNV);
        _glProgramPathFragmentInputGenNV = (PFN_GLPROGRAMPATHFRAGMENTINPUTGENNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramPathFragmentInputGenNV;
    }
    if (strcmp("glGetProgramResourcefvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramResourcefvNV);
        _glGetProgramResourcefvNV = (PFN_GLGETPROGRAMRESOURCEFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramResourcefvNV;
    }
    if (strcmp("glPixelDataRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelDataRangeNV);
        _glPixelDataRangeNV = (PFN_GLPIXELDATARANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelDataRangeNV;
    }
    if (strcmp("glFlushPixelDataRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushPixelDataRangeNV);
        _glFlushPixelDataRangeNV = (PFN_GLFLUSHPIXELDATARANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushPixelDataRangeNV;
    }
    if (strcmp("glPointParameteriNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameteriNV);
        _glPointParameteriNV = (PFN_GLPOINTPARAMETERINV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameteriNV;
    }
    if (strcmp("glPointParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterivNV);
        _glPointParameterivNV = (PFN_GLPOINTPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterivNV;
    }
    if (strcmp("glPresentFrameKeyedNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPresentFrameKeyedNV);
        _glPresentFrameKeyedNV = (PFN_GLPRESENTFRAMEKEYEDNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPresentFrameKeyedNV;
    }
    if (strcmp("glPresentFrameDualFillNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPresentFrameDualFillNV);
        _glPresentFrameDualFillNV = (PFN_GLPRESENTFRAMEDUALFILLNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPresentFrameDualFillNV;
    }
    if (strcmp("glGetVideoivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoivNV);
        _glGetVideoivNV = (PFN_GLGETVIDEOIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoivNV;
    }
    if (strcmp("glGetVideouivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideouivNV);
        _glGetVideouivNV = (PFN_GLGETVIDEOUIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideouivNV;
    }
    if (strcmp("glGetVideoi64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoi64vNV);
        _glGetVideoi64vNV = (PFN_GLGETVIDEOI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoi64vNV;
    }
    if (strcmp("glGetVideoui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoui64vNV);
        _glGetVideoui64vNV = (PFN_GLGETVIDEOUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoui64vNV;
    }
    if (strcmp("glPrimitiveRestartNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrimitiveRestartNV);
        _glPrimitiveRestartNV = (PFN_GLPRIMITIVERESTARTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrimitiveRestartNV;
    }
    if (strcmp("glPrimitiveRestartIndexNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPrimitiveRestartIndexNV);
        _glPrimitiveRestartIndexNV = (PFN_GLPRIMITIVERESTARTINDEXNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPrimitiveRestartIndexNV;
    }
    if (strcmp("glReadBufferNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadBufferNV);
        _glReadBufferNV = (PFN_GLREADBUFFERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadBufferNV;
    }
    if (strcmp("glCombinerParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerParameterfvNV);
        _glCombinerParameterfvNV = (PFN_GLCOMBINERPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerParameterfvNV;
    }
    if (strcmp("glCombinerParameterfNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerParameterfNV);
        _glCombinerParameterfNV = (PFN_GLCOMBINERPARAMETERFNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerParameterfNV;
    }
    if (strcmp("glCombinerParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerParameterivNV);
        _glCombinerParameterivNV = (PFN_GLCOMBINERPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerParameterivNV;
    }
    if (strcmp("glCombinerParameteriNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerParameteriNV);
        _glCombinerParameteriNV = (PFN_GLCOMBINERPARAMETERINV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerParameteriNV;
    }
    if (strcmp("glCombinerInputNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerInputNV);
        _glCombinerInputNV = (PFN_GLCOMBINERINPUTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerInputNV;
    }
    if (strcmp("glCombinerOutputNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerOutputNV);
        _glCombinerOutputNV = (PFN_GLCOMBINEROUTPUTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerOutputNV;
    }
    if (strcmp("glFinalCombinerInputNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinalCombinerInputNV);
        _glFinalCombinerInputNV = (PFN_GLFINALCOMBINERINPUTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinalCombinerInputNV;
    }
    if (strcmp("glGetCombinerInputParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCombinerInputParameterfvNV);
        _glGetCombinerInputParameterfvNV = (PFN_GLGETCOMBINERINPUTPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCombinerInputParameterfvNV;
    }
    if (strcmp("glGetCombinerInputParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCombinerInputParameterivNV);
        _glGetCombinerInputParameterivNV = (PFN_GLGETCOMBINERINPUTPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCombinerInputParameterivNV;
    }
    if (strcmp("glGetCombinerOutputParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCombinerOutputParameterfvNV);
        _glGetCombinerOutputParameterfvNV = (PFN_GLGETCOMBINEROUTPUTPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCombinerOutputParameterfvNV;
    }
    if (strcmp("glGetCombinerOutputParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCombinerOutputParameterivNV);
        _glGetCombinerOutputParameterivNV = (PFN_GLGETCOMBINEROUTPUTPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCombinerOutputParameterivNV;
    }
    if (strcmp("glGetFinalCombinerInputParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFinalCombinerInputParameterfvNV);
        _glGetFinalCombinerInputParameterfvNV = (PFN_GLGETFINALCOMBINERINPUTPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFinalCombinerInputParameterfvNV;
    }
    if (strcmp("glGetFinalCombinerInputParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFinalCombinerInputParameterivNV);
        _glGetFinalCombinerInputParameterivNV = (PFN_GLGETFINALCOMBINERINPUTPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFinalCombinerInputParameterivNV;
    }
    if (strcmp("glCombinerStageParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCombinerStageParameterfvNV);
        _glCombinerStageParameterfvNV = (PFN_GLCOMBINERSTAGEPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCombinerStageParameterfvNV;
    }
    if (strcmp("glGetCombinerStageParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetCombinerStageParameterfvNV);
        _glGetCombinerStageParameterfvNV = (PFN_GLGETCOMBINERSTAGEPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetCombinerStageParameterfvNV;
    }
    if (strcmp("glMakeBufferResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeBufferResidentNV);
        _glMakeBufferResidentNV = (PFN_GLMAKEBUFFERRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeBufferResidentNV;
    }
    if (strcmp("glMakeBufferNonResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeBufferNonResidentNV);
        _glMakeBufferNonResidentNV = (PFN_GLMAKEBUFFERNONRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeBufferNonResidentNV;
    }
    if (strcmp("glIsBufferResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsBufferResidentNV);
        _glIsBufferResidentNV = (PFN_GLISBUFFERRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsBufferResidentNV;
    }
    if (strcmp("glMakeNamedBufferResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeNamedBufferResidentNV);
        _glMakeNamedBufferResidentNV = (PFN_GLMAKENAMEDBUFFERRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeNamedBufferResidentNV;
    }
    if (strcmp("glMakeNamedBufferNonResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMakeNamedBufferNonResidentNV);
        _glMakeNamedBufferNonResidentNV = (PFN_GLMAKENAMEDBUFFERNONRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMakeNamedBufferNonResidentNV;
    }
    if (strcmp("glIsNamedBufferResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsNamedBufferResidentNV);
        _glIsNamedBufferResidentNV = (PFN_GLISNAMEDBUFFERRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsNamedBufferResidentNV;
    }
    if (strcmp("glGetBufferParameterui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferParameterui64vNV);
        _glGetBufferParameterui64vNV = (PFN_GLGETBUFFERPARAMETERUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferParameterui64vNV;
    }
    if (strcmp("glGetNamedBufferParameterui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameterui64vNV);
        _glGetNamedBufferParameterui64vNV = (PFN_GLGETNAMEDBUFFERPARAMETERUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetNamedBufferParameterui64vNV;
    }
    if (strcmp("glGetIntegerui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetIntegerui64vNV);
        _glGetIntegerui64vNV = (PFN_GLGETINTEGERUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetIntegerui64vNV;
    }
    if (strcmp("glUniformui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformui64NV);
        _glUniformui64NV = (PFN_GLUNIFORMUI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformui64NV;
    }
    if (strcmp("glUniformui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUniformui64vNV);
        _glUniformui64vNV = (PFN_GLUNIFORMUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUniformui64vNV;
    }
    if (strcmp("glGetUniformui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetUniformui64vNV);
        _glGetUniformui64vNV = (PFN_GLGETUNIFORMUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetUniformui64vNV;
    }
    if (strcmp("glProgramUniformui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformui64NV);
        _glProgramUniformui64NV = (PFN_GLPROGRAMUNIFORMUI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformui64NV;
    }
    if (strcmp("glProgramUniformui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramUniformui64vNV);
        _glProgramUniformui64vNV = (PFN_GLPROGRAMUNIFORMUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramUniformui64vNV;
    }
    if (strcmp("glTextureBarrierNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureBarrierNV);
        _glTextureBarrierNV = (PFN_GLTEXTUREBARRIERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureBarrierNV;
    }
    if (strcmp("glTexImage2DMultisampleCoverageNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage2DMultisampleCoverageNV);
        _glTexImage2DMultisampleCoverageNV = (PFN_GLTEXIMAGE2DMULTISAMPLECOVERAGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage2DMultisampleCoverageNV;
    }
    if (strcmp("glTexImage3DMultisampleCoverageNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage3DMultisampleCoverageNV);
        _glTexImage3DMultisampleCoverageNV = (PFN_GLTEXIMAGE3DMULTISAMPLECOVERAGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage3DMultisampleCoverageNV;
    }
    if (strcmp("glTextureImage2DMultisampleNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage2DMultisampleNV);
        _glTextureImage2DMultisampleNV = (PFN_GLTEXTUREIMAGE2DMULTISAMPLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage2DMultisampleNV;
    }
    if (strcmp("glTextureImage3DMultisampleNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage3DMultisampleNV);
        _glTextureImage3DMultisampleNV = (PFN_GLTEXTUREIMAGE3DMULTISAMPLENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage3DMultisampleNV;
    }
    if (strcmp("glTextureImage2DMultisampleCoverageNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage2DMultisampleCoverageNV);
        _glTextureImage2DMultisampleCoverageNV = (PFN_GLTEXTUREIMAGE2DMULTISAMPLECOVERAGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage2DMultisampleCoverageNV;
    }
    if (strcmp("glTextureImage3DMultisampleCoverageNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureImage3DMultisampleCoverageNV);
        _glTextureImage3DMultisampleCoverageNV = (PFN_GLTEXTUREIMAGE3DMULTISAMPLECOVERAGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureImage3DMultisampleCoverageNV;
    }
    if (strcmp("glBeginTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginTransformFeedbackNV);
        _glBeginTransformFeedbackNV = (PFN_GLBEGINTRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginTransformFeedbackNV;
    }
    if (strcmp("glEndTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndTransformFeedbackNV);
        _glEndTransformFeedbackNV = (PFN_GLENDTRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndTransformFeedbackNV;
    }
    if (strcmp("glTransformFeedbackAttribsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackAttribsNV);
        _glTransformFeedbackAttribsNV = (PFN_GLTRANSFORMFEEDBACKATTRIBSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackAttribsNV;
    }
    if (strcmp("glBindBufferRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferRangeNV);
        _glBindBufferRangeNV = (PFN_GLBINDBUFFERRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferRangeNV;
    }
    if (strcmp("glBindBufferOffsetNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferOffsetNV);
        _glBindBufferOffsetNV = (PFN_GLBINDBUFFEROFFSETNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferOffsetNV;
    }
    if (strcmp("glBindBufferBaseNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindBufferBaseNV);
        _glBindBufferBaseNV = (PFN_GLBINDBUFFERBASENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindBufferBaseNV;
    }
    if (strcmp("glTransformFeedbackVaryingsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackVaryingsNV);
        _glTransformFeedbackVaryingsNV = (PFN_GLTRANSFORMFEEDBACKVARYINGSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackVaryingsNV;
    }
    if (strcmp("glActiveVaryingNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glActiveVaryingNV);
        _glActiveVaryingNV = (PFN_GLACTIVEVARYINGNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glActiveVaryingNV;
    }
    if (strcmp("glGetVaryingLocationNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVaryingLocationNV);
        _glGetVaryingLocationNV = (PFN_GLGETVARYINGLOCATIONNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVaryingLocationNV;
    }
    if (strcmp("glGetActiveVaryingNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetActiveVaryingNV);
        _glGetActiveVaryingNV = (PFN_GLGETACTIVEVARYINGNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetActiveVaryingNV;
    }
    if (strcmp("glGetTransformFeedbackVaryingNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackVaryingNV);
        _glGetTransformFeedbackVaryingNV = (PFN_GLGETTRANSFORMFEEDBACKVARYINGNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTransformFeedbackVaryingNV;
    }
    if (strcmp("glTransformFeedbackStreamAttribsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackStreamAttribsNV);
        _glTransformFeedbackStreamAttribsNV = (PFN_GLTRANSFORMFEEDBACKSTREAMATTRIBSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTransformFeedbackStreamAttribsNV;
    }
    if (strcmp("glBindTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindTransformFeedbackNV);
        _glBindTransformFeedbackNV = (PFN_GLBINDTRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindTransformFeedbackNV;
    }
    if (strcmp("glDeleteTransformFeedbacksNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteTransformFeedbacksNV);
        _glDeleteTransformFeedbacksNV = (PFN_GLDELETETRANSFORMFEEDBACKSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteTransformFeedbacksNV;
    }
    if (strcmp("glGenTransformFeedbacksNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenTransformFeedbacksNV);
        _glGenTransformFeedbacksNV = (PFN_GLGENTRANSFORMFEEDBACKSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenTransformFeedbacksNV;
    }
    if (strcmp("glIsTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsTransformFeedbackNV);
        _glIsTransformFeedbackNV = (PFN_GLISTRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsTransformFeedbackNV;
    }
    if (strcmp("glPauseTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPauseTransformFeedbackNV);
        _glPauseTransformFeedbackNV = (PFN_GLPAUSETRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPauseTransformFeedbackNV;
    }
    if (strcmp("glResumeTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glResumeTransformFeedbackNV);
        _glResumeTransformFeedbackNV = (PFN_GLRESUMETRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glResumeTransformFeedbackNV;
    }
    if (strcmp("glDrawTransformFeedbackNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackNV);
        _glDrawTransformFeedbackNV = (PFN_GLDRAWTRANSFORMFEEDBACKNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTransformFeedbackNV;
    }
    if (strcmp("glVDPAUInitNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUInitNV);
        _glVDPAUInitNV = (PFN_GLVDPAUINITNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUInitNV;
    }
    if (strcmp("glVDPAUFiniNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUFiniNV);
        _glVDPAUFiniNV = (PFN_GLVDPAUFININV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUFiniNV;
    }
    if (strcmp("glVDPAURegisterVideoSurfaceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAURegisterVideoSurfaceNV);
        _glVDPAURegisterVideoSurfaceNV = (PFN_GLVDPAUREGISTERVIDEOSURFACENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAURegisterVideoSurfaceNV;
    }
    if (strcmp("glVDPAURegisterOutputSurfaceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAURegisterOutputSurfaceNV);
        _glVDPAURegisterOutputSurfaceNV = (PFN_GLVDPAUREGISTEROUTPUTSURFACENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAURegisterOutputSurfaceNV;
    }
    if (strcmp("glVDPAUIsSurfaceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUIsSurfaceNV);
        _glVDPAUIsSurfaceNV = (PFN_GLVDPAUISSURFACENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUIsSurfaceNV;
    }
    if (strcmp("glVDPAUUnregisterSurfaceNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUUnregisterSurfaceNV);
        _glVDPAUUnregisterSurfaceNV = (PFN_GLVDPAUUNREGISTERSURFACENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUUnregisterSurfaceNV;
    }
    if (strcmp("glVDPAUGetSurfaceivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUGetSurfaceivNV);
        _glVDPAUGetSurfaceivNV = (PFN_GLVDPAUGETSURFACEIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUGetSurfaceivNV;
    }
    if (strcmp("glVDPAUSurfaceAccessNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUSurfaceAccessNV);
        _glVDPAUSurfaceAccessNV = (PFN_GLVDPAUSURFACEACCESSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUSurfaceAccessNV;
    }
    if (strcmp("glVDPAUMapSurfacesNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUMapSurfacesNV);
        _glVDPAUMapSurfacesNV = (PFN_GLVDPAUMAPSURFACESNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUMapSurfacesNV;
    }
    if (strcmp("glVDPAUUnmapSurfacesNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVDPAUUnmapSurfacesNV);
        _glVDPAUUnmapSurfacesNV = (PFN_GLVDPAUUNMAPSURFACESNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVDPAUUnmapSurfacesNV;
    }
    if (strcmp("glFlushVertexArrayRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushVertexArrayRangeNV);
        _glFlushVertexArrayRangeNV = (PFN_GLFLUSHVERTEXARRAYRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushVertexArrayRangeNV;
    }
    if (strcmp("glVertexArrayRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexArrayRangeNV);
        _glVertexArrayRangeNV = (PFN_GLVERTEXARRAYRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexArrayRangeNV;
    }
    if (strcmp("glVertexAttribL1i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1i64NV);
        _glVertexAttribL1i64NV = (PFN_GLVERTEXATTRIBL1I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1i64NV;
    }
    if (strcmp("glVertexAttribL2i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2i64NV);
        _glVertexAttribL2i64NV = (PFN_GLVERTEXATTRIBL2I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2i64NV;
    }
    if (strcmp("glVertexAttribL3i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3i64NV);
        _glVertexAttribL3i64NV = (PFN_GLVERTEXATTRIBL3I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3i64NV;
    }
    if (strcmp("glVertexAttribL4i64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4i64NV);
        _glVertexAttribL4i64NV = (PFN_GLVERTEXATTRIBL4I64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4i64NV;
    }
    if (strcmp("glVertexAttribL1i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1i64vNV);
        _glVertexAttribL1i64vNV = (PFN_GLVERTEXATTRIBL1I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1i64vNV;
    }
    if (strcmp("glVertexAttribL2i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2i64vNV);
        _glVertexAttribL2i64vNV = (PFN_GLVERTEXATTRIBL2I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2i64vNV;
    }
    if (strcmp("glVertexAttribL3i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3i64vNV);
        _glVertexAttribL3i64vNV = (PFN_GLVERTEXATTRIBL3I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3i64vNV;
    }
    if (strcmp("glVertexAttribL4i64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4i64vNV);
        _glVertexAttribL4i64vNV = (PFN_GLVERTEXATTRIBL4I64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4i64vNV;
    }
    if (strcmp("glVertexAttribL1ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64NV);
        _glVertexAttribL1ui64NV = (PFN_GLVERTEXATTRIBL1UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64NV;
    }
    if (strcmp("glVertexAttribL2ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2ui64NV);
        _glVertexAttribL2ui64NV = (PFN_GLVERTEXATTRIBL2UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2ui64NV;
    }
    if (strcmp("glVertexAttribL3ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3ui64NV);
        _glVertexAttribL3ui64NV = (PFN_GLVERTEXATTRIBL3UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3ui64NV;
    }
    if (strcmp("glVertexAttribL4ui64NV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4ui64NV);
        _glVertexAttribL4ui64NV = (PFN_GLVERTEXATTRIBL4UI64NV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4ui64NV;
    }
    if (strcmp("glVertexAttribL1ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64vNV);
        _glVertexAttribL1ui64vNV = (PFN_GLVERTEXATTRIBL1UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL1ui64vNV;
    }
    if (strcmp("glVertexAttribL2ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2ui64vNV);
        _glVertexAttribL2ui64vNV = (PFN_GLVERTEXATTRIBL2UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL2ui64vNV;
    }
    if (strcmp("glVertexAttribL3ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3ui64vNV);
        _glVertexAttribL3ui64vNV = (PFN_GLVERTEXATTRIBL3UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL3ui64vNV;
    }
    if (strcmp("glVertexAttribL4ui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4ui64vNV);
        _glVertexAttribL4ui64vNV = (PFN_GLVERTEXATTRIBL4UI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribL4ui64vNV;
    }
    if (strcmp("glGetVertexAttribLi64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLi64vNV);
        _glGetVertexAttribLi64vNV = (PFN_GLGETVERTEXATTRIBLI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLi64vNV;
    }
    if (strcmp("glGetVertexAttribLui64vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLui64vNV);
        _glGetVertexAttribLui64vNV = (PFN_GLGETVERTEXATTRIBLUI64VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribLui64vNV;
    }
    if (strcmp("glVertexAttribLFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribLFormatNV);
        _glVertexAttribLFormatNV = (PFN_GLVERTEXATTRIBLFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribLFormatNV;
    }
    if (strcmp("glBufferAddressRangeNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBufferAddressRangeNV);
        _glBufferAddressRangeNV = (PFN_GLBUFFERADDRESSRANGENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBufferAddressRangeNV;
    }
    if (strcmp("glVertexFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexFormatNV);
        _glVertexFormatNV = (PFN_GLVERTEXFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexFormatNV;
    }
    if (strcmp("glNormalFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormalFormatNV);
        _glNormalFormatNV = (PFN_GLNORMALFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormalFormatNV;
    }
    if (strcmp("glColorFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorFormatNV);
        _glColorFormatNV = (PFN_GLCOLORFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorFormatNV;
    }
    if (strcmp("glIndexFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIndexFormatNV);
        _glIndexFormatNV = (PFN_GLINDEXFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIndexFormatNV;
    }
    if (strcmp("glTexCoordFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoordFormatNV);
        _glTexCoordFormatNV = (PFN_GLTEXCOORDFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoordFormatNV;
    }
    if (strcmp("glEdgeFlagFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEdgeFlagFormatNV);
        _glEdgeFlagFormatNV = (PFN_GLEDGEFLAGFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEdgeFlagFormatNV;
    }
    if (strcmp("glSecondaryColorFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSecondaryColorFormatNV);
        _glSecondaryColorFormatNV = (PFN_GLSECONDARYCOLORFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSecondaryColorFormatNV;
    }
    if (strcmp("glFogCoordFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogCoordFormatNV);
        _glFogCoordFormatNV = (PFN_GLFOGCOORDFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogCoordFormatNV;
    }
    if (strcmp("glVertexAttribFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribFormatNV);
        _glVertexAttribFormatNV = (PFN_GLVERTEXATTRIBFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribFormatNV;
    }
    if (strcmp("glVertexAttribIFormatNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribIFormatNV);
        _glVertexAttribIFormatNV = (PFN_GLVERTEXATTRIBIFORMATNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribIFormatNV;
    }
    if (strcmp("glGetIntegerui64i_vNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetIntegerui64i_vNV);
        _glGetIntegerui64i_vNV = (PFN_GLGETINTEGERUI64I_VNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetIntegerui64i_vNV;
    }
    if (strcmp("glAreProgramsResidentNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAreProgramsResidentNV);
        _glAreProgramsResidentNV = (PFN_GLAREPROGRAMSRESIDENTNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAreProgramsResidentNV;
    }
    if (strcmp("glBindProgramNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindProgramNV);
        _glBindProgramNV = (PFN_GLBINDPROGRAMNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindProgramNV;
    }
    if (strcmp("glDeleteProgramsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteProgramsNV);
        _glDeleteProgramsNV = (PFN_GLDELETEPROGRAMSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteProgramsNV;
    }
    if (strcmp("glExecuteProgramNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glExecuteProgramNV);
        _glExecuteProgramNV = (PFN_GLEXECUTEPROGRAMNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glExecuteProgramNV;
    }
    if (strcmp("glGenProgramsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenProgramsNV);
        _glGenProgramsNV = (PFN_GLGENPROGRAMSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenProgramsNV;
    }
    if (strcmp("glGetProgramParameterdvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramParameterdvNV);
        _glGetProgramParameterdvNV = (PFN_GLGETPROGRAMPARAMETERDVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramParameterdvNV;
    }
    if (strcmp("glGetProgramParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramParameterfvNV);
        _glGetProgramParameterfvNV = (PFN_GLGETPROGRAMPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramParameterfvNV;
    }
    if (strcmp("glGetProgramivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramivNV);
        _glGetProgramivNV = (PFN_GLGETPROGRAMIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramivNV;
    }
    if (strcmp("glGetProgramStringNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramStringNV);
        _glGetProgramStringNV = (PFN_GLGETPROGRAMSTRINGNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramStringNV;
    }
    if (strcmp("glGetTrackMatrixivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTrackMatrixivNV);
        _glGetTrackMatrixivNV = (PFN_GLGETTRACKMATRIXIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTrackMatrixivNV;
    }
    if (strcmp("glGetVertexAttribdvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribdvNV);
        _glGetVertexAttribdvNV = (PFN_GLGETVERTEXATTRIBDVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribdvNV;
    }
    if (strcmp("glGetVertexAttribfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribfvNV);
        _glGetVertexAttribfvNV = (PFN_GLGETVERTEXATTRIBFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribfvNV;
    }
    if (strcmp("glGetVertexAttribivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribivNV);
        _glGetVertexAttribivNV = (PFN_GLGETVERTEXATTRIBIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribivNV;
    }
    if (strcmp("glGetVertexAttribPointervNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribPointervNV);
        _glGetVertexAttribPointervNV = (PFN_GLGETVERTEXATTRIBPOINTERVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribPointervNV;
    }
    if (strcmp("glIsProgramNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsProgramNV);
        _glIsProgramNV = (PFN_GLISPROGRAMNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsProgramNV;
    }
    if (strcmp("glLoadProgramNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadProgramNV);
        _glLoadProgramNV = (PFN_GLLOADPROGRAMNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadProgramNV;
    }
    if (strcmp("glProgramParameter4dNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameter4dNV);
        _glProgramParameter4dNV = (PFN_GLPROGRAMPARAMETER4DNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameter4dNV;
    }
    if (strcmp("glProgramParameter4dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameter4dvNV);
        _glProgramParameter4dvNV = (PFN_GLPROGRAMPARAMETER4DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameter4dvNV;
    }
    if (strcmp("glProgramParameter4fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameter4fNV);
        _glProgramParameter4fNV = (PFN_GLPROGRAMPARAMETER4FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameter4fNV;
    }
    if (strcmp("glProgramParameter4fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameter4fvNV);
        _glProgramParameter4fvNV = (PFN_GLPROGRAMPARAMETER4FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameter4fvNV;
    }
    if (strcmp("glProgramParameters4dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameters4dvNV);
        _glProgramParameters4dvNV = (PFN_GLPROGRAMPARAMETERS4DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameters4dvNV;
    }
    if (strcmp("glProgramParameters4fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramParameters4fvNV);
        _glProgramParameters4fvNV = (PFN_GLPROGRAMPARAMETERS4FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramParameters4fvNV;
    }
    if (strcmp("glRequestResidentProgramsNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRequestResidentProgramsNV);
        _glRequestResidentProgramsNV = (PFN_GLREQUESTRESIDENTPROGRAMSNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRequestResidentProgramsNV;
    }
    if (strcmp("glTrackMatrixNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTrackMatrixNV);
        _glTrackMatrixNV = (PFN_GLTRACKMATRIXNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTrackMatrixNV;
    }
    if (strcmp("glVertexAttribPointerNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribPointerNV);
        _glVertexAttribPointerNV = (PFN_GLVERTEXATTRIBPOINTERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribPointerNV;
    }
    if (strcmp("glVertexAttrib1dNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dNV);
        _glVertexAttrib1dNV = (PFN_GLVERTEXATTRIB1DNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dNV;
    }
    if (strcmp("glVertexAttrib1dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dvNV);
        _glVertexAttrib1dvNV = (PFN_GLVERTEXATTRIB1DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1dvNV;
    }
    if (strcmp("glVertexAttrib1fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fNV);
        _glVertexAttrib1fNV = (PFN_GLVERTEXATTRIB1FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fNV;
    }
    if (strcmp("glVertexAttrib1fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fvNV);
        _glVertexAttrib1fvNV = (PFN_GLVERTEXATTRIB1FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1fvNV;
    }
    if (strcmp("glVertexAttrib1sNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1sNV);
        _glVertexAttrib1sNV = (PFN_GLVERTEXATTRIB1SNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1sNV;
    }
    if (strcmp("glVertexAttrib1svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1svNV);
        _glVertexAttrib1svNV = (PFN_GLVERTEXATTRIB1SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib1svNV;
    }
    if (strcmp("glVertexAttrib2dNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dNV);
        _glVertexAttrib2dNV = (PFN_GLVERTEXATTRIB2DNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dNV;
    }
    if (strcmp("glVertexAttrib2dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dvNV);
        _glVertexAttrib2dvNV = (PFN_GLVERTEXATTRIB2DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2dvNV;
    }
    if (strcmp("glVertexAttrib2fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fNV);
        _glVertexAttrib2fNV = (PFN_GLVERTEXATTRIB2FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fNV;
    }
    if (strcmp("glVertexAttrib2fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fvNV);
        _glVertexAttrib2fvNV = (PFN_GLVERTEXATTRIB2FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2fvNV;
    }
    if (strcmp("glVertexAttrib2sNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2sNV);
        _glVertexAttrib2sNV = (PFN_GLVERTEXATTRIB2SNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2sNV;
    }
    if (strcmp("glVertexAttrib2svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2svNV);
        _glVertexAttrib2svNV = (PFN_GLVERTEXATTRIB2SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib2svNV;
    }
    if (strcmp("glVertexAttrib3dNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dNV);
        _glVertexAttrib3dNV = (PFN_GLVERTEXATTRIB3DNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dNV;
    }
    if (strcmp("glVertexAttrib3dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dvNV);
        _glVertexAttrib3dvNV = (PFN_GLVERTEXATTRIB3DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3dvNV;
    }
    if (strcmp("glVertexAttrib3fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fNV);
        _glVertexAttrib3fNV = (PFN_GLVERTEXATTRIB3FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fNV;
    }
    if (strcmp("glVertexAttrib3fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fvNV);
        _glVertexAttrib3fvNV = (PFN_GLVERTEXATTRIB3FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3fvNV;
    }
    if (strcmp("glVertexAttrib3sNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3sNV);
        _glVertexAttrib3sNV = (PFN_GLVERTEXATTRIB3SNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3sNV;
    }
    if (strcmp("glVertexAttrib3svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3svNV);
        _glVertexAttrib3svNV = (PFN_GLVERTEXATTRIB3SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib3svNV;
    }
    if (strcmp("glVertexAttrib4dNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dNV);
        _glVertexAttrib4dNV = (PFN_GLVERTEXATTRIB4DNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dNV;
    }
    if (strcmp("glVertexAttrib4dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dvNV);
        _glVertexAttrib4dvNV = (PFN_GLVERTEXATTRIB4DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4dvNV;
    }
    if (strcmp("glVertexAttrib4fNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fNV);
        _glVertexAttrib4fNV = (PFN_GLVERTEXATTRIB4FNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fNV;
    }
    if (strcmp("glVertexAttrib4fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fvNV);
        _glVertexAttrib4fvNV = (PFN_GLVERTEXATTRIB4FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4fvNV;
    }
    if (strcmp("glVertexAttrib4sNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4sNV);
        _glVertexAttrib4sNV = (PFN_GLVERTEXATTRIB4SNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4sNV;
    }
    if (strcmp("glVertexAttrib4svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4svNV);
        _glVertexAttrib4svNV = (PFN_GLVERTEXATTRIB4SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4svNV;
    }
    if (strcmp("glVertexAttrib4ubNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubNV);
        _glVertexAttrib4ubNV = (PFN_GLVERTEXATTRIB4UBNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubNV;
    }
    if (strcmp("glVertexAttrib4ubvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubvNV);
        _glVertexAttrib4ubvNV = (PFN_GLVERTEXATTRIB4UBVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttrib4ubvNV;
    }
    if (strcmp("glVertexAttribs1dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1dvNV);
        _glVertexAttribs1dvNV = (PFN_GLVERTEXATTRIBS1DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1dvNV;
    }
    if (strcmp("glVertexAttribs1fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1fvNV);
        _glVertexAttribs1fvNV = (PFN_GLVERTEXATTRIBS1FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1fvNV;
    }
    if (strcmp("glVertexAttribs1svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1svNV);
        _glVertexAttribs1svNV = (PFN_GLVERTEXATTRIBS1SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs1svNV;
    }
    if (strcmp("glVertexAttribs2dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2dvNV);
        _glVertexAttribs2dvNV = (PFN_GLVERTEXATTRIBS2DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2dvNV;
    }
    if (strcmp("glVertexAttribs2fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2fvNV);
        _glVertexAttribs2fvNV = (PFN_GLVERTEXATTRIBS2FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2fvNV;
    }
    if (strcmp("glVertexAttribs2svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2svNV);
        _glVertexAttribs2svNV = (PFN_GLVERTEXATTRIBS2SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs2svNV;
    }
    if (strcmp("glVertexAttribs3dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3dvNV);
        _glVertexAttribs3dvNV = (PFN_GLVERTEXATTRIBS3DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3dvNV;
    }
    if (strcmp("glVertexAttribs3fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3fvNV);
        _glVertexAttribs3fvNV = (PFN_GLVERTEXATTRIBS3FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3fvNV;
    }
    if (strcmp("glVertexAttribs3svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3svNV);
        _glVertexAttribs3svNV = (PFN_GLVERTEXATTRIBS3SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs3svNV;
    }
    if (strcmp("glVertexAttribs4dvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4dvNV);
        _glVertexAttribs4dvNV = (PFN_GLVERTEXATTRIBS4DVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4dvNV;
    }
    if (strcmp("glVertexAttribs4fvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4fvNV);
        _glVertexAttribs4fvNV = (PFN_GLVERTEXATTRIBS4FVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4fvNV;
    }
    if (strcmp("glVertexAttribs4svNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4svNV);
        _glVertexAttribs4svNV = (PFN_GLVERTEXATTRIBS4SVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4svNV;
    }
    if (strcmp("glVertexAttribs4ubvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4ubvNV);
        _glVertexAttribs4ubvNV = (PFN_GLVERTEXATTRIBS4UBVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribs4ubvNV;
    }
    if (strcmp("glVertexAttribI1iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1iEXT);
        _glVertexAttribI1iEXT = (PFN_GLVERTEXATTRIBI1IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1iEXT;
    }
    if (strcmp("glVertexAttribI2iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2iEXT);
        _glVertexAttribI2iEXT = (PFN_GLVERTEXATTRIBI2IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2iEXT;
    }
    if (strcmp("glVertexAttribI3iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3iEXT);
        _glVertexAttribI3iEXT = (PFN_GLVERTEXATTRIBI3IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3iEXT;
    }
    if (strcmp("glVertexAttribI4iEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4iEXT);
        _glVertexAttribI4iEXT = (PFN_GLVERTEXATTRIBI4IEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4iEXT;
    }
    if (strcmp("glVertexAttribI1uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1uiEXT);
        _glVertexAttribI1uiEXT = (PFN_GLVERTEXATTRIBI1UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1uiEXT;
    }
    if (strcmp("glVertexAttribI2uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2uiEXT);
        _glVertexAttribI2uiEXT = (PFN_GLVERTEXATTRIBI2UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2uiEXT;
    }
    if (strcmp("glVertexAttribI3uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3uiEXT);
        _glVertexAttribI3uiEXT = (PFN_GLVERTEXATTRIBI3UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3uiEXT;
    }
    if (strcmp("glVertexAttribI4uiEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4uiEXT);
        _glVertexAttribI4uiEXT = (PFN_GLVERTEXATTRIBI4UIEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4uiEXT;
    }
    if (strcmp("glVertexAttribI1ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1ivEXT);
        _glVertexAttribI1ivEXT = (PFN_GLVERTEXATTRIBI1IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1ivEXT;
    }
    if (strcmp("glVertexAttribI2ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2ivEXT);
        _glVertexAttribI2ivEXT = (PFN_GLVERTEXATTRIBI2IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2ivEXT;
    }
    if (strcmp("glVertexAttribI3ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3ivEXT);
        _glVertexAttribI3ivEXT = (PFN_GLVERTEXATTRIBI3IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3ivEXT;
    }
    if (strcmp("glVertexAttribI4ivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ivEXT);
        _glVertexAttribI4ivEXT = (PFN_GLVERTEXATTRIBI4IVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ivEXT;
    }
    if (strcmp("glVertexAttribI1uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1uivEXT);
        _glVertexAttribI1uivEXT = (PFN_GLVERTEXATTRIBI1UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI1uivEXT;
    }
    if (strcmp("glVertexAttribI2uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2uivEXT);
        _glVertexAttribI2uivEXT = (PFN_GLVERTEXATTRIBI2UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI2uivEXT;
    }
    if (strcmp("glVertexAttribI3uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3uivEXT);
        _glVertexAttribI3uivEXT = (PFN_GLVERTEXATTRIBI3UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI3uivEXT;
    }
    if (strcmp("glVertexAttribI4uivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4uivEXT);
        _glVertexAttribI4uivEXT = (PFN_GLVERTEXATTRIBI4UIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4uivEXT;
    }
    if (strcmp("glVertexAttribI4bvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4bvEXT);
        _glVertexAttribI4bvEXT = (PFN_GLVERTEXATTRIBI4BVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4bvEXT;
    }
    if (strcmp("glVertexAttribI4svEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4svEXT);
        _glVertexAttribI4svEXT = (PFN_GLVERTEXATTRIBI4SVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4svEXT;
    }
    if (strcmp("glVertexAttribI4ubvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ubvEXT);
        _glVertexAttribI4ubvEXT = (PFN_GLVERTEXATTRIBI4UBVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4ubvEXT;
    }
    if (strcmp("glVertexAttribI4usvEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4usvEXT);
        _glVertexAttribI4usvEXT = (PFN_GLVERTEXATTRIBI4USVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribI4usvEXT;
    }
    if (strcmp("glVertexAttribIPointerEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVertexAttribIPointerEXT);
        _glVertexAttribIPointerEXT = (PFN_GLVERTEXATTRIBIPOINTEREXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVertexAttribIPointerEXT;
    }
    if (strcmp("glGetVertexAttribIivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIivEXT);
        _glGetVertexAttribIivEXT = (PFN_GLGETVERTEXATTRIBIIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIivEXT;
    }
    if (strcmp("glGetVertexAttribIuivEXT", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIuivEXT);
        _glGetVertexAttribIuivEXT = (PFN_GLGETVERTEXATTRIBIUIVEXT)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVertexAttribIuivEXT;
    }
    if (strcmp("glBeginVideoCaptureNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBeginVideoCaptureNV);
        _glBeginVideoCaptureNV = (PFN_GLBEGINVIDEOCAPTURENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBeginVideoCaptureNV;
    }
    if (strcmp("glBindVideoCaptureStreamBufferNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVideoCaptureStreamBufferNV);
        _glBindVideoCaptureStreamBufferNV = (PFN_GLBINDVIDEOCAPTURESTREAMBUFFERNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVideoCaptureStreamBufferNV;
    }
    if (strcmp("glBindVideoCaptureStreamTextureNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVideoCaptureStreamTextureNV);
        _glBindVideoCaptureStreamTextureNV = (PFN_GLBINDVIDEOCAPTURESTREAMTEXTURENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVideoCaptureStreamTextureNV;
    }
    if (strcmp("glEndVideoCaptureNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glEndVideoCaptureNV);
        _glEndVideoCaptureNV = (PFN_GLENDVIDEOCAPTURENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glEndVideoCaptureNV;
    }
    if (strcmp("glGetVideoCaptureivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureivNV);
        _glGetVideoCaptureivNV = (PFN_GLGETVIDEOCAPTUREIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureivNV;
    }
    if (strcmp("glGetVideoCaptureStreamivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureStreamivNV);
        _glGetVideoCaptureStreamivNV = (PFN_GLGETVIDEOCAPTURESTREAMIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureStreamivNV;
    }
    if (strcmp("glGetVideoCaptureStreamfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureStreamfvNV);
        _glGetVideoCaptureStreamfvNV = (PFN_GLGETVIDEOCAPTURESTREAMFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureStreamfvNV;
    }
    if (strcmp("glGetVideoCaptureStreamdvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureStreamdvNV);
        _glGetVideoCaptureStreamdvNV = (PFN_GLGETVIDEOCAPTURESTREAMDVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetVideoCaptureStreamdvNV;
    }
    if (strcmp("glVideoCaptureNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVideoCaptureNV);
        _glVideoCaptureNV = (PFN_GLVIDEOCAPTURENV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVideoCaptureNV;
    }
    if (strcmp("glVideoCaptureStreamParameterivNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVideoCaptureStreamParameterivNV);
        _glVideoCaptureStreamParameterivNV = (PFN_GLVIDEOCAPTURESTREAMPARAMETERIVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVideoCaptureStreamParameterivNV;
    }
    if (strcmp("glVideoCaptureStreamParameterfvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVideoCaptureStreamParameterfvNV);
        _glVideoCaptureStreamParameterfvNV = (PFN_GLVIDEOCAPTURESTREAMPARAMETERFVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVideoCaptureStreamParameterfvNV;
    }
    if (strcmp("glVideoCaptureStreamParameterdvNV", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glVideoCaptureStreamParameterdvNV);
        _glVideoCaptureStreamParameterdvNV = (PFN_GLVIDEOCAPTURESTREAMPARAMETERDVNV)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glVideoCaptureStreamParameterdvNV;
    }
    if (strcmp("glBlendEquationSeparateOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateOES);
        _glBlendEquationSeparateOES = (PFN_GLBLENDEQUATIONSEPARATEOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationSeparateOES;
    }
    if (strcmp("glBlendFuncSeparateOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateOES);
        _glBlendFuncSeparateOES = (PFN_GLBLENDFUNCSEPARATEOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendFuncSeparateOES;
    }
    if (strcmp("glBlendEquationOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBlendEquationOES);
        _glBlendEquationOES = (PFN_GLBLENDEQUATIONOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBlendEquationOES;
    }
    if (strcmp("glDrawTexfOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTexfOES);
        _glDrawTexfOES = (PFN_GLDRAWTEXFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTexfOES;
    }
    if (strcmp("glDrawTexfvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTexfvOES);
        _glDrawTexfvOES = (PFN_GLDRAWTEXFVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTexfvOES;
    }
    if (strcmp("glDrawTexiOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTexiOES);
        _glDrawTexiOES = (PFN_GLDRAWTEXIOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTexiOES;
    }
    if (strcmp("glDrawTexivOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTexivOES);
        _glDrawTexivOES = (PFN_GLDRAWTEXIVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTexivOES;
    }
    if (strcmp("glDrawTexsOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTexsOES);
        _glDrawTexsOES = (PFN_GLDRAWTEXSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTexsOES;
    }
    if (strcmp("glDrawTexsvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawTexsvOES);
        _glDrawTexsvOES = (PFN_GLDRAWTEXSVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawTexsvOES;
    }
    if (strcmp("glIsRenderbufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsRenderbufferOES);
        _glIsRenderbufferOES = (PFN_GLISRENDERBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsRenderbufferOES;
    }
    if (strcmp("glBindRenderbufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindRenderbufferOES);
        _glBindRenderbufferOES = (PFN_GLBINDRENDERBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindRenderbufferOES;
    }
    if (strcmp("glDeleteRenderbuffersOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteRenderbuffersOES);
        _glDeleteRenderbuffersOES = (PFN_GLDELETERENDERBUFFERSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteRenderbuffersOES;
    }
    if (strcmp("glGenRenderbuffersOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenRenderbuffersOES);
        _glGenRenderbuffersOES = (PFN_GLGENRENDERBUFFERSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenRenderbuffersOES;
    }
    if (strcmp("glRenderbufferStorageOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageOES);
        _glRenderbufferStorageOES = (PFN_GLRENDERBUFFERSTORAGEOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glRenderbufferStorageOES;
    }
    if (strcmp("glGetRenderbufferParameterivOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetRenderbufferParameterivOES);
        _glGetRenderbufferParameterivOES = (PFN_GLGETRENDERBUFFERPARAMETERIVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetRenderbufferParameterivOES;
    }
    if (strcmp("glIsFramebufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsFramebufferOES);
        _glIsFramebufferOES = (PFN_GLISFRAMEBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsFramebufferOES;
    }
    if (strcmp("glBindFramebufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindFramebufferOES);
        _glBindFramebufferOES = (PFN_GLBINDFRAMEBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindFramebufferOES;
    }
    if (strcmp("glDeleteFramebuffersOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteFramebuffersOES);
        _glDeleteFramebuffersOES = (PFN_GLDELETEFRAMEBUFFERSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteFramebuffersOES;
    }
    if (strcmp("glGenFramebuffersOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenFramebuffersOES);
        _glGenFramebuffersOES = (PFN_GLGENFRAMEBUFFERSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenFramebuffersOES;
    }
    if (strcmp("glCheckFramebufferStatusOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCheckFramebufferStatusOES);
        _glCheckFramebufferStatusOES = (PFN_GLCHECKFRAMEBUFFERSTATUSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCheckFramebufferStatusOES;
    }
    if (strcmp("glFramebufferTexture2DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DOES);
        _glFramebufferTexture2DOES = (PFN_GLFRAMEBUFFERTEXTURE2DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture2DOES;
    }
    if (strcmp("glFramebufferRenderbufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferRenderbufferOES);
        _glFramebufferRenderbufferOES = (PFN_GLFRAMEBUFFERRENDERBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferRenderbufferOES;
    }
    if (strcmp("glGetFramebufferAttachmentParameterivOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFramebufferAttachmentParameterivOES);
        _glGetFramebufferAttachmentParameterivOES = (PFN_GLGETFRAMEBUFFERATTACHMENTPARAMETERIVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFramebufferAttachmentParameterivOES;
    }
    if (strcmp("glGenerateMipmapOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenerateMipmapOES);
        _glGenerateMipmapOES = (PFN_GLGENERATEMIPMAPOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenerateMipmapOES;
    }
    if (strcmp("glGetProgramBinaryOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetProgramBinaryOES);
        _glGetProgramBinaryOES = (PFN_GLGETPROGRAMBINARYOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetProgramBinaryOES;
    }
    if (strcmp("glProgramBinaryOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glProgramBinaryOES);
        _glProgramBinaryOES = (PFN_GLPROGRAMBINARYOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glProgramBinaryOES;
    }
    if (strcmp("glGetBufferPointervOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetBufferPointervOES);
        _glGetBufferPointervOES = (PFN_GLGETBUFFERPOINTERVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetBufferPointervOES;
    }
    if (strcmp("glMapBufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMapBufferOES);
        _glMapBufferOES = (PFN_GLMAPBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMapBufferOES;
    }
    if (strcmp("glUnmapBufferOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glUnmapBufferOES);
        _glUnmapBufferOES = (PFN_GLUNMAPBUFFEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glUnmapBufferOES;
    }
    if (strcmp("glCurrentPaletteMatrixOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCurrentPaletteMatrixOES);
        _glCurrentPaletteMatrixOES = (PFN_GLCURRENTPALETTEMATRIXOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCurrentPaletteMatrixOES;
    }
    if (strcmp("glLoadPaletteFromModelViewMatrixOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadPaletteFromModelViewMatrixOES);
        _glLoadPaletteFromModelViewMatrixOES = (PFN_GLLOADPALETTEFROMMODELVIEWMATRIXOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadPaletteFromModelViewMatrixOES;
    }
    if (strcmp("glMatrixIndexPointerOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glMatrixIndexPointerOES);
        _glMatrixIndexPointerOES = (PFN_GLMATRIXINDEXPOINTEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glMatrixIndexPointerOES;
    }
    if (strcmp("glWeightPointerOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glWeightPointerOES);
        _glWeightPointerOES = (PFN_GLWEIGHTPOINTEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glWeightPointerOES;
    }
    if (strcmp("glPointSizePointerOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointSizePointerOES);
        _glPointSizePointerOES = (PFN_GLPOINTSIZEPOINTEROES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointSizePointerOES;
    }
    if (strcmp("glQueryMatrixxOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glQueryMatrixxOES);
        _glQueryMatrixxOES = (PFN_GLQUERYMATRIXXOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glQueryMatrixxOES;
    }
    if (strcmp("glClearDepthfOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClearDepthfOES);
        _glClearDepthfOES = (PFN_GLCLEARDEPTHFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClearDepthfOES;
    }
    if (strcmp("glClipPlanefOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glClipPlanefOES);
        _glClipPlanefOES = (PFN_GLCLIPPLANEFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glClipPlanefOES;
    }
    if (strcmp("glDepthRangefOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangefOES);
        _glDepthRangefOES = (PFN_GLDEPTHRANGEFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangefOES;
    }
    if (strcmp("glFrustumfOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrustumfOES);
        _glFrustumfOES = (PFN_GLFRUSTUMFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrustumfOES;
    }
    if (strcmp("glGetClipPlanefOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetClipPlanefOES);
        _glGetClipPlanefOES = (PFN_GLGETCLIPPLANEFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetClipPlanefOES;
    }
    if (strcmp("glOrthofOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glOrthofOES);
        _glOrthofOES = (PFN_GLORTHOFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glOrthofOES;
    }
    if (strcmp("glTexImage3DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage3DOES);
        _glTexImage3DOES = (PFN_GLTEXIMAGE3DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage3DOES;
    }
    if (strcmp("glTexSubImage3DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage3DOES);
        _glTexSubImage3DOES = (PFN_GLTEXSUBIMAGE3DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage3DOES;
    }
    if (strcmp("glCopyTexSubImage3DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage3DOES);
        _glCopyTexSubImage3DOES = (PFN_GLCOPYTEXSUBIMAGE3DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyTexSubImage3DOES;
    }
    if (strcmp("glCompressedTexImage3DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage3DOES);
        _glCompressedTexImage3DOES = (PFN_GLCOMPRESSEDTEXIMAGE3DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexImage3DOES;
    }
    if (strcmp("glCompressedTexSubImage3DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage3DOES);
        _glCompressedTexSubImage3DOES = (PFN_GLCOMPRESSEDTEXSUBIMAGE3DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCompressedTexSubImage3DOES;
    }
    if (strcmp("glFramebufferTexture3DOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture3DOES);
        _glFramebufferTexture3DOES = (PFN_GLFRAMEBUFFERTEXTURE3DOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTexture3DOES;
    }
    if (strcmp("glTexGenfOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenfOES);
        _glTexGenfOES = (PFN_GLTEXGENFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenfOES;
    }
    if (strcmp("glTexGenfvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenfvOES);
        _glTexGenfvOES = (PFN_GLTEXGENFVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenfvOES;
    }
    if (strcmp("glTexGeniOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGeniOES);
        _glTexGeniOES = (PFN_GLTEXGENIOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGeniOES;
    }
    if (strcmp("glTexGenivOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenivOES);
        _glTexGenivOES = (PFN_GLTEXGENIVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenivOES;
    }
    if (strcmp("glTexGenxOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenxOES);
        _glTexGenxOES = (PFN_GLTEXGENXOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenxOES;
    }
    if (strcmp("glTexGenxvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexGenxvOES);
        _glTexGenxvOES = (PFN_GLTEXGENXVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexGenxvOES;
    }
    if (strcmp("glGetTexGenfvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexGenfvOES);
        _glGetTexGenfvOES = (PFN_GLGETTEXGENFVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexGenfvOES;
    }
    if (strcmp("glGetTexGenivOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexGenivOES);
        _glGetTexGenivOES = (PFN_GLGETTEXGENIVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexGenivOES;
    }
    if (strcmp("glGetTexGenxvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexGenxvOES);
        _glGetTexGenxvOES = (PFN_GLGETTEXGENXVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexGenxvOES;
    }
    if (strcmp("glBindVertexArrayOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glBindVertexArrayOES);
        _glBindVertexArrayOES = (PFN_GLBINDVERTEXARRAYOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glBindVertexArrayOES;
    }
    if (strcmp("glDeleteVertexArraysOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteVertexArraysOES);
        _glDeleteVertexArraysOES = (PFN_GLDELETEVERTEXARRAYSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteVertexArraysOES;
    }
    if (strcmp("glGenVertexArraysOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenVertexArraysOES);
        _glGenVertexArraysOES = (PFN_GLGENVERTEXARRAYSOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenVertexArraysOES;
    }
    if (strcmp("glIsVertexArrayOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsVertexArrayOES);
        _glIsVertexArrayOES = (PFN_GLISVERTEXARRAYOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsVertexArrayOES;
    }
    if (strcmp("glViewportArrayvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewportArrayvOES);
        _glViewportArrayvOES = (PFN_GLVIEWPORTARRAYVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewportArrayvOES;
    }
    if (strcmp("glViewportIndexedfOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewportIndexedfOES);
        _glViewportIndexedfOES = (PFN_GLVIEWPORTINDEXEDFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewportIndexedfOES;
    }
    if (strcmp("glViewportIndexedfvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glViewportIndexedfvOES);
        _glViewportIndexedfvOES = (PFN_GLVIEWPORTINDEXEDFVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glViewportIndexedfvOES;
    }
    if (strcmp("glScissorArrayvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissorArrayvOES);
        _glScissorArrayvOES = (PFN_GLSCISSORARRAYVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissorArrayvOES;
    }
    if (strcmp("glScissorIndexedOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissorIndexedOES);
        _glScissorIndexedOES = (PFN_GLSCISSORINDEXEDOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissorIndexedOES;
    }
    if (strcmp("glScissorIndexedvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glScissorIndexedvOES);
        _glScissorIndexedvOES = (PFN_GLSCISSORINDEXEDVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glScissorIndexedvOES;
    }
    if (strcmp("glDepthRangeArrayfvOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangeArrayfvOES);
        _glDepthRangeArrayfvOES = (PFN_GLDEPTHRANGEARRAYFVOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangeArrayfvOES;
    }
    if (strcmp("glDepthRangeIndexedfOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDepthRangeIndexedfOES);
        _glDepthRangeIndexedfOES = (PFN_GLDEPTHRANGEINDEXEDFOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDepthRangeIndexedfOES;
    }
    if (strcmp("glGetFloati_vOES", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFloati_vOES);
        _glGetFloati_vOES = (PFN_GLGETFLOATI_VOES)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFloati_vOES;
    }
    if (strcmp("glFramebufferTextureMultiviewOVR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureMultiviewOVR);
        _glFramebufferTextureMultiviewOVR = (PFN_GLFRAMEBUFFERTEXTUREMULTIVIEWOVR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFramebufferTextureMultiviewOVR;
    }
    if (strcmp("glNamedFramebufferTextureMultiviewOVR", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureMultiviewOVR);
        _glNamedFramebufferTextureMultiviewOVR = (PFN_GLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVR)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNamedFramebufferTextureMultiviewOVR;
    }
    if (strcmp("glHintPGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glHintPGI);
        _glHintPGI = (PFN_GLHINTPGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glHintPGI;
    }
    if (strcmp("glDetailTexFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDetailTexFuncSGIS);
        _glDetailTexFuncSGIS = (PFN_GLDETAILTEXFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDetailTexFuncSGIS;
    }
    if (strcmp("glGetDetailTexFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetDetailTexFuncSGIS);
        _glGetDetailTexFuncSGIS = (PFN_GLGETDETAILTEXFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetDetailTexFuncSGIS;
    }
    if (strcmp("glFogFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFogFuncSGIS);
        _glFogFuncSGIS = (PFN_GLFOGFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFogFuncSGIS;
    }
    if (strcmp("glGetFogFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFogFuncSGIS);
        _glGetFogFuncSGIS = (PFN_GLGETFOGFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFogFuncSGIS;
    }
    if (strcmp("glSampleMaskSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSampleMaskSGIS);
        _glSampleMaskSGIS = (PFN_GLSAMPLEMASKSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSampleMaskSGIS;
    }
    if (strcmp("glSamplePatternSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSamplePatternSGIS);
        _glSamplePatternSGIS = (PFN_GLSAMPLEPATTERNSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSamplePatternSGIS;
    }
    if (strcmp("glPixelTexGenParameteriSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameteriSGIS);
        _glPixelTexGenParameteriSGIS = (PFN_GLPIXELTEXGENPARAMETERISGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameteriSGIS;
    }
    if (strcmp("glPixelTexGenParameterivSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameterivSGIS);
        _glPixelTexGenParameterivSGIS = (PFN_GLPIXELTEXGENPARAMETERIVSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameterivSGIS;
    }
    if (strcmp("glPixelTexGenParameterfSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameterfSGIS);
        _glPixelTexGenParameterfSGIS = (PFN_GLPIXELTEXGENPARAMETERFSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameterfSGIS;
    }
    if (strcmp("glPixelTexGenParameterfvSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameterfvSGIS);
        _glPixelTexGenParameterfvSGIS = (PFN_GLPIXELTEXGENPARAMETERFVSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTexGenParameterfvSGIS;
    }
    if (strcmp("glGetPixelTexGenParameterivSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelTexGenParameterivSGIS);
        _glGetPixelTexGenParameterivSGIS = (PFN_GLGETPIXELTEXGENPARAMETERIVSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelTexGenParameterivSGIS;
    }
    if (strcmp("glGetPixelTexGenParameterfvSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetPixelTexGenParameterfvSGIS);
        _glGetPixelTexGenParameterfvSGIS = (PFN_GLGETPIXELTEXGENPARAMETERFVSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetPixelTexGenParameterfvSGIS;
    }
    if (strcmp("glPointParameterfSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfSGIS);
        _glPointParameterfSGIS = (PFN_GLPOINTPARAMETERFSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfSGIS;
    }
    if (strcmp("glPointParameterfvSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPointParameterfvSGIS);
        _glPointParameterfvSGIS = (PFN_GLPOINTPARAMETERFVSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPointParameterfvSGIS;
    }
    if (strcmp("glSharpenTexFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSharpenTexFuncSGIS);
        _glSharpenTexFuncSGIS = (PFN_GLSHARPENTEXFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSharpenTexFuncSGIS;
    }
    if (strcmp("glGetSharpenTexFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetSharpenTexFuncSGIS);
        _glGetSharpenTexFuncSGIS = (PFN_GLGETSHARPENTEXFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetSharpenTexFuncSGIS;
    }
    if (strcmp("glTexImage4DSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexImage4DSGIS);
        _glTexImage4DSGIS = (PFN_GLTEXIMAGE4DSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexImage4DSGIS;
    }
    if (strcmp("glTexSubImage4DSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexSubImage4DSGIS);
        _glTexSubImage4DSGIS = (PFN_GLTEXSUBIMAGE4DSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexSubImage4DSGIS;
    }
    if (strcmp("glTextureColorMaskSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTextureColorMaskSGIS);
        _glTextureColorMaskSGIS = (PFN_GLTEXTURECOLORMASKSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTextureColorMaskSGIS;
    }
    if (strcmp("glGetTexFilterFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetTexFilterFuncSGIS);
        _glGetTexFilterFuncSGIS = (PFN_GLGETTEXFILTERFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetTexFilterFuncSGIS;
    }
    if (strcmp("glTexFilterFuncSGIS", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexFilterFuncSGIS);
        _glTexFilterFuncSGIS = (PFN_GLTEXFILTERFUNCSGIS)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexFilterFuncSGIS;
    }
    if (strcmp("glAsyncMarkerSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAsyncMarkerSGIX);
        _glAsyncMarkerSGIX = (PFN_GLASYNCMARKERSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAsyncMarkerSGIX;
    }
    if (strcmp("glFinishAsyncSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinishAsyncSGIX);
        _glFinishAsyncSGIX = (PFN_GLFINISHASYNCSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinishAsyncSGIX;
    }
    if (strcmp("glPollAsyncSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPollAsyncSGIX);
        _glPollAsyncSGIX = (PFN_GLPOLLASYNCSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPollAsyncSGIX;
    }
    if (strcmp("glGenAsyncMarkersSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGenAsyncMarkersSGIX);
        _glGenAsyncMarkersSGIX = (PFN_GLGENASYNCMARKERSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGenAsyncMarkersSGIX;
    }
    if (strcmp("glDeleteAsyncMarkersSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeleteAsyncMarkersSGIX);
        _glDeleteAsyncMarkersSGIX = (PFN_GLDELETEASYNCMARKERSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeleteAsyncMarkersSGIX;
    }
    if (strcmp("glIsAsyncMarkerSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIsAsyncMarkerSGIX);
        _glIsAsyncMarkerSGIX = (PFN_GLISASYNCMARKERSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIsAsyncMarkerSGIX;
    }
    if (strcmp("glFlushRasterSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFlushRasterSGIX);
        _glFlushRasterSGIX = (PFN_GLFLUSHRASTERSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFlushRasterSGIX;
    }
    if (strcmp("glFragmentColorMaterialSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentColorMaterialSGIX);
        _glFragmentColorMaterialSGIX = (PFN_GLFRAGMENTCOLORMATERIALSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentColorMaterialSGIX;
    }
    if (strcmp("glFragmentLightfSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightfSGIX);
        _glFragmentLightfSGIX = (PFN_GLFRAGMENTLIGHTFSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightfSGIX;
    }
    if (strcmp("glFragmentLightfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightfvSGIX);
        _glFragmentLightfvSGIX = (PFN_GLFRAGMENTLIGHTFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightfvSGIX;
    }
    if (strcmp("glFragmentLightiSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightiSGIX);
        _glFragmentLightiSGIX = (PFN_GLFRAGMENTLIGHTISGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightiSGIX;
    }
    if (strcmp("glFragmentLightivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightivSGIX);
        _glFragmentLightivSGIX = (PFN_GLFRAGMENTLIGHTIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightivSGIX;
    }
    if (strcmp("glFragmentLightModelfSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightModelfSGIX);
        _glFragmentLightModelfSGIX = (PFN_GLFRAGMENTLIGHTMODELFSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightModelfSGIX;
    }
    if (strcmp("glFragmentLightModelfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightModelfvSGIX);
        _glFragmentLightModelfvSGIX = (PFN_GLFRAGMENTLIGHTMODELFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightModelfvSGIX;
    }
    if (strcmp("glFragmentLightModeliSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightModeliSGIX);
        _glFragmentLightModeliSGIX = (PFN_GLFRAGMENTLIGHTMODELISGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightModeliSGIX;
    }
    if (strcmp("glFragmentLightModelivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentLightModelivSGIX);
        _glFragmentLightModelivSGIX = (PFN_GLFRAGMENTLIGHTMODELIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentLightModelivSGIX;
    }
    if (strcmp("glFragmentMaterialfSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialfSGIX);
        _glFragmentMaterialfSGIX = (PFN_GLFRAGMENTMATERIALFSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialfSGIX;
    }
    if (strcmp("glFragmentMaterialfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialfvSGIX);
        _glFragmentMaterialfvSGIX = (PFN_GLFRAGMENTMATERIALFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialfvSGIX;
    }
    if (strcmp("glFragmentMaterialiSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialiSGIX);
        _glFragmentMaterialiSGIX = (PFN_GLFRAGMENTMATERIALISGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialiSGIX;
    }
    if (strcmp("glFragmentMaterialivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialivSGIX);
        _glFragmentMaterialivSGIX = (PFN_GLFRAGMENTMATERIALIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFragmentMaterialivSGIX;
    }
    if (strcmp("glGetFragmentLightfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragmentLightfvSGIX);
        _glGetFragmentLightfvSGIX = (PFN_GLGETFRAGMENTLIGHTFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragmentLightfvSGIX;
    }
    if (strcmp("glGetFragmentLightivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragmentLightivSGIX);
        _glGetFragmentLightivSGIX = (PFN_GLGETFRAGMENTLIGHTIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragmentLightivSGIX;
    }
    if (strcmp("glGetFragmentMaterialfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragmentMaterialfvSGIX);
        _glGetFragmentMaterialfvSGIX = (PFN_GLGETFRAGMENTMATERIALFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragmentMaterialfvSGIX;
    }
    if (strcmp("glGetFragmentMaterialivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetFragmentMaterialivSGIX);
        _glGetFragmentMaterialivSGIX = (PFN_GLGETFRAGMENTMATERIALIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetFragmentMaterialivSGIX;
    }
    if (strcmp("glLightEnviSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLightEnviSGIX);
        _glLightEnviSGIX = (PFN_GLLIGHTENVISGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLightEnviSGIX;
    }
    if (strcmp("glFrameZoomSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFrameZoomSGIX);
        _glFrameZoomSGIX = (PFN_GLFRAMEZOOMSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFrameZoomSGIX;
    }
    if (strcmp("glIglooInterfaceSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glIglooInterfaceSGIX);
        _glIglooInterfaceSGIX = (PFN_GLIGLOOINTERFACESGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glIglooInterfaceSGIX;
    }
    if (strcmp("glGetInstrumentsSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetInstrumentsSGIX);
        _glGetInstrumentsSGIX = (PFN_GLGETINSTRUMENTSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetInstrumentsSGIX;
    }
    if (strcmp("glInstrumentsBufferSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glInstrumentsBufferSGIX);
        _glInstrumentsBufferSGIX = (PFN_GLINSTRUMENTSBUFFERSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glInstrumentsBufferSGIX;
    }
    if (strcmp("glPollInstrumentsSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPollInstrumentsSGIX);
        _glPollInstrumentsSGIX = (PFN_GLPOLLINSTRUMENTSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPollInstrumentsSGIX;
    }
    if (strcmp("glReadInstrumentsSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReadInstrumentsSGIX);
        _glReadInstrumentsSGIX = (PFN_GLREADINSTRUMENTSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReadInstrumentsSGIX;
    }
    if (strcmp("glStartInstrumentsSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStartInstrumentsSGIX);
        _glStartInstrumentsSGIX = (PFN_GLSTARTINSTRUMENTSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStartInstrumentsSGIX;
    }
    if (strcmp("glStopInstrumentsSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glStopInstrumentsSGIX);
        _glStopInstrumentsSGIX = (PFN_GLSTOPINSTRUMENTSSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glStopInstrumentsSGIX;
    }
    if (strcmp("glGetListParameterfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetListParameterfvSGIX);
        _glGetListParameterfvSGIX = (PFN_GLGETLISTPARAMETERFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetListParameterfvSGIX;
    }
    if (strcmp("glGetListParameterivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetListParameterivSGIX);
        _glGetListParameterivSGIX = (PFN_GLGETLISTPARAMETERIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetListParameterivSGIX;
    }
    if (strcmp("glListParameterfSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glListParameterfSGIX);
        _glListParameterfSGIX = (PFN_GLLISTPARAMETERFSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glListParameterfSGIX;
    }
    if (strcmp("glListParameterfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glListParameterfvSGIX);
        _glListParameterfvSGIX = (PFN_GLLISTPARAMETERFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glListParameterfvSGIX;
    }
    if (strcmp("glListParameteriSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glListParameteriSGIX);
        _glListParameteriSGIX = (PFN_GLLISTPARAMETERISGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glListParameteriSGIX;
    }
    if (strcmp("glListParameterivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glListParameterivSGIX);
        _glListParameterivSGIX = (PFN_GLLISTPARAMETERIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glListParameterivSGIX;
    }
    if (strcmp("glPixelTexGenSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glPixelTexGenSGIX);
        _glPixelTexGenSGIX = (PFN_GLPIXELTEXGENSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glPixelTexGenSGIX;
    }
    if (strcmp("glDeformationMap3dSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeformationMap3dSGIX);
        _glDeformationMap3dSGIX = (PFN_GLDEFORMATIONMAP3DSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeformationMap3dSGIX;
    }
    if (strcmp("glDeformationMap3fSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeformationMap3fSGIX);
        _glDeformationMap3fSGIX = (PFN_GLDEFORMATIONMAP3FSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeformationMap3fSGIX;
    }
    if (strcmp("glDeformSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDeformSGIX);
        _glDeformSGIX = (PFN_GLDEFORMSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDeformSGIX;
    }
    if (strcmp("glLoadIdentityDeformationMapSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glLoadIdentityDeformationMapSGIX);
        _glLoadIdentityDeformationMapSGIX = (PFN_GLLOADIDENTITYDEFORMATIONMAPSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glLoadIdentityDeformationMapSGIX;
    }
    if (strcmp("glReferencePlaneSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReferencePlaneSGIX);
        _glReferencePlaneSGIX = (PFN_GLREFERENCEPLANESGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReferencePlaneSGIX;
    }
    if (strcmp("glSpriteParameterfSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSpriteParameterfSGIX);
        _glSpriteParameterfSGIX = (PFN_GLSPRITEPARAMETERFSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSpriteParameterfSGIX;
    }
    if (strcmp("glSpriteParameterfvSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSpriteParameterfvSGIX);
        _glSpriteParameterfvSGIX = (PFN_GLSPRITEPARAMETERFVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSpriteParameterfvSGIX;
    }
    if (strcmp("glSpriteParameteriSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSpriteParameteriSGIX);
        _glSpriteParameteriSGIX = (PFN_GLSPRITEPARAMETERISGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSpriteParameteriSGIX;
    }
    if (strcmp("glSpriteParameterivSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glSpriteParameterivSGIX);
        _glSpriteParameterivSGIX = (PFN_GLSPRITEPARAMETERIVSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glSpriteParameterivSGIX;
    }
    if (strcmp("glTagSampleBufferSGIX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTagSampleBufferSGIX);
        _glTagSampleBufferSGIX = (PFN_GLTAGSAMPLEBUFFERSGIX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTagSampleBufferSGIX;
    }
    if (strcmp("glColorTableSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTableSGI);
        _glColorTableSGI = (PFN_GLCOLORTABLESGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTableSGI;
    }
    if (strcmp("glColorTableParameterfvSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTableParameterfvSGI);
        _glColorTableParameterfvSGI = (PFN_GLCOLORTABLEPARAMETERFVSGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTableParameterfvSGI;
    }
    if (strcmp("glColorTableParameterivSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColorTableParameterivSGI);
        _glColorTableParameterivSGI = (PFN_GLCOLORTABLEPARAMETERIVSGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColorTableParameterivSGI;
    }
    if (strcmp("glCopyColorTableSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glCopyColorTableSGI);
        _glCopyColorTableSGI = (PFN_GLCOPYCOLORTABLESGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glCopyColorTableSGI;
    }
    if (strcmp("glGetColorTableSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableSGI);
        _glGetColorTableSGI = (PFN_GLGETCOLORTABLESGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableSGI;
    }
    if (strcmp("glGetColorTableParameterfvSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterfvSGI);
        _glGetColorTableParameterfvSGI = (PFN_GLGETCOLORTABLEPARAMETERFVSGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterfvSGI;
    }
    if (strcmp("glGetColorTableParameterivSGI", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterivSGI);
        _glGetColorTableParameterivSGI = (PFN_GLGETCOLORTABLEPARAMETERIVSGI)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGetColorTableParameterivSGI;
    }
    if (strcmp("glFinishTextureSUNX", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glFinishTextureSUNX);
        _glFinishTextureSUNX = (PFN_GLFINISHTEXTURESUNX)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glFinishTextureSUNX;
    }
    if (strcmp("glGlobalAlphaFactorbSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorbSUN);
        _glGlobalAlphaFactorbSUN = (PFN_GLGLOBALALPHAFACTORBSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorbSUN;
    }
    if (strcmp("glGlobalAlphaFactorsSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorsSUN);
        _glGlobalAlphaFactorsSUN = (PFN_GLGLOBALALPHAFACTORSSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorsSUN;
    }
    if (strcmp("glGlobalAlphaFactoriSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactoriSUN);
        _glGlobalAlphaFactoriSUN = (PFN_GLGLOBALALPHAFACTORISUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactoriSUN;
    }
    if (strcmp("glGlobalAlphaFactorfSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorfSUN);
        _glGlobalAlphaFactorfSUN = (PFN_GLGLOBALALPHAFACTORFSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorfSUN;
    }
    if (strcmp("glGlobalAlphaFactordSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactordSUN);
        _glGlobalAlphaFactordSUN = (PFN_GLGLOBALALPHAFACTORDSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactordSUN;
    }
    if (strcmp("glGlobalAlphaFactorubSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorubSUN);
        _glGlobalAlphaFactorubSUN = (PFN_GLGLOBALALPHAFACTORUBSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorubSUN;
    }
    if (strcmp("glGlobalAlphaFactorusSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorusSUN);
        _glGlobalAlphaFactorusSUN = (PFN_GLGLOBALALPHAFACTORUSSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactorusSUN;
    }
    if (strcmp("glGlobalAlphaFactoruiSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactoruiSUN);
        _glGlobalAlphaFactoruiSUN = (PFN_GLGLOBALALPHAFACTORUISUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glGlobalAlphaFactoruiSUN;
    }
    if (strcmp("glDrawMeshArraysSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glDrawMeshArraysSUN);
        _glDrawMeshArraysSUN = (PFN_GLDRAWMESHARRAYSSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glDrawMeshArraysSUN;
    }
    if (strcmp("glReplacementCodeuiSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiSUN);
        _glReplacementCodeuiSUN = (PFN_GLREPLACEMENTCODEUISUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiSUN;
    }
    if (strcmp("glReplacementCodeusSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeusSUN);
        _glReplacementCodeusSUN = (PFN_GLREPLACEMENTCODEUSSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeusSUN;
    }
    if (strcmp("glReplacementCodeubSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeubSUN);
        _glReplacementCodeubSUN = (PFN_GLREPLACEMENTCODEUBSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeubSUN;
    }
    if (strcmp("glReplacementCodeuivSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuivSUN);
        _glReplacementCodeuivSUN = (PFN_GLREPLACEMENTCODEUIVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuivSUN;
    }
    if (strcmp("glReplacementCodeusvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeusvSUN);
        _glReplacementCodeusvSUN = (PFN_GLREPLACEMENTCODEUSVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeusvSUN;
    }
    if (strcmp("glReplacementCodeubvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeubvSUN);
        _glReplacementCodeubvSUN = (PFN_GLREPLACEMENTCODEUBVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeubvSUN;
    }
    if (strcmp("glReplacementCodePointerSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodePointerSUN);
        _glReplacementCodePointerSUN = (PFN_GLREPLACEMENTCODEPOINTERSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodePointerSUN;
    }
    if (strcmp("glColor4ubVertex2fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex2fSUN);
        _glColor4ubVertex2fSUN = (PFN_GLCOLOR4UBVERTEX2FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex2fSUN;
    }
    if (strcmp("glColor4ubVertex2fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex2fvSUN);
        _glColor4ubVertex2fvSUN = (PFN_GLCOLOR4UBVERTEX2FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex2fvSUN;
    }
    if (strcmp("glColor4ubVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex3fSUN);
        _glColor4ubVertex3fSUN = (PFN_GLCOLOR4UBVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex3fSUN;
    }
    if (strcmp("glColor4ubVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex3fvSUN);
        _glColor4ubVertex3fvSUN = (PFN_GLCOLOR4UBVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4ubVertex3fvSUN;
    }
    if (strcmp("glColor3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3fVertex3fSUN);
        _glColor3fVertex3fSUN = (PFN_GLCOLOR3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3fVertex3fSUN;
    }
    if (strcmp("glColor3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor3fVertex3fvSUN);
        _glColor3fVertex3fvSUN = (PFN_GLCOLOR3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor3fVertex3fvSUN;
    }
    if (strcmp("glNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3fVertex3fSUN);
        _glNormal3fVertex3fSUN = (PFN_GLNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3fVertex3fSUN;
    }
    if (strcmp("glNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glNormal3fVertex3fvSUN);
        _glNormal3fVertex3fvSUN = (PFN_GLNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glNormal3fVertex3fvSUN;
    }
    if (strcmp("glColor4fNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4fNormal3fVertex3fSUN);
        _glColor4fNormal3fVertex3fSUN = (PFN_GLCOLOR4FNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4fNormal3fVertex3fSUN;
    }
    if (strcmp("glColor4fNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glColor4fNormal3fVertex3fvSUN);
        _glColor4fNormal3fVertex3fvSUN = (PFN_GLCOLOR4FNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glColor4fNormal3fVertex3fvSUN;
    }
    if (strcmp("glTexCoord2fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fVertex3fSUN);
        _glTexCoord2fVertex3fSUN = (PFN_GLTEXCOORD2FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fVertex3fSUN;
    }
    if (strcmp("glTexCoord2fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fVertex3fvSUN);
        _glTexCoord2fVertex3fvSUN = (PFN_GLTEXCOORD2FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fVertex3fvSUN;
    }
    if (strcmp("glTexCoord4fVertex4fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4fVertex4fSUN);
        _glTexCoord4fVertex4fSUN = (PFN_GLTEXCOORD4FVERTEX4FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4fVertex4fSUN;
    }
    if (strcmp("glTexCoord4fVertex4fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4fVertex4fvSUN);
        _glTexCoord4fVertex4fvSUN = (PFN_GLTEXCOORD4FVERTEX4FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4fVertex4fvSUN;
    }
    if (strcmp("glTexCoord2fColor4ubVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4ubVertex3fSUN);
        _glTexCoord2fColor4ubVertex3fSUN = (PFN_GLTEXCOORD2FCOLOR4UBVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4ubVertex3fSUN;
    }
    if (strcmp("glTexCoord2fColor4ubVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4ubVertex3fvSUN);
        _glTexCoord2fColor4ubVertex3fvSUN = (PFN_GLTEXCOORD2FCOLOR4UBVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4ubVertex3fvSUN;
    }
    if (strcmp("glTexCoord2fColor3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor3fVertex3fSUN);
        _glTexCoord2fColor3fVertex3fSUN = (PFN_GLTEXCOORD2FCOLOR3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor3fVertex3fSUN;
    }
    if (strcmp("glTexCoord2fColor3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor3fVertex3fvSUN);
        _glTexCoord2fColor3fVertex3fvSUN = (PFN_GLTEXCOORD2FCOLOR3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor3fVertex3fvSUN;
    }
    if (strcmp("glTexCoord2fNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fNormal3fVertex3fSUN);
        _glTexCoord2fNormal3fVertex3fSUN = (PFN_GLTEXCOORD2FNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fNormal3fVertex3fSUN;
    }
    if (strcmp("glTexCoord2fNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fNormal3fVertex3fvSUN);
        _glTexCoord2fNormal3fVertex3fvSUN = (PFN_GLTEXCOORD2FNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fNormal3fVertex3fvSUN;
    }
    if (strcmp("glTexCoord2fColor4fNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4fNormal3fVertex3fSUN);
        _glTexCoord2fColor4fNormal3fVertex3fSUN = (PFN_GLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4fNormal3fVertex3fSUN;
    }
    if (strcmp("glTexCoord2fColor4fNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4fNormal3fVertex3fvSUN);
        _glTexCoord2fColor4fNormal3fVertex3fvSUN = (PFN_GLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord2fColor4fNormal3fVertex3fvSUN;
    }
    if (strcmp("glTexCoord4fColor4fNormal3fVertex4fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4fColor4fNormal3fVertex4fSUN);
        _glTexCoord4fColor4fNormal3fVertex4fSUN = (PFN_GLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4fColor4fNormal3fVertex4fSUN;
    }
    if (strcmp("glTexCoord4fColor4fNormal3fVertex4fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glTexCoord4fColor4fNormal3fVertex4fvSUN);
        _glTexCoord4fColor4fNormal3fVertex4fvSUN = (PFN_GLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glTexCoord4fColor4fNormal3fVertex4fvSUN;
    }
    if (strcmp("glReplacementCodeuiVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiVertex3fSUN);
        _glReplacementCodeuiVertex3fSUN = (PFN_GLREPLACEMENTCODEUIVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiVertex3fvSUN);
        _glReplacementCodeuiVertex3fvSUN = (PFN_GLREPLACEMENTCODEUIVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiColor4ubVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4ubVertex3fSUN);
        _glReplacementCodeuiColor4ubVertex3fSUN = (PFN_GLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4ubVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiColor4ubVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4ubVertex3fvSUN);
        _glReplacementCodeuiColor4ubVertex3fvSUN = (PFN_GLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4ubVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiColor3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor3fVertex3fSUN);
        _glReplacementCodeuiColor3fVertex3fSUN = (PFN_GLREPLACEMENTCODEUICOLOR3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor3fVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiColor3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor3fVertex3fvSUN);
        _glReplacementCodeuiColor3fVertex3fvSUN = (PFN_GLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor3fVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiNormal3fVertex3fSUN);
        _glReplacementCodeuiNormal3fVertex3fSUN = (PFN_GLREPLACEMENTCODEUINORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiNormal3fVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiNormal3fVertex3fvSUN);
        _glReplacementCodeuiNormal3fVertex3fvSUN = (PFN_GLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiNormal3fVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiColor4fNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4fNormal3fVertex3fSUN);
        _glReplacementCodeuiColor4fNormal3fVertex3fSUN = (PFN_GLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4fNormal3fVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiColor4fNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4fNormal3fVertex3fvSUN);
        _glReplacementCodeuiColor4fNormal3fVertex3fvSUN = (PFN_GLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiColor4fNormal3fVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiTexCoord2fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fVertex3fSUN);
        _glReplacementCodeuiTexCoord2fVertex3fSUN = (PFN_GLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiTexCoord2fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fVertex3fvSUN);
        _glReplacementCodeuiTexCoord2fVertex3fvSUN = (PFN_GLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN);
        _glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = (PFN_GLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN);
        _glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = (PFN_GLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
    }
    if (strcmp("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN);
        _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = (PFN_GLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
    }
    if (strcmp("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN);
        _glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = (PFN_GLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
    }
    if (strcmp("glAddSwapHintRectWIN", (const char *)procName) == 0) {
        assert(procPtr != (__eglMustCastToProperFunctionPointerType)&glAddSwapHintRectWIN);
        _glAddSwapHintRectWIN = (PFN_GLADDSWAPHINTRECTWIN)procPtr;
        return (__eglMustCastToProperFunctionPointerType)&glAddSwapHintRectWIN;
    }
    os::log("apitrace: warning: unknown function \"%s\"\n", (const char *)procName);
    return procPtr;
}

