engine/src/gl.zig

9276 lines
492 KiB
Zig
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// This code file is licenced under any of Public Domain, WTFPL or CC0.
// There are no restrictions in the use of this file.
//
//
// Generation parameters:
// API: GL_VERSION_4_5
// Profile: core
// Extensions:
//
//
// This file was generated with the following command line:
// generator C:\Users\Серега\git\zig-opengl\bin\Debug\net7.0\generator.dll OpenGL-Registry/xml/gl.xml gl.zig GL_VERSION_4_5
//
const std = @import("std");
const builtin = @import("builtin");
const log = std.log.scoped(.OpenGL);
pub const FunctionPointer: type = *align(@alignOf(fn (u32) callconv(.C) u32)) const anyopaque;
pub const GLenum = c_uint;
pub const GLboolean = u8;
pub const GLbitfield = c_uint;
pub const GLbyte = i8;
pub const GLubyte = u8;
pub const GLshort = i16;
pub const GLushort = u16;
pub const GLint = c_int;
pub const GLuint = c_uint;
pub const GLclampx = i32;
pub const GLsizei = c_int;
pub const GLfloat = f32;
pub const GLclampf = f32;
pub const GLdouble = f64;
pub const GLclampd = f64;
pub const GLeglClientBufferEXT = void;
pub const GLeglImageOES = void;
pub const GLchar = u8;
pub const GLcharARB = u8;
pub const GLhandleARB = if (builtin.os.tag == .macos) *anyopaque else c_uint;
pub const GLhalf = u16;
pub const GLhalfARB = u16;
pub const GLfixed = i32;
pub const GLintptr = usize;
pub const GLintptrARB = usize;
pub const GLsizeiptr = isize;
pub const GLsizeiptrARB = isize;
pub const GLint64 = i64;
pub const GLint64EXT = i64;
pub const GLuint64 = u64;
pub const GLuint64EXT = u64;
pub const GLsync = *opaque {};
pub const _cl_context = opaque {};
pub const _cl_event = opaque {};
pub const GLDEBUGPROC = *const fn (source: GLenum, _type: GLenum, id: GLuint, severity: GLenum, length: GLsizei, message: [*:0]const u8, userParam: ?*anyopaque) callconv(.C) void;
pub const GLDEBUGPROCARB = *const fn (source: GLenum, _type: GLenum, id: GLuint, severity: GLenum, length: GLsizei, message: [*:0]const u8, userParam: ?*anyopaque) callconv(.C) void;
pub const GLDEBUGPROCKHR = *const fn (source: GLenum, _type: GLenum, id: GLuint, severity: GLenum, length: GLsizei, message: [*:0]const u8, userParam: ?*anyopaque) callconv(.C) void;
pub const GLDEBUGPROCAMD = *const fn (id: GLuint, category: GLenum, severity: GLenum, length: GLsizei, message: [*:0]const u8, userParam: ?*anyopaque) callconv(.C) void;
pub const GLhalfNV = u16;
pub const GLvdpauSurfaceNV = GLintptr;
pub const GLVULKANPROCNV = *const fn () callconv(.C) void;
pub const DEPTH_BUFFER_BIT = 0x00000100;
pub const STENCIL_BUFFER_BIT = 0x00000400;
pub const COLOR_BUFFER_BIT = 0x00004000;
pub const FALSE = 0;
pub const TRUE = 1;
pub const POINTS = 0x0000;
pub const LINES = 0x0001;
pub const LINE_LOOP = 0x0002;
pub const LINE_STRIP = 0x0003;
pub const TRIANGLES = 0x0004;
pub const TRIANGLE_STRIP = 0x0005;
pub const TRIANGLE_FAN = 0x0006;
pub const COMPRESSED_SRGB8_ETC2 = 0x9275;
pub const NEVER = 0x0200;
pub const LESS = 0x0201;
pub const EQUAL = 0x0202;
pub const LEQUAL = 0x0203;
pub const GREATER = 0x0204;
pub const NOTEQUAL = 0x0205;
pub const GEQUAL = 0x0206;
pub const ALWAYS = 0x0207;
pub const ZERO = 0;
pub const ONE = 1;
pub const SRC_COLOR = 0x0300;
pub const ONE_MINUS_SRC_COLOR = 0x0301;
pub const SRC_ALPHA = 0x0302;
pub const ONE_MINUS_SRC_ALPHA = 0x0303;
pub const DST_ALPHA = 0x0304;
pub const ONE_MINUS_DST_ALPHA = 0x0305;
pub const DST_COLOR = 0x0306;
pub const ONE_MINUS_DST_COLOR = 0x0307;
pub const SRC_ALPHA_SATURATE = 0x0308;
pub const NONE = 0;
pub const FRONT_LEFT = 0x0400;
pub const FRONT_RIGHT = 0x0401;
pub const BACK_LEFT = 0x0402;
pub const BACK_RIGHT = 0x0403;
pub const FRONT = 0x0404;
pub const BACK = 0x0405;
pub const LEFT = 0x0406;
pub const RIGHT = 0x0407;
pub const FRONT_AND_BACK = 0x0408;
pub const NO_ERROR = 0;
pub const INVALID_ENUM = 0x0500;
pub const INVALID_VALUE = 0x0501;
pub const INVALID_OPERATION = 0x0502;
pub const OUT_OF_MEMORY = 0x0505;
pub const CW = 0x0900;
pub const CCW = 0x0901;
pub const POINT_SIZE = 0x0B11;
pub const POINT_SIZE_RANGE = 0x0B12;
pub const POINT_SIZE_GRANULARITY = 0x0B13;
pub const LINE_SMOOTH = 0x0B20;
pub const LINE_WIDTH = 0x0B21;
pub const LINE_WIDTH_RANGE = 0x0B22;
pub const LINE_WIDTH_GRANULARITY = 0x0B23;
pub const POLYGON_MODE = 0x0B40;
pub const POLYGON_SMOOTH = 0x0B41;
pub const CULL_FACE = 0x0B44;
pub const CULL_FACE_MODE = 0x0B45;
pub const FRONT_FACE = 0x0B46;
pub const DEPTH_RANGE = 0x0B70;
pub const DEPTH_TEST = 0x0B71;
pub const DEPTH_WRITEMASK = 0x0B72;
pub const DEPTH_CLEAR_VALUE = 0x0B73;
pub const DEPTH_FUNC = 0x0B74;
pub const STENCIL_TEST = 0x0B90;
pub const STENCIL_CLEAR_VALUE = 0x0B91;
pub const STENCIL_FUNC = 0x0B92;
pub const STENCIL_VALUE_MASK = 0x0B93;
pub const STENCIL_FAIL = 0x0B94;
pub const STENCIL_PASS_DEPTH_FAIL = 0x0B95;
pub const STENCIL_PASS_DEPTH_PASS = 0x0B96;
pub const STENCIL_REF = 0x0B97;
pub const STENCIL_WRITEMASK = 0x0B98;
pub const VIEWPORT = 0x0BA2;
pub const DITHER = 0x0BD0;
pub const BLEND_DST = 0x0BE0;
pub const BLEND_SRC = 0x0BE1;
pub const BLEND = 0x0BE2;
pub const LOGIC_OP_MODE = 0x0BF0;
pub const DRAW_BUFFER = 0x0C01;
pub const READ_BUFFER = 0x0C02;
pub const SCISSOR_BOX = 0x0C10;
pub const SCISSOR_TEST = 0x0C11;
pub const COLOR_CLEAR_VALUE = 0x0C22;
pub const COLOR_WRITEMASK = 0x0C23;
pub const DOUBLEBUFFER = 0x0C32;
pub const STEREO = 0x0C33;
pub const LINE_SMOOTH_HINT = 0x0C52;
pub const POLYGON_SMOOTH_HINT = 0x0C53;
pub const UNPACK_SWAP_BYTES = 0x0CF0;
pub const UNPACK_LSB_FIRST = 0x0CF1;
pub const UNPACK_ROW_LENGTH = 0x0CF2;
pub const UNPACK_SKIP_ROWS = 0x0CF3;
pub const UNPACK_SKIP_PIXELS = 0x0CF4;
pub const UNPACK_ALIGNMENT = 0x0CF5;
pub const PACK_SWAP_BYTES = 0x0D00;
pub const PACK_LSB_FIRST = 0x0D01;
pub const PACK_ROW_LENGTH = 0x0D02;
pub const PACK_SKIP_ROWS = 0x0D03;
pub const PACK_SKIP_PIXELS = 0x0D04;
pub const PACK_ALIGNMENT = 0x0D05;
pub const MAX_TEXTURE_SIZE = 0x0D33;
pub const MAX_VIEWPORT_DIMS = 0x0D3A;
pub const SUBPIXEL_BITS = 0x0D50;
pub const TEXTURE_1D = 0x0DE0;
pub const TEXTURE_2D = 0x0DE1;
pub const TEXTURE_WIDTH = 0x1000;
pub const TEXTURE_HEIGHT = 0x1001;
pub const TEXTURE_BORDER_COLOR = 0x1004;
pub const DONT_CARE = 0x1100;
pub const FASTEST = 0x1101;
pub const NICEST = 0x1102;
pub const BYTE = 0x1400;
pub const UNSIGNED_BYTE = 0x1401;
pub const SHORT = 0x1402;
pub const UNSIGNED_SHORT = 0x1403;
pub const INT = 0x1404;
pub const UNSIGNED_INT = 0x1405;
pub const FLOAT = 0x1406;
pub const CLEAR = 0x1500;
pub const AND = 0x1501;
pub const AND_REVERSE = 0x1502;
pub const COPY = 0x1503;
pub const AND_INVERTED = 0x1504;
pub const NOOP = 0x1505;
pub const XOR = 0x1506;
pub const OR = 0x1507;
pub const NOR = 0x1508;
pub const EQUIV = 0x1509;
pub const INVERT = 0x150A;
pub const OR_REVERSE = 0x150B;
pub const COPY_INVERTED = 0x150C;
pub const OR_INVERTED = 0x150D;
pub const NAND = 0x150E;
pub const SET = 0x150F;
pub const TEXTURE = 0x1702;
pub const COLOR = 0x1800;
pub const DEPTH = 0x1801;
pub const STENCIL = 0x1802;
pub const STENCIL_INDEX = 0x1901;
pub const DEPTH_COMPONENT = 0x1902;
pub const RED = 0x1903;
pub const GREEN = 0x1904;
pub const BLUE = 0x1905;
pub const ALPHA = 0x1906;
pub const RGB = 0x1907;
pub const RGBA = 0x1908;
pub const POINT = 0x1B00;
pub const LINE = 0x1B01;
pub const FILL = 0x1B02;
pub const KEEP = 0x1E00;
pub const REPLACE = 0x1E01;
pub const INCR = 0x1E02;
pub const DECR = 0x1E03;
pub const VENDOR = 0x1F00;
pub const RENDERER = 0x1F01;
pub const VERSION = 0x1F02;
pub const EXTENSIONS = 0x1F03;
pub const NEAREST = 0x2600;
pub const LINEAR = 0x2601;
pub const NEAREST_MIPMAP_NEAREST = 0x2700;
pub const LINEAR_MIPMAP_NEAREST = 0x2701;
pub const NEAREST_MIPMAP_LINEAR = 0x2702;
pub const LINEAR_MIPMAP_LINEAR = 0x2703;
pub const TEXTURE_MAG_FILTER = 0x2800;
pub const TEXTURE_MIN_FILTER = 0x2801;
pub const TEXTURE_WRAP_S = 0x2802;
pub const TEXTURE_WRAP_T = 0x2803;
pub const REPEAT = 0x2901;
pub const MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE;
pub const MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB;
pub const MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266;
pub const MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265;
pub const MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264;
pub const MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263;
pub const MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262;
pub const MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD;
pub const MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC;
pub const MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB;
pub const COMPUTE_SHADER = 0x91B9;
pub const MAX_ELEMENT_INDEX = 0x8D6B;
pub const ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;
pub const PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69;
pub const COMPRESSED_SIGNED_RG11_EAC = 0x9273;
pub const COMPRESSED_RG11_EAC = 0x9272;
pub const COMPRESSED_SIGNED_R11_EAC = 0x9271;
pub const COMPRESSED_R11_EAC = 0x9270;
pub const COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276;
pub const COMPRESSED_RGB8_ETC2 = 0x9274;
pub const VERTEX_ATTRIB_ARRAY_LONG = 0x874E;
pub const NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9;
pub const TEXTURE_IMMUTABLE_FORMAT = 0x912F;
pub const COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F;
pub const COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E;
pub const COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D;
pub const COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C;
pub const MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF;
pub const MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE;
pub const MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD;
pub const MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC;
pub const MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB;
pub const MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA;
pub const IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9;
pub const IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8;
pub const IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7;
pub const IMAGE_BINDING_FORMAT = 0x906E;
pub const MAX_IMAGE_SAMPLES = 0x906D;
pub const UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C;
pub const UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B;
pub const UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A;
pub const UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069;
pub const UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068;
pub const UNSIGNED_INT_IMAGE_BUFFER = 0x9067;
pub const UNSIGNED_INT_IMAGE_CUBE = 0x9066;
pub const UNSIGNED_INT_IMAGE_2D_RECT = 0x9065;
pub const UNSIGNED_INT_IMAGE_3D = 0x9064;
pub const INT_IMAGE_CUBE = 0x905B;
pub const INT_IMAGE_2D_RECT = 0x905A;
pub const INT_IMAGE_3D = 0x9059;
pub const INT_IMAGE_2D = 0x9058;
pub const INT_IMAGE_1D = 0x9057;
pub const IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056;
pub const IMAGE_2D_MULTISAMPLE = 0x9055;
pub const IMAGE_CUBE_MAP_ARRAY = 0x9054;
pub const IMAGE_2D_ARRAY = 0x9053;
pub const IMAGE_1D_ARRAY = 0x9052;
pub const IMAGE_BUFFER = 0x9051;
pub const IMAGE_CUBE = 0x9050;
pub const IMAGE_2D_RECT = 0x904F;
pub const IMAGE_3D = 0x904E;
pub const IMAGE_2D = 0x904D;
pub const IMAGE_1D = 0x904C;
pub const IMAGE_BINDING_ACCESS = 0x8F3E;
pub const IMAGE_BINDING_LAYER = 0x8F3D;
pub const IMAGE_BINDING_LAYERED = 0x8F3C;
pub const IMAGE_BINDING_LEVEL = 0x8F3B;
pub const IMAGE_BINDING_NAME = 0x8F3A;
pub const MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39;
pub const MAX_IMAGE_UNITS = 0x8F38;
pub const ALL_BARRIER_BITS = 0xFFFFFFFF;
pub const ATOMIC_COUNTER_BARRIER_BIT = 0x00001000;
pub const TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800;
pub const FRAMEBUFFER_BARRIER_BIT = 0x00000400;
pub const BUFFER_UPDATE_BARRIER_BIT = 0x00000200;
pub const TEXTURE_UPDATE_BARRIER_BIT = 0x00000100;
pub const PIXEL_BUFFER_BARRIER_BIT = 0x00000080;
pub const COMMAND_BARRIER_BIT = 0x00000040;
pub const SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020;
pub const TEXTURE_FETCH_BARRIER_BIT = 0x00000008;
pub const UNIFORM_BARRIER_BIT = 0x00000004;
pub const ELEMENT_ARRAY_BARRIER_BIT = 0x00000002;
pub const VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001;
pub const UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB;
pub const UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA;
pub const ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9;
pub const MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC;
pub const MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8;
pub const MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7;
pub const MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6;
pub const MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5;
pub const MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4;
pub const MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2;
pub const MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1;
pub const MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0;
pub const MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE;
pub const MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD;
pub const MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC;
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB;
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA;
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9;
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8;
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7;
pub const ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6;
pub const ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5;
pub const ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4;
pub const ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3;
pub const ATOMIC_COUNTER_BUFFER_START = 0x92C2;
pub const ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1;
pub const ATOMIC_COUNTER_BUFFER = 0x92C0;
pub const MIN_MAP_BUFFER_ALIGNMENT = 0x90BC;
pub const NUM_SAMPLE_COUNTS = 0x9380;
pub const PACK_COMPRESSED_BLOCK_SIZE = 0x912E;
pub const PACK_COMPRESSED_BLOCK_DEPTH = 0x912D;
pub const PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C;
pub const PACK_COMPRESSED_BLOCK_WIDTH = 0x912B;
pub const UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A;
pub const UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129;
pub const UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128;
pub const UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127;
pub const TRANSFORM_FEEDBACK_PAUSED = 0x8E23;
pub const TRANSFORM_FEEDBACK_ACTIVE = 0x8E24;
pub const COPY_WRITE_BUFFER_BINDING = 0x8F37;
pub const COPY_READ_BUFFER_BINDING = 0x8F36;
pub const UNDEFINED_VERTEX = 0x8260;
pub const VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F;
pub const LAYER_PROVOKING_VERTEX = 0x825E;
pub const VIEWPORT_BOUNDS_RANGE = 0x825D;
pub const VIEWPORT_SUBPIXEL_BITS = 0x825C;
pub const MAX_VIEWPORTS = 0x825B;
pub const PROGRAM_PIPELINE_BINDING = 0x825A;
pub const ACTIVE_PROGRAM = 0x8259;
pub const PROGRAM_SEPARABLE = 0x8258;
pub const ALL_SHADER_BITS = 0xFFFFFFFF;
pub const TESS_EVALUATION_SHADER_BIT = 0x00000010;
pub const TESS_CONTROL_SHADER_BIT = 0x00000008;
pub const GEOMETRY_SHADER_BIT = 0x00000004;
pub const FRAGMENT_SHADER_BIT = 0x00000002;
pub const VERTEX_SHADER_BIT = 0x00000001;
pub const PROGRAM_BINARY_FORMATS = 0x87FF;
pub const NUM_PROGRAM_BINARY_FORMATS = 0x87FE;
pub const PROGRAM_BINARY_LENGTH = 0x8741;
pub const PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257;
pub const RGB565 = 0x8D62;
pub const MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
pub const MAX_VARYING_VECTORS = 0x8DFC;
pub const MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
pub const NUM_SHADER_BINARY_FORMATS = 0x8DF9;
pub const SHADER_BINARY_FORMATS = 0x8DF8;
pub const SHADER_COMPILER = 0x8DFA;
pub const HIGH_INT = 0x8DF5;
pub const MEDIUM_INT = 0x8DF4;
pub const LOW_INT = 0x8DF3;
pub const HIGH_FLOAT = 0x8DF2;
pub const MEDIUM_FLOAT = 0x8DF1;
pub const LOW_FLOAT = 0x8DF0;
pub const IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
pub const IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
pub const FIXED = 0x140C;
pub const MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70;
pub const ISOLINES = 0x8E7A;
pub const TESS_GEN_POINT_MODE = 0x8E79;
pub const TESS_GEN_VERTEX_ORDER = 0x8E78;
pub const TESS_GEN_SPACING = 0x8E77;
pub const TESS_GEN_MODE = 0x8E76;
pub const TESS_CONTROL_OUTPUT_VERTICES = 0x8E75;
pub const PATCH_DEFAULT_OUTER_LEVEL = 0x8E74;
pub const PATCH_DEFAULT_INNER_LEVEL = 0x8E73;
pub const PATCH_VERTICES = 0x8E72;
pub const PATCHES = 0x000E;
pub const VERTEX_BINDING_BUFFER = 0x8F4F;
pub const MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA;
pub const MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9;
pub const VERTEX_BINDING_STRIDE = 0x82D8;
pub const VERTEX_BINDING_OFFSET = 0x82D7;
pub const VERTEX_BINDING_DIVISOR = 0x82D6;
pub const VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5;
pub const VERTEX_ATTRIB_BINDING = 0x82D4;
pub const TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
pub const TEXTURE_VIEW_NUM_LAYERS = 0x82DE;
pub const TEXTURE_VIEW_MIN_LAYER = 0x82DD;
pub const TEXTURE_VIEW_NUM_LEVELS = 0x82DC;
pub const TEXTURE_VIEW_MIN_LEVEL = 0x82DB;
pub const TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F;
pub const TEXTURE_BUFFER_SIZE = 0x919E;
pub const TEXTURE_BUFFER_OFFSET = 0x919D;
pub const DEPTH_STENCIL_TEXTURE_MODE = 0x90EA;
pub const MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39;
pub const SHADER_STORAGE_BARRIER_BIT = 0x00002000;
pub const SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF;
pub const MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE;
pub const MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD;
pub const MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC;
pub const MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB;
pub const MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA;
pub const MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9;
pub const MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8;
pub const MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7;
pub const MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6;
pub const SHADER_STORAGE_BUFFER_SIZE = 0x90D5;
pub const SHADER_STORAGE_BUFFER_START = 0x90D4;
pub const SHADER_STORAGE_BUFFER_BINDING = 0x90D3;
pub const SHADER_STORAGE_BUFFER = 0x90D2;
pub const IS_PER_PATCH = 0x92E7;
pub const LOCATION_INDEX = 0x930F;
pub const LOCATION = 0x930E;
pub const TOP_LEVEL_ARRAY_STRIDE = 0x930D;
pub const TOP_LEVEL_ARRAY_SIZE = 0x930C;
pub const REFERENCED_BY_COMPUTE_SHADER = 0x930B;
pub const REFERENCED_BY_FRAGMENT_SHADER = 0x930A;
pub const REFERENCED_BY_GEOMETRY_SHADER = 0x9309;
pub const REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308;
pub const REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307;
pub const REFERENCED_BY_VERTEX_SHADER = 0x9306;
pub const ACTIVE_VARIABLES = 0x9305;
pub const NUM_ACTIVE_VARIABLES = 0x9304;
pub const BUFFER_DATA_SIZE = 0x9303;
pub const BUFFER_BINDING = 0x9302;
pub const ATOMIC_COUNTER_BUFFER_INDEX = 0x9301;
pub const IS_ROW_MAJOR = 0x9300;
pub const MATRIX_STRIDE = 0x92FF;
pub const ARRAY_STRIDE = 0x92FE;
pub const BLOCK_INDEX = 0x92FD;
pub const OFFSET = 0x92FC;
pub const ARRAY_SIZE = 0x92FB;
pub const TYPE = 0x92FA;
pub const NAME_LENGTH = 0x92F9;
pub const MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8;
pub const MAX_NUM_ACTIVE_VARIABLES = 0x92F7;
pub const MAX_NAME_LENGTH = 0x92F6;
pub const ACTIVE_RESOURCES = 0x92F5;
pub const TRANSFORM_FEEDBACK_VARYING = 0x92F4;
pub const COMPUTE_SUBROUTINE_UNIFORM = 0x92F3;
pub const FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2;
pub const GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1;
pub const TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0;
pub const TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF;
pub const VERTEX_SUBROUTINE_UNIFORM = 0x92EE;
pub const COMPUTE_SUBROUTINE = 0x92ED;
pub const FRAGMENT_SUBROUTINE = 0x92EC;
pub const GEOMETRY_SUBROUTINE = 0x92EB;
pub const TESS_EVALUATION_SUBROUTINE = 0x92EA;
pub const TESS_CONTROL_SUBROUTINE = 0x92E9;
pub const VERTEX_SUBROUTINE = 0x92E8;
pub const SHADER_STORAGE_BLOCK = 0x92E6;
pub const BUFFER_VARIABLE = 0x92E5;
pub const PROGRAM_OUTPUT = 0x92E4;
pub const PROGRAM_INPUT = 0x92E3;
pub const UNIFORM_BLOCK = 0x92E2;
pub const UNIFORM = 0x92E1;
pub const VIEW_CLASS_BPTC_FLOAT = 0x82D3;
pub const VIEW_CLASS_BPTC_UNORM = 0x82D2;
pub const VIEW_CLASS_RGTC2_RG = 0x82D1;
pub const VIEW_CLASS_RGTC1_RED = 0x82D0;
pub const VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF;
pub const VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE;
pub const VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD;
pub const VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC;
pub const VIEW_CLASS_8_BITS = 0x82CB;
pub const VIEW_CLASS_16_BITS = 0x82CA;
pub const VIEW_CLASS_24_BITS = 0x82C9;
pub const VIEW_CLASS_32_BITS = 0x82C8;
pub const VIEW_CLASS_48_BITS = 0x82C7;
pub const VIEW_CLASS_64_BITS = 0x82C6;
pub const VIEW_CLASS_96_BITS = 0x82C5;
pub const VIEW_CLASS_128_BITS = 0x82C4;
pub const IMAGE_CLASS_10_10_10_2 = 0x82C3;
pub const IMAGE_CLASS_11_11_10 = 0x82C2;
pub const IMAGE_CLASS_1_X_8 = 0x82C1;
pub const IMAGE_CLASS_2_X_8 = 0x82C0;
pub const IMAGE_CLASS_4_X_8 = 0x82BF;
pub const IMAGE_CLASS_1_X_16 = 0x82BE;
pub const IMAGE_CLASS_2_X_16 = 0x82BD;
pub const IMAGE_CLASS_4_X_16 = 0x82BC;
pub const IMAGE_CLASS_1_X_32 = 0x82BB;
pub const IMAGE_CLASS_2_X_32 = 0x82BA;
pub const IMAGE_CLASS_4_X_32 = 0x82B9;
pub const CAVEAT_SUPPORT = 0x82B8;
pub const FULL_SUPPORT = 0x82B7;
pub const VIEW_COMPATIBILITY_CLASS = 0x82B6;
pub const TEXTURE_VIEW = 0x82B5;
pub const CLEAR_BUFFER = 0x82B4;
pub const TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3;
pub const TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2;
pub const TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1;
pub const SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF;
pub const SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE;
pub const SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD;
pub const SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC;
pub const IMAGE_PIXEL_TYPE = 0x82AA;
pub const IMAGE_PIXEL_FORMAT = 0x82A9;
pub const IMAGE_COMPATIBILITY_CLASS = 0x82A8;
pub const IMAGE_TEXEL_SIZE = 0x82A7;
pub const SHADER_IMAGE_ATOMIC = 0x82A6;
pub const SHADER_IMAGE_STORE = 0x82A5;
pub const SHADER_IMAGE_LOAD = 0x82A4;
pub const TEXTURE_GATHER_SHADOW = 0x82A3;
pub const TEXTURE_GATHER = 0x82A2;
pub const TEXTURE_SHADOW = 0x82A1;
pub const COMPUTE_TEXTURE = 0x82A0;
pub const FRAGMENT_TEXTURE = 0x829F;
pub const GEOMETRY_TEXTURE = 0x829E;
pub const TESS_EVALUATION_TEXTURE = 0x829D;
pub const TESS_CONTROL_TEXTURE = 0x829C;
pub const VERTEX_TEXTURE = 0x829B;
pub const FILTER = 0x829A;
pub const SRGB_WRITE = 0x8298;
pub const SRGB_READ = 0x8297;
pub const COLOR_ENCODING = 0x8296;
pub const AUTO_GENERATE_MIPMAP = 0x8295;
pub const MANUAL_GENERATE_MIPMAP = 0x8294;
pub const MIPMAP = 0x8293;
pub const GET_TEXTURE_IMAGE_TYPE = 0x8292;
pub const GET_TEXTURE_IMAGE_FORMAT = 0x8291;
pub const TEXTURE_IMAGE_TYPE = 0x8290;
pub const TEXTURE_IMAGE_FORMAT = 0x828F;
pub const READ_PIXELS_TYPE = 0x828E;
pub const READ_PIXELS_FORMAT = 0x828D;
pub const READ_PIXELS = 0x828C;
pub const FRAMEBUFFER_BLEND = 0x828B;
pub const FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A;
pub const FRAMEBUFFER_RENDERABLE = 0x8289;
pub const STENCIL_RENDERABLE = 0x8288;
pub const DEPTH_RENDERABLE = 0x8287;
pub const COLOR_RENDERABLE = 0x8286;
pub const STENCIL_COMPONENTS = 0x8285;
pub const DEPTH_COMPONENTS = 0x8284;
pub const COLOR_COMPONENTS = 0x8283;
pub const MAX_COMBINED_DIMENSIONS = 0x8282;
pub const MAX_LAYERS = 0x8281;
pub const MAX_DEPTH = 0x8280;
pub const MAX_HEIGHT = 0x827F;
pub const MAX_WIDTH = 0x827E;
pub const INTERNALFORMAT_STENCIL_TYPE = 0x827D;
pub const INTERNALFORMAT_DEPTH_TYPE = 0x827C;
pub const INTERNALFORMAT_ALPHA_TYPE = 0x827B;
pub const INTERNALFORMAT_BLUE_TYPE = 0x827A;
pub const INTERNALFORMAT_GREEN_TYPE = 0x8279;
pub const INTERNALFORMAT_RED_TYPE = 0x8278;
pub const INTERNALFORMAT_SHARED_SIZE = 0x8277;
pub const INTERNALFORMAT_STENCIL_SIZE = 0x8276;
pub const INTERNALFORMAT_DEPTH_SIZE = 0x8275;
pub const INTERNALFORMAT_ALPHA_SIZE = 0x8274;
pub const INTERNALFORMAT_BLUE_SIZE = 0x8273;
pub const INTERNALFORMAT_GREEN_SIZE = 0x8272;
pub const INTERNALFORMAT_RED_SIZE = 0x8271;
pub const INTERNALFORMAT_PREFERRED = 0x8270;
pub const INTERNALFORMAT_SUPPORTED = 0x826F;
pub const MAX_FRAMEBUFFER_SAMPLES = 0x9318;
pub const MAX_FRAMEBUFFER_LAYERS = 0x9317;
pub const MAX_FRAMEBUFFER_HEIGHT = 0x9316;
pub const MAX_FRAMEBUFFER_WIDTH = 0x9315;
pub const FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314;
pub const FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313;
pub const FRAMEBUFFER_DEFAULT_LAYERS = 0x9312;
pub const FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311;
pub const FRAMEBUFFER_DEFAULT_WIDTH = 0x9310;
pub const MAX_UNIFORM_LOCATIONS = 0x826E;
pub const CONTEXT_FLAG_DEBUG_BIT = 0x00000002;
pub const DEBUG_OUTPUT = 0x92E0;
pub const MAX_LABEL_LENGTH = 0x82E8;
pub const SAMPLER = 0x82E6;
pub const PROGRAM_PIPELINE = 0x82E4;
pub const QUERY = 0x82E3;
pub const VERTEX_ARRAY = 0x8074;
pub const PROGRAM = 0x82E2;
pub const SHADER = 0x82E1;
pub const BUFFER = 0x82E0;
pub const DEBUG_GROUP_STACK_DEPTH = 0x826D;
pub const MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C;
pub const DEBUG_SEVERITY_NOTIFICATION = 0x826B;
pub const DEBUG_TYPE_POP_GROUP = 0x826A;
pub const DEBUG_TYPE_PUSH_GROUP = 0x8269;
pub const DEBUG_TYPE_MARKER = 0x8268;
pub const DEBUG_SEVERITY_LOW = 0x9148;
pub const DEBUG_SEVERITY_MEDIUM = 0x9147;
pub const DEBUG_SEVERITY_HIGH = 0x9146;
pub const DEBUG_LOGGED_MESSAGES = 0x9145;
pub const MAX_DEBUG_LOGGED_MESSAGES = 0x9144;
pub const MAX_DEBUG_MESSAGE_LENGTH = 0x9143;
pub const DEBUG_TYPE_OTHER = 0x8251;
pub const DEBUG_TYPE_PERFORMANCE = 0x8250;
pub const DEBUG_TYPE_PORTABILITY = 0x824F;
pub const DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E;
pub const DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D;
pub const DEBUG_TYPE_ERROR = 0x824C;
pub const DEBUG_SOURCE_OTHER = 0x824B;
pub const DEBUG_SOURCE_APPLICATION = 0x824A;
pub const DEBUG_SOURCE_THIRD_PARTY = 0x8249;
pub const DEBUG_SOURCE_SHADER_COMPILER = 0x8248;
pub const DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247;
pub const DEBUG_SOURCE_API = 0x8246;
pub const DEBUG_CALLBACK_USER_PARAM = 0x8245;
pub const DEBUG_CALLBACK_FUNCTION = 0x8244;
pub const DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243;
pub const DEBUG_OUTPUT_SYNCHRONOUS = 0x8242;
pub const COMPUTE_SHADER_BIT = 0x00000020;
pub const DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF;
pub const DISPATCH_INDIRECT_BUFFER = 0x90EE;
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED;
pub const UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC;
pub const COMPUTE_WORK_GROUP_SIZE = 0x8267;
pub const MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF;
pub const COLOR_LOGIC_OP = 0x0BF2;
pub const POLYGON_OFFSET_UNITS = 0x2A00;
pub const POLYGON_OFFSET_POINT = 0x2A01;
pub const POLYGON_OFFSET_LINE = 0x2A02;
pub const POLYGON_OFFSET_FILL = 0x8037;
pub const POLYGON_OFFSET_FACTOR = 0x8038;
pub const TEXTURE_BINDING_1D = 0x8068;
pub const TEXTURE_BINDING_2D = 0x8069;
pub const TEXTURE_INTERNAL_FORMAT = 0x1003;
pub const TEXTURE_RED_SIZE = 0x805C;
pub const TEXTURE_GREEN_SIZE = 0x805D;
pub const TEXTURE_BLUE_SIZE = 0x805E;
pub const TEXTURE_ALPHA_SIZE = 0x805F;
pub const DOUBLE = 0x140A;
pub const PROXY_TEXTURE_1D = 0x8063;
pub const PROXY_TEXTURE_2D = 0x8064;
pub const R3_G3_B2 = 0x2A10;
pub const RGB4 = 0x804F;
pub const RGB5 = 0x8050;
pub const RGB8 = 0x8051;
pub const RGB10 = 0x8052;
pub const RGB12 = 0x8053;
pub const RGB16 = 0x8054;
pub const RGBA2 = 0x8055;
pub const RGBA4 = 0x8056;
pub const RGB5_A1 = 0x8057;
pub const RGBA8 = 0x8058;
pub const RGB10_A2 = 0x8059;
pub const RGBA12 = 0x805A;
pub const RGBA16 = 0x805B;
pub const COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279;
pub const COMPRESSED_RGBA8_ETC2_EAC = 0x9278;
pub const COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277;
pub const UNSIGNED_INT_IMAGE_2D = 0x9063;
pub const UNSIGNED_INT_IMAGE_1D = 0x9062;
pub const INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061;
pub const INT_IMAGE_2D_MULTISAMPLE = 0x9060;
pub const INT_IMAGE_CUBE_MAP_ARRAY = 0x905F;
pub const INT_IMAGE_2D_ARRAY = 0x905E;
pub const INT_IMAGE_1D_ARRAY = 0x905D;
pub const INT_IMAGE_BUFFER = 0x905C;
pub const MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3;
pub const MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF;
pub const TRANSFORM_FEEDBACK_BINDING = 0x8E25;
pub const TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24;
pub const TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23;
pub const TRANSFORM_FEEDBACK = 0x8E22;
pub const TESS_CONTROL_SHADER = 0x8E88;
pub const TESS_EVALUATION_SHADER = 0x8E87;
pub const UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1;
pub const UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0;
pub const MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F;
pub const MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E;
pub const MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D;
pub const MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C;
pub const MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A;
pub const MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89;
pub const MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86;
pub const MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85;
pub const MAX_TESS_PATCH_COMPONENTS = 0x8E84;
pub const MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83;
pub const MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82;
pub const MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81;
pub const MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80;
pub const MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F;
pub const MAX_TESS_GEN_LEVEL = 0x8E7E;
pub const MAX_PATCH_VERTICES = 0x8E7D;
pub const FRACTIONAL_EVEN = 0x8E7C;
pub const FRACTIONAL_ODD = 0x8E7B;
pub const QUADS = 0x0007;
pub const MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8;
pub const COMPATIBLE_SUBROUTINES = 0x8E4B;
pub const NUM_COMPATIBLE_SUBROUTINES = 0x8E4A;
pub const MAX_SUBROUTINES = 0x8DE7;
pub const ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49;
pub const ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48;
pub const ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47;
pub const ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6;
pub const ACTIVE_SUBROUTINES = 0x8DE5;
pub const UNSIGNED_BYTE_3_3_2 = 0x8032;
pub const UNSIGNED_SHORT_4_4_4_4 = 0x8033;
pub const UNSIGNED_SHORT_5_5_5_1 = 0x8034;
pub const UNSIGNED_INT_8_8_8_8 = 0x8035;
pub const UNSIGNED_INT_10_10_10_2 = 0x8036;
pub const TEXTURE_BINDING_3D = 0x806A;
pub const PACK_SKIP_IMAGES = 0x806B;
pub const PACK_IMAGE_HEIGHT = 0x806C;
pub const UNPACK_SKIP_IMAGES = 0x806D;
pub const UNPACK_IMAGE_HEIGHT = 0x806E;
pub const TEXTURE_3D = 0x806F;
pub const PROXY_TEXTURE_3D = 0x8070;
pub const TEXTURE_DEPTH = 0x8071;
pub const TEXTURE_WRAP_R = 0x8072;
pub const MAX_3D_TEXTURE_SIZE = 0x8073;
pub const UNSIGNED_BYTE_2_3_3_REV = 0x8362;
pub const UNSIGNED_SHORT_5_6_5 = 0x8363;
pub const UNSIGNED_SHORT_5_6_5_REV = 0x8364;
pub const UNSIGNED_SHORT_4_4_4_4_REV = 0x8365;
pub const UNSIGNED_SHORT_1_5_5_5_REV = 0x8366;
pub const UNSIGNED_INT_8_8_8_8_REV = 0x8367;
pub const UNSIGNED_INT_2_10_10_10_REV = 0x8368;
pub const BGR = 0x80E0;
pub const BGRA = 0x80E1;
pub const MAX_ELEMENTS_VERTICES = 0x80E8;
pub const MAX_ELEMENTS_INDICES = 0x80E9;
pub const CLAMP_TO_EDGE = 0x812F;
pub const TEXTURE_MIN_LOD = 0x813A;
pub const TEXTURE_MAX_LOD = 0x813B;
pub const TEXTURE_BASE_LEVEL = 0x813C;
pub const TEXTURE_MAX_LEVEL = 0x813D;
pub const SMOOTH_POINT_SIZE_RANGE = 0x0B12;
pub const SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13;
pub const SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
pub const SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23;
pub const ALIASED_LINE_WIDTH_RANGE = 0x846E;
pub const TEXTURE0 = 0x84C0;
pub const TEXTURE1 = 0x84C1;
pub const TEXTURE2 = 0x84C2;
pub const TEXTURE3 = 0x84C3;
pub const TEXTURE4 = 0x84C4;
pub const TEXTURE5 = 0x84C5;
pub const TEXTURE6 = 0x84C6;
pub const TEXTURE7 = 0x84C7;
pub const TEXTURE8 = 0x84C8;
pub const TEXTURE9 = 0x84C9;
pub const TEXTURE10 = 0x84CA;
pub const TEXTURE11 = 0x84CB;
pub const TEXTURE12 = 0x84CC;
pub const TEXTURE13 = 0x84CD;
pub const TEXTURE14 = 0x84CE;
pub const TEXTURE15 = 0x84CF;
pub const TEXTURE16 = 0x84D0;
pub const TEXTURE17 = 0x84D1;
pub const TEXTURE18 = 0x84D2;
pub const TEXTURE19 = 0x84D3;
pub const TEXTURE20 = 0x84D4;
pub const TEXTURE21 = 0x84D5;
pub const TEXTURE22 = 0x84D6;
pub const TEXTURE23 = 0x84D7;
pub const TEXTURE24 = 0x84D8;
pub const TEXTURE25 = 0x84D9;
pub const TEXTURE26 = 0x84DA;
pub const TEXTURE27 = 0x84DB;
pub const TEXTURE28 = 0x84DC;
pub const TEXTURE29 = 0x84DD;
pub const TEXTURE30 = 0x84DE;
pub const TEXTURE31 = 0x84DF;
pub const ACTIVE_TEXTURE = 0x84E0;
pub const MULTISAMPLE = 0x809D;
pub const SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
pub const SAMPLE_ALPHA_TO_ONE = 0x809F;
pub const SAMPLE_COVERAGE = 0x80A0;
pub const SAMPLE_BUFFERS = 0x80A8;
pub const SAMPLES = 0x80A9;
pub const SAMPLE_COVERAGE_VALUE = 0x80AA;
pub const SAMPLE_COVERAGE_INVERT = 0x80AB;
pub const TEXTURE_CUBE_MAP = 0x8513;
pub const TEXTURE_BINDING_CUBE_MAP = 0x8514;
pub const TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
pub const TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
pub const TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
pub const TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
pub const TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
pub const TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
pub const PROXY_TEXTURE_CUBE_MAP = 0x851B;
pub const MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
pub const COMPRESSED_RGB = 0x84ED;
pub const COMPRESSED_RGBA = 0x84EE;
pub const TEXTURE_COMPRESSION_HINT = 0x84EF;
pub const TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0;
pub const TEXTURE_COMPRESSED = 0x86A1;
pub const NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
pub const COMPRESSED_TEXTURE_FORMATS = 0x86A3;
pub const CLAMP_TO_BORDER = 0x812D;
pub const DOUBLE_MAT4x3 = 0x8F4E;
pub const DOUBLE_MAT4x2 = 0x8F4D;
pub const DOUBLE_MAT3x4 = 0x8F4C;
pub const DOUBLE_MAT3x2 = 0x8F4B;
pub const DOUBLE_MAT2x4 = 0x8F4A;
pub const DOUBLE_MAT2x3 = 0x8F49;
pub const DOUBLE_MAT4 = 0x8F48;
pub const DOUBLE_MAT3 = 0x8F47;
pub const DOUBLE_MAT2 = 0x8F46;
pub const DOUBLE_VEC4 = 0x8FFE;
pub const DOUBLE_VEC3 = 0x8FFD;
pub const DOUBLE_VEC2 = 0x8FFC;
pub const MAX_VERTEX_STREAMS = 0x8E71;
pub const FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D;
pub const MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C;
pub const MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B;
pub const MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A;
pub const GEOMETRY_SHADER_INVOCATIONS = 0x887F;
pub const DRAW_INDIRECT_BUFFER_BINDING = 0x8F43;
pub const DRAW_INDIRECT_BUFFER = 0x8F3F;
pub const UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F;
pub const INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E;
pub const SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D;
pub const SAMPLER_CUBE_MAP_ARRAY = 0x900C;
pub const PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B;
pub const TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A;
pub const TEXTURE_CUBE_MAP_ARRAY = 0x9009;
pub const MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F;
pub const MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E;
pub const MIN_SAMPLE_SHADING_VALUE = 0x8C37;
pub const SAMPLE_SHADING = 0x8C36;
pub const INT_2_10_10_10_REV = 0x8D9F;
pub const TIMESTAMP = 0x8E28;
pub const TIME_ELAPSED = 0x88BF;
pub const TEXTURE_SWIZZLE_RGBA = 0x8E46;
pub const TEXTURE_SWIZZLE_A = 0x8E45;
pub const TEXTURE_SWIZZLE_B = 0x8E44;
pub const TEXTURE_SWIZZLE_G = 0x8E43;
pub const TEXTURE_SWIZZLE_R = 0x8E42;
pub const RGB10_A2UI = 0x906F;
pub const BLEND_DST_RGB = 0x80C8;
pub const BLEND_SRC_RGB = 0x80C9;
pub const BLEND_DST_ALPHA = 0x80CA;
pub const BLEND_SRC_ALPHA = 0x80CB;
pub const POINT_FADE_THRESHOLD_SIZE = 0x8128;
pub const DEPTH_COMPONENT16 = 0x81A5;
pub const DEPTH_COMPONENT24 = 0x81A6;
pub const DEPTH_COMPONENT32 = 0x81A7;
pub const MIRRORED_REPEAT = 0x8370;
pub const MAX_TEXTURE_LOD_BIAS = 0x84FD;
pub const TEXTURE_LOD_BIAS = 0x8501;
pub const INCR_WRAP = 0x8507;
pub const DECR_WRAP = 0x8508;
pub const TEXTURE_DEPTH_SIZE = 0x884A;
pub const TEXTURE_COMPARE_MODE = 0x884C;
pub const TEXTURE_COMPARE_FUNC = 0x884D;
pub const SAMPLER_BINDING = 0x8919;
pub const ANY_SAMPLES_PASSED = 0x8C2F;
pub const MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC;
pub const ONE_MINUS_SRC1_ALPHA = 0x88FB;
pub const ONE_MINUS_SRC1_COLOR = 0x88FA;
pub const SRC1_COLOR = 0x88F9;
pub const VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE;
pub const MAX_INTEGER_SAMPLES = 0x9110;
pub const MAX_DEPTH_TEXTURE_SAMPLES = 0x910F;
pub const MAX_COLOR_TEXTURE_SAMPLES = 0x910E;
pub const UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D;
pub const INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C;
pub const SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B;
pub const UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A;
pub const INT_SAMPLER_2D_MULTISAMPLE = 0x9109;
pub const SAMPLER_2D_MULTISAMPLE = 0x9108;
pub const TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107;
pub const TEXTURE_SAMPLES = 0x9106;
pub const TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105;
pub const TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104;
pub const PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103;
pub const TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102;
pub const PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101;
pub const TEXTURE_2D_MULTISAMPLE = 0x9100;
pub const MAX_SAMPLE_MASK_WORDS = 0x8E59;
pub const SAMPLE_MASK_VALUE = 0x8E52;
pub const SAMPLE_MASK = 0x8E51;
pub const SAMPLE_POSITION = 0x8E50;
pub const SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
pub const TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF;
pub const WAIT_FAILED = 0x911D;
pub const CONDITION_SATISFIED = 0x911C;
pub const TIMEOUT_EXPIRED = 0x911B;
pub const ALREADY_SIGNALED = 0x911A;
pub const SIGNALED = 0x9119;
pub const UNSIGNALED = 0x9118;
pub const SYNC_GPU_COMMANDS_COMPLETE = 0x9117;
pub const BLEND_COLOR = 0x8005;
pub const BLEND_EQUATION = 0x8009;
pub const CONSTANT_COLOR = 0x8001;
pub const ONE_MINUS_CONSTANT_COLOR = 0x8002;
pub const CONSTANT_ALPHA = 0x8003;
pub const ONE_MINUS_CONSTANT_ALPHA = 0x8004;
pub const FUNC_ADD = 0x8006;
pub const FUNC_REVERSE_SUBTRACT = 0x800B;
pub const FUNC_SUBTRACT = 0x800A;
pub const MIN = 0x8007;
pub const MAX = 0x8008;
pub const BUFFER_SIZE = 0x8764;
pub const BUFFER_USAGE = 0x8765;
pub const QUERY_COUNTER_BITS = 0x8864;
pub const CURRENT_QUERY = 0x8865;
pub const QUERY_RESULT = 0x8866;
pub const QUERY_RESULT_AVAILABLE = 0x8867;
pub const ARRAY_BUFFER = 0x8892;
pub const ELEMENT_ARRAY_BUFFER = 0x8893;
pub const ARRAY_BUFFER_BINDING = 0x8894;
pub const ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
pub const VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
pub const READ_ONLY = 0x88B8;
pub const WRITE_ONLY = 0x88B9;
pub const READ_WRITE = 0x88BA;
pub const BUFFER_ACCESS = 0x88BB;
pub const BUFFER_MAPPED = 0x88BC;
pub const BUFFER_MAP_POINTER = 0x88BD;
pub const STREAM_DRAW = 0x88E0;
pub const STREAM_READ = 0x88E1;
pub const STREAM_COPY = 0x88E2;
pub const STATIC_DRAW = 0x88E4;
pub const STATIC_READ = 0x88E5;
pub const STATIC_COPY = 0x88E6;
pub const DYNAMIC_DRAW = 0x88E8;
pub const DYNAMIC_READ = 0x88E9;
pub const DYNAMIC_COPY = 0x88EA;
pub const SAMPLES_PASSED = 0x8914;
pub const SRC1_ALPHA = 0x8589;
pub const SYNC_FENCE = 0x9116;
pub const SYNC_FLAGS = 0x9115;
pub const SYNC_STATUS = 0x9114;
pub const SYNC_CONDITION = 0x9113;
pub const OBJECT_TYPE = 0x9112;
pub const MAX_SERVER_WAIT_TIMEOUT = 0x9111;
pub const TEXTURE_CUBE_MAP_SEAMLESS = 0x884F;
pub const PROVOKING_VERTEX = 0x8E4F;
pub const LAST_VERTEX_CONVENTION = 0x8E4E;
pub const FIRST_VERTEX_CONVENTION = 0x8E4D;
pub const QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C;
pub const DEPTH_CLAMP = 0x864F;
pub const CONTEXT_PROFILE_MASK = 0x9126;
pub const MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
pub const MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124;
pub const MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123;
pub const MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
pub const BLEND_EQUATION_RGB = 0x8009;
pub const VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
pub const VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
pub const VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
pub const VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
pub const CURRENT_VERTEX_ATTRIB = 0x8626;
pub const VERTEX_PROGRAM_POINT_SIZE = 0x8642;
pub const VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
pub const STENCIL_BACK_FUNC = 0x8800;
pub const STENCIL_BACK_FAIL = 0x8801;
pub const STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
pub const STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
pub const MAX_DRAW_BUFFERS = 0x8824;
pub const DRAW_BUFFER0 = 0x8825;
pub const DRAW_BUFFER1 = 0x8826;
pub const DRAW_BUFFER2 = 0x8827;
pub const DRAW_BUFFER3 = 0x8828;
pub const DRAW_BUFFER4 = 0x8829;
pub const DRAW_BUFFER5 = 0x882A;
pub const DRAW_BUFFER6 = 0x882B;
pub const DRAW_BUFFER7 = 0x882C;
pub const DRAW_BUFFER8 = 0x882D;
pub const DRAW_BUFFER9 = 0x882E;
pub const DRAW_BUFFER10 = 0x882F;
pub const DRAW_BUFFER11 = 0x8830;
pub const DRAW_BUFFER12 = 0x8831;
pub const DRAW_BUFFER13 = 0x8832;
pub const DRAW_BUFFER14 = 0x8833;
pub const DRAW_BUFFER15 = 0x8834;
pub const BLEND_EQUATION_ALPHA = 0x883D;
pub const MAX_VERTEX_ATTRIBS = 0x8869;
pub const VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
pub const MAX_TEXTURE_IMAGE_UNITS = 0x8872;
pub const FRAGMENT_SHADER = 0x8B30;
pub const VERTEX_SHADER = 0x8B31;
pub const MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49;
pub const MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A;
pub const MAX_VARYING_FLOATS = 0x8B4B;
pub const MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
pub const MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
pub const SHADER_TYPE = 0x8B4F;
pub const FLOAT_VEC2 = 0x8B50;
pub const FLOAT_VEC3 = 0x8B51;
pub const FLOAT_VEC4 = 0x8B52;
pub const INT_VEC2 = 0x8B53;
pub const INT_VEC3 = 0x8B54;
pub const INT_VEC4 = 0x8B55;
pub const BOOL = 0x8B56;
pub const BOOL_VEC2 = 0x8B57;
pub const BOOL_VEC3 = 0x8B58;
pub const BOOL_VEC4 = 0x8B59;
pub const FLOAT_MAT2 = 0x8B5A;
pub const FLOAT_MAT3 = 0x8B5B;
pub const FLOAT_MAT4 = 0x8B5C;
pub const SAMPLER_1D = 0x8B5D;
pub const SAMPLER_2D = 0x8B5E;
pub const SAMPLER_3D = 0x8B5F;
pub const SAMPLER_CUBE = 0x8B60;
pub const SAMPLER_1D_SHADOW = 0x8B61;
pub const SAMPLER_2D_SHADOW = 0x8B62;
pub const DELETE_STATUS = 0x8B80;
pub const COMPILE_STATUS = 0x8B81;
pub const LINK_STATUS = 0x8B82;
pub const VALIDATE_STATUS = 0x8B83;
pub const INFO_LOG_LENGTH = 0x8B84;
pub const ATTACHED_SHADERS = 0x8B85;
pub const ACTIVE_UNIFORMS = 0x8B86;
pub const ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87;
pub const SHADER_SOURCE_LENGTH = 0x8B88;
pub const ACTIVE_ATTRIBUTES = 0x8B89;
pub const ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A;
pub const FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B;
pub const SHADING_LANGUAGE_VERSION = 0x8B8C;
pub const CURRENT_PROGRAM = 0x8B8D;
pub const POINT_SPRITE_COORD_ORIGIN = 0x8CA0;
pub const LOWER_LEFT = 0x8CA1;
pub const UPPER_LEFT = 0x8CA2;
pub const STENCIL_BACK_REF = 0x8CA3;
pub const STENCIL_BACK_VALUE_MASK = 0x8CA4;
pub const STENCIL_BACK_WRITEMASK = 0x8CA5;
pub const MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1;
pub const MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0;
pub const MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF;
pub const GEOMETRY_OUTPUT_TYPE = 0x8918;
pub const PIXEL_PACK_BUFFER = 0x88EB;
pub const PIXEL_UNPACK_BUFFER = 0x88EC;
pub const PIXEL_PACK_BUFFER_BINDING = 0x88ED;
pub const PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;
pub const FLOAT_MAT2x3 = 0x8B65;
pub const FLOAT_MAT2x4 = 0x8B66;
pub const FLOAT_MAT3x2 = 0x8B67;
pub const FLOAT_MAT3x4 = 0x8B68;
pub const FLOAT_MAT4x2 = 0x8B69;
pub const FLOAT_MAT4x3 = 0x8B6A;
pub const SRGB = 0x8C40;
pub const SRGB8 = 0x8C41;
pub const SRGB_ALPHA = 0x8C42;
pub const SRGB8_ALPHA8 = 0x8C43;
pub const COMPRESSED_SRGB = 0x8C48;
pub const COMPRESSED_SRGB_ALPHA = 0x8C49;
pub const GEOMETRY_INPUT_TYPE = 0x8917;
pub const GEOMETRY_VERTICES_OUT = 0x8916;
pub const GEOMETRY_SHADER = 0x8DD9;
pub const FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8;
pub const FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7;
pub const MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29;
pub const PROGRAM_POINT_SIZE = 0x8642;
pub const COMPARE_REF_TO_TEXTURE = 0x884E;
pub const CLIP_DISTANCE0 = 0x3000;
pub const CLIP_DISTANCE1 = 0x3001;
pub const CLIP_DISTANCE2 = 0x3002;
pub const CLIP_DISTANCE3 = 0x3003;
pub const CLIP_DISTANCE4 = 0x3004;
pub const CLIP_DISTANCE5 = 0x3005;
pub const CLIP_DISTANCE6 = 0x3006;
pub const CLIP_DISTANCE7 = 0x3007;
pub const MAX_CLIP_DISTANCES = 0x0D32;
pub const MAJOR_VERSION = 0x821B;
pub const MINOR_VERSION = 0x821C;
pub const NUM_EXTENSIONS = 0x821D;
pub const CONTEXT_FLAGS = 0x821E;
pub const COMPRESSED_RED = 0x8225;
pub const COMPRESSED_RG = 0x8226;
pub const CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001;
pub const RGBA32F = 0x8814;
pub const RGB32F = 0x8815;
pub const RGBA16F = 0x881A;
pub const RGB16F = 0x881B;
pub const VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;
pub const MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;
pub const MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
pub const MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
pub const CLAMP_READ_COLOR = 0x891C;
pub const FIXED_ONLY = 0x891D;
pub const MAX_VARYING_COMPONENTS = 0x8B4B;
pub const TEXTURE_1D_ARRAY = 0x8C18;
pub const PROXY_TEXTURE_1D_ARRAY = 0x8C19;
pub const TEXTURE_2D_ARRAY = 0x8C1A;
pub const PROXY_TEXTURE_2D_ARRAY = 0x8C1B;
pub const TEXTURE_BINDING_1D_ARRAY = 0x8C1C;
pub const TEXTURE_BINDING_2D_ARRAY = 0x8C1D;
pub const R11F_G11F_B10F = 0x8C3A;
pub const UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;
pub const RGB9_E5 = 0x8C3D;
pub const UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;
pub const TEXTURE_SHARED_SIZE = 0x8C3F;
pub const TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76;
pub const TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;
pub const MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;
pub const TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;
pub const TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;
pub const TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;
pub const PRIMITIVES_GENERATED = 0x8C87;
pub const TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;
pub const RASTERIZER_DISCARD = 0x8C89;
pub const MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
pub const MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
pub const INTERLEAVED_ATTRIBS = 0x8C8C;
pub const SEPARATE_ATTRIBS = 0x8C8D;
pub const TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;
pub const TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;
pub const RGBA32UI = 0x8D70;
pub const RGB32UI = 0x8D71;
pub const RGBA16UI = 0x8D76;
pub const RGB16UI = 0x8D77;
pub const RGBA8UI = 0x8D7C;
pub const RGB8UI = 0x8D7D;
pub const RGBA32I = 0x8D82;
pub const RGB32I = 0x8D83;
pub const RGBA16I = 0x8D88;
pub const RGB16I = 0x8D89;
pub const RGBA8I = 0x8D8E;
pub const RGB8I = 0x8D8F;
pub const RED_INTEGER = 0x8D94;
pub const GREEN_INTEGER = 0x8D95;
pub const BLUE_INTEGER = 0x8D96;
pub const RGB_INTEGER = 0x8D98;
pub const RGBA_INTEGER = 0x8D99;
pub const BGR_INTEGER = 0x8D9A;
pub const BGRA_INTEGER = 0x8D9B;
pub const SAMPLER_1D_ARRAY = 0x8DC0;
pub const SAMPLER_2D_ARRAY = 0x8DC1;
pub const SAMPLER_1D_ARRAY_SHADOW = 0x8DC3;
pub const SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;
pub const SAMPLER_CUBE_SHADOW = 0x8DC5;
pub const UNSIGNED_INT_VEC2 = 0x8DC6;
pub const UNSIGNED_INT_VEC3 = 0x8DC7;
pub const UNSIGNED_INT_VEC4 = 0x8DC8;
pub const INT_SAMPLER_1D = 0x8DC9;
pub const INT_SAMPLER_2D = 0x8DCA;
pub const INT_SAMPLER_3D = 0x8DCB;
pub const INT_SAMPLER_CUBE = 0x8DCC;
pub const INT_SAMPLER_1D_ARRAY = 0x8DCE;
pub const INT_SAMPLER_2D_ARRAY = 0x8DCF;
pub const UNSIGNED_INT_SAMPLER_1D = 0x8DD1;
pub const UNSIGNED_INT_SAMPLER_2D = 0x8DD2;
pub const UNSIGNED_INT_SAMPLER_3D = 0x8DD3;
pub const UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;
pub const UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6;
pub const UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;
pub const QUERY_WAIT = 0x8E13;
pub const QUERY_NO_WAIT = 0x8E14;
pub const QUERY_BY_REGION_WAIT = 0x8E15;
pub const QUERY_BY_REGION_NO_WAIT = 0x8E16;
pub const BUFFER_ACCESS_FLAGS = 0x911F;
pub const BUFFER_MAP_LENGTH = 0x9120;
pub const BUFFER_MAP_OFFSET = 0x9121;
pub const DEPTH_COMPONENT32F = 0x8CAC;
pub const DEPTH32F_STENCIL8 = 0x8CAD;
pub const FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;
pub const INVALID_FRAMEBUFFER_OPERATION = 0x0506;
pub const FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;
pub const FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211;
pub const FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212;
pub const FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213;
pub const FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214;
pub const FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215;
pub const FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216;
pub const FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217;
pub const FRAMEBUFFER_DEFAULT = 0x8218;
pub const FRAMEBUFFER_UNDEFINED = 0x8219;
pub const DEPTH_STENCIL_ATTACHMENT = 0x821A;
pub const MAX_RENDERBUFFER_SIZE = 0x84E8;
pub const DEPTH_STENCIL = 0x84F9;
pub const UNSIGNED_INT_24_8 = 0x84FA;
pub const DEPTH24_STENCIL8 = 0x88F0;
pub const TEXTURE_STENCIL_SIZE = 0x88F1;
pub const TEXTURE_RED_TYPE = 0x8C10;
pub const TEXTURE_GREEN_TYPE = 0x8C11;
pub const TEXTURE_BLUE_TYPE = 0x8C12;
pub const TEXTURE_ALPHA_TYPE = 0x8C13;
pub const TEXTURE_DEPTH_TYPE = 0x8C16;
pub const UNSIGNED_NORMALIZED = 0x8C17;
pub const FRAMEBUFFER_BINDING = 0x8CA6;
pub const DRAW_FRAMEBUFFER_BINDING = 0x8CA6;
pub const RENDERBUFFER_BINDING = 0x8CA7;
pub const READ_FRAMEBUFFER = 0x8CA8;
pub const DRAW_FRAMEBUFFER = 0x8CA9;
pub const READ_FRAMEBUFFER_BINDING = 0x8CAA;
pub const RENDERBUFFER_SAMPLES = 0x8CAB;
pub const FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
pub const FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
pub const FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
pub const FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
pub const FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
pub const FRAMEBUFFER_COMPLETE = 0x8CD5;
pub const FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
pub const FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
pub const FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB;
pub const FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC;
pub const FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
pub const MAX_COLOR_ATTACHMENTS = 0x8CDF;
pub const COLOR_ATTACHMENT0 = 0x8CE0;
pub const COLOR_ATTACHMENT1 = 0x8CE1;
pub const COLOR_ATTACHMENT2 = 0x8CE2;
pub const COLOR_ATTACHMENT3 = 0x8CE3;
pub const COLOR_ATTACHMENT4 = 0x8CE4;
pub const COLOR_ATTACHMENT5 = 0x8CE5;
pub const COLOR_ATTACHMENT6 = 0x8CE6;
pub const COLOR_ATTACHMENT7 = 0x8CE7;
pub const COLOR_ATTACHMENT8 = 0x8CE8;
pub const COLOR_ATTACHMENT9 = 0x8CE9;
pub const COLOR_ATTACHMENT10 = 0x8CEA;
pub const COLOR_ATTACHMENT11 = 0x8CEB;
pub const COLOR_ATTACHMENT12 = 0x8CEC;
pub const COLOR_ATTACHMENT13 = 0x8CED;
pub const COLOR_ATTACHMENT14 = 0x8CEE;
pub const COLOR_ATTACHMENT15 = 0x8CEF;
pub const COLOR_ATTACHMENT16 = 0x8CF0;
pub const COLOR_ATTACHMENT17 = 0x8CF1;
pub const COLOR_ATTACHMENT18 = 0x8CF2;
pub const COLOR_ATTACHMENT19 = 0x8CF3;
pub const COLOR_ATTACHMENT20 = 0x8CF4;
pub const COLOR_ATTACHMENT21 = 0x8CF5;
pub const COLOR_ATTACHMENT22 = 0x8CF6;
pub const COLOR_ATTACHMENT23 = 0x8CF7;
pub const COLOR_ATTACHMENT24 = 0x8CF8;
pub const COLOR_ATTACHMENT25 = 0x8CF9;
pub const COLOR_ATTACHMENT26 = 0x8CFA;
pub const COLOR_ATTACHMENT27 = 0x8CFB;
pub const COLOR_ATTACHMENT28 = 0x8CFC;
pub const COLOR_ATTACHMENT29 = 0x8CFD;
pub const COLOR_ATTACHMENT30 = 0x8CFE;
pub const COLOR_ATTACHMENT31 = 0x8CFF;
pub const DEPTH_ATTACHMENT = 0x8D00;
pub const STENCIL_ATTACHMENT = 0x8D20;
pub const FRAMEBUFFER = 0x8D40;
pub const RENDERBUFFER = 0x8D41;
pub const RENDERBUFFER_WIDTH = 0x8D42;
pub const RENDERBUFFER_HEIGHT = 0x8D43;
pub const RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
pub const STENCIL_INDEX1 = 0x8D46;
pub const STENCIL_INDEX4 = 0x8D47;
pub const STENCIL_INDEX8 = 0x8D48;
pub const STENCIL_INDEX16 = 0x8D49;
pub const RENDERBUFFER_RED_SIZE = 0x8D50;
pub const RENDERBUFFER_GREEN_SIZE = 0x8D51;
pub const RENDERBUFFER_BLUE_SIZE = 0x8D52;
pub const RENDERBUFFER_ALPHA_SIZE = 0x8D53;
pub const RENDERBUFFER_DEPTH_SIZE = 0x8D54;
pub const RENDERBUFFER_STENCIL_SIZE = 0x8D55;
pub const FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56;
pub const MAX_SAMPLES = 0x8D57;
pub const LINES_ADJACENCY = 0x000A;
pub const CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002;
pub const CONTEXT_CORE_PROFILE_BIT = 0x00000001;
pub const FRAMEBUFFER_SRGB = 0x8DB9;
pub const HALF_FLOAT = 0x140B;
pub const MAP_READ_BIT = 0x0001;
pub const MAP_WRITE_BIT = 0x0002;
pub const MAP_INVALIDATE_RANGE_BIT = 0x0004;
pub const MAP_INVALIDATE_BUFFER_BIT = 0x0008;
pub const MAP_FLUSH_EXPLICIT_BIT = 0x0010;
pub const MAP_UNSYNCHRONIZED_BIT = 0x0020;
pub const COMPRESSED_RED_RGTC1 = 0x8DBB;
pub const COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC;
pub const COMPRESSED_RG_RGTC2 = 0x8DBD;
pub const COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE;
pub const RG = 0x8227;
pub const RG_INTEGER = 0x8228;
pub const R8 = 0x8229;
pub const R16 = 0x822A;
pub const RG8 = 0x822B;
pub const RG16 = 0x822C;
pub const R16F = 0x822D;
pub const R32F = 0x822E;
pub const RG16F = 0x822F;
pub const RG32F = 0x8230;
pub const R8I = 0x8231;
pub const R8UI = 0x8232;
pub const R16I = 0x8233;
pub const R16UI = 0x8234;
pub const R32I = 0x8235;
pub const R32UI = 0x8236;
pub const RG8I = 0x8237;
pub const RG8UI = 0x8238;
pub const RG16I = 0x8239;
pub const RG16UI = 0x823A;
pub const RG32I = 0x823B;
pub const RG32UI = 0x823C;
pub const VERTEX_ARRAY_BINDING = 0x85B5;
pub const TRIANGLE_STRIP_ADJACENCY = 0x000D;
pub const TRIANGLES_ADJACENCY = 0x000C;
pub const LINE_STRIP_ADJACENCY = 0x000B;
pub const SAMPLER_2D_RECT = 0x8B63;
pub const SAMPLER_2D_RECT_SHADOW = 0x8B64;
pub const SAMPLER_BUFFER = 0x8DC2;
pub const INT_SAMPLER_2D_RECT = 0x8DCD;
pub const INT_SAMPLER_BUFFER = 0x8DD0;
pub const UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5;
pub const UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8;
pub const TEXTURE_BUFFER = 0x8C2A;
pub const MAX_TEXTURE_BUFFER_SIZE = 0x8C2B;
pub const TEXTURE_BINDING_BUFFER = 0x8C2C;
pub const TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D;
pub const TEXTURE_RECTANGLE = 0x84F5;
pub const TEXTURE_BINDING_RECTANGLE = 0x84F6;
pub const PROXY_TEXTURE_RECTANGLE = 0x84F7;
pub const MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8;
pub const R8_SNORM = 0x8F94;
pub const RG8_SNORM = 0x8F95;
pub const RGB8_SNORM = 0x8F96;
pub const RGBA8_SNORM = 0x8F97;
pub const R16_SNORM = 0x8F98;
pub const RG16_SNORM = 0x8F99;
pub const RGB16_SNORM = 0x8F9A;
pub const RGBA16_SNORM = 0x8F9B;
pub const SIGNED_NORMALIZED = 0x8F9C;
pub const PRIMITIVE_RESTART = 0x8F9D;
pub const PRIMITIVE_RESTART_INDEX = 0x8F9E;
pub const COPY_READ_BUFFER = 0x8F36;
pub const COPY_WRITE_BUFFER = 0x8F37;
pub const UNIFORM_BUFFER = 0x8A11;
pub const UNIFORM_BUFFER_BINDING = 0x8A28;
pub const UNIFORM_BUFFER_START = 0x8A29;
pub const UNIFORM_BUFFER_SIZE = 0x8A2A;
pub const MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B;
pub const MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C;
pub const MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D;
pub const MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E;
pub const MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F;
pub const MAX_UNIFORM_BLOCK_SIZE = 0x8A30;
pub const MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31;
pub const MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32;
pub const MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33;
pub const UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34;
pub const ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35;
pub const ACTIVE_UNIFORM_BLOCKS = 0x8A36;
pub const UNIFORM_TYPE = 0x8A37;
pub const UNIFORM_SIZE = 0x8A38;
pub const UNIFORM_NAME_LENGTH = 0x8A39;
pub const UNIFORM_BLOCK_INDEX = 0x8A3A;
pub const UNIFORM_OFFSET = 0x8A3B;
pub const UNIFORM_ARRAY_STRIDE = 0x8A3C;
pub const UNIFORM_MATRIX_STRIDE = 0x8A3D;
pub const UNIFORM_IS_ROW_MAJOR = 0x8A3E;
pub const UNIFORM_BLOCK_BINDING = 0x8A3F;
pub const UNIFORM_BLOCK_DATA_SIZE = 0x8A40;
pub const UNIFORM_BLOCK_NAME_LENGTH = 0x8A41;
pub const UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42;
pub const UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
pub const UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
pub const UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45;
pub const UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
pub const INVALID_INDEX = 0xFFFFFFFF;
pub const STACK_UNDERFLOW = 0x0504;
pub const STACK_OVERFLOW = 0x0503;
pub const MAX_VERTEX_ATTRIB_STRIDE = 0x82E5;
pub const PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221;
pub const TEXTURE_BUFFER_BINDING = 0x8C2A;
pub const MAP_PERSISTENT_BIT = 0x0040;
pub const MAP_COHERENT_BIT = 0x0080;
pub const DYNAMIC_STORAGE_BIT = 0x0100;
pub const CLIENT_STORAGE_BIT = 0x0200;
pub const CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000;
pub const BUFFER_IMMUTABLE_STORAGE = 0x821F;
pub const BUFFER_STORAGE_FLAGS = 0x8220;
pub const CLEAR_TEXTURE = 0x9365;
pub const LOCATION_COMPONENT = 0x934A;
pub const TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B;
pub const TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C;
pub const QUERY_BUFFER = 0x9192;
pub const QUERY_BUFFER_BARRIER_BIT = 0x00008000;
pub const QUERY_BUFFER_BINDING = 0x9193;
pub const QUERY_RESULT_NO_WAIT = 0x9194;
pub const MIRROR_CLAMP_TO_EDGE = 0x8743;
pub const CONTEXT_LOST = 0x0507;
pub const NEGATIVE_ONE_TO_ONE = 0x935E;
pub const ZERO_TO_ONE = 0x935F;
pub const CLIP_ORIGIN = 0x935C;
pub const CLIP_DEPTH_MODE = 0x935D;
pub const QUERY_WAIT_INVERTED = 0x8E17;
pub const QUERY_NO_WAIT_INVERTED = 0x8E18;
pub const QUERY_BY_REGION_WAIT_INVERTED = 0x8E19;
pub const QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A;
pub const MAX_CULL_DISTANCES = 0x82F9;
pub const MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA;
pub const TEXTURE_TARGET = 0x1006;
pub const QUERY_TARGET = 0x82EA;
pub const GUILTY_CONTEXT_RESET = 0x8253;
pub const INNOCENT_CONTEXT_RESET = 0x8254;
pub const UNKNOWN_CONTEXT_RESET = 0x8255;
pub const RESET_NOTIFICATION_STRATEGY = 0x8256;
pub const LOSE_CONTEXT_ON_RESET = 0x8252;
pub const NO_RESET_NOTIFICATION = 0x8261;
pub const CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004;
pub const CONTEXT_RELEASE_BEHAVIOR = 0x82FB;
pub const CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC;
pub fn texStorage2D(_target: GLenum, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexStorage2D, .{_target, _levels, _internalformat, _width, _height});
}
pub fn texStorage1D(_target: GLenum, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexStorage1D, .{_target, _levels, _internalformat, _width});
}
pub fn drawTransformFeedbackStreamInstanced(_mode: GLenum, _id: GLuint, _stream: GLuint, _instancecount: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawTransformFeedbackStreamInstanced, .{_mode, _id, _stream, _instancecount});
}
pub fn drawTransformFeedbackInstanced(_mode: GLenum, _id: GLuint, _instancecount: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawTransformFeedbackInstanced, .{_mode, _id, _instancecount});
}
pub fn texStorage3D(_target: GLenum, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexStorage3D, .{_target, _levels, _internalformat, _width, _height, _depth});
}
pub fn memoryBarrier(_barriers: GLbitfield) callconv(.C) void {
return @call(.always_tail, function_pointers.glMemoryBarrier, .{_barriers});
}
pub fn bindImageTexture(_unit: GLuint, _texture: GLuint, _level: GLint, _layered: GLboolean, _layer: GLint, _access: GLenum, _format: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindImageTexture, .{_unit, _texture, _level, _layered, _layer, _access, _format});
}
pub fn getActiveAtomicCounterBufferiv(_program: GLuint, _bufferIndex: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveAtomicCounterBufferiv, .{_program, _bufferIndex, _pname, _params});
}
pub fn getInternalformativ(_target: GLenum, _internalformat: GLenum, _pname: GLenum, _count: GLsizei, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetInternalformativ, .{_target, _internalformat, _pname, _count, _params});
}
pub fn drawElementsInstancedBaseVertexBaseInstance(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei, _basevertex: GLint, _baseinstance: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElementsInstancedBaseVertexBaseInstance, .{_mode, _count, _type, _indices, _instancecount, _basevertex, _baseinstance});
}
pub fn drawElementsInstancedBaseInstance(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei, _baseinstance: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElementsInstancedBaseInstance, .{_mode, _count, _type, _indices, _instancecount, _baseinstance});
}
pub fn drawArraysInstancedBaseInstance(_mode: GLenum, _first: GLint, _count: GLsizei, _instancecount: GLsizei, _baseinstance: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawArraysInstancedBaseInstance, .{_mode, _first, _count, _instancecount, _baseinstance});
}
pub fn getDoublei_v(_target: GLenum, _index: GLuint, _data: [*c]GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetDoublei_v, .{_target, _index, _data});
}
pub fn getFloati_v(_target: GLenum, _index: GLuint, _data: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetFloati_v, .{_target, _index, _data});
}
pub fn depthRangeIndexed(_index: GLuint, _n: GLdouble, _f: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glDepthRangeIndexed, .{_index, _n, _f});
}
pub fn depthRangeArrayv(_first: GLuint, _count: GLsizei, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glDepthRangeArrayv, .{_first, _count, _v});
}
pub fn scissorIndexedv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glScissorIndexedv, .{_index, _v});
}
pub fn scissorIndexed(_index: GLuint, _left: GLint, _bottom: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glScissorIndexed, .{_index, _left, _bottom, _width, _height});
}
pub fn scissorArrayv(_first: GLuint, _count: GLsizei, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glScissorArrayv, .{_first, _count, _v});
}
pub fn viewportIndexedfv(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glViewportIndexedfv, .{_index, _v});
}
pub fn viewportIndexedf(_index: GLuint, _x: GLfloat, _y: GLfloat, _w: GLfloat, _h: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glViewportIndexedf, .{_index, _x, _y, _w, _h});
}
pub fn viewportArrayv(_first: GLuint, _count: GLsizei, _v: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glViewportArrayv, .{_first, _count, _v});
}
pub fn getVertexAttribLdv(_index: GLuint, _pname: GLenum, _params: [*c]GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribLdv, .{_index, _pname, _params});
}
pub fn vertexAttribLPointer(_index: GLuint, _size: GLint, _type: GLenum, _stride: GLsizei, _pointer: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribLPointer, .{_index, _size, _type, _stride, _pointer});
}
pub fn vertexAttribL4dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL4dv, .{_index, _v});
}
pub fn vertexAttribL3dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL3dv, .{_index, _v});
}
pub fn vertexAttribL2dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL2dv, .{_index, _v});
}
pub fn vertexAttribL1dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL1dv, .{_index, _v});
}
pub fn vertexAttribL4d(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL4d, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttribL3d(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL3d, .{_index, _x, _y, _z});
}
pub fn vertexAttribL2d(_index: GLuint, _x: GLdouble, _y: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL2d, .{_index, _x, _y});
}
pub fn vertexAttribL1d(_index: GLuint, _x: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribL1d, .{_index, _x});
}
pub fn validateProgramPipeline(_pipeline: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glValidateProgramPipeline, .{_pipeline});
}
pub fn programUniformMatrix4x3dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix4x3dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix3x4dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix3x4dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix4x2dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix4x2dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix2x4dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix2x4dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix3x2dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix3x2dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix2x3dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix2x3dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix4x3fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix4x3fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix3x4fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix3x4fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix4x2fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix4x2fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix2x4fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix2x4fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix3x2fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix3x2fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix2x3fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix2x3fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix4dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix4dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix3dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix3dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix2dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix2dv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix4fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix4fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix3fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix3fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniformMatrix2fv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniformMatrix2fv, .{_program, _location, _count, _transpose, _value});
}
pub fn programUniform4uiv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4uiv, .{_program, _location, _count, _value});
}
pub fn programUniform4ui(_program: GLuint, _location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint, _v3: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4ui, .{_program, _location, _v0, _v1, _v2, _v3});
}
pub fn programUniform4dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4dv, .{_program, _location, _count, _value});
}
pub fn programUniform4d(_program: GLuint, _location: GLint, _v0: GLdouble, _v1: GLdouble, _v2: GLdouble, _v3: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4d, .{_program, _location, _v0, _v1, _v2, _v3});
}
pub fn programUniform4fv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4fv, .{_program, _location, _count, _value});
}
pub fn programUniform4f(_program: GLuint, _location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat, _v3: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4f, .{_program, _location, _v0, _v1, _v2, _v3});
}
pub fn programUniform4iv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4iv, .{_program, _location, _count, _value});
}
pub fn programUniform4i(_program: GLuint, _location: GLint, _v0: GLint, _v1: GLint, _v2: GLint, _v3: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform4i, .{_program, _location, _v0, _v1, _v2, _v3});
}
pub fn programUniform3uiv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3uiv, .{_program, _location, _count, _value});
}
pub fn programUniform3ui(_program: GLuint, _location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3ui, .{_program, _location, _v0, _v1, _v2});
}
pub fn programUniform3dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3dv, .{_program, _location, _count, _value});
}
pub fn programUniform3d(_program: GLuint, _location: GLint, _v0: GLdouble, _v1: GLdouble, _v2: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3d, .{_program, _location, _v0, _v1, _v2});
}
pub fn programUniform3fv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3fv, .{_program, _location, _count, _value});
}
pub fn programUniform3f(_program: GLuint, _location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3f, .{_program, _location, _v0, _v1, _v2});
}
pub fn programUniform3iv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3iv, .{_program, _location, _count, _value});
}
pub fn programUniform3i(_program: GLuint, _location: GLint, _v0: GLint, _v1: GLint, _v2: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform3i, .{_program, _location, _v0, _v1, _v2});
}
pub fn useProgramStages(_pipeline: GLuint, _stages: GLbitfield, _program: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUseProgramStages, .{_pipeline, _stages, _program});
}
pub fn programParameteri(_program: GLuint, _pname: GLenum, _value: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramParameteri, .{_program, _pname, _value});
}
pub fn getShaderPrecisionFormat(_shadertype: GLenum, _precisiontype: GLenum, _range: [*c]GLint, _precision: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetShaderPrecisionFormat, .{_shadertype, _precisiontype, _range, _precision});
}
pub fn shaderBinary(_count: GLsizei, _shaders: [*c]const GLuint, _binaryFormat: GLenum, _binary: ?*const anyopaque, _length: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glShaderBinary, .{_count, _shaders, _binaryFormat, _binary, _length});
}
pub fn releaseShaderCompiler() callconv(.C) void {
return @call(.always_tail, function_pointers.glReleaseShaderCompiler, .{});
}
pub fn getQueryIndexediv(_target: GLenum, _index: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryIndexediv, .{_target, _index, _pname, _params});
}
pub fn endQueryIndexed(_target: GLenum, _index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glEndQueryIndexed, .{_target, _index});
}
pub fn beginQueryIndexed(_target: GLenum, _index: GLuint, _id: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBeginQueryIndexed, .{_target, _index, _id});
}
pub fn drawTransformFeedbackStream(_mode: GLenum, _id: GLuint, _stream: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawTransformFeedbackStream, .{_mode, _id, _stream});
}
pub fn drawTransformFeedback(_mode: GLenum, _id: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawTransformFeedback, .{_mode, _id});
}
pub fn resumeTransformFeedback() callconv(.C) void {
return @call(.always_tail, function_pointers.glResumeTransformFeedback, .{});
}
pub fn pauseTransformFeedback() callconv(.C) void {
return @call(.always_tail, function_pointers.glPauseTransformFeedback, .{});
}
pub fn getProgramStageiv(_program: GLuint, _shadertype: GLenum, _pname: GLenum, _values: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramStageiv, .{_program, _shadertype, _pname, _values});
}
pub fn getUniformSubroutineuiv(_shadertype: GLenum, _location: GLint, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetUniformSubroutineuiv, .{_shadertype, _location, _params});
}
pub fn uniformSubroutinesuiv(_shadertype: GLenum, _count: GLsizei, _indices: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformSubroutinesuiv, .{_shadertype, _count, _indices});
}
pub fn getActiveSubroutineName(_program: GLuint, _shadertype: GLenum, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _name: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveSubroutineName, .{_program, _shadertype, _index, _bufSize, _length, _name});
}
pub fn cullFace(_mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glCullFace, .{_mode});
}
pub fn frontFace(_mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glFrontFace, .{_mode});
}
pub fn hint(_target: GLenum, _mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glHint, .{_target, _mode});
}
pub fn lineWidth(_width: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glLineWidth, .{_width});
}
pub fn pointSize(_size: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glPointSize, .{_size});
}
pub fn polygonMode(_face: GLenum, _mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glPolygonMode, .{_face, _mode});
}
pub fn scissor(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glScissor, .{_x, _y, _width, _height});
}
pub fn texParameterf(_target: GLenum, _pname: GLenum, _param: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexParameterf, .{_target, _pname, _param});
}
pub fn texParameterfv(_target: GLenum, _pname: GLenum, _params: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexParameterfv, .{_target, _pname, _params});
}
pub fn texParameteri(_target: GLenum, _pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexParameteri, .{_target, _pname, _param});
}
pub fn texParameteriv(_target: GLenum, _pname: GLenum, _params: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexParameteriv, .{_target, _pname, _params});
}
pub fn texImage1D(_target: GLenum, _level: GLint, _internalformat: GLint, _width: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexImage1D, .{_target, _level, _internalformat, _width, _border, _format, _type, _pixels});
}
pub fn texImage2D(_target: GLenum, _level: GLint, _internalformat: GLint, _width: GLsizei, _height: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexImage2D, .{_target, _level, _internalformat, _width, _height, _border, _format, _type, _pixels});
}
pub fn drawBuffer(_buf: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawBuffer, .{_buf});
}
pub fn clear(_mask: GLbitfield) callconv(.C) void {
return @call(.always_tail, function_pointers.glClear, .{_mask});
}
pub fn clearColor(_red: GLfloat, _green: GLfloat, _blue: GLfloat, _alpha: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearColor, .{_red, _green, _blue, _alpha});
}
pub fn clearStencil(_s: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearStencil, .{_s});
}
pub fn clearDepth(_depth: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearDepth, .{_depth});
}
pub fn stencilMask(_mask: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glStencilMask, .{_mask});
}
pub fn colorMask(_red: GLboolean, _green: GLboolean, _blue: GLboolean, _alpha: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glColorMask, .{_red, _green, _blue, _alpha});
}
pub fn depthMask(_flag: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glDepthMask, .{_flag});
}
pub fn disable(_cap: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glDisable, .{_cap});
}
pub fn enable(_cap: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glEnable, .{_cap});
}
pub fn finish() callconv(.C) void {
return @call(.always_tail, function_pointers.glFinish, .{});
}
pub fn flush() callconv(.C) void {
return @call(.always_tail, function_pointers.glFlush, .{});
}
pub fn blendFunc(_sfactor: GLenum, _dfactor: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendFunc, .{_sfactor, _dfactor});
}
pub fn logicOp(_opcode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glLogicOp, .{_opcode});
}
pub fn stencilFunc(_func: GLenum, _ref: GLint, _mask: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glStencilFunc, .{_func, _ref, _mask});
}
pub fn stencilOp(_fail: GLenum, _zfail: GLenum, _zpass: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glStencilOp, .{_fail, _zfail, _zpass});
}
pub fn depthFunc(_func: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glDepthFunc, .{_func});
}
pub fn pixelStoref(_pname: GLenum, _param: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glPixelStoref, .{_pname, _param});
}
pub fn pixelStorei(_pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glPixelStorei, .{_pname, _param});
}
pub fn readBuffer(_src: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glReadBuffer, .{_src});
}
pub fn readPixels(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glReadPixels, .{_x, _y, _width, _height, _format, _type, _pixels});
}
pub fn getBooleanv(_pname: GLenum, _data: [*c]GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetBooleanv, .{_pname, _data});
}
pub fn getDoublev(_pname: GLenum, _data: [*c]GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetDoublev, .{_pname, _data});
}
pub fn getError() callconv(.C) GLenum {
return @call(.always_tail, function_pointers.glGetError, .{});
}
pub fn getFloatv(_pname: GLenum, _data: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetFloatv, .{_pname, _data});
}
pub fn getIntegerv(_pname: GLenum, _data: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetIntegerv, .{_pname, _data});
}
pub fn getString(_name: GLenum) callconv(.C) ?[*:0]const GLubyte {
return @call(.always_tail, function_pointers.glGetString, .{_name});
}
pub fn getTexImage(_target: GLenum, _level: GLint, _format: GLenum, _type: GLenum, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexImage, .{_target, _level, _format, _type, _pixels});
}
pub fn getTexParameterfv(_target: GLenum, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexParameterfv, .{_target, _pname, _params});
}
pub fn getTexParameteriv(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexParameteriv, .{_target, _pname, _params});
}
pub fn getTexLevelParameterfv(_target: GLenum, _level: GLint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexLevelParameterfv, .{_target, _level, _pname, _params});
}
pub fn getTexLevelParameteriv(_target: GLenum, _level: GLint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexLevelParameteriv, .{_target, _level, _pname, _params});
}
pub fn isEnabled(_cap: GLenum) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsEnabled, .{_cap});
}
pub fn depthRange(_n: GLdouble, _f: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glDepthRange, .{_n, _f});
}
pub fn viewport(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glViewport, .{_x, _y, _width, _height});
}
pub fn texStorage2DMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexStorage2DMultisample, .{_target, _samples, _internalformat, _width, _height, _fixedsamplelocations});
}
pub fn texBufferRange(_target: GLenum, _internalformat: GLenum, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexBufferRange, .{_target, _internalformat, _buffer, _offset, _size});
}
pub fn shaderStorageBlockBinding(_program: GLuint, _storageBlockIndex: GLuint, _storageBlockBinding: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glShaderStorageBlockBinding, .{_program, _storageBlockIndex, _storageBlockBinding});
}
pub fn getProgramResourceLocationIndex(_program: GLuint, _programInterface: GLenum, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetProgramResourceLocationIndex, .{_program, _programInterface, _name});
}
pub fn getProgramResourceLocation(_program: GLuint, _programInterface: GLenum, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetProgramResourceLocation, .{_program, _programInterface, _name});
}
pub fn getProgramResourceiv(_program: GLuint, _programInterface: GLenum, _index: GLuint, _propCount: GLsizei, _props: [*c]const GLenum, _count: GLsizei, _length: [*c]GLsizei, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramResourceiv, .{_program, _programInterface, _index, _propCount, _props, _count, _length, _params});
}
pub fn getProgramResourceName(_program: GLuint, _programInterface: GLenum, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _name: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramResourceName, .{_program, _programInterface, _index, _bufSize, _length, _name});
}
pub fn getProgramResourceIndex(_program: GLuint, _programInterface: GLenum, _name: [*c]const GLchar) callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glGetProgramResourceIndex, .{_program, _programInterface, _name});
}
pub fn getProgramInterfaceiv(_program: GLuint, _programInterface: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramInterfaceiv, .{_program, _programInterface, _pname, _params});
}
pub fn multiDrawElementsIndirect(_mode: GLenum, _type: GLenum, _indirect: ?*const anyopaque, _drawcount: GLsizei, _stride: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glMultiDrawElementsIndirect, .{_mode, _type, _indirect, _drawcount, _stride});
}
pub fn multiDrawArraysIndirect(_mode: GLenum, _indirect: ?*const anyopaque, _drawcount: GLsizei, _stride: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glMultiDrawArraysIndirect, .{_mode, _indirect, _drawcount, _stride});
}
pub fn invalidateSubFramebuffer(_target: GLenum, _numAttachments: GLsizei, _attachments: [*c]const GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateSubFramebuffer, .{_target, _numAttachments, _attachments, _x, _y, _width, _height});
}
pub fn invalidateFramebuffer(_target: GLenum, _numAttachments: GLsizei, _attachments: [*c]const GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateFramebuffer, .{_target, _numAttachments, _attachments});
}
pub fn invalidateBufferData(_buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateBufferData, .{_buffer});
}
pub fn invalidateBufferSubData(_buffer: GLuint, _offset: GLintptr, _length: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateBufferSubData, .{_buffer, _offset, _length});
}
pub fn invalidateTexImage(_texture: GLuint, _level: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateTexImage, .{_texture, _level});
}
pub fn invalidateTexSubImage(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateTexSubImage, .{_texture, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth});
}
pub fn getInternalformati64v(_target: GLenum, _internalformat: GLenum, _pname: GLenum, _count: GLsizei, _params: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetInternalformati64v, .{_target, _internalformat, _pname, _count, _params});
}
pub fn getFramebufferParameteriv(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetFramebufferParameteriv, .{_target, _pname, _params});
}
pub fn framebufferParameteri(_target: GLenum, _pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferParameteri, .{_target, _pname, _param});
}
pub fn copyImageSubData(_srcName: GLuint, _srcTarget: GLenum, _srcLevel: GLint, _srcX: GLint, _srcY: GLint, _srcZ: GLint, _dstName: GLuint, _dstTarget: GLenum, _dstLevel: GLint, _dstX: GLint, _dstY: GLint, _dstZ: GLint, _srcWidth: GLsizei, _srcHeight: GLsizei, _srcDepth: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyImageSubData, .{_srcName, _srcTarget, _srcLevel, _srcX, _srcY, _srcZ, _dstName, _dstTarget, _dstLevel, _dstX, _dstY, _dstZ, _srcWidth, _srcHeight, _srcDepth});
}
pub fn dispatchComputeIndirect(_indirect: GLintptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glDispatchComputeIndirect, .{_indirect});
}
pub fn dispatchCompute(_num_groups_x: GLuint, _num_groups_y: GLuint, _num_groups_z: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDispatchCompute, .{_num_groups_x, _num_groups_y, _num_groups_z});
}
pub fn clearBufferSubData(_target: GLenum, _internalformat: GLenum, _offset: GLintptr, _size: GLsizeiptr, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearBufferSubData, .{_target, _internalformat, _offset, _size, _format, _type, _data});
}
pub fn clearBufferData(_target: GLenum, _internalformat: GLenum, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearBufferData, .{_target, _internalformat, _format, _type, _data});
}
pub fn getProgramPipelineInfoLog(_pipeline: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _infoLog: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramPipelineInfoLog, .{_pipeline, _bufSize, _length, _infoLog});
}
pub fn programUniform2uiv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2uiv, .{_program, _location, _count, _value});
}
pub fn programUniform2ui(_program: GLuint, _location: GLint, _v0: GLuint, _v1: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2ui, .{_program, _location, _v0, _v1});
}
pub fn programUniform2dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2dv, .{_program, _location, _count, _value});
}
pub fn programUniform2d(_program: GLuint, _location: GLint, _v0: GLdouble, _v1: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2d, .{_program, _location, _v0, _v1});
}
pub fn programUniform2fv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2fv, .{_program, _location, _count, _value});
}
pub fn programUniform2f(_program: GLuint, _location: GLint, _v0: GLfloat, _v1: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2f, .{_program, _location, _v0, _v1});
}
pub fn programUniform2iv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2iv, .{_program, _location, _count, _value});
}
pub fn programUniform2i(_program: GLuint, _location: GLint, _v0: GLint, _v1: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform2i, .{_program, _location, _v0, _v1});
}
pub fn programUniform1uiv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1uiv, .{_program, _location, _count, _value});
}
pub fn programUniform1ui(_program: GLuint, _location: GLint, _v0: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1ui, .{_program, _location, _v0});
}
pub fn programUniform1dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1dv, .{_program, _location, _count, _value});
}
pub fn programUniform1d(_program: GLuint, _location: GLint, _v0: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1d, .{_program, _location, _v0});
}
pub fn programUniform1fv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1fv, .{_program, _location, _count, _value});
}
pub fn programUniform1f(_program: GLuint, _location: GLint, _v0: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1f, .{_program, _location, _v0});
}
pub fn programUniform1iv(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1iv, .{_program, _location, _count, _value});
}
pub fn programUniform1i(_program: GLuint, _location: GLint, _v0: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramUniform1i, .{_program, _location, _v0});
}
pub fn getProgramPipelineiv(_pipeline: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramPipelineiv, .{_pipeline, _pname, _params});
}
pub fn isProgramPipeline(_pipeline: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsProgramPipeline, .{_pipeline});
}
pub fn genProgramPipelines(_n: GLsizei, _pipelines: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenProgramPipelines, .{_n, _pipelines});
}
pub fn deleteProgramPipelines(_n: GLsizei, _pipelines: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteProgramPipelines, .{_n, _pipelines});
}
pub fn bindProgramPipeline(_pipeline: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindProgramPipeline, .{_pipeline});
}
pub fn createShaderProgramv(_type: GLenum, _count: GLsizei, _strings: [*c]const [*c]const GLchar) callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glCreateShaderProgramv, .{_type, _count, _strings});
}
pub fn activeShaderProgram(_pipeline: GLuint, _program: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glActiveShaderProgram, .{_pipeline, _program});
}
pub fn programBinary(_program: GLuint, _binaryFormat: GLenum, _binary: ?*const anyopaque, _length: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glProgramBinary, .{_program, _binaryFormat, _binary, _length});
}
pub fn getProgramBinary(_program: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _binaryFormat: [*c]GLenum, _binary: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramBinary, .{_program, _bufSize, _length, _binaryFormat, _binary});
}
pub fn clearDepthf(_d: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearDepthf, .{_d});
}
pub fn depthRangef(_n: GLfloat, _f: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glDepthRangef, .{_n, _f});
}
pub fn isTransformFeedback(_id: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsTransformFeedback, .{_id});
}
pub fn genTransformFeedbacks(_n: GLsizei, _ids: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenTransformFeedbacks, .{_n, _ids});
}
pub fn deleteTransformFeedbacks(_n: GLsizei, _ids: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteTransformFeedbacks, .{_n, _ids});
}
pub fn bindTransformFeedback(_target: GLenum, _id: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindTransformFeedback, .{_target, _id});
}
pub fn patchParameterfv(_pname: GLenum, _values: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glPatchParameterfv, .{_pname, _values});
}
pub fn patchParameteri(_pname: GLenum, _value: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glPatchParameteri, .{_pname, _value});
}
pub fn drawArrays(_mode: GLenum, _first: GLint, _count: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawArrays, .{_mode, _first, _count});
}
pub fn drawElements(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElements, .{_mode, _count, _type, _indices});
}
pub fn polygonOffset(_factor: GLfloat, _units: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glPolygonOffset, .{_factor, _units});
}
pub fn copyTexImage1D(_target: GLenum, _level: GLint, _internalformat: GLenum, _x: GLint, _y: GLint, _width: GLsizei, _border: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTexImage1D, .{_target, _level, _internalformat, _x, _y, _width, _border});
}
pub fn copyTexImage2D(_target: GLenum, _level: GLint, _internalformat: GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _border: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTexImage2D, .{_target, _level, _internalformat, _x, _y, _width, _height, _border});
}
pub fn copyTexSubImage1D(_target: GLenum, _level: GLint, _xoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTexSubImage1D, .{_target, _level, _xoffset, _x, _y, _width});
}
pub fn copyTexSubImage2D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTexSubImage2D, .{_target, _level, _xoffset, _yoffset, _x, _y, _width, _height});
}
pub fn texSubImage1D(_target: GLenum, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexSubImage1D, .{_target, _level, _xoffset, _width, _format, _type, _pixels});
}
pub fn texSubImage2D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexSubImage2D, .{_target, _level, _xoffset, _yoffset, _width, _height, _format, _type, _pixels});
}
pub fn bindTexture(_target: GLenum, _texture: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindTexture, .{_target, _texture});
}
pub fn deleteTextures(_n: GLsizei, _textures: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteTextures, .{_n, _textures});
}
pub fn genTextures(_n: GLsizei, _textures: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenTextures, .{_n, _textures});
}
pub fn isTexture(_texture: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsTexture, .{_texture});
}
pub fn getActiveSubroutineUniformName(_program: GLuint, _shadertype: GLenum, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _name: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveSubroutineUniformName, .{_program, _shadertype, _index, _bufSize, _length, _name});
}
pub fn getActiveSubroutineUniformiv(_program: GLuint, _shadertype: GLenum, _index: GLuint, _pname: GLenum, _values: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveSubroutineUniformiv, .{_program, _shadertype, _index, _pname, _values});
}
pub fn getSubroutineIndex(_program: GLuint, _shadertype: GLenum, _name: [*c]const GLchar) callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glGetSubroutineIndex, .{_program, _shadertype, _name});
}
pub fn getSubroutineUniformLocation(_program: GLuint, _shadertype: GLenum, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetSubroutineUniformLocation, .{_program, _shadertype, _name});
}
pub fn getUniformdv(_program: GLuint, _location: GLint, _params: [*c]GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetUniformdv, .{_program, _location, _params});
}
pub fn uniformMatrix4x3dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix4x3dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix4x2dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix4x2dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix3x4dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix3x4dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix3x2dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix3x2dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix2x4dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix2x4dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix2x3dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix2x3dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix4dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix4dv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix3dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix3dv, .{_location, _count, _transpose, _value});
}
pub fn drawRangeElements(_mode: GLenum, _start: GLuint, _end: GLuint, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawRangeElements, .{_mode, _start, _end, _count, _type, _indices});
}
pub fn texImage3D(_target: GLenum, _level: GLint, _internalformat: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexImage3D, .{_target, _level, _internalformat, _width, _height, _depth, _border, _format, _type, _pixels});
}
pub fn texSubImage3D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexSubImage3D, .{_target, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _format, _type, _pixels});
}
pub fn copyTexSubImage3D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTexSubImage3D, .{_target, _level, _xoffset, _yoffset, _zoffset, _x, _y, _width, _height});
}
pub fn uniformMatrix2dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix2dv, .{_location, _count, _transpose, _value});
}
pub fn uniform4dv(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4dv, .{_location, _count, _value});
}
pub fn uniform3dv(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3dv, .{_location, _count, _value});
}
pub fn uniform2dv(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2dv, .{_location, _count, _value});
}
pub fn uniform1dv(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1dv, .{_location, _count, _value});
}
pub fn uniform4d(_location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4d, .{_location, _x, _y, _z, _w});
}
pub fn uniform3d(_location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3d, .{_location, _x, _y, _z});
}
pub fn uniform2d(_location: GLint, _x: GLdouble, _y: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2d, .{_location, _x, _y});
}
pub fn uniform1d(_location: GLint, _x: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1d, .{_location, _x});
}
pub fn drawElementsIndirect(_mode: GLenum, _type: GLenum, _indirect: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElementsIndirect, .{_mode, _type, _indirect});
}
pub fn drawArraysIndirect(_mode: GLenum, _indirect: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawArraysIndirect, .{_mode, _indirect});
}
pub fn blendFuncSeparatei(_buf: GLuint, _srcRGB: GLenum, _dstRGB: GLenum, _srcAlpha: GLenum, _dstAlpha: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendFuncSeparatei, .{_buf, _srcRGB, _dstRGB, _srcAlpha, _dstAlpha});
}
pub fn blendFunci(_buf: GLuint, _src: GLenum, _dst: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendFunci, .{_buf, _src, _dst});
}
pub fn blendEquationSeparatei(_buf: GLuint, _modeRGB: GLenum, _modeAlpha: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendEquationSeparatei, .{_buf, _modeRGB, _modeAlpha});
}
pub fn blendEquationi(_buf: GLuint, _mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendEquationi, .{_buf, _mode});
}
pub fn minSampleShading(_value: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glMinSampleShading, .{_value});
}
pub fn activeTexture(_texture: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glActiveTexture, .{_texture});
}
pub fn sampleCoverage(_value: GLfloat, _invert: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glSampleCoverage, .{_value, _invert});
}
pub fn compressedTexImage3D(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _border: GLint, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTexImage3D, .{_target, _level, _internalformat, _width, _height, _depth, _border, _imageSize, _data});
}
pub fn compressedTexImage2D(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _border: GLint, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTexImage2D, .{_target, _level, _internalformat, _width, _height, _border, _imageSize, _data});
}
pub fn compressedTexImage1D(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _border: GLint, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTexImage1D, .{_target, _level, _internalformat, _width, _border, _imageSize, _data});
}
pub fn compressedTexSubImage3D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTexSubImage3D, .{_target, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _format, _imageSize, _data});
}
pub fn compressedTexSubImage2D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTexSubImage2D, .{_target, _level, _xoffset, _yoffset, _width, _height, _format, _imageSize, _data});
}
pub fn compressedTexSubImage1D(_target: GLenum, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTexSubImage1D, .{_target, _level, _xoffset, _width, _format, _imageSize, _data});
}
pub fn getCompressedTexImage(_target: GLenum, _level: GLint, _img: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetCompressedTexImage, .{_target, _level, _img});
}
pub fn vertexAttribP4uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP4uiv, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP4ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP4ui, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP3uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP3uiv, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP3ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP3ui, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP2uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP2uiv, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP2ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP2ui, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP1uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP1uiv, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribP1ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribP1ui, .{_index, _type, _normalized, _value});
}
pub fn vertexAttribDivisor(_index: GLuint, _divisor: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribDivisor, .{_index, _divisor});
}
pub fn getQueryObjectui64v(_id: GLuint, _pname: GLenum, _params: [*c]GLuint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryObjectui64v, .{_id, _pname, _params});
}
pub fn getQueryObjecti64v(_id: GLuint, _pname: GLenum, _params: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryObjecti64v, .{_id, _pname, _params});
}
pub fn queryCounter(_id: GLuint, _target: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glQueryCounter, .{_id, _target});
}
pub fn getSamplerParameterIuiv(_sampler: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetSamplerParameterIuiv, .{_sampler, _pname, _params});
}
pub fn getSamplerParameterfv(_sampler: GLuint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetSamplerParameterfv, .{_sampler, _pname, _params});
}
pub fn getSamplerParameterIiv(_sampler: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetSamplerParameterIiv, .{_sampler, _pname, _params});
}
pub fn getSamplerParameteriv(_sampler: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetSamplerParameteriv, .{_sampler, _pname, _params});
}
pub fn samplerParameterIuiv(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glSamplerParameterIuiv, .{_sampler, _pname, _param});
}
pub fn samplerParameterIiv(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glSamplerParameterIiv, .{_sampler, _pname, _param});
}
pub fn samplerParameterfv(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glSamplerParameterfv, .{_sampler, _pname, _param});
}
pub fn samplerParameterf(_sampler: GLuint, _pname: GLenum, _param: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glSamplerParameterf, .{_sampler, _pname, _param});
}
pub fn samplerParameteriv(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glSamplerParameteriv, .{_sampler, _pname, _param});
}
pub fn samplerParameteri(_sampler: GLuint, _pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glSamplerParameteri, .{_sampler, _pname, _param});
}
pub fn bindSampler(_unit: GLuint, _sampler: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindSampler, .{_unit, _sampler});
}
pub fn isSampler(_sampler: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsSampler, .{_sampler});
}
pub fn deleteSamplers(_count: GLsizei, _samplers: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteSamplers, .{_count, _samplers});
}
pub fn genSamplers(_count: GLsizei, _samplers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenSamplers, .{_count, _samplers});
}
pub fn getFragDataIndex(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetFragDataIndex, .{_program, _name});
}
pub fn bindFragDataLocationIndexed(_program: GLuint, _colorNumber: GLuint, _index: GLuint, _name: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindFragDataLocationIndexed, .{_program, _colorNumber, _index, _name});
}
pub fn sampleMaski(_maskNumber: GLuint, _mask: GLbitfield) callconv(.C) void {
return @call(.always_tail, function_pointers.glSampleMaski, .{_maskNumber, _mask});
}
pub fn getMultisamplefv(_pname: GLenum, _index: GLuint, _val: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetMultisamplefv, .{_pname, _index, _val});
}
pub fn texImage3DMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexImage3DMultisample, .{_target, _samples, _internalformat, _width, _height, _depth, _fixedsamplelocations});
}
pub fn texImage2DMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexImage2DMultisample, .{_target, _samples, _internalformat, _width, _height, _fixedsamplelocations});
}
pub fn framebufferTexture(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferTexture, .{_target, _attachment, _texture, _level});
}
pub fn getBufferParameteri64v(_target: GLenum, _pname: GLenum, _params: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetBufferParameteri64v, .{_target, _pname, _params});
}
pub fn blendFuncSeparate(_sfactorRGB: GLenum, _dfactorRGB: GLenum, _sfactorAlpha: GLenum, _dfactorAlpha: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendFuncSeparate, .{_sfactorRGB, _dfactorRGB, _sfactorAlpha, _dfactorAlpha});
}
pub fn multiDrawArrays(_mode: GLenum, _first: [*c]const GLint, _count: [*c]const GLsizei, _drawcount: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glMultiDrawArrays, .{_mode, _first, _count, _drawcount});
}
pub fn multiDrawElements(_mode: GLenum, _count: [*c]const GLsizei, _type: GLenum, _indices: [*c]const ?*const anyopaque, _drawcount: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glMultiDrawElements, .{_mode, _count, _type, _indices, _drawcount});
}
pub fn pointParameterf(_pname: GLenum, _param: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glPointParameterf, .{_pname, _param});
}
pub fn pointParameterfv(_pname: GLenum, _params: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glPointParameterfv, .{_pname, _params});
}
pub fn pointParameteri(_pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glPointParameteri, .{_pname, _param});
}
pub fn pointParameteriv(_pname: GLenum, _params: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glPointParameteriv, .{_pname, _params});
}
pub fn getInteger64i_v(_target: GLenum, _index: GLuint, _data: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetInteger64i_v, .{_target, _index, _data});
}
pub fn getSynciv(_sync: GLsync, _pname: GLenum, _count: GLsizei, _length: [*c]GLsizei, _values: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetSynciv, .{_sync, _pname, _count, _length, _values});
}
pub fn getInteger64v(_pname: GLenum, _data: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetInteger64v, .{_pname, _data});
}
pub fn waitSync(_sync: GLsync, _flags: GLbitfield, _timeout: GLuint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glWaitSync, .{_sync, _flags, _timeout});
}
pub fn clientWaitSync(_sync: GLsync, _flags: GLbitfield, _timeout: GLuint64) callconv(.C) GLenum {
return @call(.always_tail, function_pointers.glClientWaitSync, .{_sync, _flags, _timeout});
}
pub fn deleteSync(_sync: GLsync) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteSync, .{_sync});
}
pub fn isSync(_sync: GLsync) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsSync, .{_sync});
}
pub fn fenceSync(_condition: GLenum, _flags: GLbitfield) callconv(.C) GLsync {
return @call(.always_tail, function_pointers.glFenceSync, .{_condition, _flags});
}
pub fn blendColor(_red: GLfloat, _green: GLfloat, _blue: GLfloat, _alpha: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendColor, .{_red, _green, _blue, _alpha});
}
pub fn blendEquation(_mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendEquation, .{_mode});
}
pub fn provokingVertex(_mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glProvokingVertex, .{_mode});
}
pub fn multiDrawElementsBaseVertex(_mode: GLenum, _count: [*c]const GLsizei, _type: GLenum, _indices: [*c]const ?*const anyopaque, _drawcount: GLsizei, _basevertex: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glMultiDrawElementsBaseVertex, .{_mode, _count, _type, _indices, _drawcount, _basevertex});
}
pub fn drawElementsInstancedBaseVertex(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei, _basevertex: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElementsInstancedBaseVertex, .{_mode, _count, _type, _indices, _instancecount, _basevertex});
}
pub fn drawRangeElementsBaseVertex(_mode: GLenum, _start: GLuint, _end: GLuint, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _basevertex: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawRangeElementsBaseVertex, .{_mode, _start, _end, _count, _type, _indices, _basevertex});
}
pub fn drawElementsBaseVertex(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _basevertex: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElementsBaseVertex, .{_mode, _count, _type, _indices, _basevertex});
}
pub fn genQueries(_n: GLsizei, _ids: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenQueries, .{_n, _ids});
}
pub fn deleteQueries(_n: GLsizei, _ids: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteQueries, .{_n, _ids});
}
pub fn isQuery(_id: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsQuery, .{_id});
}
pub fn beginQuery(_target: GLenum, _id: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBeginQuery, .{_target, _id});
}
pub fn endQuery(_target: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glEndQuery, .{_target});
}
pub fn getQueryiv(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryiv, .{_target, _pname, _params});
}
pub fn getQueryObjectiv(_id: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryObjectiv, .{_id, _pname, _params});
}
pub fn getQueryObjectuiv(_id: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryObjectuiv, .{_id, _pname, _params});
}
pub fn bindBuffer(_target: GLenum, _buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindBuffer, .{_target, _buffer});
}
pub fn deleteBuffers(_n: GLsizei, _buffers: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteBuffers, .{_n, _buffers});
}
pub fn genBuffers(_n: GLsizei, _buffers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenBuffers, .{_n, _buffers});
}
pub fn isBuffer(_buffer: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsBuffer, .{_buffer});
}
pub fn bufferData(_target: GLenum, _size: GLsizeiptr, _data: ?*const anyopaque, _usage: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBufferData, .{_target, _size, _data, _usage});
}
pub fn bufferSubData(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glBufferSubData, .{_target, _offset, _size, _data});
}
pub fn getBufferSubData(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr, _data: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetBufferSubData, .{_target, _offset, _size, _data});
}
pub fn mapBuffer(_target: GLenum, _access: GLenum) callconv(.C) ?*anyopaque {
return @call(.always_tail, function_pointers.glMapBuffer, .{_target, _access});
}
pub fn unmapBuffer(_target: GLenum) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glUnmapBuffer, .{_target});
}
pub fn getBufferParameteriv(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetBufferParameteriv, .{_target, _pname, _params});
}
pub fn getBufferPointerv(_target: GLenum, _pname: GLenum, _params: ?*?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetBufferPointerv, .{_target, _pname, _params});
}
pub fn blendEquationSeparate(_modeRGB: GLenum, _modeAlpha: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlendEquationSeparate, .{_modeRGB, _modeAlpha});
}
pub fn drawBuffers(_n: GLsizei, _bufs: [*c]const GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawBuffers, .{_n, _bufs});
}
pub fn stencilOpSeparate(_face: GLenum, _sfail: GLenum, _dpfail: GLenum, _dppass: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glStencilOpSeparate, .{_face, _sfail, _dpfail, _dppass});
}
pub fn stencilFuncSeparate(_face: GLenum, _func: GLenum, _ref: GLint, _mask: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glStencilFuncSeparate, .{_face, _func, _ref, _mask});
}
pub fn stencilMaskSeparate(_face: GLenum, _mask: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glStencilMaskSeparate, .{_face, _mask});
}
pub fn attachShader(_program: GLuint, _shader: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glAttachShader, .{_program, _shader});
}
pub fn bindAttribLocation(_program: GLuint, _index: GLuint, _name: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindAttribLocation, .{_program, _index, _name});
}
pub fn compileShader(_shader: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompileShader, .{_shader});
}
pub fn createProgram() callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glCreateProgram, .{});
}
pub fn createShader(_type: GLenum) callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glCreateShader, .{_type});
}
pub fn deleteProgram(_program: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteProgram, .{_program});
}
pub fn deleteShader(_shader: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteShader, .{_shader});
}
pub fn detachShader(_program: GLuint, _shader: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDetachShader, .{_program, _shader});
}
pub fn disableVertexAttribArray(_index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDisableVertexAttribArray, .{_index});
}
pub fn enableVertexAttribArray(_index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glEnableVertexAttribArray, .{_index});
}
pub fn getActiveAttrib(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _size: [*c]GLint, _type: [*c]GLenum, _name: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveAttrib, .{_program, _index, _bufSize, _length, _size, _type, _name});
}
pub fn getActiveUniform(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _size: [*c]GLint, _type: [*c]GLenum, _name: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveUniform, .{_program, _index, _bufSize, _length, _size, _type, _name});
}
pub fn getAttachedShaders(_program: GLuint, _maxCount: GLsizei, _count: [*c]GLsizei, _shaders: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetAttachedShaders, .{_program, _maxCount, _count, _shaders});
}
pub fn getAttribLocation(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetAttribLocation, .{_program, _name});
}
pub fn getProgramiv(_program: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramiv, .{_program, _pname, _params});
}
pub fn getProgramInfoLog(_program: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _infoLog: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetProgramInfoLog, .{_program, _bufSize, _length, _infoLog});
}
pub fn getShaderiv(_shader: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetShaderiv, .{_shader, _pname, _params});
}
pub fn getShaderInfoLog(_shader: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _infoLog: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetShaderInfoLog, .{_shader, _bufSize, _length, _infoLog});
}
pub fn getShaderSource(_shader: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _source: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetShaderSource, .{_shader, _bufSize, _length, _source});
}
pub fn getUniformLocation(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetUniformLocation, .{_program, _name});
}
pub fn getUniformfv(_program: GLuint, _location: GLint, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetUniformfv, .{_program, _location, _params});
}
pub fn getUniformiv(_program: GLuint, _location: GLint, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetUniformiv, .{_program, _location, _params});
}
pub fn getVertexAttribdv(_index: GLuint, _pname: GLenum, _params: [*c]GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribdv, .{_index, _pname, _params});
}
pub fn getVertexAttribfv(_index: GLuint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribfv, .{_index, _pname, _params});
}
pub fn getVertexAttribiv(_index: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribiv, .{_index, _pname, _params});
}
pub fn getVertexAttribPointerv(_index: GLuint, _pname: GLenum, _pointer: ?*?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribPointerv, .{_index, _pname, _pointer});
}
pub fn isProgram(_program: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsProgram, .{_program});
}
pub fn isShader(_shader: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsShader, .{_shader});
}
pub fn linkProgram(_program: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glLinkProgram, .{_program});
}
pub fn shaderSource(_shader: GLuint, _count: GLsizei, _string: [*c]const [*c]const GLchar, _length: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glShaderSource, .{_shader, _count, _string, _length});
}
pub fn useProgram(_program: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUseProgram, .{_program});
}
pub fn uniform1f(_location: GLint, _v0: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1f, .{_location, _v0});
}
pub fn uniform2f(_location: GLint, _v0: GLfloat, _v1: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2f, .{_location, _v0, _v1});
}
pub fn uniform3f(_location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3f, .{_location, _v0, _v1, _v2});
}
pub fn uniform4f(_location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat, _v3: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4f, .{_location, _v0, _v1, _v2, _v3});
}
pub fn uniform1i(_location: GLint, _v0: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1i, .{_location, _v0});
}
pub fn uniform2i(_location: GLint, _v0: GLint, _v1: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2i, .{_location, _v0, _v1});
}
pub fn uniform3i(_location: GLint, _v0: GLint, _v1: GLint, _v2: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3i, .{_location, _v0, _v1, _v2});
}
pub fn uniform4i(_location: GLint, _v0: GLint, _v1: GLint, _v2: GLint, _v3: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4i, .{_location, _v0, _v1, _v2, _v3});
}
pub fn uniform1fv(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1fv, .{_location, _count, _value});
}
pub fn uniform2fv(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2fv, .{_location, _count, _value});
}
pub fn uniform3fv(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3fv, .{_location, _count, _value});
}
pub fn uniform4fv(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4fv, .{_location, _count, _value});
}
pub fn uniform1iv(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1iv, .{_location, _count, _value});
}
pub fn uniform2iv(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2iv, .{_location, _count, _value});
}
pub fn uniform3iv(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3iv, .{_location, _count, _value});
}
pub fn uniform4iv(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4iv, .{_location, _count, _value});
}
pub fn uniformMatrix2fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix2fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix3fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix3fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix4fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix4fv, .{_location, _count, _transpose, _value});
}
pub fn validateProgram(_program: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glValidateProgram, .{_program});
}
pub fn vertexAttrib1d(_index: GLuint, _x: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib1d, .{_index, _x});
}
pub fn vertexAttrib1dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib1dv, .{_index, _v});
}
pub fn vertexAttrib1f(_index: GLuint, _x: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib1f, .{_index, _x});
}
pub fn vertexAttrib1fv(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib1fv, .{_index, _v});
}
pub fn vertexAttrib1s(_index: GLuint, _x: GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib1s, .{_index, _x});
}
pub fn vertexAttrib1sv(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib1sv, .{_index, _v});
}
pub fn vertexAttrib2d(_index: GLuint, _x: GLdouble, _y: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib2d, .{_index, _x, _y});
}
pub fn vertexAttrib2dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib2dv, .{_index, _v});
}
pub fn vertexAttrib2f(_index: GLuint, _x: GLfloat, _y: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib2f, .{_index, _x, _y});
}
pub fn vertexAttrib2fv(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib2fv, .{_index, _v});
}
pub fn vertexAttrib2s(_index: GLuint, _x: GLshort, _y: GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib2s, .{_index, _x, _y});
}
pub fn vertexAttrib2sv(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib2sv, .{_index, _v});
}
pub fn vertexAttrib3d(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib3d, .{_index, _x, _y, _z});
}
pub fn vertexAttrib3dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib3dv, .{_index, _v});
}
pub fn vertexAttrib3f(_index: GLuint, _x: GLfloat, _y: GLfloat, _z: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib3f, .{_index, _x, _y, _z});
}
pub fn vertexAttrib3fv(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib3fv, .{_index, _v});
}
pub fn vertexAttrib3s(_index: GLuint, _x: GLshort, _y: GLshort, _z: GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib3s, .{_index, _x, _y, _z});
}
pub fn vertexAttrib3sv(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib3sv, .{_index, _v});
}
pub fn vertexAttrib4Nbv(_index: GLuint, _v: [*c]const GLbyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Nbv, .{_index, _v});
}
pub fn vertexAttrib4Niv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Niv, .{_index, _v});
}
pub fn vertexAttrib4Nsv(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Nsv, .{_index, _v});
}
pub fn vertexAttrib4Nub(_index: GLuint, _x: GLubyte, _y: GLubyte, _z: GLubyte, _w: GLubyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Nub, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttrib4Nubv(_index: GLuint, _v: ?[*:0]const GLubyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Nubv, .{_index, _v});
}
pub fn vertexAttrib4Nuiv(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Nuiv, .{_index, _v});
}
pub fn vertexAttrib4Nusv(_index: GLuint, _v: [*c]const GLushort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4Nusv, .{_index, _v});
}
pub fn vertexAttrib4bv(_index: GLuint, _v: [*c]const GLbyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4bv, .{_index, _v});
}
pub fn vertexAttrib4d(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4d, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttrib4dv(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4dv, .{_index, _v});
}
pub fn vertexAttrib4f(_index: GLuint, _x: GLfloat, _y: GLfloat, _z: GLfloat, _w: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4f, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttrib4fv(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4fv, .{_index, _v});
}
pub fn vertexAttrib4iv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4iv, .{_index, _v});
}
pub fn vertexAttrib4s(_index: GLuint, _x: GLshort, _y: GLshort, _z: GLshort, _w: GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4s, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttrib4sv(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4sv, .{_index, _v});
}
pub fn vertexAttrib4ubv(_index: GLuint, _v: ?[*:0]const GLubyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4ubv, .{_index, _v});
}
pub fn vertexAttrib4uiv(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4uiv, .{_index, _v});
}
pub fn vertexAttrib4usv(_index: GLuint, _v: [*c]const GLushort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttrib4usv, .{_index, _v});
}
pub fn vertexAttribPointer(_index: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _stride: GLsizei, _pointer: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribPointer, .{_index, _size, _type, _normalized, _stride, _pointer});
}
pub fn uniformMatrix2x3fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix2x3fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix3x2fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix3x2fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix2x4fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix2x4fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix4x2fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix4x2fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix3x4fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix3x4fv, .{_location, _count, _transpose, _value});
}
pub fn uniformMatrix4x3fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformMatrix4x3fv, .{_location, _count, _transpose, _value});
}
pub fn colorMaski(_index: GLuint, _r: GLboolean, _g: GLboolean, _b: GLboolean, _a: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glColorMaski, .{_index, _r, _g, _b, _a});
}
pub fn getBooleani_v(_target: GLenum, _index: GLuint, _data: [*c]GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetBooleani_v, .{_target, _index, _data});
}
pub fn getIntegeri_v(_target: GLenum, _index: GLuint, _data: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetIntegeri_v, .{_target, _index, _data});
}
pub fn enablei(_target: GLenum, _index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glEnablei, .{_target, _index});
}
pub fn disablei(_target: GLenum, _index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDisablei, .{_target, _index});
}
pub fn isEnabledi(_target: GLenum, _index: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsEnabledi, .{_target, _index});
}
pub fn beginTransformFeedback(_primitiveMode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBeginTransformFeedback, .{_primitiveMode});
}
pub fn endTransformFeedback() callconv(.C) void {
return @call(.always_tail, function_pointers.glEndTransformFeedback, .{});
}
pub fn bindBufferRange(_target: GLenum, _index: GLuint, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindBufferRange, .{_target, _index, _buffer, _offset, _size});
}
pub fn bindBufferBase(_target: GLenum, _index: GLuint, _buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindBufferBase, .{_target, _index, _buffer});
}
pub fn transformFeedbackVaryings(_program: GLuint, _count: GLsizei, _varyings: [*c]const [*c]const GLchar, _bufferMode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glTransformFeedbackVaryings, .{_program, _count, _varyings, _bufferMode});
}
pub fn getTransformFeedbackVarying(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _size: [*c]GLsizei, _type: [*c]GLenum, _name: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTransformFeedbackVarying, .{_program, _index, _bufSize, _length, _size, _type, _name});
}
pub fn clampColor(_target: GLenum, _clamp: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glClampColor, .{_target, _clamp});
}
pub fn beginConditionalRender(_id: GLuint, _mode: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBeginConditionalRender, .{_id, _mode});
}
pub fn endConditionalRender() callconv(.C) void {
return @call(.always_tail, function_pointers.glEndConditionalRender, .{});
}
pub fn vertexAttribIPointer(_index: GLuint, _size: GLint, _type: GLenum, _stride: GLsizei, _pointer: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribIPointer, .{_index, _size, _type, _stride, _pointer});
}
pub fn getVertexAttribIiv(_index: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribIiv, .{_index, _pname, _params});
}
pub fn getVertexAttribIuiv(_index: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexAttribIuiv, .{_index, _pname, _params});
}
pub fn vertexAttribI1i(_index: GLuint, _x: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI1i, .{_index, _x});
}
pub fn vertexAttribI2i(_index: GLuint, _x: GLint, _y: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI2i, .{_index, _x, _y});
}
pub fn vertexAttribI3i(_index: GLuint, _x: GLint, _y: GLint, _z: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI3i, .{_index, _x, _y, _z});
}
pub fn vertexAttribI4i(_index: GLuint, _x: GLint, _y: GLint, _z: GLint, _w: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4i, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttribI1ui(_index: GLuint, _x: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI1ui, .{_index, _x});
}
pub fn vertexAttribI2ui(_index: GLuint, _x: GLuint, _y: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI2ui, .{_index, _x, _y});
}
pub fn vertexAttribI3ui(_index: GLuint, _x: GLuint, _y: GLuint, _z: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI3ui, .{_index, _x, _y, _z});
}
pub fn vertexAttribI4ui(_index: GLuint, _x: GLuint, _y: GLuint, _z: GLuint, _w: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4ui, .{_index, _x, _y, _z, _w});
}
pub fn vertexAttribI1iv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI1iv, .{_index, _v});
}
pub fn vertexAttribI2iv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI2iv, .{_index, _v});
}
pub fn vertexAttribI3iv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI3iv, .{_index, _v});
}
pub fn vertexAttribI4iv(_index: GLuint, _v: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4iv, .{_index, _v});
}
pub fn vertexAttribI1uiv(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI1uiv, .{_index, _v});
}
pub fn vertexAttribI2uiv(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI2uiv, .{_index, _v});
}
pub fn vertexAttribI3uiv(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI3uiv, .{_index, _v});
}
pub fn vertexAttribI4uiv(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4uiv, .{_index, _v});
}
pub fn vertexAttribI4bv(_index: GLuint, _v: [*c]const GLbyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4bv, .{_index, _v});
}
pub fn vertexAttribI4sv(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4sv, .{_index, _v});
}
pub fn vertexAttribI4ubv(_index: GLuint, _v: ?[*:0]const GLubyte) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4ubv, .{_index, _v});
}
pub fn vertexAttribI4usv(_index: GLuint, _v: [*c]const GLushort) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribI4usv, .{_index, _v});
}
pub fn getUniformuiv(_program: GLuint, _location: GLint, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetUniformuiv, .{_program, _location, _params});
}
pub fn bindFragDataLocation(_program: GLuint, _color: GLuint, _name: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindFragDataLocation, .{_program, _color, _name});
}
pub fn getFragDataLocation(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint {
return @call(.always_tail, function_pointers.glGetFragDataLocation, .{_program, _name});
}
pub fn uniform1ui(_location: GLint, _v0: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1ui, .{_location, _v0});
}
pub fn uniform2ui(_location: GLint, _v0: GLuint, _v1: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2ui, .{_location, _v0, _v1});
}
pub fn uniform3ui(_location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3ui, .{_location, _v0, _v1, _v2});
}
pub fn uniform4ui(_location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint, _v3: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4ui, .{_location, _v0, _v1, _v2, _v3});
}
pub fn uniform1uiv(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform1uiv, .{_location, _count, _value});
}
pub fn uniform2uiv(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform2uiv, .{_location, _count, _value});
}
pub fn uniform3uiv(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform3uiv, .{_location, _count, _value});
}
pub fn uniform4uiv(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniform4uiv, .{_location, _count, _value});
}
pub fn texParameterIiv(_target: GLenum, _pname: GLenum, _params: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexParameterIiv, .{_target, _pname, _params});
}
pub fn texParameterIuiv(_target: GLenum, _pname: GLenum, _params: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexParameterIuiv, .{_target, _pname, _params});
}
pub fn getTexParameterIiv(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexParameterIiv, .{_target, _pname, _params});
}
pub fn getTexParameterIuiv(_target: GLenum, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTexParameterIuiv, .{_target, _pname, _params});
}
pub fn clearBufferiv(_buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearBufferiv, .{_buffer, _drawbuffer, _value});
}
pub fn clearBufferuiv(_buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearBufferuiv, .{_buffer, _drawbuffer, _value});
}
pub fn clearBufferfv(_buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearBufferfv, .{_buffer, _drawbuffer, _value});
}
pub fn clearBufferfi(_buffer: GLenum, _drawbuffer: GLint, _depth: GLfloat, _stencil: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearBufferfi, .{_buffer, _drawbuffer, _depth, _stencil});
}
pub fn getStringi(_name: GLenum, _index: GLuint) callconv(.C) ?[*:0]const GLubyte {
return @call(.always_tail, function_pointers.glGetStringi, .{_name, _index});
}
pub fn isRenderbuffer(_renderbuffer: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsRenderbuffer, .{_renderbuffer});
}
pub fn bindRenderbuffer(_target: GLenum, _renderbuffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindRenderbuffer, .{_target, _renderbuffer});
}
pub fn deleteRenderbuffers(_n: GLsizei, _renderbuffers: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteRenderbuffers, .{_n, _renderbuffers});
}
pub fn genRenderbuffers(_n: GLsizei, _renderbuffers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenRenderbuffers, .{_n, _renderbuffers});
}
pub fn renderbufferStorage(_target: GLenum, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glRenderbufferStorage, .{_target, _internalformat, _width, _height});
}
pub fn getRenderbufferParameteriv(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetRenderbufferParameteriv, .{_target, _pname, _params});
}
pub fn isFramebuffer(_framebuffer: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsFramebuffer, .{_framebuffer});
}
pub fn bindFramebuffer(_target: GLenum, _framebuffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindFramebuffer, .{_target, _framebuffer});
}
pub fn deleteFramebuffers(_n: GLsizei, _framebuffers: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteFramebuffers, .{_n, _framebuffers});
}
pub fn genFramebuffers(_n: GLsizei, _framebuffers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenFramebuffers, .{_n, _framebuffers});
}
pub fn checkFramebufferStatus(_target: GLenum) callconv(.C) GLenum {
return @call(.always_tail, function_pointers.glCheckFramebufferStatus, .{_target});
}
pub fn framebufferTexture1D(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferTexture1D, .{_target, _attachment, _textarget, _texture, _level});
}
pub fn framebufferTexture2D(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferTexture2D, .{_target, _attachment, _textarget, _texture, _level});
}
pub fn framebufferTexture3D(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint, _zoffset: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferTexture3D, .{_target, _attachment, _textarget, _texture, _level, _zoffset});
}
pub fn framebufferRenderbuffer(_target: GLenum, _attachment: GLenum, _renderbuffertarget: GLenum, _renderbuffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferRenderbuffer, .{_target, _attachment, _renderbuffertarget, _renderbuffer});
}
pub fn getFramebufferAttachmentParameteriv(_target: GLenum, _attachment: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetFramebufferAttachmentParameteriv, .{_target, _attachment, _pname, _params});
}
pub fn generateMipmap(_target: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenerateMipmap, .{_target});
}
pub fn blitFramebuffer(_srcX0: GLint, _srcY0: GLint, _srcX1: GLint, _srcY1: GLint, _dstX0: GLint, _dstY0: GLint, _dstX1: GLint, _dstY1: GLint, _mask: GLbitfield, _filter: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlitFramebuffer, .{_srcX0, _srcY0, _srcX1, _srcY1, _dstX0, _dstY0, _dstX1, _dstY1, _mask, _filter});
}
pub fn renderbufferStorageMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glRenderbufferStorageMultisample, .{_target, _samples, _internalformat, _width, _height});
}
pub fn framebufferTextureLayer(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint, _layer: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glFramebufferTextureLayer, .{_target, _attachment, _texture, _level, _layer});
}
pub fn mapBufferRange(_target: GLenum, _offset: GLintptr, _length: GLsizeiptr, _access: GLbitfield) callconv(.C) ?*anyopaque {
return @call(.always_tail, function_pointers.glMapBufferRange, .{_target, _offset, _length, _access});
}
pub fn flushMappedBufferRange(_target: GLenum, _offset: GLintptr, _length: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glFlushMappedBufferRange, .{_target, _offset, _length});
}
pub fn bindVertexArray(_array: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindVertexArray, .{_array});
}
pub fn deleteVertexArrays(_n: GLsizei, _arrays: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDeleteVertexArrays, .{_n, _arrays});
}
pub fn genVertexArrays(_n: GLsizei, _arrays: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenVertexArrays, .{_n, _arrays});
}
pub fn isVertexArray(_array: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glIsVertexArray, .{_array});
}
pub fn drawArraysInstanced(_mode: GLenum, _first: GLint, _count: GLsizei, _instancecount: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawArraysInstanced, .{_mode, _first, _count, _instancecount});
}
pub fn drawElementsInstanced(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glDrawElementsInstanced, .{_mode, _count, _type, _indices, _instancecount});
}
pub fn texBuffer(_target: GLenum, _internalformat: GLenum, _buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexBuffer, .{_target, _internalformat, _buffer});
}
pub fn primitiveRestartIndex(_index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glPrimitiveRestartIndex, .{_index});
}
pub fn copyBufferSubData(_readTarget: GLenum, _writeTarget: GLenum, _readOffset: GLintptr, _writeOffset: GLintptr, _size: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyBufferSubData, .{_readTarget, _writeTarget, _readOffset, _writeOffset, _size});
}
pub fn getUniformIndices(_program: GLuint, _uniformCount: GLsizei, _uniformNames: [*c]const [*c]const GLchar, _uniformIndices: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetUniformIndices, .{_program, _uniformCount, _uniformNames, _uniformIndices});
}
pub fn getActiveUniformsiv(_program: GLuint, _uniformCount: GLsizei, _uniformIndices: [*c]const GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveUniformsiv, .{_program, _uniformCount, _uniformIndices, _pname, _params});
}
pub fn getActiveUniformName(_program: GLuint, _uniformIndex: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _uniformName: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveUniformName, .{_program, _uniformIndex, _bufSize, _length, _uniformName});
}
pub fn getUniformBlockIndex(_program: GLuint, _uniformBlockName: [*c]const GLchar) callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glGetUniformBlockIndex, .{_program, _uniformBlockName});
}
pub fn getActiveUniformBlockiv(_program: GLuint, _uniformBlockIndex: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveUniformBlockiv, .{_program, _uniformBlockIndex, _pname, _params});
}
pub fn getActiveUniformBlockName(_program: GLuint, _uniformBlockIndex: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _uniformBlockName: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetActiveUniformBlockName, .{_program, _uniformBlockIndex, _bufSize, _length, _uniformBlockName});
}
pub fn uniformBlockBinding(_program: GLuint, _uniformBlockIndex: GLuint, _uniformBlockBinding: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glUniformBlockBinding, .{_program, _uniformBlockIndex, _uniformBlockBinding});
}
pub fn texStorage3DMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glTexStorage3DMultisample, .{_target, _samples, _internalformat, _width, _height, _depth, _fixedsamplelocations});
}
pub fn textureView(_texture: GLuint, _target: GLenum, _origtexture: GLuint, _internalformat: GLenum, _minlevel: GLuint, _numlevels: GLuint, _minlayer: GLuint, _numlayers: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureView, .{_texture, _target, _origtexture, _internalformat, _minlevel, _numlevels, _minlayer, _numlayers});
}
pub fn bindVertexBuffer(_bindingindex: GLuint, _buffer: GLuint, _offset: GLintptr, _stride: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindVertexBuffer, .{_bindingindex, _buffer, _offset, _stride});
}
pub fn vertexAttribFormat(_attribindex: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _relativeoffset: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribFormat, .{_attribindex, _size, _type, _normalized, _relativeoffset});
}
pub fn vertexAttribIFormat(_attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribIFormat, .{_attribindex, _size, _type, _relativeoffset});
}
pub fn vertexAttribLFormat(_attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribLFormat, .{_attribindex, _size, _type, _relativeoffset});
}
pub fn vertexAttribBinding(_attribindex: GLuint, _bindingindex: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexAttribBinding, .{_attribindex, _bindingindex});
}
pub fn vertexBindingDivisor(_bindingindex: GLuint, _divisor: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexBindingDivisor, .{_bindingindex, _divisor});
}
pub fn debugMessageControl(_source: GLenum, _type: GLenum, _severity: GLenum, _count: GLsizei, _ids: [*c]const GLuint, _enabled: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glDebugMessageControl, .{_source, _type, _severity, _count, _ids, _enabled});
}
pub fn debugMessageInsert(_source: GLenum, _type: GLenum, _id: GLuint, _severity: GLenum, _length: GLsizei, _buf: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glDebugMessageInsert, .{_source, _type, _id, _severity, _length, _buf});
}
pub fn debugMessageCallback(_callback: GLDEBUGPROC, _userParam: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glDebugMessageCallback, .{_callback, _userParam});
}
pub fn getDebugMessageLog(_count: GLuint, _bufSize: GLsizei, _sources: [*c]GLenum, _types: [*c]GLenum, _ids: [*c]GLuint, _severities: [*c]GLenum, _lengths: [*c]GLsizei, _messageLog: [*c]GLchar) callconv(.C) GLuint {
return @call(.always_tail, function_pointers.glGetDebugMessageLog, .{_count, _bufSize, _sources, _types, _ids, _severities, _lengths, _messageLog});
}
pub fn pushDebugGroup(_source: GLenum, _id: GLuint, _length: GLsizei, _message: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glPushDebugGroup, .{_source, _id, _length, _message});
}
pub fn popDebugGroup() callconv(.C) void {
return @call(.always_tail, function_pointers.glPopDebugGroup, .{});
}
pub fn objectLabel(_identifier: GLenum, _name: GLuint, _length: GLsizei, _label: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glObjectLabel, .{_identifier, _name, _length, _label});
}
pub fn getObjectLabel(_identifier: GLenum, _name: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _label: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetObjectLabel, .{_identifier, _name, _bufSize, _length, _label});
}
pub fn objectPtrLabel(_ptr: ?*const anyopaque, _length: GLsizei, _label: [*c]const GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glObjectPtrLabel, .{_ptr, _length, _label});
}
pub fn getObjectPtrLabel(_ptr: ?*const anyopaque, _bufSize: GLsizei, _length: [*c]GLsizei, _label: [*c]GLchar) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetObjectPtrLabel, .{_ptr, _bufSize, _length, _label});
}
pub fn getPointerv(_pname: GLenum, _params: ?*?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetPointerv, .{_pname, _params});
}
pub fn bufferStorage(_target: GLenum, _size: GLsizeiptr, _data: ?*const anyopaque, _flags: GLbitfield) callconv(.C) void {
return @call(.always_tail, function_pointers.glBufferStorage, .{_target, _size, _data, _flags});
}
pub fn clearTexImage(_texture: GLuint, _level: GLint, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearTexImage, .{_texture, _level, _format, _type, _data});
}
pub fn clearTexSubImage(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearTexSubImage, .{_texture, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _format, _type, _data});
}
pub fn bindBuffersBase(_target: GLenum, _first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindBuffersBase, .{_target, _first, _count, _buffers});
}
pub fn bindBuffersRange(_target: GLenum, _first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint, _offsets: [*c]const GLintptr, _sizes: [*c]const GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindBuffersRange, .{_target, _first, _count, _buffers, _offsets, _sizes});
}
pub fn bindTextures(_first: GLuint, _count: GLsizei, _textures: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindTextures, .{_first, _count, _textures});
}
pub fn bindSamplers(_first: GLuint, _count: GLsizei, _samplers: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindSamplers, .{_first, _count, _samplers});
}
pub fn bindImageTextures(_first: GLuint, _count: GLsizei, _textures: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindImageTextures, .{_first, _count, _textures});
}
pub fn bindVertexBuffers(_first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint, _offsets: [*c]const GLintptr, _strides: [*c]const GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindVertexBuffers, .{_first, _count, _buffers, _offsets, _strides});
}
pub fn clipControl(_origin: GLenum, _depth: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glClipControl, .{_origin, _depth});
}
pub fn createTransformFeedbacks(_n: GLsizei, _ids: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateTransformFeedbacks, .{_n, _ids});
}
pub fn transformFeedbackBufferBase(_xfb: GLuint, _index: GLuint, _buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTransformFeedbackBufferBase, .{_xfb, _index, _buffer});
}
pub fn transformFeedbackBufferRange(_xfb: GLuint, _index: GLuint, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glTransformFeedbackBufferRange, .{_xfb, _index, _buffer, _offset, _size});
}
pub fn getTransformFeedbackiv(_xfb: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTransformFeedbackiv, .{_xfb, _pname, _param});
}
pub fn getTransformFeedbacki_v(_xfb: GLuint, _pname: GLenum, _index: GLuint, _param: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTransformFeedbacki_v, .{_xfb, _pname, _index, _param});
}
pub fn getTransformFeedbacki64_v(_xfb: GLuint, _pname: GLenum, _index: GLuint, _param: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTransformFeedbacki64_v, .{_xfb, _pname, _index, _param});
}
pub fn createBuffers(_n: GLsizei, _buffers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateBuffers, .{_n, _buffers});
}
pub fn namedBufferStorage(_buffer: GLuint, _size: GLsizeiptr, _data: ?*const anyopaque, _flags: GLbitfield) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedBufferStorage, .{_buffer, _size, _data, _flags});
}
pub fn namedBufferData(_buffer: GLuint, _size: GLsizeiptr, _data: ?*const anyopaque, _usage: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedBufferData, .{_buffer, _size, _data, _usage});
}
pub fn namedBufferSubData(_buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedBufferSubData, .{_buffer, _offset, _size, _data});
}
pub fn copyNamedBufferSubData(_readBuffer: GLuint, _writeBuffer: GLuint, _readOffset: GLintptr, _writeOffset: GLintptr, _size: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyNamedBufferSubData, .{_readBuffer, _writeBuffer, _readOffset, _writeOffset, _size});
}
pub fn clearNamedBufferData(_buffer: GLuint, _internalformat: GLenum, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearNamedBufferData, .{_buffer, _internalformat, _format, _type, _data});
}
pub fn clearNamedBufferSubData(_buffer: GLuint, _internalformat: GLenum, _offset: GLintptr, _size: GLsizeiptr, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearNamedBufferSubData, .{_buffer, _internalformat, _offset, _size, _format, _type, _data});
}
pub fn mapNamedBuffer(_buffer: GLuint, _access: GLenum) callconv(.C) ?*anyopaque {
return @call(.always_tail, function_pointers.glMapNamedBuffer, .{_buffer, _access});
}
pub fn mapNamedBufferRange(_buffer: GLuint, _offset: GLintptr, _length: GLsizeiptr, _access: GLbitfield) callconv(.C) ?*anyopaque {
return @call(.always_tail, function_pointers.glMapNamedBufferRange, .{_buffer, _offset, _length, _access});
}
pub fn unmapNamedBuffer(_buffer: GLuint) callconv(.C) GLboolean {
return @call(.always_tail, function_pointers.glUnmapNamedBuffer, .{_buffer});
}
pub fn flushMappedNamedBufferRange(_buffer: GLuint, _offset: GLintptr, _length: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glFlushMappedNamedBufferRange, .{_buffer, _offset, _length});
}
pub fn getNamedBufferParameteriv(_buffer: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedBufferParameteriv, .{_buffer, _pname, _params});
}
pub fn getNamedBufferParameteri64v(_buffer: GLuint, _pname: GLenum, _params: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedBufferParameteri64v, .{_buffer, _pname, _params});
}
pub fn getNamedBufferPointerv(_buffer: GLuint, _pname: GLenum, _params: ?*?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedBufferPointerv, .{_buffer, _pname, _params});
}
pub fn getNamedBufferSubData(_buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr, _data: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedBufferSubData, .{_buffer, _offset, _size, _data});
}
pub fn createFramebuffers(_n: GLsizei, _framebuffers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateFramebuffers, .{_n, _framebuffers});
}
pub fn namedFramebufferRenderbuffer(_framebuffer: GLuint, _attachment: GLenum, _renderbuffertarget: GLenum, _renderbuffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferRenderbuffer, .{_framebuffer, _attachment, _renderbuffertarget, _renderbuffer});
}
pub fn namedFramebufferParameteri(_framebuffer: GLuint, _pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferParameteri, .{_framebuffer, _pname, _param});
}
pub fn namedFramebufferTexture(_framebuffer: GLuint, _attachment: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferTexture, .{_framebuffer, _attachment, _texture, _level});
}
pub fn namedFramebufferTextureLayer(_framebuffer: GLuint, _attachment: GLenum, _texture: GLuint, _level: GLint, _layer: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferTextureLayer, .{_framebuffer, _attachment, _texture, _level, _layer});
}
pub fn namedFramebufferDrawBuffer(_framebuffer: GLuint, _buf: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferDrawBuffer, .{_framebuffer, _buf});
}
pub fn namedFramebufferDrawBuffers(_framebuffer: GLuint, _n: GLsizei, _bufs: [*c]const GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferDrawBuffers, .{_framebuffer, _n, _bufs});
}
pub fn namedFramebufferReadBuffer(_framebuffer: GLuint, _src: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedFramebufferReadBuffer, .{_framebuffer, _src});
}
pub fn invalidateNamedFramebufferData(_framebuffer: GLuint, _numAttachments: GLsizei, _attachments: [*c]const GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateNamedFramebufferData, .{_framebuffer, _numAttachments, _attachments});
}
pub fn invalidateNamedFramebufferSubData(_framebuffer: GLuint, _numAttachments: GLsizei, _attachments: [*c]const GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glInvalidateNamedFramebufferSubData, .{_framebuffer, _numAttachments, _attachments, _x, _y, _width, _height});
}
pub fn clearNamedFramebufferiv(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearNamedFramebufferiv, .{_framebuffer, _buffer, _drawbuffer, _value});
}
pub fn clearNamedFramebufferuiv(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearNamedFramebufferuiv, .{_framebuffer, _buffer, _drawbuffer, _value});
}
pub fn clearNamedFramebufferfv(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearNamedFramebufferfv, .{_framebuffer, _buffer, _drawbuffer, _value});
}
pub fn clearNamedFramebufferfi(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _depth: GLfloat, _stencil: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glClearNamedFramebufferfi, .{_framebuffer, _buffer, _drawbuffer, _depth, _stencil});
}
pub fn blitNamedFramebuffer(_readFramebuffer: GLuint, _drawFramebuffer: GLuint, _srcX0: GLint, _srcY0: GLint, _srcX1: GLint, _srcY1: GLint, _dstX0: GLint, _dstY0: GLint, _dstX1: GLint, _dstY1: GLint, _mask: GLbitfield, _filter: GLenum) callconv(.C) void {
return @call(.always_tail, function_pointers.glBlitNamedFramebuffer, .{_readFramebuffer, _drawFramebuffer, _srcX0, _srcY0, _srcX1, _srcY1, _dstX0, _dstY0, _dstX1, _dstY1, _mask, _filter});
}
pub fn checkNamedFramebufferStatus(_framebuffer: GLuint, _target: GLenum) callconv(.C) GLenum {
return @call(.always_tail, function_pointers.glCheckNamedFramebufferStatus, .{_framebuffer, _target});
}
pub fn getNamedFramebufferParameteriv(_framebuffer: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedFramebufferParameteriv, .{_framebuffer, _pname, _param});
}
pub fn getNamedFramebufferAttachmentParameteriv(_framebuffer: GLuint, _attachment: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedFramebufferAttachmentParameteriv, .{_framebuffer, _attachment, _pname, _params});
}
pub fn createRenderbuffers(_n: GLsizei, _renderbuffers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateRenderbuffers, .{_n, _renderbuffers});
}
pub fn namedRenderbufferStorage(_renderbuffer: GLuint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedRenderbufferStorage, .{_renderbuffer, _internalformat, _width, _height});
}
pub fn namedRenderbufferStorageMultisample(_renderbuffer: GLuint, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glNamedRenderbufferStorageMultisample, .{_renderbuffer, _samples, _internalformat, _width, _height});
}
pub fn getNamedRenderbufferParameteriv(_renderbuffer: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetNamedRenderbufferParameteriv, .{_renderbuffer, _pname, _params});
}
pub fn createTextures(_target: GLenum, _n: GLsizei, _textures: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateTextures, .{_target, _n, _textures});
}
pub fn textureBuffer(_texture: GLuint, _internalformat: GLenum, _buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureBuffer, .{_texture, _internalformat, _buffer});
}
pub fn textureBufferRange(_texture: GLuint, _internalformat: GLenum, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureBufferRange, .{_texture, _internalformat, _buffer, _offset, _size});
}
pub fn textureStorage1D(_texture: GLuint, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureStorage1D, .{_texture, _levels, _internalformat, _width});
}
pub fn textureStorage2D(_texture: GLuint, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureStorage2D, .{_texture, _levels, _internalformat, _width, _height});
}
pub fn textureStorage3D(_texture: GLuint, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureStorage3D, .{_texture, _levels, _internalformat, _width, _height, _depth});
}
pub fn textureStorage2DMultisample(_texture: GLuint, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureStorage2DMultisample, .{_texture, _samples, _internalformat, _width, _height, _fixedsamplelocations});
}
pub fn textureStorage3DMultisample(_texture: GLuint, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureStorage3DMultisample, .{_texture, _samples, _internalformat, _width, _height, _depth, _fixedsamplelocations});
}
pub fn textureSubImage1D(_texture: GLuint, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureSubImage1D, .{_texture, _level, _xoffset, _width, _format, _type, _pixels});
}
pub fn textureSubImage2D(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureSubImage2D, .{_texture, _level, _xoffset, _yoffset, _width, _height, _format, _type, _pixels});
}
pub fn textureSubImage3D(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureSubImage3D, .{_texture, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _format, _type, _pixels});
}
pub fn compressedTextureSubImage1D(_texture: GLuint, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTextureSubImage1D, .{_texture, _level, _xoffset, _width, _format, _imageSize, _data});
}
pub fn compressedTextureSubImage2D(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTextureSubImage2D, .{_texture, _level, _xoffset, _yoffset, _width, _height, _format, _imageSize, _data});
}
pub fn compressedTextureSubImage3D(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glCompressedTextureSubImage3D, .{_texture, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _format, _imageSize, _data});
}
pub fn copyTextureSubImage1D(_texture: GLuint, _level: GLint, _xoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTextureSubImage1D, .{_texture, _level, _xoffset, _x, _y, _width});
}
pub fn copyTextureSubImage2D(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTextureSubImage2D, .{_texture, _level, _xoffset, _yoffset, _x, _y, _width, _height});
}
pub fn copyTextureSubImage3D(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glCopyTextureSubImage3D, .{_texture, _level, _xoffset, _yoffset, _zoffset, _x, _y, _width, _height});
}
pub fn textureParameterf(_texture: GLuint, _pname: GLenum, _param: GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureParameterf, .{_texture, _pname, _param});
}
pub fn textureParameterfv(_texture: GLuint, _pname: GLenum, _param: [*c]const GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureParameterfv, .{_texture, _pname, _param});
}
pub fn textureParameteri(_texture: GLuint, _pname: GLenum, _param: GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureParameteri, .{_texture, _pname, _param});
}
pub fn textureParameterIiv(_texture: GLuint, _pname: GLenum, _params: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureParameterIiv, .{_texture, _pname, _params});
}
pub fn textureParameterIuiv(_texture: GLuint, _pname: GLenum, _params: [*c]const GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureParameterIuiv, .{_texture, _pname, _params});
}
pub fn textureParameteriv(_texture: GLuint, _pname: GLenum, _param: [*c]const GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureParameteriv, .{_texture, _pname, _param});
}
pub fn generateTextureMipmap(_texture: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGenerateTextureMipmap, .{_texture});
}
pub fn bindTextureUnit(_unit: GLuint, _texture: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glBindTextureUnit, .{_unit, _texture});
}
pub fn getTextureImage(_texture: GLuint, _level: GLint, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureImage, .{_texture, _level, _format, _type, _bufSize, _pixels});
}
pub fn getCompressedTextureImage(_texture: GLuint, _level: GLint, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetCompressedTextureImage, .{_texture, _level, _bufSize, _pixels});
}
pub fn getTextureLevelParameterfv(_texture: GLuint, _level: GLint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureLevelParameterfv, .{_texture, _level, _pname, _params});
}
pub fn getTextureLevelParameteriv(_texture: GLuint, _level: GLint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureLevelParameteriv, .{_texture, _level, _pname, _params});
}
pub fn getTextureParameterfv(_texture: GLuint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureParameterfv, .{_texture, _pname, _params});
}
pub fn getTextureParameterIiv(_texture: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureParameterIiv, .{_texture, _pname, _params});
}
pub fn getTextureParameterIuiv(_texture: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureParameterIuiv, .{_texture, _pname, _params});
}
pub fn getTextureParameteriv(_texture: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureParameteriv, .{_texture, _pname, _params});
}
pub fn createVertexArrays(_n: GLsizei, _arrays: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateVertexArrays, .{_n, _arrays});
}
pub fn disableVertexArrayAttrib(_vaobj: GLuint, _index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glDisableVertexArrayAttrib, .{_vaobj, _index});
}
pub fn enableVertexArrayAttrib(_vaobj: GLuint, _index: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glEnableVertexArrayAttrib, .{_vaobj, _index});
}
pub fn vertexArrayElementBuffer(_vaobj: GLuint, _buffer: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayElementBuffer, .{_vaobj, _buffer});
}
pub fn vertexArrayVertexBuffer(_vaobj: GLuint, _bindingindex: GLuint, _buffer: GLuint, _offset: GLintptr, _stride: GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayVertexBuffer, .{_vaobj, _bindingindex, _buffer, _offset, _stride});
}
pub fn vertexArrayVertexBuffers(_vaobj: GLuint, _first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint, _offsets: [*c]const GLintptr, _strides: [*c]const GLsizei) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayVertexBuffers, .{_vaobj, _first, _count, _buffers, _offsets, _strides});
}
pub fn vertexArrayAttribBinding(_vaobj: GLuint, _attribindex: GLuint, _bindingindex: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayAttribBinding, .{_vaobj, _attribindex, _bindingindex});
}
pub fn vertexArrayAttribFormat(_vaobj: GLuint, _attribindex: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _relativeoffset: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayAttribFormat, .{_vaobj, _attribindex, _size, _type, _normalized, _relativeoffset});
}
pub fn vertexArrayAttribIFormat(_vaobj: GLuint, _attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayAttribIFormat, .{_vaobj, _attribindex, _size, _type, _relativeoffset});
}
pub fn vertexArrayAttribLFormat(_vaobj: GLuint, _attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayAttribLFormat, .{_vaobj, _attribindex, _size, _type, _relativeoffset});
}
pub fn vertexArrayBindingDivisor(_vaobj: GLuint, _bindingindex: GLuint, _divisor: GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glVertexArrayBindingDivisor, .{_vaobj, _bindingindex, _divisor});
}
pub fn getVertexArrayiv(_vaobj: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexArrayiv, .{_vaobj, _pname, _param});
}
pub fn getVertexArrayIndexediv(_vaobj: GLuint, _index: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexArrayIndexediv, .{_vaobj, _index, _pname, _param});
}
pub fn getVertexArrayIndexed64iv(_vaobj: GLuint, _index: GLuint, _pname: GLenum, _param: [*c]GLint64) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetVertexArrayIndexed64iv, .{_vaobj, _index, _pname, _param});
}
pub fn createSamplers(_n: GLsizei, _samplers: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateSamplers, .{_n, _samplers});
}
pub fn createProgramPipelines(_n: GLsizei, _pipelines: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateProgramPipelines, .{_n, _pipelines});
}
pub fn createQueries(_target: GLenum, _n: GLsizei, _ids: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glCreateQueries, .{_target, _n, _ids});
}
pub fn getQueryBufferObjecti64v(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryBufferObjecti64v, .{_id, _buffer, _pname, _offset});
}
pub fn getQueryBufferObjectiv(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryBufferObjectiv, .{_id, _buffer, _pname, _offset});
}
pub fn getQueryBufferObjectui64v(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryBufferObjectui64v, .{_id, _buffer, _pname, _offset});
}
pub fn getQueryBufferObjectuiv(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetQueryBufferObjectuiv, .{_id, _buffer, _pname, _offset});
}
pub fn memoryBarrierByRegion(_barriers: GLbitfield) callconv(.C) void {
return @call(.always_tail, function_pointers.glMemoryBarrierByRegion, .{_barriers});
}
pub fn getTextureSubImage(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetTextureSubImage, .{_texture, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _format, _type, _bufSize, _pixels});
}
pub fn getCompressedTextureSubImage(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetCompressedTextureSubImage, .{_texture, _level, _xoffset, _yoffset, _zoffset, _width, _height, _depth, _bufSize, _pixels});
}
pub fn getGraphicsResetStatus() callconv(.C) GLenum {
return @call(.always_tail, function_pointers.glGetGraphicsResetStatus, .{});
}
pub fn getnCompressedTexImage(_target: GLenum, _lod: GLint, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetnCompressedTexImage, .{_target, _lod, _bufSize, _pixels});
}
pub fn getnTexImage(_target: GLenum, _level: GLint, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetnTexImage, .{_target, _level, _format, _type, _bufSize, _pixels});
}
pub fn getnUniformdv(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLdouble) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetnUniformdv, .{_program, _location, _bufSize, _params});
}
pub fn getnUniformfv(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLfloat) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetnUniformfv, .{_program, _location, _bufSize, _params});
}
pub fn getnUniformiv(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetnUniformiv, .{_program, _location, _bufSize, _params});
}
pub fn getnUniformuiv(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLuint) callconv(.C) void {
return @call(.always_tail, function_pointers.glGetnUniformuiv, .{_program, _location, _bufSize, _params});
}
pub fn readnPixels(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _data: ?*anyopaque) callconv(.C) void {
return @call(.always_tail, function_pointers.glReadnPixels, .{_x, _y, _width, _height, _format, _type, _bufSize, _data});
}
pub fn textureBarrier() callconv(.C) void {
return @call(.always_tail, function_pointers.glTextureBarrier, .{});
}
// Extensions:
// Loader API:
pub fn load(load_ctx: anytype, get_proc_address: fn(@TypeOf(load_ctx), [:0]const u8) ?FunctionPointer) !void {
var success = true;
if(get_proc_address(load_ctx, "glTexStorage2D")) |proc| {
function_pointers.glTexStorage2D = @ptrCast(proc);
} else {
log.err("entry point glTexStorage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexStorage1D")) |proc| {
function_pointers.glTexStorage1D = @ptrCast(proc);
} else {
log.err("entry point glTexStorage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawTransformFeedbackStreamInstanced")) |proc| {
function_pointers.glDrawTransformFeedbackStreamInstanced = @ptrCast(proc);
} else {
log.err("entry point glDrawTransformFeedbackStreamInstanced not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawTransformFeedbackInstanced")) |proc| {
function_pointers.glDrawTransformFeedbackInstanced = @ptrCast(proc);
} else {
log.err("entry point glDrawTransformFeedbackInstanced not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexStorage3D")) |proc| {
function_pointers.glTexStorage3D = @ptrCast(proc);
} else {
log.err("entry point glTexStorage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMemoryBarrier")) |proc| {
function_pointers.glMemoryBarrier = @ptrCast(proc);
} else {
log.err("entry point glMemoryBarrier not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindImageTexture")) |proc| {
function_pointers.glBindImageTexture = @ptrCast(proc);
} else {
log.err("entry point glBindImageTexture not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveAtomicCounterBufferiv")) |proc| {
function_pointers.glGetActiveAtomicCounterBufferiv = @ptrCast(proc);
} else {
log.err("entry point glGetActiveAtomicCounterBufferiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetInternalformativ")) |proc| {
function_pointers.glGetInternalformativ = @ptrCast(proc);
} else {
log.err("entry point glGetInternalformativ not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElementsInstancedBaseVertexBaseInstance")) |proc| {
function_pointers.glDrawElementsInstancedBaseVertexBaseInstance = @ptrCast(proc);
} else {
log.err("entry point glDrawElementsInstancedBaseVertexBaseInstance not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElementsInstancedBaseInstance")) |proc| {
function_pointers.glDrawElementsInstancedBaseInstance = @ptrCast(proc);
} else {
log.err("entry point glDrawElementsInstancedBaseInstance not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawArraysInstancedBaseInstance")) |proc| {
function_pointers.glDrawArraysInstancedBaseInstance = @ptrCast(proc);
} else {
log.err("entry point glDrawArraysInstancedBaseInstance not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetDoublei_v")) |proc| {
function_pointers.glGetDoublei_v = @ptrCast(proc);
} else {
log.err("entry point glGetDoublei_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetFloati_v")) |proc| {
function_pointers.glGetFloati_v = @ptrCast(proc);
} else {
log.err("entry point glGetFloati_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDepthRangeIndexed")) |proc| {
function_pointers.glDepthRangeIndexed = @ptrCast(proc);
} else {
log.err("entry point glDepthRangeIndexed not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDepthRangeArrayv")) |proc| {
function_pointers.glDepthRangeArrayv = @ptrCast(proc);
} else {
log.err("entry point glDepthRangeArrayv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glScissorIndexedv")) |proc| {
function_pointers.glScissorIndexedv = @ptrCast(proc);
} else {
log.err("entry point glScissorIndexedv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glScissorIndexed")) |proc| {
function_pointers.glScissorIndexed = @ptrCast(proc);
} else {
log.err("entry point glScissorIndexed not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glScissorArrayv")) |proc| {
function_pointers.glScissorArrayv = @ptrCast(proc);
} else {
log.err("entry point glScissorArrayv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glViewportIndexedfv")) |proc| {
function_pointers.glViewportIndexedfv = @ptrCast(proc);
} else {
log.err("entry point glViewportIndexedfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glViewportIndexedf")) |proc| {
function_pointers.glViewportIndexedf = @ptrCast(proc);
} else {
log.err("entry point glViewportIndexedf not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glViewportArrayv")) |proc| {
function_pointers.glViewportArrayv = @ptrCast(proc);
} else {
log.err("entry point glViewportArrayv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribLdv")) |proc| {
function_pointers.glGetVertexAttribLdv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribLdv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribLPointer")) |proc| {
function_pointers.glVertexAttribLPointer = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribLPointer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL4dv")) |proc| {
function_pointers.glVertexAttribL4dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL3dv")) |proc| {
function_pointers.glVertexAttribL3dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL2dv")) |proc| {
function_pointers.glVertexAttribL2dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL1dv")) |proc| {
function_pointers.glVertexAttribL1dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL1dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL4d")) |proc| {
function_pointers.glVertexAttribL4d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL4d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL3d")) |proc| {
function_pointers.glVertexAttribL3d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL3d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL2d")) |proc| {
function_pointers.glVertexAttribL2d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL2d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribL1d")) |proc| {
function_pointers.glVertexAttribL1d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribL1d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glValidateProgramPipeline")) |proc| {
function_pointers.glValidateProgramPipeline = @ptrCast(proc);
} else {
log.err("entry point glValidateProgramPipeline not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix4x3dv")) |proc| {
function_pointers.glProgramUniformMatrix4x3dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix4x3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix3x4dv")) |proc| {
function_pointers.glProgramUniformMatrix3x4dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix3x4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix4x2dv")) |proc| {
function_pointers.glProgramUniformMatrix4x2dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix4x2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix2x4dv")) |proc| {
function_pointers.glProgramUniformMatrix2x4dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix2x4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix3x2dv")) |proc| {
function_pointers.glProgramUniformMatrix3x2dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix3x2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix2x3dv")) |proc| {
function_pointers.glProgramUniformMatrix2x3dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix2x3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix4x3fv")) |proc| {
function_pointers.glProgramUniformMatrix4x3fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix4x3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix3x4fv")) |proc| {
function_pointers.glProgramUniformMatrix3x4fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix3x4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix4x2fv")) |proc| {
function_pointers.glProgramUniformMatrix4x2fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix4x2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix2x4fv")) |proc| {
function_pointers.glProgramUniformMatrix2x4fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix2x4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix3x2fv")) |proc| {
function_pointers.glProgramUniformMatrix3x2fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix3x2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix2x3fv")) |proc| {
function_pointers.glProgramUniformMatrix2x3fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix2x3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix4dv")) |proc| {
function_pointers.glProgramUniformMatrix4dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix3dv")) |proc| {
function_pointers.glProgramUniformMatrix3dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix2dv")) |proc| {
function_pointers.glProgramUniformMatrix2dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix4fv")) |proc| {
function_pointers.glProgramUniformMatrix4fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix3fv")) |proc| {
function_pointers.glProgramUniformMatrix3fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniformMatrix2fv")) |proc| {
function_pointers.glProgramUniformMatrix2fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniformMatrix2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4uiv")) |proc| {
function_pointers.glProgramUniform4uiv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4ui")) |proc| {
function_pointers.glProgramUniform4ui = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4dv")) |proc| {
function_pointers.glProgramUniform4dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4d")) |proc| {
function_pointers.glProgramUniform4d = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4fv")) |proc| {
function_pointers.glProgramUniform4fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4f")) |proc| {
function_pointers.glProgramUniform4f = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4iv")) |proc| {
function_pointers.glProgramUniform4iv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform4i")) |proc| {
function_pointers.glProgramUniform4i = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform4i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3uiv")) |proc| {
function_pointers.glProgramUniform3uiv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3ui")) |proc| {
function_pointers.glProgramUniform3ui = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3dv")) |proc| {
function_pointers.glProgramUniform3dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3d")) |proc| {
function_pointers.glProgramUniform3d = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3fv")) |proc| {
function_pointers.glProgramUniform3fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3f")) |proc| {
function_pointers.glProgramUniform3f = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3iv")) |proc| {
function_pointers.glProgramUniform3iv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform3i")) |proc| {
function_pointers.glProgramUniform3i = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform3i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUseProgramStages")) |proc| {
function_pointers.glUseProgramStages = @ptrCast(proc);
} else {
log.err("entry point glUseProgramStages not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramParameteri")) |proc| {
function_pointers.glProgramParameteri = @ptrCast(proc);
} else {
log.err("entry point glProgramParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetShaderPrecisionFormat")) |proc| {
function_pointers.glGetShaderPrecisionFormat = @ptrCast(proc);
} else {
log.err("entry point glGetShaderPrecisionFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glShaderBinary")) |proc| {
function_pointers.glShaderBinary = @ptrCast(proc);
} else {
log.err("entry point glShaderBinary not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glReleaseShaderCompiler")) |proc| {
function_pointers.glReleaseShaderCompiler = @ptrCast(proc);
} else {
log.err("entry point glReleaseShaderCompiler not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryIndexediv")) |proc| {
function_pointers.glGetQueryIndexediv = @ptrCast(proc);
} else {
log.err("entry point glGetQueryIndexediv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEndQueryIndexed")) |proc| {
function_pointers.glEndQueryIndexed = @ptrCast(proc);
} else {
log.err("entry point glEndQueryIndexed not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBeginQueryIndexed")) |proc| {
function_pointers.glBeginQueryIndexed = @ptrCast(proc);
} else {
log.err("entry point glBeginQueryIndexed not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawTransformFeedbackStream")) |proc| {
function_pointers.glDrawTransformFeedbackStream = @ptrCast(proc);
} else {
log.err("entry point glDrawTransformFeedbackStream not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawTransformFeedback")) |proc| {
function_pointers.glDrawTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glDrawTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glResumeTransformFeedback")) |proc| {
function_pointers.glResumeTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glResumeTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPauseTransformFeedback")) |proc| {
function_pointers.glPauseTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glPauseTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramStageiv")) |proc| {
function_pointers.glGetProgramStageiv = @ptrCast(proc);
} else {
log.err("entry point glGetProgramStageiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformSubroutineuiv")) |proc| {
function_pointers.glGetUniformSubroutineuiv = @ptrCast(proc);
} else {
log.err("entry point glGetUniformSubroutineuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformSubroutinesuiv")) |proc| {
function_pointers.glUniformSubroutinesuiv = @ptrCast(proc);
} else {
log.err("entry point glUniformSubroutinesuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveSubroutineName")) |proc| {
function_pointers.glGetActiveSubroutineName = @ptrCast(proc);
} else {
log.err("entry point glGetActiveSubroutineName not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCullFace")) |proc| {
function_pointers.glCullFace = @ptrCast(proc);
} else {
log.err("entry point glCullFace not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFrontFace")) |proc| {
function_pointers.glFrontFace = @ptrCast(proc);
} else {
log.err("entry point glFrontFace not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glHint")) |proc| {
function_pointers.glHint = @ptrCast(proc);
} else {
log.err("entry point glHint not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glLineWidth")) |proc| {
function_pointers.glLineWidth = @ptrCast(proc);
} else {
log.err("entry point glLineWidth not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPointSize")) |proc| {
function_pointers.glPointSize = @ptrCast(proc);
} else {
log.err("entry point glPointSize not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPolygonMode")) |proc| {
function_pointers.glPolygonMode = @ptrCast(proc);
} else {
log.err("entry point glPolygonMode not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glScissor")) |proc| {
function_pointers.glScissor = @ptrCast(proc);
} else {
log.err("entry point glScissor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexParameterf")) |proc| {
function_pointers.glTexParameterf = @ptrCast(proc);
} else {
log.err("entry point glTexParameterf not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexParameterfv")) |proc| {
function_pointers.glTexParameterfv = @ptrCast(proc);
} else {
log.err("entry point glTexParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexParameteri")) |proc| {
function_pointers.glTexParameteri = @ptrCast(proc);
} else {
log.err("entry point glTexParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexParameteriv")) |proc| {
function_pointers.glTexParameteriv = @ptrCast(proc);
} else {
log.err("entry point glTexParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexImage1D")) |proc| {
function_pointers.glTexImage1D = @ptrCast(proc);
} else {
log.err("entry point glTexImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexImage2D")) |proc| {
function_pointers.glTexImage2D = @ptrCast(proc);
} else {
log.err("entry point glTexImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawBuffer")) |proc| {
function_pointers.glDrawBuffer = @ptrCast(proc);
} else {
log.err("entry point glDrawBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClear")) |proc| {
function_pointers.glClear = @ptrCast(proc);
} else {
log.err("entry point glClear not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearColor")) |proc| {
function_pointers.glClearColor = @ptrCast(proc);
} else {
log.err("entry point glClearColor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearStencil")) |proc| {
function_pointers.glClearStencil = @ptrCast(proc);
} else {
log.err("entry point glClearStencil not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearDepth")) |proc| {
function_pointers.glClearDepth = @ptrCast(proc);
} else {
log.err("entry point glClearDepth not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glStencilMask")) |proc| {
function_pointers.glStencilMask = @ptrCast(proc);
} else {
log.err("entry point glStencilMask not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glColorMask")) |proc| {
function_pointers.glColorMask = @ptrCast(proc);
} else {
log.err("entry point glColorMask not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDepthMask")) |proc| {
function_pointers.glDepthMask = @ptrCast(proc);
} else {
log.err("entry point glDepthMask not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDisable")) |proc| {
function_pointers.glDisable = @ptrCast(proc);
} else {
log.err("entry point glDisable not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEnable")) |proc| {
function_pointers.glEnable = @ptrCast(proc);
} else {
log.err("entry point glEnable not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFinish")) |proc| {
function_pointers.glFinish = @ptrCast(proc);
} else {
log.err("entry point glFinish not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFlush")) |proc| {
function_pointers.glFlush = @ptrCast(proc);
} else {
log.err("entry point glFlush not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendFunc")) |proc| {
function_pointers.glBlendFunc = @ptrCast(proc);
} else {
log.err("entry point glBlendFunc not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glLogicOp")) |proc| {
function_pointers.glLogicOp = @ptrCast(proc);
} else {
log.err("entry point glLogicOp not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glStencilFunc")) |proc| {
function_pointers.glStencilFunc = @ptrCast(proc);
} else {
log.err("entry point glStencilFunc not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glStencilOp")) |proc| {
function_pointers.glStencilOp = @ptrCast(proc);
} else {
log.err("entry point glStencilOp not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDepthFunc")) |proc| {
function_pointers.glDepthFunc = @ptrCast(proc);
} else {
log.err("entry point glDepthFunc not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPixelStoref")) |proc| {
function_pointers.glPixelStoref = @ptrCast(proc);
} else {
log.err("entry point glPixelStoref not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPixelStorei")) |proc| {
function_pointers.glPixelStorei = @ptrCast(proc);
} else {
log.err("entry point glPixelStorei not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glReadBuffer")) |proc| {
function_pointers.glReadBuffer = @ptrCast(proc);
} else {
log.err("entry point glReadBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glReadPixels")) |proc| {
function_pointers.glReadPixels = @ptrCast(proc);
} else {
log.err("entry point glReadPixels not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetBooleanv")) |proc| {
function_pointers.glGetBooleanv = @ptrCast(proc);
} else {
log.err("entry point glGetBooleanv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetDoublev")) |proc| {
function_pointers.glGetDoublev = @ptrCast(proc);
} else {
log.err("entry point glGetDoublev not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetError")) |proc| {
function_pointers.glGetError = @ptrCast(proc);
} else {
log.err("entry point glGetError not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetFloatv")) |proc| {
function_pointers.glGetFloatv = @ptrCast(proc);
} else {
log.err("entry point glGetFloatv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetIntegerv")) |proc| {
function_pointers.glGetIntegerv = @ptrCast(proc);
} else {
log.err("entry point glGetIntegerv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetString")) |proc| {
function_pointers.glGetString = @ptrCast(proc);
} else {
log.err("entry point glGetString not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexImage")) |proc| {
function_pointers.glGetTexImage = @ptrCast(proc);
} else {
log.err("entry point glGetTexImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexParameterfv")) |proc| {
function_pointers.glGetTexParameterfv = @ptrCast(proc);
} else {
log.err("entry point glGetTexParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexParameteriv")) |proc| {
function_pointers.glGetTexParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetTexParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexLevelParameterfv")) |proc| {
function_pointers.glGetTexLevelParameterfv = @ptrCast(proc);
} else {
log.err("entry point glGetTexLevelParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexLevelParameteriv")) |proc| {
function_pointers.glGetTexLevelParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetTexLevelParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsEnabled")) |proc| {
function_pointers.glIsEnabled = @ptrCast(proc);
} else {
log.err("entry point glIsEnabled not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDepthRange")) |proc| {
function_pointers.glDepthRange = @ptrCast(proc);
} else {
log.err("entry point glDepthRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glViewport")) |proc| {
function_pointers.glViewport = @ptrCast(proc);
} else {
log.err("entry point glViewport not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexStorage2DMultisample")) |proc| {
function_pointers.glTexStorage2DMultisample = @ptrCast(proc);
} else {
log.err("entry point glTexStorage2DMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexBufferRange")) |proc| {
function_pointers.glTexBufferRange = @ptrCast(proc);
} else {
log.err("entry point glTexBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glShaderStorageBlockBinding")) |proc| {
function_pointers.glShaderStorageBlockBinding = @ptrCast(proc);
} else {
log.err("entry point glShaderStorageBlockBinding not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramResourceLocationIndex")) |proc| {
function_pointers.glGetProgramResourceLocationIndex = @ptrCast(proc);
} else {
log.err("entry point glGetProgramResourceLocationIndex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramResourceLocation")) |proc| {
function_pointers.glGetProgramResourceLocation = @ptrCast(proc);
} else {
log.err("entry point glGetProgramResourceLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramResourceiv")) |proc| {
function_pointers.glGetProgramResourceiv = @ptrCast(proc);
} else {
log.err("entry point glGetProgramResourceiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramResourceName")) |proc| {
function_pointers.glGetProgramResourceName = @ptrCast(proc);
} else {
log.err("entry point glGetProgramResourceName not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramResourceIndex")) |proc| {
function_pointers.glGetProgramResourceIndex = @ptrCast(proc);
} else {
log.err("entry point glGetProgramResourceIndex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramInterfaceiv")) |proc| {
function_pointers.glGetProgramInterfaceiv = @ptrCast(proc);
} else {
log.err("entry point glGetProgramInterfaceiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMultiDrawElementsIndirect")) |proc| {
function_pointers.glMultiDrawElementsIndirect = @ptrCast(proc);
} else {
log.err("entry point glMultiDrawElementsIndirect not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMultiDrawArraysIndirect")) |proc| {
function_pointers.glMultiDrawArraysIndirect = @ptrCast(proc);
} else {
log.err("entry point glMultiDrawArraysIndirect not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateSubFramebuffer")) |proc| {
function_pointers.glInvalidateSubFramebuffer = @ptrCast(proc);
} else {
log.err("entry point glInvalidateSubFramebuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateFramebuffer")) |proc| {
function_pointers.glInvalidateFramebuffer = @ptrCast(proc);
} else {
log.err("entry point glInvalidateFramebuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateBufferData")) |proc| {
function_pointers.glInvalidateBufferData = @ptrCast(proc);
} else {
log.err("entry point glInvalidateBufferData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateBufferSubData")) |proc| {
function_pointers.glInvalidateBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glInvalidateBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateTexImage")) |proc| {
function_pointers.glInvalidateTexImage = @ptrCast(proc);
} else {
log.err("entry point glInvalidateTexImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateTexSubImage")) |proc| {
function_pointers.glInvalidateTexSubImage = @ptrCast(proc);
} else {
log.err("entry point glInvalidateTexSubImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetInternalformati64v")) |proc| {
function_pointers.glGetInternalformati64v = @ptrCast(proc);
} else {
log.err("entry point glGetInternalformati64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetFramebufferParameteriv")) |proc| {
function_pointers.glGetFramebufferParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetFramebufferParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferParameteri")) |proc| {
function_pointers.glFramebufferParameteri = @ptrCast(proc);
} else {
log.err("entry point glFramebufferParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyImageSubData")) |proc| {
function_pointers.glCopyImageSubData = @ptrCast(proc);
} else {
log.err("entry point glCopyImageSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDispatchComputeIndirect")) |proc| {
function_pointers.glDispatchComputeIndirect = @ptrCast(proc);
} else {
log.err("entry point glDispatchComputeIndirect not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDispatchCompute")) |proc| {
function_pointers.glDispatchCompute = @ptrCast(proc);
} else {
log.err("entry point glDispatchCompute not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearBufferSubData")) |proc| {
function_pointers.glClearBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glClearBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearBufferData")) |proc| {
function_pointers.glClearBufferData = @ptrCast(proc);
} else {
log.err("entry point glClearBufferData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramPipelineInfoLog")) |proc| {
function_pointers.glGetProgramPipelineInfoLog = @ptrCast(proc);
} else {
log.err("entry point glGetProgramPipelineInfoLog not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2uiv")) |proc| {
function_pointers.glProgramUniform2uiv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2ui")) |proc| {
function_pointers.glProgramUniform2ui = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2dv")) |proc| {
function_pointers.glProgramUniform2dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2d")) |proc| {
function_pointers.glProgramUniform2d = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2fv")) |proc| {
function_pointers.glProgramUniform2fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2f")) |proc| {
function_pointers.glProgramUniform2f = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2iv")) |proc| {
function_pointers.glProgramUniform2iv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform2i")) |proc| {
function_pointers.glProgramUniform2i = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform2i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1uiv")) |proc| {
function_pointers.glProgramUniform1uiv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1ui")) |proc| {
function_pointers.glProgramUniform1ui = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1dv")) |proc| {
function_pointers.glProgramUniform1dv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1d")) |proc| {
function_pointers.glProgramUniform1d = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1fv")) |proc| {
function_pointers.glProgramUniform1fv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1f")) |proc| {
function_pointers.glProgramUniform1f = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1iv")) |proc| {
function_pointers.glProgramUniform1iv = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramUniform1i")) |proc| {
function_pointers.glProgramUniform1i = @ptrCast(proc);
} else {
log.err("entry point glProgramUniform1i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramPipelineiv")) |proc| {
function_pointers.glGetProgramPipelineiv = @ptrCast(proc);
} else {
log.err("entry point glGetProgramPipelineiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsProgramPipeline")) |proc| {
function_pointers.glIsProgramPipeline = @ptrCast(proc);
} else {
log.err("entry point glIsProgramPipeline not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenProgramPipelines")) |proc| {
function_pointers.glGenProgramPipelines = @ptrCast(proc);
} else {
log.err("entry point glGenProgramPipelines not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteProgramPipelines")) |proc| {
function_pointers.glDeleteProgramPipelines = @ptrCast(proc);
} else {
log.err("entry point glDeleteProgramPipelines not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindProgramPipeline")) |proc| {
function_pointers.glBindProgramPipeline = @ptrCast(proc);
} else {
log.err("entry point glBindProgramPipeline not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateShaderProgramv")) |proc| {
function_pointers.glCreateShaderProgramv = @ptrCast(proc);
} else {
log.err("entry point glCreateShaderProgramv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glActiveShaderProgram")) |proc| {
function_pointers.glActiveShaderProgram = @ptrCast(proc);
} else {
log.err("entry point glActiveShaderProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProgramBinary")) |proc| {
function_pointers.glProgramBinary = @ptrCast(proc);
} else {
log.err("entry point glProgramBinary not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramBinary")) |proc| {
function_pointers.glGetProgramBinary = @ptrCast(proc);
} else {
log.err("entry point glGetProgramBinary not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearDepthf")) |proc| {
function_pointers.glClearDepthf = @ptrCast(proc);
} else {
log.err("entry point glClearDepthf not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDepthRangef")) |proc| {
function_pointers.glDepthRangef = @ptrCast(proc);
} else {
log.err("entry point glDepthRangef not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsTransformFeedback")) |proc| {
function_pointers.glIsTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glIsTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenTransformFeedbacks")) |proc| {
function_pointers.glGenTransformFeedbacks = @ptrCast(proc);
} else {
log.err("entry point glGenTransformFeedbacks not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteTransformFeedbacks")) |proc| {
function_pointers.glDeleteTransformFeedbacks = @ptrCast(proc);
} else {
log.err("entry point glDeleteTransformFeedbacks not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindTransformFeedback")) |proc| {
function_pointers.glBindTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glBindTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPatchParameterfv")) |proc| {
function_pointers.glPatchParameterfv = @ptrCast(proc);
} else {
log.err("entry point glPatchParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPatchParameteri")) |proc| {
function_pointers.glPatchParameteri = @ptrCast(proc);
} else {
log.err("entry point glPatchParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawArrays")) |proc| {
function_pointers.glDrawArrays = @ptrCast(proc);
} else {
log.err("entry point glDrawArrays not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElements")) |proc| {
function_pointers.glDrawElements = @ptrCast(proc);
} else {
log.err("entry point glDrawElements not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPolygonOffset")) |proc| {
function_pointers.glPolygonOffset = @ptrCast(proc);
} else {
log.err("entry point glPolygonOffset not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTexImage1D")) |proc| {
function_pointers.glCopyTexImage1D = @ptrCast(proc);
} else {
log.err("entry point glCopyTexImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTexImage2D")) |proc| {
function_pointers.glCopyTexImage2D = @ptrCast(proc);
} else {
log.err("entry point glCopyTexImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTexSubImage1D")) |proc| {
function_pointers.glCopyTexSubImage1D = @ptrCast(proc);
} else {
log.err("entry point glCopyTexSubImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTexSubImage2D")) |proc| {
function_pointers.glCopyTexSubImage2D = @ptrCast(proc);
} else {
log.err("entry point glCopyTexSubImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexSubImage1D")) |proc| {
function_pointers.glTexSubImage1D = @ptrCast(proc);
} else {
log.err("entry point glTexSubImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexSubImage2D")) |proc| {
function_pointers.glTexSubImage2D = @ptrCast(proc);
} else {
log.err("entry point glTexSubImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindTexture")) |proc| {
function_pointers.glBindTexture = @ptrCast(proc);
} else {
log.err("entry point glBindTexture not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteTextures")) |proc| {
function_pointers.glDeleteTextures = @ptrCast(proc);
} else {
log.err("entry point glDeleteTextures not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenTextures")) |proc| {
function_pointers.glGenTextures = @ptrCast(proc);
} else {
log.err("entry point glGenTextures not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsTexture")) |proc| {
function_pointers.glIsTexture = @ptrCast(proc);
} else {
log.err("entry point glIsTexture not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveSubroutineUniformName")) |proc| {
function_pointers.glGetActiveSubroutineUniformName = @ptrCast(proc);
} else {
log.err("entry point glGetActiveSubroutineUniformName not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveSubroutineUniformiv")) |proc| {
function_pointers.glGetActiveSubroutineUniformiv = @ptrCast(proc);
} else {
log.err("entry point glGetActiveSubroutineUniformiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSubroutineIndex")) |proc| {
function_pointers.glGetSubroutineIndex = @ptrCast(proc);
} else {
log.err("entry point glGetSubroutineIndex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSubroutineUniformLocation")) |proc| {
function_pointers.glGetSubroutineUniformLocation = @ptrCast(proc);
} else {
log.err("entry point glGetSubroutineUniformLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformdv")) |proc| {
function_pointers.glGetUniformdv = @ptrCast(proc);
} else {
log.err("entry point glGetUniformdv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix4x3dv")) |proc| {
function_pointers.glUniformMatrix4x3dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix4x3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix4x2dv")) |proc| {
function_pointers.glUniformMatrix4x2dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix4x2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix3x4dv")) |proc| {
function_pointers.glUniformMatrix3x4dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix3x4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix3x2dv")) |proc| {
function_pointers.glUniformMatrix3x2dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix3x2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix2x4dv")) |proc| {
function_pointers.glUniformMatrix2x4dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix2x4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix2x3dv")) |proc| {
function_pointers.glUniformMatrix2x3dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix2x3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix4dv")) |proc| {
function_pointers.glUniformMatrix4dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix3dv")) |proc| {
function_pointers.glUniformMatrix3dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawRangeElements")) |proc| {
function_pointers.glDrawRangeElements = @ptrCast(proc);
} else {
log.err("entry point glDrawRangeElements not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexImage3D")) |proc| {
function_pointers.glTexImage3D = @ptrCast(proc);
} else {
log.err("entry point glTexImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexSubImage3D")) |proc| {
function_pointers.glTexSubImage3D = @ptrCast(proc);
} else {
log.err("entry point glTexSubImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTexSubImage3D")) |proc| {
function_pointers.glCopyTexSubImage3D = @ptrCast(proc);
} else {
log.err("entry point glCopyTexSubImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix2dv")) |proc| {
function_pointers.glUniformMatrix2dv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4dv")) |proc| {
function_pointers.glUniform4dv = @ptrCast(proc);
} else {
log.err("entry point glUniform4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3dv")) |proc| {
function_pointers.glUniform3dv = @ptrCast(proc);
} else {
log.err("entry point glUniform3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2dv")) |proc| {
function_pointers.glUniform2dv = @ptrCast(proc);
} else {
log.err("entry point glUniform2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1dv")) |proc| {
function_pointers.glUniform1dv = @ptrCast(proc);
} else {
log.err("entry point glUniform1dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4d")) |proc| {
function_pointers.glUniform4d = @ptrCast(proc);
} else {
log.err("entry point glUniform4d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3d")) |proc| {
function_pointers.glUniform3d = @ptrCast(proc);
} else {
log.err("entry point glUniform3d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2d")) |proc| {
function_pointers.glUniform2d = @ptrCast(proc);
} else {
log.err("entry point glUniform2d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1d")) |proc| {
function_pointers.glUniform1d = @ptrCast(proc);
} else {
log.err("entry point glUniform1d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElementsIndirect")) |proc| {
function_pointers.glDrawElementsIndirect = @ptrCast(proc);
} else {
log.err("entry point glDrawElementsIndirect not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawArraysIndirect")) |proc| {
function_pointers.glDrawArraysIndirect = @ptrCast(proc);
} else {
log.err("entry point glDrawArraysIndirect not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendFuncSeparatei")) |proc| {
function_pointers.glBlendFuncSeparatei = @ptrCast(proc);
} else {
log.err("entry point glBlendFuncSeparatei not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendFunci")) |proc| {
function_pointers.glBlendFunci = @ptrCast(proc);
} else {
log.err("entry point glBlendFunci not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendEquationSeparatei")) |proc| {
function_pointers.glBlendEquationSeparatei = @ptrCast(proc);
} else {
log.err("entry point glBlendEquationSeparatei not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendEquationi")) |proc| {
function_pointers.glBlendEquationi = @ptrCast(proc);
} else {
log.err("entry point glBlendEquationi not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMinSampleShading")) |proc| {
function_pointers.glMinSampleShading = @ptrCast(proc);
} else {
log.err("entry point glMinSampleShading not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glActiveTexture")) |proc| {
function_pointers.glActiveTexture = @ptrCast(proc);
} else {
log.err("entry point glActiveTexture not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSampleCoverage")) |proc| {
function_pointers.glSampleCoverage = @ptrCast(proc);
} else {
log.err("entry point glSampleCoverage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTexImage3D")) |proc| {
function_pointers.glCompressedTexImage3D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTexImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTexImage2D")) |proc| {
function_pointers.glCompressedTexImage2D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTexImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTexImage1D")) |proc| {
function_pointers.glCompressedTexImage1D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTexImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTexSubImage3D")) |proc| {
function_pointers.glCompressedTexSubImage3D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTexSubImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTexSubImage2D")) |proc| {
function_pointers.glCompressedTexSubImage2D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTexSubImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTexSubImage1D")) |proc| {
function_pointers.glCompressedTexSubImage1D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTexSubImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetCompressedTexImage")) |proc| {
function_pointers.glGetCompressedTexImage = @ptrCast(proc);
} else {
log.err("entry point glGetCompressedTexImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP4uiv")) |proc| {
function_pointers.glVertexAttribP4uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP4uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP4ui")) |proc| {
function_pointers.glVertexAttribP4ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP4ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP3uiv")) |proc| {
function_pointers.glVertexAttribP3uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP3uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP3ui")) |proc| {
function_pointers.glVertexAttribP3ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP3ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP2uiv")) |proc| {
function_pointers.glVertexAttribP2uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP2uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP2ui")) |proc| {
function_pointers.glVertexAttribP2ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP2ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP1uiv")) |proc| {
function_pointers.glVertexAttribP1uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP1uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribP1ui")) |proc| {
function_pointers.glVertexAttribP1ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribP1ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribDivisor")) |proc| {
function_pointers.glVertexAttribDivisor = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribDivisor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryObjectui64v")) |proc| {
function_pointers.glGetQueryObjectui64v = @ptrCast(proc);
} else {
log.err("entry point glGetQueryObjectui64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryObjecti64v")) |proc| {
function_pointers.glGetQueryObjecti64v = @ptrCast(proc);
} else {
log.err("entry point glGetQueryObjecti64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glQueryCounter")) |proc| {
function_pointers.glQueryCounter = @ptrCast(proc);
} else {
log.err("entry point glQueryCounter not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSamplerParameterIuiv")) |proc| {
function_pointers.glGetSamplerParameterIuiv = @ptrCast(proc);
} else {
log.err("entry point glGetSamplerParameterIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSamplerParameterfv")) |proc| {
function_pointers.glGetSamplerParameterfv = @ptrCast(proc);
} else {
log.err("entry point glGetSamplerParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSamplerParameterIiv")) |proc| {
function_pointers.glGetSamplerParameterIiv = @ptrCast(proc);
} else {
log.err("entry point glGetSamplerParameterIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSamplerParameteriv")) |proc| {
function_pointers.glGetSamplerParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetSamplerParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSamplerParameterIuiv")) |proc| {
function_pointers.glSamplerParameterIuiv = @ptrCast(proc);
} else {
log.err("entry point glSamplerParameterIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSamplerParameterIiv")) |proc| {
function_pointers.glSamplerParameterIiv = @ptrCast(proc);
} else {
log.err("entry point glSamplerParameterIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSamplerParameterfv")) |proc| {
function_pointers.glSamplerParameterfv = @ptrCast(proc);
} else {
log.err("entry point glSamplerParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSamplerParameterf")) |proc| {
function_pointers.glSamplerParameterf = @ptrCast(proc);
} else {
log.err("entry point glSamplerParameterf not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSamplerParameteriv")) |proc| {
function_pointers.glSamplerParameteriv = @ptrCast(proc);
} else {
log.err("entry point glSamplerParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSamplerParameteri")) |proc| {
function_pointers.glSamplerParameteri = @ptrCast(proc);
} else {
log.err("entry point glSamplerParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindSampler")) |proc| {
function_pointers.glBindSampler = @ptrCast(proc);
} else {
log.err("entry point glBindSampler not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsSampler")) |proc| {
function_pointers.glIsSampler = @ptrCast(proc);
} else {
log.err("entry point glIsSampler not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteSamplers")) |proc| {
function_pointers.glDeleteSamplers = @ptrCast(proc);
} else {
log.err("entry point glDeleteSamplers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenSamplers")) |proc| {
function_pointers.glGenSamplers = @ptrCast(proc);
} else {
log.err("entry point glGenSamplers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetFragDataIndex")) |proc| {
function_pointers.glGetFragDataIndex = @ptrCast(proc);
} else {
log.err("entry point glGetFragDataIndex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindFragDataLocationIndexed")) |proc| {
function_pointers.glBindFragDataLocationIndexed = @ptrCast(proc);
} else {
log.err("entry point glBindFragDataLocationIndexed not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glSampleMaski")) |proc| {
function_pointers.glSampleMaski = @ptrCast(proc);
} else {
log.err("entry point glSampleMaski not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetMultisamplefv")) |proc| {
function_pointers.glGetMultisamplefv = @ptrCast(proc);
} else {
log.err("entry point glGetMultisamplefv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexImage3DMultisample")) |proc| {
function_pointers.glTexImage3DMultisample = @ptrCast(proc);
} else {
log.err("entry point glTexImage3DMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexImage2DMultisample")) |proc| {
function_pointers.glTexImage2DMultisample = @ptrCast(proc);
} else {
log.err("entry point glTexImage2DMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferTexture")) |proc| {
function_pointers.glFramebufferTexture = @ptrCast(proc);
} else {
log.err("entry point glFramebufferTexture not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetBufferParameteri64v")) |proc| {
function_pointers.glGetBufferParameteri64v = @ptrCast(proc);
} else {
log.err("entry point glGetBufferParameteri64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendFuncSeparate")) |proc| {
function_pointers.glBlendFuncSeparate = @ptrCast(proc);
} else {
log.err("entry point glBlendFuncSeparate not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMultiDrawArrays")) |proc| {
function_pointers.glMultiDrawArrays = @ptrCast(proc);
} else {
log.err("entry point glMultiDrawArrays not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMultiDrawElements")) |proc| {
function_pointers.glMultiDrawElements = @ptrCast(proc);
} else {
log.err("entry point glMultiDrawElements not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPointParameterf")) |proc| {
function_pointers.glPointParameterf = @ptrCast(proc);
} else {
log.err("entry point glPointParameterf not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPointParameterfv")) |proc| {
function_pointers.glPointParameterfv = @ptrCast(proc);
} else {
log.err("entry point glPointParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPointParameteri")) |proc| {
function_pointers.glPointParameteri = @ptrCast(proc);
} else {
log.err("entry point glPointParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPointParameteriv")) |proc| {
function_pointers.glPointParameteriv = @ptrCast(proc);
} else {
log.err("entry point glPointParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetInteger64i_v")) |proc| {
function_pointers.glGetInteger64i_v = @ptrCast(proc);
} else {
log.err("entry point glGetInteger64i_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetSynciv")) |proc| {
function_pointers.glGetSynciv = @ptrCast(proc);
} else {
log.err("entry point glGetSynciv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetInteger64v")) |proc| {
function_pointers.glGetInteger64v = @ptrCast(proc);
} else {
log.err("entry point glGetInteger64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glWaitSync")) |proc| {
function_pointers.glWaitSync = @ptrCast(proc);
} else {
log.err("entry point glWaitSync not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClientWaitSync")) |proc| {
function_pointers.glClientWaitSync = @ptrCast(proc);
} else {
log.err("entry point glClientWaitSync not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteSync")) |proc| {
function_pointers.glDeleteSync = @ptrCast(proc);
} else {
log.err("entry point glDeleteSync not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsSync")) |proc| {
function_pointers.glIsSync = @ptrCast(proc);
} else {
log.err("entry point glIsSync not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFenceSync")) |proc| {
function_pointers.glFenceSync = @ptrCast(proc);
} else {
log.err("entry point glFenceSync not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendColor")) |proc| {
function_pointers.glBlendColor = @ptrCast(proc);
} else {
log.err("entry point glBlendColor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendEquation")) |proc| {
function_pointers.glBlendEquation = @ptrCast(proc);
} else {
log.err("entry point glBlendEquation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glProvokingVertex")) |proc| {
function_pointers.glProvokingVertex = @ptrCast(proc);
} else {
log.err("entry point glProvokingVertex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMultiDrawElementsBaseVertex")) |proc| {
function_pointers.glMultiDrawElementsBaseVertex = @ptrCast(proc);
} else {
log.err("entry point glMultiDrawElementsBaseVertex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElementsInstancedBaseVertex")) |proc| {
function_pointers.glDrawElementsInstancedBaseVertex = @ptrCast(proc);
} else {
log.err("entry point glDrawElementsInstancedBaseVertex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawRangeElementsBaseVertex")) |proc| {
function_pointers.glDrawRangeElementsBaseVertex = @ptrCast(proc);
} else {
log.err("entry point glDrawRangeElementsBaseVertex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElementsBaseVertex")) |proc| {
function_pointers.glDrawElementsBaseVertex = @ptrCast(proc);
} else {
log.err("entry point glDrawElementsBaseVertex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenQueries")) |proc| {
function_pointers.glGenQueries = @ptrCast(proc);
} else {
log.err("entry point glGenQueries not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteQueries")) |proc| {
function_pointers.glDeleteQueries = @ptrCast(proc);
} else {
log.err("entry point glDeleteQueries not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsQuery")) |proc| {
function_pointers.glIsQuery = @ptrCast(proc);
} else {
log.err("entry point glIsQuery not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBeginQuery")) |proc| {
function_pointers.glBeginQuery = @ptrCast(proc);
} else {
log.err("entry point glBeginQuery not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEndQuery")) |proc| {
function_pointers.glEndQuery = @ptrCast(proc);
} else {
log.err("entry point glEndQuery not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryiv")) |proc| {
function_pointers.glGetQueryiv = @ptrCast(proc);
} else {
log.err("entry point glGetQueryiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryObjectiv")) |proc| {
function_pointers.glGetQueryObjectiv = @ptrCast(proc);
} else {
log.err("entry point glGetQueryObjectiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryObjectuiv")) |proc| {
function_pointers.glGetQueryObjectuiv = @ptrCast(proc);
} else {
log.err("entry point glGetQueryObjectuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindBuffer")) |proc| {
function_pointers.glBindBuffer = @ptrCast(proc);
} else {
log.err("entry point glBindBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteBuffers")) |proc| {
function_pointers.glDeleteBuffers = @ptrCast(proc);
} else {
log.err("entry point glDeleteBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenBuffers")) |proc| {
function_pointers.glGenBuffers = @ptrCast(proc);
} else {
log.err("entry point glGenBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsBuffer")) |proc| {
function_pointers.glIsBuffer = @ptrCast(proc);
} else {
log.err("entry point glIsBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBufferData")) |proc| {
function_pointers.glBufferData = @ptrCast(proc);
} else {
log.err("entry point glBufferData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBufferSubData")) |proc| {
function_pointers.glBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetBufferSubData")) |proc| {
function_pointers.glGetBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glGetBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMapBuffer")) |proc| {
function_pointers.glMapBuffer = @ptrCast(proc);
} else {
log.err("entry point glMapBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUnmapBuffer")) |proc| {
function_pointers.glUnmapBuffer = @ptrCast(proc);
} else {
log.err("entry point glUnmapBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetBufferParameteriv")) |proc| {
function_pointers.glGetBufferParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetBufferParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetBufferPointerv")) |proc| {
function_pointers.glGetBufferPointerv = @ptrCast(proc);
} else {
log.err("entry point glGetBufferPointerv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlendEquationSeparate")) |proc| {
function_pointers.glBlendEquationSeparate = @ptrCast(proc);
} else {
log.err("entry point glBlendEquationSeparate not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawBuffers")) |proc| {
function_pointers.glDrawBuffers = @ptrCast(proc);
} else {
log.err("entry point glDrawBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glStencilOpSeparate")) |proc| {
function_pointers.glStencilOpSeparate = @ptrCast(proc);
} else {
log.err("entry point glStencilOpSeparate not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glStencilFuncSeparate")) |proc| {
function_pointers.glStencilFuncSeparate = @ptrCast(proc);
} else {
log.err("entry point glStencilFuncSeparate not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glStencilMaskSeparate")) |proc| {
function_pointers.glStencilMaskSeparate = @ptrCast(proc);
} else {
log.err("entry point glStencilMaskSeparate not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glAttachShader")) |proc| {
function_pointers.glAttachShader = @ptrCast(proc);
} else {
log.err("entry point glAttachShader not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindAttribLocation")) |proc| {
function_pointers.glBindAttribLocation = @ptrCast(proc);
} else {
log.err("entry point glBindAttribLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompileShader")) |proc| {
function_pointers.glCompileShader = @ptrCast(proc);
} else {
log.err("entry point glCompileShader not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateProgram")) |proc| {
function_pointers.glCreateProgram = @ptrCast(proc);
} else {
log.err("entry point glCreateProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateShader")) |proc| {
function_pointers.glCreateShader = @ptrCast(proc);
} else {
log.err("entry point glCreateShader not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteProgram")) |proc| {
function_pointers.glDeleteProgram = @ptrCast(proc);
} else {
log.err("entry point glDeleteProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteShader")) |proc| {
function_pointers.glDeleteShader = @ptrCast(proc);
} else {
log.err("entry point glDeleteShader not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDetachShader")) |proc| {
function_pointers.glDetachShader = @ptrCast(proc);
} else {
log.err("entry point glDetachShader not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDisableVertexAttribArray")) |proc| {
function_pointers.glDisableVertexAttribArray = @ptrCast(proc);
} else {
log.err("entry point glDisableVertexAttribArray not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEnableVertexAttribArray")) |proc| {
function_pointers.glEnableVertexAttribArray = @ptrCast(proc);
} else {
log.err("entry point glEnableVertexAttribArray not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveAttrib")) |proc| {
function_pointers.glGetActiveAttrib = @ptrCast(proc);
} else {
log.err("entry point glGetActiveAttrib not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveUniform")) |proc| {
function_pointers.glGetActiveUniform = @ptrCast(proc);
} else {
log.err("entry point glGetActiveUniform not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetAttachedShaders")) |proc| {
function_pointers.glGetAttachedShaders = @ptrCast(proc);
} else {
log.err("entry point glGetAttachedShaders not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetAttribLocation")) |proc| {
function_pointers.glGetAttribLocation = @ptrCast(proc);
} else {
log.err("entry point glGetAttribLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramiv")) |proc| {
function_pointers.glGetProgramiv = @ptrCast(proc);
} else {
log.err("entry point glGetProgramiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetProgramInfoLog")) |proc| {
function_pointers.glGetProgramInfoLog = @ptrCast(proc);
} else {
log.err("entry point glGetProgramInfoLog not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetShaderiv")) |proc| {
function_pointers.glGetShaderiv = @ptrCast(proc);
} else {
log.err("entry point glGetShaderiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetShaderInfoLog")) |proc| {
function_pointers.glGetShaderInfoLog = @ptrCast(proc);
} else {
log.err("entry point glGetShaderInfoLog not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetShaderSource")) |proc| {
function_pointers.glGetShaderSource = @ptrCast(proc);
} else {
log.err("entry point glGetShaderSource not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformLocation")) |proc| {
function_pointers.glGetUniformLocation = @ptrCast(proc);
} else {
log.err("entry point glGetUniformLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformfv")) |proc| {
function_pointers.glGetUniformfv = @ptrCast(proc);
} else {
log.err("entry point glGetUniformfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformiv")) |proc| {
function_pointers.glGetUniformiv = @ptrCast(proc);
} else {
log.err("entry point glGetUniformiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribdv")) |proc| {
function_pointers.glGetVertexAttribdv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribdv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribfv")) |proc| {
function_pointers.glGetVertexAttribfv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribiv")) |proc| {
function_pointers.glGetVertexAttribiv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribPointerv")) |proc| {
function_pointers.glGetVertexAttribPointerv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribPointerv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsProgram")) |proc| {
function_pointers.glIsProgram = @ptrCast(proc);
} else {
log.err("entry point glIsProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsShader")) |proc| {
function_pointers.glIsShader = @ptrCast(proc);
} else {
log.err("entry point glIsShader not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glLinkProgram")) |proc| {
function_pointers.glLinkProgram = @ptrCast(proc);
} else {
log.err("entry point glLinkProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glShaderSource")) |proc| {
function_pointers.glShaderSource = @ptrCast(proc);
} else {
log.err("entry point glShaderSource not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUseProgram")) |proc| {
function_pointers.glUseProgram = @ptrCast(proc);
} else {
log.err("entry point glUseProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1f")) |proc| {
function_pointers.glUniform1f = @ptrCast(proc);
} else {
log.err("entry point glUniform1f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2f")) |proc| {
function_pointers.glUniform2f = @ptrCast(proc);
} else {
log.err("entry point glUniform2f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3f")) |proc| {
function_pointers.glUniform3f = @ptrCast(proc);
} else {
log.err("entry point glUniform3f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4f")) |proc| {
function_pointers.glUniform4f = @ptrCast(proc);
} else {
log.err("entry point glUniform4f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1i")) |proc| {
function_pointers.glUniform1i = @ptrCast(proc);
} else {
log.err("entry point glUniform1i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2i")) |proc| {
function_pointers.glUniform2i = @ptrCast(proc);
} else {
log.err("entry point glUniform2i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3i")) |proc| {
function_pointers.glUniform3i = @ptrCast(proc);
} else {
log.err("entry point glUniform3i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4i")) |proc| {
function_pointers.glUniform4i = @ptrCast(proc);
} else {
log.err("entry point glUniform4i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1fv")) |proc| {
function_pointers.glUniform1fv = @ptrCast(proc);
} else {
log.err("entry point glUniform1fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2fv")) |proc| {
function_pointers.glUniform2fv = @ptrCast(proc);
} else {
log.err("entry point glUniform2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3fv")) |proc| {
function_pointers.glUniform3fv = @ptrCast(proc);
} else {
log.err("entry point glUniform3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4fv")) |proc| {
function_pointers.glUniform4fv = @ptrCast(proc);
} else {
log.err("entry point glUniform4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1iv")) |proc| {
function_pointers.glUniform1iv = @ptrCast(proc);
} else {
log.err("entry point glUniform1iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2iv")) |proc| {
function_pointers.glUniform2iv = @ptrCast(proc);
} else {
log.err("entry point glUniform2iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3iv")) |proc| {
function_pointers.glUniform3iv = @ptrCast(proc);
} else {
log.err("entry point glUniform3iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4iv")) |proc| {
function_pointers.glUniform4iv = @ptrCast(proc);
} else {
log.err("entry point glUniform4iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix2fv")) |proc| {
function_pointers.glUniformMatrix2fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix3fv")) |proc| {
function_pointers.glUniformMatrix3fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix4fv")) |proc| {
function_pointers.glUniformMatrix4fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glValidateProgram")) |proc| {
function_pointers.glValidateProgram = @ptrCast(proc);
} else {
log.err("entry point glValidateProgram not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib1d")) |proc| {
function_pointers.glVertexAttrib1d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib1d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib1dv")) |proc| {
function_pointers.glVertexAttrib1dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib1dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib1f")) |proc| {
function_pointers.glVertexAttrib1f = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib1f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib1fv")) |proc| {
function_pointers.glVertexAttrib1fv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib1fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib1s")) |proc| {
function_pointers.glVertexAttrib1s = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib1s not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib1sv")) |proc| {
function_pointers.glVertexAttrib1sv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib1sv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib2d")) |proc| {
function_pointers.glVertexAttrib2d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib2d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib2dv")) |proc| {
function_pointers.glVertexAttrib2dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib2dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib2f")) |proc| {
function_pointers.glVertexAttrib2f = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib2f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib2fv")) |proc| {
function_pointers.glVertexAttrib2fv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib2s")) |proc| {
function_pointers.glVertexAttrib2s = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib2s not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib2sv")) |proc| {
function_pointers.glVertexAttrib2sv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib2sv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib3d")) |proc| {
function_pointers.glVertexAttrib3d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib3d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib3dv")) |proc| {
function_pointers.glVertexAttrib3dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib3dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib3f")) |proc| {
function_pointers.glVertexAttrib3f = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib3f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib3fv")) |proc| {
function_pointers.glVertexAttrib3fv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib3s")) |proc| {
function_pointers.glVertexAttrib3s = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib3s not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib3sv")) |proc| {
function_pointers.glVertexAttrib3sv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib3sv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Nbv")) |proc| {
function_pointers.glVertexAttrib4Nbv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Nbv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Niv")) |proc| {
function_pointers.glVertexAttrib4Niv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Niv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Nsv")) |proc| {
function_pointers.glVertexAttrib4Nsv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Nsv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Nub")) |proc| {
function_pointers.glVertexAttrib4Nub = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Nub not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Nubv")) |proc| {
function_pointers.glVertexAttrib4Nubv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Nubv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Nuiv")) |proc| {
function_pointers.glVertexAttrib4Nuiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Nuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4Nusv")) |proc| {
function_pointers.glVertexAttrib4Nusv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4Nusv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4bv")) |proc| {
function_pointers.glVertexAttrib4bv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4bv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4d")) |proc| {
function_pointers.glVertexAttrib4d = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4d not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4dv")) |proc| {
function_pointers.glVertexAttrib4dv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4dv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4f")) |proc| {
function_pointers.glVertexAttrib4f = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4f not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4fv")) |proc| {
function_pointers.glVertexAttrib4fv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4iv")) |proc| {
function_pointers.glVertexAttrib4iv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4s")) |proc| {
function_pointers.glVertexAttrib4s = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4s not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4sv")) |proc| {
function_pointers.glVertexAttrib4sv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4sv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4ubv")) |proc| {
function_pointers.glVertexAttrib4ubv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4ubv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4uiv")) |proc| {
function_pointers.glVertexAttrib4uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttrib4usv")) |proc| {
function_pointers.glVertexAttrib4usv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttrib4usv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribPointer")) |proc| {
function_pointers.glVertexAttribPointer = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribPointer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix2x3fv")) |proc| {
function_pointers.glUniformMatrix2x3fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix2x3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix3x2fv")) |proc| {
function_pointers.glUniformMatrix3x2fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix3x2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix2x4fv")) |proc| {
function_pointers.glUniformMatrix2x4fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix2x4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix4x2fv")) |proc| {
function_pointers.glUniformMatrix4x2fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix4x2fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix3x4fv")) |proc| {
function_pointers.glUniformMatrix3x4fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix3x4fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformMatrix4x3fv")) |proc| {
function_pointers.glUniformMatrix4x3fv = @ptrCast(proc);
} else {
log.err("entry point glUniformMatrix4x3fv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glColorMaski")) |proc| {
function_pointers.glColorMaski = @ptrCast(proc);
} else {
log.err("entry point glColorMaski not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetBooleani_v")) |proc| {
function_pointers.glGetBooleani_v = @ptrCast(proc);
} else {
log.err("entry point glGetBooleani_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetIntegeri_v")) |proc| {
function_pointers.glGetIntegeri_v = @ptrCast(proc);
} else {
log.err("entry point glGetIntegeri_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEnablei")) |proc| {
function_pointers.glEnablei = @ptrCast(proc);
} else {
log.err("entry point glEnablei not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDisablei")) |proc| {
function_pointers.glDisablei = @ptrCast(proc);
} else {
log.err("entry point glDisablei not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsEnabledi")) |proc| {
function_pointers.glIsEnabledi = @ptrCast(proc);
} else {
log.err("entry point glIsEnabledi not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBeginTransformFeedback")) |proc| {
function_pointers.glBeginTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glBeginTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEndTransformFeedback")) |proc| {
function_pointers.glEndTransformFeedback = @ptrCast(proc);
} else {
log.err("entry point glEndTransformFeedback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindBufferRange")) |proc| {
function_pointers.glBindBufferRange = @ptrCast(proc);
} else {
log.err("entry point glBindBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindBufferBase")) |proc| {
function_pointers.glBindBufferBase = @ptrCast(proc);
} else {
log.err("entry point glBindBufferBase not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTransformFeedbackVaryings")) |proc| {
function_pointers.glTransformFeedbackVaryings = @ptrCast(proc);
} else {
log.err("entry point glTransformFeedbackVaryings not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTransformFeedbackVarying")) |proc| {
function_pointers.glGetTransformFeedbackVarying = @ptrCast(proc);
} else {
log.err("entry point glGetTransformFeedbackVarying not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClampColor")) |proc| {
function_pointers.glClampColor = @ptrCast(proc);
} else {
log.err("entry point glClampColor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBeginConditionalRender")) |proc| {
function_pointers.glBeginConditionalRender = @ptrCast(proc);
} else {
log.err("entry point glBeginConditionalRender not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEndConditionalRender")) |proc| {
function_pointers.glEndConditionalRender = @ptrCast(proc);
} else {
log.err("entry point glEndConditionalRender not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribIPointer")) |proc| {
function_pointers.glVertexAttribIPointer = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribIPointer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribIiv")) |proc| {
function_pointers.glGetVertexAttribIiv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexAttribIuiv")) |proc| {
function_pointers.glGetVertexAttribIuiv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexAttribIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI1i")) |proc| {
function_pointers.glVertexAttribI1i = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI1i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI2i")) |proc| {
function_pointers.glVertexAttribI2i = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI2i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI3i")) |proc| {
function_pointers.glVertexAttribI3i = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI3i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4i")) |proc| {
function_pointers.glVertexAttribI4i = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4i not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI1ui")) |proc| {
function_pointers.glVertexAttribI1ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI1ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI2ui")) |proc| {
function_pointers.glVertexAttribI2ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI2ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI3ui")) |proc| {
function_pointers.glVertexAttribI3ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI3ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4ui")) |proc| {
function_pointers.glVertexAttribI4ui = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI1iv")) |proc| {
function_pointers.glVertexAttribI1iv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI1iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI2iv")) |proc| {
function_pointers.glVertexAttribI2iv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI2iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI3iv")) |proc| {
function_pointers.glVertexAttribI3iv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI3iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4iv")) |proc| {
function_pointers.glVertexAttribI4iv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI1uiv")) |proc| {
function_pointers.glVertexAttribI1uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI1uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI2uiv")) |proc| {
function_pointers.glVertexAttribI2uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI2uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI3uiv")) |proc| {
function_pointers.glVertexAttribI3uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI3uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4uiv")) |proc| {
function_pointers.glVertexAttribI4uiv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4bv")) |proc| {
function_pointers.glVertexAttribI4bv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4bv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4sv")) |proc| {
function_pointers.glVertexAttribI4sv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4sv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4ubv")) |proc| {
function_pointers.glVertexAttribI4ubv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4ubv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribI4usv")) |proc| {
function_pointers.glVertexAttribI4usv = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribI4usv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformuiv")) |proc| {
function_pointers.glGetUniformuiv = @ptrCast(proc);
} else {
log.err("entry point glGetUniformuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindFragDataLocation")) |proc| {
function_pointers.glBindFragDataLocation = @ptrCast(proc);
} else {
log.err("entry point glBindFragDataLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetFragDataLocation")) |proc| {
function_pointers.glGetFragDataLocation = @ptrCast(proc);
} else {
log.err("entry point glGetFragDataLocation not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1ui")) |proc| {
function_pointers.glUniform1ui = @ptrCast(proc);
} else {
log.err("entry point glUniform1ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2ui")) |proc| {
function_pointers.glUniform2ui = @ptrCast(proc);
} else {
log.err("entry point glUniform2ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3ui")) |proc| {
function_pointers.glUniform3ui = @ptrCast(proc);
} else {
log.err("entry point glUniform3ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4ui")) |proc| {
function_pointers.glUniform4ui = @ptrCast(proc);
} else {
log.err("entry point glUniform4ui not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform1uiv")) |proc| {
function_pointers.glUniform1uiv = @ptrCast(proc);
} else {
log.err("entry point glUniform1uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform2uiv")) |proc| {
function_pointers.glUniform2uiv = @ptrCast(proc);
} else {
log.err("entry point glUniform2uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform3uiv")) |proc| {
function_pointers.glUniform3uiv = @ptrCast(proc);
} else {
log.err("entry point glUniform3uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniform4uiv")) |proc| {
function_pointers.glUniform4uiv = @ptrCast(proc);
} else {
log.err("entry point glUniform4uiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexParameterIiv")) |proc| {
function_pointers.glTexParameterIiv = @ptrCast(proc);
} else {
log.err("entry point glTexParameterIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexParameterIuiv")) |proc| {
function_pointers.glTexParameterIuiv = @ptrCast(proc);
} else {
log.err("entry point glTexParameterIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexParameterIiv")) |proc| {
function_pointers.glGetTexParameterIiv = @ptrCast(proc);
} else {
log.err("entry point glGetTexParameterIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTexParameterIuiv")) |proc| {
function_pointers.glGetTexParameterIuiv = @ptrCast(proc);
} else {
log.err("entry point glGetTexParameterIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearBufferiv")) |proc| {
function_pointers.glClearBufferiv = @ptrCast(proc);
} else {
log.err("entry point glClearBufferiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearBufferuiv")) |proc| {
function_pointers.glClearBufferuiv = @ptrCast(proc);
} else {
log.err("entry point glClearBufferuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearBufferfv")) |proc| {
function_pointers.glClearBufferfv = @ptrCast(proc);
} else {
log.err("entry point glClearBufferfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearBufferfi")) |proc| {
function_pointers.glClearBufferfi = @ptrCast(proc);
} else {
log.err("entry point glClearBufferfi not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetStringi")) |proc| {
function_pointers.glGetStringi = @ptrCast(proc);
} else {
log.err("entry point glGetStringi not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsRenderbuffer")) |proc| {
function_pointers.glIsRenderbuffer = @ptrCast(proc);
} else {
log.err("entry point glIsRenderbuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindRenderbuffer")) |proc| {
function_pointers.glBindRenderbuffer = @ptrCast(proc);
} else {
log.err("entry point glBindRenderbuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteRenderbuffers")) |proc| {
function_pointers.glDeleteRenderbuffers = @ptrCast(proc);
} else {
log.err("entry point glDeleteRenderbuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenRenderbuffers")) |proc| {
function_pointers.glGenRenderbuffers = @ptrCast(proc);
} else {
log.err("entry point glGenRenderbuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glRenderbufferStorage")) |proc| {
function_pointers.glRenderbufferStorage = @ptrCast(proc);
} else {
log.err("entry point glRenderbufferStorage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetRenderbufferParameteriv")) |proc| {
function_pointers.glGetRenderbufferParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetRenderbufferParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsFramebuffer")) |proc| {
function_pointers.glIsFramebuffer = @ptrCast(proc);
} else {
log.err("entry point glIsFramebuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindFramebuffer")) |proc| {
function_pointers.glBindFramebuffer = @ptrCast(proc);
} else {
log.err("entry point glBindFramebuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteFramebuffers")) |proc| {
function_pointers.glDeleteFramebuffers = @ptrCast(proc);
} else {
log.err("entry point glDeleteFramebuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenFramebuffers")) |proc| {
function_pointers.glGenFramebuffers = @ptrCast(proc);
} else {
log.err("entry point glGenFramebuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCheckFramebufferStatus")) |proc| {
function_pointers.glCheckFramebufferStatus = @ptrCast(proc);
} else {
log.err("entry point glCheckFramebufferStatus not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferTexture1D")) |proc| {
function_pointers.glFramebufferTexture1D = @ptrCast(proc);
} else {
log.err("entry point glFramebufferTexture1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferTexture2D")) |proc| {
function_pointers.glFramebufferTexture2D = @ptrCast(proc);
} else {
log.err("entry point glFramebufferTexture2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferTexture3D")) |proc| {
function_pointers.glFramebufferTexture3D = @ptrCast(proc);
} else {
log.err("entry point glFramebufferTexture3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferRenderbuffer")) |proc| {
function_pointers.glFramebufferRenderbuffer = @ptrCast(proc);
} else {
log.err("entry point glFramebufferRenderbuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetFramebufferAttachmentParameteriv")) |proc| {
function_pointers.glGetFramebufferAttachmentParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetFramebufferAttachmentParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenerateMipmap")) |proc| {
function_pointers.glGenerateMipmap = @ptrCast(proc);
} else {
log.err("entry point glGenerateMipmap not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlitFramebuffer")) |proc| {
function_pointers.glBlitFramebuffer = @ptrCast(proc);
} else {
log.err("entry point glBlitFramebuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glRenderbufferStorageMultisample")) |proc| {
function_pointers.glRenderbufferStorageMultisample = @ptrCast(proc);
} else {
log.err("entry point glRenderbufferStorageMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFramebufferTextureLayer")) |proc| {
function_pointers.glFramebufferTextureLayer = @ptrCast(proc);
} else {
log.err("entry point glFramebufferTextureLayer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMapBufferRange")) |proc| {
function_pointers.glMapBufferRange = @ptrCast(proc);
} else {
log.err("entry point glMapBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFlushMappedBufferRange")) |proc| {
function_pointers.glFlushMappedBufferRange = @ptrCast(proc);
} else {
log.err("entry point glFlushMappedBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindVertexArray")) |proc| {
function_pointers.glBindVertexArray = @ptrCast(proc);
} else {
log.err("entry point glBindVertexArray not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDeleteVertexArrays")) |proc| {
function_pointers.glDeleteVertexArrays = @ptrCast(proc);
} else {
log.err("entry point glDeleteVertexArrays not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenVertexArrays")) |proc| {
function_pointers.glGenVertexArrays = @ptrCast(proc);
} else {
log.err("entry point glGenVertexArrays not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glIsVertexArray")) |proc| {
function_pointers.glIsVertexArray = @ptrCast(proc);
} else {
log.err("entry point glIsVertexArray not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawArraysInstanced")) |proc| {
function_pointers.glDrawArraysInstanced = @ptrCast(proc);
} else {
log.err("entry point glDrawArraysInstanced not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDrawElementsInstanced")) |proc| {
function_pointers.glDrawElementsInstanced = @ptrCast(proc);
} else {
log.err("entry point glDrawElementsInstanced not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexBuffer")) |proc| {
function_pointers.glTexBuffer = @ptrCast(proc);
} else {
log.err("entry point glTexBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPrimitiveRestartIndex")) |proc| {
function_pointers.glPrimitiveRestartIndex = @ptrCast(proc);
} else {
log.err("entry point glPrimitiveRestartIndex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyBufferSubData")) |proc| {
function_pointers.glCopyBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glCopyBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformIndices")) |proc| {
function_pointers.glGetUniformIndices = @ptrCast(proc);
} else {
log.err("entry point glGetUniformIndices not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveUniformsiv")) |proc| {
function_pointers.glGetActiveUniformsiv = @ptrCast(proc);
} else {
log.err("entry point glGetActiveUniformsiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveUniformName")) |proc| {
function_pointers.glGetActiveUniformName = @ptrCast(proc);
} else {
log.err("entry point glGetActiveUniformName not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetUniformBlockIndex")) |proc| {
function_pointers.glGetUniformBlockIndex = @ptrCast(proc);
} else {
log.err("entry point glGetUniformBlockIndex not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveUniformBlockiv")) |proc| {
function_pointers.glGetActiveUniformBlockiv = @ptrCast(proc);
} else {
log.err("entry point glGetActiveUniformBlockiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetActiveUniformBlockName")) |proc| {
function_pointers.glGetActiveUniformBlockName = @ptrCast(proc);
} else {
log.err("entry point glGetActiveUniformBlockName not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUniformBlockBinding")) |proc| {
function_pointers.glUniformBlockBinding = @ptrCast(proc);
} else {
log.err("entry point glUniformBlockBinding not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTexStorage3DMultisample")) |proc| {
function_pointers.glTexStorage3DMultisample = @ptrCast(proc);
} else {
log.err("entry point glTexStorage3DMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureView")) |proc| {
function_pointers.glTextureView = @ptrCast(proc);
} else {
log.err("entry point glTextureView not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindVertexBuffer")) |proc| {
function_pointers.glBindVertexBuffer = @ptrCast(proc);
} else {
log.err("entry point glBindVertexBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribFormat")) |proc| {
function_pointers.glVertexAttribFormat = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribIFormat")) |proc| {
function_pointers.glVertexAttribIFormat = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribIFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribLFormat")) |proc| {
function_pointers.glVertexAttribLFormat = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribLFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexAttribBinding")) |proc| {
function_pointers.glVertexAttribBinding = @ptrCast(proc);
} else {
log.err("entry point glVertexAttribBinding not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexBindingDivisor")) |proc| {
function_pointers.glVertexBindingDivisor = @ptrCast(proc);
} else {
log.err("entry point glVertexBindingDivisor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDebugMessageControl")) |proc| {
function_pointers.glDebugMessageControl = @ptrCast(proc);
} else {
log.err("entry point glDebugMessageControl not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDebugMessageInsert")) |proc| {
function_pointers.glDebugMessageInsert = @ptrCast(proc);
} else {
log.err("entry point glDebugMessageInsert not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDebugMessageCallback")) |proc| {
function_pointers.glDebugMessageCallback = @ptrCast(proc);
} else {
log.err("entry point glDebugMessageCallback not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetDebugMessageLog")) |proc| {
function_pointers.glGetDebugMessageLog = @ptrCast(proc);
} else {
log.err("entry point glGetDebugMessageLog not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPushDebugGroup")) |proc| {
function_pointers.glPushDebugGroup = @ptrCast(proc);
} else {
log.err("entry point glPushDebugGroup not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glPopDebugGroup")) |proc| {
function_pointers.glPopDebugGroup = @ptrCast(proc);
} else {
log.err("entry point glPopDebugGroup not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glObjectLabel")) |proc| {
function_pointers.glObjectLabel = @ptrCast(proc);
} else {
log.err("entry point glObjectLabel not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetObjectLabel")) |proc| {
function_pointers.glGetObjectLabel = @ptrCast(proc);
} else {
log.err("entry point glGetObjectLabel not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glObjectPtrLabel")) |proc| {
function_pointers.glObjectPtrLabel = @ptrCast(proc);
} else {
log.err("entry point glObjectPtrLabel not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetObjectPtrLabel")) |proc| {
function_pointers.glGetObjectPtrLabel = @ptrCast(proc);
} else {
log.err("entry point glGetObjectPtrLabel not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetPointerv")) |proc| {
function_pointers.glGetPointerv = @ptrCast(proc);
} else {
log.err("entry point glGetPointerv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBufferStorage")) |proc| {
function_pointers.glBufferStorage = @ptrCast(proc);
} else {
log.err("entry point glBufferStorage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearTexImage")) |proc| {
function_pointers.glClearTexImage = @ptrCast(proc);
} else {
log.err("entry point glClearTexImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearTexSubImage")) |proc| {
function_pointers.glClearTexSubImage = @ptrCast(proc);
} else {
log.err("entry point glClearTexSubImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindBuffersBase")) |proc| {
function_pointers.glBindBuffersBase = @ptrCast(proc);
} else {
log.err("entry point glBindBuffersBase not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindBuffersRange")) |proc| {
function_pointers.glBindBuffersRange = @ptrCast(proc);
} else {
log.err("entry point glBindBuffersRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindTextures")) |proc| {
function_pointers.glBindTextures = @ptrCast(proc);
} else {
log.err("entry point glBindTextures not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindSamplers")) |proc| {
function_pointers.glBindSamplers = @ptrCast(proc);
} else {
log.err("entry point glBindSamplers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindImageTextures")) |proc| {
function_pointers.glBindImageTextures = @ptrCast(proc);
} else {
log.err("entry point glBindImageTextures not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindVertexBuffers")) |proc| {
function_pointers.glBindVertexBuffers = @ptrCast(proc);
} else {
log.err("entry point glBindVertexBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClipControl")) |proc| {
function_pointers.glClipControl = @ptrCast(proc);
} else {
log.err("entry point glClipControl not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateTransformFeedbacks")) |proc| {
function_pointers.glCreateTransformFeedbacks = @ptrCast(proc);
} else {
log.err("entry point glCreateTransformFeedbacks not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTransformFeedbackBufferBase")) |proc| {
function_pointers.glTransformFeedbackBufferBase = @ptrCast(proc);
} else {
log.err("entry point glTransformFeedbackBufferBase not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTransformFeedbackBufferRange")) |proc| {
function_pointers.glTransformFeedbackBufferRange = @ptrCast(proc);
} else {
log.err("entry point glTransformFeedbackBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTransformFeedbackiv")) |proc| {
function_pointers.glGetTransformFeedbackiv = @ptrCast(proc);
} else {
log.err("entry point glGetTransformFeedbackiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTransformFeedbacki_v")) |proc| {
function_pointers.glGetTransformFeedbacki_v = @ptrCast(proc);
} else {
log.err("entry point glGetTransformFeedbacki_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTransformFeedbacki64_v")) |proc| {
function_pointers.glGetTransformFeedbacki64_v = @ptrCast(proc);
} else {
log.err("entry point glGetTransformFeedbacki64_v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateBuffers")) |proc| {
function_pointers.glCreateBuffers = @ptrCast(proc);
} else {
log.err("entry point glCreateBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedBufferStorage")) |proc| {
function_pointers.glNamedBufferStorage = @ptrCast(proc);
} else {
log.err("entry point glNamedBufferStorage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedBufferData")) |proc| {
function_pointers.glNamedBufferData = @ptrCast(proc);
} else {
log.err("entry point glNamedBufferData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedBufferSubData")) |proc| {
function_pointers.glNamedBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glNamedBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyNamedBufferSubData")) |proc| {
function_pointers.glCopyNamedBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glCopyNamedBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearNamedBufferData")) |proc| {
function_pointers.glClearNamedBufferData = @ptrCast(proc);
} else {
log.err("entry point glClearNamedBufferData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearNamedBufferSubData")) |proc| {
function_pointers.glClearNamedBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glClearNamedBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMapNamedBuffer")) |proc| {
function_pointers.glMapNamedBuffer = @ptrCast(proc);
} else {
log.err("entry point glMapNamedBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMapNamedBufferRange")) |proc| {
function_pointers.glMapNamedBufferRange = @ptrCast(proc);
} else {
log.err("entry point glMapNamedBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glUnmapNamedBuffer")) |proc| {
function_pointers.glUnmapNamedBuffer = @ptrCast(proc);
} else {
log.err("entry point glUnmapNamedBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glFlushMappedNamedBufferRange")) |proc| {
function_pointers.glFlushMappedNamedBufferRange = @ptrCast(proc);
} else {
log.err("entry point glFlushMappedNamedBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedBufferParameteriv")) |proc| {
function_pointers.glGetNamedBufferParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetNamedBufferParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedBufferParameteri64v")) |proc| {
function_pointers.glGetNamedBufferParameteri64v = @ptrCast(proc);
} else {
log.err("entry point glGetNamedBufferParameteri64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedBufferPointerv")) |proc| {
function_pointers.glGetNamedBufferPointerv = @ptrCast(proc);
} else {
log.err("entry point glGetNamedBufferPointerv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedBufferSubData")) |proc| {
function_pointers.glGetNamedBufferSubData = @ptrCast(proc);
} else {
log.err("entry point glGetNamedBufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateFramebuffers")) |proc| {
function_pointers.glCreateFramebuffers = @ptrCast(proc);
} else {
log.err("entry point glCreateFramebuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferRenderbuffer")) |proc| {
function_pointers.glNamedFramebufferRenderbuffer = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferRenderbuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferParameteri")) |proc| {
function_pointers.glNamedFramebufferParameteri = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferTexture")) |proc| {
function_pointers.glNamedFramebufferTexture = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferTexture not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferTextureLayer")) |proc| {
function_pointers.glNamedFramebufferTextureLayer = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferTextureLayer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferDrawBuffer")) |proc| {
function_pointers.glNamedFramebufferDrawBuffer = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferDrawBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferDrawBuffers")) |proc| {
function_pointers.glNamedFramebufferDrawBuffers = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferDrawBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedFramebufferReadBuffer")) |proc| {
function_pointers.glNamedFramebufferReadBuffer = @ptrCast(proc);
} else {
log.err("entry point glNamedFramebufferReadBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateNamedFramebufferData")) |proc| {
function_pointers.glInvalidateNamedFramebufferData = @ptrCast(proc);
} else {
log.err("entry point glInvalidateNamedFramebufferData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glInvalidateNamedFramebufferSubData")) |proc| {
function_pointers.glInvalidateNamedFramebufferSubData = @ptrCast(proc);
} else {
log.err("entry point glInvalidateNamedFramebufferSubData not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearNamedFramebufferiv")) |proc| {
function_pointers.glClearNamedFramebufferiv = @ptrCast(proc);
} else {
log.err("entry point glClearNamedFramebufferiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearNamedFramebufferuiv")) |proc| {
function_pointers.glClearNamedFramebufferuiv = @ptrCast(proc);
} else {
log.err("entry point glClearNamedFramebufferuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearNamedFramebufferfv")) |proc| {
function_pointers.glClearNamedFramebufferfv = @ptrCast(proc);
} else {
log.err("entry point glClearNamedFramebufferfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glClearNamedFramebufferfi")) |proc| {
function_pointers.glClearNamedFramebufferfi = @ptrCast(proc);
} else {
log.err("entry point glClearNamedFramebufferfi not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBlitNamedFramebuffer")) |proc| {
function_pointers.glBlitNamedFramebuffer = @ptrCast(proc);
} else {
log.err("entry point glBlitNamedFramebuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCheckNamedFramebufferStatus")) |proc| {
function_pointers.glCheckNamedFramebufferStatus = @ptrCast(proc);
} else {
log.err("entry point glCheckNamedFramebufferStatus not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedFramebufferParameteriv")) |proc| {
function_pointers.glGetNamedFramebufferParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetNamedFramebufferParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedFramebufferAttachmentParameteriv")) |proc| {
function_pointers.glGetNamedFramebufferAttachmentParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetNamedFramebufferAttachmentParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateRenderbuffers")) |proc| {
function_pointers.glCreateRenderbuffers = @ptrCast(proc);
} else {
log.err("entry point glCreateRenderbuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedRenderbufferStorage")) |proc| {
function_pointers.glNamedRenderbufferStorage = @ptrCast(proc);
} else {
log.err("entry point glNamedRenderbufferStorage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glNamedRenderbufferStorageMultisample")) |proc| {
function_pointers.glNamedRenderbufferStorageMultisample = @ptrCast(proc);
} else {
log.err("entry point glNamedRenderbufferStorageMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetNamedRenderbufferParameteriv")) |proc| {
function_pointers.glGetNamedRenderbufferParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetNamedRenderbufferParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateTextures")) |proc| {
function_pointers.glCreateTextures = @ptrCast(proc);
} else {
log.err("entry point glCreateTextures not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureBuffer")) |proc| {
function_pointers.glTextureBuffer = @ptrCast(proc);
} else {
log.err("entry point glTextureBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureBufferRange")) |proc| {
function_pointers.glTextureBufferRange = @ptrCast(proc);
} else {
log.err("entry point glTextureBufferRange not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureStorage1D")) |proc| {
function_pointers.glTextureStorage1D = @ptrCast(proc);
} else {
log.err("entry point glTextureStorage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureStorage2D")) |proc| {
function_pointers.glTextureStorage2D = @ptrCast(proc);
} else {
log.err("entry point glTextureStorage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureStorage3D")) |proc| {
function_pointers.glTextureStorage3D = @ptrCast(proc);
} else {
log.err("entry point glTextureStorage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureStorage2DMultisample")) |proc| {
function_pointers.glTextureStorage2DMultisample = @ptrCast(proc);
} else {
log.err("entry point glTextureStorage2DMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureStorage3DMultisample")) |proc| {
function_pointers.glTextureStorage3DMultisample = @ptrCast(proc);
} else {
log.err("entry point glTextureStorage3DMultisample not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureSubImage1D")) |proc| {
function_pointers.glTextureSubImage1D = @ptrCast(proc);
} else {
log.err("entry point glTextureSubImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureSubImage2D")) |proc| {
function_pointers.glTextureSubImage2D = @ptrCast(proc);
} else {
log.err("entry point glTextureSubImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureSubImage3D")) |proc| {
function_pointers.glTextureSubImage3D = @ptrCast(proc);
} else {
log.err("entry point glTextureSubImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTextureSubImage1D")) |proc| {
function_pointers.glCompressedTextureSubImage1D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTextureSubImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTextureSubImage2D")) |proc| {
function_pointers.glCompressedTextureSubImage2D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTextureSubImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCompressedTextureSubImage3D")) |proc| {
function_pointers.glCompressedTextureSubImage3D = @ptrCast(proc);
} else {
log.err("entry point glCompressedTextureSubImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTextureSubImage1D")) |proc| {
function_pointers.glCopyTextureSubImage1D = @ptrCast(proc);
} else {
log.err("entry point glCopyTextureSubImage1D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTextureSubImage2D")) |proc| {
function_pointers.glCopyTextureSubImage2D = @ptrCast(proc);
} else {
log.err("entry point glCopyTextureSubImage2D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCopyTextureSubImage3D")) |proc| {
function_pointers.glCopyTextureSubImage3D = @ptrCast(proc);
} else {
log.err("entry point glCopyTextureSubImage3D not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureParameterf")) |proc| {
function_pointers.glTextureParameterf = @ptrCast(proc);
} else {
log.err("entry point glTextureParameterf not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureParameterfv")) |proc| {
function_pointers.glTextureParameterfv = @ptrCast(proc);
} else {
log.err("entry point glTextureParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureParameteri")) |proc| {
function_pointers.glTextureParameteri = @ptrCast(proc);
} else {
log.err("entry point glTextureParameteri not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureParameterIiv")) |proc| {
function_pointers.glTextureParameterIiv = @ptrCast(proc);
} else {
log.err("entry point glTextureParameterIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureParameterIuiv")) |proc| {
function_pointers.glTextureParameterIuiv = @ptrCast(proc);
} else {
log.err("entry point glTextureParameterIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureParameteriv")) |proc| {
function_pointers.glTextureParameteriv = @ptrCast(proc);
} else {
log.err("entry point glTextureParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGenerateTextureMipmap")) |proc| {
function_pointers.glGenerateTextureMipmap = @ptrCast(proc);
} else {
log.err("entry point glGenerateTextureMipmap not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glBindTextureUnit")) |proc| {
function_pointers.glBindTextureUnit = @ptrCast(proc);
} else {
log.err("entry point glBindTextureUnit not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureImage")) |proc| {
function_pointers.glGetTextureImage = @ptrCast(proc);
} else {
log.err("entry point glGetTextureImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetCompressedTextureImage")) |proc| {
function_pointers.glGetCompressedTextureImage = @ptrCast(proc);
} else {
log.err("entry point glGetCompressedTextureImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureLevelParameterfv")) |proc| {
function_pointers.glGetTextureLevelParameterfv = @ptrCast(proc);
} else {
log.err("entry point glGetTextureLevelParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureLevelParameteriv")) |proc| {
function_pointers.glGetTextureLevelParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetTextureLevelParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureParameterfv")) |proc| {
function_pointers.glGetTextureParameterfv = @ptrCast(proc);
} else {
log.err("entry point glGetTextureParameterfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureParameterIiv")) |proc| {
function_pointers.glGetTextureParameterIiv = @ptrCast(proc);
} else {
log.err("entry point glGetTextureParameterIiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureParameterIuiv")) |proc| {
function_pointers.glGetTextureParameterIuiv = @ptrCast(proc);
} else {
log.err("entry point glGetTextureParameterIuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureParameteriv")) |proc| {
function_pointers.glGetTextureParameteriv = @ptrCast(proc);
} else {
log.err("entry point glGetTextureParameteriv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateVertexArrays")) |proc| {
function_pointers.glCreateVertexArrays = @ptrCast(proc);
} else {
log.err("entry point glCreateVertexArrays not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glDisableVertexArrayAttrib")) |proc| {
function_pointers.glDisableVertexArrayAttrib = @ptrCast(proc);
} else {
log.err("entry point glDisableVertexArrayAttrib not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glEnableVertexArrayAttrib")) |proc| {
function_pointers.glEnableVertexArrayAttrib = @ptrCast(proc);
} else {
log.err("entry point glEnableVertexArrayAttrib not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayElementBuffer")) |proc| {
function_pointers.glVertexArrayElementBuffer = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayElementBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayVertexBuffer")) |proc| {
function_pointers.glVertexArrayVertexBuffer = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayVertexBuffer not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayVertexBuffers")) |proc| {
function_pointers.glVertexArrayVertexBuffers = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayVertexBuffers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayAttribBinding")) |proc| {
function_pointers.glVertexArrayAttribBinding = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayAttribBinding not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayAttribFormat")) |proc| {
function_pointers.glVertexArrayAttribFormat = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayAttribFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayAttribIFormat")) |proc| {
function_pointers.glVertexArrayAttribIFormat = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayAttribIFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayAttribLFormat")) |proc| {
function_pointers.glVertexArrayAttribLFormat = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayAttribLFormat not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glVertexArrayBindingDivisor")) |proc| {
function_pointers.glVertexArrayBindingDivisor = @ptrCast(proc);
} else {
log.err("entry point glVertexArrayBindingDivisor not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexArrayiv")) |proc| {
function_pointers.glGetVertexArrayiv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexArrayiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexArrayIndexediv")) |proc| {
function_pointers.glGetVertexArrayIndexediv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexArrayIndexediv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetVertexArrayIndexed64iv")) |proc| {
function_pointers.glGetVertexArrayIndexed64iv = @ptrCast(proc);
} else {
log.err("entry point glGetVertexArrayIndexed64iv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateSamplers")) |proc| {
function_pointers.glCreateSamplers = @ptrCast(proc);
} else {
log.err("entry point glCreateSamplers not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateProgramPipelines")) |proc| {
function_pointers.glCreateProgramPipelines = @ptrCast(proc);
} else {
log.err("entry point glCreateProgramPipelines not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glCreateQueries")) |proc| {
function_pointers.glCreateQueries = @ptrCast(proc);
} else {
log.err("entry point glCreateQueries not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryBufferObjecti64v")) |proc| {
function_pointers.glGetQueryBufferObjecti64v = @ptrCast(proc);
} else {
log.err("entry point glGetQueryBufferObjecti64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryBufferObjectiv")) |proc| {
function_pointers.glGetQueryBufferObjectiv = @ptrCast(proc);
} else {
log.err("entry point glGetQueryBufferObjectiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryBufferObjectui64v")) |proc| {
function_pointers.glGetQueryBufferObjectui64v = @ptrCast(proc);
} else {
log.err("entry point glGetQueryBufferObjectui64v not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetQueryBufferObjectuiv")) |proc| {
function_pointers.glGetQueryBufferObjectuiv = @ptrCast(proc);
} else {
log.err("entry point glGetQueryBufferObjectuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glMemoryBarrierByRegion")) |proc| {
function_pointers.glMemoryBarrierByRegion = @ptrCast(proc);
} else {
log.err("entry point glMemoryBarrierByRegion not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetTextureSubImage")) |proc| {
function_pointers.glGetTextureSubImage = @ptrCast(proc);
} else {
log.err("entry point glGetTextureSubImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetCompressedTextureSubImage")) |proc| {
function_pointers.glGetCompressedTextureSubImage = @ptrCast(proc);
} else {
log.err("entry point glGetCompressedTextureSubImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetGraphicsResetStatus")) |proc| {
function_pointers.glGetGraphicsResetStatus = @ptrCast(proc);
} else {
log.err("entry point glGetGraphicsResetStatus not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetnCompressedTexImage")) |proc| {
function_pointers.glGetnCompressedTexImage = @ptrCast(proc);
} else {
log.err("entry point glGetnCompressedTexImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetnTexImage")) |proc| {
function_pointers.glGetnTexImage = @ptrCast(proc);
} else {
log.err("entry point glGetnTexImage not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetnUniformdv")) |proc| {
function_pointers.glGetnUniformdv = @ptrCast(proc);
} else {
log.err("entry point glGetnUniformdv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetnUniformfv")) |proc| {
function_pointers.glGetnUniformfv = @ptrCast(proc);
} else {
log.err("entry point glGetnUniformfv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetnUniformiv")) |proc| {
function_pointers.glGetnUniformiv = @ptrCast(proc);
} else {
log.err("entry point glGetnUniformiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glGetnUniformuiv")) |proc| {
function_pointers.glGetnUniformuiv = @ptrCast(proc);
} else {
log.err("entry point glGetnUniformuiv not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glReadnPixels")) |proc| {
function_pointers.glReadnPixels = @ptrCast(proc);
} else {
log.err("entry point glReadnPixels not found!", .{});
success = false;
}
if(get_proc_address(load_ctx, "glTextureBarrier")) |proc| {
function_pointers.glTextureBarrier = @ptrCast(proc);
} else {
log.err("entry point glTextureBarrier not found!", .{});
success = false;
}
if(!success)
return error.EntryPointNotFound;
}
const function_signatures = struct {
const glTexStorage2D = fn(_target: GLenum, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glTexStorage1D = fn(_target: GLenum, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei) callconv(.C) void;
const glDrawTransformFeedbackStreamInstanced = fn(_mode: GLenum, _id: GLuint, _stream: GLuint, _instancecount: GLsizei) callconv(.C) void;
const glDrawTransformFeedbackInstanced = fn(_mode: GLenum, _id: GLuint, _instancecount: GLsizei) callconv(.C) void;
const glTexStorage3D = fn(_target: GLenum, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei) callconv(.C) void;
const glMemoryBarrier = fn(_barriers: GLbitfield) callconv(.C) void;
const glBindImageTexture = fn(_unit: GLuint, _texture: GLuint, _level: GLint, _layered: GLboolean, _layer: GLint, _access: GLenum, _format: GLenum) callconv(.C) void;
const glGetActiveAtomicCounterBufferiv = fn(_program: GLuint, _bufferIndex: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetInternalformativ = fn(_target: GLenum, _internalformat: GLenum, _pname: GLenum, _count: GLsizei, _params: [*c]GLint) callconv(.C) void;
const glDrawElementsInstancedBaseVertexBaseInstance = fn(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei, _basevertex: GLint, _baseinstance: GLuint) callconv(.C) void;
const glDrawElementsInstancedBaseInstance = fn(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei, _baseinstance: GLuint) callconv(.C) void;
const glDrawArraysInstancedBaseInstance = fn(_mode: GLenum, _first: GLint, _count: GLsizei, _instancecount: GLsizei, _baseinstance: GLuint) callconv(.C) void;
const glGetDoublei_v = fn(_target: GLenum, _index: GLuint, _data: [*c]GLdouble) callconv(.C) void;
const glGetFloati_v = fn(_target: GLenum, _index: GLuint, _data: [*c]GLfloat) callconv(.C) void;
const glDepthRangeIndexed = fn(_index: GLuint, _n: GLdouble, _f: GLdouble) callconv(.C) void;
const glDepthRangeArrayv = fn(_first: GLuint, _count: GLsizei, _v: [*c]const GLdouble) callconv(.C) void;
const glScissorIndexedv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glScissorIndexed = fn(_index: GLuint, _left: GLint, _bottom: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glScissorArrayv = fn(_first: GLuint, _count: GLsizei, _v: [*c]const GLint) callconv(.C) void;
const glViewportIndexedfv = fn(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void;
const glViewportIndexedf = fn(_index: GLuint, _x: GLfloat, _y: GLfloat, _w: GLfloat, _h: GLfloat) callconv(.C) void;
const glViewportArrayv = fn(_first: GLuint, _count: GLsizei, _v: [*c]const GLfloat) callconv(.C) void;
const glGetVertexAttribLdv = fn(_index: GLuint, _pname: GLenum, _params: [*c]GLdouble) callconv(.C) void;
const glVertexAttribLPointer = fn(_index: GLuint, _size: GLint, _type: GLenum, _stride: GLsizei, _pointer: ?*const anyopaque) callconv(.C) void;
const glVertexAttribL4dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttribL3dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttribL2dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttribL1dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttribL4d = fn(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble) callconv(.C) void;
const glVertexAttribL3d = fn(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble) callconv(.C) void;
const glVertexAttribL2d = fn(_index: GLuint, _x: GLdouble, _y: GLdouble) callconv(.C) void;
const glVertexAttribL1d = fn(_index: GLuint, _x: GLdouble) callconv(.C) void;
const glValidateProgramPipeline = fn(_pipeline: GLuint) callconv(.C) void;
const glProgramUniformMatrix4x3dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix3x4dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix4x2dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix2x4dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix3x2dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix2x3dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix4x3fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix3x4fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix4x2fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix2x4fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix3x2fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix2x3fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix4dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix3dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix2dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniformMatrix4fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix3fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniformMatrix2fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniform4uiv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glProgramUniform4ui = fn(_program: GLuint, _location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint, _v3: GLuint) callconv(.C) void;
const glProgramUniform4dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniform4d = fn(_program: GLuint, _location: GLint, _v0: GLdouble, _v1: GLdouble, _v2: GLdouble, _v3: GLdouble) callconv(.C) void;
const glProgramUniform4fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniform4f = fn(_program: GLuint, _location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat, _v3: GLfloat) callconv(.C) void;
const glProgramUniform4iv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glProgramUniform4i = fn(_program: GLuint, _location: GLint, _v0: GLint, _v1: GLint, _v2: GLint, _v3: GLint) callconv(.C) void;
const glProgramUniform3uiv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glProgramUniform3ui = fn(_program: GLuint, _location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint) callconv(.C) void;
const glProgramUniform3dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniform3d = fn(_program: GLuint, _location: GLint, _v0: GLdouble, _v1: GLdouble, _v2: GLdouble) callconv(.C) void;
const glProgramUniform3fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniform3f = fn(_program: GLuint, _location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat) callconv(.C) void;
const glProgramUniform3iv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glProgramUniform3i = fn(_program: GLuint, _location: GLint, _v0: GLint, _v1: GLint, _v2: GLint) callconv(.C) void;
const glUseProgramStages = fn(_pipeline: GLuint, _stages: GLbitfield, _program: GLuint) callconv(.C) void;
const glProgramParameteri = fn(_program: GLuint, _pname: GLenum, _value: GLint) callconv(.C) void;
const glGetShaderPrecisionFormat = fn(_shadertype: GLenum, _precisiontype: GLenum, _range: [*c]GLint, _precision: [*c]GLint) callconv(.C) void;
const glShaderBinary = fn(_count: GLsizei, _shaders: [*c]const GLuint, _binaryFormat: GLenum, _binary: ?*const anyopaque, _length: GLsizei) callconv(.C) void;
const glReleaseShaderCompiler = fn() callconv(.C) void;
const glGetQueryIndexediv = fn(_target: GLenum, _index: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glEndQueryIndexed = fn(_target: GLenum, _index: GLuint) callconv(.C) void;
const glBeginQueryIndexed = fn(_target: GLenum, _index: GLuint, _id: GLuint) callconv(.C) void;
const glDrawTransformFeedbackStream = fn(_mode: GLenum, _id: GLuint, _stream: GLuint) callconv(.C) void;
const glDrawTransformFeedback = fn(_mode: GLenum, _id: GLuint) callconv(.C) void;
const glResumeTransformFeedback = fn() callconv(.C) void;
const glPauseTransformFeedback = fn() callconv(.C) void;
const glGetProgramStageiv = fn(_program: GLuint, _shadertype: GLenum, _pname: GLenum, _values: [*c]GLint) callconv(.C) void;
const glGetUniformSubroutineuiv = fn(_shadertype: GLenum, _location: GLint, _params: [*c]GLuint) callconv(.C) void;
const glUniformSubroutinesuiv = fn(_shadertype: GLenum, _count: GLsizei, _indices: [*c]const GLuint) callconv(.C) void;
const glGetActiveSubroutineName = fn(_program: GLuint, _shadertype: GLenum, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _name: [*c]GLchar) callconv(.C) void;
const glCullFace = fn(_mode: GLenum) callconv(.C) void;
const glFrontFace = fn(_mode: GLenum) callconv(.C) void;
const glHint = fn(_target: GLenum, _mode: GLenum) callconv(.C) void;
const glLineWidth = fn(_width: GLfloat) callconv(.C) void;
const glPointSize = fn(_size: GLfloat) callconv(.C) void;
const glPolygonMode = fn(_face: GLenum, _mode: GLenum) callconv(.C) void;
const glScissor = fn(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glTexParameterf = fn(_target: GLenum, _pname: GLenum, _param: GLfloat) callconv(.C) void;
const glTexParameterfv = fn(_target: GLenum, _pname: GLenum, _params: [*c]const GLfloat) callconv(.C) void;
const glTexParameteri = fn(_target: GLenum, _pname: GLenum, _param: GLint) callconv(.C) void;
const glTexParameteriv = fn(_target: GLenum, _pname: GLenum, _params: [*c]const GLint) callconv(.C) void;
const glTexImage1D = fn(_target: GLenum, _level: GLint, _internalformat: GLint, _width: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glTexImage2D = fn(_target: GLenum, _level: GLint, _internalformat: GLint, _width: GLsizei, _height: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glDrawBuffer = fn(_buf: GLenum) callconv(.C) void;
const glClear = fn(_mask: GLbitfield) callconv(.C) void;
const glClearColor = fn(_red: GLfloat, _green: GLfloat, _blue: GLfloat, _alpha: GLfloat) callconv(.C) void;
const glClearStencil = fn(_s: GLint) callconv(.C) void;
const glClearDepth = fn(_depth: GLdouble) callconv(.C) void;
const glStencilMask = fn(_mask: GLuint) callconv(.C) void;
const glColorMask = fn(_red: GLboolean, _green: GLboolean, _blue: GLboolean, _alpha: GLboolean) callconv(.C) void;
const glDepthMask = fn(_flag: GLboolean) callconv(.C) void;
const glDisable = fn(_cap: GLenum) callconv(.C) void;
const glEnable = fn(_cap: GLenum) callconv(.C) void;
const glFinish = fn() callconv(.C) void;
const glFlush = fn() callconv(.C) void;
const glBlendFunc = fn(_sfactor: GLenum, _dfactor: GLenum) callconv(.C) void;
const glLogicOp = fn(_opcode: GLenum) callconv(.C) void;
const glStencilFunc = fn(_func: GLenum, _ref: GLint, _mask: GLuint) callconv(.C) void;
const glStencilOp = fn(_fail: GLenum, _zfail: GLenum, _zpass: GLenum) callconv(.C) void;
const glDepthFunc = fn(_func: GLenum) callconv(.C) void;
const glPixelStoref = fn(_pname: GLenum, _param: GLfloat) callconv(.C) void;
const glPixelStorei = fn(_pname: GLenum, _param: GLint) callconv(.C) void;
const glReadBuffer = fn(_src: GLenum) callconv(.C) void;
const glReadPixels = fn(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*anyopaque) callconv(.C) void;
const glGetBooleanv = fn(_pname: GLenum, _data: [*c]GLboolean) callconv(.C) void;
const glGetDoublev = fn(_pname: GLenum, _data: [*c]GLdouble) callconv(.C) void;
const glGetError = fn() callconv(.C) GLenum;
const glGetFloatv = fn(_pname: GLenum, _data: [*c]GLfloat) callconv(.C) void;
const glGetIntegerv = fn(_pname: GLenum, _data: [*c]GLint) callconv(.C) void;
const glGetString = fn(_name: GLenum) callconv(.C) ?[*:0]const GLubyte;
const glGetTexImage = fn(_target: GLenum, _level: GLint, _format: GLenum, _type: GLenum, _pixels: ?*anyopaque) callconv(.C) void;
const glGetTexParameterfv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void;
const glGetTexParameteriv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetTexLevelParameterfv = fn(_target: GLenum, _level: GLint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void;
const glGetTexLevelParameteriv = fn(_target: GLenum, _level: GLint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glIsEnabled = fn(_cap: GLenum) callconv(.C) GLboolean;
const glDepthRange = fn(_n: GLdouble, _f: GLdouble) callconv(.C) void;
const glViewport = fn(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glTexStorage2DMultisample = fn(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void;
const glTexBufferRange = fn(_target: GLenum, _internalformat: GLenum, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void;
const glShaderStorageBlockBinding = fn(_program: GLuint, _storageBlockIndex: GLuint, _storageBlockBinding: GLuint) callconv(.C) void;
const glGetProgramResourceLocationIndex = fn(_program: GLuint, _programInterface: GLenum, _name: [*c]const GLchar) callconv(.C) GLint;
const glGetProgramResourceLocation = fn(_program: GLuint, _programInterface: GLenum, _name: [*c]const GLchar) callconv(.C) GLint;
const glGetProgramResourceiv = fn(_program: GLuint, _programInterface: GLenum, _index: GLuint, _propCount: GLsizei, _props: [*c]const GLenum, _count: GLsizei, _length: [*c]GLsizei, _params: [*c]GLint) callconv(.C) void;
const glGetProgramResourceName = fn(_program: GLuint, _programInterface: GLenum, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _name: [*c]GLchar) callconv(.C) void;
const glGetProgramResourceIndex = fn(_program: GLuint, _programInterface: GLenum, _name: [*c]const GLchar) callconv(.C) GLuint;
const glGetProgramInterfaceiv = fn(_program: GLuint, _programInterface: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glMultiDrawElementsIndirect = fn(_mode: GLenum, _type: GLenum, _indirect: ?*const anyopaque, _drawcount: GLsizei, _stride: GLsizei) callconv(.C) void;
const glMultiDrawArraysIndirect = fn(_mode: GLenum, _indirect: ?*const anyopaque, _drawcount: GLsizei, _stride: GLsizei) callconv(.C) void;
const glInvalidateSubFramebuffer = fn(_target: GLenum, _numAttachments: GLsizei, _attachments: [*c]const GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glInvalidateFramebuffer = fn(_target: GLenum, _numAttachments: GLsizei, _attachments: [*c]const GLenum) callconv(.C) void;
const glInvalidateBufferData = fn(_buffer: GLuint) callconv(.C) void;
const glInvalidateBufferSubData = fn(_buffer: GLuint, _offset: GLintptr, _length: GLsizeiptr) callconv(.C) void;
const glInvalidateTexImage = fn(_texture: GLuint, _level: GLint) callconv(.C) void;
const glInvalidateTexSubImage = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei) callconv(.C) void;
const glGetInternalformati64v = fn(_target: GLenum, _internalformat: GLenum, _pname: GLenum, _count: GLsizei, _params: [*c]GLint64) callconv(.C) void;
const glGetFramebufferParameteriv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glFramebufferParameteri = fn(_target: GLenum, _pname: GLenum, _param: GLint) callconv(.C) void;
const glCopyImageSubData = fn(_srcName: GLuint, _srcTarget: GLenum, _srcLevel: GLint, _srcX: GLint, _srcY: GLint, _srcZ: GLint, _dstName: GLuint, _dstTarget: GLenum, _dstLevel: GLint, _dstX: GLint, _dstY: GLint, _dstZ: GLint, _srcWidth: GLsizei, _srcHeight: GLsizei, _srcDepth: GLsizei) callconv(.C) void;
const glDispatchComputeIndirect = fn(_indirect: GLintptr) callconv(.C) void;
const glDispatchCompute = fn(_num_groups_x: GLuint, _num_groups_y: GLuint, _num_groups_z: GLuint) callconv(.C) void;
const glClearBufferSubData = fn(_target: GLenum, _internalformat: GLenum, _offset: GLintptr, _size: GLsizeiptr, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void;
const glClearBufferData = fn(_target: GLenum, _internalformat: GLenum, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void;
const glGetProgramPipelineInfoLog = fn(_pipeline: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _infoLog: [*c]GLchar) callconv(.C) void;
const glProgramUniform2uiv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glProgramUniform2ui = fn(_program: GLuint, _location: GLint, _v0: GLuint, _v1: GLuint) callconv(.C) void;
const glProgramUniform2dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniform2d = fn(_program: GLuint, _location: GLint, _v0: GLdouble, _v1: GLdouble) callconv(.C) void;
const glProgramUniform2fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniform2f = fn(_program: GLuint, _location: GLint, _v0: GLfloat, _v1: GLfloat) callconv(.C) void;
const glProgramUniform2iv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glProgramUniform2i = fn(_program: GLuint, _location: GLint, _v0: GLint, _v1: GLint) callconv(.C) void;
const glProgramUniform1uiv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glProgramUniform1ui = fn(_program: GLuint, _location: GLint, _v0: GLuint) callconv(.C) void;
const glProgramUniform1dv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glProgramUniform1d = fn(_program: GLuint, _location: GLint, _v0: GLdouble) callconv(.C) void;
const glProgramUniform1fv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glProgramUniform1f = fn(_program: GLuint, _location: GLint, _v0: GLfloat) callconv(.C) void;
const glProgramUniform1iv = fn(_program: GLuint, _location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glProgramUniform1i = fn(_program: GLuint, _location: GLint, _v0: GLint) callconv(.C) void;
const glGetProgramPipelineiv = fn(_pipeline: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glIsProgramPipeline = fn(_pipeline: GLuint) callconv(.C) GLboolean;
const glGenProgramPipelines = fn(_n: GLsizei, _pipelines: [*c]GLuint) callconv(.C) void;
const glDeleteProgramPipelines = fn(_n: GLsizei, _pipelines: [*c]const GLuint) callconv(.C) void;
const glBindProgramPipeline = fn(_pipeline: GLuint) callconv(.C) void;
const glCreateShaderProgramv = fn(_type: GLenum, _count: GLsizei, _strings: [*c]const [*c]const GLchar) callconv(.C) GLuint;
const glActiveShaderProgram = fn(_pipeline: GLuint, _program: GLuint) callconv(.C) void;
const glProgramBinary = fn(_program: GLuint, _binaryFormat: GLenum, _binary: ?*const anyopaque, _length: GLsizei) callconv(.C) void;
const glGetProgramBinary = fn(_program: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _binaryFormat: [*c]GLenum, _binary: ?*anyopaque) callconv(.C) void;
const glClearDepthf = fn(_d: GLfloat) callconv(.C) void;
const glDepthRangef = fn(_n: GLfloat, _f: GLfloat) callconv(.C) void;
const glIsTransformFeedback = fn(_id: GLuint) callconv(.C) GLboolean;
const glGenTransformFeedbacks = fn(_n: GLsizei, _ids: [*c]GLuint) callconv(.C) void;
const glDeleteTransformFeedbacks = fn(_n: GLsizei, _ids: [*c]const GLuint) callconv(.C) void;
const glBindTransformFeedback = fn(_target: GLenum, _id: GLuint) callconv(.C) void;
const glPatchParameterfv = fn(_pname: GLenum, _values: [*c]const GLfloat) callconv(.C) void;
const glPatchParameteri = fn(_pname: GLenum, _value: GLint) callconv(.C) void;
const glDrawArrays = fn(_mode: GLenum, _first: GLint, _count: GLsizei) callconv(.C) void;
const glDrawElements = fn(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque) callconv(.C) void;
const glPolygonOffset = fn(_factor: GLfloat, _units: GLfloat) callconv(.C) void;
const glCopyTexImage1D = fn(_target: GLenum, _level: GLint, _internalformat: GLenum, _x: GLint, _y: GLint, _width: GLsizei, _border: GLint) callconv(.C) void;
const glCopyTexImage2D = fn(_target: GLenum, _level: GLint, _internalformat: GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _border: GLint) callconv(.C) void;
const glCopyTexSubImage1D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei) callconv(.C) void;
const glCopyTexSubImage2D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glTexSubImage1D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glTexSubImage2D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glBindTexture = fn(_target: GLenum, _texture: GLuint) callconv(.C) void;
const glDeleteTextures = fn(_n: GLsizei, _textures: [*c]const GLuint) callconv(.C) void;
const glGenTextures = fn(_n: GLsizei, _textures: [*c]GLuint) callconv(.C) void;
const glIsTexture = fn(_texture: GLuint) callconv(.C) GLboolean;
const glGetActiveSubroutineUniformName = fn(_program: GLuint, _shadertype: GLenum, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _name: [*c]GLchar) callconv(.C) void;
const glGetActiveSubroutineUniformiv = fn(_program: GLuint, _shadertype: GLenum, _index: GLuint, _pname: GLenum, _values: [*c]GLint) callconv(.C) void;
const glGetSubroutineIndex = fn(_program: GLuint, _shadertype: GLenum, _name: [*c]const GLchar) callconv(.C) GLuint;
const glGetSubroutineUniformLocation = fn(_program: GLuint, _shadertype: GLenum, _name: [*c]const GLchar) callconv(.C) GLint;
const glGetUniformdv = fn(_program: GLuint, _location: GLint, _params: [*c]GLdouble) callconv(.C) void;
const glUniformMatrix4x3dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix4x2dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix3x4dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix3x2dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix2x4dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix2x3dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix4dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniformMatrix3dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glDrawRangeElements = fn(_mode: GLenum, _start: GLuint, _end: GLuint, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque) callconv(.C) void;
const glTexImage3D = fn(_target: GLenum, _level: GLint, _internalformat: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glTexSubImage3D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glCopyTexSubImage3D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glUniformMatrix2dv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLdouble) callconv(.C) void;
const glUniform4dv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glUniform3dv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glUniform2dv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glUniform1dv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLdouble) callconv(.C) void;
const glUniform4d = fn(_location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble) callconv(.C) void;
const glUniform3d = fn(_location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble) callconv(.C) void;
const glUniform2d = fn(_location: GLint, _x: GLdouble, _y: GLdouble) callconv(.C) void;
const glUniform1d = fn(_location: GLint, _x: GLdouble) callconv(.C) void;
const glDrawElementsIndirect = fn(_mode: GLenum, _type: GLenum, _indirect: ?*const anyopaque) callconv(.C) void;
const glDrawArraysIndirect = fn(_mode: GLenum, _indirect: ?*const anyopaque) callconv(.C) void;
const glBlendFuncSeparatei = fn(_buf: GLuint, _srcRGB: GLenum, _dstRGB: GLenum, _srcAlpha: GLenum, _dstAlpha: GLenum) callconv(.C) void;
const glBlendFunci = fn(_buf: GLuint, _src: GLenum, _dst: GLenum) callconv(.C) void;
const glBlendEquationSeparatei = fn(_buf: GLuint, _modeRGB: GLenum, _modeAlpha: GLenum) callconv(.C) void;
const glBlendEquationi = fn(_buf: GLuint, _mode: GLenum) callconv(.C) void;
const glMinSampleShading = fn(_value: GLfloat) callconv(.C) void;
const glActiveTexture = fn(_texture: GLenum) callconv(.C) void;
const glSampleCoverage = fn(_value: GLfloat, _invert: GLboolean) callconv(.C) void;
const glCompressedTexImage3D = fn(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _border: GLint, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTexImage2D = fn(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _border: GLint, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTexImage1D = fn(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _border: GLint, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTexSubImage3D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTexSubImage2D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTexSubImage1D = fn(_target: GLenum, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glGetCompressedTexImage = fn(_target: GLenum, _level: GLint, _img: ?*anyopaque) callconv(.C) void;
const glVertexAttribP4uiv = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void;
const glVertexAttribP4ui = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void;
const glVertexAttribP3uiv = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void;
const glVertexAttribP3ui = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void;
const glVertexAttribP2uiv = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void;
const glVertexAttribP2ui = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void;
const glVertexAttribP1uiv = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: [*c]const GLuint) callconv(.C) void;
const glVertexAttribP1ui = fn(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint) callconv(.C) void;
const glVertexAttribDivisor = fn(_index: GLuint, _divisor: GLuint) callconv(.C) void;
const glGetQueryObjectui64v = fn(_id: GLuint, _pname: GLenum, _params: [*c]GLuint64) callconv(.C) void;
const glGetQueryObjecti64v = fn(_id: GLuint, _pname: GLenum, _params: [*c]GLint64) callconv(.C) void;
const glQueryCounter = fn(_id: GLuint, _target: GLenum) callconv(.C) void;
const glGetSamplerParameterIuiv = fn(_sampler: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void;
const glGetSamplerParameterfv = fn(_sampler: GLuint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void;
const glGetSamplerParameterIiv = fn(_sampler: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetSamplerParameteriv = fn(_sampler: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glSamplerParameterIuiv = fn(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLuint) callconv(.C) void;
const glSamplerParameterIiv = fn(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLint) callconv(.C) void;
const glSamplerParameterfv = fn(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLfloat) callconv(.C) void;
const glSamplerParameterf = fn(_sampler: GLuint, _pname: GLenum, _param: GLfloat) callconv(.C) void;
const glSamplerParameteriv = fn(_sampler: GLuint, _pname: GLenum, _param: [*c]const GLint) callconv(.C) void;
const glSamplerParameteri = fn(_sampler: GLuint, _pname: GLenum, _param: GLint) callconv(.C) void;
const glBindSampler = fn(_unit: GLuint, _sampler: GLuint) callconv(.C) void;
const glIsSampler = fn(_sampler: GLuint) callconv(.C) GLboolean;
const glDeleteSamplers = fn(_count: GLsizei, _samplers: [*c]const GLuint) callconv(.C) void;
const glGenSamplers = fn(_count: GLsizei, _samplers: [*c]GLuint) callconv(.C) void;
const glGetFragDataIndex = fn(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint;
const glBindFragDataLocationIndexed = fn(_program: GLuint, _colorNumber: GLuint, _index: GLuint, _name: [*c]const GLchar) callconv(.C) void;
const glSampleMaski = fn(_maskNumber: GLuint, _mask: GLbitfield) callconv(.C) void;
const glGetMultisamplefv = fn(_pname: GLenum, _index: GLuint, _val: [*c]GLfloat) callconv(.C) void;
const glTexImage3DMultisample = fn(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void;
const glTexImage2DMultisample = fn(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void;
const glFramebufferTexture = fn(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void;
const glGetBufferParameteri64v = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint64) callconv(.C) void;
const glBlendFuncSeparate = fn(_sfactorRGB: GLenum, _dfactorRGB: GLenum, _sfactorAlpha: GLenum, _dfactorAlpha: GLenum) callconv(.C) void;
const glMultiDrawArrays = fn(_mode: GLenum, _first: [*c]const GLint, _count: [*c]const GLsizei, _drawcount: GLsizei) callconv(.C) void;
const glMultiDrawElements = fn(_mode: GLenum, _count: [*c]const GLsizei, _type: GLenum, _indices: [*c]const ?*const anyopaque, _drawcount: GLsizei) callconv(.C) void;
const glPointParameterf = fn(_pname: GLenum, _param: GLfloat) callconv(.C) void;
const glPointParameterfv = fn(_pname: GLenum, _params: [*c]const GLfloat) callconv(.C) void;
const glPointParameteri = fn(_pname: GLenum, _param: GLint) callconv(.C) void;
const glPointParameteriv = fn(_pname: GLenum, _params: [*c]const GLint) callconv(.C) void;
const glGetInteger64i_v = fn(_target: GLenum, _index: GLuint, _data: [*c]GLint64) callconv(.C) void;
const glGetSynciv = fn(_sync: GLsync, _pname: GLenum, _count: GLsizei, _length: [*c]GLsizei, _values: [*c]GLint) callconv(.C) void;
const glGetInteger64v = fn(_pname: GLenum, _data: [*c]GLint64) callconv(.C) void;
const glWaitSync = fn(_sync: GLsync, _flags: GLbitfield, _timeout: GLuint64) callconv(.C) void;
const glClientWaitSync = fn(_sync: GLsync, _flags: GLbitfield, _timeout: GLuint64) callconv(.C) GLenum;
const glDeleteSync = fn(_sync: GLsync) callconv(.C) void;
const glIsSync = fn(_sync: GLsync) callconv(.C) GLboolean;
const glFenceSync = fn(_condition: GLenum, _flags: GLbitfield) callconv(.C) GLsync;
const glBlendColor = fn(_red: GLfloat, _green: GLfloat, _blue: GLfloat, _alpha: GLfloat) callconv(.C) void;
const glBlendEquation = fn(_mode: GLenum) callconv(.C) void;
const glProvokingVertex = fn(_mode: GLenum) callconv(.C) void;
const glMultiDrawElementsBaseVertex = fn(_mode: GLenum, _count: [*c]const GLsizei, _type: GLenum, _indices: [*c]const ?*const anyopaque, _drawcount: GLsizei, _basevertex: [*c]const GLint) callconv(.C) void;
const glDrawElementsInstancedBaseVertex = fn(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei, _basevertex: GLint) callconv(.C) void;
const glDrawRangeElementsBaseVertex = fn(_mode: GLenum, _start: GLuint, _end: GLuint, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _basevertex: GLint) callconv(.C) void;
const glDrawElementsBaseVertex = fn(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _basevertex: GLint) callconv(.C) void;
const glGenQueries = fn(_n: GLsizei, _ids: [*c]GLuint) callconv(.C) void;
const glDeleteQueries = fn(_n: GLsizei, _ids: [*c]const GLuint) callconv(.C) void;
const glIsQuery = fn(_id: GLuint) callconv(.C) GLboolean;
const glBeginQuery = fn(_target: GLenum, _id: GLuint) callconv(.C) void;
const glEndQuery = fn(_target: GLenum) callconv(.C) void;
const glGetQueryiv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetQueryObjectiv = fn(_id: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetQueryObjectuiv = fn(_id: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void;
const glBindBuffer = fn(_target: GLenum, _buffer: GLuint) callconv(.C) void;
const glDeleteBuffers = fn(_n: GLsizei, _buffers: [*c]const GLuint) callconv(.C) void;
const glGenBuffers = fn(_n: GLsizei, _buffers: [*c]GLuint) callconv(.C) void;
const glIsBuffer = fn(_buffer: GLuint) callconv(.C) GLboolean;
const glBufferData = fn(_target: GLenum, _size: GLsizeiptr, _data: ?*const anyopaque, _usage: GLenum) callconv(.C) void;
const glBufferSubData = fn(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr, _data: ?*const anyopaque) callconv(.C) void;
const glGetBufferSubData = fn(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr, _data: ?*anyopaque) callconv(.C) void;
const glMapBuffer = fn(_target: GLenum, _access: GLenum) callconv(.C) ?*anyopaque;
const glUnmapBuffer = fn(_target: GLenum) callconv(.C) GLboolean;
const glGetBufferParameteriv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetBufferPointerv = fn(_target: GLenum, _pname: GLenum, _params: ?*?*anyopaque) callconv(.C) void;
const glBlendEquationSeparate = fn(_modeRGB: GLenum, _modeAlpha: GLenum) callconv(.C) void;
const glDrawBuffers = fn(_n: GLsizei, _bufs: [*c]const GLenum) callconv(.C) void;
const glStencilOpSeparate = fn(_face: GLenum, _sfail: GLenum, _dpfail: GLenum, _dppass: GLenum) callconv(.C) void;
const glStencilFuncSeparate = fn(_face: GLenum, _func: GLenum, _ref: GLint, _mask: GLuint) callconv(.C) void;
const glStencilMaskSeparate = fn(_face: GLenum, _mask: GLuint) callconv(.C) void;
const glAttachShader = fn(_program: GLuint, _shader: GLuint) callconv(.C) void;
const glBindAttribLocation = fn(_program: GLuint, _index: GLuint, _name: [*c]const GLchar) callconv(.C) void;
const glCompileShader = fn(_shader: GLuint) callconv(.C) void;
const glCreateProgram = fn() callconv(.C) GLuint;
const glCreateShader = fn(_type: GLenum) callconv(.C) GLuint;
const glDeleteProgram = fn(_program: GLuint) callconv(.C) void;
const glDeleteShader = fn(_shader: GLuint) callconv(.C) void;
const glDetachShader = fn(_program: GLuint, _shader: GLuint) callconv(.C) void;
const glDisableVertexAttribArray = fn(_index: GLuint) callconv(.C) void;
const glEnableVertexAttribArray = fn(_index: GLuint) callconv(.C) void;
const glGetActiveAttrib = fn(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _size: [*c]GLint, _type: [*c]GLenum, _name: [*c]GLchar) callconv(.C) void;
const glGetActiveUniform = fn(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _size: [*c]GLint, _type: [*c]GLenum, _name: [*c]GLchar) callconv(.C) void;
const glGetAttachedShaders = fn(_program: GLuint, _maxCount: GLsizei, _count: [*c]GLsizei, _shaders: [*c]GLuint) callconv(.C) void;
const glGetAttribLocation = fn(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint;
const glGetProgramiv = fn(_program: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetProgramInfoLog = fn(_program: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _infoLog: [*c]GLchar) callconv(.C) void;
const glGetShaderiv = fn(_shader: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetShaderInfoLog = fn(_shader: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _infoLog: [*c]GLchar) callconv(.C) void;
const glGetShaderSource = fn(_shader: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _source: [*c]GLchar) callconv(.C) void;
const glGetUniformLocation = fn(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint;
const glGetUniformfv = fn(_program: GLuint, _location: GLint, _params: [*c]GLfloat) callconv(.C) void;
const glGetUniformiv = fn(_program: GLuint, _location: GLint, _params: [*c]GLint) callconv(.C) void;
const glGetVertexAttribdv = fn(_index: GLuint, _pname: GLenum, _params: [*c]GLdouble) callconv(.C) void;
const glGetVertexAttribfv = fn(_index: GLuint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void;
const glGetVertexAttribiv = fn(_index: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetVertexAttribPointerv = fn(_index: GLuint, _pname: GLenum, _pointer: ?*?*anyopaque) callconv(.C) void;
const glIsProgram = fn(_program: GLuint) callconv(.C) GLboolean;
const glIsShader = fn(_shader: GLuint) callconv(.C) GLboolean;
const glLinkProgram = fn(_program: GLuint) callconv(.C) void;
const glShaderSource = fn(_shader: GLuint, _count: GLsizei, _string: [*c]const [*c]const GLchar, _length: [*c]const GLint) callconv(.C) void;
const glUseProgram = fn(_program: GLuint) callconv(.C) void;
const glUniform1f = fn(_location: GLint, _v0: GLfloat) callconv(.C) void;
const glUniform2f = fn(_location: GLint, _v0: GLfloat, _v1: GLfloat) callconv(.C) void;
const glUniform3f = fn(_location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat) callconv(.C) void;
const glUniform4f = fn(_location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat, _v3: GLfloat) callconv(.C) void;
const glUniform1i = fn(_location: GLint, _v0: GLint) callconv(.C) void;
const glUniform2i = fn(_location: GLint, _v0: GLint, _v1: GLint) callconv(.C) void;
const glUniform3i = fn(_location: GLint, _v0: GLint, _v1: GLint, _v2: GLint) callconv(.C) void;
const glUniform4i = fn(_location: GLint, _v0: GLint, _v1: GLint, _v2: GLint, _v3: GLint) callconv(.C) void;
const glUniform1fv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glUniform2fv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glUniform3fv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glUniform4fv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLfloat) callconv(.C) void;
const glUniform1iv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glUniform2iv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glUniform3iv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glUniform4iv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLint) callconv(.C) void;
const glUniformMatrix2fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix3fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix4fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glValidateProgram = fn(_program: GLuint) callconv(.C) void;
const glVertexAttrib1d = fn(_index: GLuint, _x: GLdouble) callconv(.C) void;
const glVertexAttrib1dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttrib1f = fn(_index: GLuint, _x: GLfloat) callconv(.C) void;
const glVertexAttrib1fv = fn(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void;
const glVertexAttrib1s = fn(_index: GLuint, _x: GLshort) callconv(.C) void;
const glVertexAttrib1sv = fn(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void;
const glVertexAttrib2d = fn(_index: GLuint, _x: GLdouble, _y: GLdouble) callconv(.C) void;
const glVertexAttrib2dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttrib2f = fn(_index: GLuint, _x: GLfloat, _y: GLfloat) callconv(.C) void;
const glVertexAttrib2fv = fn(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void;
const glVertexAttrib2s = fn(_index: GLuint, _x: GLshort, _y: GLshort) callconv(.C) void;
const glVertexAttrib2sv = fn(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void;
const glVertexAttrib3d = fn(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble) callconv(.C) void;
const glVertexAttrib3dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttrib3f = fn(_index: GLuint, _x: GLfloat, _y: GLfloat, _z: GLfloat) callconv(.C) void;
const glVertexAttrib3fv = fn(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void;
const glVertexAttrib3s = fn(_index: GLuint, _x: GLshort, _y: GLshort, _z: GLshort) callconv(.C) void;
const glVertexAttrib3sv = fn(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void;
const glVertexAttrib4Nbv = fn(_index: GLuint, _v: [*c]const GLbyte) callconv(.C) void;
const glVertexAttrib4Niv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glVertexAttrib4Nsv = fn(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void;
const glVertexAttrib4Nub = fn(_index: GLuint, _x: GLubyte, _y: GLubyte, _z: GLubyte, _w: GLubyte) callconv(.C) void;
const glVertexAttrib4Nubv = fn(_index: GLuint, _v: ?[*:0]const GLubyte) callconv(.C) void;
const glVertexAttrib4Nuiv = fn(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void;
const glVertexAttrib4Nusv = fn(_index: GLuint, _v: [*c]const GLushort) callconv(.C) void;
const glVertexAttrib4bv = fn(_index: GLuint, _v: [*c]const GLbyte) callconv(.C) void;
const glVertexAttrib4d = fn(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble) callconv(.C) void;
const glVertexAttrib4dv = fn(_index: GLuint, _v: [*c]const GLdouble) callconv(.C) void;
const glVertexAttrib4f = fn(_index: GLuint, _x: GLfloat, _y: GLfloat, _z: GLfloat, _w: GLfloat) callconv(.C) void;
const glVertexAttrib4fv = fn(_index: GLuint, _v: [*c]const GLfloat) callconv(.C) void;
const glVertexAttrib4iv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glVertexAttrib4s = fn(_index: GLuint, _x: GLshort, _y: GLshort, _z: GLshort, _w: GLshort) callconv(.C) void;
const glVertexAttrib4sv = fn(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void;
const glVertexAttrib4ubv = fn(_index: GLuint, _v: ?[*:0]const GLubyte) callconv(.C) void;
const glVertexAttrib4uiv = fn(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void;
const glVertexAttrib4usv = fn(_index: GLuint, _v: [*c]const GLushort) callconv(.C) void;
const glVertexAttribPointer = fn(_index: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _stride: GLsizei, _pointer: ?*const anyopaque) callconv(.C) void;
const glUniformMatrix2x3fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix3x2fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix2x4fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix4x2fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix3x4fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glUniformMatrix4x3fv = fn(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: [*c]const GLfloat) callconv(.C) void;
const glColorMaski = fn(_index: GLuint, _r: GLboolean, _g: GLboolean, _b: GLboolean, _a: GLboolean) callconv(.C) void;
const glGetBooleani_v = fn(_target: GLenum, _index: GLuint, _data: [*c]GLboolean) callconv(.C) void;
const glGetIntegeri_v = fn(_target: GLenum, _index: GLuint, _data: [*c]GLint) callconv(.C) void;
const glEnablei = fn(_target: GLenum, _index: GLuint) callconv(.C) void;
const glDisablei = fn(_target: GLenum, _index: GLuint) callconv(.C) void;
const glIsEnabledi = fn(_target: GLenum, _index: GLuint) callconv(.C) GLboolean;
const glBeginTransformFeedback = fn(_primitiveMode: GLenum) callconv(.C) void;
const glEndTransformFeedback = fn() callconv(.C) void;
const glBindBufferRange = fn(_target: GLenum, _index: GLuint, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void;
const glBindBufferBase = fn(_target: GLenum, _index: GLuint, _buffer: GLuint) callconv(.C) void;
const glTransformFeedbackVaryings = fn(_program: GLuint, _count: GLsizei, _varyings: [*c]const [*c]const GLchar, _bufferMode: GLenum) callconv(.C) void;
const glGetTransformFeedbackVarying = fn(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _size: [*c]GLsizei, _type: [*c]GLenum, _name: [*c]GLchar) callconv(.C) void;
const glClampColor = fn(_target: GLenum, _clamp: GLenum) callconv(.C) void;
const glBeginConditionalRender = fn(_id: GLuint, _mode: GLenum) callconv(.C) void;
const glEndConditionalRender = fn() callconv(.C) void;
const glVertexAttribIPointer = fn(_index: GLuint, _size: GLint, _type: GLenum, _stride: GLsizei, _pointer: ?*const anyopaque) callconv(.C) void;
const glGetVertexAttribIiv = fn(_index: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetVertexAttribIuiv = fn(_index: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void;
const glVertexAttribI1i = fn(_index: GLuint, _x: GLint) callconv(.C) void;
const glVertexAttribI2i = fn(_index: GLuint, _x: GLint, _y: GLint) callconv(.C) void;
const glVertexAttribI3i = fn(_index: GLuint, _x: GLint, _y: GLint, _z: GLint) callconv(.C) void;
const glVertexAttribI4i = fn(_index: GLuint, _x: GLint, _y: GLint, _z: GLint, _w: GLint) callconv(.C) void;
const glVertexAttribI1ui = fn(_index: GLuint, _x: GLuint) callconv(.C) void;
const glVertexAttribI2ui = fn(_index: GLuint, _x: GLuint, _y: GLuint) callconv(.C) void;
const glVertexAttribI3ui = fn(_index: GLuint, _x: GLuint, _y: GLuint, _z: GLuint) callconv(.C) void;
const glVertexAttribI4ui = fn(_index: GLuint, _x: GLuint, _y: GLuint, _z: GLuint, _w: GLuint) callconv(.C) void;
const glVertexAttribI1iv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glVertexAttribI2iv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glVertexAttribI3iv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glVertexAttribI4iv = fn(_index: GLuint, _v: [*c]const GLint) callconv(.C) void;
const glVertexAttribI1uiv = fn(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void;
const glVertexAttribI2uiv = fn(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void;
const glVertexAttribI3uiv = fn(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void;
const glVertexAttribI4uiv = fn(_index: GLuint, _v: [*c]const GLuint) callconv(.C) void;
const glVertexAttribI4bv = fn(_index: GLuint, _v: [*c]const GLbyte) callconv(.C) void;
const glVertexAttribI4sv = fn(_index: GLuint, _v: [*c]const GLshort) callconv(.C) void;
const glVertexAttribI4ubv = fn(_index: GLuint, _v: ?[*:0]const GLubyte) callconv(.C) void;
const glVertexAttribI4usv = fn(_index: GLuint, _v: [*c]const GLushort) callconv(.C) void;
const glGetUniformuiv = fn(_program: GLuint, _location: GLint, _params: [*c]GLuint) callconv(.C) void;
const glBindFragDataLocation = fn(_program: GLuint, _color: GLuint, _name: [*c]const GLchar) callconv(.C) void;
const glGetFragDataLocation = fn(_program: GLuint, _name: [*c]const GLchar) callconv(.C) GLint;
const glUniform1ui = fn(_location: GLint, _v0: GLuint) callconv(.C) void;
const glUniform2ui = fn(_location: GLint, _v0: GLuint, _v1: GLuint) callconv(.C) void;
const glUniform3ui = fn(_location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint) callconv(.C) void;
const glUniform4ui = fn(_location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint, _v3: GLuint) callconv(.C) void;
const glUniform1uiv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glUniform2uiv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glUniform3uiv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glUniform4uiv = fn(_location: GLint, _count: GLsizei, _value: [*c]const GLuint) callconv(.C) void;
const glTexParameterIiv = fn(_target: GLenum, _pname: GLenum, _params: [*c]const GLint) callconv(.C) void;
const glTexParameterIuiv = fn(_target: GLenum, _pname: GLenum, _params: [*c]const GLuint) callconv(.C) void;
const glGetTexParameterIiv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetTexParameterIuiv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void;
const glClearBufferiv = fn(_buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLint) callconv(.C) void;
const glClearBufferuiv = fn(_buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLuint) callconv(.C) void;
const glClearBufferfv = fn(_buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLfloat) callconv(.C) void;
const glClearBufferfi = fn(_buffer: GLenum, _drawbuffer: GLint, _depth: GLfloat, _stencil: GLint) callconv(.C) void;
const glGetStringi = fn(_name: GLenum, _index: GLuint) callconv(.C) ?[*:0]const GLubyte;
const glIsRenderbuffer = fn(_renderbuffer: GLuint) callconv(.C) GLboolean;
const glBindRenderbuffer = fn(_target: GLenum, _renderbuffer: GLuint) callconv(.C) void;
const glDeleteRenderbuffers = fn(_n: GLsizei, _renderbuffers: [*c]const GLuint) callconv(.C) void;
const glGenRenderbuffers = fn(_n: GLsizei, _renderbuffers: [*c]GLuint) callconv(.C) void;
const glRenderbufferStorage = fn(_target: GLenum, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glGetRenderbufferParameteriv = fn(_target: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glIsFramebuffer = fn(_framebuffer: GLuint) callconv(.C) GLboolean;
const glBindFramebuffer = fn(_target: GLenum, _framebuffer: GLuint) callconv(.C) void;
const glDeleteFramebuffers = fn(_n: GLsizei, _framebuffers: [*c]const GLuint) callconv(.C) void;
const glGenFramebuffers = fn(_n: GLsizei, _framebuffers: [*c]GLuint) callconv(.C) void;
const glCheckFramebufferStatus = fn(_target: GLenum) callconv(.C) GLenum;
const glFramebufferTexture1D = fn(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void;
const glFramebufferTexture2D = fn(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void;
const glFramebufferTexture3D = fn(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint, _zoffset: GLint) callconv(.C) void;
const glFramebufferRenderbuffer = fn(_target: GLenum, _attachment: GLenum, _renderbuffertarget: GLenum, _renderbuffer: GLuint) callconv(.C) void;
const glGetFramebufferAttachmentParameteriv = fn(_target: GLenum, _attachment: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGenerateMipmap = fn(_target: GLenum) callconv(.C) void;
const glBlitFramebuffer = fn(_srcX0: GLint, _srcY0: GLint, _srcX1: GLint, _srcY1: GLint, _dstX0: GLint, _dstY0: GLint, _dstX1: GLint, _dstY1: GLint, _mask: GLbitfield, _filter: GLenum) callconv(.C) void;
const glRenderbufferStorageMultisample = fn(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glFramebufferTextureLayer = fn(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint, _layer: GLint) callconv(.C) void;
const glMapBufferRange = fn(_target: GLenum, _offset: GLintptr, _length: GLsizeiptr, _access: GLbitfield) callconv(.C) ?*anyopaque;
const glFlushMappedBufferRange = fn(_target: GLenum, _offset: GLintptr, _length: GLsizeiptr) callconv(.C) void;
const glBindVertexArray = fn(_array: GLuint) callconv(.C) void;
const glDeleteVertexArrays = fn(_n: GLsizei, _arrays: [*c]const GLuint) callconv(.C) void;
const glGenVertexArrays = fn(_n: GLsizei, _arrays: [*c]GLuint) callconv(.C) void;
const glIsVertexArray = fn(_array: GLuint) callconv(.C) GLboolean;
const glDrawArraysInstanced = fn(_mode: GLenum, _first: GLint, _count: GLsizei, _instancecount: GLsizei) callconv(.C) void;
const glDrawElementsInstanced = fn(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: ?*const anyopaque, _instancecount: GLsizei) callconv(.C) void;
const glTexBuffer = fn(_target: GLenum, _internalformat: GLenum, _buffer: GLuint) callconv(.C) void;
const glPrimitiveRestartIndex = fn(_index: GLuint) callconv(.C) void;
const glCopyBufferSubData = fn(_readTarget: GLenum, _writeTarget: GLenum, _readOffset: GLintptr, _writeOffset: GLintptr, _size: GLsizeiptr) callconv(.C) void;
const glGetUniformIndices = fn(_program: GLuint, _uniformCount: GLsizei, _uniformNames: [*c]const [*c]const GLchar, _uniformIndices: [*c]GLuint) callconv(.C) void;
const glGetActiveUniformsiv = fn(_program: GLuint, _uniformCount: GLsizei, _uniformIndices: [*c]const GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetActiveUniformName = fn(_program: GLuint, _uniformIndex: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _uniformName: [*c]GLchar) callconv(.C) void;
const glGetUniformBlockIndex = fn(_program: GLuint, _uniformBlockName: [*c]const GLchar) callconv(.C) GLuint;
const glGetActiveUniformBlockiv = fn(_program: GLuint, _uniformBlockIndex: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetActiveUniformBlockName = fn(_program: GLuint, _uniformBlockIndex: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _uniformBlockName: [*c]GLchar) callconv(.C) void;
const glUniformBlockBinding = fn(_program: GLuint, _uniformBlockIndex: GLuint, _uniformBlockBinding: GLuint) callconv(.C) void;
const glTexStorage3DMultisample = fn(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void;
const glTextureView = fn(_texture: GLuint, _target: GLenum, _origtexture: GLuint, _internalformat: GLenum, _minlevel: GLuint, _numlevels: GLuint, _minlayer: GLuint, _numlayers: GLuint) callconv(.C) void;
const glBindVertexBuffer = fn(_bindingindex: GLuint, _buffer: GLuint, _offset: GLintptr, _stride: GLsizei) callconv(.C) void;
const glVertexAttribFormat = fn(_attribindex: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _relativeoffset: GLuint) callconv(.C) void;
const glVertexAttribIFormat = fn(_attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void;
const glVertexAttribLFormat = fn(_attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void;
const glVertexAttribBinding = fn(_attribindex: GLuint, _bindingindex: GLuint) callconv(.C) void;
const glVertexBindingDivisor = fn(_bindingindex: GLuint, _divisor: GLuint) callconv(.C) void;
const glDebugMessageControl = fn(_source: GLenum, _type: GLenum, _severity: GLenum, _count: GLsizei, _ids: [*c]const GLuint, _enabled: GLboolean) callconv(.C) void;
const glDebugMessageInsert = fn(_source: GLenum, _type: GLenum, _id: GLuint, _severity: GLenum, _length: GLsizei, _buf: [*c]const GLchar) callconv(.C) void;
const glDebugMessageCallback = fn(_callback: GLDEBUGPROC, _userParam: ?*const anyopaque) callconv(.C) void;
const glGetDebugMessageLog = fn(_count: GLuint, _bufSize: GLsizei, _sources: [*c]GLenum, _types: [*c]GLenum, _ids: [*c]GLuint, _severities: [*c]GLenum, _lengths: [*c]GLsizei, _messageLog: [*c]GLchar) callconv(.C) GLuint;
const glPushDebugGroup = fn(_source: GLenum, _id: GLuint, _length: GLsizei, _message: [*c]const GLchar) callconv(.C) void;
const glPopDebugGroup = fn() callconv(.C) void;
const glObjectLabel = fn(_identifier: GLenum, _name: GLuint, _length: GLsizei, _label: [*c]const GLchar) callconv(.C) void;
const glGetObjectLabel = fn(_identifier: GLenum, _name: GLuint, _bufSize: GLsizei, _length: [*c]GLsizei, _label: [*c]GLchar) callconv(.C) void;
const glObjectPtrLabel = fn(_ptr: ?*const anyopaque, _length: GLsizei, _label: [*c]const GLchar) callconv(.C) void;
const glGetObjectPtrLabel = fn(_ptr: ?*const anyopaque, _bufSize: GLsizei, _length: [*c]GLsizei, _label: [*c]GLchar) callconv(.C) void;
const glGetPointerv = fn(_pname: GLenum, _params: ?*?*anyopaque) callconv(.C) void;
const glBufferStorage = fn(_target: GLenum, _size: GLsizeiptr, _data: ?*const anyopaque, _flags: GLbitfield) callconv(.C) void;
const glClearTexImage = fn(_texture: GLuint, _level: GLint, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void;
const glClearTexSubImage = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void;
const glBindBuffersBase = fn(_target: GLenum, _first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint) callconv(.C) void;
const glBindBuffersRange = fn(_target: GLenum, _first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint, _offsets: [*c]const GLintptr, _sizes: [*c]const GLsizeiptr) callconv(.C) void;
const glBindTextures = fn(_first: GLuint, _count: GLsizei, _textures: [*c]const GLuint) callconv(.C) void;
const glBindSamplers = fn(_first: GLuint, _count: GLsizei, _samplers: [*c]const GLuint) callconv(.C) void;
const glBindImageTextures = fn(_first: GLuint, _count: GLsizei, _textures: [*c]const GLuint) callconv(.C) void;
const glBindVertexBuffers = fn(_first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint, _offsets: [*c]const GLintptr, _strides: [*c]const GLsizei) callconv(.C) void;
const glClipControl = fn(_origin: GLenum, _depth: GLenum) callconv(.C) void;
const glCreateTransformFeedbacks = fn(_n: GLsizei, _ids: [*c]GLuint) callconv(.C) void;
const glTransformFeedbackBufferBase = fn(_xfb: GLuint, _index: GLuint, _buffer: GLuint) callconv(.C) void;
const glTransformFeedbackBufferRange = fn(_xfb: GLuint, _index: GLuint, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void;
const glGetTransformFeedbackiv = fn(_xfb: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void;
const glGetTransformFeedbacki_v = fn(_xfb: GLuint, _pname: GLenum, _index: GLuint, _param: [*c]GLint) callconv(.C) void;
const glGetTransformFeedbacki64_v = fn(_xfb: GLuint, _pname: GLenum, _index: GLuint, _param: [*c]GLint64) callconv(.C) void;
const glCreateBuffers = fn(_n: GLsizei, _buffers: [*c]GLuint) callconv(.C) void;
const glNamedBufferStorage = fn(_buffer: GLuint, _size: GLsizeiptr, _data: ?*const anyopaque, _flags: GLbitfield) callconv(.C) void;
const glNamedBufferData = fn(_buffer: GLuint, _size: GLsizeiptr, _data: ?*const anyopaque, _usage: GLenum) callconv(.C) void;
const glNamedBufferSubData = fn(_buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr, _data: ?*const anyopaque) callconv(.C) void;
const glCopyNamedBufferSubData = fn(_readBuffer: GLuint, _writeBuffer: GLuint, _readOffset: GLintptr, _writeOffset: GLintptr, _size: GLsizeiptr) callconv(.C) void;
const glClearNamedBufferData = fn(_buffer: GLuint, _internalformat: GLenum, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void;
const glClearNamedBufferSubData = fn(_buffer: GLuint, _internalformat: GLenum, _offset: GLintptr, _size: GLsizeiptr, _format: GLenum, _type: GLenum, _data: ?*const anyopaque) callconv(.C) void;
const glMapNamedBuffer = fn(_buffer: GLuint, _access: GLenum) callconv(.C) ?*anyopaque;
const glMapNamedBufferRange = fn(_buffer: GLuint, _offset: GLintptr, _length: GLsizeiptr, _access: GLbitfield) callconv(.C) ?*anyopaque;
const glUnmapNamedBuffer = fn(_buffer: GLuint) callconv(.C) GLboolean;
const glFlushMappedNamedBufferRange = fn(_buffer: GLuint, _offset: GLintptr, _length: GLsizeiptr) callconv(.C) void;
const glGetNamedBufferParameteriv = fn(_buffer: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetNamedBufferParameteri64v = fn(_buffer: GLuint, _pname: GLenum, _params: [*c]GLint64) callconv(.C) void;
const glGetNamedBufferPointerv = fn(_buffer: GLuint, _pname: GLenum, _params: ?*?*anyopaque) callconv(.C) void;
const glGetNamedBufferSubData = fn(_buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr, _data: ?*anyopaque) callconv(.C) void;
const glCreateFramebuffers = fn(_n: GLsizei, _framebuffers: [*c]GLuint) callconv(.C) void;
const glNamedFramebufferRenderbuffer = fn(_framebuffer: GLuint, _attachment: GLenum, _renderbuffertarget: GLenum, _renderbuffer: GLuint) callconv(.C) void;
const glNamedFramebufferParameteri = fn(_framebuffer: GLuint, _pname: GLenum, _param: GLint) callconv(.C) void;
const glNamedFramebufferTexture = fn(_framebuffer: GLuint, _attachment: GLenum, _texture: GLuint, _level: GLint) callconv(.C) void;
const glNamedFramebufferTextureLayer = fn(_framebuffer: GLuint, _attachment: GLenum, _texture: GLuint, _level: GLint, _layer: GLint) callconv(.C) void;
const glNamedFramebufferDrawBuffer = fn(_framebuffer: GLuint, _buf: GLenum) callconv(.C) void;
const glNamedFramebufferDrawBuffers = fn(_framebuffer: GLuint, _n: GLsizei, _bufs: [*c]const GLenum) callconv(.C) void;
const glNamedFramebufferReadBuffer = fn(_framebuffer: GLuint, _src: GLenum) callconv(.C) void;
const glInvalidateNamedFramebufferData = fn(_framebuffer: GLuint, _numAttachments: GLsizei, _attachments: [*c]const GLenum) callconv(.C) void;
const glInvalidateNamedFramebufferSubData = fn(_framebuffer: GLuint, _numAttachments: GLsizei, _attachments: [*c]const GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glClearNamedFramebufferiv = fn(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLint) callconv(.C) void;
const glClearNamedFramebufferuiv = fn(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLuint) callconv(.C) void;
const glClearNamedFramebufferfv = fn(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _value: [*c]const GLfloat) callconv(.C) void;
const glClearNamedFramebufferfi = fn(_framebuffer: GLuint, _buffer: GLenum, _drawbuffer: GLint, _depth: GLfloat, _stencil: GLint) callconv(.C) void;
const glBlitNamedFramebuffer = fn(_readFramebuffer: GLuint, _drawFramebuffer: GLuint, _srcX0: GLint, _srcY0: GLint, _srcX1: GLint, _srcY1: GLint, _dstX0: GLint, _dstY0: GLint, _dstX1: GLint, _dstY1: GLint, _mask: GLbitfield, _filter: GLenum) callconv(.C) void;
const glCheckNamedFramebufferStatus = fn(_framebuffer: GLuint, _target: GLenum) callconv(.C) GLenum;
const glGetNamedFramebufferParameteriv = fn(_framebuffer: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void;
const glGetNamedFramebufferAttachmentParameteriv = fn(_framebuffer: GLuint, _attachment: GLenum, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glCreateRenderbuffers = fn(_n: GLsizei, _renderbuffers: [*c]GLuint) callconv(.C) void;
const glNamedRenderbufferStorage = fn(_renderbuffer: GLuint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glNamedRenderbufferStorageMultisample = fn(_renderbuffer: GLuint, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glGetNamedRenderbufferParameteriv = fn(_renderbuffer: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glCreateTextures = fn(_target: GLenum, _n: GLsizei, _textures: [*c]GLuint) callconv(.C) void;
const glTextureBuffer = fn(_texture: GLuint, _internalformat: GLenum, _buffer: GLuint) callconv(.C) void;
const glTextureBufferRange = fn(_texture: GLuint, _internalformat: GLenum, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr) callconv(.C) void;
const glTextureStorage1D = fn(_texture: GLuint, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei) callconv(.C) void;
const glTextureStorage2D = fn(_texture: GLuint, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glTextureStorage3D = fn(_texture: GLuint, _levels: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei) callconv(.C) void;
const glTextureStorage2DMultisample = fn(_texture: GLuint, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void;
const glTextureStorage3DMultisample = fn(_texture: GLuint, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean) callconv(.C) void;
const glTextureSubImage1D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glTextureSubImage2D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glTextureSubImage3D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _pixels: ?*const anyopaque) callconv(.C) void;
const glCompressedTextureSubImage1D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTextureSubImage2D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCompressedTextureSubImage3D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: ?*const anyopaque) callconv(.C) void;
const glCopyTextureSubImage1D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei) callconv(.C) void;
const glCopyTextureSubImage2D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glCopyTextureSubImage3D = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei) callconv(.C) void;
const glTextureParameterf = fn(_texture: GLuint, _pname: GLenum, _param: GLfloat) callconv(.C) void;
const glTextureParameterfv = fn(_texture: GLuint, _pname: GLenum, _param: [*c]const GLfloat) callconv(.C) void;
const glTextureParameteri = fn(_texture: GLuint, _pname: GLenum, _param: GLint) callconv(.C) void;
const glTextureParameterIiv = fn(_texture: GLuint, _pname: GLenum, _params: [*c]const GLint) callconv(.C) void;
const glTextureParameterIuiv = fn(_texture: GLuint, _pname: GLenum, _params: [*c]const GLuint) callconv(.C) void;
const glTextureParameteriv = fn(_texture: GLuint, _pname: GLenum, _param: [*c]const GLint) callconv(.C) void;
const glGenerateTextureMipmap = fn(_texture: GLuint) callconv(.C) void;
const glBindTextureUnit = fn(_unit: GLuint, _texture: GLuint) callconv(.C) void;
const glGetTextureImage = fn(_texture: GLuint, _level: GLint, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void;
const glGetCompressedTextureImage = fn(_texture: GLuint, _level: GLint, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void;
const glGetTextureLevelParameterfv = fn(_texture: GLuint, _level: GLint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void;
const glGetTextureLevelParameteriv = fn(_texture: GLuint, _level: GLint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetTextureParameterfv = fn(_texture: GLuint, _pname: GLenum, _params: [*c]GLfloat) callconv(.C) void;
const glGetTextureParameterIiv = fn(_texture: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glGetTextureParameterIuiv = fn(_texture: GLuint, _pname: GLenum, _params: [*c]GLuint) callconv(.C) void;
const glGetTextureParameteriv = fn(_texture: GLuint, _pname: GLenum, _params: [*c]GLint) callconv(.C) void;
const glCreateVertexArrays = fn(_n: GLsizei, _arrays: [*c]GLuint) callconv(.C) void;
const glDisableVertexArrayAttrib = fn(_vaobj: GLuint, _index: GLuint) callconv(.C) void;
const glEnableVertexArrayAttrib = fn(_vaobj: GLuint, _index: GLuint) callconv(.C) void;
const glVertexArrayElementBuffer = fn(_vaobj: GLuint, _buffer: GLuint) callconv(.C) void;
const glVertexArrayVertexBuffer = fn(_vaobj: GLuint, _bindingindex: GLuint, _buffer: GLuint, _offset: GLintptr, _stride: GLsizei) callconv(.C) void;
const glVertexArrayVertexBuffers = fn(_vaobj: GLuint, _first: GLuint, _count: GLsizei, _buffers: [*c]const GLuint, _offsets: [*c]const GLintptr, _strides: [*c]const GLsizei) callconv(.C) void;
const glVertexArrayAttribBinding = fn(_vaobj: GLuint, _attribindex: GLuint, _bindingindex: GLuint) callconv(.C) void;
const glVertexArrayAttribFormat = fn(_vaobj: GLuint, _attribindex: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _relativeoffset: GLuint) callconv(.C) void;
const glVertexArrayAttribIFormat = fn(_vaobj: GLuint, _attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void;
const glVertexArrayAttribLFormat = fn(_vaobj: GLuint, _attribindex: GLuint, _size: GLint, _type: GLenum, _relativeoffset: GLuint) callconv(.C) void;
const glVertexArrayBindingDivisor = fn(_vaobj: GLuint, _bindingindex: GLuint, _divisor: GLuint) callconv(.C) void;
const glGetVertexArrayiv = fn(_vaobj: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void;
const glGetVertexArrayIndexediv = fn(_vaobj: GLuint, _index: GLuint, _pname: GLenum, _param: [*c]GLint) callconv(.C) void;
const glGetVertexArrayIndexed64iv = fn(_vaobj: GLuint, _index: GLuint, _pname: GLenum, _param: [*c]GLint64) callconv(.C) void;
const glCreateSamplers = fn(_n: GLsizei, _samplers: [*c]GLuint) callconv(.C) void;
const glCreateProgramPipelines = fn(_n: GLsizei, _pipelines: [*c]GLuint) callconv(.C) void;
const glCreateQueries = fn(_target: GLenum, _n: GLsizei, _ids: [*c]GLuint) callconv(.C) void;
const glGetQueryBufferObjecti64v = fn(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void;
const glGetQueryBufferObjectiv = fn(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void;
const glGetQueryBufferObjectui64v = fn(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void;
const glGetQueryBufferObjectuiv = fn(_id: GLuint, _buffer: GLuint, _pname: GLenum, _offset: GLintptr) callconv(.C) void;
const glMemoryBarrierByRegion = fn(_barriers: GLbitfield) callconv(.C) void;
const glGetTextureSubImage = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void;
const glGetCompressedTextureSubImage = fn(_texture: GLuint, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void;
const glGetGraphicsResetStatus = fn() callconv(.C) GLenum;
const glGetnCompressedTexImage = fn(_target: GLenum, _lod: GLint, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void;
const glGetnTexImage = fn(_target: GLenum, _level: GLint, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _pixels: ?*anyopaque) callconv(.C) void;
const glGetnUniformdv = fn(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLdouble) callconv(.C) void;
const glGetnUniformfv = fn(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLfloat) callconv(.C) void;
const glGetnUniformiv = fn(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLint) callconv(.C) void;
const glGetnUniformuiv = fn(_program: GLuint, _location: GLint, _bufSize: GLsizei, _params: [*c]GLuint) callconv(.C) void;
const glReadnPixels = fn(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _bufSize: GLsizei, _data: ?*anyopaque) callconv(.C) void;
const glTextureBarrier = fn() callconv(.C) void;
};
const function_pointers = struct {
var glTexStorage2D: *const function_signatures.glTexStorage2D = undefined;
var glTexStorage1D: *const function_signatures.glTexStorage1D = undefined;
var glDrawTransformFeedbackStreamInstanced: *const function_signatures.glDrawTransformFeedbackStreamInstanced = undefined;
var glDrawTransformFeedbackInstanced: *const function_signatures.glDrawTransformFeedbackInstanced = undefined;
var glTexStorage3D: *const function_signatures.glTexStorage3D = undefined;
var glMemoryBarrier: *const function_signatures.glMemoryBarrier = undefined;
var glBindImageTexture: *const function_signatures.glBindImageTexture = undefined;
var glGetActiveAtomicCounterBufferiv: *const function_signatures.glGetActiveAtomicCounterBufferiv = undefined;
var glGetInternalformativ: *const function_signatures.glGetInternalformativ = undefined;
var glDrawElementsInstancedBaseVertexBaseInstance: *const function_signatures.glDrawElementsInstancedBaseVertexBaseInstance = undefined;
var glDrawElementsInstancedBaseInstance: *const function_signatures.glDrawElementsInstancedBaseInstance = undefined;
var glDrawArraysInstancedBaseInstance: *const function_signatures.glDrawArraysInstancedBaseInstance = undefined;
var glGetDoublei_v: *const function_signatures.glGetDoublei_v = undefined;
var glGetFloati_v: *const function_signatures.glGetFloati_v = undefined;
var glDepthRangeIndexed: *const function_signatures.glDepthRangeIndexed = undefined;
var glDepthRangeArrayv: *const function_signatures.glDepthRangeArrayv = undefined;
var glScissorIndexedv: *const function_signatures.glScissorIndexedv = undefined;
var glScissorIndexed: *const function_signatures.glScissorIndexed = undefined;
var glScissorArrayv: *const function_signatures.glScissorArrayv = undefined;
var glViewportIndexedfv: *const function_signatures.glViewportIndexedfv = undefined;
var glViewportIndexedf: *const function_signatures.glViewportIndexedf = undefined;
var glViewportArrayv: *const function_signatures.glViewportArrayv = undefined;
var glGetVertexAttribLdv: *const function_signatures.glGetVertexAttribLdv = undefined;
var glVertexAttribLPointer: *const function_signatures.glVertexAttribLPointer = undefined;
var glVertexAttribL4dv: *const function_signatures.glVertexAttribL4dv = undefined;
var glVertexAttribL3dv: *const function_signatures.glVertexAttribL3dv = undefined;
var glVertexAttribL2dv: *const function_signatures.glVertexAttribL2dv = undefined;
var glVertexAttribL1dv: *const function_signatures.glVertexAttribL1dv = undefined;
var glVertexAttribL4d: *const function_signatures.glVertexAttribL4d = undefined;
var glVertexAttribL3d: *const function_signatures.glVertexAttribL3d = undefined;
var glVertexAttribL2d: *const function_signatures.glVertexAttribL2d = undefined;
var glVertexAttribL1d: *const function_signatures.glVertexAttribL1d = undefined;
var glValidateProgramPipeline: *const function_signatures.glValidateProgramPipeline = undefined;
var glProgramUniformMatrix4x3dv: *const function_signatures.glProgramUniformMatrix4x3dv = undefined;
var glProgramUniformMatrix3x4dv: *const function_signatures.glProgramUniformMatrix3x4dv = undefined;
var glProgramUniformMatrix4x2dv: *const function_signatures.glProgramUniformMatrix4x2dv = undefined;
var glProgramUniformMatrix2x4dv: *const function_signatures.glProgramUniformMatrix2x4dv = undefined;
var glProgramUniformMatrix3x2dv: *const function_signatures.glProgramUniformMatrix3x2dv = undefined;
var glProgramUniformMatrix2x3dv: *const function_signatures.glProgramUniformMatrix2x3dv = undefined;
var glProgramUniformMatrix4x3fv: *const function_signatures.glProgramUniformMatrix4x3fv = undefined;
var glProgramUniformMatrix3x4fv: *const function_signatures.glProgramUniformMatrix3x4fv = undefined;
var glProgramUniformMatrix4x2fv: *const function_signatures.glProgramUniformMatrix4x2fv = undefined;
var glProgramUniformMatrix2x4fv: *const function_signatures.glProgramUniformMatrix2x4fv = undefined;
var glProgramUniformMatrix3x2fv: *const function_signatures.glProgramUniformMatrix3x2fv = undefined;
var glProgramUniformMatrix2x3fv: *const function_signatures.glProgramUniformMatrix2x3fv = undefined;
var glProgramUniformMatrix4dv: *const function_signatures.glProgramUniformMatrix4dv = undefined;
var glProgramUniformMatrix3dv: *const function_signatures.glProgramUniformMatrix3dv = undefined;
var glProgramUniformMatrix2dv: *const function_signatures.glProgramUniformMatrix2dv = undefined;
var glProgramUniformMatrix4fv: *const function_signatures.glProgramUniformMatrix4fv = undefined;
var glProgramUniformMatrix3fv: *const function_signatures.glProgramUniformMatrix3fv = undefined;
var glProgramUniformMatrix2fv: *const function_signatures.glProgramUniformMatrix2fv = undefined;
var glProgramUniform4uiv: *const function_signatures.glProgramUniform4uiv = undefined;
var glProgramUniform4ui: *const function_signatures.glProgramUniform4ui = undefined;
var glProgramUniform4dv: *const function_signatures.glProgramUniform4dv = undefined;
var glProgramUniform4d: *const function_signatures.glProgramUniform4d = undefined;
var glProgramUniform4fv: *const function_signatures.glProgramUniform4fv = undefined;
var glProgramUniform4f: *const function_signatures.glProgramUniform4f = undefined;
var glProgramUniform4iv: *const function_signatures.glProgramUniform4iv = undefined;
var glProgramUniform4i: *const function_signatures.glProgramUniform4i = undefined;
var glProgramUniform3uiv: *const function_signatures.glProgramUniform3uiv = undefined;
var glProgramUniform3ui: *const function_signatures.glProgramUniform3ui = undefined;
var glProgramUniform3dv: *const function_signatures.glProgramUniform3dv = undefined;
var glProgramUniform3d: *const function_signatures.glProgramUniform3d = undefined;
var glProgramUniform3fv: *const function_signatures.glProgramUniform3fv = undefined;
var glProgramUniform3f: *const function_signatures.glProgramUniform3f = undefined;
var glProgramUniform3iv: *const function_signatures.glProgramUniform3iv = undefined;
var glProgramUniform3i: *const function_signatures.glProgramUniform3i = undefined;
var glUseProgramStages: *const function_signatures.glUseProgramStages = undefined;
var glProgramParameteri: *const function_signatures.glProgramParameteri = undefined;
var glGetShaderPrecisionFormat: *const function_signatures.glGetShaderPrecisionFormat = undefined;
var glShaderBinary: *const function_signatures.glShaderBinary = undefined;
var glReleaseShaderCompiler: *const function_signatures.glReleaseShaderCompiler = undefined;
var glGetQueryIndexediv: *const function_signatures.glGetQueryIndexediv = undefined;
var glEndQueryIndexed: *const function_signatures.glEndQueryIndexed = undefined;
var glBeginQueryIndexed: *const function_signatures.glBeginQueryIndexed = undefined;
var glDrawTransformFeedbackStream: *const function_signatures.glDrawTransformFeedbackStream = undefined;
var glDrawTransformFeedback: *const function_signatures.glDrawTransformFeedback = undefined;
var glResumeTransformFeedback: *const function_signatures.glResumeTransformFeedback = undefined;
var glPauseTransformFeedback: *const function_signatures.glPauseTransformFeedback = undefined;
var glGetProgramStageiv: *const function_signatures.glGetProgramStageiv = undefined;
var glGetUniformSubroutineuiv: *const function_signatures.glGetUniformSubroutineuiv = undefined;
var glUniformSubroutinesuiv: *const function_signatures.glUniformSubroutinesuiv = undefined;
var glGetActiveSubroutineName: *const function_signatures.glGetActiveSubroutineName = undefined;
var glCullFace: *const function_signatures.glCullFace = undefined;
var glFrontFace: *const function_signatures.glFrontFace = undefined;
var glHint: *const function_signatures.glHint = undefined;
var glLineWidth: *const function_signatures.glLineWidth = undefined;
var glPointSize: *const function_signatures.glPointSize = undefined;
var glPolygonMode: *const function_signatures.glPolygonMode = undefined;
var glScissor: *const function_signatures.glScissor = undefined;
var glTexParameterf: *const function_signatures.glTexParameterf = undefined;
var glTexParameterfv: *const function_signatures.glTexParameterfv = undefined;
var glTexParameteri: *const function_signatures.glTexParameteri = undefined;
var glTexParameteriv: *const function_signatures.glTexParameteriv = undefined;
var glTexImage1D: *const function_signatures.glTexImage1D = undefined;
var glTexImage2D: *const function_signatures.glTexImage2D = undefined;
var glDrawBuffer: *const function_signatures.glDrawBuffer = undefined;
var glClear: *const function_signatures.glClear = undefined;
var glClearColor: *const function_signatures.glClearColor = undefined;
var glClearStencil: *const function_signatures.glClearStencil = undefined;
var glClearDepth: *const function_signatures.glClearDepth = undefined;
var glStencilMask: *const function_signatures.glStencilMask = undefined;
var glColorMask: *const function_signatures.glColorMask = undefined;
var glDepthMask: *const function_signatures.glDepthMask = undefined;
var glDisable: *const function_signatures.glDisable = undefined;
var glEnable: *const function_signatures.glEnable = undefined;
var glFinish: *const function_signatures.glFinish = undefined;
var glFlush: *const function_signatures.glFlush = undefined;
var glBlendFunc: *const function_signatures.glBlendFunc = undefined;
var glLogicOp: *const function_signatures.glLogicOp = undefined;
var glStencilFunc: *const function_signatures.glStencilFunc = undefined;
var glStencilOp: *const function_signatures.glStencilOp = undefined;
var glDepthFunc: *const function_signatures.glDepthFunc = undefined;
var glPixelStoref: *const function_signatures.glPixelStoref = undefined;
var glPixelStorei: *const function_signatures.glPixelStorei = undefined;
var glReadBuffer: *const function_signatures.glReadBuffer = undefined;
var glReadPixels: *const function_signatures.glReadPixels = undefined;
var glGetBooleanv: *const function_signatures.glGetBooleanv = undefined;
var glGetDoublev: *const function_signatures.glGetDoublev = undefined;
var glGetError: *const function_signatures.glGetError = undefined;
var glGetFloatv: *const function_signatures.glGetFloatv = undefined;
var glGetIntegerv: *const function_signatures.glGetIntegerv = undefined;
var glGetString: *const function_signatures.glGetString = undefined;
var glGetTexImage: *const function_signatures.glGetTexImage = undefined;
var glGetTexParameterfv: *const function_signatures.glGetTexParameterfv = undefined;
var glGetTexParameteriv: *const function_signatures.glGetTexParameteriv = undefined;
var glGetTexLevelParameterfv: *const function_signatures.glGetTexLevelParameterfv = undefined;
var glGetTexLevelParameteriv: *const function_signatures.glGetTexLevelParameteriv = undefined;
var glIsEnabled: *const function_signatures.glIsEnabled = undefined;
var glDepthRange: *const function_signatures.glDepthRange = undefined;
var glViewport: *const function_signatures.glViewport = undefined;
var glTexStorage2DMultisample: *const function_signatures.glTexStorage2DMultisample = undefined;
var glTexBufferRange: *const function_signatures.glTexBufferRange = undefined;
var glShaderStorageBlockBinding: *const function_signatures.glShaderStorageBlockBinding = undefined;
var glGetProgramResourceLocationIndex: *const function_signatures.glGetProgramResourceLocationIndex = undefined;
var glGetProgramResourceLocation: *const function_signatures.glGetProgramResourceLocation = undefined;
var glGetProgramResourceiv: *const function_signatures.glGetProgramResourceiv = undefined;
var glGetProgramResourceName: *const function_signatures.glGetProgramResourceName = undefined;
var glGetProgramResourceIndex: *const function_signatures.glGetProgramResourceIndex = undefined;
var glGetProgramInterfaceiv: *const function_signatures.glGetProgramInterfaceiv = undefined;
var glMultiDrawElementsIndirect: *const function_signatures.glMultiDrawElementsIndirect = undefined;
var glMultiDrawArraysIndirect: *const function_signatures.glMultiDrawArraysIndirect = undefined;
var glInvalidateSubFramebuffer: *const function_signatures.glInvalidateSubFramebuffer = undefined;
var glInvalidateFramebuffer: *const function_signatures.glInvalidateFramebuffer = undefined;
var glInvalidateBufferData: *const function_signatures.glInvalidateBufferData = undefined;
var glInvalidateBufferSubData: *const function_signatures.glInvalidateBufferSubData = undefined;
var glInvalidateTexImage: *const function_signatures.glInvalidateTexImage = undefined;
var glInvalidateTexSubImage: *const function_signatures.glInvalidateTexSubImage = undefined;
var glGetInternalformati64v: *const function_signatures.glGetInternalformati64v = undefined;
var glGetFramebufferParameteriv: *const function_signatures.glGetFramebufferParameteriv = undefined;
var glFramebufferParameteri: *const function_signatures.glFramebufferParameteri = undefined;
var glCopyImageSubData: *const function_signatures.glCopyImageSubData = undefined;
var glDispatchComputeIndirect: *const function_signatures.glDispatchComputeIndirect = undefined;
var glDispatchCompute: *const function_signatures.glDispatchCompute = undefined;
var glClearBufferSubData: *const function_signatures.glClearBufferSubData = undefined;
var glClearBufferData: *const function_signatures.glClearBufferData = undefined;
var glGetProgramPipelineInfoLog: *const function_signatures.glGetProgramPipelineInfoLog = undefined;
var glProgramUniform2uiv: *const function_signatures.glProgramUniform2uiv = undefined;
var glProgramUniform2ui: *const function_signatures.glProgramUniform2ui = undefined;
var glProgramUniform2dv: *const function_signatures.glProgramUniform2dv = undefined;
var glProgramUniform2d: *const function_signatures.glProgramUniform2d = undefined;
var glProgramUniform2fv: *const function_signatures.glProgramUniform2fv = undefined;
var glProgramUniform2f: *const function_signatures.glProgramUniform2f = undefined;
var glProgramUniform2iv: *const function_signatures.glProgramUniform2iv = undefined;
var glProgramUniform2i: *const function_signatures.glProgramUniform2i = undefined;
var glProgramUniform1uiv: *const function_signatures.glProgramUniform1uiv = undefined;
var glProgramUniform1ui: *const function_signatures.glProgramUniform1ui = undefined;
var glProgramUniform1dv: *const function_signatures.glProgramUniform1dv = undefined;
var glProgramUniform1d: *const function_signatures.glProgramUniform1d = undefined;
var glProgramUniform1fv: *const function_signatures.glProgramUniform1fv = undefined;
var glProgramUniform1f: *const function_signatures.glProgramUniform1f = undefined;
var glProgramUniform1iv: *const function_signatures.glProgramUniform1iv = undefined;
var glProgramUniform1i: *const function_signatures.glProgramUniform1i = undefined;
var glGetProgramPipelineiv: *const function_signatures.glGetProgramPipelineiv = undefined;
var glIsProgramPipeline: *const function_signatures.glIsProgramPipeline = undefined;
var glGenProgramPipelines: *const function_signatures.glGenProgramPipelines = undefined;
var glDeleteProgramPipelines: *const function_signatures.glDeleteProgramPipelines = undefined;
var glBindProgramPipeline: *const function_signatures.glBindProgramPipeline = undefined;
var glCreateShaderProgramv: *const function_signatures.glCreateShaderProgramv = undefined;
var glActiveShaderProgram: *const function_signatures.glActiveShaderProgram = undefined;
var glProgramBinary: *const function_signatures.glProgramBinary = undefined;
var glGetProgramBinary: *const function_signatures.glGetProgramBinary = undefined;
var glClearDepthf: *const function_signatures.glClearDepthf = undefined;
var glDepthRangef: *const function_signatures.glDepthRangef = undefined;
var glIsTransformFeedback: *const function_signatures.glIsTransformFeedback = undefined;
var glGenTransformFeedbacks: *const function_signatures.glGenTransformFeedbacks = undefined;
var glDeleteTransformFeedbacks: *const function_signatures.glDeleteTransformFeedbacks = undefined;
var glBindTransformFeedback: *const function_signatures.glBindTransformFeedback = undefined;
var glPatchParameterfv: *const function_signatures.glPatchParameterfv = undefined;
var glPatchParameteri: *const function_signatures.glPatchParameteri = undefined;
var glDrawArrays: *const function_signatures.glDrawArrays = undefined;
var glDrawElements: *const function_signatures.glDrawElements = undefined;
var glPolygonOffset: *const function_signatures.glPolygonOffset = undefined;
var glCopyTexImage1D: *const function_signatures.glCopyTexImage1D = undefined;
var glCopyTexImage2D: *const function_signatures.glCopyTexImage2D = undefined;
var glCopyTexSubImage1D: *const function_signatures.glCopyTexSubImage1D = undefined;
var glCopyTexSubImage2D: *const function_signatures.glCopyTexSubImage2D = undefined;
var glTexSubImage1D: *const function_signatures.glTexSubImage1D = undefined;
var glTexSubImage2D: *const function_signatures.glTexSubImage2D = undefined;
var glBindTexture: *const function_signatures.glBindTexture = undefined;
var glDeleteTextures: *const function_signatures.glDeleteTextures = undefined;
var glGenTextures: *const function_signatures.glGenTextures = undefined;
var glIsTexture: *const function_signatures.glIsTexture = undefined;
var glGetActiveSubroutineUniformName: *const function_signatures.glGetActiveSubroutineUniformName = undefined;
var glGetActiveSubroutineUniformiv: *const function_signatures.glGetActiveSubroutineUniformiv = undefined;
var glGetSubroutineIndex: *const function_signatures.glGetSubroutineIndex = undefined;
var glGetSubroutineUniformLocation: *const function_signatures.glGetSubroutineUniformLocation = undefined;
var glGetUniformdv: *const function_signatures.glGetUniformdv = undefined;
var glUniformMatrix4x3dv: *const function_signatures.glUniformMatrix4x3dv = undefined;
var glUniformMatrix4x2dv: *const function_signatures.glUniformMatrix4x2dv = undefined;
var glUniformMatrix3x4dv: *const function_signatures.glUniformMatrix3x4dv = undefined;
var glUniformMatrix3x2dv: *const function_signatures.glUniformMatrix3x2dv = undefined;
var glUniformMatrix2x4dv: *const function_signatures.glUniformMatrix2x4dv = undefined;
var glUniformMatrix2x3dv: *const function_signatures.glUniformMatrix2x3dv = undefined;
var glUniformMatrix4dv: *const function_signatures.glUniformMatrix4dv = undefined;
var glUniformMatrix3dv: *const function_signatures.glUniformMatrix3dv = undefined;
var glDrawRangeElements: *const function_signatures.glDrawRangeElements = undefined;
var glTexImage3D: *const function_signatures.glTexImage3D = undefined;
var glTexSubImage3D: *const function_signatures.glTexSubImage3D = undefined;
var glCopyTexSubImage3D: *const function_signatures.glCopyTexSubImage3D = undefined;
var glUniformMatrix2dv: *const function_signatures.glUniformMatrix2dv = undefined;
var glUniform4dv: *const function_signatures.glUniform4dv = undefined;
var glUniform3dv: *const function_signatures.glUniform3dv = undefined;
var glUniform2dv: *const function_signatures.glUniform2dv = undefined;
var glUniform1dv: *const function_signatures.glUniform1dv = undefined;
var glUniform4d: *const function_signatures.glUniform4d = undefined;
var glUniform3d: *const function_signatures.glUniform3d = undefined;
var glUniform2d: *const function_signatures.glUniform2d = undefined;
var glUniform1d: *const function_signatures.glUniform1d = undefined;
var glDrawElementsIndirect: *const function_signatures.glDrawElementsIndirect = undefined;
var glDrawArraysIndirect: *const function_signatures.glDrawArraysIndirect = undefined;
var glBlendFuncSeparatei: *const function_signatures.glBlendFuncSeparatei = undefined;
var glBlendFunci: *const function_signatures.glBlendFunci = undefined;
var glBlendEquationSeparatei: *const function_signatures.glBlendEquationSeparatei = undefined;
var glBlendEquationi: *const function_signatures.glBlendEquationi = undefined;
var glMinSampleShading: *const function_signatures.glMinSampleShading = undefined;
var glActiveTexture: *const function_signatures.glActiveTexture = undefined;
var glSampleCoverage: *const function_signatures.glSampleCoverage = undefined;
var glCompressedTexImage3D: *const function_signatures.glCompressedTexImage3D = undefined;
var glCompressedTexImage2D: *const function_signatures.glCompressedTexImage2D = undefined;
var glCompressedTexImage1D: *const function_signatures.glCompressedTexImage1D = undefined;
var glCompressedTexSubImage3D: *const function_signatures.glCompressedTexSubImage3D = undefined;
var glCompressedTexSubImage2D: *const function_signatures.glCompressedTexSubImage2D = undefined;
var glCompressedTexSubImage1D: *const function_signatures.glCompressedTexSubImage1D = undefined;
var glGetCompressedTexImage: *const function_signatures.glGetCompressedTexImage = undefined;
var glVertexAttribP4uiv: *const function_signatures.glVertexAttribP4uiv = undefined;
var glVertexAttribP4ui: *const function_signatures.glVertexAttribP4ui = undefined;
var glVertexAttribP3uiv: *const function_signatures.glVertexAttribP3uiv = undefined;
var glVertexAttribP3ui: *const function_signatures.glVertexAttribP3ui = undefined;
var glVertexAttribP2uiv: *const function_signatures.glVertexAttribP2uiv = undefined;
var glVertexAttribP2ui: *const function_signatures.glVertexAttribP2ui = undefined;
var glVertexAttribP1uiv: *const function_signatures.glVertexAttribP1uiv = undefined;
var glVertexAttribP1ui: *const function_signatures.glVertexAttribP1ui = undefined;
var glVertexAttribDivisor: *const function_signatures.glVertexAttribDivisor = undefined;
var glGetQueryObjectui64v: *const function_signatures.glGetQueryObjectui64v = undefined;
var glGetQueryObjecti64v: *const function_signatures.glGetQueryObjecti64v = undefined;
var glQueryCounter: *const function_signatures.glQueryCounter = undefined;
var glGetSamplerParameterIuiv: *const function_signatures.glGetSamplerParameterIuiv = undefined;
var glGetSamplerParameterfv: *const function_signatures.glGetSamplerParameterfv = undefined;
var glGetSamplerParameterIiv: *const function_signatures.glGetSamplerParameterIiv = undefined;
var glGetSamplerParameteriv: *const function_signatures.glGetSamplerParameteriv = undefined;
var glSamplerParameterIuiv: *const function_signatures.glSamplerParameterIuiv = undefined;
var glSamplerParameterIiv: *const function_signatures.glSamplerParameterIiv = undefined;
var glSamplerParameterfv: *const function_signatures.glSamplerParameterfv = undefined;
var glSamplerParameterf: *const function_signatures.glSamplerParameterf = undefined;
var glSamplerParameteriv: *const function_signatures.glSamplerParameteriv = undefined;
var glSamplerParameteri: *const function_signatures.glSamplerParameteri = undefined;
var glBindSampler: *const function_signatures.glBindSampler = undefined;
var glIsSampler: *const function_signatures.glIsSampler = undefined;
var glDeleteSamplers: *const function_signatures.glDeleteSamplers = undefined;
var glGenSamplers: *const function_signatures.glGenSamplers = undefined;
var glGetFragDataIndex: *const function_signatures.glGetFragDataIndex = undefined;
var glBindFragDataLocationIndexed: *const function_signatures.glBindFragDataLocationIndexed = undefined;
var glSampleMaski: *const function_signatures.glSampleMaski = undefined;
var glGetMultisamplefv: *const function_signatures.glGetMultisamplefv = undefined;
var glTexImage3DMultisample: *const function_signatures.glTexImage3DMultisample = undefined;
var glTexImage2DMultisample: *const function_signatures.glTexImage2DMultisample = undefined;
var glFramebufferTexture: *const function_signatures.glFramebufferTexture = undefined;
var glGetBufferParameteri64v: *const function_signatures.glGetBufferParameteri64v = undefined;
var glBlendFuncSeparate: *const function_signatures.glBlendFuncSeparate = undefined;
var glMultiDrawArrays: *const function_signatures.glMultiDrawArrays = undefined;
var glMultiDrawElements: *const function_signatures.glMultiDrawElements = undefined;
var glPointParameterf: *const function_signatures.glPointParameterf = undefined;
var glPointParameterfv: *const function_signatures.glPointParameterfv = undefined;
var glPointParameteri: *const function_signatures.glPointParameteri = undefined;
var glPointParameteriv: *const function_signatures.glPointParameteriv = undefined;
var glGetInteger64i_v: *const function_signatures.glGetInteger64i_v = undefined;
var glGetSynciv: *const function_signatures.glGetSynciv = undefined;
var glGetInteger64v: *const function_signatures.glGetInteger64v = undefined;
var glWaitSync: *const function_signatures.glWaitSync = undefined;
var glClientWaitSync: *const function_signatures.glClientWaitSync = undefined;
var glDeleteSync: *const function_signatures.glDeleteSync = undefined;
var glIsSync: *const function_signatures.glIsSync = undefined;
var glFenceSync: *const function_signatures.glFenceSync = undefined;
var glBlendColor: *const function_signatures.glBlendColor = undefined;
var glBlendEquation: *const function_signatures.glBlendEquation = undefined;
var glProvokingVertex: *const function_signatures.glProvokingVertex = undefined;
var glMultiDrawElementsBaseVertex: *const function_signatures.glMultiDrawElementsBaseVertex = undefined;
var glDrawElementsInstancedBaseVertex: *const function_signatures.glDrawElementsInstancedBaseVertex = undefined;
var glDrawRangeElementsBaseVertex: *const function_signatures.glDrawRangeElementsBaseVertex = undefined;
var glDrawElementsBaseVertex: *const function_signatures.glDrawElementsBaseVertex = undefined;
var glGenQueries: *const function_signatures.glGenQueries = undefined;
var glDeleteQueries: *const function_signatures.glDeleteQueries = undefined;
var glIsQuery: *const function_signatures.glIsQuery = undefined;
var glBeginQuery: *const function_signatures.glBeginQuery = undefined;
var glEndQuery: *const function_signatures.glEndQuery = undefined;
var glGetQueryiv: *const function_signatures.glGetQueryiv = undefined;
var glGetQueryObjectiv: *const function_signatures.glGetQueryObjectiv = undefined;
var glGetQueryObjectuiv: *const function_signatures.glGetQueryObjectuiv = undefined;
var glBindBuffer: *const function_signatures.glBindBuffer = undefined;
var glDeleteBuffers: *const function_signatures.glDeleteBuffers = undefined;
var glGenBuffers: *const function_signatures.glGenBuffers = undefined;
var glIsBuffer: *const function_signatures.glIsBuffer = undefined;
var glBufferData: *const function_signatures.glBufferData = undefined;
var glBufferSubData: *const function_signatures.glBufferSubData = undefined;
var glGetBufferSubData: *const function_signatures.glGetBufferSubData = undefined;
var glMapBuffer: *const function_signatures.glMapBuffer = undefined;
var glUnmapBuffer: *const function_signatures.glUnmapBuffer = undefined;
var glGetBufferParameteriv: *const function_signatures.glGetBufferParameteriv = undefined;
var glGetBufferPointerv: *const function_signatures.glGetBufferPointerv = undefined;
var glBlendEquationSeparate: *const function_signatures.glBlendEquationSeparate = undefined;
var glDrawBuffers: *const function_signatures.glDrawBuffers = undefined;
var glStencilOpSeparate: *const function_signatures.glStencilOpSeparate = undefined;
var glStencilFuncSeparate: *const function_signatures.glStencilFuncSeparate = undefined;
var glStencilMaskSeparate: *const function_signatures.glStencilMaskSeparate = undefined;
var glAttachShader: *const function_signatures.glAttachShader = undefined;
var glBindAttribLocation: *const function_signatures.glBindAttribLocation = undefined;
var glCompileShader: *const function_signatures.glCompileShader = undefined;
var glCreateProgram: *const function_signatures.glCreateProgram = undefined;
var glCreateShader: *const function_signatures.glCreateShader = undefined;
var glDeleteProgram: *const function_signatures.glDeleteProgram = undefined;
var glDeleteShader: *const function_signatures.glDeleteShader = undefined;
var glDetachShader: *const function_signatures.glDetachShader = undefined;
var glDisableVertexAttribArray: *const function_signatures.glDisableVertexAttribArray = undefined;
var glEnableVertexAttribArray: *const function_signatures.glEnableVertexAttribArray = undefined;
var glGetActiveAttrib: *const function_signatures.glGetActiveAttrib = undefined;
var glGetActiveUniform: *const function_signatures.glGetActiveUniform = undefined;
var glGetAttachedShaders: *const function_signatures.glGetAttachedShaders = undefined;
var glGetAttribLocation: *const function_signatures.glGetAttribLocation = undefined;
var glGetProgramiv: *const function_signatures.glGetProgramiv = undefined;
var glGetProgramInfoLog: *const function_signatures.glGetProgramInfoLog = undefined;
var glGetShaderiv: *const function_signatures.glGetShaderiv = undefined;
var glGetShaderInfoLog: *const function_signatures.glGetShaderInfoLog = undefined;
var glGetShaderSource: *const function_signatures.glGetShaderSource = undefined;
var glGetUniformLocation: *const function_signatures.glGetUniformLocation = undefined;
var glGetUniformfv: *const function_signatures.glGetUniformfv = undefined;
var glGetUniformiv: *const function_signatures.glGetUniformiv = undefined;
var glGetVertexAttribdv: *const function_signatures.glGetVertexAttribdv = undefined;
var glGetVertexAttribfv: *const function_signatures.glGetVertexAttribfv = undefined;
var glGetVertexAttribiv: *const function_signatures.glGetVertexAttribiv = undefined;
var glGetVertexAttribPointerv: *const function_signatures.glGetVertexAttribPointerv = undefined;
var glIsProgram: *const function_signatures.glIsProgram = undefined;
var glIsShader: *const function_signatures.glIsShader = undefined;
var glLinkProgram: *const function_signatures.glLinkProgram = undefined;
var glShaderSource: *const function_signatures.glShaderSource = undefined;
var glUseProgram: *const function_signatures.glUseProgram = undefined;
var glUniform1f: *const function_signatures.glUniform1f = undefined;
var glUniform2f: *const function_signatures.glUniform2f = undefined;
var glUniform3f: *const function_signatures.glUniform3f = undefined;
var glUniform4f: *const function_signatures.glUniform4f = undefined;
var glUniform1i: *const function_signatures.glUniform1i = undefined;
var glUniform2i: *const function_signatures.glUniform2i = undefined;
var glUniform3i: *const function_signatures.glUniform3i = undefined;
var glUniform4i: *const function_signatures.glUniform4i = undefined;
var glUniform1fv: *const function_signatures.glUniform1fv = undefined;
var glUniform2fv: *const function_signatures.glUniform2fv = undefined;
var glUniform3fv: *const function_signatures.glUniform3fv = undefined;
var glUniform4fv: *const function_signatures.glUniform4fv = undefined;
var glUniform1iv: *const function_signatures.glUniform1iv = undefined;
var glUniform2iv: *const function_signatures.glUniform2iv = undefined;
var glUniform3iv: *const function_signatures.glUniform3iv = undefined;
var glUniform4iv: *const function_signatures.glUniform4iv = undefined;
var glUniformMatrix2fv: *const function_signatures.glUniformMatrix2fv = undefined;
var glUniformMatrix3fv: *const function_signatures.glUniformMatrix3fv = undefined;
var glUniformMatrix4fv: *const function_signatures.glUniformMatrix4fv = undefined;
var glValidateProgram: *const function_signatures.glValidateProgram = undefined;
var glVertexAttrib1d: *const function_signatures.glVertexAttrib1d = undefined;
var glVertexAttrib1dv: *const function_signatures.glVertexAttrib1dv = undefined;
var glVertexAttrib1f: *const function_signatures.glVertexAttrib1f = undefined;
var glVertexAttrib1fv: *const function_signatures.glVertexAttrib1fv = undefined;
var glVertexAttrib1s: *const function_signatures.glVertexAttrib1s = undefined;
var glVertexAttrib1sv: *const function_signatures.glVertexAttrib1sv = undefined;
var glVertexAttrib2d: *const function_signatures.glVertexAttrib2d = undefined;
var glVertexAttrib2dv: *const function_signatures.glVertexAttrib2dv = undefined;
var glVertexAttrib2f: *const function_signatures.glVertexAttrib2f = undefined;
var glVertexAttrib2fv: *const function_signatures.glVertexAttrib2fv = undefined;
var glVertexAttrib2s: *const function_signatures.glVertexAttrib2s = undefined;
var glVertexAttrib2sv: *const function_signatures.glVertexAttrib2sv = undefined;
var glVertexAttrib3d: *const function_signatures.glVertexAttrib3d = undefined;
var glVertexAttrib3dv: *const function_signatures.glVertexAttrib3dv = undefined;
var glVertexAttrib3f: *const function_signatures.glVertexAttrib3f = undefined;
var glVertexAttrib3fv: *const function_signatures.glVertexAttrib3fv = undefined;
var glVertexAttrib3s: *const function_signatures.glVertexAttrib3s = undefined;
var glVertexAttrib3sv: *const function_signatures.glVertexAttrib3sv = undefined;
var glVertexAttrib4Nbv: *const function_signatures.glVertexAttrib4Nbv = undefined;
var glVertexAttrib4Niv: *const function_signatures.glVertexAttrib4Niv = undefined;
var glVertexAttrib4Nsv: *const function_signatures.glVertexAttrib4Nsv = undefined;
var glVertexAttrib4Nub: *const function_signatures.glVertexAttrib4Nub = undefined;
var glVertexAttrib4Nubv: *const function_signatures.glVertexAttrib4Nubv = undefined;
var glVertexAttrib4Nuiv: *const function_signatures.glVertexAttrib4Nuiv = undefined;
var glVertexAttrib4Nusv: *const function_signatures.glVertexAttrib4Nusv = undefined;
var glVertexAttrib4bv: *const function_signatures.glVertexAttrib4bv = undefined;
var glVertexAttrib4d: *const function_signatures.glVertexAttrib4d = undefined;
var glVertexAttrib4dv: *const function_signatures.glVertexAttrib4dv = undefined;
var glVertexAttrib4f: *const function_signatures.glVertexAttrib4f = undefined;
var glVertexAttrib4fv: *const function_signatures.glVertexAttrib4fv = undefined;
var glVertexAttrib4iv: *const function_signatures.glVertexAttrib4iv = undefined;
var glVertexAttrib4s: *const function_signatures.glVertexAttrib4s = undefined;
var glVertexAttrib4sv: *const function_signatures.glVertexAttrib4sv = undefined;
var glVertexAttrib4ubv: *const function_signatures.glVertexAttrib4ubv = undefined;
var glVertexAttrib4uiv: *const function_signatures.glVertexAttrib4uiv = undefined;
var glVertexAttrib4usv: *const function_signatures.glVertexAttrib4usv = undefined;
var glVertexAttribPointer: *const function_signatures.glVertexAttribPointer = undefined;
var glUniformMatrix2x3fv: *const function_signatures.glUniformMatrix2x3fv = undefined;
var glUniformMatrix3x2fv: *const function_signatures.glUniformMatrix3x2fv = undefined;
var glUniformMatrix2x4fv: *const function_signatures.glUniformMatrix2x4fv = undefined;
var glUniformMatrix4x2fv: *const function_signatures.glUniformMatrix4x2fv = undefined;
var glUniformMatrix3x4fv: *const function_signatures.glUniformMatrix3x4fv = undefined;
var glUniformMatrix4x3fv: *const function_signatures.glUniformMatrix4x3fv = undefined;
var glColorMaski: *const function_signatures.glColorMaski = undefined;
var glGetBooleani_v: *const function_signatures.glGetBooleani_v = undefined;
var glGetIntegeri_v: *const function_signatures.glGetIntegeri_v = undefined;
var glEnablei: *const function_signatures.glEnablei = undefined;
var glDisablei: *const function_signatures.glDisablei = undefined;
var glIsEnabledi: *const function_signatures.glIsEnabledi = undefined;
var glBeginTransformFeedback: *const function_signatures.glBeginTransformFeedback = undefined;
var glEndTransformFeedback: *const function_signatures.glEndTransformFeedback = undefined;
var glBindBufferRange: *const function_signatures.glBindBufferRange = undefined;
var glBindBufferBase: *const function_signatures.glBindBufferBase = undefined;
var glTransformFeedbackVaryings: *const function_signatures.glTransformFeedbackVaryings = undefined;
var glGetTransformFeedbackVarying: *const function_signatures.glGetTransformFeedbackVarying = undefined;
var glClampColor: *const function_signatures.glClampColor = undefined;
var glBeginConditionalRender: *const function_signatures.glBeginConditionalRender = undefined;
var glEndConditionalRender: *const function_signatures.glEndConditionalRender = undefined;
var glVertexAttribIPointer: *const function_signatures.glVertexAttribIPointer = undefined;
var glGetVertexAttribIiv: *const function_signatures.glGetVertexAttribIiv = undefined;
var glGetVertexAttribIuiv: *const function_signatures.glGetVertexAttribIuiv = undefined;
var glVertexAttribI1i: *const function_signatures.glVertexAttribI1i = undefined;
var glVertexAttribI2i: *const function_signatures.glVertexAttribI2i = undefined;
var glVertexAttribI3i: *const function_signatures.glVertexAttribI3i = undefined;
var glVertexAttribI4i: *const function_signatures.glVertexAttribI4i = undefined;
var glVertexAttribI1ui: *const function_signatures.glVertexAttribI1ui = undefined;
var glVertexAttribI2ui: *const function_signatures.glVertexAttribI2ui = undefined;
var glVertexAttribI3ui: *const function_signatures.glVertexAttribI3ui = undefined;
var glVertexAttribI4ui: *const function_signatures.glVertexAttribI4ui = undefined;
var glVertexAttribI1iv: *const function_signatures.glVertexAttribI1iv = undefined;
var glVertexAttribI2iv: *const function_signatures.glVertexAttribI2iv = undefined;
var glVertexAttribI3iv: *const function_signatures.glVertexAttribI3iv = undefined;
var glVertexAttribI4iv: *const function_signatures.glVertexAttribI4iv = undefined;
var glVertexAttribI1uiv: *const function_signatures.glVertexAttribI1uiv = undefined;
var glVertexAttribI2uiv: *const function_signatures.glVertexAttribI2uiv = undefined;
var glVertexAttribI3uiv: *const function_signatures.glVertexAttribI3uiv = undefined;
var glVertexAttribI4uiv: *const function_signatures.glVertexAttribI4uiv = undefined;
var glVertexAttribI4bv: *const function_signatures.glVertexAttribI4bv = undefined;
var glVertexAttribI4sv: *const function_signatures.glVertexAttribI4sv = undefined;
var glVertexAttribI4ubv: *const function_signatures.glVertexAttribI4ubv = undefined;
var glVertexAttribI4usv: *const function_signatures.glVertexAttribI4usv = undefined;
var glGetUniformuiv: *const function_signatures.glGetUniformuiv = undefined;
var glBindFragDataLocation: *const function_signatures.glBindFragDataLocation = undefined;
var glGetFragDataLocation: *const function_signatures.glGetFragDataLocation = undefined;
var glUniform1ui: *const function_signatures.glUniform1ui = undefined;
var glUniform2ui: *const function_signatures.glUniform2ui = undefined;
var glUniform3ui: *const function_signatures.glUniform3ui = undefined;
var glUniform4ui: *const function_signatures.glUniform4ui = undefined;
var glUniform1uiv: *const function_signatures.glUniform1uiv = undefined;
var glUniform2uiv: *const function_signatures.glUniform2uiv = undefined;
var glUniform3uiv: *const function_signatures.glUniform3uiv = undefined;
var glUniform4uiv: *const function_signatures.glUniform4uiv = undefined;
var glTexParameterIiv: *const function_signatures.glTexParameterIiv = undefined;
var glTexParameterIuiv: *const function_signatures.glTexParameterIuiv = undefined;
var glGetTexParameterIiv: *const function_signatures.glGetTexParameterIiv = undefined;
var glGetTexParameterIuiv: *const function_signatures.glGetTexParameterIuiv = undefined;
var glClearBufferiv: *const function_signatures.glClearBufferiv = undefined;
var glClearBufferuiv: *const function_signatures.glClearBufferuiv = undefined;
var glClearBufferfv: *const function_signatures.glClearBufferfv = undefined;
var glClearBufferfi: *const function_signatures.glClearBufferfi = undefined;
var glGetStringi: *const function_signatures.glGetStringi = undefined;
var glIsRenderbuffer: *const function_signatures.glIsRenderbuffer = undefined;
var glBindRenderbuffer: *const function_signatures.glBindRenderbuffer = undefined;
var glDeleteRenderbuffers: *const function_signatures.glDeleteRenderbuffers = undefined;
var glGenRenderbuffers: *const function_signatures.glGenRenderbuffers = undefined;
var glRenderbufferStorage: *const function_signatures.glRenderbufferStorage = undefined;
var glGetRenderbufferParameteriv: *const function_signatures.glGetRenderbufferParameteriv = undefined;
var glIsFramebuffer: *const function_signatures.glIsFramebuffer = undefined;
var glBindFramebuffer: *const function_signatures.glBindFramebuffer = undefined;
var glDeleteFramebuffers: *const function_signatures.glDeleteFramebuffers = undefined;
var glGenFramebuffers: *const function_signatures.glGenFramebuffers = undefined;
var glCheckFramebufferStatus: *const function_signatures.glCheckFramebufferStatus = undefined;
var glFramebufferTexture1D: *const function_signatures.glFramebufferTexture1D = undefined;
var glFramebufferTexture2D: *const function_signatures.glFramebufferTexture2D = undefined;
var glFramebufferTexture3D: *const function_signatures.glFramebufferTexture3D = undefined;
var glFramebufferRenderbuffer: *const function_signatures.glFramebufferRenderbuffer = undefined;
var glGetFramebufferAttachmentParameteriv: *const function_signatures.glGetFramebufferAttachmentParameteriv = undefined;
var glGenerateMipmap: *const function_signatures.glGenerateMipmap = undefined;
var glBlitFramebuffer: *const function_signatures.glBlitFramebuffer = undefined;
var glRenderbufferStorageMultisample: *const function_signatures.glRenderbufferStorageMultisample = undefined;
var glFramebufferTextureLayer: *const function_signatures.glFramebufferTextureLayer = undefined;
var glMapBufferRange: *const function_signatures.glMapBufferRange = undefined;
var glFlushMappedBufferRange: *const function_signatures.glFlushMappedBufferRange = undefined;
var glBindVertexArray: *const function_signatures.glBindVertexArray = undefined;
var glDeleteVertexArrays: *const function_signatures.glDeleteVertexArrays = undefined;
var glGenVertexArrays: *const function_signatures.glGenVertexArrays = undefined;
var glIsVertexArray: *const function_signatures.glIsVertexArray = undefined;
var glDrawArraysInstanced: *const function_signatures.glDrawArraysInstanced = undefined;
var glDrawElementsInstanced: *const function_signatures.glDrawElementsInstanced = undefined;
var glTexBuffer: *const function_signatures.glTexBuffer = undefined;
var glPrimitiveRestartIndex: *const function_signatures.glPrimitiveRestartIndex = undefined;
var glCopyBufferSubData: *const function_signatures.glCopyBufferSubData = undefined;
var glGetUniformIndices: *const function_signatures.glGetUniformIndices = undefined;
var glGetActiveUniformsiv: *const function_signatures.glGetActiveUniformsiv = undefined;
var glGetActiveUniformName: *const function_signatures.glGetActiveUniformName = undefined;
var glGetUniformBlockIndex: *const function_signatures.glGetUniformBlockIndex = undefined;
var glGetActiveUniformBlockiv: *const function_signatures.glGetActiveUniformBlockiv = undefined;
var glGetActiveUniformBlockName: *const function_signatures.glGetActiveUniformBlockName = undefined;
var glUniformBlockBinding: *const function_signatures.glUniformBlockBinding = undefined;
var glTexStorage3DMultisample: *const function_signatures.glTexStorage3DMultisample = undefined;
var glTextureView: *const function_signatures.glTextureView = undefined;
var glBindVertexBuffer: *const function_signatures.glBindVertexBuffer = undefined;
var glVertexAttribFormat: *const function_signatures.glVertexAttribFormat = undefined;
var glVertexAttribIFormat: *const function_signatures.glVertexAttribIFormat = undefined;
var glVertexAttribLFormat: *const function_signatures.glVertexAttribLFormat = undefined;
var glVertexAttribBinding: *const function_signatures.glVertexAttribBinding = undefined;
var glVertexBindingDivisor: *const function_signatures.glVertexBindingDivisor = undefined;
var glDebugMessageControl: *const function_signatures.glDebugMessageControl = undefined;
var glDebugMessageInsert: *const function_signatures.glDebugMessageInsert = undefined;
var glDebugMessageCallback: *const function_signatures.glDebugMessageCallback = undefined;
var glGetDebugMessageLog: *const function_signatures.glGetDebugMessageLog = undefined;
var glPushDebugGroup: *const function_signatures.glPushDebugGroup = undefined;
var glPopDebugGroup: *const function_signatures.glPopDebugGroup = undefined;
var glObjectLabel: *const function_signatures.glObjectLabel = undefined;
var glGetObjectLabel: *const function_signatures.glGetObjectLabel = undefined;
var glObjectPtrLabel: *const function_signatures.glObjectPtrLabel = undefined;
var glGetObjectPtrLabel: *const function_signatures.glGetObjectPtrLabel = undefined;
var glGetPointerv: *const function_signatures.glGetPointerv = undefined;
var glBufferStorage: *const function_signatures.glBufferStorage = undefined;
var glClearTexImage: *const function_signatures.glClearTexImage = undefined;
var glClearTexSubImage: *const function_signatures.glClearTexSubImage = undefined;
var glBindBuffersBase: *const function_signatures.glBindBuffersBase = undefined;
var glBindBuffersRange: *const function_signatures.glBindBuffersRange = undefined;
var glBindTextures: *const function_signatures.glBindTextures = undefined;
var glBindSamplers: *const function_signatures.glBindSamplers = undefined;
var glBindImageTextures: *const function_signatures.glBindImageTextures = undefined;
var glBindVertexBuffers: *const function_signatures.glBindVertexBuffers = undefined;
var glClipControl: *const function_signatures.glClipControl = undefined;
var glCreateTransformFeedbacks: *const function_signatures.glCreateTransformFeedbacks = undefined;
var glTransformFeedbackBufferBase: *const function_signatures.glTransformFeedbackBufferBase = undefined;
var glTransformFeedbackBufferRange: *const function_signatures.glTransformFeedbackBufferRange = undefined;
var glGetTransformFeedbackiv: *const function_signatures.glGetTransformFeedbackiv = undefined;
var glGetTransformFeedbacki_v: *const function_signatures.glGetTransformFeedbacki_v = undefined;
var glGetTransformFeedbacki64_v: *const function_signatures.glGetTransformFeedbacki64_v = undefined;
var glCreateBuffers: *const function_signatures.glCreateBuffers = undefined;
var glNamedBufferStorage: *const function_signatures.glNamedBufferStorage = undefined;
var glNamedBufferData: *const function_signatures.glNamedBufferData = undefined;
var glNamedBufferSubData: *const function_signatures.glNamedBufferSubData = undefined;
var glCopyNamedBufferSubData: *const function_signatures.glCopyNamedBufferSubData = undefined;
var glClearNamedBufferData: *const function_signatures.glClearNamedBufferData = undefined;
var glClearNamedBufferSubData: *const function_signatures.glClearNamedBufferSubData = undefined;
var glMapNamedBuffer: *const function_signatures.glMapNamedBuffer = undefined;
var glMapNamedBufferRange: *const function_signatures.glMapNamedBufferRange = undefined;
var glUnmapNamedBuffer: *const function_signatures.glUnmapNamedBuffer = undefined;
var glFlushMappedNamedBufferRange: *const function_signatures.glFlushMappedNamedBufferRange = undefined;
var glGetNamedBufferParameteriv: *const function_signatures.glGetNamedBufferParameteriv = undefined;
var glGetNamedBufferParameteri64v: *const function_signatures.glGetNamedBufferParameteri64v = undefined;
var glGetNamedBufferPointerv: *const function_signatures.glGetNamedBufferPointerv = undefined;
var glGetNamedBufferSubData: *const function_signatures.glGetNamedBufferSubData = undefined;
var glCreateFramebuffers: *const function_signatures.glCreateFramebuffers = undefined;
var glNamedFramebufferRenderbuffer: *const function_signatures.glNamedFramebufferRenderbuffer = undefined;
var glNamedFramebufferParameteri: *const function_signatures.glNamedFramebufferParameteri = undefined;
var glNamedFramebufferTexture: *const function_signatures.glNamedFramebufferTexture = undefined;
var glNamedFramebufferTextureLayer: *const function_signatures.glNamedFramebufferTextureLayer = undefined;
var glNamedFramebufferDrawBuffer: *const function_signatures.glNamedFramebufferDrawBuffer = undefined;
var glNamedFramebufferDrawBuffers: *const function_signatures.glNamedFramebufferDrawBuffers = undefined;
var glNamedFramebufferReadBuffer: *const function_signatures.glNamedFramebufferReadBuffer = undefined;
var glInvalidateNamedFramebufferData: *const function_signatures.glInvalidateNamedFramebufferData = undefined;
var glInvalidateNamedFramebufferSubData: *const function_signatures.glInvalidateNamedFramebufferSubData = undefined;
var glClearNamedFramebufferiv: *const function_signatures.glClearNamedFramebufferiv = undefined;
var glClearNamedFramebufferuiv: *const function_signatures.glClearNamedFramebufferuiv = undefined;
var glClearNamedFramebufferfv: *const function_signatures.glClearNamedFramebufferfv = undefined;
var glClearNamedFramebufferfi: *const function_signatures.glClearNamedFramebufferfi = undefined;
var glBlitNamedFramebuffer: *const function_signatures.glBlitNamedFramebuffer = undefined;
var glCheckNamedFramebufferStatus: *const function_signatures.glCheckNamedFramebufferStatus = undefined;
var glGetNamedFramebufferParameteriv: *const function_signatures.glGetNamedFramebufferParameteriv = undefined;
var glGetNamedFramebufferAttachmentParameteriv: *const function_signatures.glGetNamedFramebufferAttachmentParameteriv = undefined;
var glCreateRenderbuffers: *const function_signatures.glCreateRenderbuffers = undefined;
var glNamedRenderbufferStorage: *const function_signatures.glNamedRenderbufferStorage = undefined;
var glNamedRenderbufferStorageMultisample: *const function_signatures.glNamedRenderbufferStorageMultisample = undefined;
var glGetNamedRenderbufferParameteriv: *const function_signatures.glGetNamedRenderbufferParameteriv = undefined;
var glCreateTextures: *const function_signatures.glCreateTextures = undefined;
var glTextureBuffer: *const function_signatures.glTextureBuffer = undefined;
var glTextureBufferRange: *const function_signatures.glTextureBufferRange = undefined;
var glTextureStorage1D: *const function_signatures.glTextureStorage1D = undefined;
var glTextureStorage2D: *const function_signatures.glTextureStorage2D = undefined;
var glTextureStorage3D: *const function_signatures.glTextureStorage3D = undefined;
var glTextureStorage2DMultisample: *const function_signatures.glTextureStorage2DMultisample = undefined;
var glTextureStorage3DMultisample: *const function_signatures.glTextureStorage3DMultisample = undefined;
var glTextureSubImage1D: *const function_signatures.glTextureSubImage1D = undefined;
var glTextureSubImage2D: *const function_signatures.glTextureSubImage2D = undefined;
var glTextureSubImage3D: *const function_signatures.glTextureSubImage3D = undefined;
var glCompressedTextureSubImage1D: *const function_signatures.glCompressedTextureSubImage1D = undefined;
var glCompressedTextureSubImage2D: *const function_signatures.glCompressedTextureSubImage2D = undefined;
var glCompressedTextureSubImage3D: *const function_signatures.glCompressedTextureSubImage3D = undefined;
var glCopyTextureSubImage1D: *const function_signatures.glCopyTextureSubImage1D = undefined;
var glCopyTextureSubImage2D: *const function_signatures.glCopyTextureSubImage2D = undefined;
var glCopyTextureSubImage3D: *const function_signatures.glCopyTextureSubImage3D = undefined;
var glTextureParameterf: *const function_signatures.glTextureParameterf = undefined;
var glTextureParameterfv: *const function_signatures.glTextureParameterfv = undefined;
var glTextureParameteri: *const function_signatures.glTextureParameteri = undefined;
var glTextureParameterIiv: *const function_signatures.glTextureParameterIiv = undefined;
var glTextureParameterIuiv: *const function_signatures.glTextureParameterIuiv = undefined;
var glTextureParameteriv: *const function_signatures.glTextureParameteriv = undefined;
var glGenerateTextureMipmap: *const function_signatures.glGenerateTextureMipmap = undefined;
var glBindTextureUnit: *const function_signatures.glBindTextureUnit = undefined;
var glGetTextureImage: *const function_signatures.glGetTextureImage = undefined;
var glGetCompressedTextureImage: *const function_signatures.glGetCompressedTextureImage = undefined;
var glGetTextureLevelParameterfv: *const function_signatures.glGetTextureLevelParameterfv = undefined;
var glGetTextureLevelParameteriv: *const function_signatures.glGetTextureLevelParameteriv = undefined;
var glGetTextureParameterfv: *const function_signatures.glGetTextureParameterfv = undefined;
var glGetTextureParameterIiv: *const function_signatures.glGetTextureParameterIiv = undefined;
var glGetTextureParameterIuiv: *const function_signatures.glGetTextureParameterIuiv = undefined;
var glGetTextureParameteriv: *const function_signatures.glGetTextureParameteriv = undefined;
var glCreateVertexArrays: *const function_signatures.glCreateVertexArrays = undefined;
var glDisableVertexArrayAttrib: *const function_signatures.glDisableVertexArrayAttrib = undefined;
var glEnableVertexArrayAttrib: *const function_signatures.glEnableVertexArrayAttrib = undefined;
var glVertexArrayElementBuffer: *const function_signatures.glVertexArrayElementBuffer = undefined;
var glVertexArrayVertexBuffer: *const function_signatures.glVertexArrayVertexBuffer = undefined;
var glVertexArrayVertexBuffers: *const function_signatures.glVertexArrayVertexBuffers = undefined;
var glVertexArrayAttribBinding: *const function_signatures.glVertexArrayAttribBinding = undefined;
var glVertexArrayAttribFormat: *const function_signatures.glVertexArrayAttribFormat = undefined;
var glVertexArrayAttribIFormat: *const function_signatures.glVertexArrayAttribIFormat = undefined;
var glVertexArrayAttribLFormat: *const function_signatures.glVertexArrayAttribLFormat = undefined;
var glVertexArrayBindingDivisor: *const function_signatures.glVertexArrayBindingDivisor = undefined;
var glGetVertexArrayiv: *const function_signatures.glGetVertexArrayiv = undefined;
var glGetVertexArrayIndexediv: *const function_signatures.glGetVertexArrayIndexediv = undefined;
var glGetVertexArrayIndexed64iv: *const function_signatures.glGetVertexArrayIndexed64iv = undefined;
var glCreateSamplers: *const function_signatures.glCreateSamplers = undefined;
var glCreateProgramPipelines: *const function_signatures.glCreateProgramPipelines = undefined;
var glCreateQueries: *const function_signatures.glCreateQueries = undefined;
var glGetQueryBufferObjecti64v: *const function_signatures.glGetQueryBufferObjecti64v = undefined;
var glGetQueryBufferObjectiv: *const function_signatures.glGetQueryBufferObjectiv = undefined;
var glGetQueryBufferObjectui64v: *const function_signatures.glGetQueryBufferObjectui64v = undefined;
var glGetQueryBufferObjectuiv: *const function_signatures.glGetQueryBufferObjectuiv = undefined;
var glMemoryBarrierByRegion: *const function_signatures.glMemoryBarrierByRegion = undefined;
var glGetTextureSubImage: *const function_signatures.glGetTextureSubImage = undefined;
var glGetCompressedTextureSubImage: *const function_signatures.glGetCompressedTextureSubImage = undefined;
var glGetGraphicsResetStatus: *const function_signatures.glGetGraphicsResetStatus = undefined;
var glGetnCompressedTexImage: *const function_signatures.glGetnCompressedTexImage = undefined;
var glGetnTexImage: *const function_signatures.glGetnTexImage = undefined;
var glGetnUniformdv: *const function_signatures.glGetnUniformdv = undefined;
var glGetnUniformfv: *const function_signatures.glGetnUniformfv = undefined;
var glGetnUniformiv: *const function_signatures.glGetnUniformiv = undefined;
var glGetnUniformuiv: *const function_signatures.glGetnUniformuiv = undefined;
var glReadnPixels: *const function_signatures.glReadnPixels = undefined;
var glTextureBarrier: *const function_signatures.glTextureBarrier = undefined;
};
test {
_ = load;
@setEvalBranchQuota(100_000); // Yes, this is necessary. OpenGL gets quite large!
std.testing.refAllDecls(@This());
}