285typedef void* (*pgl_loader_fn)(
const char* name);
343 uint32_t samples,
bool srgb,
378 const char* frag_src);
421 int32_t w, int32_t h,
422 bool smooth,
bool repeat);
437 int32_t w, int32_t h,
438 bool smooth,
bool repeat,
439 const uint8_t* bitmap);
452 int32_t w, int32_t h,
453 const uint8_t* bitmap);
470 const uint8_t* bitmap);
582 const uint32_t* indices,
pgl_size_t index_count,
713 int32_t w, int32_t h);
813 int32_t c, int32_t d);
1005#ifdef PICO_GL_IMPLEMENTATION
1033#error OpenGL header already included, remove this include, glad already provides it
1038#error OpenGL ES 2 header already included, remove this include, glad already provides it
1043#error OpenGL ES 3 header already included, remove this include, glad already provides it
1047#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
1048#define APIENTRY __stdcall
1055#define APIENTRYP APIENTRY *
1059#define GLAPIENTRY APIENTRY
1066struct gladGLversionStruct {
1071typedef void* (* GLADloadproc)(
const char *name);
1074# if defined(GLAD_GLAPI_EXPORT)
1075# if defined(_WIN32) || defined(__CYGWIN__)
1076# if defined(GLAD_GLAPI_EXPORT_BUILD)
1077# if defined(__GNUC__)
1078# define GLAPI __attribute__ ((dllexport)) extern
1080# define GLAPI __declspec(dllexport) extern
1083# if defined(__GNUC__)
1084# define GLAPI __attribute__ ((dllimport)) extern
1086# define GLAPI __declspec(dllimport) extern
1089# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD)
1090# define GLAPI __attribute__ ((visibility ("default"))) extern
1092# define GLAPI extern
1095# define GLAPI extern
1099GLAPI
struct gladGLversionStruct GLVersion;
1101GLAPI
int gladLoadGL(
void);
1103GLAPI
int gladLoadGLLoader(GLADloadproc);
1105GLAPI
int gladLoadGLES2Loader(GLADloadproc);
1107#ifndef PICO_GL_TYPES
1108#define PICO_GL_TYPES
1112typedef int8_t pgl_int8_t;
1113typedef uint8_t pgl_uint8_t;
1114typedef int16_t pgl_int16_t;
1115typedef uint16_t pgl_uint16_t;
1116typedef int32_t pgl_int32_t;
1117typedef uint32_t pgl_uint32_t;
1118typedef int64_t pgl_int64_t;
1119typedef uint64_t pgl_uint64_t;
1122typedef signed long long int pgl_intptr_t;
1123typedef unsigned long long int pgl_uintptr_t;
1124typedef signed long long int pgl_ssize_t;
1125typedef unsigned long long int pgl_usize_t;
1127typedef signed long int pgl_intptr_t;
1128typedef unsigned long int pgl_uintptr_t;
1129typedef signed long int pgl_ssize_t;
1130typedef unsigned long int pgl_usize_t;
1133typedef float pgl_float_t;
1136typedef unsigned int GLenum;
1137typedef unsigned char GLboolean;
1138typedef unsigned int GLbitfield;
1140typedef pgl_int8_t GLbyte;
1141typedef pgl_uint8_t GLubyte;
1142typedef pgl_int16_t GLshort;
1143typedef pgl_uint16_t GLushort;
1145typedef unsigned int GLuint;
1146typedef pgl_int32_t GLclampx;
1148typedef pgl_float_t GLfloat;
1149typedef pgl_float_t GLclampf;
1150typedef double GLdouble;
1151typedef double GLclampd;
1152typedef void *GLeglClientBufferEXT;
1153typedef void *GLeglImageOES;
1155typedef char GLcharARB;
1157typedef void *GLhandleARB;
1159typedef unsigned int GLhandleARB;
1161typedef pgl_uint16_t GLhalf;
1162typedef pgl_uint16_t GLhalfARB;
1163typedef pgl_int32_t GLfixed;
1164typedef pgl_intptr_t GLintptr;
1165typedef pgl_intptr_t GLintptrARB;
1166typedef pgl_ssize_t GLsizeiptr;
1167typedef pgl_ssize_t GLsizeiptrARB;
1168typedef pgl_int64_t GLint64;
1169typedef pgl_int64_t GLint64EXT;
1170typedef pgl_uint64_t GLuint64;
1171typedef pgl_uint64_t GLuint64EXT;
1172typedef struct __GLsync *GLsync;
1175typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,
const GLchar *message,
const void *userParam);
1176typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,
const GLchar *message,
const void *userParam);
1177typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,
const GLchar *message,
const void *userParam);
1178typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,
const GLchar *message,
void *userParam);
1179typedef unsigned short GLhalfNV;
1180typedef GLintptr GLvdpauSurfaceNV;
1181typedef void (APIENTRY *GLVULKANPROCNV)(void);
1182#define GL_DEPTH_BUFFER_BIT 0x00000100
1183#define GL_STENCIL_BUFFER_BIT 0x00000400
1184#define GL_COLOR_BUFFER_BIT 0x00004000
1187#define GL_POINTS 0x0000
1188#define GL_LINES 0x0001
1189#define GL_LINE_LOOP 0x0002
1190#define GL_LINE_STRIP 0x0003
1191#define GL_TRIANGLES 0x0004
1192#define GL_TRIANGLE_STRIP 0x0005
1193#define GL_TRIANGLE_FAN 0x0006
1194#define GL_NEVER 0x0200
1195#define GL_LESS 0x0201
1196#define GL_EQUAL 0x0202
1197#define GL_LEQUAL 0x0203
1198#define GL_GREATER 0x0204
1199#define GL_NOTEQUAL 0x0205
1200#define GL_GEQUAL 0x0206
1201#define GL_ALWAYS 0x0207
1204#define GL_SRC_COLOR 0x0300
1205#define GL_ONE_MINUS_SRC_COLOR 0x0301
1206#define GL_SRC_ALPHA 0x0302
1207#define GL_ONE_MINUS_SRC_ALPHA 0x0303
1208#define GL_DST_ALPHA 0x0304
1209#define GL_ONE_MINUS_DST_ALPHA 0x0305
1210#define GL_DST_COLOR 0x0306
1211#define GL_ONE_MINUS_DST_COLOR 0x0307
1212#define GL_SRC_ALPHA_SATURATE 0x0308
1214#define GL_FRONT_LEFT 0x0400
1215#define GL_FRONT_RIGHT 0x0401
1216#define GL_BACK_LEFT 0x0402
1217#define GL_BACK_RIGHT 0x0403
1218#define GL_FRONT 0x0404
1219#define GL_BACK 0x0405
1220#define GL_LEFT 0x0406
1221#define GL_RIGHT 0x0407
1222#define GL_FRONT_AND_BACK 0x0408
1223#define GL_NO_ERROR 0
1224#define GL_INVALID_ENUM 0x0500
1225#define GL_INVALID_VALUE 0x0501
1226#define GL_INVALID_OPERATION 0x0502
1227#define GL_OUT_OF_MEMORY 0x0505
1229#define GL_CCW 0x0901
1230#define GL_POINT_SIZE 0x0B11
1231#define GL_POINT_SIZE_RANGE 0x0B12
1232#define GL_POINT_SIZE_GRANULARITY 0x0B13
1233#define GL_LINE_SMOOTH 0x0B20
1234#define GL_LINE_WIDTH 0x0B21
1235#define GL_LINE_WIDTH_RANGE 0x0B22
1236#define GL_LINE_WIDTH_GRANULARITY 0x0B23
1237#define GL_POLYGON_MODE 0x0B40
1238#define GL_POLYGON_SMOOTH 0x0B41
1239#define GL_CULL_FACE 0x0B44
1240#define GL_CULL_FACE_MODE 0x0B45
1241#define GL_FRONT_FACE 0x0B46
1242#define GL_DEPTH_RANGE 0x0B70
1243#define GL_DEPTH_TEST 0x0B71
1244#define GL_DEPTH_WRITEMASK 0x0B72
1245#define GL_DEPTH_CLEAR_VALUE 0x0B73
1246#define GL_DEPTH_FUNC 0x0B74
1247#define GL_STENCIL_TEST 0x0B90
1248#define GL_STENCIL_CLEAR_VALUE 0x0B91
1249#define GL_STENCIL_FUNC 0x0B92
1250#define GL_STENCIL_VALUE_MASK 0x0B93
1251#define GL_STENCIL_FAIL 0x0B94
1252#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
1253#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
1254#define GL_STENCIL_REF 0x0B97
1255#define GL_STENCIL_WRITEMASK 0x0B98
1256#define GL_VIEWPORT 0x0BA2
1257#define GL_DITHER 0x0BD0
1258#define GL_BLEND_DST 0x0BE0
1259#define GL_BLEND_SRC 0x0BE1
1260#define GL_BLEND 0x0BE2
1261#define GL_LOGIC_OP_MODE 0x0BF0
1262#define GL_DRAW_BUFFER 0x0C01
1263#define GL_READ_BUFFER 0x0C02
1264#define GL_SCISSOR_BOX 0x0C10
1265#define GL_SCISSOR_TEST 0x0C11
1266#define GL_COLOR_CLEAR_VALUE 0x0C22
1267#define GL_COLOR_WRITEMASK 0x0C23
1268#define GL_DOUBLEBUFFER 0x0C32
1269#define GL_STEREO 0x0C33
1270#define GL_LINE_SMOOTH_HINT 0x0C52
1271#define GL_POLYGON_SMOOTH_HINT 0x0C53
1272#define GL_UNPACK_SWAP_BYTES 0x0CF0
1273#define GL_UNPACK_LSB_FIRST 0x0CF1
1274#define GL_UNPACK_ROW_LENGTH 0x0CF2
1275#define GL_UNPACK_SKIP_ROWS 0x0CF3
1276#define GL_UNPACK_SKIP_PIXELS 0x0CF4
1277#define GL_UNPACK_ALIGNMENT 0x0CF5
1278#define GL_PACK_SWAP_BYTES 0x0D00
1279#define GL_PACK_LSB_FIRST 0x0D01
1280#define GL_PACK_ROW_LENGTH 0x0D02
1281#define GL_PACK_SKIP_ROWS 0x0D03
1282#define GL_PACK_SKIP_PIXELS 0x0D04
1283#define GL_PACK_ALIGNMENT 0x0D05
1284#define GL_MAX_TEXTURE_SIZE 0x0D33
1285#define GL_MAX_VIEWPORT_DIMS 0x0D3A
1286#define GL_SUBPIXEL_BITS 0x0D50
1287#define GL_TEXTURE_1D 0x0DE0
1288#define GL_TEXTURE_2D 0x0DE1
1289#define GL_TEXTURE_WIDTH 0x1000
1290#define GL_TEXTURE_HEIGHT 0x1001
1291#define GL_TEXTURE_BORDER_COLOR 0x1004
1292#define GL_DONT_CARE 0x1100
1293#define GL_FASTEST 0x1101
1294#define GL_NICEST 0x1102
1295#define GL_BYTE 0x1400
1296#define GL_UNSIGNED_BYTE 0x1401
1297#define GL_SHORT 0x1402
1298#define GL_UNSIGNED_SHORT 0x1403
1299#define GL_INT 0x1404
1300#define GL_UNSIGNED_INT 0x1405
1301#define GL_FLOAT 0x1406
1302#define GL_CLEAR 0x1500
1303#define GL_AND 0x1501
1304#define GL_AND_REVERSE 0x1502
1305#define GL_COPY 0x1503
1306#define GL_AND_INVERTED 0x1504
1307#define GL_NOOP 0x1505
1308#define GL_XOR 0x1506
1310#define GL_NOR 0x1508
1311#define GL_EQUIV 0x1509
1312#define GL_INVERT 0x150A
1313#define GL_OR_REVERSE 0x150B
1314#define GL_COPY_INVERTED 0x150C
1315#define GL_OR_INVERTED 0x150D
1316#define GL_NAND 0x150E
1317#define GL_SET 0x150F
1318#define GL_TEXTURE 0x1702
1319#define GL_COLOR 0x1800
1320#define GL_DEPTH 0x1801
1321#define GL_STENCIL 0x1802
1322#define GL_STENCIL_INDEX 0x1901
1323#define GL_DEPTH_COMPONENT 0x1902
1324#define GL_RED 0x1903
1325#define GL_GREEN 0x1904
1326#define GL_BLUE 0x1905
1327#define GL_ALPHA 0x1906
1328#define GL_RGB 0x1907
1329#define GL_RGBA 0x1908
1330#define GL_POINT 0x1B00
1331#define GL_LINE 0x1B01
1332#define GL_FILL 0x1B02
1333#define GL_KEEP 0x1E00
1334#define GL_REPLACE 0x1E01
1335#define GL_INCR 0x1E02
1336#define GL_DECR 0x1E03
1337#define GL_VENDOR 0x1F00
1338#define GL_RENDERER 0x1F01
1339#define GL_VERSION 0x1F02
1340#define GL_EXTENSIONS 0x1F03
1341#define GL_NEAREST 0x2600
1342#define GL_LINEAR 0x2601
1343#define GL_NEAREST_MIPMAP_NEAREST 0x2700
1344#define GL_LINEAR_MIPMAP_NEAREST 0x2701
1345#define GL_NEAREST_MIPMAP_LINEAR 0x2702
1346#define GL_LINEAR_MIPMAP_LINEAR 0x2703
1347#define GL_TEXTURE_MAG_FILTER 0x2800
1348#define GL_TEXTURE_MIN_FILTER 0x2801
1349#define GL_TEXTURE_WRAP_S 0x2802
1350#define GL_TEXTURE_WRAP_T 0x2803
1351#define GL_REPEAT 0x2901
1352#define GL_COLOR_LOGIC_OP 0x0BF2
1353#define GL_POLYGON_OFFSET_UNITS 0x2A00
1354#define GL_POLYGON_OFFSET_POINT 0x2A01
1355#define GL_POLYGON_OFFSET_LINE 0x2A02
1356#define GL_POLYGON_OFFSET_FILL 0x8037
1357#define GL_POLYGON_OFFSET_FACTOR 0x8038
1358#define GL_TEXTURE_BINDING_1D 0x8068
1359#define GL_TEXTURE_BINDING_2D 0x8069
1360#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
1361#define GL_TEXTURE_RED_SIZE 0x805C
1362#define GL_TEXTURE_GREEN_SIZE 0x805D
1363#define GL_TEXTURE_BLUE_SIZE 0x805E
1364#define GL_TEXTURE_ALPHA_SIZE 0x805F
1365#define GL_DOUBLE 0x140A
1366#define GL_PROXY_TEXTURE_1D 0x8063
1367#define GL_PROXY_TEXTURE_2D 0x8064
1368#define GL_R3_G3_B2 0x2A10
1369#define GL_RGB4 0x804F
1370#define GL_RGB5 0x8050
1371#define GL_RGB8 0x8051
1372#define GL_RGB10 0x8052
1373#define GL_RGB12 0x8053
1374#define GL_RGB16 0x8054
1375#define GL_RGBA2 0x8055
1376#define GL_RGBA4 0x8056
1377#define GL_RGB5_A1 0x8057
1378#define GL_RGBA8 0x8058
1379#define GL_RGB10_A2 0x8059
1380#define GL_RGBA12 0x805A
1381#define GL_RGBA16 0x805B
1382#define GL_UNSIGNED_BYTE_3_3_2 0x8032
1383#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
1384#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
1385#define GL_UNSIGNED_INT_8_8_8_8 0x8035
1386#define GL_UNSIGNED_INT_10_10_10_2 0x8036
1387#define GL_TEXTURE_BINDING_3D 0x806A
1388#define GL_PACK_SKIP_IMAGES 0x806B
1389#define GL_PACK_IMAGE_HEIGHT 0x806C
1390#define GL_UNPACK_SKIP_IMAGES 0x806D
1391#define GL_UNPACK_IMAGE_HEIGHT 0x806E
1392#define GL_TEXTURE_3D 0x806F
1393#define GL_PROXY_TEXTURE_3D 0x8070
1394#define GL_TEXTURE_DEPTH 0x8071
1395#define GL_TEXTURE_WRAP_R 0x8072
1396#define GL_MAX_3D_TEXTURE_SIZE 0x8073
1397#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
1398#define GL_UNSIGNED_SHORT_5_6_5 0x8363
1399#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
1400#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
1401#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
1402#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
1403#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
1404#define GL_BGR 0x80E0
1405#define GL_BGRA 0x80E1
1406#define GL_MAX_ELEMENTS_VERTICES 0x80E8
1407#define GL_MAX_ELEMENTS_INDICES 0x80E9
1408#define GL_CLAMP_TO_EDGE 0x812F
1409#define GL_TEXTURE_MIN_LOD 0x813A
1410#define GL_TEXTURE_MAX_LOD 0x813B
1411#define GL_TEXTURE_BASE_LEVEL 0x813C
1412#define GL_TEXTURE_MAX_LEVEL 0x813D
1413#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
1414#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
1415#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
1416#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
1417#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
1418#define GL_TEXTURE0 0x84C0
1419#define GL_TEXTURE1 0x84C1
1420#define GL_TEXTURE2 0x84C2
1421#define GL_TEXTURE3 0x84C3
1422#define GL_TEXTURE4 0x84C4
1423#define GL_TEXTURE5 0x84C5
1424#define GL_TEXTURE6 0x84C6
1425#define GL_TEXTURE7 0x84C7
1426#define GL_TEXTURE8 0x84C8
1427#define GL_TEXTURE9 0x84C9
1428#define GL_TEXTURE10 0x84CA
1429#define GL_TEXTURE11 0x84CB
1430#define GL_TEXTURE12 0x84CC
1431#define GL_TEXTURE13 0x84CD
1432#define GL_TEXTURE14 0x84CE
1433#define GL_TEXTURE15 0x84CF
1434#define GL_TEXTURE16 0x84D0
1435#define GL_TEXTURE17 0x84D1
1436#define GL_TEXTURE18 0x84D2
1437#define GL_TEXTURE19 0x84D3
1438#define GL_TEXTURE20 0x84D4
1439#define GL_TEXTURE21 0x84D5
1440#define GL_TEXTURE22 0x84D6
1441#define GL_TEXTURE23 0x84D7
1442#define GL_TEXTURE24 0x84D8
1443#define GL_TEXTURE25 0x84D9
1444#define GL_TEXTURE26 0x84DA
1445#define GL_TEXTURE27 0x84DB
1446#define GL_TEXTURE28 0x84DC
1447#define GL_TEXTURE29 0x84DD
1448#define GL_TEXTURE30 0x84DE
1449#define GL_TEXTURE31 0x84DF
1450#define GL_ACTIVE_TEXTURE 0x84E0
1451#define GL_MULTISAMPLE 0x809D
1452#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
1453#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
1454#define GL_SAMPLE_COVERAGE 0x80A0
1455#define GL_SAMPLE_BUFFERS 0x80A8
1456#define GL_SAMPLES 0x80A9
1457#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
1458#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
1459#define GL_TEXTURE_CUBE_MAP 0x8513
1460#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
1461#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
1462#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
1463#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
1464#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
1465#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
1466#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
1467#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
1468#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
1469#define GL_COMPRESSED_RGB 0x84ED
1470#define GL_COMPRESSED_RGBA 0x84EE
1471#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
1472#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
1473#define GL_TEXTURE_COMPRESSED 0x86A1
1474#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
1475#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
1476#define GL_CLAMP_TO_BORDER 0x812D
1477#define GL_BLEND_DST_RGB 0x80C8
1478#define GL_BLEND_SRC_RGB 0x80C9
1479#define GL_BLEND_DST_ALPHA 0x80CA
1480#define GL_BLEND_SRC_ALPHA 0x80CB
1481#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
1482#define GL_DEPTH_COMPONENT16 0x81A5
1483#define GL_DEPTH_COMPONENT24 0x81A6
1484#define GL_DEPTH_COMPONENT32 0x81A7
1485#define GL_MIRRORED_REPEAT 0x8370
1486#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
1487#define GL_TEXTURE_LOD_BIAS 0x8501
1488#define GL_INCR_WRAP 0x8507
1489#define GL_DECR_WRAP 0x8508
1490#define GL_TEXTURE_DEPTH_SIZE 0x884A
1491#define GL_TEXTURE_COMPARE_MODE 0x884C
1492#define GL_TEXTURE_COMPARE_FUNC 0x884D
1493#define GL_BLEND_COLOR 0x8005
1494#define GL_BLEND_EQUATION 0x8009
1495#define GL_CONSTANT_COLOR 0x8001
1496#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
1497#define GL_CONSTANT_ALPHA 0x8003
1498#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
1499#define GL_FUNC_ADD 0x8006
1500#define GL_FUNC_REVERSE_SUBTRACT 0x800B
1501#define GL_FUNC_SUBTRACT 0x800A
1502#define GL_MIN 0x8007
1503#define GL_MAX 0x8008
1504#define GL_BUFFER_SIZE 0x8764
1505#define GL_BUFFER_USAGE 0x8765
1506#define GL_QUERY_COUNTER_BITS 0x8864
1507#define GL_CURRENT_QUERY 0x8865
1508#define GL_QUERY_RESULT 0x8866
1509#define GL_QUERY_RESULT_AVAILABLE 0x8867
1510#define GL_ARRAY_BUFFER 0x8892
1511#define GL_ELEMENT_ARRAY_BUFFER 0x8893
1512#define GL_ARRAY_BUFFER_BINDING 0x8894
1513#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
1514#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
1515#define GL_READ_ONLY 0x88B8
1516#define GL_WRITE_ONLY 0x88B9
1517#define GL_READ_WRITE 0x88BA
1518#define GL_BUFFER_ACCESS 0x88BB
1519#define GL_BUFFER_MAPPED 0x88BC
1520#define GL_BUFFER_MAP_POINTER 0x88BD
1521#define GL_STREAM_DRAW 0x88E0
1522#define GL_STREAM_READ 0x88E1
1523#define GL_STREAM_COPY 0x88E2
1524#define GL_STATIC_DRAW 0x88E4
1525#define GL_STATIC_READ 0x88E5
1526#define GL_STATIC_COPY 0x88E6
1527#define GL_DYNAMIC_DRAW 0x88E8
1528#define GL_DYNAMIC_READ 0x88E9
1529#define GL_DYNAMIC_COPY 0x88EA
1530#define GL_SAMPLES_PASSED 0x8914
1531#define GL_SRC1_ALPHA 0x8589
1532#define GL_BLEND_EQUATION_RGB 0x8009
1533#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
1534#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
1535#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
1536#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
1537#define GL_CURRENT_VERTEX_ATTRIB 0x8626
1538#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
1539#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
1540#define GL_STENCIL_BACK_FUNC 0x8800
1541#define GL_STENCIL_BACK_FAIL 0x8801
1542#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
1543#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
1544#define GL_MAX_DRAW_BUFFERS 0x8824
1545#define GL_DRAW_BUFFER0 0x8825
1546#define GL_DRAW_BUFFER1 0x8826
1547#define GL_DRAW_BUFFER2 0x8827
1548#define GL_DRAW_BUFFER3 0x8828
1549#define GL_DRAW_BUFFER4 0x8829
1550#define GL_DRAW_BUFFER5 0x882A
1551#define GL_DRAW_BUFFER6 0x882B
1552#define GL_DRAW_BUFFER7 0x882C
1553#define GL_DRAW_BUFFER8 0x882D
1554#define GL_DRAW_BUFFER9 0x882E
1555#define GL_DRAW_BUFFER10 0x882F
1556#define GL_DRAW_BUFFER11 0x8830
1557#define GL_DRAW_BUFFER12 0x8831
1558#define GL_DRAW_BUFFER13 0x8832
1559#define GL_DRAW_BUFFER14 0x8833
1560#define GL_DRAW_BUFFER15 0x8834
1561#define GL_BLEND_EQUATION_ALPHA 0x883D
1562#define GL_MAX_VERTEX_ATTRIBS 0x8869
1563#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
1564#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
1565#define GL_FRAGMENT_SHADER 0x8B30
1566#define GL_VERTEX_SHADER 0x8B31
1567#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
1568#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
1569#define GL_MAX_VARYING_FLOATS 0x8B4B
1570#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
1571#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
1572#define GL_SHADER_TYPE 0x8B4F
1573#define GL_FLOAT_VEC2 0x8B50
1574#define GL_FLOAT_VEC3 0x8B51
1575#define GL_FLOAT_VEC4 0x8B52
1576#define GL_INT_VEC2 0x8B53
1577#define GL_INT_VEC3 0x8B54
1578#define GL_INT_VEC4 0x8B55
1579#define GL_BOOL 0x8B56
1580#define GL_BOOL_VEC2 0x8B57
1581#define GL_BOOL_VEC3 0x8B58
1582#define GL_BOOL_VEC4 0x8B59
1583#define GL_FLOAT_MAT2 0x8B5A
1584#define GL_FLOAT_MAT3 0x8B5B
1585#define GL_FLOAT_MAT4 0x8B5C
1586#define GL_SAMPLER_1D 0x8B5D
1587#define GL_SAMPLER_2D 0x8B5E
1588#define GL_SAMPLER_3D 0x8B5F
1589#define GL_SAMPLER_CUBE 0x8B60
1590#define GL_SAMPLER_1D_SHADOW 0x8B61
1591#define GL_SAMPLER_2D_SHADOW 0x8B62
1592#define GL_DELETE_STATUS 0x8B80
1593#define GL_COMPILE_STATUS 0x8B81
1594#define GL_LINK_STATUS 0x8B82
1595#define GL_VALIDATE_STATUS 0x8B83
1596#define GL_INFO_LOG_LENGTH 0x8B84
1597#define GL_ATTACHED_SHADERS 0x8B85
1598#define GL_ACTIVE_UNIFORMS 0x8B86
1599#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
1600#define GL_SHADER_SOURCE_LENGTH 0x8B88
1601#define GL_ACTIVE_ATTRIBUTES 0x8B89
1602#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
1603#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
1604#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
1605#define GL_CURRENT_PROGRAM 0x8B8D
1606#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
1607#define GL_LOWER_LEFT 0x8CA1
1608#define GL_UPPER_LEFT 0x8CA2
1609#define GL_STENCIL_BACK_REF 0x8CA3
1610#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
1611#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
1612#define GL_PIXEL_PACK_BUFFER 0x88EB
1613#define GL_PIXEL_UNPACK_BUFFER 0x88EC
1614#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
1615#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
1616#define GL_FLOAT_MAT2x3 0x8B65
1617#define GL_FLOAT_MAT2x4 0x8B66
1618#define GL_FLOAT_MAT3x2 0x8B67
1619#define GL_FLOAT_MAT3x4 0x8B68
1620#define GL_FLOAT_MAT4x2 0x8B69
1621#define GL_FLOAT_MAT4x3 0x8B6A
1622#define GL_SRGB 0x8C40
1623#define GL_SRGB8 0x8C41
1624#define GL_SRGB_ALPHA 0x8C42
1625#define GL_SRGB8_ALPHA8 0x8C43
1626#define GL_COMPRESSED_SRGB 0x8C48
1627#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
1628#define GL_COMPARE_REF_TO_TEXTURE 0x884E
1629#define GL_CLIP_DISTANCE0 0x3000
1630#define GL_CLIP_DISTANCE1 0x3001
1631#define GL_CLIP_DISTANCE2 0x3002
1632#define GL_CLIP_DISTANCE3 0x3003
1633#define GL_CLIP_DISTANCE4 0x3004
1634#define GL_CLIP_DISTANCE5 0x3005
1635#define GL_CLIP_DISTANCE6 0x3006
1636#define GL_CLIP_DISTANCE7 0x3007
1637#define GL_MAX_CLIP_DISTANCES 0x0D32
1638#define GL_MAJOR_VERSION 0x821B
1639#define GL_MINOR_VERSION 0x821C
1640#define GL_NUM_EXTENSIONS 0x821D
1641#define GL_CONTEXT_FLAGS 0x821E
1642#define GL_COMPRESSED_RED 0x8225
1643#define GL_COMPRESSED_RG 0x8226
1644#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
1645#define GL_RGBA32F 0x8814
1646#define GL_RGB32F 0x8815
1647#define GL_RGBA16F 0x881A
1648#define GL_RGB16F 0x881B
1649#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
1650#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
1651#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
1652#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
1653#define GL_CLAMP_READ_COLOR 0x891C
1654#define GL_FIXED_ONLY 0x891D
1655#define GL_MAX_VARYING_COMPONENTS 0x8B4B
1656#define GL_TEXTURE_1D_ARRAY 0x8C18
1657#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
1658#define GL_TEXTURE_2D_ARRAY 0x8C1A
1659#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
1660#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
1661#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
1662#define GL_R11F_G11F_B10F 0x8C3A
1663#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
1664#define GL_RGB9_E5 0x8C3D
1665#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
1666#define GL_TEXTURE_SHARED_SIZE 0x8C3F
1667#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
1668#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
1669#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
1670#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
1671#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
1672#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
1673#define GL_PRIMITIVES_GENERATED 0x8C87
1674#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
1675#define GL_RASTERIZER_DISCARD 0x8C89
1676#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
1677#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
1678#define GL_INTERLEAVED_ATTRIBS 0x8C8C
1679#define GL_SEPARATE_ATTRIBS 0x8C8D
1680#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
1681#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
1682#define GL_RGBA32UI 0x8D70
1683#define GL_RGB32UI 0x8D71
1684#define GL_RGBA16UI 0x8D76
1685#define GL_RGB16UI 0x8D77
1686#define GL_RGBA8UI 0x8D7C
1687#define GL_RGB8UI 0x8D7D
1688#define GL_RGBA32I 0x8D82
1689#define GL_RGB32I 0x8D83
1690#define GL_RGBA16I 0x8D88
1691#define GL_RGB16I 0x8D89
1692#define GL_RGBA8I 0x8D8E
1693#define GL_RGB8I 0x8D8F
1694#define GL_RED_INTEGER 0x8D94
1695#define GL_GREEN_INTEGER 0x8D95
1696#define GL_BLUE_INTEGER 0x8D96
1697#define GL_RGB_INTEGER 0x8D98
1698#define GL_RGBA_INTEGER 0x8D99
1699#define GL_BGR_INTEGER 0x8D9A
1700#define GL_BGRA_INTEGER 0x8D9B
1701#define GL_SAMPLER_1D_ARRAY 0x8DC0
1702#define GL_SAMPLER_2D_ARRAY 0x8DC1
1703#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
1704#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
1705#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
1706#define GL_UNSIGNED_INT_VEC2 0x8DC6
1707#define GL_UNSIGNED_INT_VEC3 0x8DC7
1708#define GL_UNSIGNED_INT_VEC4 0x8DC8
1709#define GL_INT_SAMPLER_1D 0x8DC9
1710#define GL_INT_SAMPLER_2D 0x8DCA
1711#define GL_INT_SAMPLER_3D 0x8DCB
1712#define GL_INT_SAMPLER_CUBE 0x8DCC
1713#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
1714#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
1715#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
1716#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
1717#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
1718#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
1719#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
1720#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
1721#define GL_QUERY_WAIT 0x8E13
1722#define GL_QUERY_NO_WAIT 0x8E14
1723#define GL_QUERY_BY_REGION_WAIT 0x8E15
1724#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
1725#define GL_BUFFER_ACCESS_FLAGS 0x911F
1726#define GL_BUFFER_MAP_LENGTH 0x9120
1727#define GL_BUFFER_MAP_OFFSET 0x9121
1728#define GL_DEPTH_COMPONENT32F 0x8CAC
1729#define GL_DEPTH32F_STENCIL8 0x8CAD
1730#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
1731#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
1732#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
1733#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
1734#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
1735#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
1736#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
1737#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
1738#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
1739#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
1740#define GL_FRAMEBUFFER_DEFAULT 0x8218
1741#define GL_FRAMEBUFFER_UNDEFINED 0x8219
1742#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
1743#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
1744#define GL_DEPTH_STENCIL 0x84F9
1745#define GL_UNSIGNED_INT_24_8 0x84FA
1746#define GL_DEPTH24_STENCIL8 0x88F0
1747#define GL_TEXTURE_STENCIL_SIZE 0x88F1
1748#define GL_TEXTURE_RED_TYPE 0x8C10
1749#define GL_TEXTURE_GREEN_TYPE 0x8C11
1750#define GL_TEXTURE_BLUE_TYPE 0x8C12
1751#define GL_TEXTURE_ALPHA_TYPE 0x8C13
1752#define GL_TEXTURE_DEPTH_TYPE 0x8C16
1753#define GL_UNSIGNED_NORMALIZED 0x8C17
1754#define GL_FRAMEBUFFER_BINDING 0x8CA6
1755#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
1756#define GL_RENDERBUFFER_BINDING 0x8CA7
1757#define GL_READ_FRAMEBUFFER 0x8CA8
1758#define GL_DRAW_FRAMEBUFFER 0x8CA9
1759#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
1760#define GL_RENDERBUFFER_SAMPLES 0x8CAB
1761#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
1762#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
1763#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
1764#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
1765#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
1766#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
1767#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
1768#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
1769#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
1770#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
1771#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
1772#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
1773#define GL_COLOR_ATTACHMENT0 0x8CE0
1774#define GL_COLOR_ATTACHMENT1 0x8CE1
1775#define GL_COLOR_ATTACHMENT2 0x8CE2
1776#define GL_COLOR_ATTACHMENT3 0x8CE3
1777#define GL_COLOR_ATTACHMENT4 0x8CE4
1778#define GL_COLOR_ATTACHMENT5 0x8CE5
1779#define GL_COLOR_ATTACHMENT6 0x8CE6
1780#define GL_COLOR_ATTACHMENT7 0x8CE7
1781#define GL_COLOR_ATTACHMENT8 0x8CE8
1782#define GL_COLOR_ATTACHMENT9 0x8CE9
1783#define GL_COLOR_ATTACHMENT10 0x8CEA
1784#define GL_COLOR_ATTACHMENT11 0x8CEB
1785#define GL_COLOR_ATTACHMENT12 0x8CEC
1786#define GL_COLOR_ATTACHMENT13 0x8CED
1787#define GL_COLOR_ATTACHMENT14 0x8CEE
1788#define GL_COLOR_ATTACHMENT15 0x8CEF
1789#define GL_COLOR_ATTACHMENT16 0x8CF0
1790#define GL_COLOR_ATTACHMENT17 0x8CF1
1791#define GL_COLOR_ATTACHMENT18 0x8CF2
1792#define GL_COLOR_ATTACHMENT19 0x8CF3
1793#define GL_COLOR_ATTACHMENT20 0x8CF4
1794#define GL_COLOR_ATTACHMENT21 0x8CF5
1795#define GL_COLOR_ATTACHMENT22 0x8CF6
1796#define GL_COLOR_ATTACHMENT23 0x8CF7
1797#define GL_COLOR_ATTACHMENT24 0x8CF8
1798#define GL_COLOR_ATTACHMENT25 0x8CF9
1799#define GL_COLOR_ATTACHMENT26 0x8CFA
1800#define GL_COLOR_ATTACHMENT27 0x8CFB
1801#define GL_COLOR_ATTACHMENT28 0x8CFC
1802#define GL_COLOR_ATTACHMENT29 0x8CFD
1803#define GL_COLOR_ATTACHMENT30 0x8CFE
1804#define GL_COLOR_ATTACHMENT31 0x8CFF
1805#define GL_DEPTH_ATTACHMENT 0x8D00
1806#define GL_STENCIL_ATTACHMENT 0x8D20
1807#define GL_FRAMEBUFFER 0x8D40
1808#define GL_RENDERBUFFER 0x8D41
1809#define GL_RENDERBUFFER_WIDTH 0x8D42
1810#define GL_RENDERBUFFER_HEIGHT 0x8D43
1811#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
1812#define GL_STENCIL_INDEX1 0x8D46
1813#define GL_STENCIL_INDEX4 0x8D47
1814#define GL_STENCIL_INDEX8 0x8D48
1815#define GL_STENCIL_INDEX16 0x8D49
1816#define GL_RENDERBUFFER_RED_SIZE 0x8D50
1817#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
1818#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
1819#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
1820#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
1821#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
1822#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
1823#define GL_MAX_SAMPLES 0x8D57
1824#define GL_FRAMEBUFFER_SRGB 0x8DB9
1825#define GL_HALF_FLOAT 0x140B
1826#define GL_MAP_READ_BIT 0x0001
1827#define GL_MAP_WRITE_BIT 0x0002
1828#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
1829#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
1830#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
1831#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
1832#define GL_COMPRESSED_RED_RGTC1 0x8DBB
1833#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
1834#define GL_COMPRESSED_RG_RGTC2 0x8DBD
1835#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
1837#define GL_RG_INTEGER 0x8228
1839#define GL_R16 0x822A
1840#define GL_RG8 0x822B
1841#define GL_RG16 0x822C
1842#define GL_R16F 0x822D
1843#define GL_R32F 0x822E
1844#define GL_RG16F 0x822F
1845#define GL_RG32F 0x8230
1846#define GL_R8I 0x8231
1847#define GL_R8UI 0x8232
1848#define GL_R16I 0x8233
1849#define GL_R16UI 0x8234
1850#define GL_R32I 0x8235
1851#define GL_R32UI 0x8236
1852#define GL_RG8I 0x8237
1853#define GL_RG8UI 0x8238
1854#define GL_RG16I 0x8239
1855#define GL_RG16UI 0x823A
1856#define GL_RG32I 0x823B
1857#define GL_RG32UI 0x823C
1858#define GL_VERTEX_ARRAY_BINDING 0x85B5
1859#define GL_SAMPLER_2D_RECT 0x8B63
1860#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
1861#define GL_SAMPLER_BUFFER 0x8DC2
1862#define GL_INT_SAMPLER_2D_RECT 0x8DCD
1863#define GL_INT_SAMPLER_BUFFER 0x8DD0
1864#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
1865#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
1866#define GL_TEXTURE_BUFFER 0x8C2A
1867#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
1868#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
1869#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
1870#define GL_TEXTURE_RECTANGLE 0x84F5
1871#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
1872#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
1873#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
1874#define GL_R8_SNORM 0x8F94
1875#define GL_RG8_SNORM 0x8F95
1876#define GL_RGB8_SNORM 0x8F96
1877#define GL_RGBA8_SNORM 0x8F97
1878#define GL_R16_SNORM 0x8F98
1879#define GL_RG16_SNORM 0x8F99
1880#define GL_RGB16_SNORM 0x8F9A
1881#define GL_RGBA16_SNORM 0x8F9B
1882#define GL_SIGNED_NORMALIZED 0x8F9C
1883#define GL_PRIMITIVE_RESTART 0x8F9D
1884#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
1885#define GL_COPY_READ_BUFFER 0x8F36
1886#define GL_COPY_WRITE_BUFFER 0x8F37
1887#define GL_UNIFORM_BUFFER 0x8A11
1888#define GL_UNIFORM_BUFFER_BINDING 0x8A28
1889#define GL_UNIFORM_BUFFER_START 0x8A29
1890#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
1891#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
1892#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
1893#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
1894#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
1895#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
1896#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
1897#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
1898#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
1899#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
1900#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
1901#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
1902#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
1903#define GL_UNIFORM_TYPE 0x8A37
1904#define GL_UNIFORM_SIZE 0x8A38
1905#define GL_UNIFORM_NAME_LENGTH 0x8A39
1906#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
1907#define GL_UNIFORM_OFFSET 0x8A3B
1908#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
1909#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
1910#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
1911#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
1912#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
1913#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
1914#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
1915#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
1916#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
1917#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
1918#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
1919#define GL_INVALID_INDEX 0xFFFFFFFF
1920#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
1921#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
1922#define GL_LINES_ADJACENCY 0x000A
1923#define GL_LINE_STRIP_ADJACENCY 0x000B
1924#define GL_TRIANGLES_ADJACENCY 0x000C
1925#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
1926#define GL_PROGRAM_POINT_SIZE 0x8642
1927#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
1928#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
1929#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
1930#define GL_GEOMETRY_SHADER 0x8DD9
1931#define GL_GEOMETRY_VERTICES_OUT 0x8916
1932#define GL_GEOMETRY_INPUT_TYPE 0x8917
1933#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
1934#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
1935#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
1936#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
1937#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
1938#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
1939#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
1940#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
1941#define GL_CONTEXT_PROFILE_MASK 0x9126
1942#define GL_DEPTH_CLAMP 0x864F
1943#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
1944#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
1945#define GL_LAST_VERTEX_CONVENTION 0x8E4E
1946#define GL_PROVOKING_VERTEX 0x8E4F
1947#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
1948#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
1949#define GL_OBJECT_TYPE 0x9112
1950#define GL_SYNC_CONDITION 0x9113
1951#define GL_SYNC_STATUS 0x9114
1952#define GL_SYNC_FLAGS 0x9115
1953#define GL_SYNC_FENCE 0x9116
1954#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
1955#define GL_UNSIGNALED 0x9118
1956#define GL_SIGNALED 0x9119
1957#define GL_ALREADY_SIGNALED 0x911A
1958#define GL_TIMEOUT_EXPIRED 0x911B
1959#define GL_CONDITION_SATISFIED 0x911C
1960#define GL_WAIT_FAILED 0x911D
1961#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
1962#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
1963#define GL_SAMPLE_POSITION 0x8E50
1964#define GL_SAMPLE_MASK 0x8E51
1965#define GL_SAMPLE_MASK_VALUE 0x8E52
1966#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
1967#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
1968#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
1969#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
1970#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
1971#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
1972#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
1973#define GL_TEXTURE_SAMPLES 0x9106
1974#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
1975#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
1976#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
1977#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
1978#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
1979#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
1980#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
1981#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
1982#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
1983#define GL_MAX_INTEGER_SAMPLES 0x9110
1984#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
1985#define GL_SRC1_COLOR 0x88F9
1986#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
1987#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
1988#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
1989#define GL_ANY_SAMPLES_PASSED 0x8C2F
1990#define GL_SAMPLER_BINDING 0x8919
1991#define GL_RGB10_A2UI 0x906F
1992#define GL_TEXTURE_SWIZZLE_R 0x8E42
1993#define GL_TEXTURE_SWIZZLE_G 0x8E43
1994#define GL_TEXTURE_SWIZZLE_B 0x8E44
1995#define GL_TEXTURE_SWIZZLE_A 0x8E45
1996#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
1997#define GL_TIME_ELAPSED 0x88BF
1998#define GL_TIMESTAMP 0x8E28
1999#define GL_INT_2_10_10_10_REV 0x8D9F
2000#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
2001#define GL_RED_BITS 0x0D52
2002#define GL_GREEN_BITS 0x0D53
2003#define GL_BLUE_BITS 0x0D54
2004#define GL_ALPHA_BITS 0x0D55
2005#define GL_DEPTH_BITS 0x0D56
2006#define GL_STENCIL_BITS 0x0D57
2007#define GL_GENERATE_MIPMAP_HINT 0x8192
2008#define GL_FIXED 0x140C
2009#define GL_LUMINANCE 0x1909
2010#define GL_LUMINANCE_ALPHA 0x190A
2011#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
2012#define GL_MAX_VARYING_VECTORS 0x8DFC
2013#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
2014#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
2015#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
2016#define GL_SHADER_COMPILER 0x8DFA
2017#define GL_SHADER_BINARY_FORMATS 0x8DF8
2018#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
2019#define GL_LOW_FLOAT 0x8DF0
2020#define GL_MEDIUM_FLOAT 0x8DF1
2021#define GL_HIGH_FLOAT 0x8DF2
2022#define GL_LOW_INT 0x8DF3
2023#define GL_MEDIUM_INT 0x8DF4
2024#define GL_HIGH_INT 0x8DF5
2025#define GL_RGB565 0x8D62
2026#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
2027#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
2028#define GL_COPY_READ_BUFFER_BINDING 0x8F36
2029#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
2030#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
2031#define GL_TRANSFORM_FEEDBACK 0x8E22
2032#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
2033#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
2034#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
2035#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
2036#define GL_PROGRAM_BINARY_LENGTH 0x8741
2037#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
2038#define GL_PROGRAM_BINARY_FORMATS 0x87FF
2039#define GL_COMPRESSED_R11_EAC 0x9270
2040#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
2041#define GL_COMPRESSED_RG11_EAC 0x9272
2042#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
2043#define GL_COMPRESSED_RGB8_ETC2 0x9274
2044#define GL_COMPRESSED_SRGB8_ETC2 0x9275
2045#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
2046#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
2047#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
2048#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
2049#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
2050#define GL_MAX_ELEMENT_INDEX 0x8D6B
2051#define GL_NUM_SAMPLE_COUNTS 0x9380
2052#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
2053#define GL_COMPUTE_SHADER 0x91B9
2054#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
2055#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
2056#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
2057#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
2058#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
2059#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
2060#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
2061#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
2062#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
2063#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
2064#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
2065#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
2066#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
2067#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
2068#define GL_COMPUTE_SHADER_BIT 0x00000020
2069#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
2070#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
2071#define GL_MAX_UNIFORM_LOCATIONS 0x826E
2072#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
2073#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
2074#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
2075#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
2076#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
2077#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
2078#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
2079#define GL_UNIFORM 0x92E1
2080#define GL_UNIFORM_BLOCK 0x92E2
2081#define GL_PROGRAM_INPUT 0x92E3
2082#define GL_PROGRAM_OUTPUT 0x92E4
2083#define GL_BUFFER_VARIABLE 0x92E5
2084#define GL_SHADER_STORAGE_BLOCK 0x92E6
2085#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
2086#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
2087#define GL_ACTIVE_RESOURCES 0x92F5
2088#define GL_MAX_NAME_LENGTH 0x92F6
2089#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
2090#define GL_NAME_LENGTH 0x92F9
2091#define GL_TYPE 0x92FA
2092#define GL_ARRAY_SIZE 0x92FB
2093#define GL_OFFSET 0x92FC
2094#define GL_BLOCK_INDEX 0x92FD
2095#define GL_ARRAY_STRIDE 0x92FE
2096#define GL_MATRIX_STRIDE 0x92FF
2097#define GL_IS_ROW_MAJOR 0x9300
2098#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
2099#define GL_BUFFER_BINDING 0x9302
2100#define GL_BUFFER_DATA_SIZE 0x9303
2101#define GL_NUM_ACTIVE_VARIABLES 0x9304
2102#define GL_ACTIVE_VARIABLES 0x9305
2103#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
2104#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
2105#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
2106#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
2107#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
2108#define GL_LOCATION 0x930E
2109#define GL_VERTEX_SHADER_BIT 0x00000001
2110#define GL_FRAGMENT_SHADER_BIT 0x00000002
2111#define GL_ALL_SHADER_BITS 0xFFFFFFFF
2112#define GL_PROGRAM_SEPARABLE 0x8258
2113#define GL_ACTIVE_PROGRAM 0x8259
2114#define GL_PROGRAM_PIPELINE_BINDING 0x825A
2115#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
2116#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
2117#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
2118#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
2119#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
2120#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
2121#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
2122#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
2123#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
2124#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
2125#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
2126#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
2127#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
2128#define GL_MAX_IMAGE_UNITS 0x8F38
2129#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
2130#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
2131#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
2132#define GL_IMAGE_BINDING_NAME 0x8F3A
2133#define GL_IMAGE_BINDING_LEVEL 0x8F3B
2134#define GL_IMAGE_BINDING_LAYERED 0x8F3C
2135#define GL_IMAGE_BINDING_LAYER 0x8F3D
2136#define GL_IMAGE_BINDING_ACCESS 0x8F3E
2137#define GL_IMAGE_BINDING_FORMAT 0x906E
2138#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
2139#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
2140#define GL_UNIFORM_BARRIER_BIT 0x00000004
2141#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
2142#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
2143#define GL_COMMAND_BARRIER_BIT 0x00000040
2144#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
2145#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
2146#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
2147#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
2148#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
2149#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
2150#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
2151#define GL_IMAGE_2D 0x904D
2152#define GL_IMAGE_3D 0x904E
2153#define GL_IMAGE_CUBE 0x9050
2154#define GL_IMAGE_2D_ARRAY 0x9053
2155#define GL_INT_IMAGE_2D 0x9058
2156#define GL_INT_IMAGE_3D 0x9059
2157#define GL_INT_IMAGE_CUBE 0x905B
2158#define GL_INT_IMAGE_2D_ARRAY 0x905E
2159#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
2160#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
2161#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
2162#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
2163#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
2164#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
2165#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
2166#define GL_SHADER_STORAGE_BUFFER 0x90D2
2167#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
2168#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
2169#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
2170#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
2171#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
2172#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
2173#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
2174#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
2175#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
2176#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
2177#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
2178#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
2179#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
2180#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
2181#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
2182#define GL_VERTEX_ATTRIB_BINDING 0x82D4
2183#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
2184#define GL_VERTEX_BINDING_DIVISOR 0x82D6
2185#define GL_VERTEX_BINDING_OFFSET 0x82D7
2186#define GL_VERTEX_BINDING_STRIDE 0x82D8
2187#define GL_VERTEX_BINDING_BUFFER 0x8F4F
2188#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
2189#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
2190#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
2191#ifndef GL_VERSION_1_0
2192#define GL_VERSION_1_0 1
2193GLAPI
int GLAD_GL_VERSION_1_0;
2194typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode);
2195GLAPI PFNGLCULLFACEPROC glad_glCullFace;
2196#define glCullFace glad_glCullFace
2197typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode);
2198GLAPI PFNGLFRONTFACEPROC glad_glFrontFace;
2199#define glFrontFace glad_glFrontFace
2200typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode);
2201GLAPI PFNGLHINTPROC glad_glHint;
2202#define glHint glad_glHint
2203typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width);
2204GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth;
2205#define glLineWidth glad_glLineWidth
2206typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size);
2207GLAPI PFNGLPOINTSIZEPROC glad_glPointSize;
2208#define glPointSize glad_glPointSize
2209typedef void (APIENTRYP PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
2210GLAPI PFNGLPOLYGONMODEPROC glad_glPolygonMode;
2211#define glPolygonMode glad_glPolygonMode
2212typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
2213GLAPI PFNGLSCISSORPROC glad_glScissor;
2214#define glScissor glad_glScissor
2215typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
2216GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
2217#define glTexParameterf glad_glTexParameterf
2218typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname,
const GLfloat *params);
2219GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
2220#define glTexParameterfv glad_glTexParameterfv
2221typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
2222GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
2223#define glTexParameteri glad_glTexParameteri
2224typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname,
const GLint *params);
2225GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
2226#define glTexParameteriv glad_glTexParameteriv
2227typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type,
const void *pixels);
2228GLAPI PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
2229#define glTexImage1D glad_glTexImage1D
2230typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
const void *pixels);
2231GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
2232#define glTexImage2D glad_glTexImage2D
2233typedef void (APIENTRYP PFNGLDRAWBUFFERPROC)(GLenum buf);
2234GLAPI PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
2235#define glDrawBuffer glad_glDrawBuffer
2236typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask);
2237GLAPI PFNGLCLEARPROC glad_glClear;
2238#define glClear glad_glClear
2239typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
2240GLAPI PFNGLCLEARCOLORPROC glad_glClearColor;
2241#define glClearColor glad_glClearColor
2242typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s);
2243GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil;
2244#define glClearStencil glad_glClearStencil
2245typedef void (APIENTRYP PFNGLCLEARDEPTHPROC)(GLdouble depth);
2246GLAPI PFNGLCLEARDEPTHPROC glad_glClearDepth;
2247#define glClearDepth glad_glClearDepth
2248typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask);
2249GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask;
2250#define glStencilMask glad_glStencilMask
2251typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2252GLAPI PFNGLCOLORMASKPROC glad_glColorMask;
2253#define glColorMask glad_glColorMask
2254typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag);
2255GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask;
2256#define glDepthMask glad_glDepthMask
2257typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap);
2258GLAPI PFNGLDISABLEPROC glad_glDisable;
2259#define glDisable glad_glDisable
2260typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap);
2261GLAPI PFNGLENABLEPROC glad_glEnable;
2262#define glEnable glad_glEnable
2263typedef void (APIENTRYP PFNGLFINISHPROC)(void);
2264GLAPI PFNGLFINISHPROC glad_glFinish;
2265#define glFinish glad_glFinish
2266typedef void (APIENTRYP PFNGLFLUSHPROC)(void);
2267GLAPI PFNGLFLUSHPROC glad_glFlush;
2268#define glFlush glad_glFlush
2269typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
2270GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc;
2271#define glBlendFunc glad_glBlendFunc
2272typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode);
2273GLAPI PFNGLLOGICOPPROC glad_glLogicOp;
2274#define glLogicOp glad_glLogicOp
2275typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
2276GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc;
2277#define glStencilFunc glad_glStencilFunc
2278typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
2279GLAPI PFNGLSTENCILOPPROC glad_glStencilOp;
2280#define glStencilOp glad_glStencilOp
2281typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func);
2282GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc;
2283#define glDepthFunc glad_glDepthFunc
2284typedef void (APIENTRYP PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
2285GLAPI PFNGLPIXELSTOREFPROC glad_glPixelStoref;
2286#define glPixelStoref glad_glPixelStoref
2287typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
2288GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei;
2289#define glPixelStorei glad_glPixelStorei
2290typedef void (APIENTRYP PFNGLREADBUFFERPROC)(GLenum src);
2291GLAPI PFNGLREADBUFFERPROC glad_glReadBuffer;
2292#define glReadBuffer glad_glReadBuffer
2293typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
void *pixels);
2294GLAPI PFNGLREADPIXELSPROC glad_glReadPixels;
2295#define glReadPixels glad_glReadPixels
2296typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data);
2297GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
2298#define glGetBooleanv glad_glGetBooleanv
2299typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data);
2300GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev;
2301#define glGetDoublev glad_glGetDoublev
2302typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(void);
2303GLAPI PFNGLGETERRORPROC glad_glGetError;
2304#define glGetError glad_glGetError
2305typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data);
2306GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv;
2307#define glGetFloatv glad_glGetFloatv
2308typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data);
2309GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv;
2310#define glGetIntegerv glad_glGetIntegerv
2311typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name);
2312GLAPI PFNGLGETSTRINGPROC glad_glGetString;
2313#define glGetString glad_glGetString
2314typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type,
void *pixels);
2315GLAPI PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
2316#define glGetTexImage glad_glGetTexImage
2317typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params);
2318GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
2319#define glGetTexParameterfv glad_glGetTexParameterfv
2320typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
2321GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
2322#define glGetTexParameteriv glad_glGetTexParameteriv
2323typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params);
2324GLAPI PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
2325#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv
2326typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint *params);
2327GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
2328#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv
2329typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap);
2330GLAPI PFNGLISENABLEDPROC glad_glIsEnabled;
2331#define glIsEnabled glad_glIsEnabled
2332typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
2333GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange;
2334#define glDepthRange glad_glDepthRange
2335typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
2336GLAPI PFNGLVIEWPORTPROC glad_glViewport;
2337#define glViewport glad_glViewport
2339#ifndef GL_VERSION_1_1
2340#define GL_VERSION_1_1 1
2341GLAPI
int GLAD_GL_VERSION_1_1;
2342typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
2343GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays;
2344#define glDrawArrays glad_glDrawArrays
2345typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type,
const void *indices);
2346GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements;
2347#define glDrawElements glad_glDrawElements
2348typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
2349GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
2350#define glPolygonOffset glad_glPolygonOffset
2351typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2352GLAPI PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
2353#define glCopyTexImage1D glad_glCopyTexImage1D
2354typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2355GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
2356#define glCopyTexImage2D glad_glCopyTexImage2D
2357typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2358GLAPI PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
2359#define glCopyTexSubImage1D glad_glCopyTexSubImage1D
2360typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2361GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
2362#define glCopyTexSubImage2D glad_glCopyTexSubImage2D
2363typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type,
const void *pixels);
2364GLAPI PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
2365#define glTexSubImage1D glad_glTexSubImage1D
2366typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
const void *pixels);
2367GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
2368#define glTexSubImage2D glad_glTexSubImage2D
2369typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
2370GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture;
2371#define glBindTexture glad_glBindTexture
2372typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n,
const GLuint *textures);
2373GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
2374#define glDeleteTextures glad_glDeleteTextures
2375typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures);
2376GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures;
2377#define glGenTextures glad_glGenTextures
2378typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture);
2379GLAPI PFNGLISTEXTUREPROC glad_glIsTexture;
2380#define glIsTexture glad_glIsTexture
2382#ifndef GL_VERSION_1_2
2383#define GL_VERSION_1_2 1
2384GLAPI
int GLAD_GL_VERSION_1_2;
2385typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const void *indices);
2386GLAPI PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
2387#define glDrawRangeElements glad_glDrawRangeElements
2388typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type,
const void *pixels);
2389GLAPI PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
2390#define glTexImage3D glad_glTexImage3D
2391typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
const void *pixels);
2392GLAPI PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
2393#define glTexSubImage3D glad_glTexSubImage3D
2394typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2395GLAPI PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
2396#define glCopyTexSubImage3D glad_glCopyTexSubImage3D
2398#ifndef GL_VERSION_1_3
2399#define GL_VERSION_1_3 1
2400GLAPI
int GLAD_GL_VERSION_1_3;
2401typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture);
2402GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
2403#define glActiveTexture glad_glActiveTexture
2404typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
2405GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
2406#define glSampleCoverage glad_glSampleCoverage
2407typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize,
const void *data);
2408GLAPI PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
2409#define glCompressedTexImage3D glad_glCompressedTexImage3D
2410typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
const void *data);
2411GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
2412#define glCompressedTexImage2D glad_glCompressedTexImage2D
2413typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize,
const void *data);
2414GLAPI PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
2415#define glCompressedTexImage1D glad_glCompressedTexImage1D
2416typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize,
const void *data);
2417GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
2418#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D
2419typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize,
const void *data);
2420GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
2421#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
2422typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize,
const void *data);
2423GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
2424#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D
2425typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level,
void *img);
2426GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
2427#define glGetCompressedTexImage glad_glGetCompressedTexImage
2429#ifndef GL_VERSION_1_4
2430#define GL_VERSION_1_4 1
2431GLAPI
int GLAD_GL_VERSION_1_4;
2432typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2433GLAPI PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
2434#define glBlendFuncSeparate glad_glBlendFuncSeparate
2435typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode,
const GLint *first,
const GLsizei *count, GLsizei drawcount);
2436GLAPI PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
2437#define glMultiDrawArrays glad_glMultiDrawArrays
2438typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode,
const GLsizei *count, GLenum type,
const void *
const*indices, GLsizei drawcount);
2439GLAPI PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
2440#define glMultiDrawElements glad_glMultiDrawElements
2441typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
2442GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
2443#define glPointParameterf glad_glPointParameterf
2444typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname,
const GLfloat *params);
2445GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
2446#define glPointParameterfv glad_glPointParameterfv
2447typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
2448GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
2449#define glPointParameteri glad_glPointParameteri
2450typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname,
const GLint *params);
2451GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
2452#define glPointParameteriv glad_glPointParameteriv
2453typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
2454GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor;
2455#define glBlendColor glad_glBlendColor
2456typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode);
2457GLAPI PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
2458#define glBlendEquation glad_glBlendEquation
2460#ifndef GL_VERSION_1_5
2461#define GL_VERSION_1_5 1
2462GLAPI
int GLAD_GL_VERSION_1_5;
2463typedef void (APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids);
2464GLAPI PFNGLGENQUERIESPROC glad_glGenQueries;
2465#define glGenQueries glad_glGenQueries
2466typedef void (APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n,
const GLuint *ids);
2467GLAPI PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
2468#define glDeleteQueries glad_glDeleteQueries
2469typedef GLboolean (APIENTRYP PFNGLISQUERYPROC)(GLuint id);
2470GLAPI PFNGLISQUERYPROC glad_glIsQuery;
2471#define glIsQuery glad_glIsQuery
2472typedef void (APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
2473GLAPI PFNGLBEGINQUERYPROC glad_glBeginQuery;
2474#define glBeginQuery glad_glBeginQuery
2475typedef void (APIENTRYP PFNGLENDQUERYPROC)(GLenum target);
2476GLAPI PFNGLENDQUERYPROC glad_glEndQuery;
2477#define glEndQuery glad_glEndQuery
2478typedef void (APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params);
2479GLAPI PFNGLGETQUERYIVPROC glad_glGetQueryiv;
2480#define glGetQueryiv glad_glGetQueryiv
2481typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params);
2482GLAPI PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
2483#define glGetQueryObjectiv glad_glGetQueryObjectiv
2484typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params);
2485GLAPI PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
2486#define glGetQueryObjectuiv glad_glGetQueryObjectuiv
2487typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
2488GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer;
2489#define glBindBuffer glad_glBindBuffer
2490typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n,
const GLuint *buffers);
2491GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
2492#define glDeleteBuffers glad_glDeleteBuffers
2493typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers);
2494GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers;
2495#define glGenBuffers glad_glGenBuffers
2496typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer);
2497GLAPI PFNGLISBUFFERPROC glad_glIsBuffer;
2498#define glIsBuffer glad_glIsBuffer
2499typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size,
const void *data, GLenum usage);
2500GLAPI PFNGLBUFFERDATAPROC glad_glBufferData;
2501#define glBufferData glad_glBufferData
2502typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size,
const void *data);
2503GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
2504#define glBufferSubData glad_glBufferSubData
2505typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size,
void *data);
2506GLAPI PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
2507#define glGetBufferSubData glad_glGetBufferSubData
2508typedef void * (APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
2509GLAPI PFNGLMAPBUFFERPROC glad_glMapBuffer;
2510#define glMapBuffer glad_glMapBuffer
2511typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target);
2512GLAPI PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
2513#define glUnmapBuffer glad_glUnmapBuffer
2514typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
2515GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
2516#define glGetBufferParameteriv glad_glGetBufferParameteriv
2517typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname,
void **params);
2518GLAPI PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
2519#define glGetBufferPointerv glad_glGetBufferPointerv
2521#ifndef GL_VERSION_2_0
2522#define GL_VERSION_2_0 1
2523GLAPI
int GLAD_GL_VERSION_2_0;
2524typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
2525GLAPI PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
2526#define glBlendEquationSeparate glad_glBlendEquationSeparate
2527typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n,
const GLenum *bufs);
2528GLAPI PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
2529#define glDrawBuffers glad_glDrawBuffers
2530typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
2531GLAPI PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
2532#define glStencilOpSeparate glad_glStencilOpSeparate
2533typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
2534GLAPI PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
2535#define glStencilFuncSeparate glad_glStencilFuncSeparate
2536typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
2537GLAPI PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
2538#define glStencilMaskSeparate glad_glStencilMaskSeparate
2539typedef void (APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
2540GLAPI PFNGLATTACHSHADERPROC glad_glAttachShader;
2541#define glAttachShader glad_glAttachShader
2542typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index,
const GLchar *name);
2543GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
2544#define glBindAttribLocation glad_glBindAttribLocation
2545typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader);
2546GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader;
2547#define glCompileShader glad_glCompileShader
2548typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(void);
2549GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
2550#define glCreateProgram glad_glCreateProgram
2551typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type);
2552GLAPI PFNGLCREATESHADERPROC glad_glCreateShader;
2553#define glCreateShader glad_glCreateShader
2554typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program);
2555GLAPI PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
2556#define glDeleteProgram glad_glDeleteProgram
2557typedef void (APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader);
2558GLAPI PFNGLDELETESHADERPROC glad_glDeleteShader;
2559#define glDeleteShader glad_glDeleteShader
2560typedef void (APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
2561GLAPI PFNGLDETACHSHADERPROC glad_glDetachShader;
2562#define glDetachShader glad_glDetachShader
2563typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
2564GLAPI PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
2565#define glDisableVertexAttribArray glad_glDisableVertexAttribArray
2566typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
2567GLAPI PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
2568#define glEnableVertexAttribArray glad_glEnableVertexAttribArray
2569typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
2570GLAPI PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
2571#define glGetActiveAttrib glad_glGetActiveAttrib
2572typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
2573GLAPI PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
2574#define glGetActiveUniform glad_glGetActiveUniform
2575typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
2576GLAPI PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
2577#define glGetAttachedShaders glad_glGetAttachedShaders
2578typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program,
const GLchar *name);
2579GLAPI PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
2580#define glGetAttribLocation glad_glGetAttribLocation
2581typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params);
2582GLAPI PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
2583#define glGetProgramiv glad_glGetProgramiv
2584typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2585GLAPI PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
2586#define glGetProgramInfoLog glad_glGetProgramInfoLog
2587typedef void (APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params);
2588GLAPI PFNGLGETSHADERIVPROC glad_glGetShaderiv;
2589#define glGetShaderiv glad_glGetShaderiv
2590typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2591GLAPI PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
2592#define glGetShaderInfoLog glad_glGetShaderInfoLog
2593typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
2594GLAPI PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
2595#define glGetShaderSource glad_glGetShaderSource
2596typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program,
const GLchar *name);
2597GLAPI PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
2598#define glGetUniformLocation glad_glGetUniformLocation
2599typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params);
2600GLAPI PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
2601#define glGetUniformfv glad_glGetUniformfv
2602typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params);
2603GLAPI PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
2604#define glGetUniformiv glad_glGetUniformiv
2605typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params);
2606GLAPI PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
2607#define glGetVertexAttribdv glad_glGetVertexAttribdv
2608typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params);
2609GLAPI PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
2610#define glGetVertexAttribfv glad_glGetVertexAttribfv
2611typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params);
2612GLAPI PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
2613#define glGetVertexAttribiv glad_glGetVertexAttribiv
2614typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname,
void **pointer);
2615GLAPI PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
2616#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
2617typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC)(GLuint program);
2618GLAPI PFNGLISPROGRAMPROC glad_glIsProgram;
2619#define glIsProgram glad_glIsProgram
2620typedef GLboolean (APIENTRYP PFNGLISSHADERPROC)(GLuint shader);
2621GLAPI PFNGLISSHADERPROC glad_glIsShader;
2622#define glIsShader glad_glIsShader
2623typedef void (APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program);
2624GLAPI PFNGLLINKPROGRAMPROC glad_glLinkProgram;
2625#define glLinkProgram glad_glLinkProgram
2626typedef void (APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count,
const GLchar *
const*string,
const GLint *length);
2627GLAPI PFNGLSHADERSOURCEPROC glad_glShaderSource;
2628#define glShaderSource glad_glShaderSource
2629typedef void (APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program);
2630GLAPI PFNGLUSEPROGRAMPROC glad_glUseProgram;
2631#define glUseProgram glad_glUseProgram
2632typedef void (APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
2633GLAPI PFNGLUNIFORM1FPROC glad_glUniform1f;
2634#define glUniform1f glad_glUniform1f
2635typedef void (APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
2636GLAPI PFNGLUNIFORM2FPROC glad_glUniform2f;
2637#define glUniform2f glad_glUniform2f
2638typedef void (APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2639GLAPI PFNGLUNIFORM3FPROC glad_glUniform3f;
2640#define glUniform3f glad_glUniform3f
2641typedef void (APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2642GLAPI PFNGLUNIFORM4FPROC glad_glUniform4f;
2643#define glUniform4f glad_glUniform4f
2644typedef void (APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
2645GLAPI PFNGLUNIFORM1IPROC glad_glUniform1i;
2646#define glUniform1i glad_glUniform1i
2647typedef void (APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
2648GLAPI PFNGLUNIFORM2IPROC glad_glUniform2i;
2649#define glUniform2i glad_glUniform2i
2650typedef void (APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
2651GLAPI PFNGLUNIFORM3IPROC glad_glUniform3i;
2652#define glUniform3i glad_glUniform3i
2653typedef void (APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2654GLAPI PFNGLUNIFORM4IPROC glad_glUniform4i;
2655#define glUniform4i glad_glUniform4i
2656typedef void (APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count,
const GLfloat *value);
2657GLAPI PFNGLUNIFORM1FVPROC glad_glUniform1fv;
2658#define glUniform1fv glad_glUniform1fv
2659typedef void (APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count,
const GLfloat *value);
2660GLAPI PFNGLUNIFORM2FVPROC glad_glUniform2fv;
2661#define glUniform2fv glad_glUniform2fv
2662typedef void (APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count,
const GLfloat *value);
2663GLAPI PFNGLUNIFORM3FVPROC glad_glUniform3fv;
2664#define glUniform3fv glad_glUniform3fv
2665typedef void (APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count,
const GLfloat *value);
2666GLAPI PFNGLUNIFORM4FVPROC glad_glUniform4fv;
2667#define glUniform4fv glad_glUniform4fv
2668typedef void (APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count,
const GLint *value);
2669GLAPI PFNGLUNIFORM1IVPROC glad_glUniform1iv;
2670#define glUniform1iv glad_glUniform1iv
2671typedef void (APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count,
const GLint *value);
2672GLAPI PFNGLUNIFORM2IVPROC glad_glUniform2iv;
2673#define glUniform2iv glad_glUniform2iv
2674typedef void (APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count,
const GLint *value);
2675GLAPI PFNGLUNIFORM3IVPROC glad_glUniform3iv;
2676#define glUniform3iv glad_glUniform3iv
2677typedef void (APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count,
const GLint *value);
2678GLAPI PFNGLUNIFORM4IVPROC glad_glUniform4iv;
2679#define glUniform4iv glad_glUniform4iv
2680typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2681GLAPI PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
2682#define glUniformMatrix2fv glad_glUniformMatrix2fv
2683typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2684GLAPI PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
2685#define glUniformMatrix3fv glad_glUniformMatrix3fv
2686typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2687GLAPI PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
2688#define glUniformMatrix4fv glad_glUniformMatrix4fv
2689typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program);
2690GLAPI PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
2691#define glValidateProgram glad_glValidateProgram
2692typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
2693GLAPI PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
2694#define glVertexAttrib1d glad_glVertexAttrib1d
2695typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index,
const GLdouble *v);
2696GLAPI PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
2697#define glVertexAttrib1dv glad_glVertexAttrib1dv
2698typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
2699GLAPI PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
2700#define glVertexAttrib1f glad_glVertexAttrib1f
2701typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index,
const GLfloat *v);
2702GLAPI PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
2703#define glVertexAttrib1fv glad_glVertexAttrib1fv
2704typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
2705GLAPI PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
2706#define glVertexAttrib1s glad_glVertexAttrib1s
2707typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index,
const GLshort *v);
2708GLAPI PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
2709#define glVertexAttrib1sv glad_glVertexAttrib1sv
2710typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
2711GLAPI PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
2712#define glVertexAttrib2d glad_glVertexAttrib2d
2713typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index,
const GLdouble *v);
2714GLAPI PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
2715#define glVertexAttrib2dv glad_glVertexAttrib2dv
2716typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
2717GLAPI PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
2718#define glVertexAttrib2f glad_glVertexAttrib2f
2719typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index,
const GLfloat *v);
2720GLAPI PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
2721#define glVertexAttrib2fv glad_glVertexAttrib2fv
2722typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
2723GLAPI PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
2724#define glVertexAttrib2s glad_glVertexAttrib2s
2725typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index,
const GLshort *v);
2726GLAPI PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
2727#define glVertexAttrib2sv glad_glVertexAttrib2sv
2728typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
2729GLAPI PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
2730#define glVertexAttrib3d glad_glVertexAttrib3d
2731typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index,
const GLdouble *v);
2732GLAPI PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
2733#define glVertexAttrib3dv glad_glVertexAttrib3dv
2734typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
2735GLAPI PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
2736#define glVertexAttrib3f glad_glVertexAttrib3f
2737typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index,
const GLfloat *v);
2738GLAPI PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
2739#define glVertexAttrib3fv glad_glVertexAttrib3fv
2740typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
2741GLAPI PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
2742#define glVertexAttrib3s glad_glVertexAttrib3s
2743typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index,
const GLshort *v);
2744GLAPI PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
2745#define glVertexAttrib3sv glad_glVertexAttrib3sv
2746typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index,
const GLbyte *v);
2747GLAPI PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
2748#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv
2749typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index,
const GLint *v);
2750GLAPI PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
2751#define glVertexAttrib4Niv glad_glVertexAttrib4Niv
2752typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index,
const GLshort *v);
2753GLAPI PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
2754#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv
2755typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
2756GLAPI PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
2757#define glVertexAttrib4Nub glad_glVertexAttrib4Nub
2758typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index,
const GLubyte *v);
2759GLAPI PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
2760#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv
2761typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index,
const GLuint *v);
2762GLAPI PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
2763#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv
2764typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index,
const GLushort *v);
2765GLAPI PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
2766#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv
2767typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index,
const GLbyte *v);
2768GLAPI PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
2769#define glVertexAttrib4bv glad_glVertexAttrib4bv
2770typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2771GLAPI PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
2772#define glVertexAttrib4d glad_glVertexAttrib4d
2773typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index,
const GLdouble *v);
2774GLAPI PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
2775#define glVertexAttrib4dv glad_glVertexAttrib4dv
2776typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2777GLAPI PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
2778#define glVertexAttrib4f glad_glVertexAttrib4f
2779typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index,
const GLfloat *v);
2780GLAPI PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
2781#define glVertexAttrib4fv glad_glVertexAttrib4fv
2782typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index,
const GLint *v);
2783GLAPI PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
2784#define glVertexAttrib4iv glad_glVertexAttrib4iv
2785typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
2786GLAPI PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
2787#define glVertexAttrib4s glad_glVertexAttrib4s
2788typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index,
const GLshort *v);
2789GLAPI PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
2790#define glVertexAttrib4sv glad_glVertexAttrib4sv
2791typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index,
const GLubyte *v);
2792GLAPI PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
2793#define glVertexAttrib4ubv glad_glVertexAttrib4ubv
2794typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index,
const GLuint *v);
2795GLAPI PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
2796#define glVertexAttrib4uiv glad_glVertexAttrib4uiv
2797typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index,
const GLushort *v);
2798GLAPI PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
2799#define glVertexAttrib4usv glad_glVertexAttrib4usv
2800typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
const void *pointer);
2801GLAPI PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
2802#define glVertexAttribPointer glad_glVertexAttribPointer
2804#ifndef GL_VERSION_2_1
2805#define GL_VERSION_2_1 1
2806GLAPI
int GLAD_GL_VERSION_2_1;
2807typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2808GLAPI PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
2809#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv
2810typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2811GLAPI PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
2812#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv
2813typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2814GLAPI PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
2815#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv
2816typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2817GLAPI PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
2818#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv
2819typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2820GLAPI PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
2821#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv
2822typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
2823GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
2824#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv
2826#ifndef GL_VERSION_3_0
2827#define GL_VERSION_3_0 1
2828GLAPI
int GLAD_GL_VERSION_3_0;
2829typedef void (APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
2830GLAPI PFNGLCOLORMASKIPROC glad_glColorMaski;
2831#define glColorMaski glad_glColorMaski
2832typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data);
2833GLAPI PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
2834#define glGetBooleani_v glad_glGetBooleani_v
2835typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data);
2836GLAPI PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
2837#define glGetIntegeri_v glad_glGetIntegeri_v
2838typedef void (APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index);
2839GLAPI PFNGLENABLEIPROC glad_glEnablei;
2840#define glEnablei glad_glEnablei
2841typedef void (APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index);
2842GLAPI PFNGLDISABLEIPROC glad_glDisablei;
2843#define glDisablei glad_glDisablei
2844typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
2845GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi;
2846#define glIsEnabledi glad_glIsEnabledi
2847typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
2848GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
2849#define glBeginTransformFeedback glad_glBeginTransformFeedback
2850typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(void);
2851GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
2852#define glEndTransformFeedback glad_glEndTransformFeedback
2853typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
2854GLAPI PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
2855#define glBindBufferRange glad_glBindBufferRange
2856typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
2857GLAPI PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
2858#define glBindBufferBase glad_glBindBufferBase
2859typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count,
const GLchar *
const*varyings, GLenum bufferMode);
2860GLAPI PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
2861#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings
2862typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
2863GLAPI PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
2864#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying
2865typedef void (APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
2866GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor;
2867#define glClampColor glad_glClampColor
2868typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
2869GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
2870#define glBeginConditionalRender glad_glBeginConditionalRender
2871typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(void);
2872GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
2873#define glEndConditionalRender glad_glEndConditionalRender
2874typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride,
const void *pointer);
2875GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
2876#define glVertexAttribIPointer glad_glVertexAttribIPointer
2877typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params);
2878GLAPI PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
2879#define glGetVertexAttribIiv glad_glGetVertexAttribIiv
2880typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params);
2881GLAPI PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
2882#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv
2883typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
2884GLAPI PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
2885#define glVertexAttribI1i glad_glVertexAttribI1i
2886typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
2887GLAPI PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
2888#define glVertexAttribI2i glad_glVertexAttribI2i
2889typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
2890GLAPI PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
2891#define glVertexAttribI3i glad_glVertexAttribI3i
2892typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
2893GLAPI PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
2894#define glVertexAttribI4i glad_glVertexAttribI4i
2895typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
2896GLAPI PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
2897#define glVertexAttribI1ui glad_glVertexAttribI1ui
2898typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
2899GLAPI PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
2900#define glVertexAttribI2ui glad_glVertexAttribI2ui
2901typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
2902GLAPI PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
2903#define glVertexAttribI3ui glad_glVertexAttribI3ui
2904typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
2905GLAPI PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
2906#define glVertexAttribI4ui glad_glVertexAttribI4ui
2907typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index,
const GLint *v);
2908GLAPI PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
2909#define glVertexAttribI1iv glad_glVertexAttribI1iv
2910typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index,
const GLint *v);
2911GLAPI PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
2912#define glVertexAttribI2iv glad_glVertexAttribI2iv
2913typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index,
const GLint *v);
2914GLAPI PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
2915#define glVertexAttribI3iv glad_glVertexAttribI3iv
2916typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index,
const GLint *v);
2917GLAPI PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
2918#define glVertexAttribI4iv glad_glVertexAttribI4iv
2919typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index,
const GLuint *v);
2920GLAPI PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
2921#define glVertexAttribI1uiv glad_glVertexAttribI1uiv
2922typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index,
const GLuint *v);
2923GLAPI PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
2924#define glVertexAttribI2uiv glad_glVertexAttribI2uiv
2925typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index,
const GLuint *v);
2926GLAPI PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
2927#define glVertexAttribI3uiv glad_glVertexAttribI3uiv
2928typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index,
const GLuint *v);
2929GLAPI PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
2930#define glVertexAttribI4uiv glad_glVertexAttribI4uiv
2931typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index,
const GLbyte *v);
2932GLAPI PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
2933#define glVertexAttribI4bv glad_glVertexAttribI4bv
2934typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index,
const GLshort *v);
2935GLAPI PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
2936#define glVertexAttribI4sv glad_glVertexAttribI4sv
2937typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index,
const GLubyte *v);
2938GLAPI PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
2939#define glVertexAttribI4ubv glad_glVertexAttribI4ubv
2940typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index,
const GLushort *v);
2941GLAPI PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
2942#define glVertexAttribI4usv glad_glVertexAttribI4usv
2943typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params);
2944GLAPI PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
2945#define glGetUniformuiv glad_glGetUniformuiv
2946typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color,
const GLchar *name);
2947GLAPI PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
2948#define glBindFragDataLocation glad_glBindFragDataLocation
2949typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program,
const GLchar *name);
2950GLAPI PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
2951#define glGetFragDataLocation glad_glGetFragDataLocation
2952typedef void (APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
2953GLAPI PFNGLUNIFORM1UIPROC glad_glUniform1ui;
2954#define glUniform1ui glad_glUniform1ui
2955typedef void (APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
2956GLAPI PFNGLUNIFORM2UIPROC glad_glUniform2ui;
2957#define glUniform2ui glad_glUniform2ui
2958typedef void (APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
2959GLAPI PFNGLUNIFORM3UIPROC glad_glUniform3ui;
2960#define glUniform3ui glad_glUniform3ui
2961typedef void (APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2962GLAPI PFNGLUNIFORM4UIPROC glad_glUniform4ui;
2963#define glUniform4ui glad_glUniform4ui
2964typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count,
const GLuint *value);
2965GLAPI PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
2966#define glUniform1uiv glad_glUniform1uiv
2967typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count,
const GLuint *value);
2968GLAPI PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
2969#define glUniform2uiv glad_glUniform2uiv
2970typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count,
const GLuint *value);
2971GLAPI PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
2972#define glUniform3uiv glad_glUniform3uiv
2973typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count,
const GLuint *value);
2974GLAPI PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
2975#define glUniform4uiv glad_glUniform4uiv
2976typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname,
const GLint *params);
2977GLAPI PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
2978#define glTexParameterIiv glad_glTexParameterIiv
2979typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname,
const GLuint *params);
2980GLAPI PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
2981#define glTexParameterIuiv glad_glTexParameterIuiv
2982typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params);
2983GLAPI PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
2984#define glGetTexParameterIiv glad_glGetTexParameterIiv
2985typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params);
2986GLAPI PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
2987#define glGetTexParameterIuiv glad_glGetTexParameterIuiv
2988typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer,
const GLint *value);
2989GLAPI PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
2990#define glClearBufferiv glad_glClearBufferiv
2991typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer,
const GLuint *value);
2992GLAPI PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
2993#define glClearBufferuiv glad_glClearBufferuiv
2994typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer,
const GLfloat *value);
2995GLAPI PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
2996#define glClearBufferfv glad_glClearBufferfv
2997typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
2998GLAPI PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
2999#define glClearBufferfi glad_glClearBufferfi
3000typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
3001GLAPI PFNGLGETSTRINGIPROC glad_glGetStringi;
3002#define glGetStringi glad_glGetStringi
3003typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
3004GLAPI PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
3005#define glIsRenderbuffer glad_glIsRenderbuffer
3006typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
3007GLAPI PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
3008#define glBindRenderbuffer glad_glBindRenderbuffer
3009typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n,
const GLuint *renderbuffers);
3010GLAPI PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
3011#define glDeleteRenderbuffers glad_glDeleteRenderbuffers
3012typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
3013GLAPI PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
3014#define glGenRenderbuffers glad_glGenRenderbuffers
3015typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
3016GLAPI PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
3017#define glRenderbufferStorage glad_glRenderbufferStorage
3018typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
3019GLAPI PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
3020#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
3021typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
3022GLAPI PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
3023#define glIsFramebuffer glad_glIsFramebuffer
3024typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
3025GLAPI PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
3026#define glBindFramebuffer glad_glBindFramebuffer
3027typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n,
const GLuint *framebuffers);
3028GLAPI PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
3029#define glDeleteFramebuffers glad_glDeleteFramebuffers
3030typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
3031GLAPI PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
3032#define glGenFramebuffers glad_glGenFramebuffers
3033typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
3034GLAPI PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
3035#define glCheckFramebufferStatus glad_glCheckFramebufferStatus
3036typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3037GLAPI PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
3038#define glFramebufferTexture1D glad_glFramebufferTexture1D
3039typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3040GLAPI PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
3041#define glFramebufferTexture2D glad_glFramebufferTexture2D
3042typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
3043GLAPI PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
3044#define glFramebufferTexture3D glad_glFramebufferTexture3D
3045typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3046GLAPI PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
3047#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
3048typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
3049GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
3050#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
3051typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target);
3052GLAPI PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
3053#define glGenerateMipmap glad_glGenerateMipmap
3054typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3055GLAPI PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
3056#define glBlitFramebuffer glad_glBlitFramebuffer
3057typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3058GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
3059#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample
3060typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
3061GLAPI PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
3062#define glFramebufferTextureLayer glad_glFramebufferTextureLayer
3063typedef void * (APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
3064GLAPI PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
3065#define glMapBufferRange glad_glMapBufferRange
3066typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
3067GLAPI PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
3068#define glFlushMappedBufferRange glad_glFlushMappedBufferRange
3069typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array);
3070GLAPI PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
3071#define glBindVertexArray glad_glBindVertexArray
3072typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n,
const GLuint *arrays);
3073GLAPI PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
3074#define glDeleteVertexArrays glad_glDeleteVertexArrays
3075typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
3076GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
3077#define glGenVertexArrays glad_glGenVertexArrays
3078typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array);
3079GLAPI PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
3080#define glIsVertexArray glad_glIsVertexArray
3082#ifndef GL_VERSION_3_1
3083#define GL_VERSION_3_1 1
3084GLAPI
int GLAD_GL_VERSION_3_1;
3085typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
3086GLAPI PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
3087#define glDrawArraysInstanced glad_glDrawArraysInstanced
3088typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLsizei instancecount);
3089GLAPI PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
3090#define glDrawElementsInstanced glad_glDrawElementsInstanced
3091typedef void (APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
3092GLAPI PFNGLTEXBUFFERPROC glad_glTexBuffer;
3093#define glTexBuffer glad_glTexBuffer
3094typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
3095GLAPI PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
3096#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex
3097typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
3098GLAPI PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
3099#define glCopyBufferSubData glad_glCopyBufferSubData
3100typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount,
const GLchar *
const*uniformNames, GLuint *uniformIndices);
3101GLAPI PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
3102#define glGetUniformIndices glad_glGetUniformIndices
3103typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount,
const GLuint *uniformIndices, GLenum pname, GLint *params);
3104GLAPI PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
3105#define glGetActiveUniformsiv glad_glGetActiveUniformsiv
3106typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
3107GLAPI PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
3108#define glGetActiveUniformName glad_glGetActiveUniformName
3109typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program,
const GLchar *uniformBlockName);
3110GLAPI PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
3111#define glGetUniformBlockIndex glad_glGetUniformBlockIndex
3112typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
3113GLAPI PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
3114#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv
3115typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
3116GLAPI PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
3117#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName
3118typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
3119GLAPI PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
3120#define glUniformBlockBinding glad_glUniformBlockBinding
3122#ifndef GL_VERSION_3_2
3123#define GL_VERSION_3_2 1
3124GLAPI
int GLAD_GL_VERSION_3_2;
3125typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLint basevertex);
3126GLAPI PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
3127#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex
3128typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const void *indices, GLint basevertex);
3129GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
3130#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex
3131typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLsizei instancecount, GLint basevertex);
3132GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
3133#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex
3134typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode,
const GLsizei *count, GLenum type,
const void *
const*indices, GLsizei drawcount,
const GLint *basevertex);
3135GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
3136#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex
3137typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
3138GLAPI PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
3139#define glProvokingVertex glad_glProvokingVertex
3140typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
3141GLAPI PFNGLFENCESYNCPROC glad_glFenceSync;
3142#define glFenceSync glad_glFenceSync
3143typedef GLboolean (APIENTRYP PFNGLISSYNCPROC)(GLsync sync);
3144GLAPI PFNGLISSYNCPROC glad_glIsSync;
3145#define glIsSync glad_glIsSync
3146typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync);
3147GLAPI PFNGLDELETESYNCPROC glad_glDeleteSync;
3148#define glDeleteSync glad_glDeleteSync
3149typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
3150GLAPI PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
3151#define glClientWaitSync glad_glClientWaitSync
3152typedef void (APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
3153GLAPI PFNGLWAITSYNCPROC glad_glWaitSync;
3154#define glWaitSync glad_glWaitSync
3155typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data);
3156GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
3157#define glGetInteger64v glad_glGetInteger64v
3158typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values);
3159GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv;
3160#define glGetSynciv glad_glGetSynciv
3161typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data);
3162GLAPI PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
3163#define glGetInteger64i_v glad_glGetInteger64i_v
3164typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params);
3165GLAPI PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
3166#define glGetBufferParameteri64v glad_glGetBufferParameteri64v
3167typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
3168GLAPI PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
3169#define glFramebufferTexture glad_glFramebufferTexture
3170typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
3171GLAPI PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
3172#define glTexImage2DMultisample glad_glTexImage2DMultisample
3173typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
3174GLAPI PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
3175#define glTexImage3DMultisample glad_glTexImage3DMultisample
3176typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val);
3177GLAPI PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
3178#define glGetMultisamplefv glad_glGetMultisamplefv
3179typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
3180GLAPI PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
3181#define glSampleMaski glad_glSampleMaski
3183#ifndef GL_VERSION_3_3
3184#define GL_VERSION_3_3 1
3185GLAPI
int GLAD_GL_VERSION_3_3;
3186typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index,
const GLchar *name);
3187GLAPI PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
3188#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed
3189typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program,
const GLchar *name);
3190GLAPI PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
3191#define glGetFragDataIndex glad_glGetFragDataIndex
3192typedef void (APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers);
3193GLAPI PFNGLGENSAMPLERSPROC glad_glGenSamplers;
3194#define glGenSamplers glad_glGenSamplers
3195typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count,
const GLuint *samplers);
3196GLAPI PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
3197#define glDeleteSamplers glad_glDeleteSamplers
3198typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler);
3199GLAPI PFNGLISSAMPLERPROC glad_glIsSampler;
3200#define glIsSampler glad_glIsSampler
3201typedef void (APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
3202GLAPI PFNGLBINDSAMPLERPROC glad_glBindSampler;
3203#define glBindSampler glad_glBindSampler
3204typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
3205GLAPI PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
3206#define glSamplerParameteri glad_glSamplerParameteri
3207typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname,
const GLint *param);
3208GLAPI PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
3209#define glSamplerParameteriv glad_glSamplerParameteriv
3210typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
3211GLAPI PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
3212#define glSamplerParameterf glad_glSamplerParameterf
3213typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname,
const GLfloat *param);
3214GLAPI PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
3215#define glSamplerParameterfv glad_glSamplerParameterfv
3216typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname,
const GLint *param);
3217GLAPI PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
3218#define glSamplerParameterIiv glad_glSamplerParameterIiv
3219typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname,
const GLuint *param);
3220GLAPI PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
3221#define glSamplerParameterIuiv glad_glSamplerParameterIuiv
3222typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params);
3223GLAPI PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
3224#define glGetSamplerParameteriv glad_glGetSamplerParameteriv
3225typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params);
3226GLAPI PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
3227#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv
3228typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params);
3229GLAPI PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
3230#define glGetSamplerParameterfv glad_glGetSamplerParameterfv
3231typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params);
3232GLAPI PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
3233#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv
3234typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
3235GLAPI PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
3236#define glQueryCounter glad_glQueryCounter
3237typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params);
3238GLAPI PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
3239#define glGetQueryObjecti64v glad_glGetQueryObjecti64v
3240typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params);
3241GLAPI PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
3242#define glGetQueryObjectui64v glad_glGetQueryObjectui64v
3243typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
3244GLAPI PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
3245#define glVertexAttribDivisor glad_glVertexAttribDivisor
3246typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3247GLAPI PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
3248#define glVertexAttribP1ui glad_glVertexAttribP1ui
3249typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
3250GLAPI PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
3251#define glVertexAttribP1uiv glad_glVertexAttribP1uiv
3252typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3253GLAPI PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
3254#define glVertexAttribP2ui glad_glVertexAttribP2ui
3255typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
3256GLAPI PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
3257#define glVertexAttribP2uiv glad_glVertexAttribP2uiv
3258typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3259GLAPI PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
3260#define glVertexAttribP3ui glad_glVertexAttribP3ui
3261typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
3262GLAPI PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
3263#define glVertexAttribP3uiv glad_glVertexAttribP3uiv
3264typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
3265GLAPI PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
3266#define glVertexAttribP4ui glad_glVertexAttribP4ui
3267typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
3268GLAPI PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
3269#define glVertexAttribP4uiv glad_glVertexAttribP4uiv
3270typedef void (APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value);
3271GLAPI PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
3272#define glVertexP2ui glad_glVertexP2ui
3273typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type,
const GLuint *value);
3274GLAPI PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
3275#define glVertexP2uiv glad_glVertexP2uiv
3276typedef void (APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value);
3277GLAPI PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
3278#define glVertexP3ui glad_glVertexP3ui
3279typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type,
const GLuint *value);
3280GLAPI PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
3281#define glVertexP3uiv glad_glVertexP3uiv
3282typedef void (APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value);
3283GLAPI PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
3284#define glVertexP4ui glad_glVertexP4ui
3285typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type,
const GLuint *value);
3286GLAPI PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
3287#define glVertexP4uiv glad_glVertexP4uiv
3288typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords);
3289GLAPI PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
3290#define glTexCoordP1ui glad_glTexCoordP1ui
3291typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type,
const GLuint *coords);
3292GLAPI PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
3293#define glTexCoordP1uiv glad_glTexCoordP1uiv
3294typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords);
3295GLAPI PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
3296#define glTexCoordP2ui glad_glTexCoordP2ui
3297typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type,
const GLuint *coords);
3298GLAPI PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
3299#define glTexCoordP2uiv glad_glTexCoordP2uiv
3300typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords);
3301GLAPI PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
3302#define glTexCoordP3ui glad_glTexCoordP3ui
3303typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type,
const GLuint *coords);
3304GLAPI PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
3305#define glTexCoordP3uiv glad_glTexCoordP3uiv
3306typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords);
3307GLAPI PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
3308#define glTexCoordP4ui glad_glTexCoordP4ui
3309typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type,
const GLuint *coords);
3310GLAPI PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
3311#define glTexCoordP4uiv glad_glTexCoordP4uiv
3312typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords);
3313GLAPI PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
3314#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui
3315typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type,
const GLuint *coords);
3316GLAPI PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
3317#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv
3318typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords);
3319GLAPI PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
3320#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui
3321typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type,
const GLuint *coords);
3322GLAPI PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
3323#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv
3324typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords);
3325GLAPI PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
3326#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui
3327typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type,
const GLuint *coords);
3328GLAPI PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
3329#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv
3330typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords);
3331GLAPI PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
3332#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui
3333typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type,
const GLuint *coords);
3334GLAPI PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
3335#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv
3336typedef void (APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords);
3337GLAPI PFNGLNORMALP3UIPROC glad_glNormalP3ui;
3338#define glNormalP3ui glad_glNormalP3ui
3339typedef void (APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type,
const GLuint *coords);
3340GLAPI PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
3341#define glNormalP3uiv glad_glNormalP3uiv
3342typedef void (APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color);
3343GLAPI PFNGLCOLORP3UIPROC glad_glColorP3ui;
3344#define glColorP3ui glad_glColorP3ui
3345typedef void (APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type,
const GLuint *color);
3346GLAPI PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
3347#define glColorP3uiv glad_glColorP3uiv
3348typedef void (APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color);
3349GLAPI PFNGLCOLORP4UIPROC glad_glColorP4ui;
3350#define glColorP4ui glad_glColorP4ui
3351typedef void (APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type,
const GLuint *color);
3352GLAPI PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
3353#define glColorP4uiv glad_glColorP4uiv
3354typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color);
3355GLAPI PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
3356#define glSecondaryColorP3ui glad_glSecondaryColorP3ui
3357typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type,
const GLuint *color);
3358GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
3359#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv
3361#ifndef GL_ES_VERSION_2_0
3362#define GL_ES_VERSION_2_0 1
3363GLAPI
int GLAD_GL_ES_VERSION_2_0;
3364typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC)(GLfloat d);
3365GLAPI PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
3366#define glClearDepthf glad_glClearDepthf
3367typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
3368GLAPI PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
3369#define glDepthRangef glad_glDepthRangef
3370typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
3371GLAPI PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
3372#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat
3373typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC)(void);
3374GLAPI PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
3375#define glReleaseShaderCompiler glad_glReleaseShaderCompiler
3376typedef void (APIENTRYP PFNGLSHADERBINARYPROC)(GLsizei count,
const GLuint *shaders, GLenum binaryFormat,
const void *binary, GLsizei length);
3377GLAPI PFNGLSHADERBINARYPROC glad_glShaderBinary;
3378#define glShaderBinary glad_glShaderBinary
3380#ifndef GL_ES_VERSION_3_0
3381#define GL_ES_VERSION_3_0 1
3382GLAPI
int GLAD_GL_ES_VERSION_3_0;
3383typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id);
3384GLAPI PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback;
3385#define glBindTransformFeedback glad_glBindTransformFeedback
3386typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n,
const GLuint *ids);
3387GLAPI PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks;
3388#define glDeleteTransformFeedbacks glad_glDeleteTransformFeedbacks
3389typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
3390GLAPI PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks;
3391#define glGenTransformFeedbacks glad_glGenTransformFeedbacks
3392typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id);
3393GLAPI PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback;
3394#define glIsTransformFeedback glad_glIsTransformFeedback
3395typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC)(void);
3396GLAPI PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback;
3397#define glPauseTransformFeedback glad_glPauseTransformFeedback
3398typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC)(void);
3399GLAPI PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback;
3400#define glResumeTransformFeedback glad_glResumeTransformFeedback
3401typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat,
void *binary);
3402GLAPI PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary;
3403#define glGetProgramBinary glad_glGetProgramBinary
3404typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat,
const void *binary, GLsizei length);
3405GLAPI PFNGLPROGRAMBINARYPROC glad_glProgramBinary;
3406#define glProgramBinary glad_glProgramBinary
3407typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value);
3408GLAPI PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri;
3409#define glProgramParameteri glad_glProgramParameteri
3410typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments,
const GLenum *attachments);
3411GLAPI PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer;
3412#define glInvalidateFramebuffer glad_glInvalidateFramebuffer
3413typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments,
const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
3414GLAPI PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer;
3415#define glInvalidateSubFramebuffer glad_glInvalidateSubFramebuffer
3416typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
3417GLAPI PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D;
3418#define glTexStorage2D glad_glTexStorage2D
3419typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
3420GLAPI PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D;
3421#define glTexStorage3D glad_glTexStorage3D
3422typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params);
3423GLAPI PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ;
3424#define glGetInternalformativ glad_glGetInternalformativ
3426#ifndef GL_ES_VERSION_3_1
3427#define GL_ES_VERSION_3_1 1
3428GLAPI
int GLAD_GL_ES_VERSION_3_1;
3429typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
3430GLAPI PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute;
3431#define glDispatchCompute glad_glDispatchCompute
3432typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect);
3433GLAPI PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect;
3434#define glDispatchComputeIndirect glad_glDispatchComputeIndirect
3435typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode,
const void *indirect);
3436GLAPI PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect;
3437#define glDrawArraysIndirect glad_glDrawArraysIndirect
3438typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type,
const void *indirect);
3439GLAPI PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect;
3440#define glDrawElementsIndirect glad_glDrawElementsIndirect
3441typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
3442GLAPI PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri;
3443#define glFramebufferParameteri glad_glFramebufferParameteri
3444typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
3445GLAPI PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv;
3446#define glGetFramebufferParameteriv glad_glGetFramebufferParameteriv
3447typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
3448GLAPI PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv;
3449#define glGetProgramInterfaceiv glad_glGetProgramInterfaceiv
3450typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface,
const GLchar *name);
3451GLAPI PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex;
3452#define glGetProgramResourceIndex glad_glGetProgramResourceIndex
3453typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
3454GLAPI PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName;
3455#define glGetProgramResourceName glad_glGetProgramResourceName
3456typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount,
const GLenum *props, GLsizei count, GLsizei *length, GLint *params);
3457GLAPI PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv;
3458#define glGetProgramResourceiv glad_glGetProgramResourceiv
3459typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface,
const GLchar *name);
3460GLAPI PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation;
3461#define glGetProgramResourceLocation glad_glGetProgramResourceLocation
3462typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program);
3463GLAPI PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages;
3464#define glUseProgramStages glad_glUseProgramStages
3465typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program);
3466GLAPI PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram;
3467#define glActiveShaderProgram glad_glActiveShaderProgram
3468typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count,
const GLchar *
const*strings);
3469GLAPI PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv;
3470#define glCreateShaderProgramv glad_glCreateShaderProgramv
3471typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline);
3472GLAPI PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline;
3473#define glBindProgramPipeline glad_glBindProgramPipeline
3474typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n,
const GLuint *pipelines);
3475GLAPI PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines;
3476#define glDeleteProgramPipelines glad_glDeleteProgramPipelines
3477typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
3478GLAPI PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines;
3479#define glGenProgramPipelines glad_glGenProgramPipelines
3480typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline);
3481GLAPI PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline;
3482#define glIsProgramPipeline glad_glIsProgramPipeline
3483typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint *params);
3484GLAPI PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv;
3485#define glGetProgramPipelineiv glad_glGetProgramPipelineiv
3486typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0);
3487GLAPI PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i;
3488#define glProgramUniform1i glad_glProgramUniform1i
3489typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1);
3490GLAPI PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i;
3491#define glProgramUniform2i glad_glProgramUniform2i
3492typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
3493GLAPI PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i;
3494#define glProgramUniform3i glad_glProgramUniform3i
3495typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
3496GLAPI PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i;
3497#define glProgramUniform4i glad_glProgramUniform4i
3498typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0);
3499GLAPI PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui;
3500#define glProgramUniform1ui glad_glProgramUniform1ui
3501typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1);
3502GLAPI PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui;
3503#define glProgramUniform2ui glad_glProgramUniform2ui
3504typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
3505GLAPI PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui;
3506#define glProgramUniform3ui glad_glProgramUniform3ui
3507typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3508GLAPI PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui;
3509#define glProgramUniform4ui glad_glProgramUniform4ui
3510typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0);
3511GLAPI PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f;
3512#define glProgramUniform1f glad_glProgramUniform1f
3513typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
3514GLAPI PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f;
3515#define glProgramUniform2f glad_glProgramUniform2f
3516typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
3517GLAPI PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f;
3518#define glProgramUniform3f glad_glProgramUniform3f
3519typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
3520GLAPI PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f;
3521#define glProgramUniform4f glad_glProgramUniform4f
3522typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count,
const GLint *value);
3523GLAPI PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv;
3524#define glProgramUniform1iv glad_glProgramUniform1iv
3525typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count,
const GLint *value);
3526GLAPI PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv;
3527#define glProgramUniform2iv glad_glProgramUniform2iv
3528typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count,
const GLint *value);
3529GLAPI PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv;
3530#define glProgramUniform3iv glad_glProgramUniform3iv
3531typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count,
const GLint *value);
3532GLAPI PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv;
3533#define glProgramUniform4iv glad_glProgramUniform4iv
3534typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count,
const GLuint *value);
3535GLAPI PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv;
3536#define glProgramUniform1uiv glad_glProgramUniform1uiv
3537typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count,
const GLuint *value);
3538GLAPI PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv;
3539#define glProgramUniform2uiv glad_glProgramUniform2uiv
3540typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count,
const GLuint *value);
3541GLAPI PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv;
3542#define glProgramUniform3uiv glad_glProgramUniform3uiv
3543typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count,
const GLuint *value);
3544GLAPI PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv;
3545#define glProgramUniform4uiv glad_glProgramUniform4uiv
3546typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
3547GLAPI PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv;
3548#define glProgramUniform1fv glad_glProgramUniform1fv
3549typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
3550GLAPI PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv;
3551#define glProgramUniform2fv glad_glProgramUniform2fv
3552typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
3553GLAPI PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv;
3554#define glProgramUniform3fv glad_glProgramUniform3fv
3555typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
3556GLAPI PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv;
3557#define glProgramUniform4fv glad_glProgramUniform4fv
3558typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3559GLAPI PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv;
3560#define glProgramUniformMatrix2fv glad_glProgramUniformMatrix2fv
3561typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3562GLAPI PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv;
3563#define glProgramUniformMatrix3fv glad_glProgramUniformMatrix3fv
3564typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3565GLAPI PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv;
3566#define glProgramUniformMatrix4fv glad_glProgramUniformMatrix4fv
3567typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3568GLAPI PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv;
3569#define glProgramUniformMatrix2x3fv glad_glProgramUniformMatrix2x3fv
3570typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3571GLAPI PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv;
3572#define glProgramUniformMatrix3x2fv glad_glProgramUniformMatrix3x2fv
3573typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3574GLAPI PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv;
3575#define glProgramUniformMatrix2x4fv glad_glProgramUniformMatrix2x4fv
3576typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3577GLAPI PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv;
3578#define glProgramUniformMatrix4x2fv glad_glProgramUniformMatrix4x2fv
3579typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3580GLAPI PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv;
3581#define glProgramUniformMatrix3x4fv glad_glProgramUniformMatrix3x4fv
3582typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
3583GLAPI PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv;
3584#define glProgramUniformMatrix4x3fv glad_glProgramUniformMatrix4x3fv
3585typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline);
3586GLAPI PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline;
3587#define glValidateProgramPipeline glad_glValidateProgramPipeline
3588typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
3589GLAPI PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog;
3590#define glGetProgramPipelineInfoLog glad_glGetProgramPipelineInfoLog
3591typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
3592GLAPI PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture;
3593#define glBindImageTexture glad_glBindImageTexture
3594typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC)(GLbitfield barriers);
3595GLAPI PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier;
3596#define glMemoryBarrier glad_glMemoryBarrier
3597typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
3598GLAPI PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion;
3599#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion
3600typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
3601GLAPI PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample;
3602#define glTexStorage2DMultisample glad_glTexStorage2DMultisample
3603typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
3604GLAPI PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer;
3605#define glBindVertexBuffer glad_glBindVertexBuffer
3606typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
3607GLAPI PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat;
3608#define glVertexAttribFormat glad_glVertexAttribFormat
3609typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
3610GLAPI PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat;
3611#define glVertexAttribIFormat glad_glVertexAttribIFormat
3612typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
3613GLAPI PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding;
3614#define glVertexAttribBinding glad_glVertexAttribBinding
3615typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
3616GLAPI PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor;
3617#define glVertexBindingDivisor glad_glVertexBindingDivisor
3626#if !defined(PICO_GL_MALLOC) || !defined(PICO_GL_FREE)
3628#define PICO_GL_MALLOC(size, ctx) (malloc(size))
3629#define PICO_GL_FREE(ptr, ctx) (free(ptr))
3633 #define PICO_GL_ASSERT(...)
3635 #ifndef PICO_GL_ASSERT
3637 #define PICO_GL_ASSERT(expr) (assert(expr))
3643 #define PICO_GL_LOG(...) (pgl_log(__VA_ARGS__))
3648#ifndef PICO_GL_UNIFORM_NAME_LENGTH
3649#define PICO_GL_UNIFORM_NAME_LENGTH 32
3652#ifndef PICO_GL_MAX_UNIFORMS
3653#define PICO_GL_MAX_UNIFORMS 32
3656#ifndef PICO_GL_MAX_STATES
3657#define PICO_GL_MAX_STATES 32
3664#define PGL_MALLOC PICO_GL_MALLOC
3665#define PGL_FREE PICO_GL_FREE
3666#define PGL_ASSERT PICO_GL_ASSERT
3667#define PGL_LOG PICO_GL_LOG
3668#define PGL_UNIFORM_NAME_LENGTH PICO_GL_UNIFORM_NAME_LENGTH
3669#define PGL_MAX_UNIFORMS PICO_GL_MAX_UNIFORMS
3670#define PGL_MAX_STATES PICO_GL_MAX_STATES
3677 #define PGL_CHECK(expr) (expr)
3679 #define PGL_CHECK(expr) do { \
3680 expr; pgl_log_error(__FILE__, __LINE__, #expr); \
3684static bool pgl_initialized =
false;
3686static const char* pgl_error_msg_map[] =
3689 "Invalid enumeration value",
3691 "Invalid operation",
3693 "Invalid framebuffer operation",
3694 "Framebuffer is incomplete",
3695 "Shader compilation error",
3696 "Shader linking error",
3697 "Invalid texture dimensions",
3698 "Invalid texture format",
3699 "Invalid number of attributes",
3700 "Invalid number of uniforms",
3701 "Invalid uniform name",
3706static const GLenum pgl_format_map[] =
3715static const GLenum pgl_blend_factor_map[] =
3720 GL_ONE_MINUS_SRC_COLOR,
3722 GL_ONE_MINUS_DST_COLOR,
3724 GL_ONE_MINUS_SRC_ALPHA,
3726 GL_ONE_MINUS_DST_ALPHA
3729static const GLenum pgl_blend_eq_map[] =
3733 GL_FUNC_REVERSE_SUBTRACT,
3738static const GLenum pgl_primitive_map[] =
3751typedef uint32_t pgl_hash_t;
3763 char name[PGL_UNIFORM_NAME_LENGTH];
3780 pgl_viewport_t viewport;
3788 pgl_state_t array[PGL_MAX_STATES];
3797static const char* pgl_get_default_vert_shader();
3798static const char* pgl_get_default_frag_shader();
3800static pgl_state_stack_t* pgl_get_active_stack(
pgl_ctx_t* ctx);
3801static pgl_state_t* pgl_get_active_state(
pgl_ctx_t* ctx);
3803static void pgl_reset_last_state(
pgl_ctx_t* ctx);
3808static void pgl_apply_viewport(
pgl_ctx_t* ctx,
const pgl_viewport_t* viewport);
3811static void pgl_after_draw(
pgl_ctx_t* ctx);
3814static const pgl_uniform_t* pgl_find_uniform(
const pgl_shader_t* shader,
const char* name);
3816static void pgl_bind_attributes();
3818static void pgl_log(
const char* fmt, ...);
3819static void pgl_log_error(
const char* file,
unsigned line,
const char* expr);
3821static pgl_hash_t pgl_hash_str(
const char* str);
3822static bool pgl_str_equal(
const char* str1,
const char* str2);
3823static bool pgl_mem_equal(
const void* ptr1,
const void* ptr2,
size_t size);
3833static const pgl_hash_t PGL_OFFSET_BASIS = 0x811C9DC5;
3834static const pgl_hash_t PGL_PRIME = 0x1000193;
3840#define PGL_GL_HDR "" \
3841"#version 330 core\n"
3843#define PGL_GLES_HDR "" \
3846#define PGL_GL_VERT_BODY "" \
3847"layout (location = 0) in vec3 a_pos;\n" \
3848"layout (location = 1) in vec4 a_color;\n" \
3849"layout (location = 2) in vec2 a_uv;\n" \
3851"out vec4 color;\n" \
3854"uniform mat4 u_transform;\n" \
3855"uniform mat4 u_projection;\n" \
3859" gl_Position = u_projection * u_transform * vec4(a_pos, 1);\n" \
3860" color = a_color;\n" \
3864#define PGL_GL_FRAG_BODY "" \
3866"#ifdef GL_FRAGMENT_PRECISION_HIGH\n" \
3867" precision highp float;\n" \
3869" precision mediump float;\n" \
3872"out vec4 frag_color;\n" \
3877"uniform sampler2D u_tex;\n" \
3881" frag_color = texture(u_tex, uv) * color;\n" \
3884static const GLchar* PGL_GL_VERT_SRC = PGL_GL_HDR PGL_GL_VERT_BODY;
3885static const GLchar* PGL_GL_FRAG_SRC = PGL_GL_HDR PGL_GL_FRAG_BODY;
3887static const GLchar* PGL_GLES_VERT_SRC = PGL_GLES_HDR PGL_GL_VERT_BODY;
3888static const GLchar* PGL_GLES_FRAG_SRC = PGL_GLES_HDR PGL_GL_FRAG_BODY;
3900 pgl_state_t last_state;
3901 pgl_state_stack_t stack;
3902 pgl_state_stack_t target_stack;
3921 pgl_uniform_t uniforms[PGL_MAX_UNIFORMS];
3923 pgl_attribute_t pos;
3924 pgl_attribute_t color;
3942 GLuint depth_rbo_msaa;
3955 return ctx->error_code;
3970 if (!pgl_initialized)
3972 PGL_LOG(
"Library hasn't been initialized: call pgl_global_init");
3976 if (GLAD_GL_VERSION_3_3)
3979 if (GLAD_GL_ES_VERSION_3_1)
3987 if (!pgl_initialized)
3989 PGL_LOG(
"Library hasn't been initialized: call pgl_global_init");
3993 const unsigned char* vendor = glGetString(GL_VENDOR);
3994 const unsigned char* renderer = glGetString(GL_RENDERER);
3995 const unsigned char* gl_version = glGetString(GL_VERSION);
3996 const unsigned char* glsl_version = glGetString(GL_SHADING_LANGUAGE_VERSION);
4001 PGL_LOG(
"OpenGL info:");
4002 PGL_LOG(
"Vendor: %s", vendor);
4003 PGL_LOG(
"Renderer: %s", renderer);
4004 PGL_LOG(
"GL Version: %s", gl_version);
4005 PGL_LOG(
"GLSL Version: %s", glsl_version);
4006 PGL_LOG(
"Max texture size: %ix%i", tex_w, tex_h);
4011 if (NULL == loader_fp && gles)
4013 PGL_LOG(
"Loader must be explicitly specified for an GLES context");
4019 if (!gladLoadGLES2Loader((GLADloadproc)loader_fp))
4021 PGL_LOG(
"GLAD GLES2 loader failed");
4025 pgl_initialized =
true;
4030 if (NULL == loader_fp)
4034 PGL_LOG(
"GLAD GL3 loader failed");
4040 if (!gladLoadGLLoader((GLADloadproc)loader_fp))
4042 PGL_LOG(
"GLAD GL3 loader failed");
4047 PGL_CHECK(glEnable(GL_BLEND));
4049 pgl_initialized =
true;
4055 uint32_t samples,
bool srgb,
void* mem_ctx)
4057 if (!pgl_initialized)
4059 PGL_LOG(
"Library hasn't been initialized: call pgl_global_init");
4072 ctx->samples = samples;
4075 ctx->mem_ctx = mem_ctx;
4078 PGL_CHECK(glGenVertexArrays(1, &ctx->vao));
4079 PGL_CHECK(glBindVertexArray(ctx->vao));
4080 PGL_CHECK(glGenBuffers(1, &ctx->vbo));
4081 PGL_CHECK(glGenBuffers(1, &ctx->ebo));
4082 PGL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ctx->ebo));
4083 PGL_CHECK(glBufferData(GL_ELEMENT_ARRAY_BUFFER, 0, NULL, GL_STATIC_DRAW));
4084 PGL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, ctx->vbo));
4085 PGL_CHECK(glBufferData(GL_ARRAY_BUFFER, 0, NULL, GL_STATIC_DRAW));
4086 pgl_bind_attributes();
4087 PGL_CHECK(glBindVertexArray(0));
4091 GLint max_samples = 0;
4092 PGL_CHECK(glGetIntegerv(GL_MAX_SAMPLES, &max_samples));
4094 if (samples > (uint32_t)max_samples)
4095 ctx->samples = (uint32_t)max_samples;
4097 PGL_CHECK(glEnable(GL_MULTISAMPLE));
4110 PGL_CHECK(glDeleteBuffers(1, &ctx->vbo));
4111 PGL_CHECK(glDeleteBuffers(1, &ctx->ebo));
4112 PGL_CHECK(glDeleteVertexArrays(1, &ctx->vao));
4113 PGL_FREE(ctx, ctx->mem_ctx);
4128 const char* frag_src)
4132 if (!vert_src && !frag_src)
4134 vert_src = pgl_get_default_vert_shader();
4135 frag_src = pgl_get_default_frag_shader();
4139 vert_src = pgl_get_default_vert_shader();
4143 frag_src = pgl_get_default_frag_shader();
4147 GLuint vs, fs, program;
4149 PGL_CHECK(vs = glCreateShader(GL_VERTEX_SHADER));
4150 PGL_CHECK(fs = glCreateShader(GL_FRAGMENT_SHADER));
4156 GLint is_compiled = GL_FALSE;
4158 PGL_CHECK(glShaderSource(vs, 1, &vert_src, NULL));
4159 PGL_CHECK(glCompileShader(vs));
4160 PGL_CHECK(glGetShaderiv(vs, GL_COMPILE_STATUS, &is_compiled));
4162 if (GL_FALSE == is_compiled)
4164 PGL_CHECK(glGetShaderInfoLog(vs,
sizeof(msg), &length, msg));
4165 PGL_CHECK(glDeleteShader(vs));
4166 PGL_LOG(
"Error compiling vertex shader: %s", msg);
4172 is_compiled = GL_FALSE;
4174 PGL_CHECK(glShaderSource(fs, 1, &frag_src, NULL));
4175 PGL_CHECK(glCompileShader(fs));
4176 PGL_CHECK(glGetShaderiv(fs, GL_COMPILE_STATUS, &is_compiled));
4178 if (GL_FALSE == is_compiled)
4180 PGL_CHECK(glGetShaderInfoLog(fs,
sizeof(msg), &length, msg));
4181 PGL_CHECK(glDeleteShader(vs));
4182 PGL_CHECK(glDeleteShader(fs));
4183 PGL_LOG(
"Error compiling fragment shader: %s", msg);
4189 GLint is_linked = GL_FALSE;
4191 PGL_CHECK(program = glCreateProgram());
4193 PGL_CHECK(glAttachShader(program, vs));
4194 PGL_CHECK(glAttachShader(program, fs));
4195 PGL_CHECK(glLinkProgram(program));
4196 PGL_CHECK(glGetProgramiv(program, GL_LINK_STATUS, &is_linked));
4198 PGL_CHECK(glDetachShader(program, vs));
4199 PGL_CHECK(glDetachShader(program, fs));
4200 PGL_CHECK(glDeleteShader(vs));
4201 PGL_CHECK(glDeleteShader(fs));
4203 if (GL_FALSE == is_linked)
4205 PGL_CHECK(glGetProgramInfoLog(program,
sizeof(msg), &length, msg));
4206 PGL_CHECK(glDeleteProgram(program));
4207 PGL_LOG(
"Error linking shader program: %s", msg);
4222 shader->program = program;
4226 pgl_load_uniforms(shader);
4237 PGL_CHECK(glDeleteProgram(shader->program));
4238 PGL_FREE(shader, shader->ctx->mem_ctx);
4245 return shader->program;
4252 if (ctx->shader == shader)
4257 PGL_CHECK(glUseProgram(shader->program));
4258 ctx->shader = shader;
4262 PGL_CHECK(glUseProgram(0));
4267static void pgl_set_texture_params(GLuint tex_id,
bool smooth,
bool repeat)
4269 PGL_CHECK(glBindTexture(GL_TEXTURE_2D, tex_id));
4271 PGL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
4272 smooth ? GL_LINEAR : GL_NEAREST));
4274 PGL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
4275 smooth ? GL_LINEAR : GL_NEAREST));
4277 PGL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
4278 repeat ? GL_REPEAT : GL_CLAMP_TO_EDGE));
4280 PGL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,
4281 repeat ? GL_REPEAT : GL_CLAMP_TO_EDGE));
4287 int32_t w, int32_t h,
4288 bool smooth,
bool repeat)
4293 if (w <= 0 || h <= 0)
4295 PGL_LOG(
"Texture dimensions must be positive (w: %i, h: %i)", w, h);
4301 PGL_CHECK(glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_size));
4303 if (w > max_size || h > max_size)
4305 PGL_LOG(
"Texture dimensions exceed max size (w: %i, h: %i)", w, h);
4319 PGL_CHECK(glGenTextures(1, &tex->id));
4326 tex->target = target;
4327 tex->smooth = smooth;
4331 PGL_CHECK(glDeleteTextures(1, &tex->id));
4332 PGL_FREE(tex, ctx->mem_ctx);
4336 pgl_set_texture_params(tex->id, smooth, repeat);
4342 PGL_CHECK(glGenFramebuffers(1, &tex->fbo));
4347 PGL_CHECK(glGenTextures(1, &tex->depth_id));
4349 pgl_set_texture_params(tex->depth_id, smooth, repeat);
4351 PGL_CHECK(glBindTexture(GL_TEXTURE_2D, tex->depth_id));
4352 PGL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, w, h, 0,
4353 GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, NULL));
4357 if (ctx->samples > 0)
4359 PGL_CHECK(glGenFramebuffers(1, &tex->fbo_msaa));
4360 PGL_CHECK(glGenRenderbuffers(1, &tex->rbo_msaa));
4364 PGL_CHECK(glGenRenderbuffers(1, &tex->depth_rbo_msaa));
4373 PGL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, tex->fbo));
4376 PGL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER,
4377 GL_COLOR_ATTACHMENT0,
4378 GL_TEXTURE_2D, tex->id, 0));
4385 PGL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER,
4386 GL_DEPTH_ATTACHMENT,
4387 GL_TEXTURE_2D, tex->depth_id, 0));
4391 if (ctx->samples > 0)
4394 PGL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, tex->rbo_msaa));
4397 PGL_CHECK(glRenderbufferStorageMultisample(GL_RENDERBUFFER,
4400 GL_SRGB8_ALPHA8 : GL_RGBA,
4403 PGL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, 0));
4406 PGL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, tex->fbo_msaa));
4409 PGL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER,
4410 GL_COLOR_ATTACHMENT0,
4411 GL_RENDERBUFFER, tex->rbo_msaa));
4417 PGL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, tex->depth_rbo_msaa));
4420 PGL_CHECK(glRenderbufferStorageMultisample(GL_RENDERBUFFER,
4422 GL_DEPTH_COMPONENT24,
4426 PGL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER,
4427 GL_DEPTH_ATTACHMENT,
4429 tex->depth_rbo_msaa));
4435 PGL_CHECK(status = glCheckFramebufferStatus(GL_FRAMEBUFFER));
4437 if (status != GL_FRAMEBUFFER_COMPLETE)
4439 PGL_LOG(
"Framebuffer incomplete");
4444 PGL_CHECK(glDeleteTextures(1, &tex->id));
4445 PGL_CHECK(glDeleteFramebuffers(1, &tex->fbo));
4449 PGL_CHECK(glDeleteTextures(1, &tex->depth_id));
4452 if (ctx->samples > 0)
4454 PGL_CHECK(glDeleteRenderbuffers(1, &tex->rbo_msaa));
4455 PGL_CHECK(glDeleteFramebuffers(1, &tex->fbo_msaa));
4459 PGL_CHECK(glDeleteRenderbuffers(1, &tex->depth_rbo_msaa));
4463 PGL_FREE(tex, ctx->mem_ctx);
4470 PGL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, 0));
4471 PGL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, 0));
4479 int32_t w, int32_t h,
4480 bool smooth,
bool repeat,
4481 const unsigned char* bitmap)
4494 PGL_CHECK(glDeleteTextures(1, &tex->id));
4495 PGL_FREE(tex, ctx->mem_ctx);
4504 int32_t w, int32_t h,
4505 const unsigned char* bitmap)
4508 PGL_ASSERT(texture);
4512 PGL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, texture->srgb ?
4513 GL_SRGB8_ALPHA8 : GL_RGBA,
4515 pgl_format_map[texture->fmt],
4516 GL_UNSIGNED_BYTE, bitmap));
4525 const uint8_t* bitmap)
4528 PGL_ASSERT(texture);
4533 GLenum fmt = pgl_format_map[texture->fmt];
4535 PGL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h, fmt,
4536 GL_UNSIGNED_BYTE, bitmap));
4541 PGL_ASSERT(texture);
4543 if (texture->mipmap)
4550 PGL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
4551 texture->smooth ? GL_LINEAR_MIPMAP_LINEAR :
4552 GL_NEAREST_MIPMAP_LINEAR));
4556 PGL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
4557 texture->smooth ? GL_LINEAR_MIPMAP_NEAREST :
4558 GL_NEAREST_MIPMAP_NEAREST));
4561 PGL_CHECK(glGenerateMipmap(GL_TEXTURE_2D));
4563 texture->mipmap =
true;
4573 PGL_CHECK(glDeleteTextures(1, &tex->id));
4577 PGL_CHECK(glDeleteFramebuffers(1, &tex->fbo));
4579 if (tex->ctx->depth)
4581 PGL_CHECK(glDeleteTextures(1, &tex->depth_id));
4584 if (tex->ctx->samples > 0)
4586 PGL_CHECK(glDeleteRenderbuffers(1, &tex->rbo_msaa));
4587 PGL_CHECK(glDeleteFramebuffers(1, &tex->fbo_msaa));
4589 if (tex->ctx->depth)
4591 PGL_CHECK(glDeleteRenderbuffers(1, &tex->depth_rbo_msaa));
4596 PGL_FREE(tex, tex->ctx->mem_ctx);
4601 PGL_ASSERT(texture);
4603 if (w) *w = texture->w;
4604 if (h) *h = texture->h;
4610 PGL_CHECK(glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_size));
4612 if (w) *w = max_size;
4613 if (h) *h = max_size;
4618 PGL_ASSERT(texture);
4626 if (ctx->texture == texture)
4629 if (NULL != texture)
4631 PGL_CHECK(glBindTexture(GL_TEXTURE_2D, texture->id));
4632 ctx->texture = texture;
4636 PGL_CHECK(glBindTexture(GL_TEXTURE_2D, 0));
4637 ctx->texture = NULL;
4645 if (ctx->target == target)
4648 if (ctx->target && ctx->samples > 0)
4650 PGL_CHECK(glBindFramebuffer(GL_READ_FRAMEBUFFER, ctx->target->fbo_msaa));
4651 PGL_CHECK(glBindFramebuffer(GL_DRAW_FRAMEBUFFER, ctx->target->fbo));
4652 PGL_CHECK(glBlitFramebuffer(0, 0, ctx->target->w, ctx->target->h,
4653 0, 0, ctx->target->w, ctx->target->h,
4654 GL_COLOR_BUFFER_BIT, GL_LINEAR));
4659 PGL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, 0));
4662 pgl_reset_last_state(ctx);
4667 if (ctx->samples > 0)
4668 PGL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, target->fbo_msaa));
4670 PGL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, target->fbo));
4672 ctx->target = target;
4676 pgl_reset_last_state(ctx);
4682void pgl_clear(
float r,
float g,
float b,
float a)
4684 PGL_CHECK(glClearColor(r, g, b, a));
4685 PGL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
4696 PGL_ASSERT(vertices);
4699 pgl_before_draw(ctx, texture, shader);
4701 PGL_CHECK(glBindVertexArray(ctx->vao));
4703 PGL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, ctx->vbo));
4704 PGL_CHECK(glBufferData(GL_ARRAY_BUFFER, count *
sizeof(
pgl_vertex_t), vertices, GL_STATIC_DRAW));
4706 PGL_CHECK(glDrawArrays(pgl_primitive_map[primitive], 0, count));
4707 PGL_CHECK(glBindVertexArray(0));
4709 pgl_after_draw(ctx);
4715 const uint32_t* indices,
pgl_size_t index_count,
4720 PGL_ASSERT(vertices);
4721 PGL_ASSERT(indices);
4724 pgl_before_draw(ctx, texture, shader);
4726 PGL_CHECK(glBindVertexArray(ctx->vao));
4728 PGL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, ctx->vbo));
4729 PGL_CHECK(glBufferData(GL_ARRAY_BUFFER, vertex_count *
sizeof(
pgl_vertex_t), vertices, GL_STATIC_DRAW));
4731 PGL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ctx->ebo));
4732 PGL_CHECK(glBufferData(GL_ELEMENT_ARRAY_BUFFER, index_count *
sizeof(GLuint), indices, GL_STATIC_DRAW));
4734 PGL_CHECK(glDrawElements(pgl_primitive_map[primitive], index_count, GL_UNSIGNED_INT, 0));
4735 PGL_CHECK(glBindVertexArray(0));
4737 pgl_after_draw(ctx);
4746 PGL_ASSERT(vertices);
4756 PGL_CHECK(glGenVertexArrays(1, &buffer->vao));
4757 PGL_CHECK(glGenBuffers(1, &buffer->vbo));
4759 PGL_CHECK(glBindVertexArray(buffer->vao));
4761 PGL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, buffer->vbo));
4762 PGL_CHECK(glBufferData(GL_ARRAY_BUFFER, count *
sizeof(
pgl_vertex_t), vertices, GL_DYNAMIC_DRAW));
4764 pgl_bind_attributes();
4765 PGL_CHECK(glBindVertexArray(0));
4767 buffer->primitive = pgl_primitive_map[primitive];
4768 buffer->count = count;
4780 PGL_ASSERT(vertices);
4781 PGL_ASSERT(count + offset <= (
pgl_size_t)buffer->count);
4783 PGL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, buffer->vbo));
4784 PGL_CHECK(glBufferSubData(GL_ARRAY_BUFFER, offset, count *
sizeof(
pgl_vertex_t), vertices));
4786 buffer->count = count;
4793 PGL_CHECK(glDeleteVertexArrays(1, &buffer->vao));
4794 PGL_CHECK(glDeleteBuffers(1, &buffer->vbo));
4796 PGL_FREE(buffer, buffer->ctx->mem_ctx);
4809 PGL_ASSERT(start + count <= (
pgl_size_t)buffer->count);
4811 pgl_before_draw(ctx, texture, shader);
4813 PGL_CHECK(glBindVertexArray(buffer->vao));
4814 PGL_CHECK(glDrawArrays(buffer->primitive, start, count));
4815 PGL_CHECK(glBindVertexArray(0));
4817 pgl_after_draw(ctx);
4823 ctx->transpose = enabled;
4830 pgl_state_t* state = pgl_get_active_state(ctx);
4831 state->blend_mode = mode;
4838 pgl_state_t* state = pgl_get_active_state(ctx);
4849 state->blend_mode = mode;
4857 pgl_state_t* state = pgl_get_active_state(ctx);
4858 memcpy(state->transform, matrix,
sizeof(
pgl_m4_t));
4870 matrix[0], matrix[1], 0.0f, matrix[2],
4871 matrix[3], matrix[4], 0.0f, matrix[5],
4872 0.0f, 0.0f, 1.0f, 0.0f,
4873 matrix[6], matrix[7], 0.0f, matrix[8]
4882 matrix[0], matrix[3], 0.0f, matrix[6],
4883 matrix[1], matrix[4], 0.0f, matrix[7],
4884 0.0f, 0.0f, 1.0f, 0.0f,
4885 matrix[2], matrix[5], 0.0f, matrix[8]
4896 pgl_state_t* state = pgl_get_active_state(ctx);
4900 1.0f, 0.0f, 0.0f, 0.0f,
4901 0.0f, 1.0f, 0.0f, 0.0f,
4902 0.0f, 0.0f, 1.0f, 0.0f,
4903 0.0f, 0.0f, 0.0f, 1.0f
4906 memcpy(state->transform, matrix,
sizeof(
pgl_m4_t));
4914 pgl_state_t* state = pgl_get_active_state(ctx);
4915 memcpy(state->projection, matrix,
sizeof(
pgl_m4_t));
4927 matrix[0], matrix[1], 0.0f, matrix[2],
4928 matrix[3], matrix[4], 0.0f, matrix[5],
4929 0.0f, 0.0f, 1.0f, 0.0f,
4930 matrix[6], matrix[7], 0.0f, matrix[8]
4939 matrix[0], matrix[3], 0.0f, matrix[6],
4940 matrix[1], matrix[4], 0.0f, matrix[7],
4941 0.0f, 0.0f, 1.0f, 0.0f,
4942 matrix[2], matrix[5], 0.0f, matrix[8]
4953 pgl_state_t* state = pgl_get_active_state(ctx);
4957 1.0f, 0.0f, 0.0f, 0.0f,
4958 0.0f, 1.0f, 0.0f, 0.0f,
4959 0.0f, 0.0f, 1.0f, 0.0f,
4960 0.0f, 0.0f, 0.0f, 1.0f
4963 memcpy(state->projection, matrix,
sizeof(
pgl_m4_t));
4967 int32_t w, int32_t h)
4971 pgl_state_t* state = pgl_get_active_state(ctx);
4972 state->viewport = (pgl_viewport_t){ x, y, w, h };
4979 pgl_state_t* state = pgl_get_active_state(ctx);
4980 state->viewport = (pgl_viewport_t){ 0, 0, ctx->w, ctx->h };
4987 pgl_state_t* state = pgl_get_active_state(ctx);
4988 state->line_width = width;
4995 pgl_state_t* state = pgl_get_active_state(ctx);
4996 state->line_width = 1.0f;
5015 pgl_state_stack_t* stack = pgl_get_active_stack(ctx);
5016 PGL_ASSERT(stack->size < PGL_MAX_STATES);
5018 stack->array[stack->size] = stack->state;
5026 pgl_state_stack_t* stack = pgl_get_active_stack(ctx);
5028 PGL_ASSERT(stack->size > 0);
5030 stack->state = stack->array[stack->size];
5038 pgl_state_stack_t* stack = pgl_get_active_stack(ctx);
5048 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5053 PGL_CHECK(glUniform1i(uniform->location, value));
5062 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5067 PGL_CHECK(glUniform1i(uniform->location, a));
5076 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5081 PGL_CHECK(glUniform2i(uniform->location, a, b));
5091 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5096 PGL_CHECK(glUniform3i(uniform->location, a, b, c));
5100 int32_t c, int32_t d)
5106 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5111 PGL_CHECK(glUniform4i(uniform->location, a, b, c, d));
5127 pgl_set_3i(shader, name, vec[0], vec[1], vec[2]);
5136 pgl_set_4i(shader, name, vec[0], vec[1], vec[2], vec[3]);
5145 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5150 PGL_CHECK(glUniform1f(uniform->location, x));
5159 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5164 PGL_CHECK(glUniform2f(uniform->location, x, y));
5173 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5178 PGL_CHECK(glUniform3f(uniform->location, x, y, z));
5188 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5193 PGL_CHECK(glUniform4f(uniform->location, x, y, z, w));
5211 pgl_set_3f(shader, name, vec[0], vec[1], vec[2]);
5220 pgl_set_4f(shader, name, vec[0], vec[1], vec[2], vec[3]);
5225 const float* values,
5233 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5238 PGL_CHECK(glUniform1fv(uniform->location, count, values));
5251 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5256 float values[2 * count];
5260 for (i = 0, j = 0; j < count; i += 2, j++)
5262 values[i] = vec[j][0];
5263 values[i + 1] = vec[j][1];
5266 PGL_CHECK(glUniform2fv(uniform->location, count, values));
5279 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5284 float values[3 * count];
5288 for (i = 0, j = 0; j < count; i += 3, j++)
5290 values[i] = vec[j][0];
5291 values[i + 1] = vec[j][1];
5292 values[i + 2] = vec[j][2];
5295 PGL_CHECK(glUniform3fv(uniform->location, count, values));
5308 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5313 float values[4 * count];
5317 for (i = 0, j = 0; j < count; i += 4, j++)
5319 values[i] = vec[j][0];
5320 values[i + 1] = vec[j][1];
5321 values[i + 2] = vec[j][2];
5322 values[i + 3] = vec[j][3];
5325 PGL_CHECK(glUniform4fv(uniform->location, count, values));
5335 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5340 PGL_CHECK(glUniformMatrix2fv(uniform->location, uniform->size, shader->ctx->transpose, (
float*)matrix));
5350 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5355 PGL_CHECK(glUniformMatrix3fv(uniform->location, uniform->size, shader->ctx->transpose, (
float*)matrix));
5365 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5370 PGL_CHECK(glUniformMatrix4fv(uniform->location, uniform->size, shader->ctx->transpose, (
float*)matrix));
5379 const pgl_uniform_t* uniform = pgl_find_uniform(shader, name);
5384 PGL_CHECK(glUniform1i(uniform->location, value));
5394 ctx->error_code = code;
5397static const char* pgl_get_default_vert_shader()
5404 return PGL_GL_VERT_SRC;
5407 return PGL_GLES_VERT_SRC;
5414static const char* pgl_get_default_frag_shader()
5421 return PGL_GL_FRAG_SRC;
5424 return PGL_GLES_FRAG_SRC;
5431static void pgl_reset_last_state(
pgl_ctx_t* ctx)
5435 pgl_state_t* last = &ctx->last_state;
5437 memset(last, 0,
sizeof(pgl_state_t));
5445 last->blend_mode = mode;
5448static pgl_state_stack_t* pgl_get_active_stack(
pgl_ctx_t* ctx)
5452 pgl_state_stack_t* stack = &ctx->stack;
5455 stack = &ctx->target_stack;
5460static pgl_state_t* pgl_get_active_state(
pgl_ctx_t* ctx)
5464 return &pgl_get_active_stack(ctx)->state;
5472 if (pgl_mem_equal(mode, &ctx->last_state.blend_mode,
sizeof(
pgl_blend_mode_t)))
5475 PGL_CHECK(glBlendFuncSeparate(pgl_blend_factor_map[mode->
color_src],
5478 pgl_blend_factor_map[mode->
alpha_dst]));
5480 PGL_CHECK(glBlendEquationSeparate(pgl_blend_eq_map[mode->
color_eq],
5481 pgl_blend_eq_map[mode->
alpha_eq]));
5489 if (pgl_mem_equal(matrix, ctx->last_state.transform,
sizeof(
pgl_m4_t)))
5492 pgl_set_m4(ctx->shader,
"u_transform", matrix);
5500 if (pgl_mem_equal(matrix, &ctx->last_state.projection,
sizeof(
pgl_m4_t)))
5503 pgl_set_m4(ctx->shader,
"u_projection", matrix);
5506static void pgl_apply_viewport(
pgl_ctx_t* ctx,
const pgl_viewport_t* viewport)
5509 PGL_ASSERT(viewport);
5511 if (viewport->w <= 0 && viewport->h <= 0)
5514 if (pgl_mem_equal(viewport, &ctx->last_state.viewport,
sizeof(pgl_viewport_t)))
5517 PGL_CHECK(glViewport(viewport->x, viewport->y, viewport->w, viewport->h));
5520static void pgl_apply_line_width(
pgl_ctx_t* ctx,
float line_width)
5524 if (line_width == ctx->last_state.line_width)
5527 PGL_CHECK(glLineWidth(line_width));
5538 pgl_state_t* state = pgl_get_active_state(ctx);
5540 pgl_apply_viewport(ctx, &state->viewport);
5541 pgl_apply_blend(ctx, &state->blend_mode);
5542 pgl_apply_transform(ctx, state->transform);
5543 pgl_apply_projection(ctx, state->projection);
5544 pgl_apply_line_width(ctx, state->line_width);
5549 PGL_CHECK(glEnable(GL_DEPTH_TEST));
5551 PGL_CHECK(glDisable(GL_DEPTH_TEST));
5554 PGL_CHECK(glEnable(GL_FRAMEBUFFER_SRGB));
5556 PGL_CHECK(glDisable(GL_FRAMEBUFFER_SRGB));
5559static void pgl_after_draw(
pgl_ctx_t* ctx)
5563 ctx->last_state = *pgl_get_active_state(ctx);
5571 GLint uniform_count;
5572 glGetProgramiv(shader->program, GL_ACTIVE_UNIFORMS, &uniform_count);
5573 shader->uniform_count = uniform_count;
5576 PGL_ASSERT(uniform_count < PGL_MAX_UNIFORMS);
5578 if (uniform_count >= PGL_MAX_UNIFORMS)
5585 for (GLint i = 0; i < uniform_count; i++)
5587 pgl_uniform_t uniform;
5588 GLsizei name_length;
5594 PGL_CHECK(glGetActiveUniform(shader->program, index,
5595 PGL_UNIFORM_NAME_LENGTH,
5596 &name_length, &uniform.size, &uniform.type,
5600 PGL_ASSERT(name_length <= PGL_UNIFORM_NAME_LENGTH);
5602 if (name_length > PGL_UNIFORM_NAME_LENGTH)
5609 uniform.location = glGetUniformLocation(shader->program, uniform.name);
5612 uniform.hash = pgl_hash_str(uniform.name);
5615 shader->uniforms[i] = uniform;
5621static const pgl_uniform_t* pgl_find_uniform(
const pgl_shader_t* shader,
const char* name)
5624 PGL_ASSERT(name && strlen(name) > 0);
5626 pgl_size_t uniform_count = shader->uniform_count;
5627 const pgl_uniform_t* uniforms = shader->uniforms;
5629 uint64_t hash = pgl_hash_str(name);
5631 for (
pgl_size_t i = 0; i < uniform_count; i++)
5633 const pgl_uniform_t* uniform = &uniforms[i];
5635 if (uniform->hash == hash && pgl_str_equal(name, uniform->name))
5644static void pgl_bind_attributes()
5647 PGL_CHECK(glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE,
5651 PGL_CHECK(glEnableVertexAttribArray(0));
5654 PGL_CHECK(glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE,
5658 PGL_CHECK(glEnableVertexAttribArray(1));
5661 PGL_CHECK(glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE,
5665 PGL_CHECK(glEnableVertexAttribArray(2));
5669static void pgl_log(
const char* fmt, ...)
5674 va_start(args, fmt);
5681static void pgl_log_error(
const char* file,
unsigned line,
const char* expr)
5690 PGL_LOG(
"GL error: file: %s, line: %u, msg: \"%s\", expr: \"%s\"",
5691 file, line, pgl_error_msg_map[code], expr);
5703 case GL_INVALID_FRAMEBUFFER_OPERATION:
5709static bool pgl_str_equal(
const char* str1,
const char* str2)
5711 return (0 == strcmp(str1, str2));
5714static bool pgl_mem_equal(
const void* ptr1,
const void* ptr2,
size_t size)
5716 return (0 == memcmp(ptr1, ptr2, size));
5720static pgl_hash_t pgl_hash_str(
const char* str)
5724 pgl_hash_t hash = PGL_OFFSET_BASIS;
5726 while (
'\0' != str[0])
5728 hash ^= (pgl_hash_t)str[0];
5737 #pragma GCC diagnostic push
5738 #pragma GCC diagnostic ignored "-Wpedantic"
5767static void* get_proc(
const char *namez);
5769#if defined(_WIN32) || defined(__CYGWIN__)
5774static HMODULE libGL;
5776typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(
const char*);
5777static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
5781 #if __has_include(<winapifamily.h>)
5782 #define HAVE_WINAPIFAMILY 1
5784#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
5785 #define HAVE_WINAPIFAMILY 1
5789#ifdef HAVE_WINAPIFAMILY
5790 #include <winapifamily.h>
5791 #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
5799 libGL = LoadLibraryW(L
"opengl32.dll");
5802 tmp = (void(*)(void)) GetProcAddress(libGL,
"wglGetProcAddress");
5803 gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
5804 return gladGetProcAddressPtr != NULL;
5812void close_gl(
void) {
5814 FreeLibrary((HMODULE) libGL);
5822#if !defined(__APPLE__) && !defined(__HAIKU__)
5823typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(
const char*);
5824static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
5830 static const char *NAMES[] = {
5831 "../Frameworks/OpenGL.framework/OpenGL",
5832 "/Library/Frameworks/OpenGL.framework/OpenGL",
5833 "/System/Library/Frameworks/OpenGL.framework/OpenGL",
5834 "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
5837 static const char *NAMES[] = {
"libGL.so.1",
"libGL.so"};
5840 unsigned int index = 0;
5841 for(index = 0; index < (
sizeof(NAMES) /
sizeof(NAMES[0])); index++) {
5842 libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
5845#if defined(__APPLE__) || defined(__HAIKU__)
5848 gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
5849 "glXGetProcAddressARB");
5850 return gladGetProcAddressPtr != NULL;
5859void close_gl(
void) {
5868void* get_proc(
const char *namez) {
5869 void* result = NULL;
5870 if(libGL == NULL)
return NULL;
5872#if !defined(__APPLE__) && !defined(__HAIKU__)
5873 if(gladGetProcAddressPtr != NULL) {
5874 result = gladGetProcAddressPtr(namez);
5877 if(result == NULL) {
5878#if defined(_WIN32) || defined(__CYGWIN__)
5879 result = (
void*)GetProcAddress((HMODULE) libGL, namez);
5881 result = dlsym(libGL, namez);
5888int gladLoadGL(
void) {
5892 status = gladLoadGLLoader(&get_proc);
5899struct gladGLversionStruct GLVersion = { 0, 0 };
5901#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
5902#define _GLAD_IS_SOME_NEW_VERSION 1
5905static int max_loaded_major;
5906static int max_loaded_minor;
5908static const char *exts = NULL;
5909static int num_exts_i = 0;
5910static char **exts_i = NULL;
5912static int get_exts(
void) {
5913#ifdef _GLAD_IS_SOME_NEW_VERSION
5914 if(max_loaded_major < 3) {
5916 exts = (
const char *)glGetString(GL_EXTENSIONS);
5917#ifdef _GLAD_IS_SOME_NEW_VERSION
5922 glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
5923 if (num_exts_i > 0) {
5924 exts_i = (
char **)malloc((
size_t)num_exts_i * (
sizeof *exts_i));
5927 if (exts_i == NULL) {
5931 for(index = 0; index < (unsigned)num_exts_i; index++) {
5932 const char *gl_str_tmp = (
const char*)glGetStringi(GL_EXTENSIONS, index);
5933 size_t len = strlen(gl_str_tmp);
5935 char *local_str = (
char*)malloc((len+1) *
sizeof(char));
5936 if(local_str != NULL) {
5937 memcpy(local_str, gl_str_tmp, (len+1) *
sizeof(
char));
5939 exts_i[index] = local_str;
5946static void free_exts(
void) {
5947 if (exts_i != NULL) {
5949 for(index = 0; index < num_exts_i; index++) {
5950 free((
char *)exts_i[index]);
5952 free((
void *)exts_i);
5957static int has_ext(
const char *ext) {
5958#ifdef _GLAD_IS_SOME_NEW_VERSION
5959 if(max_loaded_major < 3) {
5961 const char *extensions;
5963 const char *terminator;
5965 if(extensions == NULL || ext == NULL) {
5970 loc = strstr(extensions, ext);
5975 terminator = loc + strlen(ext);
5976 if((loc == extensions || *(loc - 1) ==
' ') &&
5977 (*terminator ==
' ' || *terminator ==
'\0')) {
5980 extensions = terminator;
5982#ifdef _GLAD_IS_SOME_NEW_VERSION
5985 if(exts_i == NULL)
return 0;
5986 for(index = 0; index < num_exts_i; index++) {
5987 const char *e = exts_i[index];
5989 if(exts_i[index] != NULL && strcmp(e, ext) == 0) {
5998int GLAD_GL_VERSION_1_0 = 0;
5999int GLAD_GL_VERSION_1_1 = 0;
6000int GLAD_GL_VERSION_1_2 = 0;
6001int GLAD_GL_VERSION_1_3 = 0;
6002int GLAD_GL_VERSION_1_4 = 0;
6003int GLAD_GL_VERSION_1_5 = 0;
6004int GLAD_GL_VERSION_2_0 = 0;
6005int GLAD_GL_VERSION_2_1 = 0;
6006int GLAD_GL_VERSION_3_0 = 0;
6007int GLAD_GL_VERSION_3_1 = 0;
6008int GLAD_GL_VERSION_3_2 = 0;
6009int GLAD_GL_VERSION_3_3 = 0;
6010int GLAD_GL_ES_VERSION_2_0 = 0;
6011int GLAD_GL_ES_VERSION_3_0 = 0;
6012int GLAD_GL_ES_VERSION_3_1 = 0;
6013PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL;
6014PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
6015PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
6016PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL;
6017PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL;
6018PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL;
6019PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
6020PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
6021PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL;
6022PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL;
6023PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL;
6024PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL;
6025PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
6026PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL;
6027PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL;
6028PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
6029PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL;
6030PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
6031PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL;
6032PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL;
6033PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL;
6034PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
6035PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
6036PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
6037PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
6038PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
6039PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL;
6040PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
6041PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
6042PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
6043PFNGLCLAMPCOLORPROC glad_glClampColor = NULL;
6044PFNGLCLEARPROC glad_glClear = NULL;
6045PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL;
6046PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL;
6047PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL;
6048PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL;
6049PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
6050PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL;
6051PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL;
6052PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
6053PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL;
6054PFNGLCOLORMASKPROC glad_glColorMask = NULL;
6055PFNGLCOLORMASKIPROC glad_glColorMaski = NULL;
6056PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL;
6057PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL;
6058PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL;
6059PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL;
6060PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
6061PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL;
6062PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
6063PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL;
6064PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL;
6065PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
6066PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL;
6067PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL;
6068PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL;
6069PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
6070PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL;
6071PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
6072PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL;
6073PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
6074PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
6075PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL;
6076PFNGLCULLFACEPROC glad_glCullFace = NULL;
6077PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
6078PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
6079PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
6080PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL;
6081PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL;
6082PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
6083PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL;
6084PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
6085PFNGLDELETESYNCPROC glad_glDeleteSync = NULL;
6086PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
6087PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL;
6088PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL;
6089PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
6090PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
6091PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL;
6092PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL;
6093PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
6094PFNGLDISABLEPROC glad_glDisable = NULL;
6095PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
6096PFNGLDISABLEIPROC glad_glDisablei = NULL;
6097PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL;
6098PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect = NULL;
6099PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
6100PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL;
6101PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL;
6102PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL;
6103PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL;
6104PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
6105PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL;
6106PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL;
6107PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL;
6108PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL;
6109PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL;
6110PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL;
6111PFNGLENABLEPROC glad_glEnable = NULL;
6112PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
6113PFNGLENABLEIPROC glad_glEnablei = NULL;
6114PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL;
6115PFNGLENDQUERYPROC glad_glEndQuery = NULL;
6116PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL;
6117PFNGLFENCESYNCPROC glad_glFenceSync = NULL;
6118PFNGLFINISHPROC glad_glFinish = NULL;
6119PFNGLFLUSHPROC glad_glFlush = NULL;
6120PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL;
6121PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL;
6122PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
6123PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL;
6124PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL;
6125PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
6126PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL;
6127PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL;
6128PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
6129PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
6130PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
6131PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL;
6132PFNGLGENQUERIESPROC glad_glGenQueries = NULL;
6133PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
6134PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL;
6135PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
6136PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL;
6137PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL;
6138PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
6139PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
6140PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
6141PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL;
6142PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL;
6143PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL;
6144PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL;
6145PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
6146PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
6147PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL;
6148PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
6149PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL;
6150PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
6151PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL;
6152PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL;
6153PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL;
6154PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL;
6155PFNGLGETERRORPROC glad_glGetError = NULL;
6156PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
6157PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL;
6158PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL;
6159PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
6160PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL;
6161PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL;
6162PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL;
6163PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL;
6164PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
6165PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL;
6166PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL;
6167PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL;
6168PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
6169PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL;
6170PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL;
6171PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL;
6172PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex = NULL;
6173PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation = NULL;
6174PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL;
6175PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL;
6176PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
6177PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL;
6178PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL;
6179PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL;
6180PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL;
6181PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL;
6182PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
6183PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL;
6184PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL;
6185PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL;
6186PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL;
6187PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
6188PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL;
6189PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
6190PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
6191PFNGLGETSTRINGPROC glad_glGetString = NULL;
6192PFNGLGETSTRINGIPROC glad_glGetStringi = NULL;
6193PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL;
6194PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL;
6195PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL;
6196PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL;
6197PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL;
6198PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL;
6199PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
6200PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
6201PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL;
6202PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL;
6203PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL;
6204PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
6205PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
6206PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
6207PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL;
6208PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL;
6209PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL;
6210PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
6211PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL;
6212PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
6213PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
6214PFNGLHINTPROC glad_glHint = NULL;
6215PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL;
6216PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL;
6217PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
6218PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
6219PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL;
6220PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
6221PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
6222PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL;
6223PFNGLISQUERYPROC glad_glIsQuery = NULL;
6224PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
6225PFNGLISSAMPLERPROC glad_glIsSampler = NULL;
6226PFNGLISSHADERPROC glad_glIsShader = NULL;
6227PFNGLISSYNCPROC glad_glIsSync = NULL;
6228PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
6229PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL;
6230PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL;
6231PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
6232PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
6233PFNGLLOGICOPPROC glad_glLogicOp = NULL;
6234PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL;
6235PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL;
6236PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL;
6237PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL;
6238PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL;
6239PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL;
6240PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL;
6241PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL;
6242PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL;
6243PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL;
6244PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv = NULL;
6245PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui = NULL;
6246PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL;
6247PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL;
6248PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL;
6249PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL;
6250PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL;
6251PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL;
6252PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL;
6253PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
6254PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL;
6255PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL;
6256PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL;
6257PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL;
6258PFNGLPOINTSIZEPROC glad_glPointSize = NULL;
6259PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL;
6260PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
6261PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL;
6262PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL;
6263PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL;
6264PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL;
6265PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL;
6266PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL;
6267PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL;
6268PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL;
6269PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL;
6270PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL;
6271PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL;
6272PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL;
6273PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL;
6274PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL;
6275PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL;
6276PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL;
6277PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL;
6278PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL;
6279PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL;
6280PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL;
6281PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL;
6282PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL;
6283PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL;
6284PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL;
6285PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL;
6286PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL;
6287PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL;
6288PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL;
6289PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL;
6290PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL;
6291PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL;
6292PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL;
6293PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL;
6294PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL;
6295PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL;
6296PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL;
6297PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL;
6298PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL;
6299PFNGLREADBUFFERPROC glad_glReadBuffer = NULL;
6300PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
6301PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL;
6302PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
6303PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL;
6304PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL;
6305PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
6306PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL;
6307PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL;
6308PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL;
6309PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL;
6310PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL;
6311PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL;
6312PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL;
6313PFNGLSCISSORPROC glad_glScissor = NULL;
6314PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL;
6315PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL;
6316PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL;
6317PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
6318PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
6319PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
6320PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
6321PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
6322PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
6323PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
6324PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL;
6325PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL;
6326PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL;
6327PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL;
6328PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv = NULL;
6329PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui = NULL;
6330PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL;
6331PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL;
6332PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL;
6333PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL;
6334PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
6335PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL;
6336PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL;
6337PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL;
6338PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL;
6339PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL;
6340PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
6341PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
6342PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
6343PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
6344PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL;
6345PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL;
6346PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL;
6347PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL;
6348PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
6349PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL;
6350PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL;
6351PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
6352PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
6353PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
6354PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
6355PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL;
6356PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL;
6357PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
6358PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
6359PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
6360PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
6361PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL;
6362PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL;
6363PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
6364PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
6365PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
6366PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
6367PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL;
6368PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL;
6369PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
6370PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
6371PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
6372PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
6373PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL;
6374PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL;
6375PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL;
6376PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
6377PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL;
6378PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL;
6379PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
6380PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL;
6381PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL;
6382PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
6383PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL;
6384PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL;
6385PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL;
6386PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
6387PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL;
6388PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
6389PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL;
6390PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL;
6391PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL;
6392PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
6393PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
6394PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL;
6395PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL;
6396PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL;
6397PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL;
6398PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
6399PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
6400PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL;
6401PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL;
6402PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL;
6403PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL;
6404PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
6405PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
6406PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL;
6407PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL;
6408PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL;
6409PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL;
6410PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL;
6411PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL;
6412PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL;
6413PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL;
6414PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL;
6415PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL;
6416PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL;
6417PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL;
6418PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
6419PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
6420PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL;
6421PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL;
6422PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL;
6423PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL;
6424PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL;
6425PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL;
6426PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding = NULL;
6427PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL;
6428PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat = NULL;
6429PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL;
6430PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL;
6431PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL;
6432PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL;
6433PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL;
6434PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL;
6435PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL;
6436PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL;
6437PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL;
6438PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL;
6439PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL;
6440PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL;
6441PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL;
6442PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL;
6443PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL;
6444PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL;
6445PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL;
6446PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL;
6447PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL;
6448PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL;
6449PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL;
6450PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL;
6451PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL;
6452PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL;
6453PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL;
6454PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL;
6455PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL;
6456PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL;
6457PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL;
6458PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL;
6459PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
6460PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor = NULL;
6461PFNGLVERTEXP2UIPROC glad_glVertexP2ui = NULL;
6462PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv = NULL;
6463PFNGLVERTEXP3UIPROC glad_glVertexP3ui = NULL;
6464PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL;
6465PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL;
6466PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL;
6467PFNGLVIEWPORTPROC glad_glViewport = NULL;
6468PFNGLWAITSYNCPROC glad_glWaitSync = NULL;
6469static void load_GL_VERSION_1_0(GLADloadproc load) {
6470 if(!GLAD_GL_VERSION_1_0)
return;
6471 glad_glCullFace = (PFNGLCULLFACEPROC)load(
"glCullFace");
6472 glad_glFrontFace = (PFNGLFRONTFACEPROC)load(
"glFrontFace");
6473 glad_glHint = (PFNGLHINTPROC)load(
"glHint");
6474 glad_glLineWidth = (PFNGLLINEWIDTHPROC)load(
"glLineWidth");
6475 glad_glPointSize = (PFNGLPOINTSIZEPROC)load(
"glPointSize");
6476 glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load(
"glPolygonMode");
6477 glad_glScissor = (PFNGLSCISSORPROC)load(
"glScissor");
6478 glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load(
"glTexParameterf");
6479 glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load(
"glTexParameterfv");
6480 glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load(
"glTexParameteri");
6481 glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load(
"glTexParameteriv");
6482 glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load(
"glTexImage1D");
6483 glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load(
"glTexImage2D");
6484 glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load(
"glDrawBuffer");
6485 glad_glClear = (PFNGLCLEARPROC)load(
"glClear");
6486 glad_glClearColor = (PFNGLCLEARCOLORPROC)load(
"glClearColor");
6487 glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load(
"glClearStencil");
6488 glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load(
"glClearDepth");
6489 glad_glStencilMask = (PFNGLSTENCILMASKPROC)load(
"glStencilMask");
6490 glad_glColorMask = (PFNGLCOLORMASKPROC)load(
"glColorMask");
6491 glad_glDepthMask = (PFNGLDEPTHMASKPROC)load(
"glDepthMask");
6492 glad_glDisable = (PFNGLDISABLEPROC)load(
"glDisable");
6493 glad_glEnable = (PFNGLENABLEPROC)load(
"glEnable");
6494 glad_glFinish = (PFNGLFINISHPROC)load(
"glFinish");
6495 glad_glFlush = (PFNGLFLUSHPROC)load(
"glFlush");
6496 glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load(
"glBlendFunc");
6497 glad_glLogicOp = (PFNGLLOGICOPPROC)load(
"glLogicOp");
6498 glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load(
"glStencilFunc");
6499 glad_glStencilOp = (PFNGLSTENCILOPPROC)load(
"glStencilOp");
6500 glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load(
"glDepthFunc");
6501 glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load(
"glPixelStoref");
6502 glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load(
"glPixelStorei");
6503 glad_glReadBuffer = (PFNGLREADBUFFERPROC)load(
"glReadBuffer");
6504 glad_glReadPixels = (PFNGLREADPIXELSPROC)load(
"glReadPixels");
6505 glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load(
"glGetBooleanv");
6506 glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load(
"glGetDoublev");
6507 glad_glGetError = (PFNGLGETERRORPROC)load(
"glGetError");
6508 glad_glGetFloatv = (PFNGLGETFLOATVPROC)load(
"glGetFloatv");
6509 glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load(
"glGetIntegerv");
6510 glad_glGetString = (PFNGLGETSTRINGPROC)load(
"glGetString");
6511 glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load(
"glGetTexImage");
6512 glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load(
"glGetTexParameterfv");
6513 glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load(
"glGetTexParameteriv");
6514 glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load(
"glGetTexLevelParameterfv");
6515 glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load(
"glGetTexLevelParameteriv");
6516 glad_glIsEnabled = (PFNGLISENABLEDPROC)load(
"glIsEnabled");
6517 glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load(
"glDepthRange");
6518 glad_glViewport = (PFNGLVIEWPORTPROC)load(
"glViewport");
6520static void load_GL_VERSION_1_1(GLADloadproc load) {
6521 if(!GLAD_GL_VERSION_1_1)
return;
6522 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load(
"glDrawArrays");
6523 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load(
"glDrawElements");
6524 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load(
"glPolygonOffset");
6525 glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load(
"glCopyTexImage1D");
6526 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load(
"glCopyTexImage2D");
6527 glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load(
"glCopyTexSubImage1D");
6528 glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load(
"glCopyTexSubImage2D");
6529 glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load(
"glTexSubImage1D");
6530 glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load(
"glTexSubImage2D");
6531 glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load(
"glBindTexture");
6532 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load(
"glDeleteTextures");
6533 glad_glGenTextures = (PFNGLGENTEXTURESPROC)load(
"glGenTextures");
6534 glad_glIsTexture = (PFNGLISTEXTUREPROC)load(
"glIsTexture");
6536static void load_GL_VERSION_1_2(GLADloadproc load) {
6537 if(!GLAD_GL_VERSION_1_2)
return;
6538 glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load(
"glDrawRangeElements");
6539 glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load(
"glTexImage3D");
6540 glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load(
"glTexSubImage3D");
6541 glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load(
"glCopyTexSubImage3D");
6543static void load_GL_VERSION_1_3(GLADloadproc load) {
6544 if(!GLAD_GL_VERSION_1_3)
return;
6545 glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load(
"glActiveTexture");
6546 glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load(
"glSampleCoverage");
6547 glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load(
"glCompressedTexImage3D");
6548 glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load(
"glCompressedTexImage2D");
6549 glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load(
"glCompressedTexImage1D");
6550 glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load(
"glCompressedTexSubImage3D");
6551 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load(
"glCompressedTexSubImage2D");
6552 glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load(
"glCompressedTexSubImage1D");
6553 glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load(
"glGetCompressedTexImage");
6555static void load_GL_VERSION_1_4(GLADloadproc load) {
6556 if(!GLAD_GL_VERSION_1_4)
return;
6557 glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load(
"glBlendFuncSeparate");
6558 glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load(
"glMultiDrawArrays");
6559 glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load(
"glMultiDrawElements");
6560 glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load(
"glPointParameterf");
6561 glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load(
"glPointParameterfv");
6562 glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load(
"glPointParameteri");
6563 glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load(
"glPointParameteriv");
6564 glad_glBlendColor = (PFNGLBLENDCOLORPROC)load(
"glBlendColor");
6565 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load(
"glBlendEquation");
6567static void load_GL_VERSION_1_5(GLADloadproc load) {
6568 if(!GLAD_GL_VERSION_1_5)
return;
6569 glad_glGenQueries = (PFNGLGENQUERIESPROC)load(
"glGenQueries");
6570 glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load(
"glDeleteQueries");
6571 glad_glIsQuery = (PFNGLISQUERYPROC)load(
"glIsQuery");
6572 glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load(
"glBeginQuery");
6573 glad_glEndQuery = (PFNGLENDQUERYPROC)load(
"glEndQuery");
6574 glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load(
"glGetQueryiv");
6575 glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load(
"glGetQueryObjectiv");
6576 glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load(
"glGetQueryObjectuiv");
6577 glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load(
"glBindBuffer");
6578 glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load(
"glDeleteBuffers");
6579 glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load(
"glGenBuffers");
6580 glad_glIsBuffer = (PFNGLISBUFFERPROC)load(
"glIsBuffer");
6581 glad_glBufferData = (PFNGLBUFFERDATAPROC)load(
"glBufferData");
6582 glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load(
"glBufferSubData");
6583 glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load(
"glGetBufferSubData");
6584 glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load(
"glMapBuffer");
6585 glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load(
"glUnmapBuffer");
6586 glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load(
"glGetBufferParameteriv");
6587 glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load(
"glGetBufferPointerv");
6589static void load_GL_VERSION_2_0(GLADloadproc load) {
6590 if(!GLAD_GL_VERSION_2_0)
return;
6591 glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load(
"glBlendEquationSeparate");
6592 glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load(
"glDrawBuffers");
6593 glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load(
"glStencilOpSeparate");
6594 glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load(
"glStencilFuncSeparate");
6595 glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load(
"glStencilMaskSeparate");
6596 glad_glAttachShader = (PFNGLATTACHSHADERPROC)load(
"glAttachShader");
6597 glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load(
"glBindAttribLocation");
6598 glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load(
"glCompileShader");
6599 glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load(
"glCreateProgram");
6600 glad_glCreateShader = (PFNGLCREATESHADERPROC)load(
"glCreateShader");
6601 glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load(
"glDeleteProgram");
6602 glad_glDeleteShader = (PFNGLDELETESHADERPROC)load(
"glDeleteShader");
6603 glad_glDetachShader = (PFNGLDETACHSHADERPROC)load(
"glDetachShader");
6604 glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load(
"glDisableVertexAttribArray");
6605 glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load(
"glEnableVertexAttribArray");
6606 glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load(
"glGetActiveAttrib");
6607 glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load(
"glGetActiveUniform");
6608 glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load(
"glGetAttachedShaders");
6609 glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load(
"glGetAttribLocation");
6610 glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load(
"glGetProgramiv");
6611 glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load(
"glGetProgramInfoLog");
6612 glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load(
"glGetShaderiv");
6613 glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load(
"glGetShaderInfoLog");
6614 glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load(
"glGetShaderSource");
6615 glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load(
"glGetUniformLocation");
6616 glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load(
"glGetUniformfv");
6617 glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load(
"glGetUniformiv");
6618 glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load(
"glGetVertexAttribdv");
6619 glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load(
"glGetVertexAttribfv");
6620 glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load(
"glGetVertexAttribiv");
6621 glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load(
"glGetVertexAttribPointerv");
6622 glad_glIsProgram = (PFNGLISPROGRAMPROC)load(
"glIsProgram");
6623 glad_glIsShader = (PFNGLISSHADERPROC)load(
"glIsShader");
6624 glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load(
"glLinkProgram");
6625 glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load(
"glShaderSource");
6626 glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load(
"glUseProgram");
6627 glad_glUniform1f = (PFNGLUNIFORM1FPROC)load(
"glUniform1f");
6628 glad_glUniform2f = (PFNGLUNIFORM2FPROC)load(
"glUniform2f");
6629 glad_glUniform3f = (PFNGLUNIFORM3FPROC)load(
"glUniform3f");
6630 glad_glUniform4f = (PFNGLUNIFORM4FPROC)load(
"glUniform4f");
6631 glad_glUniform1i = (PFNGLUNIFORM1IPROC)load(
"glUniform1i");
6632 glad_glUniform2i = (PFNGLUNIFORM2IPROC)load(
"glUniform2i");
6633 glad_glUniform3i = (PFNGLUNIFORM3IPROC)load(
"glUniform3i");
6634 glad_glUniform4i = (PFNGLUNIFORM4IPROC)load(
"glUniform4i");
6635 glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load(
"glUniform1fv");
6636 glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load(
"glUniform2fv");
6637 glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load(
"glUniform3fv");
6638 glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load(
"glUniform4fv");
6639 glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load(
"glUniform1iv");
6640 glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load(
"glUniform2iv");
6641 glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load(
"glUniform3iv");
6642 glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load(
"glUniform4iv");
6643 glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load(
"glUniformMatrix2fv");
6644 glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load(
"glUniformMatrix3fv");
6645 glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load(
"glUniformMatrix4fv");
6646 glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load(
"glValidateProgram");
6647 glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load(
"glVertexAttrib1d");
6648 glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load(
"glVertexAttrib1dv");
6649 glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load(
"glVertexAttrib1f");
6650 glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load(
"glVertexAttrib1fv");
6651 glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load(
"glVertexAttrib1s");
6652 glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load(
"glVertexAttrib1sv");
6653 glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load(
"glVertexAttrib2d");
6654 glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load(
"glVertexAttrib2dv");
6655 glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load(
"glVertexAttrib2f");
6656 glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load(
"glVertexAttrib2fv");
6657 glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load(
"glVertexAttrib2s");
6658 glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load(
"glVertexAttrib2sv");
6659 glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load(
"glVertexAttrib3d");
6660 glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load(
"glVertexAttrib3dv");
6661 glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load(
"glVertexAttrib3f");
6662 glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load(
"glVertexAttrib3fv");
6663 glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load(
"glVertexAttrib3s");
6664 glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load(
"glVertexAttrib3sv");
6665 glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load(
"glVertexAttrib4Nbv");
6666 glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load(
"glVertexAttrib4Niv");
6667 glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load(
"glVertexAttrib4Nsv");
6668 glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load(
"glVertexAttrib4Nub");
6669 glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load(
"glVertexAttrib4Nubv");
6670 glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load(
"glVertexAttrib4Nuiv");
6671 glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load(
"glVertexAttrib4Nusv");
6672 glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load(
"glVertexAttrib4bv");
6673 glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load(
"glVertexAttrib4d");
6674 glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load(
"glVertexAttrib4dv");
6675 glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load(
"glVertexAttrib4f");
6676 glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load(
"glVertexAttrib4fv");
6677 glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load(
"glVertexAttrib4iv");
6678 glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load(
"glVertexAttrib4s");
6679 glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load(
"glVertexAttrib4sv");
6680 glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load(
"glVertexAttrib4ubv");
6681 glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load(
"glVertexAttrib4uiv");
6682 glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load(
"glVertexAttrib4usv");
6683 glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load(
"glVertexAttribPointer");
6685static void load_GL_VERSION_2_1(GLADloadproc load) {
6686 if(!GLAD_GL_VERSION_2_1)
return;
6687 glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load(
"glUniformMatrix2x3fv");
6688 glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load(
"glUniformMatrix3x2fv");
6689 glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load(
"glUniformMatrix2x4fv");
6690 glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load(
"glUniformMatrix4x2fv");
6691 glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load(
"glUniformMatrix3x4fv");
6692 glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load(
"glUniformMatrix4x3fv");
6694static void load_GL_VERSION_3_0(GLADloadproc load) {
6695 if(!GLAD_GL_VERSION_3_0)
return;
6696 glad_glColorMaski = (PFNGLCOLORMASKIPROC)load(
"glColorMaski");
6697 glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load(
"glGetBooleani_v");
6698 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load(
"glGetIntegeri_v");
6699 glad_glEnablei = (PFNGLENABLEIPROC)load(
"glEnablei");
6700 glad_glDisablei = (PFNGLDISABLEIPROC)load(
"glDisablei");
6701 glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load(
"glIsEnabledi");
6702 glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load(
"glBeginTransformFeedback");
6703 glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load(
"glEndTransformFeedback");
6704 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load(
"glBindBufferRange");
6705 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load(
"glBindBufferBase");
6706 glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load(
"glTransformFeedbackVaryings");
6707 glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load(
"glGetTransformFeedbackVarying");
6708 glad_glClampColor = (PFNGLCLAMPCOLORPROC)load(
"glClampColor");
6709 glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load(
"glBeginConditionalRender");
6710 glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load(
"glEndConditionalRender");
6711 glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load(
"glVertexAttribIPointer");
6712 glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load(
"glGetVertexAttribIiv");
6713 glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load(
"glGetVertexAttribIuiv");
6714 glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load(
"glVertexAttribI1i");
6715 glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load(
"glVertexAttribI2i");
6716 glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load(
"glVertexAttribI3i");
6717 glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load(
"glVertexAttribI4i");
6718 glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load(
"glVertexAttribI1ui");
6719 glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load(
"glVertexAttribI2ui");
6720 glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load(
"glVertexAttribI3ui");
6721 glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load(
"glVertexAttribI4ui");
6722 glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load(
"glVertexAttribI1iv");
6723 glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load(
"glVertexAttribI2iv");
6724 glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load(
"glVertexAttribI3iv");
6725 glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load(
"glVertexAttribI4iv");
6726 glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load(
"glVertexAttribI1uiv");
6727 glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load(
"glVertexAttribI2uiv");
6728 glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load(
"glVertexAttribI3uiv");
6729 glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load(
"glVertexAttribI4uiv");
6730 glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load(
"glVertexAttribI4bv");
6731 glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load(
"glVertexAttribI4sv");
6732 glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load(
"glVertexAttribI4ubv");
6733 glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load(
"glVertexAttribI4usv");
6734 glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load(
"glGetUniformuiv");
6735 glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load(
"glBindFragDataLocation");
6736 glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load(
"glGetFragDataLocation");
6737 glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load(
"glUniform1ui");
6738 glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load(
"glUniform2ui");
6739 glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load(
"glUniform3ui");
6740 glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load(
"glUniform4ui");
6741 glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load(
"glUniform1uiv");
6742 glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load(
"glUniform2uiv");
6743 glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load(
"glUniform3uiv");
6744 glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load(
"glUniform4uiv");
6745 glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load(
"glTexParameterIiv");
6746 glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load(
"glTexParameterIuiv");
6747 glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load(
"glGetTexParameterIiv");
6748 glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load(
"glGetTexParameterIuiv");
6749 glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load(
"glClearBufferiv");
6750 glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load(
"glClearBufferuiv");
6751 glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load(
"glClearBufferfv");
6752 glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load(
"glClearBufferfi");
6753 glad_glGetStringi = (PFNGLGETSTRINGIPROC)load(
"glGetStringi");
6754 glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load(
"glIsRenderbuffer");
6755 glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load(
"glBindRenderbuffer");
6756 glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load(
"glDeleteRenderbuffers");
6757 glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load(
"glGenRenderbuffers");
6758 glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load(
"glRenderbufferStorage");
6759 glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load(
"glGetRenderbufferParameteriv");
6760 glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load(
"glIsFramebuffer");
6761 glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load(
"glBindFramebuffer");
6762 glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load(
"glDeleteFramebuffers");
6763 glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load(
"glGenFramebuffers");
6764 glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load(
"glCheckFramebufferStatus");
6765 glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load(
"glFramebufferTexture1D");
6766 glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load(
"glFramebufferTexture2D");
6767 glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load(
"glFramebufferTexture3D");
6768 glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load(
"glFramebufferRenderbuffer");
6769 glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load(
"glGetFramebufferAttachmentParameteriv");
6770 glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load(
"glGenerateMipmap");
6771 glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load(
"glBlitFramebuffer");
6772 glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load(
"glRenderbufferStorageMultisample");
6773 glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load(
"glFramebufferTextureLayer");
6774 glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load(
"glMapBufferRange");
6775 glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load(
"glFlushMappedBufferRange");
6776 glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load(
"glBindVertexArray");
6777 glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load(
"glDeleteVertexArrays");
6778 glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load(
"glGenVertexArrays");
6779 glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load(
"glIsVertexArray");
6781static void load_GL_VERSION_3_1(GLADloadproc load) {
6782 if(!GLAD_GL_VERSION_3_1)
return;
6783 glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load(
"glDrawArraysInstanced");
6784 glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load(
"glDrawElementsInstanced");
6785 glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load(
"glTexBuffer");
6786 glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load(
"glPrimitiveRestartIndex");
6787 glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load(
"glCopyBufferSubData");
6788 glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load(
"glGetUniformIndices");
6789 glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load(
"glGetActiveUniformsiv");
6790 glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load(
"glGetActiveUniformName");
6791 glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load(
"glGetUniformBlockIndex");
6792 glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load(
"glGetActiveUniformBlockiv");
6793 glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load(
"glGetActiveUniformBlockName");
6794 glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load(
"glUniformBlockBinding");
6795 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load(
"glBindBufferRange");
6796 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load(
"glBindBufferBase");
6797 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load(
"glGetIntegeri_v");
6799static void load_GL_VERSION_3_2(GLADloadproc load) {
6800 if(!GLAD_GL_VERSION_3_2)
return;
6801 glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load(
"glDrawElementsBaseVertex");
6802 glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load(
"glDrawRangeElementsBaseVertex");
6803 glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load(
"glDrawElementsInstancedBaseVertex");
6804 glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load(
"glMultiDrawElementsBaseVertex");
6805 glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load(
"glProvokingVertex");
6806 glad_glFenceSync = (PFNGLFENCESYNCPROC)load(
"glFenceSync");
6807 glad_glIsSync = (PFNGLISSYNCPROC)load(
"glIsSync");
6808 glad_glDeleteSync = (PFNGLDELETESYNCPROC)load(
"glDeleteSync");
6809 glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load(
"glClientWaitSync");
6810 glad_glWaitSync = (PFNGLWAITSYNCPROC)load(
"glWaitSync");
6811 glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load(
"glGetInteger64v");
6812 glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load(
"glGetSynciv");
6813 glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load(
"glGetInteger64i_v");
6814 glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load(
"glGetBufferParameteri64v");
6815 glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load(
"glFramebufferTexture");
6816 glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load(
"glTexImage2DMultisample");
6817 glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load(
"glTexImage3DMultisample");
6818 glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load(
"glGetMultisamplefv");
6819 glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load(
"glSampleMaski");
6821static void load_GL_VERSION_3_3(GLADloadproc load) {
6822 if(!GLAD_GL_VERSION_3_3)
return;
6823 glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load(
"glBindFragDataLocationIndexed");
6824 glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load(
"glGetFragDataIndex");
6825 glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load(
"glGenSamplers");
6826 glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load(
"glDeleteSamplers");
6827 glad_glIsSampler = (PFNGLISSAMPLERPROC)load(
"glIsSampler");
6828 glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load(
"glBindSampler");
6829 glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load(
"glSamplerParameteri");
6830 glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load(
"glSamplerParameteriv");
6831 glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load(
"glSamplerParameterf");
6832 glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load(
"glSamplerParameterfv");
6833 glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load(
"glSamplerParameterIiv");
6834 glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load(
"glSamplerParameterIuiv");
6835 glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load(
"glGetSamplerParameteriv");
6836 glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load(
"glGetSamplerParameterIiv");
6837 glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load(
"glGetSamplerParameterfv");
6838 glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load(
"glGetSamplerParameterIuiv");
6839 glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load(
"glQueryCounter");
6840 glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load(
"glGetQueryObjecti64v");
6841 glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load(
"glGetQueryObjectui64v");
6842 glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load(
"glVertexAttribDivisor");
6843 glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load(
"glVertexAttribP1ui");
6844 glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load(
"glVertexAttribP1uiv");
6845 glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load(
"glVertexAttribP2ui");
6846 glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load(
"glVertexAttribP2uiv");
6847 glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load(
"glVertexAttribP3ui");
6848 glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load(
"glVertexAttribP3uiv");
6849 glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load(
"glVertexAttribP4ui");
6850 glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load(
"glVertexAttribP4uiv");
6851 glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load(
"glVertexP2ui");
6852 glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load(
"glVertexP2uiv");
6853 glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load(
"glVertexP3ui");
6854 glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load(
"glVertexP3uiv");
6855 glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load(
"glVertexP4ui");
6856 glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load(
"glVertexP4uiv");
6857 glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load(
"glTexCoordP1ui");
6858 glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load(
"glTexCoordP1uiv");
6859 glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load(
"glTexCoordP2ui");
6860 glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load(
"glTexCoordP2uiv");
6861 glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load(
"glTexCoordP3ui");
6862 glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load(
"glTexCoordP3uiv");
6863 glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load(
"glTexCoordP4ui");
6864 glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load(
"glTexCoordP4uiv");
6865 glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load(
"glMultiTexCoordP1ui");
6866 glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load(
"glMultiTexCoordP1uiv");
6867 glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load(
"glMultiTexCoordP2ui");
6868 glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load(
"glMultiTexCoordP2uiv");
6869 glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load(
"glMultiTexCoordP3ui");
6870 glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load(
"glMultiTexCoordP3uiv");
6871 glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load(
"glMultiTexCoordP4ui");
6872 glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load(
"glMultiTexCoordP4uiv");
6873 glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load(
"glNormalP3ui");
6874 glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load(
"glNormalP3uiv");
6875 glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load(
"glColorP3ui");
6876 glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load(
"glColorP3uiv");
6877 glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load(
"glColorP4ui");
6878 glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load(
"glColorP4uiv");
6879 glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load(
"glSecondaryColorP3ui");
6880 glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load(
"glSecondaryColorP3uiv");
6882static int find_extensionsGL(
void) {
6883 if (!get_exts())
return 0;
6889static void find_coreGL(
void) {
6895 int i, major, minor;
6897 const char* version;
6898 const char* prefixes[] = {
6905 version = (
const char*) glGetString(GL_VERSION);
6906 if (!version)
return;
6908 for (i = 0; prefixes[i]; i++) {
6909 const size_t length = strlen(prefixes[i]);
6910 if (strncmp(version, prefixes[i], length) == 0) {
6918 sscanf_s(version,
"%d.%d", &major, &minor);
6920 sscanf(version,
"%d.%d", &major, &minor);
6923 GLVersion.major = major; GLVersion.minor = minor;
6924 max_loaded_major = major; max_loaded_minor = minor;
6925 GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
6926 GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
6927 GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
6928 GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
6929 GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
6930 GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;
6931 GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
6932 GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2;
6933 GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
6934 GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
6935 GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3;
6936 GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3;
6937 if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) {
6938 max_loaded_major = 3;
6939 max_loaded_minor = 3;
6943int gladLoadGLLoader(GLADloadproc load) {
6944 GLVersion.major = 0; GLVersion.minor = 0;
6945 glGetString = (PFNGLGETSTRINGPROC)load(
"glGetString");
6946 if(glGetString == NULL)
return 0;
6947 if(glGetString(GL_VERSION) == NULL)
return 0;
6949 load_GL_VERSION_1_0(load);
6950 load_GL_VERSION_1_1(load);
6951 load_GL_VERSION_1_2(load);
6952 load_GL_VERSION_1_3(load);
6953 load_GL_VERSION_1_4(load);
6954 load_GL_VERSION_1_5(load);
6955 load_GL_VERSION_2_0(load);
6956 load_GL_VERSION_2_1(load);
6957 load_GL_VERSION_3_0(load);
6958 load_GL_VERSION_3_1(load);
6959 load_GL_VERSION_3_2(load);
6960 load_GL_VERSION_3_3(load);
6962 if (!find_extensionsGL())
return 0;
6963 return GLVersion.major != 0 || GLVersion.minor != 0;
6966static void load_GL_ES_VERSION_2_0(GLADloadproc load) {
6967 if(!GLAD_GL_ES_VERSION_2_0)
return;
6968 glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load(
"glActiveTexture");
6969 glad_glAttachShader = (PFNGLATTACHSHADERPROC)load(
"glAttachShader");
6970 glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load(
"glBindAttribLocation");
6971 glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load(
"glBindBuffer");
6972 glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load(
"glBindFramebuffer");
6973 glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load(
"glBindRenderbuffer");
6974 glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load(
"glBindTexture");
6975 glad_glBlendColor = (PFNGLBLENDCOLORPROC)load(
"glBlendColor");
6976 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load(
"glBlendEquation");
6977 glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load(
"glBlendEquationSeparate");
6978 glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load(
"glBlendFunc");
6979 glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load(
"glBlendFuncSeparate");
6980 glad_glBufferData = (PFNGLBUFFERDATAPROC)load(
"glBufferData");
6981 glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load(
"glBufferSubData");
6982 glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load(
"glCheckFramebufferStatus");
6983 glad_glClear = (PFNGLCLEARPROC)load(
"glClear");
6984 glad_glClearColor = (PFNGLCLEARCOLORPROC)load(
"glClearColor");
6985 glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load(
"glClearDepthf");
6986 glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load(
"glClearStencil");
6987 glad_glColorMask = (PFNGLCOLORMASKPROC)load(
"glColorMask");
6988 glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load(
"glCompileShader");
6989 glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load(
"glCompressedTexImage2D");
6990 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load(
"glCompressedTexSubImage2D");
6991 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load(
"glCopyTexImage2D");
6992 glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load(
"glCopyTexSubImage2D");
6993 glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load(
"glCreateProgram");
6994 glad_glCreateShader = (PFNGLCREATESHADERPROC)load(
"glCreateShader");
6995 glad_glCullFace = (PFNGLCULLFACEPROC)load(
"glCullFace");
6996 glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load(
"glDeleteBuffers");
6997 glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load(
"glDeleteFramebuffers");
6998 glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load(
"glDeleteProgram");
6999 glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load(
"glDeleteRenderbuffers");
7000 glad_glDeleteShader = (PFNGLDELETESHADERPROC)load(
"glDeleteShader");
7001 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load(
"glDeleteTextures");
7002 glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load(
"glDepthFunc");
7003 glad_glDepthMask = (PFNGLDEPTHMASKPROC)load(
"glDepthMask");
7004 glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load(
"glDepthRangef");
7005 glad_glDetachShader = (PFNGLDETACHSHADERPROC)load(
"glDetachShader");
7006 glad_glDisable = (PFNGLDISABLEPROC)load(
"glDisable");
7007 glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load(
"glDisableVertexAttribArray");
7008 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load(
"glDrawArrays");
7009 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load(
"glDrawElements");
7010 glad_glEnable = (PFNGLENABLEPROC)load(
"glEnable");
7011 glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load(
"glEnableVertexAttribArray");
7012 glad_glFinish = (PFNGLFINISHPROC)load(
"glFinish");
7013 glad_glFlush = (PFNGLFLUSHPROC)load(
"glFlush");
7014 glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load(
"glFramebufferRenderbuffer");
7015 glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load(
"glFramebufferTexture2D");
7016 glad_glFrontFace = (PFNGLFRONTFACEPROC)load(
"glFrontFace");
7017 glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load(
"glGenBuffers");
7018 glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load(
"glGenerateMipmap");
7019 glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load(
"glGenFramebuffers");
7020 glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load(
"glGenRenderbuffers");
7021 glad_glGenTextures = (PFNGLGENTEXTURESPROC)load(
"glGenTextures");
7022 glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load(
"glGetActiveAttrib");
7023 glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load(
"glGetActiveUniform");
7024 glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load(
"glGetAttachedShaders");
7025 glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load(
"glGetAttribLocation");
7026 glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load(
"glGetBooleanv");
7027 glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load(
"glGetBufferParameteriv");
7028 glad_glGetError = (PFNGLGETERRORPROC)load(
"glGetError");
7029 glad_glGetFloatv = (PFNGLGETFLOATVPROC)load(
"glGetFloatv");
7030 glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load(
"glGetFramebufferAttachmentParameteriv");
7031 glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load(
"glGetIntegerv");
7032 glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load(
"glGetProgramiv");
7033 glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load(
"glGetProgramInfoLog");
7034 glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load(
"glGetRenderbufferParameteriv");
7035 glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load(
"glGetShaderiv");
7036 glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load(
"glGetShaderInfoLog");
7037 glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load(
"glGetShaderPrecisionFormat");
7038 glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load(
"glGetShaderSource");
7039 glad_glGetString = (PFNGLGETSTRINGPROC)load(
"glGetString");
7040 glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load(
"glGetTexParameterfv");
7041 glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load(
"glGetTexParameteriv");
7042 glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load(
"glGetUniformfv");
7043 glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load(
"glGetUniformiv");
7044 glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load(
"glGetUniformLocation");
7045 glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load(
"glGetVertexAttribfv");
7046 glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load(
"glGetVertexAttribiv");
7047 glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load(
"glGetVertexAttribPointerv");
7048 glad_glHint = (PFNGLHINTPROC)load(
"glHint");
7049 glad_glIsBuffer = (PFNGLISBUFFERPROC)load(
"glIsBuffer");
7050 glad_glIsEnabled = (PFNGLISENABLEDPROC)load(
"glIsEnabled");
7051 glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load(
"glIsFramebuffer");
7052 glad_glIsProgram = (PFNGLISPROGRAMPROC)load(
"glIsProgram");
7053 glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load(
"glIsRenderbuffer");
7054 glad_glIsShader = (PFNGLISSHADERPROC)load(
"glIsShader");
7055 glad_glIsTexture = (PFNGLISTEXTUREPROC)load(
"glIsTexture");
7056 glad_glLineWidth = (PFNGLLINEWIDTHPROC)load(
"glLineWidth");
7057 glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load(
"glLinkProgram");
7058 glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load(
"glPixelStorei");
7059 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load(
"glPolygonOffset");
7060 glad_glReadPixels = (PFNGLREADPIXELSPROC)load(
"glReadPixels");
7061 glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load(
"glReleaseShaderCompiler");
7062 glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load(
"glRenderbufferStorage");
7063 glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load(
"glSampleCoverage");
7064 glad_glScissor = (PFNGLSCISSORPROC)load(
"glScissor");
7065 glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load(
"glShaderBinary");
7066 glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load(
"glShaderSource");
7067 glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load(
"glStencilFunc");
7068 glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load(
"glStencilFuncSeparate");
7069 glad_glStencilMask = (PFNGLSTENCILMASKPROC)load(
"glStencilMask");
7070 glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load(
"glStencilMaskSeparate");
7071 glad_glStencilOp = (PFNGLSTENCILOPPROC)load(
"glStencilOp");
7072 glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load(
"glStencilOpSeparate");
7073 glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load(
"glTexImage2D");
7074 glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load(
"glTexParameterf");
7075 glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load(
"glTexParameterfv");
7076 glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load(
"glTexParameteri");
7077 glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load(
"glTexParameteriv");
7078 glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load(
"glTexSubImage2D");
7079 glad_glUniform1f = (PFNGLUNIFORM1FPROC)load(
"glUniform1f");
7080 glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load(
"glUniform1fv");
7081 glad_glUniform1i = (PFNGLUNIFORM1IPROC)load(
"glUniform1i");
7082 glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load(
"glUniform1iv");
7083 glad_glUniform2f = (PFNGLUNIFORM2FPROC)load(
"glUniform2f");
7084 glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load(
"glUniform2fv");
7085 glad_glUniform2i = (PFNGLUNIFORM2IPROC)load(
"glUniform2i");
7086 glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load(
"glUniform2iv");
7087 glad_glUniform3f = (PFNGLUNIFORM3FPROC)load(
"glUniform3f");
7088 glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load(
"glUniform3fv");
7089 glad_glUniform3i = (PFNGLUNIFORM3IPROC)load(
"glUniform3i");
7090 glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load(
"glUniform3iv");
7091 glad_glUniform4f = (PFNGLUNIFORM4FPROC)load(
"glUniform4f");
7092 glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load(
"glUniform4fv");
7093 glad_glUniform4i = (PFNGLUNIFORM4IPROC)load(
"glUniform4i");
7094 glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load(
"glUniform4iv");
7095 glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load(
"glUniformMatrix2fv");
7096 glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load(
"glUniformMatrix3fv");
7097 glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load(
"glUniformMatrix4fv");
7098 glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load(
"glUseProgram");
7099 glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load(
"glValidateProgram");
7100 glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load(
"glVertexAttrib1f");
7101 glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load(
"glVertexAttrib1fv");
7102 glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load(
"glVertexAttrib2f");
7103 glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load(
"glVertexAttrib2fv");
7104 glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load(
"glVertexAttrib3f");
7105 glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load(
"glVertexAttrib3fv");
7106 glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load(
"glVertexAttrib4f");
7107 glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load(
"glVertexAttrib4fv");
7108 glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load(
"glVertexAttribPointer");
7109 glad_glViewport = (PFNGLVIEWPORTPROC)load(
"glViewport");
7111static void load_GL_ES_VERSION_3_0(GLADloadproc load) {
7112 if(!GLAD_GL_ES_VERSION_3_0)
return;
7113 glad_glReadBuffer = (PFNGLREADBUFFERPROC)load(
"glReadBuffer");
7114 glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load(
"glDrawRangeElements");
7115 glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load(
"glTexImage3D");
7116 glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load(
"glTexSubImage3D");
7117 glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load(
"glCopyTexSubImage3D");
7118 glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load(
"glCompressedTexImage3D");
7119 glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load(
"glCompressedTexSubImage3D");
7120 glad_glGenQueries = (PFNGLGENQUERIESPROC)load(
"glGenQueries");
7121 glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load(
"glDeleteQueries");
7122 glad_glIsQuery = (PFNGLISQUERYPROC)load(
"glIsQuery");
7123 glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load(
"glBeginQuery");
7124 glad_glEndQuery = (PFNGLENDQUERYPROC)load(
"glEndQuery");
7125 glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load(
"glGetQueryiv");
7126 glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load(
"glGetQueryObjectuiv");
7127 glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load(
"glUnmapBuffer");
7128 glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load(
"glGetBufferPointerv");
7129 glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load(
"glDrawBuffers");
7130 glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load(
"glUniformMatrix2x3fv");
7131 glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load(
"glUniformMatrix3x2fv");
7132 glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load(
"glUniformMatrix2x4fv");
7133 glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load(
"glUniformMatrix4x2fv");
7134 glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load(
"glUniformMatrix3x4fv");
7135 glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load(
"glUniformMatrix4x3fv");
7136 glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load(
"glBlitFramebuffer");
7137 glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load(
"glRenderbufferStorageMultisample");
7138 glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load(
"glFramebufferTextureLayer");
7139 glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load(
"glMapBufferRange");
7140 glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load(
"glFlushMappedBufferRange");
7141 glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load(
"glBindVertexArray");
7142 glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load(
"glDeleteVertexArrays");
7143 glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load(
"glGenVertexArrays");
7144 glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load(
"glIsVertexArray");
7145 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load(
"glGetIntegeri_v");
7146 glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load(
"glBeginTransformFeedback");
7147 glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load(
"glEndTransformFeedback");
7148 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load(
"glBindBufferRange");
7149 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load(
"glBindBufferBase");
7150 glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load(
"glTransformFeedbackVaryings");
7151 glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load(
"glGetTransformFeedbackVarying");
7152 glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load(
"glVertexAttribIPointer");
7153 glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load(
"glGetVertexAttribIiv");
7154 glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load(
"glGetVertexAttribIuiv");
7155 glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load(
"glVertexAttribI4i");
7156 glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load(
"glVertexAttribI4ui");
7157 glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load(
"glVertexAttribI4iv");
7158 glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load(
"glVertexAttribI4uiv");
7159 glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load(
"glGetUniformuiv");
7160 glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load(
"glGetFragDataLocation");
7161 glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load(
"glUniform1ui");
7162 glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load(
"glUniform2ui");
7163 glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load(
"glUniform3ui");
7164 glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load(
"glUniform4ui");
7165 glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load(
"glUniform1uiv");
7166 glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load(
"glUniform2uiv");
7167 glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load(
"glUniform3uiv");
7168 glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load(
"glUniform4uiv");
7169 glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load(
"glClearBufferiv");
7170 glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load(
"glClearBufferuiv");
7171 glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load(
"glClearBufferfv");
7172 glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load(
"glClearBufferfi");
7173 glad_glGetStringi = (PFNGLGETSTRINGIPROC)load(
"glGetStringi");
7174 glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load(
"glCopyBufferSubData");
7175 glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load(
"glGetUniformIndices");
7176 glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load(
"glGetActiveUniformsiv");
7177 glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load(
"glGetUniformBlockIndex");
7178 glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load(
"glGetActiveUniformBlockiv");
7179 glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load(
"glGetActiveUniformBlockName");
7180 glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load(
"glUniformBlockBinding");
7181 glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load(
"glDrawArraysInstanced");
7182 glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load(
"glDrawElementsInstanced");
7183 glad_glFenceSync = (PFNGLFENCESYNCPROC)load(
"glFenceSync");
7184 glad_glIsSync = (PFNGLISSYNCPROC)load(
"glIsSync");
7185 glad_glDeleteSync = (PFNGLDELETESYNCPROC)load(
"glDeleteSync");
7186 glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load(
"glClientWaitSync");
7187 glad_glWaitSync = (PFNGLWAITSYNCPROC)load(
"glWaitSync");
7188 glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load(
"glGetInteger64v");
7189 glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load(
"glGetSynciv");
7190 glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load(
"glGetInteger64i_v");
7191 glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load(
"glGetBufferParameteri64v");
7192 glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load(
"glGenSamplers");
7193 glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load(
"glDeleteSamplers");
7194 glad_glIsSampler = (PFNGLISSAMPLERPROC)load(
"glIsSampler");
7195 glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load(
"glBindSampler");
7196 glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load(
"glSamplerParameteri");
7197 glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load(
"glSamplerParameteriv");
7198 glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load(
"glSamplerParameterf");
7199 glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load(
"glSamplerParameterfv");
7200 glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load(
"glGetSamplerParameteriv");
7201 glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load(
"glGetSamplerParameterfv");
7202 glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load(
"glVertexAttribDivisor");
7203 glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load(
"glBindTransformFeedback");
7204 glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load(
"glDeleteTransformFeedbacks");
7205 glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load(
"glGenTransformFeedbacks");
7206 glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load(
"glIsTransformFeedback");
7207 glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load(
"glPauseTransformFeedback");
7208 glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load(
"glResumeTransformFeedback");
7209 glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load(
"glGetProgramBinary");
7210 glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load(
"glProgramBinary");
7211 glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load(
"glProgramParameteri");
7212 glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load(
"glInvalidateFramebuffer");
7213 glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load(
"glInvalidateSubFramebuffer");
7214 glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load(
"glTexStorage2D");
7215 glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load(
"glTexStorage3D");
7216 glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load(
"glGetInternalformativ");
7218static void load_GL_ES_VERSION_3_1(GLADloadproc load) {
7219 if(!GLAD_GL_ES_VERSION_3_1)
return;
7220 glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)load(
"glDispatchCompute");
7221 glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)load(
"glDispatchComputeIndirect");
7222 glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load(
"glDrawArraysIndirect");
7223 glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load(
"glDrawElementsIndirect");
7224 glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)load(
"glFramebufferParameteri");
7225 glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)load(
"glGetFramebufferParameteriv");
7226 glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)load(
"glGetProgramInterfaceiv");
7227 glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)load(
"glGetProgramResourceIndex");
7228 glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)load(
"glGetProgramResourceName");
7229 glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)load(
"glGetProgramResourceiv");
7230 glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)load(
"glGetProgramResourceLocation");
7231 glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load(
"glUseProgramStages");
7232 glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load(
"glActiveShaderProgram");
7233 glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load(
"glCreateShaderProgramv");
7234 glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load(
"glBindProgramPipeline");
7235 glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load(
"glDeleteProgramPipelines");
7236 glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load(
"glGenProgramPipelines");
7237 glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load(
"glIsProgramPipeline");
7238 glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load(
"glGetProgramPipelineiv");
7239 glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load(
"glProgramUniform1i");
7240 glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load(
"glProgramUniform2i");
7241 glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load(
"glProgramUniform3i");
7242 glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load(
"glProgramUniform4i");
7243 glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load(
"glProgramUniform1ui");
7244 glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load(
"glProgramUniform2ui");
7245 glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load(
"glProgramUniform3ui");
7246 glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load(
"glProgramUniform4ui");
7247 glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load(
"glProgramUniform1f");
7248 glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load(
"glProgramUniform2f");
7249 glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load(
"glProgramUniform3f");
7250 glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load(
"glProgramUniform4f");
7251 glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load(
"glProgramUniform1iv");
7252 glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load(
"glProgramUniform2iv");
7253 glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load(
"glProgramUniform3iv");
7254 glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load(
"glProgramUniform4iv");
7255 glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load(
"glProgramUniform1uiv");
7256 glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load(
"glProgramUniform2uiv");
7257 glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load(
"glProgramUniform3uiv");
7258 glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load(
"glProgramUniform4uiv");
7259 glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load(
"glProgramUniform1fv");
7260 glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load(
"glProgramUniform2fv");
7261 glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load(
"glProgramUniform3fv");
7262 glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load(
"glProgramUniform4fv");
7263 glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load(
"glProgramUniformMatrix2fv");
7264 glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load(
"glProgramUniformMatrix3fv");
7265 glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load(
"glProgramUniformMatrix4fv");
7266 glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load(
"glProgramUniformMatrix2x3fv");
7267 glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load(
"glProgramUniformMatrix3x2fv");
7268 glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load(
"glProgramUniformMatrix2x4fv");
7269 glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load(
"glProgramUniformMatrix4x2fv");
7270 glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load(
"glProgramUniformMatrix3x4fv");
7271 glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load(
"glProgramUniformMatrix4x3fv");
7272 glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load(
"glValidateProgramPipeline");
7273 glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load(
"glGetProgramPipelineInfoLog");
7274 glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)load(
"glBindImageTexture");
7275 glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load(
"glGetBooleani_v");
7276 glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)load(
"glMemoryBarrier");
7277 glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)load(
"glMemoryBarrierByRegion");
7278 glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load(
"glTexStorage2DMultisample");
7279 glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load(
"glGetMultisamplefv");
7280 glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load(
"glSampleMaski");
7281 glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load(
"glGetTexLevelParameteriv");
7282 glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load(
"glGetTexLevelParameterfv");
7283 glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load(
"glBindVertexBuffer");
7284 glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load(
"glVertexAttribFormat");
7285 glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load(
"glVertexAttribIFormat");
7286 glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load(
"glVertexAttribBinding");
7287 glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load(
"glVertexBindingDivisor");
7289static int find_extensionsGLES2(
void) {
7290 if (!get_exts())
return 0;
7296static void find_coreGLES2(
void) {
7302 int i, major, minor;
7304 const char* version;
7305 const char* prefixes[] = {
7312 version = (
const char*) glGetString(GL_VERSION);
7313 if (!version)
return;
7315 for (i = 0; prefixes[i]; i++) {
7316 const size_t length = strlen(prefixes[i]);
7317 if (strncmp(version, prefixes[i], length) == 0) {
7325 sscanf_s(version,
"%d.%d", &major, &minor);
7327 sscanf(version,
"%d.%d", &major, &minor);
7330 GLVersion.major = major; GLVersion.minor = minor;
7331 max_loaded_major = major; max_loaded_minor = minor;
7332 GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
7333 GLAD_GL_ES_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
7334 GLAD_GL_ES_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
7335 if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 1)) {
7336 max_loaded_major = 3;
7337 max_loaded_minor = 1;
7341int gladLoadGLES2Loader(GLADloadproc load) {
7342 GLVersion.major = 0; GLVersion.minor = 0;
7343 glGetString = (PFNGLGETSTRINGPROC)load(
"glGetString");
7344 if(glGetString == NULL)
return 0;
7345 if(glGetString(GL_VERSION) == NULL)
return 0;
7347 load_GL_ES_VERSION_2_0(load);
7348 load_GL_ES_VERSION_3_0(load);
7349 load_GL_ES_VERSION_3_1(load);
7351 if (!find_extensionsGLES2())
return 0;
7352 return GLVersion.major != 0 || GLVersion.minor != 0;
7357 #pragma GCC diagnostic pop
uint64_t pgl_get_texture_id(const pgl_texture_t *texture)
Return the implementation specific texture ID.
void pgl_push_state(pgl_ctx_t *ctx)
Pushes the current state onto the state stack, allowing it to be restored later.
void pgl_print_info()
Prints system info.
pgl_blend_eq_t
Blend equations.
Definition pico_gl.h:168
@ PGL_EQ_COUNT
Definition pico_gl.h:174
@ PGL_FUNC_REVERSE_SUBTRACT
result = dst * dst_factor - src * src_factor
Definition pico_gl.h:171
@ PGL_MIN
result = min(src, dst)
Definition pico_gl.h:172
@ PGL_FUNC_ADD
result = src * src_factor + dst * dst_factor
Definition pico_gl.h:169
@ PGL_FUNC_SUBTRACT
result = src * src_factor - dst * dst_factor
Definition pico_gl.h:170
@ PGL_MAX
result = max(src, dst)
Definition pico_gl.h:173
void pgl_get_texture_size(const pgl_texture_t *texture, int *w, int *h)
Gets texture size.
void pgl_reset_projection(pgl_ctx_t *ctx)
Resets the context's project to the identity matrix.
struct pgl_shader_t pgl_shader_t
Contains shader data/state.
Definition pico_gl.h:268
pgl_texture_t * pgl_texture_from_bitmap(pgl_ctx_t *ctx, pgl_format_t fmt, bool srgb, int32_t w, int32_t h, bool smooth, bool repeat, const uint8_t *bitmap)
Creates a texture from a bitmap.
void pgl_destroy_texture(pgl_texture_t *texture)
Destroys a texture.
void pgl_set_transform(pgl_ctx_t *ctx, const pgl_m4_t matrix)
Sets the context's global tranformation matrix.
void pgl_bind_shader(pgl_ctx_t *ctx, pgl_shader_t *shader)
Activates a shader program for rendering.
float pgl_m2_t[4]
2x2 floating point matrix
Definition pico_gl.h:248
void pgl_draw_array(pgl_ctx_t *ctx, pgl_primitive_t primitive, const pgl_vertex_t *vertices, pgl_size_t count, pgl_texture_t *texture, pgl_shader_t *shader)
int32_t pgl_v2i_t[2]
2D integer vector
Definition pico_gl.h:233
pgl_texture_t * pgl_create_texture(pgl_ctx_t *ctx, bool target, pgl_format_t fmt, bool srgb, int32_t w, int32_t h, bool smooth, bool repeat)
Creates an empty texture.
void pgl_set_m4(pgl_shader_t *shader, const char *name, const pgl_m4_t matrix)
Sets a 4x4 floating point matrix.
uint64_t pgl_get_shader_id(const pgl_shader_t *shader)
Return the implementation specific shader ID.
void pgl_draw_indexed_array(pgl_ctx_t *ctx, pgl_primitive_t primitive, const pgl_vertex_t *vertices, pgl_size_t vertex_count, const uint32_t *indices, pgl_size_t index_count, pgl_texture_t *texture, pgl_shader_t *shader)
int pgl_set_render_target(pgl_ctx_t *ctx, pgl_texture_t *texture)
Draw to texture.
pgl_version_t
OpenGL versions used by the library.
Definition pico_gl.h:127
@ PGL_GLES3
Definition pico_gl.h:129
@ PGL_GL3
Definition pico_gl.h:128
@ PGL_VERSION_UNSUPPORTED
Definition pico_gl.h:130
pgl_version_t pgl_get_version()
Returns the current OpenGL version in use by the library.
void pgl_set_3i(pgl_shader_t *shader, const char *name, int32_t a, int32_t b, int32_t c)
Sets a 3D integer uniform.
int pgl_upload_texture(pgl_ctx_t *ctx, pgl_texture_t *texture, int32_t w, int32_t h, const uint8_t *bitmap)
Uploads data from a bitmap into a texture.
void pgl_reset_blend_mode(pgl_ctx_t *ctx)
Resets the blend mode to standard alpha blending.
void pgl_set_projection_3d(pgl_ctx_t *ctx, const pgl_m3_t matrix)
3D variant of pgl_set_projection
void pgl_get_max_texture_size(int *w, int *h)
pgl_blend_factor_t
Blend factors.
Definition pico_gl.h:150
@ PGL_SRC_ALPHA
(src.a, src.a, src.a, src.a)
Definition pico_gl.h:157
@ PGL_ONE_MINUS_DST_COLOR
(1, 1, 1, 1) - (dst.r, dst.g, dst.b, dst.a)
Definition pico_gl.h:156
@ PGL_ZERO
(0, 0, 0, 0)
Definition pico_gl.h:151
@ PGL_FACTOR_COUNT
Definition pico_gl.h:161
@ PGL_DST_COLOR
(dst.r, dst.g, dst.b, dst.a)
Definition pico_gl.h:155
@ PGL_ONE_MINUS_SRC_COLOR
(1, 1, 1, 1) - (src.r, src.g, src.b, src.a)
Definition pico_gl.h:154
@ PGL_ONE_MINUS_SRC_ALPHA
(1, 1, 1, 1) - (src.a, src.a, src.a, src.a)
Definition pico_gl.h:158
@ PGL_SRC_COLOR
(src.r, src.g, src.b, src.a)
Definition pico_gl.h:153
@ PGL_DST_ALPHA
(dst.a, dst.a, dst.a, dst.a)
Definition pico_gl.h:159
@ PGL_ONE
(1, 1, 1, 1)
Definition pico_gl.h:152
@ PGL_ONE_MINUS_DST_ALPHA
(1, 1, 1, 1) - (dst.a, dst.a, dst.a, dst.a)
Definition pico_gl.h:160
float pgl_v2f_t[2]
2D floating point vector
Definition pico_gl.h:218
void pgl_destroy_shader(pgl_shader_t *shader)
Destroys a shader program.
void pgl_set_1i(pgl_shader_t *shader, const char *name, int32_t a)
Sets an integer uniform.
void pgl_set_v4i(pgl_shader_t *shader, const char *name, const pgl_v4i_t vec)
Sets a 4D integer uniform by vector.
void pgl_set_a2f(pgl_shader_t *shader, const char *name, const pgl_v2f_t array[], pgl_size_t count)
Sends an array of 2D floating point vectors.
pgl_error_t pgl_get_error(pgl_ctx_t *ctx)
Returns the current error code.
pgl_ctx_t * pgl_create_context(uint32_t w, uint32_t h, bool depth, uint32_t samples, bool srgb, void *mem_ctx)
Creates an instance of the renderer.
void pgl_set_transform_3d(pgl_ctx_t *ctx, const pgl_m3_t matrix)
3D variant of pgl_set_transform
void pgl_set_v4f(pgl_shader_t *shader, const char *name, const pgl_v4f_t vec)
Sets a 4D floating point uniform by vector.
void pgl_set_4i(pgl_shader_t *shader, const char *name, int32_t a, int32_t b, int32_t c, int32_t d)
Sets a 4D integer uniform.
void pgl_set_m3(pgl_shader_t *shader, const char *name, const pgl_m3_t matrix)
Sets a 3x3 floating point matrix.
const char * pgl_get_error_str(pgl_error_t code)
Returns the string associated with the specified error code.
void pgl_set_a3f(pgl_shader_t *shader, const char *name, const pgl_v3f_t array[], pgl_size_t count)
Sends an array of 3D floating point vectors.
void pgl_sub_buffer_data(pgl_ctx_t *ctx, pgl_buffer_t *buffer, const pgl_vertex_t *vertices, pgl_size_t count, pgl_size_t offset)
Substitutes the data in a buffer with new data.
void pgl_draw_buffer(pgl_ctx_t *ctx, const pgl_buffer_t *buffer, pgl_size_t start, pgl_size_t count, pgl_texture_t *texture, pgl_shader_t *shader)
Draw a previously created buffer.
pgl_shader_t * pgl_create_shader(pgl_ctx_t *ctx, const char *vert_src, const char *frag_src)
Creates a shader program.
void pgl_set_a1f(pgl_shader_t *shader, const char *name, const float array[], pgl_size_t count)
Sends an array of floating point numbers.
void pgl_set_blend_mode(pgl_ctx_t *ctx, pgl_blend_mode_t mode)
Set the blending mode.
void pgl_set_s2d(pgl_shader_t *shader, const char *name, int32_t value)
Sets a 2D sampler uniform.
void pgl_set_bool(pgl_shader_t *shader, const char *name, bool value)
Sets a boolean uniform.
int32_t pgl_v4i_t[4]
4D integer vector
Definition pico_gl.h:243
void pgl_set_4f(pgl_shader_t *shader, const char *name, float x, float y, float z, float w)
Sets a 4D floating point uniform.
void pgl_clear_stack(pgl_ctx_t *ctx)
Removes all states from the state stack.
void pgl_set_2f(pgl_shader_t *shader, const char *name, float x, float y)
Sets a 2D floating point uniform.
int pgl_generate_mipmap(pgl_texture_t *texture, bool linear)
Generate mipmaps for the specified texture.
void pgl_update_texture(pgl_ctx_t *ctx, pgl_texture_t *texture, int x, int y, int w, int h, const uint8_t *bitmap)
Updates a region of an existing texture.
float pgl_v3f_t[3]
3D floating point vector
Definition pico_gl.h:223
void pgl_set_m2(pgl_shader_t *shader, const char *name, const pgl_m2_t matrix)
Sets a 2x2 floating point matrix.
void pgl_bind_texture(pgl_ctx_t *ctx, pgl_texture_t *texture)
Activates a texture for rendering.
float pgl_m4_t[16]
4x4 floating point matrix
Definition pico_gl.h:258
void pgl_resize(pgl_ctx_t *ctx, uint32_t w, uint32_t h, bool reset_vp)
Resizes the drawable dimensions.
void pgl_destroy_context(pgl_ctx_t *ctx)
Destroys a renderer context, releasing it's resources.
struct pgl_buffer_t pgl_buffer_t
Contains vertex buffer data/state.
Definition pico_gl.h:278
void pgl_set_v2i(pgl_shader_t *shader, const char *name, const pgl_v2i_t vec)
Sets a 2D integer uniform by vector.
void pgl_set_viewport(pgl_ctx_t *ctx, int32_t x, int32_t y, int32_t w, int32_t h)
Sets the location and dimensions of the rendering viewport.
void pgl_set_a4f(pgl_shader_t *shader, const char *name, const pgl_v4f_t array[], pgl_size_t count)
Sends an array of 4D floating point vectors.
void pgl_set_line_width(pgl_ctx_t *ctx, float line_width)
Sets the line primitive width.
int pgl_global_init(pgl_loader_fn loader_fp, bool gles)
Loads all supported OpenGL functions via GLAD.
void pgl_reset_transform(pgl_ctx_t *ctx)
Resets the context's transform to the identity matrix.
void pgl_set_1f(pgl_shader_t *shader, const char *name, float x)
Sets an floating point uniform.
uint32_t pgl_size_t
OpenGL compatible size type.
Definition pico_gl.h:98
struct pgl_texture_t pgl_texture_t
Contains texture data/state.
Definition pico_gl.h:273
void pgl_set_transpose(pgl_ctx_t *ctx, bool enabled)
Turns matrix transposition on/off.
int32_t pgl_v3i_t[3]
3D integer vector
Definition pico_gl.h:238
float pgl_m3_t[9]
3x3 floating point matrix
Definition pico_gl.h:253
void pgl_reset_line_width(pgl_ctx_t *ctx)
Resets the line width to 1.0f.
void pgl_set_v3i(pgl_shader_t *shader, const char *name, const pgl_v3i_t vec)
Sets a 3D integer uniform by vector.
pgl_format_t
Pixel formats.
Definition pico_gl.h:137
@ PGL_RGB
(red, green, blue, 1)
Definition pico_gl.h:139
@ PGL_RGBA
(red, green, blue, alpha)
Definition pico_gl.h:140
@ PGL_FORMAT_COUNT
Definition pico_gl.h:143
@ PGL_BGRA
(blue, green, red, alpha)
Definition pico_gl.h:142
@ PGL_RED
(red, 0, 0, 1)
Definition pico_gl.h:138
@ PGL_BGR
(blue, green, red, 1)
Definition pico_gl.h:141
void pgl_reset_viewport(pgl_ctx_t *ctx)
Reset the viewport to the drawable dimensions of the context.
void pgl_set_v3f(pgl_shader_t *shader, const char *name, const pgl_v3f_t vec)
Sets a 3D floating point uniform by vector.
float pgl_v4f_t[4]
4D floating point vector
Definition pico_gl.h:228
void pgl_destroy_buffer(pgl_buffer_t *buffer)
Destroys a previously created buffer.
pgl_error_t
Runtime error codes.
Definition pico_gl.h:104
@ PGL_FRAMEBUFFER_INCOMPLETE
Framebuffer is incomplete.
Definition pico_gl.h:111
@ PGL_INVALID_VALUE
Invalid value.
Definition pico_gl.h:107
@ PGL_NO_ERROR
No error.
Definition pico_gl.h:105
@ PGL_OUT_OF_MEMORY
Out of memory.
Definition pico_gl.h:109
@ PGL_SHADER_LINKING_ERROR
Shader linking error.
Definition pico_gl.h:113
@ PGL_INVALID_FRAMEBUFFER_OPERATION
Invalid framebuffer operation.
Definition pico_gl.h:110
@ PGL_INVALID_ATTRIBUTE_COUNT
Invalid number of attributes.
Definition pico_gl.h:116
@ PGL_INVALID_UNIFORM_COUNT
Invalid number of uniforms.
Definition pico_gl.h:117
@ PGL_INVALID_OPERATION
Invalid operation.
Definition pico_gl.h:108
@ PGL_ERROR_COUNT
Definition pico_gl.h:120
@ PGL_INVALID_UNIFORM_NAME
Invalid uniform name.
Definition pico_gl.h:118
@ PGL_INVALID_ENUM
Invalid enumeration value.
Definition pico_gl.h:106
@ PGL_INVALID_TEXTURE_FORMAT
Invalid texture format.
Definition pico_gl.h:115
@ PGL_INVALID_TEXTURE_SIZE
Invalid texture dimensions.
Definition pico_gl.h:114
@ PGL_SHADER_COMPILATION_ERROR
Shader compilation error.
Definition pico_gl.h:112
@ PGL_UNKNOWN_ERROR
Unknown error.
Definition pico_gl.h:119
void pgl_clear(float r, float g, float b, float a)
Clears the framebuffer to the specified color.
void *(* pgl_loader_fn)(const char *name)
Defines an OpenGL (GLAD) function loader.
Definition pico_gl.h:285
pgl_buffer_t * pgl_create_buffer(pgl_ctx_t *ctx, pgl_primitive_t primitive, const pgl_vertex_t *vertices, pgl_size_t count)
Creates a buffer in VRAM to store an array of vertices that can then be rendered without having uploa...
void pgl_reset_state(pgl_ctx_t *ctx)
Resets the current state of the context.
void pgl_pop_state(pgl_ctx_t *ctx)
Pops a state off of the state stack and makes it the current state.
pgl_primitive_t
Drawing primitives.
Definition pico_gl.h:196
@ PGL_TRIANGLE_STRIP
Array of points where every triple forms a triangle.
Definition pico_gl.h:201
@ PGL_TRIANGLES
Each adjacent triple forms an individual triangle.
Definition pico_gl.h:200
@ PGL_LINE_STRIP
Array of points where every pair forms a lines.
Definition pico_gl.h:199
@ PGL_LINES
Each adjacent pair of points forms a line.
Definition pico_gl.h:198
@ PGL_POINTS
Array of points.
Definition pico_gl.h:197
void pgl_set_v2f(pgl_shader_t *shader, const char *name, const pgl_v2f_t vec)
Sets a 2D floating point uniform by vector.
void pgl_set_2i(pgl_shader_t *shader, const char *name, int32_t a, int32_t b)
Sets a 2D integer uniform.
struct pgl_ctx_t pgl_ctx_t
Contains core data/state for an instance of the renderer.
Definition pico_gl.h:263
void pgl_set_3f(pgl_shader_t *shader, const char *name, float x, float y, float z)
Sets a 3D floating point uniform.
void pgl_set_projection(pgl_ctx_t *ctx, const pgl_m4_t matrix)
Sets a context's global projecton matrix.
Blend mode.
Definition pico_gl.h:183
pgl_blend_factor_t alpha_dst
Alpha destination blending factor.
Definition pico_gl.h:188
pgl_blend_eq_t color_eq
Equation for blending colors.
Definition pico_gl.h:186
pgl_blend_factor_t color_dst
Color dsestination blending factor.
Definition pico_gl.h:185
pgl_blend_eq_t alpha_eq
Equation for blending alpha values.
Definition pico_gl.h:189
pgl_blend_factor_t alpha_src
Alpha source blending factor.
Definition pico_gl.h:187
pgl_blend_factor_t color_src
Color source blending factor.
Definition pico_gl.h:184
A vertex describes a point and the data associated with it (color and texture coordinates)
Definition pico_gl.h:209