1 { ============================================================================
3 OpenGL 4.5 - Headertranslation
6 Supported environments and targets :
7 - (Linux) FreePascal (1.9.3 and up)
9 ==============================================================================
11 Copyright (C) DGL-OpenGL-Portteam
15 - Delphi OpenGL Community(DGL) - www.delphigl.com
17 Converted and maintained by DGL's OpenGL-Portteam :
18 - Bergmann89 - http://www.bergmann89.de
20 ==============================================================================
22 You may retrieve the latest version of this file at the Delphi OpenGL
23 Community home page, located at http://www.delphigl.com/
25 The contents of this file are used with permission, subject to
26 the Mozilla Public License Version 1.1 (the "License"); you may
27 not use this file except in compliance with the License. You may
28 obtain a copy of the License at
29 http://www.mozilla.org/MPL/MPL-1.1.html
31 Software distributed under the License is distributed on an
32 "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
33 implied. See the License for the specific language governing
34 rights and limitations under the License.
36 ============================================================================== }
47 {$IFDEF linux} // Linux
51 //check if system is supported and set system dependent constants
61 LIBNAME_OPENGLES = 'libGLESv2.so';
62 LIBNAME_EGL = 'libEGL.so';
65 {$ERROR 'unknown/unsupported system'}
69 { ================================================== OpenGL ES ======================================================= }
85 GLbitfield = Cardinal;
96 PGLclampf = ^GLclampf;
100 PGLushort = ^GLushort;
104 PGLuint64 = ^GLuint64;
109 PGLbitfield = ^GLbitfield;
111 PGLboolean = ^GLboolean;
114 PGLdouble = ^GLdouble;
120 TGLvectorub2 = array[0..1] of GLubyte;
121 TGLvectorub3 = array[0..2] of GLubyte;
122 TGLvectorub4 = array[0..3] of GLubyte;
124 TGLvectori2 = array[0..1] of GLint;
125 TGLvectori3 = array[0..2] of GLint;
126 TGLvectori4 = array[0..3] of GLint;
128 TGLvectorui2 = array[0..1] of GLuint;
129 TGLvectorui3 = array[0..2] of GLuint;
130 TGLvectorui4 = array[0..3] of GLuint;
132 TGLvectorf2 = array[0..1] of GLfloat;
133 TGLvectorf3 = array[0..2] of GLfloat;
134 TGLvectorf4 = array[0..3] of GLfloat;
136 TGLvectord2 = array[0..1] of GLdouble;
137 TGLvectord3 = array[0..2] of GLdouble;
138 TGLvectord4 = array[0..3] of GLdouble;
140 TGLvectorp2 = array[0..1] of PGLvoid;
141 TGLvectorp3 = array[0..2] of PGLvoid;
142 TGLvectorp4 = array[0..3] of PGLvoid;
145 { ============================================== OpenGL ES 1.0 ======================================================= }
147 GL_DEPTH_BUFFER_BIT = $00000100;
148 GL_STENCIL_BUFFER_BIT = $00000400;
149 GL_COLOR_BUFFER_BIT = $00004000;
158 GL_LINE_LOOP = $0002;
159 GL_LINE_STRIP = $0003;
160 GL_TRIANGLES = $0004;
161 GL_TRIANGLE_STRIP = $0005;
162 GL_TRIANGLE_FAN = $0006;
174 { BlendingFactorDest }
177 GL_SRC_COLOR = $0300;
178 GL_ONE_MINUS_SRC_COLOR = $0301;
179 GL_SRC_ALPHA = $0302;
180 GL_ONE_MINUS_SRC_ALPHA = $0303;
181 GL_DST_ALPHA = $0304;
182 GL_ONE_MINUS_DST_ALPHA = $0305;
184 { BlendingFactorSrc }
187 GL_DST_COLOR = $0306;
188 GL_ONE_MINUS_DST_COLOR = $0307;
189 GL_SRC_ALPHA_SATURATE = $0308;
191 { GL_ONE_MINUS_SRC_ALPHA }
193 { GL_ONE_MINUS_DST_ALPHA }
196 GL_CLIP_PLANE0 = $3000;
197 GL_CLIP_PLANE1 = $3001;
198 GL_CLIP_PLANE2 = $3002;
199 GL_CLIP_PLANE3 = $3003;
200 GL_CLIP_PLANE4 = $3004;
201 GL_CLIP_PLANE5 = $3005;
203 { ColorMaterialFace }
204 { GL_FRONT_AND_BACK }
206 { ColorMaterialParameter }
207 { GL_AMBIENT_AND_DIFFUSE }
217 GL_FRONT_AND_BACK = $0408;
232 GL_TEXTURE_2D = $0DE1;
233 GL_CULL_FACE = $0B44;
234 GL_ALPHA_TEST = $0BC0;
236 GL_COLOR_LOGIC_OP = $0BF2;
238 GL_STENCIL_TEST = $0B90;
239 GL_DEPTH_TEST = $0B71;
248 GL_POINT_SMOOTH = $0B10;
249 GL_LINE_SMOOTH = $0B20;
250 GL_SCISSOR_TEST = $0C11;
251 GL_COLOR_MATERIAL = $0B57;
252 GL_NORMALIZE = $0BA1;
253 GL_RESCALE_NORMAL = $803A;
254 GL_POLYGON_OFFSET_FILL = $8037;
255 GL_VERTEX_ARRAY = $8074;
256 GL_NORMAL_ARRAY = $8075;
257 GL_COLOR_ARRAY = $8076;
258 GL_TEXTURE_COORD_ARRAY = $8078;
259 GL_MULTISAMPLE = $809D;
260 GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
261 GL_SAMPLE_ALPHA_TO_ONE = $809F;
262 GL_SAMPLE_COVERAGE = $80A0;
266 GL_INVALID_ENUM = $0500;
267 GL_INVALID_VALUE = $0501;
268 GL_INVALID_OPERATION = $0502;
269 GL_STACK_OVERFLOW = $0503;
270 GL_STACK_UNDERFLOW = $0504;
271 GL_OUT_OF_MEMORY = $0505;
279 GL_FOG_DENSITY = $0B62;
280 GL_FOG_START = $0B63;
283 GL_FOG_COLOR = $0B66;
285 { FrontFaceDirection }
290 GL_CURRENT_COLOR = $0B00;
291 GL_CURRENT_NORMAL = $0B02;
292 GL_CURRENT_TEXTURE_COORDS = $0B03;
293 GL_POINT_SIZE = $0B11;
294 GL_POINT_SIZE_MIN = $8126;
295 GL_POINT_SIZE_MAX = $8127;
296 GL_POINT_FADE_THRESHOLD_SIZE = $8128;
297 GL_POINT_DISTANCE_ATTENUATION = $8129;
298 GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
299 GL_LINE_WIDTH = $0B21;
300 GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
301 GL_ALIASED_POINT_SIZE_RANGE = $846D;
302 GL_ALIASED_LINE_WIDTH_RANGE = $846E;
303 GL_CULL_FACE_MODE = $0B45;
304 GL_FRONT_FACE = $0B46;
305 GL_SHADE_MODEL = $0B54;
306 GL_DEPTH_RANGE = $0B70;
307 GL_DEPTH_WRITEMASK = $0B72;
308 GL_DEPTH_CLEAR_VALUE = $0B73;
309 GL_DEPTH_FUNC = $0B74;
310 GL_STENCIL_CLEAR_VALUE = $0B91;
311 GL_STENCIL_FUNC = $0B92;
312 GL_STENCIL_VALUE_MASK = $0B93;
313 GL_STENCIL_FAIL = $0B94;
314 GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
315 GL_STENCIL_PASS_DEPTH_PASS = $0B96;
316 GL_STENCIL_REF = $0B97;
317 GL_STENCIL_WRITEMASK = $0B98;
318 GL_MATRIX_MODE = $0BA0;
320 GL_MODELVIEW_STACK_DEPTH = $0BA3;
321 GL_PROJECTION_STACK_DEPTH = $0BA4;
322 GL_TEXTURE_STACK_DEPTH = $0BA5;
323 GL_MODELVIEW_MATRIX = $0BA6;
324 GL_PROJECTION_MATRIX = $0BA7;
325 GL_TEXTURE_MATRIX = $0BA8;
326 GL_ALPHA_TEST_FUNC = $0BC1;
327 GL_ALPHA_TEST_REF = $0BC2;
328 GL_BLEND_DST = $0BE0;
329 GL_BLEND_SRC = $0BE1;
330 GL_LOGIC_OP_MODE = $0BF0;
331 GL_SCISSOR_BOX = $0C10;
332 GL_COLOR_CLEAR_VALUE = $0C22;
333 GL_COLOR_WRITEMASK = $0C23;
334 GL_UNPACK_ALIGNMENT = $0CF5;
335 GL_PACK_ALIGNMENT = $0D05;
336 GL_MAX_LIGHTS = $0D31;
337 GL_MAX_CLIP_PLANES = $0D32;
338 GL_MAX_TEXTURE_SIZE = $0D33;
339 GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
340 GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
341 GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
342 GL_MAX_VIEWPORT_DIMS = $0D3A;
343 GL_MAX_TEXTURE_UNITS = $84E2;
344 GL_SUBPIXEL_BITS = $0D50;
346 GL_GREEN_BITS = $0D53;
347 GL_BLUE_BITS = $0D54;
348 GL_ALPHA_BITS = $0D55;
349 GL_DEPTH_BITS = $0D56;
350 GL_STENCIL_BITS = $0D57;
351 GL_POLYGON_OFFSET_UNITS = $2A00;
352 GL_POLYGON_OFFSET_FACTOR = $8038;
353 GL_TEXTURE_BINDING_2D = $8069;
354 GL_VERTEX_ARRAY_SIZE = $807A;
355 GL_VERTEX_ARRAY_TYPE = $807B;
356 GL_VERTEX_ARRAY_STRIDE = $807C;
357 GL_NORMAL_ARRAY_TYPE = $807E;
358 GL_NORMAL_ARRAY_STRIDE = $807F;
359 GL_COLOR_ARRAY_SIZE = $8081;
360 GL_COLOR_ARRAY_TYPE = $8082;
361 GL_COLOR_ARRAY_STRIDE = $8083;
362 GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
363 GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
364 GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
365 GL_VERTEX_ARRAY_POINTER = $808E;
366 GL_NORMAL_ARRAY_POINTER = $808F;
367 GL_COLOR_ARRAY_POINTER = $8090;
368 GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
369 GL_SAMPLE_BUFFERS = $80A8;
371 GL_SAMPLE_COVERAGE_VALUE = $80AA;
372 GL_SAMPLE_COVERAGE_INVERT = $80AB;
374 { GetTextureParameter }
375 { GL_TEXTURE_MAG_FILTER }
376 { GL_TEXTURE_MIN_FILTER }
377 { GL_TEXTURE_WRAP_S }
378 { GL_TEXTURE_WRAP_T }
380 GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
381 GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
384 GL_DONT_CARE = $1100;
389 GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
390 GL_POINT_SMOOTH_HINT = $0C51;
391 GL_LINE_SMOOTH_HINT = $0C52;
393 GL_GENERATE_MIPMAP_HINT = $8192;
395 { LightModelParameter }
396 GL_LIGHT_MODEL_AMBIENT = $0B53;
397 GL_LIGHT_MODEL_TWO_SIDE = $0B52;
404 GL_SPOT_DIRECTION = $1204;
405 GL_SPOT_EXPONENT = $1205;
406 GL_SPOT_CUTOFF = $1206;
407 GL_CONSTANT_ATTENUATION = $1207;
408 GL_LINEAR_ATTENUATION = $1208;
409 GL_QUADRATIC_ATTENUATION = $1209;
413 GL_UNSIGNED_BYTE = $1401;
415 GL_UNSIGNED_SHORT = $1403;
422 GL_AND_REVERSE = $1502;
424 GL_AND_INVERTED = $1504;
431 GL_OR_REVERSE = $150B;
432 GL_COPY_INVERTED = $150C;
433 GL_OR_INVERTED = $150D;
438 { GL_FRONT_AND_BACK }
440 { MaterialParameter }
442 GL_SHININESS = $1601;
443 GL_AMBIENT_AND_DIFFUSE = $1602;
449 GL_MODELVIEW = $1700;
450 GL_PROJECTION = $1701;
453 { NormalPointerType }
463 GL_LUMINANCE = $1909;
464 GL_LUMINANCE_ALPHA = $190A;
468 GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
469 GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
470 GL_UNSIGNED_SHORT_5_6_5 = $8363;
498 GL_EXTENSIONS = $1F03;
500 { TexCoordPointerType }
513 { TextureEnvParameter }
514 GL_TEXTURE_ENV_MODE = $2200;
515 GL_TEXTURE_ENV_COLOR = $2201;
518 GL_TEXTURE_ENV = $2300;
527 GL_NEAREST_MIPMAP_NEAREST = $2700;
528 GL_LINEAR_MIPMAP_NEAREST = $2701;
529 GL_NEAREST_MIPMAP_LINEAR = $2702;
530 GL_LINEAR_MIPMAP_LINEAR = $2703;
532 { TextureParameterName }
533 GL_TEXTURE_MAG_FILTER = $2800;
534 GL_TEXTURE_MIN_FILTER = $2801;
535 GL_TEXTURE_WRAP_S = $2802;
536 GL_TEXTURE_WRAP_T = $2803;
537 GL_GENERATE_MIPMAP = $8191;
553 GL_TEXTURE10 = $84CA;
554 GL_TEXTURE11 = $84CB;
555 GL_TEXTURE12 = $84CC;
556 GL_TEXTURE13 = $84CD;
557 GL_TEXTURE14 = $84CE;
558 GL_TEXTURE15 = $84CF;
559 GL_TEXTURE16 = $84D0;
560 GL_TEXTURE17 = $84D1;
561 GL_TEXTURE18 = $84D2;
562 GL_TEXTURE19 = $84D3;
563 GL_TEXTURE20 = $84D4;
564 GL_TEXTURE21 = $84D5;
565 GL_TEXTURE22 = $84D6;
566 GL_TEXTURE23 = $84D7;
567 GL_TEXTURE24 = $84D8;
568 GL_TEXTURE25 = $84D9;
569 GL_TEXTURE26 = $84DA;
570 GL_TEXTURE27 = $84DB;
571 GL_TEXTURE28 = $84DC;
572 GL_TEXTURE29 = $84DD;
573 GL_TEXTURE30 = $84DE;
574 GL_TEXTURE31 = $84DF;
575 GL_ACTIVE_TEXTURE = $84E0;
576 GL_CLIENT_ACTIVE_TEXTURE = $84E1;
580 GL_CLAMP_TO_EDGE = $812F;
582 { VertexPointerType }
599 GL_ARRAY_BUFFER = $8892;
600 GL_ELEMENT_ARRAY_BUFFER = $8893;
602 GL_ARRAY_BUFFER_BINDING = $8894;
603 GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
604 GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
605 GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
606 GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
607 GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
609 GL_STATIC_DRAW = $88E4;
610 GL_DYNAMIC_DRAW = $88E8;
612 GL_BUFFER_SIZE = $8764;
613 GL_BUFFER_USAGE = $8765;
615 { Texture combine + dot3 }
618 GL_COMBINE_RGB = $8571;
619 GL_COMBINE_ALPHA = $8572;
620 GL_RGB_SCALE = $8573;
621 GL_ADD_SIGNED = $8574;
622 GL_INTERPOLATE = $8575;
624 GL_PRIMARY_COLOR = $8577;
626 GL_OPERAND0_RGB = $8590;
627 GL_OPERAND1_RGB = $8591;
628 GL_OPERAND2_RGB = $8592;
629 GL_OPERAND0_ALPHA = $8598;
630 GL_OPERAND1_ALPHA = $8599;
631 GL_OPERAND2_ALPHA = $859A;
633 GL_ALPHA_SCALE = $0D1C;
638 GL_SRC0_ALPHA = $8588;
639 GL_SRC1_ALPHA = $8589;
640 GL_SRC2_ALPHA = $858A;
643 GL_DOT3_RGBA = $86AF;
645 { ============================================== OpenGL ES 2.0 ======================================================= }
646 { BlendEquationSeparate }
648 GL_BLEND_EQUATION = $8009;
649 GL_BLEND_EQUATION_RGB = $8009; // same as BLEND_EQUATION
650 GL_BLEND_EQUATION_ALPHA = $883D;
653 GL_FUNC_SUBTRACT = $800A;
654 GL_FUNC_REVERSE_SUBTRACT = $800B;
656 { Separate Blend Functions }
657 GL_BLEND_DST_RGB = $80C8;
658 GL_BLEND_SRC_RGB = $80C9;
659 GL_BLEND_DST_ALPHA = $80CA;
660 GL_BLEND_SRC_ALPHA = $80CB;
661 GL_CONSTANT_COLOR = $8001;
662 GL_ONE_MINUS_CONSTANT_COLOR = $8002;
663 GL_CONSTANT_ALPHA = $8003;
664 GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
665 GL_BLEND_COLOR = $8005;
668 GL_STREAM_DRAW = $88E0;
669 GL_CURRENT_VERTEX_ATTRIB = $8626;
672 GL_STENCIL_BACK_FUNC = $8800;
673 GL_STENCIL_BACK_FAIL = $8801;
674 GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
675 GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
676 GL_STENCIL_BACK_REF = $8CA3;
677 GL_STENCIL_BACK_VALUE_MASK = $8CA4;
678 GL_STENCIL_BACK_WRITEMASK = $8CA5;
682 GL_UNSIGNED_INT = $1405;
685 GL_DEPTH_COMPONENT = $1902;
688 GL_FRAGMENT_SHADER = $8B30;
689 GL_VERTEX_SHADER = $8B31;
690 GL_MAX_VERTEX_ATTRIBS = $8869;
691 GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
692 GL_MAX_VARYING_VECTORS = $8DFC;
693 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
694 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
695 GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
696 GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
697 GL_SHADER_TYPE = $8B4F;
698 GL_DELETE_STATUS = $8B80;
699 GL_LINK_STATUS = $8B82;
700 GL_VALIDATE_STATUS = $8B83;
701 GL_ATTACHED_SHADERS = $8B85;
702 GL_ACTIVE_UNIFORMS = $8B86;
703 GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
704 GL_ACTIVE_ATTRIBUTES = $8B89;
705 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
706 GL_SHADING_LANGUAGE_VERSION = $8B8C;
707 GL_CURRENT_PROGRAM = $8B8D;
710 GL_INCR_WRAP = $8507;
711 GL_DECR_WRAP = $8508;
714 GL_TEXTURE_CUBE_MAP = $8513;
715 GL_TEXTURE_BINDING_CUBE_MAP = $8514;
716 GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
717 GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
718 GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
719 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
720 GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
721 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
722 GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
725 GL_MIRRORED_REPEAT = $8370;
728 GL_FLOAT_VEC2 = $8B50;
729 GL_FLOAT_VEC3 = $8B51;
730 GL_FLOAT_VEC4 = $8B52;
735 GL_BOOL_VEC2 = $8B57;
736 GL_BOOL_VEC3 = $8B58;
737 GL_BOOL_VEC4 = $8B59;
738 GL_FLOAT_MAT2 = $8B5A;
739 GL_FLOAT_MAT3 = $8B5B;
740 GL_FLOAT_MAT4 = $8B5C;
741 GL_SAMPLER_2D = $8B5E;
742 GL_SAMPLER_CUBE = $8B60;
745 GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
746 GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
747 GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
748 GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
749 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
750 GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
751 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
754 GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
755 GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
758 GL_COMPILE_STATUS = $8B81;
759 GL_INFO_LOG_LENGTH = $8B84;
760 GL_SHADER_SOURCE_LENGTH = $8B88;
761 GL_SHADER_COMPILER = $8DFA;
764 GL_SHADER_BINARY_FORMATS = $8DF8;
765 GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
767 { Shader Precision-Specified Types }
768 GL_LOW_FLOAT = $8DF0;
769 GL_MEDIUM_FLOAT = $8DF1;
770 GL_HIGH_FLOAT = $8DF2;
772 GL_MEDIUM_INT = $8DF4;
775 { Framebuffer Object. }
776 GL_FRAMEBUFFER = $8D40;
777 GL_RENDERBUFFER = $8D41;
782 GL_DEPTH_COMPONENT16 = $81A5;
783 GL_STENCIL_INDEX = $1901;
784 GL_STENCIL_INDEX8 = $8D48;
786 GL_RENDERBUFFER_WIDTH = $8D42;
787 GL_RENDERBUFFER_HEIGHT = $8D43;
788 GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
789 GL_RENDERBUFFER_RED_SIZE = $8D50;
790 GL_RENDERBUFFER_GREEN_SIZE = $8D51;
791 GL_RENDERBUFFER_BLUE_SIZE = $8D52;
792 GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
793 GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
794 GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
796 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
797 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
798 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
799 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
801 GL_COLOR_ATTACHMENT0 = $8CE0;
802 GL_DEPTH_ATTACHMENT = $8D00;
803 GL_STENCIL_ATTACHMENT = $8D20;
807 GL_FRAMEBUFFER_COMPLETE = $8CD5;
808 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
809 GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
810 GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = $8CD9;
811 GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
813 GL_FRAMEBUFFER_BINDING = $8CA6;
814 GL_RENDERBUFFER_BINDING = $8CA7;
815 GL_MAX_RENDERBUFFER_SIZE = $84E8;
817 GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
819 { ============================================== OpenGL ES 3.0 ======================================================= }
820 GL_READ_BUFFER = $0C02;
821 GL_UNPACK_ROW_LENGTH = $0CF2;
822 GL_UNPACK_SKIP_ROWS = $0CF3;
823 GL_UNPACK_SKIP_PIXELS = $0CF4;
824 GL_PACK_ROW_LENGTH = $0D02;
825 GL_PACK_SKIP_ROWS = $0D03;
826 GL_PACK_SKIP_PIXELS = $0D04;
834 GL_TEXTURE_BINDING_3D = $806A;
835 GL_UNPACK_SKIP_IMAGES = $806D;
836 GL_UNPACK_IMAGE_HEIGHT = $806E;
837 GL_TEXTURE_3D = $806F;
838 GL_TEXTURE_WRAP_R = $8072;
839 GL_MAX_3D_TEXTURE_SIZE = $8073;
840 GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
841 GL_MAX_ELEMENTS_VERTICES = $80E8;
842 GL_MAX_ELEMENTS_INDICES = $80E9;
843 GL_TEXTURE_MIN_LOD = $813A;
844 GL_TEXTURE_MAX_LOD = $813B;
845 GL_TEXTURE_BASE_LEVEL = $813C;
846 GL_TEXTURE_MAX_LEVEL = $813D;
849 GL_DEPTH_COMPONENT24 = $81A6;
850 GL_MAX_TEXTURE_LOD_BIAS = $84FD;
851 GL_TEXTURE_COMPARE_MODE = $884C;
852 GL_TEXTURE_COMPARE_FUNC = $884D;
853 GL_CURRENT_QUERY = $8865;
854 GL_QUERY_RESULT = $8866;
855 GL_QUERY_RESULT_AVAILABLE = $8867;
856 GL_BUFFER_MAPPED = $88BC;
857 GL_BUFFER_MAP_POINTER = $88BD;
858 GL_STREAM_READ = $88E1;
859 GL_STREAM_COPY = $88E2;
860 GL_STATIC_READ = $88E5;
861 GL_STATIC_COPY = $88E6;
862 GL_DYNAMIC_READ = $88E9;
863 GL_DYNAMIC_COPY = $88EA;
864 GL_MAX_DRAW_BUFFERS = $8824;
865 GL_DRAW_BUFFER0 = $8825;
866 GL_DRAW_BUFFER1 = $8826;
867 GL_DRAW_BUFFER2 = $8827;
868 GL_DRAW_BUFFER3 = $8828;
869 GL_DRAW_BUFFER4 = $8829;
870 GL_DRAW_BUFFER5 = $882A;
871 GL_DRAW_BUFFER6 = $882B;
872 GL_DRAW_BUFFER7 = $882C;
873 GL_DRAW_BUFFER8 = $882D;
874 GL_DRAW_BUFFER9 = $882E;
875 GL_DRAW_BUFFER10 = $882F;
876 GL_DRAW_BUFFER11 = $8830;
877 GL_DRAW_BUFFER12 = $8831;
878 GL_DRAW_BUFFER13 = $8832;
879 GL_DRAW_BUFFER14 = $8833;
880 GL_DRAW_BUFFER15 = $8834;
881 GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
882 GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
883 GL_SAMPLER_3D = $8B5F;
884 GL_SAMPLER_2D_SHADOW = $8B62;
885 GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
886 GL_PIXEL_PACK_BUFFER = $88EB;
887 GL_PIXEL_UNPACK_BUFFER = $88EC;
888 GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
889 GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
890 GL_FLOAT_MAT2x3 = $8B65;
891 GL_FLOAT_MAT2x4 = $8B66;
892 GL_FLOAT_MAT3x2 = $8B67;
893 GL_FLOAT_MAT3x4 = $8B68;
894 GL_FLOAT_MAT4x2 = $8B69;
895 GL_FLOAT_MAT4x3 = $8B6A;
898 GL_SRGB8_ALPHA8 = $8C43;
899 GL_COMPARE_REF_TO_TEXTURE = $884E;
900 GL_MAJOR_VERSION = $821B;
901 GL_MINOR_VERSION = $821C;
902 GL_NUM_EXTENSIONS = $821D;
907 GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
908 GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
909 GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
910 GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
911 GL_MAX_VARYING_COMPONENTS = $8B4B;
912 GL_TEXTURE_2D_ARRAY = $8C1A;
913 GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
914 GL_R11F_G11F_B10F = $8C3A;
915 GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
917 GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
918 GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
919 GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
920 GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
921 GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
922 GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
923 GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
924 GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
925 GL_RASTERIZER_DISCARD = $8C89;
926 GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
927 GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
928 GL_INTERLEAVED_ATTRIBS = $8C8C;
929 GL_SEPARATE_ATTRIBS = $8C8D;
930 GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
931 GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
944 GL_RED_INTEGER = $8D94;
945 GL_RGB_INTEGER = $8D98;
946 GL_RGBA_INTEGER = $8D99;
947 GL_SAMPLER_2D_ARRAY = $8DC1;
948 GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
949 GL_SAMPLER_CUBE_SHADOW = $8DC5;
950 GL_UNSIGNED_INT_VEC2 = $8DC6;
951 GL_UNSIGNED_INT_VEC3 = $8DC7;
952 GL_UNSIGNED_INT_VEC4 = $8DC8;
953 GL_INT_SAMPLER_2D = $8DCA;
954 GL_INT_SAMPLER_3D = $8DCB;
955 GL_INT_SAMPLER_CUBE = $8DCC;
956 GL_INT_SAMPLER_2D_ARRAY = $8DCF;
957 GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
958 GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
959 GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
960 GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
961 GL_BUFFER_ACCESS_FLAGS = $911F;
962 GL_BUFFER_MAP_LENGTH = $9120;
963 GL_BUFFER_MAP_OFFSET = $9121;
964 GL_DEPTH_COMPONENT32F = $8CAC;
965 GL_DEPTH32F_STENCIL8 = $8CAD;
966 GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
967 GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
968 GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
969 GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
970 GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
971 GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
972 GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
973 GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
974 GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
975 GL_FRAMEBUFFER_DEFAULT = $8218;
976 GL_FRAMEBUFFER_UNDEFINED = $8219;
977 GL_DEPTH_STENCIL_ATTACHMENT = $821A;
978 GL_DEPTH_STENCIL = $84F9;
979 GL_UNSIGNED_INT_24_8 = $84FA;
980 GL_DEPTH24_STENCIL8 = $88F0;
981 GL_UNSIGNED_NORMALIZED = $8C17;
982 GL_DRAW_FRAMEBUFFER_BINDING = $8CA6;
983 GL_READ_FRAMEBUFFER = $8CA8;
984 GL_DRAW_FRAMEBUFFER = $8CA9;
985 GL_READ_FRAMEBUFFER_BINDING = $8CAA;
986 GL_RENDERBUFFER_SAMPLES = $8CAB;
987 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
988 GL_MAX_COLOR_ATTACHMENTS = $8CDF;
989 GL_COLOR_ATTACHMENT1 = $8CE1;
990 GL_COLOR_ATTACHMENT2 = $8CE2;
991 GL_COLOR_ATTACHMENT3 = $8CE3;
992 GL_COLOR_ATTACHMENT4 = $8CE4;
993 GL_COLOR_ATTACHMENT5 = $8CE5;
994 GL_COLOR_ATTACHMENT6 = $8CE6;
995 GL_COLOR_ATTACHMENT7 = $8CE7;
996 GL_COLOR_ATTACHMENT8 = $8CE8;
997 GL_COLOR_ATTACHMENT9 = $8CE9;
998 GL_COLOR_ATTACHMENT10 = $8CEA;
999 GL_COLOR_ATTACHMENT11 = $8CEB;
1000 GL_COLOR_ATTACHMENT12 = $8CEC;
1001 GL_COLOR_ATTACHMENT13 = $8CED;
1002 GL_COLOR_ATTACHMENT14 = $8CEE;
1003 GL_COLOR_ATTACHMENT15 = $8CEF;
1004 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
1005 GL_MAX_SAMPLES = $8D57;
1006 GL_HALF_FLOAT = $140B;
1007 GL_MAP_READ_BIT = $0001;
1008 GL_MAP_WRITE_BIT = $0002;
1009 GL_MAP_INVALIDATE_RANGE_BIT = $0004;
1010 GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
1011 GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
1012 GL_MAP_UNSYNCHRONIZED_BIT = $0020;
1014 GL_RG_INTEGER = $8228;
1033 GL_VERTEX_ARRAY_BINDING = $85B5;
1034 GL_R8_SNORM = $8F94;
1035 GL_RG8_SNORM = $8F95;
1036 GL_RGB8_SNORM = $8F96;
1037 GL_RGBA8_SNORM = $8F97;
1038 GL_SIGNED_NORMALIZED = $8F9C;
1039 GL_PRIMITIVE_RESTART_FIXED_INDEX = $8D69;
1040 GL_COPY_READ_BUFFER = $8F36;
1041 GL_COPY_WRITE_BUFFER = $8F37;
1042 GL_COPY_READ_BUFFER_BINDING = $8F36;
1043 GL_COPY_WRITE_BUFFER_BINDING = $8F37;
1044 GL_UNIFORM_BUFFER = $8A11;
1045 GL_UNIFORM_BUFFER_BINDING = $8A28;
1046 GL_UNIFORM_BUFFER_START = $8A29;
1047 GL_UNIFORM_BUFFER_SIZE = $8A2A;
1048 GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
1049 GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
1050 GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
1051 GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
1052 GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
1053 GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
1054 GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
1055 GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
1056 GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
1057 GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
1058 GL_UNIFORM_TYPE = $8A37;
1059 GL_UNIFORM_SIZE = $8A38;
1060 GL_UNIFORM_NAME_LENGTH = $8A39;
1061 GL_UNIFORM_BLOCK_INDEX = $8A3A;
1062 GL_UNIFORM_OFFSET = $8A3B;
1063 GL_UNIFORM_ARRAY_STRIDE = $8A3C;
1064 GL_UNIFORM_MATRIX_STRIDE = $8A3D;
1065 GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
1066 GL_UNIFORM_BLOCK_BINDING = $8A3F;
1067 GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
1068 GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
1069 GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
1070 GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
1071 GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
1072 GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
1073 GL_INVALID_INDEX = $FFFFFFFF;
1074 GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
1075 GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
1076 GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
1077 GL_OBJECT_TYPE = $9112;
1078 GL_SYNC_CONDITION = $9113;
1079 GL_SYNC_STATUS = $9114;
1080 GL_SYNC_FLAGS = $9115;
1081 GL_SYNC_FENCE = $9116;
1082 GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
1083 GL_UNSIGNALED = $9118;
1084 GL_SIGNALED = $9119;
1085 GL_ALREADY_SIGNALED = $911A;
1086 GL_TIMEOUT_EXPIRED = $911B;
1087 GL_CONDITION_SATISFIED = $911C;
1088 GL_WAIT_FAILED = $911D;
1089 GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
1090 GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
1091 GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
1092 GL_ANY_SAMPLES_PASSED = $8C2F;
1093 GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
1094 GL_SAMPLER_BINDING = $8919;
1095 GL_RGB10_A2UI = $906F;
1096 GL_TEXTURE_SWIZZLE_R = $8E42;
1097 GL_TEXTURE_SWIZZLE_G = $8E43;
1098 GL_TEXTURE_SWIZZLE_B = $8E44;
1099 GL_TEXTURE_SWIZZLE_A = $8E45;
1102 GL_INT_2_10_10_10_REV = $8D9F;
1103 GL_TRANSFORM_FEEDBACK = $8E22;
1104 GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
1105 GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
1106 GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
1107 GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
1108 GL_PROGRAM_BINARY_LENGTH = $8741;
1109 GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
1110 GL_PROGRAM_BINARY_FORMATS = $87FF;
1111 GL_COMPRESSED_R11_EAC = $9270;
1112 GL_COMPRESSED_SIGNED_R11_EAC = $9271;
1113 GL_COMPRESSED_RG11_EAC = $9272;
1114 GL_COMPRESSED_SIGNED_RG11_EAC = $9273;
1115 GL_COMPRESSED_RGB8_ETC2 = $9274;
1116 GL_COMPRESSED_SRGB8_ETC2 = $9275;
1117 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
1118 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
1119 GL_COMPRESSED_RGBA8_ETC2_EAC = $9278;
1120 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
1121 GL_TEXTURE_IMMUTABLE_FORMAT = $912F;
1122 GL_MAX_ELEMENT_INDEX = $8D6B;
1123 GL_NUM_SAMPLE_COUNTS = $9380;
1124 GL_TEXTURE_IMMUTABLE_LEVELS = $82DF;
1126 { ============================================== OpenGL ES 3.1 ======================================================= }
1127 GL_COMPUTE_SHADER = $91B9;
1128 GL_MAX_COMPUTE_UNIFORM_BLOCKS = $91BB;
1129 GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
1130 GL_MAX_COMPUTE_IMAGE_UNIFORMS = $91BD;
1131 GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
1132 GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
1133 GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
1134 GL_MAX_COMPUTE_ATOMIC_COUNTERS = $8265;
1135 GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
1136 GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = $90EB;
1137 GL_MAX_COMPUTE_WORK_GROUP_COUNT = $91BE;
1138 GL_MAX_COMPUTE_WORK_GROUP_SIZE = $91BF;
1139 GL_COMPUTE_WORK_GROUP_SIZE = $8267;
1140 GL_DISPATCH_INDIRECT_BUFFER = $90EE;
1141 GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
1142 GL_COMPUTE_SHADER_BIT = $00000020;
1143 GL_DRAW_INDIRECT_BUFFER = $8F3F;
1144 GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
1145 GL_MAX_UNIFORM_LOCATIONS = $826E;
1146 GL_FRAMEBUFFER_DEFAULT_WIDTH = $9310;
1147 GL_FRAMEBUFFER_DEFAULT_HEIGHT = $9311;
1148 GL_FRAMEBUFFER_DEFAULT_SAMPLES = $9313;
1149 GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
1150 GL_MAX_FRAMEBUFFER_WIDTH = $9315;
1151 GL_MAX_FRAMEBUFFER_HEIGHT = $9316;
1152 GL_MAX_FRAMEBUFFER_SAMPLES = $9318;
1154 GL_UNIFORM_BLOCK = $92E2;
1155 GL_PROGRAM_INPUT = $92E3;
1156 GL_PROGRAM_OUTPUT = $92E4;
1157 GL_BUFFER_VARIABLE = $92E5;
1158 GL_SHADER_STORAGE_BLOCK = $92E6;
1159 GL_ATOMIC_COUNTER_BUFFER = $92C0;
1160 GL_TRANSFORM_FEEDBACK_VARYING = $92F4;
1161 GL_ACTIVE_RESOURCES = $92F5;
1162 GL_MAX_NAME_LENGTH = $92F6;
1163 GL_MAX_NUM_ACTIVE_VARIABLES = $92F7;
1164 GL_NAME_LENGTH = $92F9;
1166 GL_ARRAY_SIZE = $92FB;
1168 GL_BLOCK_INDEX = $92FD;
1169 GL_ARRAY_STRIDE = $92FE;
1170 GL_MATRIX_STRIDE = $92FF;
1171 GL_IS_ROW_MAJOR = $9300;
1172 GL_ATOMIC_COUNTER_BUFFER_INDEX = $9301;
1173 GL_BUFFER_BINDING = $9302;
1174 GL_BUFFER_DATA_SIZE = $9303;
1175 GL_NUM_ACTIVE_VARIABLES = $9304;
1176 GL_ACTIVE_VARIABLES = $9305;
1177 GL_REFERENCED_BY_VERTEX_SHADER = $9306;
1178 GL_REFERENCED_BY_FRAGMENT_SHADER = $930A;
1179 GL_REFERENCED_BY_COMPUTE_SHADER = $930B;
1180 GL_TOP_LEVEL_ARRAY_SIZE = $930C;
1181 GL_TOP_LEVEL_ARRAY_STRIDE = $930D;
1182 GL_LOCATION = $930E;
1183 GL_VERTEX_SHADER_BIT = $00000001;
1184 GL_FRAGMENT_SHADER_BIT = $00000002;
1185 GL_ALL_SHADER_BITS = $FFFFFFFF;
1186 GL_PROGRAM_SEPARABLE = $8258;
1187 GL_ACTIVE_PROGRAM = $8259;
1188 GL_PROGRAM_PIPELINE_BINDING = $825A;
1189 GL_ATOMIC_COUNTER_BUFFER_BINDING = $92C1;
1190 GL_ATOMIC_COUNTER_BUFFER_START = $92C2;
1191 GL_ATOMIC_COUNTER_BUFFER_SIZE = $92C3;
1192 GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
1193 GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
1194 GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
1195 GL_MAX_VERTEX_ATOMIC_COUNTERS = $92D2;
1196 GL_MAX_FRAGMENT_ATOMIC_COUNTERS = $92D6;
1197 GL_MAX_COMBINED_ATOMIC_COUNTERS = $92D7;
1198 GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
1199 GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
1200 GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = $92D9;
1201 GL_UNSIGNED_INT_ATOMIC_COUNTER = $92DB;
1202 GL_MAX_IMAGE_UNITS = $8F38;
1203 GL_MAX_VERTEX_IMAGE_UNIFORMS = $90CA;
1204 GL_MAX_FRAGMENT_IMAGE_UNIFORMS = $90CE;
1205 GL_MAX_COMBINED_IMAGE_UNIFORMS = $90CF;
1206 GL_IMAGE_BINDING_NAME = $8F3A;
1207 GL_IMAGE_BINDING_LEVEL = $8F3B;
1208 GL_IMAGE_BINDING_LAYERED = $8F3C;
1209 GL_IMAGE_BINDING_LAYER = $8F3D;
1210 GL_IMAGE_BINDING_ACCESS = $8F3E;
1211 GL_IMAGE_BINDING_FORMAT = $906E;
1212 GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
1213 GL_ELEMENT_ARRAY_BARRIER_BIT = $00000002;
1214 GL_UNIFORM_BARRIER_BIT = $00000004;
1215 GL_TEXTURE_FETCH_BARRIER_BIT = $00000008;
1216 GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
1217 GL_COMMAND_BARRIER_BIT = $00000040;
1218 GL_PIXEL_BUFFER_BARRIER_BIT = $00000080;
1219 GL_TEXTURE_UPDATE_BARRIER_BIT = $00000100;
1220 GL_BUFFER_UPDATE_BARRIER_BIT = $00000200;
1221 GL_FRAMEBUFFER_BARRIER_BIT = $00000400;
1222 GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
1223 GL_ATOMIC_COUNTER_BARRIER_BIT = $00001000;
1224 GL_ALL_BARRIER_BITS = $FFFFFFFF;
1225 GL_IMAGE_2D = $904D;
1226 GL_IMAGE_3D = $904E;
1227 GL_IMAGE_CUBE = $9050;
1228 GL_IMAGE_2D_ARRAY = $9053;
1229 GL_INT_IMAGE_2D = $9058;
1230 GL_INT_IMAGE_3D = $9059;
1231 GL_INT_IMAGE_CUBE = $905B;
1232 GL_INT_IMAGE_2D_ARRAY = $905E;
1233 GL_UNSIGNED_INT_IMAGE_2D = $9063;
1234 GL_UNSIGNED_INT_IMAGE_3D = $9064;
1235 GL_UNSIGNED_INT_IMAGE_CUBE = $9066;
1236 GL_UNSIGNED_INT_IMAGE_2D_ARRAY = $9069;
1237 GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
1238 GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
1239 GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
1240 GL_READ_ONLY = $88B8;
1241 GL_WRITE_ONLY = $88B9;
1242 GL_READ_WRITE = $88BA;
1243 GL_SHADER_STORAGE_BUFFER = $90D2;
1244 GL_SHADER_STORAGE_BUFFER_BINDING = $90D3;
1245 GL_SHADER_STORAGE_BUFFER_START = $90D4;
1246 GL_SHADER_STORAGE_BUFFER_SIZE = $90D5;
1247 GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
1248 GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
1249 GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
1250 GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
1251 GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
1252 GL_MAX_SHADER_STORAGE_BLOCK_SIZE = $90DE;
1253 GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
1254 GL_SHADER_STORAGE_BARRIER_BIT = $00002000;
1255 GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = $8F39;
1256 GL_DEPTH_STENCIL_TEXTURE_MODE = $90EA;
1257 GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
1258 GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
1259 GL_SAMPLE_POSITION = $8E50;
1260 GL_SAMPLE_MASK = $8E51;
1261 GL_SAMPLE_MASK_VALUE = $8E52;
1262 GL_TEXTURE_2D_MULTISAMPLE = $9100;
1263 GL_MAX_SAMPLE_MASK_WORDS = $8E59;
1264 GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
1265 GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
1266 GL_MAX_INTEGER_SAMPLES = $9110;
1267 GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
1268 GL_TEXTURE_SAMPLES = $9106;
1269 GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
1270 GL_TEXTURE_WIDTH = $1000;
1271 GL_TEXTURE_HEIGHT = $1001;
1272 GL_TEXTURE_DEPTH = $8071;
1273 GL_TEXTURE_INTERNAL_FORMAT = $1003;
1274 GL_TEXTURE_RED_SIZE = $805C;
1275 GL_TEXTURE_GREEN_SIZE = $805D;
1276 GL_TEXTURE_BLUE_SIZE = $805E;
1277 GL_TEXTURE_ALPHA_SIZE = $805F;
1278 GL_TEXTURE_DEPTH_SIZE = $884A;
1279 GL_TEXTURE_STENCIL_SIZE = $88F1;
1280 GL_TEXTURE_SHARED_SIZE = $8C3F;
1281 GL_TEXTURE_RED_TYPE = $8C10;
1282 GL_TEXTURE_GREEN_TYPE = $8C11;
1283 GL_TEXTURE_BLUE_TYPE = $8C12;
1284 GL_TEXTURE_ALPHA_TYPE = $8C13;
1285 GL_TEXTURE_DEPTH_TYPE = $8C16;
1286 GL_TEXTURE_COMPRESSED = $86A1;
1287 GL_SAMPLER_2D_MULTISAMPLE = $9108;
1288 GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
1289 GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
1290 GL_VERTEX_ATTRIB_BINDING = $82D4;
1291 GL_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D5;
1292 GL_VERTEX_BINDING_DIVISOR = $82D6;
1293 GL_VERTEX_BINDING_OFFSET = $82D7;
1294 GL_VERTEX_BINDING_STRIDE = $82D8;
1295 GL_VERTEX_BINDING_BUFFER = $8F4F;
1296 GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
1297 GL_MAX_VERTEX_ATTRIB_BINDINGS = $82DA;
1298 GL_MAX_VERTEX_ATTRIB_STRIDE = $82E5;
1301 { ============================================== OpenGL ES 1.0 ======================================================= }
1302 { Available only in Common profile }
1303 TglAlphaFunc = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1304 TglClearColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1305 TglClearDepthf = procedure(aDepth: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1306 TglClipPlanef = procedure(aPlane: GLenum; const aEquation: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1307 TglColor4f = procedure(aRed: GLfloat; aGreen: GLfloat; aBlue: GLfloat; aAlpha: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1308 TglDepthRangef = procedure(aZNear: GLclampf; aZFar: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1309 TglFogf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1310 TglFogfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1311 TglFrustumf = procedure(aLeft: GLfloat; aRight: GLfloat; aBottom: GLfloat; aTop: GLfloat; aZNear: GLfloat; aZFar: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1312 TglGetClipPlanef = procedure(aPname: GLenum; aEquation: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1313 TglGetFloatv = procedure(aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1314 TglGetLightfv = procedure(aLight: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1315 TglGetMaterialfv = procedure(aFace: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1316 TglGetTexEnvfv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1317 TglGetTexParameterfv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1318 TglLightModelf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1319 TglLightModelfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1320 TglLightf = procedure(aLight: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1321 TglLightfv = procedure(aLight: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1322 TglLineWidth = procedure(aWidth: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1323 TglLoadMatrixf = procedure(const aMatrix: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1324 TglMaterialf = procedure(aFace: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1325 TglMaterialfv = procedure(aFace: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1326 TglMultMatrixf = procedure(const aMatrix: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1327 TglMultiTexCoord4f = procedure(aTarget: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1328 TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1329 TglOrthof = procedure(aLeft: GLfloat; aRight: GLfloat; aBottom: GLfloat; aTop: GLfloat; aZNear: GLfloat; aZFar: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1330 TglPointParameterf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1331 TglPointParameterfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1332 TglPointSize = procedure(aSize: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1333 TglPolygonOffset = procedure(aFactor: GLfloat; aUnits: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1334 TglRotatef = procedure(aAngle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1335 TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1336 TglTexEnvf = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1337 TglTexEnvfv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1338 TglTexParameterf = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1339 TglTexParameterfv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1340 TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1342 { Available in both Common and Common-Lite profiles }
1343 TglActiveTexture = procedure(aTexture: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1344 TglAlphaFuncx = procedure(aFunc: GLenum; aRef: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1345 TglBindBuffer = procedure(aTarget: GLenum; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1346 TglBindTexture = procedure(aTarget: GLenum; aTexture: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1347 TglBlendFunc = procedure(aSfactor: GLenum; aDfactor: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1348 TglBufferData = procedure(aTarget: GLenum; aSize: GLsizeiptr; const aData: PGLvoid; aUsage: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1349 TglBufferSubData = procedure(aTarget: GLenum; aOffset: GLintptr; aSize: GLsizeiptr; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1350 TglClear = procedure(aMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1351 TglClearColorx = procedure(aRed: GLclampx; aGreen: GLclampx; aBlue: GLclampx; aAlpha: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1352 TglClearDepthx = procedure(aDepth: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1353 TglClearStencil = procedure(aStencil: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1354 TglClientActiveTexture = procedure(aTexture: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1355 TglClipPlanex = procedure(aPlane: GLenum; const aEquation: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1356 TglColor4ub = procedure(aRed: GLubyte; aGreen: GLubyte; aBlue: GLubyte; aAlpha: GLubyte); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1357 TglColor4x = procedure(aRed: GLfixed; aGreen: GLfixed; aBlue: GLfixed; aAlpha: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1358 TglColorMask = procedure(aRed: GLboolean; aGreen: GLboolean; aBlue: GLboolean; aAlpha: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1359 TglColorPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1360 TglCompressedTexImage2D = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aBorder: GLint; aImageSize: GLsizei; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1361 TglCompressedTexSubImage2D = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aImageSize: GLsizei; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1362 TglCopyTexImage2D = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aBorder: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1363 TglCopyTexSubImage2D = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1364 TglCullFace = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1365 TglDeleteBuffers = procedure(n: GLsizei; const aBuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1366 TglDeleteTextures = procedure(n: GLsizei; const aTextures: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1367 TglDepthFunc = procedure(aFunc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1368 TglDepthMask = procedure(aFlag: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1369 TglDepthRangex = procedure(aZNear: GLclampx; aZFar: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1370 TglDisable = procedure(aCap: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1371 TglDisableClientState = procedure(aArray: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1372 TglDrawArrays = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1373 TglDrawElements = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1374 TglEnable = procedure(aCap: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1375 TglEnableClientState = procedure(aArray: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1376 TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1377 TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1378 TglFogx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1379 TglFogxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1380 TglFrontFace = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1381 TglFrustumx = procedure(aLeft: GLfixed; aRight: GLfixed; aBottom: GLfixed; aTop: GLfixed; aZNear: GLfixed; aZFar: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1382 TglGetBooleanv = procedure(aPname: GLenum; aParams: PGLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1383 TglGetBufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1384 TglGetClipPlanex = procedure(aPname: GLenum; aEquation: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1385 TglGenBuffers = procedure(n: GLsizei; aBuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1386 TglGenTextures = procedure(n: GLsizei; aTextures: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1387 TglGetError = function (): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1388 TglGetFixedv = procedure(aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1389 TglGetIntegerv = procedure(aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1390 TglGetLightxv = procedure(aLight: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1391 TglGetMaterialxv = procedure(aFace: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1392 TglGetPointerv = procedure(aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1393 TglGetString = function (name: GLenum): PGLubyte; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1394 TglGetTexEnviv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1395 TglGetTexEnvxv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1396 TglGetTexParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1397 TglGetTexParameterxv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1398 TglHint = procedure(aTarget: GLenum; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1399 TglIsBuffer = function (aBuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1400 TglIsEnabled = function (aCap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1401 TglIsTexture = function (aTexture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1402 TglLightModelx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1403 TglLightModelxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1404 TglLightx = procedure(aLight: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1405 TglLightxv = procedure(aLight: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1406 TglLineWidthx = procedure(aWidth: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1407 TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1408 TglLoadMatrix = procedure(const aMatrix: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1409 TglLogicOp = procedure(aOpcode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1410 TglMaterialx = procedure(aFace: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1411 TglMaterialxv = procedure(aFace: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1412 TglMatrixMode = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1413 TglMultMatrixx = procedure(const aMatrix: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1414 TglMultiTexCoord4x = procedure(aTarget: GLenum; s: GLfixed; t: GLfixed; r: GLfixed; q: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1415 TglNormal3x = procedure(nx: GLfixed; ny: GLfixed; nz: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1416 TglNormalPointer = procedure(aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1417 TglOrthox = procedure(aLeft: GLfixed; aRight: GLfixed; aBottom: GLfixed; aTop: GLfixed; aZNear: GLfixed; aZFar: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1418 TglPixelStorei = procedure(aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1419 TglPointParameterx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1420 TglPointParameterxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1421 TglPointSizex = procedure(aSize: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1422 TglPolygonOffsetx = procedure(aFactor: GLfixed; aUnits: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1423 TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1424 TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1425 TglReadPixels = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1426 TglRotatex = procedure(aAngle: GLfixed; x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1427 TglSampleCoverage = procedure(aValue: GLclampf; aInvert: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1428 TglSampleCoveragex = procedure(aValue: GLclampx; aInvert: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1429 TglScalex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1430 TglScissor = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1431 TglShadeModel = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1432 TglStencilFunc = procedure(aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1433 TglStencilMask = procedure(aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1434 TglStencilOp = procedure(aFail: GLenum; aZfail: GLenum; aZpass: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1435 TglTexCoordPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1436 TglTexEnvi = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1437 TglTexEnvx = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1438 TglTexEnviv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1439 TglTexEnvxv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1440 TglTexImage2D = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLint; aWidth: GLsizei; aHeight: GLsizei; aBorder: GLint; aFormat: GLenum; aType: GLenum; const aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1441 TglTexParameteri = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1442 TglTexParameterx = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1443 TglTexParameteriv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1444 TglTexParameterxv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1445 TglTexSubImage2D = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; const aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1446 TglTranslatex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1447 TglVertexPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1448 TglViewport = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1450 { ============================================== OpenGL ES 2.0 ======================================================= }
1451 TglAttachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1452 TglBindAttribLocation = procedure(aProgram: GLuint; aIndex: GLuint; const aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1453 TglBindFramebuffer = procedure(aTarget: GLenum; aFramebuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1454 TglBindRenderbuffer = procedure(aTarget: GLenum; aRenderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1455 TglBlendColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1456 TglBlendEquation = procedure( mode : GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1457 TglBlendEquationSeparate = procedure(aModeRGB: GLenum; aModeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1458 TglBlendFuncSeparate = procedure(aSrcRGB: GLenum; aDstRGB: GLenum; aSrcAlpha: GLenum; aDstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1459 TglCheckFramebufferStatus = function (aTarget: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1460 TglCompileShader = procedure(aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1461 TglCreateProgram = function (): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1462 TglCreateShader = function (aType: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1463 TglDeleteFramebuffers = procedure(n: GLsizei; const aFramebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1464 TglDeleteProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1465 TglDeleteRenderbuffers = procedure(n: GLsizei; const aRenderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1466 TglDeleteShader = procedure(aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1467 TglDetachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1468 TglDisableVertexAttribArray = procedure(aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1469 TglEnableVertexAttribArray = procedure(aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1470 TglFramebufferRenderbuffer = procedure(aTarget: GLenum; aAttachment: GLenum; aRenderbuffertarget: GLenum; aRenderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1471 TglFramebufferTexture2D = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1472 TglGenerateMipmap = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1473 TglGenFramebuffers = procedure(n: GLsizei; aFramebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1474 TglGenRenderbuffers = procedure(n: GLsizei; aRenderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1475 TglGetActiveAttrib = procedure(aProgram: GLuint; aIndex: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSize: PGLint; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1476 TglGetActiveUniform = procedure(aProgram: GLuint; aIndex: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSize: PGLint; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1477 TglGetAttachedShaders = procedure(aProgram: GLuint; aMaxcount: GLsizei; aCount: PGLsizei; aShaders: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1478 TglGetAttribLocation = function (aProgram: GLuint; const aName: PGLchar): Integer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1479 TglGetFramebufferAttachmentParameteriv = procedure(aTarget: GLenum; aAttachment: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1480 TglGetProgramiv = procedure(aProgram: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1481 TglGetProgramInfoLog = procedure(aProgram: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aInfolog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1482 TglGetRenderbufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1483 TglGetShaderiv = procedure(aShader: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1484 TglGetShaderInfoLog = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aInfolog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1485 TglGetShaderPrecisionFormat = procedure(aShadertype: GLenum; aPrecisiontype: GLenum; aRange: PGLint; aPrecision: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1486 TglGetShaderSource = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSource: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1487 TglGetUniformfv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1488 TglGetUniformiv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1489 TglGetUniformLocation = function (aProgram: GLuint; const aName: PGLchar): Integer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1490 TglGetVertexAttribfv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1491 TglGetVertexAttribiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1492 TglGetVertexAttribPointerv = procedure(aIndex: GLuint; aPname: GLenum; aPointer: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1493 TglIsFramebuffer = function (aFramebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1494 TglIsProgram = function (aProgram: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1495 TglIsRenderbuffer = function (aRenderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1496 TglIsShader = function (aShader: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1497 TglLinkProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1498 TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1499 TglRenderbufferStorage = procedure(aTarget: GLenum; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1500 TglShaderBinary = procedure(n: GLsizei; const aShaders: PGLuint; aBinaryformat: GLenum; const aBinary: PGLvoid; aLength: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1501 TglShaderSource = procedure(aShader: GLuint; aCount: GLsizei; const aString: PPGLchar; const aLength: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1502 TglStencilFuncSeparate = procedure(aFace: GLenum; aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1503 TglStencilMaskSeparate = procedure(aFace: GLenum; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1504 TglStencilOpSeparate = procedure(aFace: GLenum; aFail: GLenum; aZfail: GLenum; aZpass: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1505 TglUniform1f = procedure(aLocation: GLint; x: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1506 TglUniform1fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1507 TglUniform1i = procedure(aLocation: GLint; x: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1508 TglUniform1iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1509 TglUniform2f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1510 TglUniform2fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1511 TglUniform2i = procedure(aLocation: GLint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1512 TglUniform2iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1513 TglUniform3f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1514 TglUniform3fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1515 TglUniform3i = procedure(aLocation: GLint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1516 TglUniform3iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1517 TglUniform4f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1518 TglUniform4fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1519 TglUniform4i = procedure(aLocation: GLint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1520 TglUniform4iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1521 TglUniformMatrix2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1522 TglUniformMatrix3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1523 TglUniformMatrix4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1524 TglUseProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1525 TglValidateProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1526 TglVertexAttrib1f = procedure(aIndex: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1527 TglVertexAttrib1fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1528 TglVertexAttrib2f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1529 TglVertexAttrib2fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1530 TglVertexAttrib3f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1531 TglVertexAttrib3fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1532 TglVertexAttrib4f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1533 TglVertexAttrib4fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1534 TglVertexAttribPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aStride: GLsizei; const aPtr: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1536 { ============================================== OpenGL ES 3.0 ======================================================= }
1537 TglReadBuffer = procedure(aSrc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1538 TglDrawRangeElements = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1539 TglTexImage3D = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aBorder: GLint; aFormat: GLenum; aType: GLenum; const aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1540 TglTexSubImage3D = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aType: GLenum; const aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1541 TglCopyTexSubImage3D = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1542 TglCompressedTexImage3D = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aBorder: GLint; aImageSize: GLsizei; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1543 TglCompressedTexSubImage3D = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aImageSize: GLsizei; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1544 TglGenQueries = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1545 TglDeleteQueries = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1546 TglIsQuery = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1547 TglBeginQuery = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1548 TglEndQuery = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1549 TglGetQueryiv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1550 TglGetQueryObjectuiv = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1551 TglUnmapBuffer = function (aTarget: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1552 TglGetBufferPointerv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1553 TglDrawBuffers = procedure(n: GLsizei; const aBuffers: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1554 TglUniformMatrix2x3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1555 TglUniformMatrix3x2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1556 TglUniformMatrix2x4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1557 TglUniformMatrix4x2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1558 TglUniformMatrix3x4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1559 TglUniformMatrix4x3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1560 TglBlitFramebuffer = procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; aMask: GLbitfield; aFilter: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1561 TglRenderbufferStorageMultisample = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1562 TglFramebufferTextureLayer = procedure(aTarget: GLenum; aAttachment: GLenum; aTexture: GLuint; aLevel: GLint; aLayer: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1563 TglMapBufferRange = function (aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr; aAccess: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1564 TglFlushMappedBufferRange = procedure(aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1565 TglBindVertexArray = procedure(aArray: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1566 TglDeleteVertexArrays = procedure(n: GLsizei; const aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1567 TglGenVertexArrays = procedure(n: GLsizei; aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1568 TglIsVertexArray = function (aArray: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1569 TglGetIntegeriv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1570 TglBeginTransformFeedback = procedure(aPrimitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1571 TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1572 TglBindBufferRange = procedure(aTarget: GLenum; aIndex: GLuint; aBuffer: GLuint; aOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1573 TglBindBufferBase = procedure(aTarget: GLenum; aIndex: GLuint; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1574 TglTransformFeedbackVaryings = procedure(aProgram: GLuint; aCount: GLsizei; const aVaryings: PPGLchar; aBufferMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1575 TglGetTransformFeedbackVarying = procedure(aProgram: GLuint; aIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aSize: PGLsizei; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1576 TglVertexAttribIPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1577 TglGetVertexAttribIiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1578 TglGetVertexAttribIuiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1579 TglVertexAttribI4i = procedure(aIndex: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1580 TglVertexAttribI4ui = procedure(aIndex: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1581 TglVertexAttribI4iv = procedure(aIndex: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1582 TglVertexAttribI4uiv = procedure(aIndex: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1583 TglGetUniformuiv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1584 TglGetFragDataLocation = function (aProgram: GLuint; const aName: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1585 TglUniform1ui = procedure(aLocation: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1586 TglUniform2ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1587 TglUniform3ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1588 TglUniform4ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1589 TglUniform1uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1590 TglUniform2uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1591 TglUniform3uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1592 TglUniform4uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1593 TglClearBufferiv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1594 TglClearBufferuiv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1595 TglClearBufferfv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1596 TglClearBufferfi = procedure(aBuffer: GLenum; aDrawbuffer: GLint; aDepth: GLfloat; aStencil: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1597 TglGetStringi = function (aName: GLenum; aIndex: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1598 TglCopyBufferSubData = procedure(aReadTarget: GLenum; aWriteTarget: GLenum; aReadOffset: GLintptr; aWriteOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1599 TglGetUniformIndices = procedure(aProgram: GLuint; aUniformCount: GLsizei; const aUniformNames: PPGLchar; aUniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1600 TglGetActiveUniformsiv = procedure(aProgram: GLuint; aUniformCount: GLsizei; const aUniformIndices: PGLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1601 TglGetUniformBlockIndex = function (aProgram: GLuint; const aUniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1602 TglGetActiveUniformBlockiv = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1603 TglGetActiveUniformBlockName = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aUniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1604 TglUniformBlockBinding = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aUniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1605 TglDrawArraysInstanced = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aInstancecount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1606 TglDrawElementsInstanced = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid; aInstancecount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1607 TglFenceSync = function (aCondition: GLenum; aFlags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1608 TglIsSync = function (aSync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1609 TglDeleteSync = procedure(aSync: GLsync); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1610 TglClientWaitSync = function (aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1611 TglWaitSync = procedure(aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1612 TglGetInteger64v = procedure(aPname: GLenum; aData: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1613 TglGetSynciv = procedure(aSync: GLsync; aPname: GLenum; aBufSize: GLsizei; aLength: PGLsizei; aValues: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1614 TglGetInteger64iv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1615 TglGetBufferParameteri64v = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1616 TglGenSamplers = procedure(aCount: GLsizei; aSamplers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1617 TglDeleteSamplers = procedure(aCount: GLsizei; const aSamplers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1618 TglIsSampler = function (aSampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1619 TglBindSampler = procedure(aUnit: GLuint; aSampler: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1620 TglSamplerParameteri = procedure(aSampler: GLuint; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1621 TglSamplerParameteriv = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1622 TglSamplerParameterf = procedure(aSampler: GLuint; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1623 TglSamplerParameterfv = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1624 TglGetSamplerParameteriv = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1625 TglGetSamplerParameterfv = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1626 TglVertexAttribDivisor = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1627 TglBindTransformFeedback = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1628 TglDeleteTransformFeedbacks = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1629 TglGenTransformFeedbacks = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1630 TglIsTransformFeedback = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1631 TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1632 TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1633 TglGetProgramBinary = procedure(aProgram: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aBinaryFormat: PGLenum; aBinary: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1634 TglProgramBinary = procedure(aProgram: GLuint; aBinaryFormat: GLenum; const aBinary: PGLvoid; aLength: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1635 TglProgramParameteri = procedure(aProgram: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1636 TglInvalidateFramebuffer = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1637 TglInvalidateSubFramebuffer = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1638 TglTexStorage2D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1639 TglTexStorage3D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1640 TglGetInternalformativ = procedure(aTarget: GLenum; aInternalformat: GLenum; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1642 { ============================================== OpenGL ES 3.1 ======================================================= }
1643 TglDispatchCompute = procedure(aNumGroupsX: GLuint; aNumGroupsY: GLuint; aNumGroupsZ: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1644 TglDispatchComputeIndirect = procedure(aIndirect: GLintptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1645 TglDrawArraysIndirect = procedure(aMode: GLenum; const aIndirect: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1646 TglDrawElementsIndirect = procedure(aMode: GLenum; aType: GLenum; const aIndirect: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1647 TglFramebufferParameteri = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1648 TglGetFramebufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1649 TglGetProgramInterfaceiv = procedure(aProgram: GLuint; aProgramInterface: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1650 TglGetProgramResourceIndex = function (aProgram: GLuint; aProgramInterface: GLenum; const aName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1651 TglGetProgramResourceName = procedure(aProgram: GLuint; aProgramInterface: GLenum; aIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1652 TglGetProgramResourceiv = procedure(aProgram: GLuint; aProgramInterface: GLenum; aIndex: GLuint; aPropCount: GLsizei; const aProps: PGLenum; aBufSize: GLsizei; aLength: PGLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1653 TglGetProgramResourceLocation = function (aProgram: GLuint; aProgramInterface: GLenum; const aName: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1654 TglUseProgramStages = procedure(aPipeline: GLuint; aStages: GLbitfield; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1655 TglActiveShaderProgram = procedure(aPipeline: GLuint; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1656 TglCreateShaderProgramv = function (aType: GLenum; aCount: GLsizei; const aStrings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1657 TglBindProgramPipeline = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1658 TglDeleteProgramPipelines = procedure(n: GLsizei; const aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1659 TglGenProgramPipelines = procedure(n: GLsizei; aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1660 TglIsProgramPipeline = function (aPipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1661 TglGetProgramPipelineiv = procedure(aPipeline: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1662 TglProgramUniform1i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1663 TglProgramUniform2i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1664 TglProgramUniform3i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1665 TglProgramUniform4i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1666 TglProgramUniform1ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1667 TglProgramUniform2ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1668 TglProgramUniform3ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1669 TglProgramUniform4ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1670 TglProgramUniform1f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1671 TglProgramUniform2f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1672 TglProgramUniform3f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1673 TglProgramUniform4f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1674 TglProgramUniform1iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1675 TglProgramUniform2iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1676 TglProgramUniform3iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1677 TglProgramUniform4iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1678 TglProgramUniform1uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1679 TglProgramUniform2uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1680 TglProgramUniform3uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1681 TglProgramUniform4uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1682 TglProgramUniform1fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1683 TglProgramUniform2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1684 TglProgramUniform3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1685 TglProgramUniform4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1686 TglProgramUniformMatrix2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1687 TglProgramUniformMatrix3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1688 TglProgramUniformMatrix4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1689 TglProgramUniformMatrix2x3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1690 TglProgramUniformMatrix3x2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1691 TglProgramUniformMatrix2x4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1692 TglProgramUniformMatrix4x2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1693 TglProgramUniformMatrix3x4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1694 TglProgramUniformMatrix4x3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1695 TglValidateProgramPipeline = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1696 TglGetProgramPipelineInfoLog = procedure(aPipeline: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aInfoLog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1697 TglBindImageTexture = procedure(aUnit: GLuint; aTexture: GLuint; aLevel: GLint; aLayered: GLboolean; aLayer: GLint; aAccess: GLenum; aFormat: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1698 TglGetBooleaniv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1699 TglMemoryBarrier = procedure(aBarriers: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1700 TglMemoryBarrierByRegion = procedure(aBarriers: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1701 TglTexStorage2DMultisample = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aFixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1702 TglGetMultisamplefv = procedure(aPname: GLenum; aIndex: GLuint; aVal: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1703 TglSampleMaski = procedure(aMaskNumber: GLuint; aMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1704 TglGetTexLevelParameteriv = procedure(aTarget: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1705 TglGetTexLevelParameterfv = procedure(aTarget: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1706 TglBindVertexBuffer = procedure(aBindingindex: GLuint; aBuffer: GLuint; aOffset: GLintptr; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1707 TglVertexAttribFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1708 TglVertexAttribIFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1709 TglVertexAttribBinding = procedure(aAttribindex: GLuint; aBindingindex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1710 TglVertexBindingDivisor = procedure(aBindingindex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1713 { ============================================== OpenGL ES 1.0 ======================================================= }
1714 { Available only in Common profile }
1715 glAlphaFunc: TglAlphaFunc;
1716 glClearColor: TglClearColor;
1717 glClearDepthf: TglClearDepthf;
1718 glClipPlanef: TglClipPlanef;
1719 glColor4f: TglColor4f;
1720 glDepthRangef: TglDepthRangef;
1723 glFrustumf: TglFrustumf;
1724 glGetClipPlanef: TglGetClipPlanef;
1725 glGetFloatv: TglGetFloatv;
1726 glGetLightfv: TglGetLightfv;
1727 glGetMaterialfv: TglGetMaterialfv;
1728 glGetTexEnvfv: TglGetTexEnvfv;
1729 glGetTexParameterfv: TglGetTexParameterfv;
1730 glLightModelf: TglLightModelf;
1731 glLightModelfv: TglLightModelfv;
1732 glLightf: TglLightf;
1733 glLightfv: TglLightfv;
1734 glLineWidth: TglLineWidth;
1735 glLoadMatrixf: TglLoadMatrixf;
1736 glMaterialf: TglMaterialf;
1737 glMaterialfv: TglMaterialfv;
1738 glMultMatrixf: TglMultMatrixf;
1739 glMultiTexCoord4f: TglMultiTexCoord4f;
1740 glNormal3f: TglNormal3f;
1741 glOrthof: TglOrthof;
1742 glPointParameterf: TglPointParameterf;
1743 glPointParameterfv: TglPointParameterfv;
1744 glPointSize: TglPointSize;
1745 glPolygonOffset: TglPolygonOffset;
1746 glRotatef: TglRotatef;
1747 glScalef: TglScalef;
1748 glTexEnvf: TglTexEnvf;
1749 glTexEnvfv: TglTexEnvfv;
1750 glTexParameterf: TglTexParameterf;
1751 glTexParameterfv: TglTexParameterfv;
1752 glTranslatef: TglTranslatef;
1754 { Available in both Common and Common-Lite profiles }
1755 glActiveTexture: TglActiveTexture;
1756 glAlphaFuncx: TglAlphaFuncx;
1757 glBindBuffer: TglBindBuffer;
1758 glBindTexture: TglBindTexture;
1759 glBlendFunc: TglBlendFunc;
1760 glBufferData: TglBufferData;
1761 glBufferSubData: TglBufferSubData;
1763 glClearColorx: TglClearColorx;
1764 glClearDepthx: TglClearDepthx;
1765 glClearStencil: TglClearStencil;
1766 glClientActiveTexture: TglClientActiveTexture;
1767 glClipPlanex: TglClipPlanex;
1768 glColor4ub: TglColor4ub;
1769 glColor4x: TglColor4x;
1770 glColorMask: TglColorMask;
1771 glColorPointer: TglColorPointer;
1772 glCompressedTexImage2D: TglCompressedTexImage2D;
1773 glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
1774 glCopyTexImage2D: TglCopyTexImage2D;
1775 glCopyTexSubImage2D: TglCopyTexSubImage2D;
1776 glCullFace: TglCullFace;
1777 glDeleteBuffers: TglDeleteBuffers;
1778 glDeleteTextures: TglDeleteTextures;
1779 glDepthFunc: TglDepthFunc;
1780 glDepthMask: TglDepthMask;
1781 glDepthRangex: TglDepthRangex;
1782 glDisable: TglDisable;
1783 glDisableClientState: TglDisableClientState;
1784 glDrawArrays: TglDrawArrays;
1785 glDrawElements: TglDrawElements;
1786 glEnable: TglEnable;
1787 glEnableClientState: TglEnableClientState;
1788 glFinish: TglFinish;
1792 glFrontFace: TglFrontFace;
1793 glFrustumx: TglFrustumx;
1794 glGetBooleanv: TglGetBooleanv;
1795 glGetBufferParameteriv: TglGetBufferParameteriv;
1796 glGetClipPlanex: TglGetClipPlanex;
1797 glGenBuffers: TglGenBuffers;
1798 glGenTextures: TglGenTextures;
1799 glGetError: TglGetError;
1800 glGetFixedv: TglGetFixedv;
1801 glGetIntegerv: TglGetIntegerv;
1802 glGetLightxv: TglGetLightxv;
1803 glGetMaterialxv: TglGetMaterialxv;
1804 glGetPointerv: TglGetPointerv;
1805 glGetString: TglGetString;
1806 glGetTexEnviv: TglGetTexEnviv;
1807 glGetTexEnvxv: TglGetTexEnvxv;
1808 glGetTexParameteriv: TglGetTexParameteriv;
1809 glGetTexParameterxv: TglGetTexParameterxv;
1811 glIsBuffer: TglIsBuffer;
1812 glIsEnabled: TglIsEnabled;
1813 glIsTexture: TglIsTexture;
1814 glLightModelx: TglLightModelx;
1815 glLightModelxv: TglLightModelxv;
1816 glLightx: TglLightx;
1817 glLightxv: TglLightxv;
1818 glLineWidthx: TglLineWidthx;
1819 glLoadIdentity: TglLoadIdentity;
1820 glLoadMatrix: TglLoadMatrix;
1821 glLogicOp: TglLogicOp;
1822 glMaterialx: TglMaterialx;
1823 glMaterialxv: TglMaterialxv;
1824 glMatrixMode: TglMatrixMode;
1825 glMultMatrixx: TglMultMatrixx;
1826 glMultiTexCoord4x: TglMultiTexCoord4x;
1827 glNormal3x: TglNormal3x;
1828 glNormalPointer: TglNormalPointer;
1829 glOrthox: TglOrthox;
1830 glPixelStorei: TglPixelStorei;
1831 glPointParameterx: TglPointParameterx;
1832 glPointParameterxv: TglPointParameterxv;
1833 glPointSizex: TglPointSizex;
1834 glPolygonOffsetx: TglPolygonOffsetx;
1835 glPopMatrix: TglPopMatrix;
1836 glPushMatrix: TglPushMatrix;
1837 glReadPixels: TglReadPixels;
1838 glRotatex: TglRotatex;
1839 glSampleCoverage: TglSampleCoverage;
1840 glSampleCoveragex: TglSampleCoveragex;
1841 glScalex: TglScalex;
1842 glScissor: TglScissor;
1843 glShadeModel: TglShadeModel;
1844 glStencilFunc: TglStencilFunc;
1845 glStencilMask: TglStencilMask;
1846 glStencilOp: TglStencilOp;
1847 glTexCoordPointer: TglTexCoordPointer;
1848 glTexEnvi: TglTexEnvi;
1849 glTexEnvx: TglTexEnvx;
1850 glTexEnviv: TglTexEnviv;
1851 glTexEnvxv: TglTexEnvxv;
1852 glTexImage2D: TglTexImage2D;
1853 glTexParameteri: TglTexParameteri;
1854 glTexParameterx: TglTexParameterx;
1855 glTexParameteriv: TglTexParameteriv;
1856 glTexParameterxv: TglTexParameterxv;
1857 glTexSubImage2D: TglTexSubImage2D;
1858 glTranslatex: TglTranslatex;
1859 glVertexPointer: TglVertexPointer;
1860 glViewport: TglViewport;
1862 { ============================================== OpenGL ES 2.0 ======================================================= }
1863 glAttachShader: TglAttachShader;
1864 glBindAttribLocation: TglBindAttribLocation;
1865 glBindFramebuffer: TglBindFramebuffer;
1866 glBindRenderbuffer: TglBindRenderbuffer;
1867 glBlendColor: TglBlendColor;
1868 glBlendEquation: TglBlendEquation;
1869 glBlendEquationSeparate: TglBlendEquationSeparate;
1870 glBlendFuncSeparate: TglBlendFuncSeparate;
1871 glCheckFramebufferStatus: TglCheckFramebufferStatus;
1872 glCompileShader: TglCompileShader;
1873 glCreateProgram: TglCreateProgram;
1874 glCreateShader: TglCreateShader;
1875 glDeleteFramebuffers: TglDeleteFramebuffers;
1876 glDeleteProgram: TglDeleteProgram;
1877 glDeleteRenderbuffers: TglDeleteRenderbuffers;
1878 glDeleteShader: TglDeleteShader;
1879 glDetachShader: TglDetachShader;
1880 glDisableVertexAttribArray: TglDisableVertexAttribArray;
1881 glEnableVertexAttribArray: TglEnableVertexAttribArray;
1882 glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
1883 glFramebufferTexture2D: TglFramebufferTexture2D;
1884 glGenerateMipmap: TglGenerateMipmap;
1885 glGenFramebuffers: TglGenFramebuffers;
1886 glGenRenderbuffers: TglGenRenderbuffers;
1887 glGetActiveAttrib: TglGetActiveAttrib;
1888 glGetActiveUniform: TglGetActiveUniform;
1889 glGetAttachedShaders: TglGetAttachedShaders;
1890 glGetAttribLocation: TglGetAttribLocation;
1891 glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
1892 glGetProgramiv: TglGetProgramiv;
1893 glGetProgramInfoLog: TglGetProgramInfoLog;
1894 glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
1895 glGetShaderiv: TglGetShaderiv;
1896 glGetShaderInfoLog: TglGetShaderInfoLog;
1897 glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
1898 glGetShaderSource: TglGetShaderSource;
1899 glGetUniformfv: TglGetUniformfv;
1900 glGetUniformiv: TglGetUniformiv;
1901 glGetUniformLocation: TglGetUniformLocation;
1902 glGetVertexAttribfv: TglGetVertexAttribfv;
1903 glGetVertexAttribiv: TglGetVertexAttribiv;
1904 glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
1905 glIsFramebuffer: TglIsFramebuffer;
1906 glIsProgram: TglIsProgram;
1907 glIsRenderbuffer: TglIsRenderbuffer;
1908 glIsShader: TglIsShader;
1909 glLinkProgram: TglLinkProgram;
1910 glReleaseShaderCompiler: TglReleaseShaderCompiler;
1911 glRenderbufferStorage: TglRenderbufferStorage;
1912 glShaderBinary: TglShaderBinary;
1913 glShaderSource: TglShaderSource;
1914 glStencilFuncSeparate: TglStencilFuncSeparate;
1915 glStencilMaskSeparate: TglStencilMaskSeparate;
1916 glStencilOpSeparate: TglStencilOpSeparate;
1917 glUniform1f: TglUniform1f;
1918 glUniform1fv: TglUniform1fv;
1919 glUniform1i: TglUniform1i;
1920 glUniform1iv: TglUniform1iv;
1921 glUniform2f: TglUniform2f;
1922 glUniform2fv: TglUniform2fv;
1923 glUniform2i: TglUniform2i;
1924 glUniform2iv: TglUniform2iv;
1925 glUniform3f: TglUniform3f;
1926 glUniform3fv: TglUniform3fv;
1927 glUniform3i: TglUniform3i;
1928 glUniform3iv: TglUniform3iv;
1929 glUniform4f: TglUniform4f;
1930 glUniform4fv: TglUniform4fv;
1931 glUniform4i: TglUniform4i;
1932 glUniform4iv: TglUniform4iv;
1933 glUniformMatrix2fv: TglUniformMatrix2fv;
1934 glUniformMatrix3fv: TglUniformMatrix3fv;
1935 glUniformMatrix4fv: TglUniformMatrix4fv;
1936 glUseProgram: TglUseProgram;
1937 glValidateProgram: TglValidateProgram;
1938 glVertexAttrib1f: TglVertexAttrib1f;
1939 glVertexAttrib1fv: TglVertexAttrib1fv;
1940 glVertexAttrib2f: TglVertexAttrib2f;
1941 glVertexAttrib2fv: TglVertexAttrib2fv;
1942 glVertexAttrib3f: TglVertexAttrib3f;
1943 glVertexAttrib3fv: TglVertexAttrib3fv;
1944 glVertexAttrib4f: TglVertexAttrib4f;
1945 glVertexAttrib4fv: TglVertexAttrib4fv;
1946 glVertexAttribPointer: TglVertexAttribPointer;
1948 { ============================================== OpenGL ES 3.0 ======================================================= }
1949 glReadBuffer: TglReadBuffer;
1950 glDrawRangeElements: TglDrawRangeElements;
1951 glTexImage3D: TglTexImage3D;
1952 glTexSubImage3D: TglTexSubImage3D;
1953 glCopyTexSubImage3D: TglCopyTexSubImage3D;
1954 glCompressedTexImage3D: TglCompressedTexImage3D;
1955 glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
1956 glGenQueries: TglGenQueries;
1957 glDeleteQueries: TglDeleteQueries;
1958 glIsQuery: TglIsQuery;
1959 glBeginQuery: TglBeginQuery;
1960 glEndQuery: TglEndQuery;
1961 glGetQueryiv: TglGetQueryiv;
1962 glGetQueryObjectuiv: TglGetQueryObjectuiv;
1963 glUnmapBuffer: TglUnmapBuffer;
1964 glGetBufferPointerv: TglGetBufferPointerv;
1965 glDrawBuffers: TglDrawBuffers;
1966 glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
1967 glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
1968 glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
1969 glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
1970 glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
1971 glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
1972 glBlitFramebuffer: TglBlitFramebuffer;
1973 glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
1974 glFramebufferTextureLayer: TglFramebufferTextureLayer;
1975 glMapBufferRange: TglMapBufferRange;
1976 glFlushMappedBufferRange: TglFlushMappedBufferRange;
1977 glBindVertexArray: TglBindVertexArray;
1978 glDeleteVertexArrays: TglDeleteVertexArrays;
1979 glGenVertexArrays: TglGenVertexArrays;
1980 glIsVertexArray: TglIsVertexArray;
1981 glGetIntegeriv: TglGetIntegeriv;
1982 glBeginTransformFeedback: TglBeginTransformFeedback;
1983 glEndTransformFeedback: TglEndTransformFeedback;
1984 glBindBufferRange: TglBindBufferRange;
1985 glBindBufferBase: TglBindBufferBase;
1986 glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
1987 glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
1988 glVertexAttribIPointer: TglVertexAttribIPointer;
1989 glGetVertexAttribIiv: TglGetVertexAttribIiv;
1990 glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
1991 glVertexAttribI4i: TglVertexAttribI4i;
1992 glVertexAttribI4ui: TglVertexAttribI4ui;
1993 glVertexAttribI4iv: TglVertexAttribI4iv;
1994 glVertexAttribI4uiv: TglVertexAttribI4uiv;
1995 glGetUniformuiv: TglGetUniformuiv;
1996 glGetFragDataLocation: TglGetFragDataLocation;
1997 glUniform1ui: TglUniform1ui;
1998 glUniform2ui: TglUniform2ui;
1999 glUniform3ui: TglUniform3ui;
2000 glUniform4ui: TglUniform4ui;
2001 glUniform1uiv: TglUniform1uiv;
2002 glUniform2uiv: TglUniform2uiv;
2003 glUniform3uiv: TglUniform3uiv;
2004 glUniform4uiv: TglUniform4uiv;
2005 glClearBufferiv: TglClearBufferiv;
2006 glClearBufferuiv: TglClearBufferuiv;
2007 glClearBufferfv: TglClearBufferfv;
2008 glClearBufferfi: TglClearBufferfi;
2009 glGetStringi: TglGetStringi;
2010 glCopyBufferSubData: TglCopyBufferSubData;
2011 glGetUniformIndices: TglGetUniformIndices;
2012 glGetActiveUniformsiv: TglGetActiveUniformsiv;
2013 glGetUniformBlockIndex: TglGetUniformBlockIndex;
2014 glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
2015 glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
2016 glUniformBlockBinding: TglUniformBlockBinding;
2017 glDrawArraysInstanced: TglDrawArraysInstanced;
2018 glDrawElementsInstanced: TglDrawElementsInstanced;
2019 glFenceSync: TglFenceSync;
2020 glIsSync: TglIsSync;
2021 glDeleteSync: TglDeleteSync;
2022 glClientWaitSync: TglClientWaitSync;
2023 glWaitSync: TglWaitSync;
2024 glGetInteger64v: TglGetInteger64v;
2025 glGetSynciv: TglGetSynciv;
2026 glGetInteger64iv: TglGetInteger64iv;
2027 glGetBufferParameteri64v: TglGetBufferParameteri64v;
2028 glGenSamplers: TglGenSamplers;
2029 glDeleteSamplers: TglDeleteSamplers;
2030 glIsSampler: TglIsSampler;
2031 glBindSampler: TglBindSampler;
2032 glSamplerParameteri: TglSamplerParameteri;
2033 glSamplerParameteriv: TglSamplerParameteriv;
2034 glSamplerParameterf: TglSamplerParameterf;
2035 glSamplerParameterfv: TglSamplerParameterfv;
2036 glGetSamplerParameteriv: TglGetSamplerParameteriv;
2037 glGetSamplerParameterfv: TglGetSamplerParameterfv;
2038 glVertexAttribDivisor: TglVertexAttribDivisor;
2039 glBindTransformFeedback: TglBindTransformFeedback;
2040 glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
2041 glGenTransformFeedbacks: TglGenTransformFeedbacks;
2042 glIsTransformFeedback: TglIsTransformFeedback;
2043 glPauseTransformFeedback: TglPauseTransformFeedback;
2044 glResumeTransformFeedback: TglResumeTransformFeedback;
2045 glGetProgramBinary: TglGetProgramBinary;
2046 glProgramBinary: TglProgramBinary;
2047 glProgramParameteri: TglProgramParameteri;
2048 glInvalidateFramebuffer: TglInvalidateFramebuffer;
2049 glInvalidateSubFramebuffer: TglInvalidateSubFramebuffer;
2050 glTexStorage2D: TglTexStorage2D;
2051 glTexStorage3D: TglTexStorage3D;
2052 glGetInternalformativ: TglGetInternalformativ;
2054 { ============================================== OpenGL ES 3.1 ======================================================= }
2055 glDispatchCompute: TglDispatchCompute;
2056 glDispatchComputeIndirect: TglDispatchComputeIndirect;
2057 glDrawArraysIndirect: TglDrawArraysIndirect;
2058 glDrawElementsIndirect: TglDrawElementsIndirect;
2059 glFramebufferParameteri: TglFramebufferParameteri;
2060 glGetFramebufferParameteriv: TglGetFramebufferParameteriv;
2061 glGetProgramInterfaceiv: TglGetProgramInterfaceiv;
2062 glGetProgramResourceIndex: TglGetProgramResourceIndex;
2063 glGetProgramResourceName: TglGetProgramResourceName;
2064 glGetProgramResourceiv: TglGetProgramResourceiv;
2065 glGetProgramResourceLocation: TglGetProgramResourceLocation;
2066 glUseProgramStages: TglUseProgramStages;
2067 glActiveShaderProgram: TglActiveShaderProgram;
2068 glCreateShaderProgramv: TglCreateShaderProgramv;
2069 glBindProgramPipeline: TglBindProgramPipeline;
2070 glDeleteProgramPipelines: TglDeleteProgramPipelines;
2071 glGenProgramPipelines: TglGenProgramPipelines;
2072 glIsProgramPipeline: TglIsProgramPipeline;
2073 glGetProgramPipelineiv: TglGetProgramPipelineiv;
2074 glProgramUniform1i: TglProgramUniform1i;
2075 glProgramUniform2i: TglProgramUniform2i;
2076 glProgramUniform3i: TglProgramUniform3i;
2077 glProgramUniform4i: TglProgramUniform4i;
2078 glProgramUniform1ui: TglProgramUniform1ui;
2079 glProgramUniform2ui: TglProgramUniform2ui;
2080 glProgramUniform3ui: TglProgramUniform3ui;
2081 glProgramUniform4ui: TglProgramUniform4ui;
2082 glProgramUniform1f: TglProgramUniform1f;
2083 glProgramUniform2f: TglProgramUniform2f;
2084 glProgramUniform3f: TglProgramUniform3f;
2085 glProgramUniform4f: TglProgramUniform4f;
2086 glProgramUniform1iv: TglProgramUniform1iv;
2087 glProgramUniform2iv: TglProgramUniform2iv;
2088 glProgramUniform3iv: TglProgramUniform3iv;
2089 glProgramUniform4iv: TglProgramUniform4iv;
2090 glProgramUniform1uiv: TglProgramUniform1uiv;
2091 glProgramUniform2uiv: TglProgramUniform2uiv;
2092 glProgramUniform3uiv: TglProgramUniform3uiv;
2093 glProgramUniform4uiv: TglProgramUniform4uiv;
2094 glProgramUniform1fv: TglProgramUniform1fv;
2095 glProgramUniform2fv: TglProgramUniform2fv;
2096 glProgramUniform3fv: TglProgramUniform3fv;
2097 glProgramUniform4fv: TglProgramUniform4fv;
2098 glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
2099 glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
2100 glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
2101 glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
2102 glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
2103 glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
2104 glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
2105 glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
2106 glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
2107 glValidateProgramPipeline: TglValidateProgramPipeline;
2108 glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
2109 glBindImageTexture: TglBindImageTexture;
2110 glGetBooleaniv: TglGetBooleaniv;
2111 glMemoryBarrier: TglMemoryBarrier;
2112 glMemoryBarrierByRegion: TglMemoryBarrierByRegion;
2113 glTexStorage2DMultisample: TglTexStorage2DMultisample;
2114 glGetMultisamplefv: TglGetMultisamplefv;
2115 glSampleMaski: TglSampleMaski;
2116 glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
2117 glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
2118 glBindVertexBuffer: TglBindVertexBuffer;
2119 glVertexAttribFormat: TglVertexAttribFormat;
2120 glVertexAttribIFormat: TglVertexAttribIFormat;
2121 glVertexAttribBinding: TglVertexAttribBinding;
2122 glVertexBindingDivisor: TglVertexBindingDivisor;
2124 { =============================================== Extensions ========================================================= }
2125 { GL_KHR_blend_equation_advanced }
2127 GL_MULTIPLY_KHR = $9294;
2128 GL_SCREEN_KHR = $9295;
2129 GL_OVERLAY_KHR = $9296;
2130 GL_DARKEN_KHR = $9297;
2131 GL_LIGHTEN_KHR = $9298;
2132 GL_COLORDODGE_KHR = $9299;
2133 GL_COLORBURN_KHR = $929A;
2134 GL_HARDLIGHT_KHR = $929B;
2135 GL_SOFTLIGHT_KHR = $929C;
2136 GL_DIFFERENCE_KHR = $929E;
2137 GL_EXCLUSION_KHR = $92A0;
2138 GL_HSL_HUE_KHR = $92AD;
2139 GL_HSL_SATURATION_KHR = $92AE;
2140 GL_HSL_COLOR_KHR = $92AF;
2141 GL_HSL_LUMINOSITY_KHR = $92B0;
2143 TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2145 glBlendBarrierKHR: TglBlendBarrierKHR;
2147 { GL_KHR_blend_equation_advanced_coherent }
2149 GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
2151 { GL_KHR_context_flush_control }
2153 GL_CONTEXT_RELEASE_BEHAVIOR_KHR = $82FB;
2154 GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = $82FC;
2159 GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = $8242;
2160 GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = $8243;
2161 GL_DEBUG_CALLBACK_FUNCTION_KHR = $8244;
2162 GL_DEBUG_CALLBACK_USER_PARAM_KHR = $8245;
2163 GL_DEBUG_SOURCE_API_KHR = $8246;
2164 GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = $8247;
2165 GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = $8248;
2166 GL_DEBUG_SOURCE_THIRD_PARTY_KHR = $8249;
2167 GL_DEBUG_SOURCE_APPLICATION_KHR = $824A;
2168 GL_DEBUG_SOURCE_OTHER_KHR = $824B;
2169 GL_DEBUG_TYPE_ERROR_KHR = $824C;
2170 GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = $824D;
2171 GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = $824E;
2172 GL_DEBUG_TYPE_PORTABILITY_KHR = $824F;
2173 GL_DEBUG_TYPE_PERFORMANCE_KHR = $8250;
2174 GL_DEBUG_TYPE_OTHER_KHR = $8251;
2175 GL_DEBUG_TYPE_MARKER_KHR = $8268;
2176 GL_DEBUG_TYPE_PUSH_GROUP_KHR = $8269;
2177 GL_DEBUG_TYPE_POP_GROUP_KHR = $826A;
2178 GL_DEBUG_SEVERITY_NOTIFICATION_KHR = $826B;
2179 GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = $826C;
2180 GL_DEBUG_GROUP_STACK_DEPTH_KHR = $826D;
2181 GL_BUFFER_KHR = $82E0;
2182 GL_SHADER_KHR = $82E1;
2183 GL_PROGRAM_KHR = $82E2;
2184 GL_VERTEX_ARRAY_KHR = $8074;
2185 GL_QUERY_KHR = $82E3;
2186 GL_SAMPLER_KHR = $82E6;
2187 GL_MAX_LABEL_LENGTH_KHR = $82E8;
2188 GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = $9143;
2189 GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = $9144;
2190 GL_DEBUG_LOGGED_MESSAGES_KHR = $9145;
2191 GL_DEBUG_SEVERITY_HIGH_KHR = $9146;
2192 GL_DEBUG_SEVERITY_MEDIUM_KHR = $9147;
2193 GL_DEBUG_SEVERITY_LOW_KHR = $9148;
2194 GL_DEBUG_OUTPUT_KHR = $92E0;
2195 GL_CONTEXT_FLAG_DEBUG_BIT_KHR = $00000002;
2196 GL_STACK_OVERFLOW_KHR = $0503;
2197 GL_STACK_UNDERFLOW_KHR = $0504;
2199 TglDebugProcKHR = procedure(aSource: GLenum; aType: GLenum; aId: GLuint; aSeverity: GLenum; aLength: GLsizei; const aMessage: PGLchar; const aUserParam: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2200 TglDebugMessageControlKHR = procedure(aSource: GLenum; aType: GLenum; aSeverity: GLenum; aCount: GLsizei; const aIds: PGLuint; aEnabled: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2201 TglDebugMessageInsertKHR = procedure(aSource: GLenum; aType: GLenum; aId: GLuint; aSeverity: GLenum; aLength: GLsizei; const aBuf: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2202 TglDebugMessageCallbackKHR = procedure(aCallback: TglDebugProcKHR; const aUserParam: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2203 TglGetDebugMessageLogKHR = function (aCount: GLuint; aBufSize: GLsizei; aSources: PGLenum; aTypes: PGLenum; aIds: PGLuint; aSeverities: PGLenum; aLengths: PGLsizei; aMessageLog: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2204 TglPushDebugGroupKHR = procedure(aSource: GLenum; aId: GLuint; aLength: GLsizei; const aMessage: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2205 TglPopDebugGroupKHR = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2206 TglObjectLabelKHR = procedure(aIdentifier: GLenum; aName: GLuint; aLength: GLsizei; const aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2207 TglGetObjectLabelKHR = procedure(aIdentifier: GLenum; aName: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2208 TglObjectPtrLabelKHR = procedure(const aPtr: Pointer; aLength: GLsizei; const aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2209 TglGetObjectPtrLabelKHR = procedure(const aPtr: Pointer; aBufSize: GLsizei; aLength: PGLsizei; aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2210 TglGetPointervKHR = procedure(aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2212 glDebugMessageControlKHR: TglDebugMessageControlKHR;
2213 glDebugMessageInsertKHR: TglDebugMessageInsertKHR;
2214 glDebugMessageCallbackKHR: TglDebugMessageCallbackKHR;
2215 glGetDebugMessageLogKHR: TglGetDebugMessageLogKHR;
2216 glPushDebugGroupKHR: TglPushDebugGroupKHR;
2217 glPopDebugGroupKHR: TglPopDebugGroupKHR;
2218 glObjectLabelKHR: TglObjectLabelKHR;
2219 glGetObjectLabelKHR: TglGetObjectLabelKHR;
2220 glObjectPtrLabelKHR: TglObjectPtrLabelKHR;
2221 glGetObjectPtrLabelKHR: TglGetObjectPtrLabelKHR;
2222 glGetPointervKHR: TglGetPointervKHR;
2224 { GL_KHR_robust_buffer_access_behavior }
2227 { GL_KHR_robustness }
2229 GL_CONTEXT_ROBUST_ACCESS_KHR = $90F3;
2230 GL_LOSE_CONTEXT_ON_RESET_KHR = $8252;
2231 GL_GUILTY_CONTEXT_RESET_KHR = $8253;
2232 GL_INNOCENT_CONTEXT_RESET_KHR = $8254;
2233 GL_UNKNOWN_CONTEXT_RESET_KHR = $8255;
2234 GL_RESET_NOTIFICATION_STRATEGY_KHR = $8256;
2235 GL_NO_RESET_NOTIFICATION_KHR = $8261;
2236 GL_CONTEXT_LOST_KHR = $0507;
2238 TglGetGraphicsResetStatusKHR = function : GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2239 TglReadnPixelsKHR = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aBufSize: GLsizei; aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2240 TglGetnUniformfvKHR = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2241 TglGetnUniformivKHR = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2242 TglGetnUniformuivKHR = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2244 glGetGraphicsResetStatusKHR: TglGetGraphicsResetStatusKHR;
2245 glReadnPixelsKHR: TglReadnPixelsKHR;
2246 glGetnUniformfvKHR: TglGetnUniformfvKHR;
2247 glGetnUniformivKHR: TglGetnUniformivKHR;
2248 glGetnUniformuivKHR: TglGetnUniformuivKHR;
2250 { GL_KHR_texture_compression_astc_hdr }
2252 GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
2253 GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
2254 GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
2255 GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
2256 GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
2257 GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
2258 GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
2259 GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
2260 GL_COMPRESSED_RGBA_ASTC_10x5_KHR = $93B8;
2261 GL_COMPRESSED_RGBA_ASTC_10x6_KHR = $93B9;
2262 GL_COMPRESSED_RGBA_ASTC_10x8_KHR = $93BA;
2263 GL_COMPRESSED_RGBA_ASTC_10x10_KHR = $93BB;
2264 GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
2265 GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
2266 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
2267 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
2268 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
2269 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
2270 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
2271 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
2272 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
2273 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
2274 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
2275 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
2276 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
2277 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
2278 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
2279 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
2281 { GL_KHR_texture_compression_astc_ldr }
2284 { GL_OES_EGL_image }
2286 GLeglImageOES = Pointer;
2287 TglEGLImageTargetTexture2DOES = procedure(aTarget: GLenum; aImage: GLeglImageOES); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2288 TglEGLImageTargetRenderbufferStorageOES = procedure(aTarget: GLenum; aImage: GLeglImageOES); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2290 glEGLImageTargetTexture2DOES: TglEGLImageTargetTexture2DOES;
2291 glEGLImageTargetRenderbufferStorageOES: TglEGLImageTargetRenderbufferStorageOES;
2293 { GL_OES_EGL_image_external }
2295 GL_TEXTURE_EXTERNAL_OES = $8D65;
2296 GL_TEXTURE_BINDING_EXTERNAL_OES = $8D67;
2297 GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = $8D68;
2298 GL_SAMPLER_EXTERNAL_OES = $8D66;
2300 { GL_OES_compressed_ETC1_RGB8_sub_texture }
2303 { GL_OES_compressed_ETC1_RGB8_texture }
2305 GL_ETC1_RGB8_OES = $8D64;
2307 { GL_OES_compressed_paletted_texture }
2309 GL_PALETTE4_RGB8_OES = $8B90;
2310 GL_PALETTE4_RGBA8_OES = $8B91;
2311 GL_PALETTE4_R5_G6_B5_OES = $8B92;
2312 GL_PALETTE4_RGBA4_OES = $8B93;
2313 GL_PALETTE4_RGB5_A1_OES = $8B94;
2314 GL_PALETTE8_RGB8_OES = $8B95;
2315 GL_PALETTE8_RGBA8_OES = $8B96;
2316 GL_PALETTE8_R5_G6_B5_OES = $8B97;
2317 GL_PALETTE8_RGBA4_OES = $8B98;
2318 GL_PALETTE8_RGB5_A1_OES = $8B99;
2322 GL_DEPTH_COMPONENT24_OES = $81A6;
2326 GL_DEPTH_COMPONENT32_OES = $81A7;
2328 { GL_OES_depth_texture }
2331 { GL_OES_element_index_uint }
2334 { GL_OES_fbo_render_mipmap }
2337 { GL_OES_fragment_precision_high }
2340 { GL_OES_get_program_binary }
2342 GL_PROGRAM_BINARY_LENGTH_OES = $8741;
2343 GL_NUM_PROGRAM_BINARY_FORMATS_OES = $87FE;
2344 GL_PROGRAM_BINARY_FORMATS_OES = $87FF;
2346 TglGetProgramBinaryOES = procedure(aProgram: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aBinaryFormat: PGLenum; aBinary: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2347 TglProgramBinaryOES = procedure(aProgram: GLuint; aBinaryFormat: GLenum; const aBinary: Pointer; aLength: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2349 glGetProgramBinaryOES: TglGetProgramBinaryOES;
2350 glProgramBinaryOES: TglProgramBinaryOES;
2352 { GL_OES_mapbuffer }
2354 GL_WRITE_ONLY_OES = $88B9;
2355 GL_BUFFER_ACCESS_OES = $88BB;
2356 GL_BUFFER_MAPPED_OES = $88BC;
2357 GL_BUFFER_MAP_POINTER_OES = $88BD;
2359 TglMapBufferOES = function (aTarget: GLenum; aAccess: GLenum): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2360 TglUnmapBufferOES = function (aTarget: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2361 TglGetBufferPointervOES = procedure(aTarget: GLenum; aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2363 glMapBufferOES: TglMapBufferOES;
2364 glUnmapBufferOES: TglUnmapBufferOES;
2365 glGetBufferPointervOES: TglGetBufferPointervOES;
2367 { GL_OES_packed_depth_stencil }
2369 GL_DEPTH_STENCIL_OES = $84F9;
2370 GL_UNSIGNED_INT_24_8_OES = $84FA;
2371 GL_DEPTH24_STENCIL8_OES = $88F0;
2373 { GL_OES_required_internalformat }
2375 GL_ALPHA8_OES = $803C;
2376 GL_DEPTH_COMPONENT16_OES = $81A5;
2377 GL_LUMINANCE4_ALPHA4_OES = $8043;
2378 GL_LUMINANCE8_ALPHA8_OES = $8045;
2379 GL_LUMINANCE8_OES = $8040;
2380 GL_RGBA4_OES = $8056;
2381 GL_RGB5_A1_OES = $8057;
2382 GL_RGB565_OES = $8D62;
2383 GL_RGB8_OES = $8051;
2384 GL_RGBA8_OES = $8058;
2385 GL_RGB10_EXT = $8052;
2386 GL_RGB10_A2_EXT = $8059;
2388 { GL_OES_rgb8_rgba8 }
2391 { GL_OES_sample_shading }
2393 GL_SAMPLE_SHADING_OES = $8C36;
2394 GL_MIN_SAMPLE_SHADING_VALUE_OES = $8C37;
2396 TglMinSampleShadingOES = procedure(aValue: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2398 glMinSampleShadingOES: TglMinSampleShadingOES;
2404 { GL_OES_shader_image_atomic }
2407 { GL_OES_shader_multisample_interpolation }
2409 GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = $8E5B;
2410 GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = $8E5C;
2411 GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = $8E5D;
2413 { GL_OES_standard_derivatives }
2415 GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = $8B8B;
2419 GL_STENCIL_INDEX1_OES = $8D46;
2423 GL_STENCIL_INDEX4_OES = $8D47;
2425 { GL_OES_surfaceless_context }
2427 GL_FRAMEBUFFER_UNDEFINED_OES = $8219;
2429 { GL_OES_texture_3D }
2431 GL_TEXTURE_WRAP_R_OES = $8072;
2432 GL_TEXTURE_3D_OES = $806F;
2433 GL_TEXTURE_BINDING_3D_OES = $806A;
2434 GL_MAX_3D_TEXTURE_SIZE_OES = $8073;
2435 GL_SAMPLER_3D_OES = $8B5F;
2436 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = $8CD4;
2438 TglTexImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aBorder: GLint; aFormat: GLenum; aType: GLenum; const aPixels: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2439 TglTexSubImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aType: GLenum; const aPixels: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2440 TglCopyTexSubImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2441 TglCompressedTexImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aBorder: GLint; aImageSize: GLsizei; const aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2442 TglCompressedTexSubImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aImageSize: GLsizei; const aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2443 TglFramebufferTexture3DOES = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint; aZoffset: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2445 glTexImage3DOES: TglTexImage3DOES;
2446 glTexSubImage3DOES: TglTexSubImage3DOES;
2447 glCopyTexSubImage3DOES: TglCopyTexSubImage3DOES;
2448 glCompressedTexImage3DOES: TglCompressedTexImage3DOES;
2449 glCompressedTexSubImage3DOES: TglCompressedTexSubImage3DOES;
2450 glFramebufferTexture3DOES: TglFramebufferTexture3DOES;
2452 { GL_OES_texture_compression_astc }
2454 GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = $93C0;
2455 GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = $93C1;
2456 GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = $93C2;
2457 GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = $93C3;
2458 GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = $93C4;
2459 GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = $93C5;
2460 GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = $93C6;
2461 GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = $93C7;
2462 GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = $93C8;
2463 GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = $93C9;
2464 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = $93E0;
2465 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = $93E1;
2466 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = $93E2;
2467 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = $93E3;
2468 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = $93E4;
2469 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = $93E5;
2470 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = $93E6;
2471 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = $93E7;
2472 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = $93E8;
2473 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = $93E9;
2475 { GL_OES_texture_float }
2478 { GL_OES_texture_float_linear }
2481 { GL_OES_texture_half_float }
2483 GL_HALF_FLOAT_OES = $8D61;
2485 { GL_OES_texture_half_float_linear }
2488 { GL_OES_texture_npot }
2491 { GL_OES_texture_stencil8 }
2493 GL_STENCIL_INDEX_OES = $1901;
2494 GL_STENCIL_INDEX8_OES = $8D48;
2496 { GL_OES_texture_storage_multisample_2d_array }
2498 GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = $9102;
2499 GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = $9105;
2500 GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = $910B;
2501 GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = $910C;
2502 GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = $910D;
2504 TglTexStorage3DMultisampleOES = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2506 glTexStorage3DMultisampleOES: TglTexStorage3DMultisampleOES;
2508 { GL_OES_vertex_array_object }
2510 GL_VERTEX_ARRAY_BINDING_OES = $85B5;
2512 TglBindVertexArrayOES = procedure(aArray: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2513 TglDeleteVertexArraysOES = procedure(n: GLsizei; const aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2514 TglGenVertexArraysOES = procedure(n: GLsizei; aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2515 TglIsVertexArrayOES = function (aArray: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2517 glBindVertexArrayOES: TglBindVertexArrayOES;
2518 glDeleteVertexArraysOES: TglDeleteVertexArraysOES;
2519 glGenVertexArraysOES: TglGenVertexArraysOES;
2520 glIsVertexArrayOES: TglIsVertexArrayOES;
2522 { GL_OES_vertex_half_float }
2525 { GL_OES_vertex_type_10_10_10_2 }
2527 GL_UNSIGNED_INT_10_10_10_2_OES = $8DF6;
2528 GL_INT_10_10_10_2_OES = $8DF7;
2530 { GL_AMD_compressed_3DC_texture }
2532 GL_3DC_X_AMD = $87F9;
2533 GL_3DC_XY_AMD = $87FA;
2535 { GL_AMD_compressed_ATC_texture }
2537 GL_ATC_RGB_AMD = $8C92;
2538 GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = $8C93;
2539 GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = $87EE;
2541 { GL_AMD_performance_monitor }
2543 GL_COUNTER_TYPE_AMD = $8BC0;
2544 GL_COUNTER_RANGE_AMD = $8BC1;
2545 GL_UNSIGNED_INT64_AMD = $8BC2;
2546 GL_PERCENTAGE_AMD = $8BC3;
2547 GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
2548 GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
2549 GL_PERFMON_RESULT_AMD = $8BC6;
2551 TglGetPerfMonitorGroupsAMD = procedure(aNumGroups: PGLint; aGroupsSize: GLsizei; aGroups: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2552 TglGetPerfMonitorCountersAMD = procedure(aGroup: GLuint; aNumCounters: PGLint; aMaxActiveCounters: PGLint; aCounterSize: GLsizei; aCounters: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2553 TglGetPerfMonitorGroupStringAMD = procedure(aGroup: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aGroupString: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2554 TglGetPerfMonitorCounterStringAMD = procedure(aGroup: GLuint; aCounter: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aCounterString: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2555 TglGetPerfMonitorCounterInfoAMD = procedure(aGroup: GLuint; aCounter: GLuint; aPname: GLenum; aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2556 TglGenPerfMonitorsAMD = procedure(n: GLsizei; aMonitors: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2557 TglDeletePerfMonitorsAMD = procedure(n: GLsizei; aMonitors: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2558 TglSelectPerfMonitorCountersAMD = procedure(aMonitor: GLuint; aEnable: GLboolean; aGroup: GLuint; aNumCounters: GLint; aCounterList: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2559 TglBeginPerfMonitorAMD = procedure(aMonitor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2560 TglEndPerfMonitorAMD = procedure(aMonitor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2561 TglGetPerfMonitorCounterDataAMD = procedure(aMonitor: GLuint; aPname: GLenum; aDataSize: GLsizei; aData: PGLuint; aBytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2563 glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
2564 glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
2565 glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
2566 glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
2567 glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
2568 glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
2569 glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
2570 glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
2571 glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
2572 glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
2573 glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
2575 { GL_AMD_program_binary_Z400 }
2577 GL_Z400_BINARY_AMD = $8740;
2579 { GL_ANDROID_extension_pack_es31a }
2582 { GL_ANGLE_depth_texture }
2585 { GL_ANGLE_framebuffer_blit }
2587 GL_READ_FRAMEBUFFER_ANGLE = $8CA8;
2588 GL_DRAW_FRAMEBUFFER_ANGLE = $8CA9;
2589 GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = $8CA6;
2590 GL_READ_FRAMEBUFFER_BINDING_ANGLE = $8CAA;
2592 TglBlitFramebufferANGLE = procedure(aSrcX0: GLint; aSrcY0: GLint; aSrcX1: GLint; aSrcY1: GLint; aDstX0: GLint; aDstY0: GLint; aDstX1: GLint; aDstY1: GLint; aMask: GLbitfield; aFilter: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2594 glBlitFramebufferANGLE: TglBlitFramebufferANGLE;
2596 { GL_ANGLE_framebuffer_multisample }
2598 GL_RENDERBUFFER_SAMPLES_ANGLE = $8CAB;
2599 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = $8D56;
2600 GL_MAX_SAMPLES_ANGLE = $8D57;
2602 TglRenderbufferStorageMultisampleANGLE = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2604 glRenderbufferStorageMultisampleANGLE: TglRenderbufferStorageMultisampleANGLE;
2606 { GL_ANGLE_instanced_arrays }
2608 GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = $88FE;
2610 TglDrawArraysInstancedANGLE = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2611 TglDrawElementsInstancedANGLE = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2612 TglVertexAttribDivisorANGLE = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2614 glDrawArraysInstancedANGLE: TglDrawArraysInstancedANGLE;
2615 glDrawElementsInstancedANGLE: TglDrawElementsInstancedANGLE;
2616 glVertexAttribDivisorANGLE: TglVertexAttribDivisorANGLE;
2618 { GL_ANGLE_pack_reverse_row_order }
2620 GL_PACK_REVERSE_ROW_ORDER_ANGLE = $93A4;
2622 { GL_ANGLE_program_binary }
2624 GL_PROGRAM_BINARY_ANGLE = $93A6;
2626 { GL_ANGLE_texture_compression_dxt3 }
2628 GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = $83F2;
2630 { GL_ANGLE_texture_compression_dxt5 }
2632 GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = $83F3;
2634 { GL_ANGLE_texture_usage }
2636 GL_TEXTURE_USAGE_ANGLE = $93A2;
2637 GL_FRAMEBUFFER_ATTACHMENT_ANGLE = $93A3;
2639 { GL_ANGLE_translated_shader_source }
2641 GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = $93A0;
2643 TglGetTranslatedShaderSourceANGLE = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSource: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2645 glGetTranslatedShaderSourceANGLE: TglGetTranslatedShaderSourceANGLE;
2647 { GL_APPLE_clip_distance }
2649 GL_MAX_CLIP_DISTANCES_APPLE = $0D32;
2650 GL_CLIP_DISTANCE0_APPLE = $3000;
2651 GL_CLIP_DISTANCE1_APPLE = $3001;
2652 GL_CLIP_DISTANCE2_APPLE = $3002;
2653 GL_CLIP_DISTANCE3_APPLE = $3003;
2654 GL_CLIP_DISTANCE4_APPLE = $3004;
2655 GL_CLIP_DISTANCE5_APPLE = $3005;
2656 GL_CLIP_DISTANCE6_APPLE = $3006;
2657 GL_CLIP_DISTANCE7_APPLE = $3007;
2659 { GL_APPLE_color_buffer_packed_float }
2662 { GL_APPLE_copy_texture_levels }
2664 TglCopyTextureLevelsAPPLE = procedure(aDestinationTexture: GLuint; aSourceTexture: GLuint; aSourceBaseLevel: GLint; aSourceLevelCount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2666 glCopyTextureLevelsAPPLE: TglCopyTextureLevelsAPPLE;
2668 { GL_APPLE_framebuffer_multisample }
2670 GL_RENDERBUFFER_SAMPLES_APPLE = $8CAB;
2671 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = $8D56;
2672 GL_MAX_SAMPLES_APPLE = $8D57;
2673 GL_READ_FRAMEBUFFER_APPLE = $8CA8;
2674 GL_DRAW_FRAMEBUFFER_APPLE = $8CA9;
2675 GL_DRAW_FRAMEBUFFER_BINDING_APPLE = $8CA6;
2676 GL_READ_FRAMEBUFFER_BINDING_APPLE = $8CAA;
2678 TglRenderbufferStorageMultisampleAPPLE = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2679 TglResolveMultisampleFramebufferAPPLE = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2681 glRenderbufferStorageMultisampleAPPLE: TglRenderbufferStorageMultisampleAPPLE;
2682 glResolveMultisampleFramebufferAPPLE: TglResolveMultisampleFramebufferAPPLE;
2684 { GL_APPLE_rgb_422 }
2686 GL_RGB_422_APPLE = $8A1F;
2687 GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2688 GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2689 GL_RGB_RAW_422_APPLE = $8A51;
2693 GL_SYNC_OBJECT_APPLE = $8A53;
2694 GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = $9111;
2695 GL_OBJECT_TYPE_APPLE = $9112;
2696 GL_SYNC_CONDITION_APPLE = $9113;
2697 GL_SYNC_STATUS_APPLE = $9114;
2698 GL_SYNC_FLAGS_APPLE = $9115;
2699 GL_SYNC_FENCE_APPLE = $9116;
2700 GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = $9117;
2701 GL_UNSIGNALED_APPLE = $9118;
2702 GL_SIGNALED_APPLE = $9119;
2703 GL_ALREADY_SIGNALED_APPLE = $911A;
2704 GL_TIMEOUT_EXPIRED_APPLE = $911B;
2705 GL_CONDITION_SATISFIED_APPLE = $911C;
2706 GL_WAIT_FAILED_APPLE = $911D;
2707 GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = $00000001;
2708 GL_TIMEOUT_IGNORED_APPLE = $FFFFFFFFFFFFFFFF;
2710 TglFenceSyncAPPLE = function (aCondition: GLenum; aFlags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2711 TglIsSyncAPPLE = function (aSync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2712 TglDeleteSyncAPPLE = procedure(aSync: GLsync); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2713 TglClientWaitSyncAPPLE = function (aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2714 TglWaitSyncAPPLE = procedure(aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2715 TglGetInteger64vAPPLE = procedure(aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2716 TglGetSyncivAPPLE = procedure(aSync: GLsync; aPname: GLenum; aBufSize: GLsizei; aLength: PGLsizei; aValues: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2718 glFenceSyncAPPLE: TglFenceSyncAPPLE;
2719 glIsSyncAPPLE: TglIsSyncAPPLE;
2720 glDeleteSyncAPPLE: TglDeleteSyncAPPLE;
2721 glClientWaitSyncAPPLE: TglClientWaitSyncAPPLE;
2722 glWaitSyncAPPLE: TglWaitSyncAPPLE;
2723 glGetInteger64vAPPLE: TglGetInteger64vAPPLE;
2724 glGetSyncivAPPLE: TglGetSyncivAPPLE;
2726 { GL_APPLE_texture_format_BGRA8888 }
2728 GL_BGRA_EXT = $80E1;
2729 GL_BGRA8_EXT = $93A1;
2731 { GL_APPLE_texture_max_level }
2733 GL_TEXTURE_MAX_LEVEL_APPLE = $813D;
2735 { GL_APPLE_texture_packed_float }
2737 GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = $8C3B;
2738 GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = $8C3E;
2739 GL_R11F_G11F_B10F_APPLE = $8C3A;
2740 GL_RGB9_E5_APPLE = $8C3D;
2742 { GL_ARM_mali_program_binary }
2744 GL_MALI_PROGRAM_BINARY_ARM = $8F61;
2746 { GL_ARM_mali_shader_binary }
2748 GL_MALI_SHADER_BINARY_ARM = $8F60;
2753 { GL_ARM_shader_framebuffer_fetch }
2755 GL_FETCH_PER_SAMPLE_ARM = $8F65;
2756 GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = $8F66;
2758 { GL_ARM_shader_framebuffer_fetch_depth_stencil }
2760 { GL_DMP_program_binary }
2762 GL_SMAPHS30_PROGRAM_BINARY_DMP = $9251;
2763 GL_SMAPHS_PROGRAM_BINARY_DMP = $9252;
2764 GL_DMP_PROGRAM_BINARY_DMP = $9253;
2766 { GL_DMP_shader_binary }
2768 GL_SHADER_BINARY_DMP = $9250;
2770 { GL_EXT_base_instance }
2772 TglDrawArraysInstancedBaseInstanceEXT = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aInstancecount: GLsizei; aBaseinstance: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2773 TglDrawElementsInstancedBaseInstanceEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aInstancecount: GLsizei; aBaseinstance: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2774 TglDrawElementsInstancedBaseVertexBaseInstanceEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aInstancecount: GLsizei; aBasevertex: GLint; aBaseinstance: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2776 glDrawArraysInstancedBaseInstanceEXT: TglDrawArraysInstancedBaseInstanceEXT;
2777 glDrawElementsInstancedBaseInstanceEXT: TglDrawElementsInstancedBaseInstanceEXT;
2778 glDrawElementsInstancedBaseVertexBaseInstanceEXT: TglDrawElementsInstancedBaseVertexBaseInstanceEXT;
2780 { GL_EXT_blend_minmax }
2785 { GL_EXT_color_buffer_half_float }
2787 GL_RGBA16F_EXT = $881A;
2788 GL_RGB16F_EXT = $881B;
2789 GL_RG16F_EXT = $822F;
2790 GL_R16F_EXT = $822D;
2791 GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = $8211;
2792 GL_UNSIGNED_NORMALIZED_EXT = $8C17;
2794 { GL_EXT_copy_image }
2796 TglCopyImageSubDataEXT = procedure(aSrcName: GLuint; aSrcTarget: GLenum; aSrcLevel: GLint; aSrcX: GLint; aSrcY: GLint; aSrcZ: GLint; aDstName: GLuint; aDstTarget: GLenum; aDstLevel: GLint; aDstX: GLint; aDstY: GLint; aDstZ: GLint; aSrcWidth: GLsizei; aSrcHeight: GLsizei; aSrcDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2798 glCopyImageSubDataEXT: TglCopyImageSubDataEXT;
2800 { GL_EXT_debug_label }
2802 GL_PROGRAM_PIPELINE_OBJECT_EXT = $8A4F;
2803 GL_PROGRAM_OBJECT_EXT = $8B40;
2804 GL_SHADER_OBJECT_EXT = $8B48;
2805 GL_BUFFER_OBJECT_EXT = $9151;
2806 GL_QUERY_OBJECT_EXT = $9153;
2807 GL_VERTEX_ARRAY_OBJECT_EXT = $9154;
2808 // GL_TRANSFORM_FEEDBACK = $8E22;
2810 TglLabelObjectEXT = procedure(aType: GLenum; aObject: GLuint; aLength: GLsizei; const aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2811 TglGetObjectLabelEXT = procedure(aType: GLenum; aObject: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2813 glLabelObjectEXT: TglLabelObjectEXT;
2814 glGetObjectLabelEXT: TglGetObjectLabelEXT;
2816 { GL_EXT_debug_marker }
2818 TglInsertEventMarkerEXT = procedure(aLength: GLsizei; const aMarker: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2819 TglPushGroupMarkerEXT = procedure(aLength: GLsizei; const aMarker: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2820 TglPopGroupMarkerEXT = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2822 glInsertEventMarkerEXT: TglInsertEventMarkerEXT;
2823 glPushGroupMarkerEXT: TglPushGroupMarkerEXT;
2824 glPopGroupMarkerEXT: TglPopGroupMarkerEXT;
2826 { GL_EXT_discard_framebuffer }
2828 GL_COLOR_EXT = $1800;
2829 GL_DEPTH_EXT = $1801;
2830 GL_STENCIL_EXT = $1802;
2832 TglDiscardFramebufferEXT = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2834 glDiscardFramebufferEXT: TglDiscardFramebufferEXT;
2836 { GL_EXT_disjoint_timer_query }
2838 GL_QUERY_COUNTER_BITS_EXT = $8864;
2839 GL_CURRENT_QUERY_EXT = $8865;
2840 GL_QUERY_RESULT_EXT = $8866;
2841 GL_QUERY_RESULT_AVAILABLE_EXT = $8867;
2842 GL_TIME_ELAPSED_EXT = $88BF;
2843 GL_TIMESTAMP_EXT = $8E28;
2844 GL_GPU_DISJOINT_EXT = $8FBB;
2846 TglGenQueriesEXT = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2847 TglDeleteQueriesEXT = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2848 TglIsQueryEXT = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2849 TglBeginQueryEXT = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2850 TglEndQueryEXT = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2851 TglQueryCounterEXT = procedure(aId: GLuint; aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2852 TglGetQueryivEXT = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2853 TglGetQueryObjectivEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2854 TglGetQueryObjectuivEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2855 TglGetQueryObjecti64vEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2856 TglGetQueryObjectui64vEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2858 glGenQueriesEXT: TglGenQueriesEXT;
2859 glDeleteQueriesEXT: TglDeleteQueriesEXT;
2860 glIsQueryEXT: TglIsQueryEXT;
2861 glBeginQueryEXT: TglBeginQueryEXT;
2862 glEndQueryEXT: TglEndQueryEXT;
2863 glQueryCounterEXT: TglQueryCounterEXT;
2864 glGetQueryivEXT: TglGetQueryivEXT;
2865 glGetQueryObjectivEXT: TglGetQueryObjectivEXT;
2866 glGetQueryObjectuivEXT: TglGetQueryObjectuivEXT;
2867 glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
2868 glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
2870 { GL_EXT_draw_buffers }
2872 GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
2873 GL_MAX_DRAW_BUFFERS_EXT = $8824;
2874 GL_DRAW_BUFFER0_EXT = $8825;
2875 GL_DRAW_BUFFER1_EXT = $8826;
2876 GL_DRAW_BUFFER2_EXT = $8827;
2877 GL_DRAW_BUFFER3_EXT = $8828;
2878 GL_DRAW_BUFFER4_EXT = $8829;
2879 GL_DRAW_BUFFER5_EXT = $882A;
2880 GL_DRAW_BUFFER6_EXT = $882B;
2881 GL_DRAW_BUFFER7_EXT = $882C;
2882 GL_DRAW_BUFFER8_EXT = $882D;
2883 GL_DRAW_BUFFER9_EXT = $882E;
2884 GL_DRAW_BUFFER10_EXT = $882F;
2885 GL_DRAW_BUFFER11_EXT = $8830;
2886 GL_DRAW_BUFFER12_EXT = $8831;
2887 GL_DRAW_BUFFER13_EXT = $8832;
2888 GL_DRAW_BUFFER14_EXT = $8833;
2889 GL_DRAW_BUFFER15_EXT = $8834;
2890 GL_COLOR_ATTACHMENT0_EXT = $8CE0;
2891 GL_COLOR_ATTACHMENT1_EXT = $8CE1;
2892 GL_COLOR_ATTACHMENT2_EXT = $8CE2;
2893 GL_COLOR_ATTACHMENT3_EXT = $8CE3;
2894 GL_COLOR_ATTACHMENT4_EXT = $8CE4;
2895 GL_COLOR_ATTACHMENT5_EXT = $8CE5;
2896 GL_COLOR_ATTACHMENT6_EXT = $8CE6;
2897 GL_COLOR_ATTACHMENT7_EXT = $8CE7;
2898 GL_COLOR_ATTACHMENT8_EXT = $8CE8;
2899 GL_COLOR_ATTACHMENT9_EXT = $8CE9;
2900 GL_COLOR_ATTACHMENT10_EXT = $8CEA;
2901 GL_COLOR_ATTACHMENT11_EXT = $8CEB;
2902 GL_COLOR_ATTACHMENT12_EXT = $8CEC;
2903 GL_COLOR_ATTACHMENT13_EXT = $8CED;
2904 GL_COLOR_ATTACHMENT14_EXT = $8CEE;
2905 GL_COLOR_ATTACHMENT15_EXT = $8CEF;
2907 TglDrawBuffersEXT = procedure(n: GLsizei; const aBufs: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2909 glDrawBuffersEXT: TglDrawBuffersEXT;
2911 { GL_EXT_draw_buffers_indexed }
2915 TglEnableiEXT = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2916 TglDisableiEXT = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2917 TglBlendEquationiEXT = procedure(aBuf: GLuint; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2918 TglBlendEquationSeparateiEXT = procedure(aBuf: GLuint; aModeRGB: GLenum; aModeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2919 TglBlendFunciEXT = procedure(aBuf: GLuint; aSrc: GLenum; aDst: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2920 TglBlendFuncSeparateiEXT = procedure(aBuf: GLuint; aSrcRGB: GLenum; aDstRGB: GLenum; aSrcAlpha: GLenum; aDstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2921 TglColorMaskiEXT = procedure(aIndex: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2922 TglIsEnablediEXT = function (aTarget: GLenum; aIndex: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2924 glEnableiEXT: TglEnableiEXT;
2925 glDisableiEXT: TglDisableiEXT;
2926 glBlendEquationiEXT: TglBlendEquationiEXT;
2927 glBlendEquationSeparateiEXT: TglBlendEquationSeparateiEXT;
2928 glBlendFunciEXT: TglBlendFunciEXT;
2929 glBlendFuncSeparateiEXT: TglBlendFuncSeparateiEXT;
2930 glColorMaskiEXT: TglColorMaskiEXT;
2931 glIsEnablediEXT: TglIsEnablediEXT;
2933 { GL_EXT_draw_elements_base_vertex }
2935 TglDrawElementsBaseVertexEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aBasevertex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2936 TglDrawRangeElementsBaseVertexEXT = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aBasevertex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2937 TglDrawElementsInstancedBaseVertexEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aInstancecount: GLsizei; aBasevertex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2938 TglMultiDrawElementsBaseVertexEXT = procedure(aMode: GLenum; const aCount: PGLsizei; aType: GLenum; const aConstPindices: Pointer; aPrimcount: GLsizei; const aBasevertex: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2940 glDrawElementsBaseVertexEXT: TglDrawElementsBaseVertexEXT;
2941 glDrawRangeElementsBaseVertexEXT: TglDrawRangeElementsBaseVertexEXT;
2942 glDrawElementsInstancedBaseVertexEXT: TglDrawElementsInstancedBaseVertexEXT;
2943 glMultiDrawElementsBaseVertexEXT: TglMultiDrawElementsBaseVertexEXT;
2945 { GL_EXT_draw_instanced }
2947 TglDrawArraysInstancedEXT = procedure(aMode: GLenum; aStart: GLint; aCount: GLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2948 TglDrawElementsInstancedEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2950 glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
2951 glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
2953 { GL_EXT_geometry_point_size }
2955 { GL_EXT_geometry_shader }
2957 GL_GEOMETRY_SHADER_EXT = $8DD9;
2958 GL_GEOMETRY_SHADER_BIT_EXT = $00000004;
2959 GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = $8916;
2960 GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = $8917;
2961 GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = $8918;
2962 GL_GEOMETRY_SHADER_INVOCATIONS_EXT = $887F;
2963 GL_LAYER_PROVOKING_VERTEX_EXT = $825E;
2964 GL_LINES_ADJACENCY_EXT = $000A;
2965 GL_LINE_STRIP_ADJACENCY_EXT = $000B;
2966 GL_TRIANGLES_ADJACENCY_EXT = $000C;
2967 GL_TRIANGLE_STRIP_ADJACENCY_EXT = $000D;
2968 GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
2969 GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = $8A2C;
2970 GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8A32;
2971 GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = $9123;
2972 GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = $9124;
2973 GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
2974 GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
2975 GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = $8E5A;
2976 GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
2977 GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = $92CF;
2978 GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = $92D5;
2979 GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = $90CD;
2980 GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = $90D7;
2981 GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
2982 GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
2983 GL_UNDEFINED_VERTEX_EXT = $8260;
2984 GL_PRIMITIVES_GENERATED_EXT = $8C87;
2985 GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = $9312;
2986 GL_MAX_FRAMEBUFFER_LAYERS_EXT = $9317;
2987 GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
2988 GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
2989 GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = $9309;
2991 TglFramebufferTextureEXT = procedure(aTarget: GLenum; aAttachment: GLenum; aTexture: GLuint; aLevel: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2993 glFramebufferTextureEXT: TglFramebufferTextureEXT;
2995 { GL_EXT_gpu_shader5 }
2998 { GL_EXT_instanced_arrays }
3000 GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = $88FE;
3002 TglVertexAttribDivisorEXT = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3004 glVertexAttribDivisorEXT: TglVertexAttribDivisorEXT;
3006 { GL_EXT_map_buffer_range }
3008 GL_MAP_READ_BIT_EXT = $0001;
3009 GL_MAP_WRITE_BIT_EXT = $0002;
3010 GL_MAP_INVALIDATE_RANGE_BIT_EXT = $0004;
3011 GL_MAP_INVALIDATE_BUFFER_BIT_EXT = $0008;
3012 GL_MAP_FLUSH_EXPLICIT_BIT_EXT = $0010;
3013 GL_MAP_UNSYNCHRONIZED_BIT_EXT = $0020;
3015 TglMapBufferRangeEXT = function (aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr; aAccess: GLbitfield): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3016 TglFlushMappedBufferRangeEXT = procedure(aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3018 glMapBufferRangeEXT: TglMapBufferRangeEXT;
3019 glFlushMappedBufferRangeEXT: TglFlushMappedBufferRangeEXT;
3021 { GL_EXT_multi_draw_arrays }
3023 TglMultiDrawArraysEXT = procedure(aMode: GLenum; const aFirst: PGLint; const aCount: PGLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3024 TglMultiDrawElementsEXT = procedure(aMode: GLenum; const aCount: PGLsizei; aType: GLenum; const aConstPindices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3026 glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
3027 glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
3029 { GL_EXT_multi_draw_indirect }
3031 TglMultiDrawArraysIndirectEXT = procedure(aMode: GLenum; const aIndirect: Pointer; aDrawcount: GLsizei; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3032 TglMultiDrawElementsIndirectEXT = procedure(aMode: GLenum; aType: GLenum; const aIndirect: Pointer; aDrawcount: GLsizei; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3034 glMultiDrawArraysIndirectEXT: TglMultiDrawArraysIndirectEXT;
3035 glMultiDrawElementsIndirectEXT: TglMultiDrawElementsIndirectEXT;
3037 { GL_EXT_multisampled_render_to_texture }
3039 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = $8D6C;
3040 GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
3041 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
3042 GL_MAX_SAMPLES_EXT = $8D57;
3044 TglRenderbufferStorageMultisampleEXT = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3045 TglFramebufferTexture2DMultisampleEXT = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint; aSamples: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3047 glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
3048 glFramebufferTexture2DMultisampleEXT: TglFramebufferTexture2DMultisampleEXT;
3050 { GL_EXT_multiview_draw_buffers }
3052 GL_COLOR_ATTACHMENT_EXT = $90F0;
3053 GL_MULTIVIEW_EXT = $90F1;
3054 GL_DRAW_BUFFER_EXT = $0C01;
3055 GL_READ_BUFFER_EXT = $0C02;
3056 GL_MAX_MULTIVIEW_BUFFERS_EXT = $90F2;
3058 TglReadBufferIndexedEXT = procedure(aSrc: GLenum; aIndex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3059 TglDrawBuffersIndexedEXT = procedure(n: GLint; const aLocation: PGLenum; const aIndices: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3060 TglGetIntegeri_vEXT = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3062 glReadBufferIndexedEXT: TglReadBufferIndexedEXT;
3063 glDrawBuffersIndexedEXT: TglDrawBuffersIndexedEXT;
3064 glGetIntegeri_vEXT: TglGetIntegeri_vEXT;
3066 { GL_EXT_occlusion_query_boolean }
3068 GL_ANY_SAMPLES_PASSED_EXT = $8C2F;
3069 GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = $8D6A;
3071 { GL_EXT_primitive_bounding_box }
3073 GL_PRIMITIVE_BOUNDING_BOX_EXT = $92BE;
3075 TglPrimitiveBoundingBoxEXT = procedure(aMinX: GLfloat; aMinY: GLfloat; aMinZ: GLfloat; aMinW: GLfloat; aMaxX: GLfloat; aMaxY: GLfloat; aMaxZ: GLfloat; aMaxW: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3077 glPrimitiveBoundingBoxEXT: TglPrimitiveBoundingBoxEXT;
3079 { GL_EXT_pvrtc_sRGB }
3081 GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = $8A54;
3082 GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = $8A55;
3083 GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = $8A56;
3084 GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = $8A57;
3085 GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = $93F0;
3086 GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = $93F1;
3088 { GL_EXT_read_format_bgra }
3090 GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = $8365;
3091 GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = $8366;
3093 { GL_EXT_render_snorm }
3095 //GL_R8_SNORM = $8F94;
3096 //GL_RG8_SNORM = $8F95;
3097 //GL_RGBA8_SNORM = $8F97;
3098 GL_R16_SNORM_EXT = $8F98;
3099 GL_RG16_SNORM_EXT = $8F99;
3100 GL_RGBA16_SNORM_EXT = $8F9B;
3102 { GL_EXT_robustness }
3104 GL_GUILTY_CONTEXT_RESET_EXT = $8253;
3105 GL_INNOCENT_CONTEXT_RESET_EXT = $8254;
3106 GL_UNKNOWN_CONTEXT_RESET_EXT = $8255;
3107 GL_CONTEXT_ROBUST_ACCESS_EXT = $90F3;
3108 GL_RESET_NOTIFICATION_STRATEGY_EXT = $8256;
3109 GL_LOSE_CONTEXT_ON_RESET_EXT = $8252;
3110 GL_NO_RESET_NOTIFICATION_EXT = $8261;
3112 TglGetGraphicsResetStatusEXT = function : GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3113 TglReadnPixelsEXT = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aBufSize: GLsizei; aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3114 TglGetnUniformfvEXT = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3115 TglGetnUniformivEXT = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3117 glGetGraphicsResetStatusEXT: TglGetGraphicsResetStatusEXT;
3118 glReadnPixelsEXT: TglReadnPixelsEXT;
3119 glGetnUniformfvEXT: TglGetnUniformfvEXT;
3120 glGetnUniformivEXT: TglGetnUniformivEXT;
3124 GL_SRGB_EXT = $8C40;
3125 GL_SRGB_ALPHA_EXT = $8C42;
3126 GL_SRGB8_ALPHA8_EXT = $8C43;
3127 GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = $8210;
3129 { GL_EXT_sRGB_write_control }
3131 GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
3133 { GL_EXT_separate_shader_objects }
3135 GL_ACTIVE_PROGRAM_EXT = $8259;
3136 GL_VERTEX_SHADER_BIT_EXT = $00000001;
3137 GL_FRAGMENT_SHADER_BIT_EXT = $00000002;
3138 GL_ALL_SHADER_BITS_EXT = $FFFFFFFF;
3139 GL_PROGRAM_SEPARABLE_EXT = $8258;
3140 GL_PROGRAM_PIPELINE_BINDING_EXT = $825A;
3142 TglActiveShaderProgramEXT = procedure(aPipeline: GLuint; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3143 TglBindProgramPipelineEXT = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3144 TglCreateShaderProgramvEXT = function (aType: GLenum; aCount: GLsizei; const aStrings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3145 TglDeleteProgramPipelinesEXT = procedure(n: GLsizei; const aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3146 TglGenProgramPipelinesEXT = procedure(n: GLsizei; aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3147 TglGetProgramPipelineInfoLogEXT = procedure(aPipeline: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aInfoLog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3148 TglGetProgramPipelineivEXT = procedure(aPipeline: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3149 TglIsProgramPipelineEXT = function (aPipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3150 TglProgramParameteriEXT = procedure(aProgram: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3151 TglProgramUniform1fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3152 TglProgramUniform1fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3153 TglProgramUniform1iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3154 TglProgramUniform1ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3155 TglProgramUniform2fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat; aV1: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3156 TglProgramUniform2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3157 TglProgramUniform2iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint; aV1: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3158 TglProgramUniform2ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3159 TglProgramUniform3fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat; aV1: GLfloat; aV2: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3160 TglProgramUniform3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3161 TglProgramUniform3iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint; aV1: GLint; aV2: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3162 TglProgramUniform3ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3163 TglProgramUniform4fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat; aV1: GLfloat; aV2: GLfloat; aV3: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3164 TglProgramUniform4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3165 TglProgramUniform4iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint; aV1: GLint; aV2: GLint; aV3: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3166 TglProgramUniform4ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3167 TglProgramUniformMatrix2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3168 TglProgramUniformMatrix3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3169 TglProgramUniformMatrix4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3170 TglUseProgramStagesEXT = procedure(aPipeline: GLuint; aStages: GLbitfield; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3171 TglValidateProgramPipelineEXT = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3172 TglProgramUniform1uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3173 TglProgramUniform2uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint; aV1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3174 TglProgramUniform3uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint; aV1: GLuint; aV2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3175 TglProgramUniform4uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint; aV1: GLuint; aV2: GLuint; aV3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3176 TglProgramUniform1uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3177 TglProgramUniform2uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3178 TglProgramUniform3uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3179 TglProgramUniform4uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3180 TglProgramUniformMatrix2x3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3181 TglProgramUniformMatrix3x2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3182 TglProgramUniformMatrix2x4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3183 TglProgramUniformMatrix4x2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3184 TglProgramUniformMatrix3x4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3185 TglProgramUniformMatrix4x3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3187 glActiveShaderProgramEXT: TglActiveShaderProgramEXT;
3188 glBindProgramPipelineEXT: TglBindProgramPipelineEXT;
3189 glCreateShaderProgramvEXT: TglCreateShaderProgramvEXT;
3190 glDeleteProgramPipelinesEXT: TglDeleteProgramPipelinesEXT;
3191 glGenProgramPipelinesEXT: TglGenProgramPipelinesEXT;
3192 glGetProgramPipelineInfoLogEXT: TglGetProgramPipelineInfoLogEXT;
3193 glGetProgramPipelineivEXT: TglGetProgramPipelineivEXT;
3194 glIsProgramPipelineEXT: TglIsProgramPipelineEXT;
3195 glProgramParameteriEXT: TglProgramParameteriEXT;
3196 glProgramUniform1fEXT: TglProgramUniform1fEXT;
3197 glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
3198 glProgramUniform1iEXT: TglProgramUniform1iEXT;
3199 glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
3200 glProgramUniform2fEXT: TglProgramUniform2fEXT;
3201 glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
3202 glProgramUniform2iEXT: TglProgramUniform2iEXT;
3203 glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
3204 glProgramUniform3fEXT: TglProgramUniform3fEXT;
3205 glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
3206 glProgramUniform3iEXT: TglProgramUniform3iEXT;
3207 glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
3208 glProgramUniform4fEXT: TglProgramUniform4fEXT;
3209 glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
3210 glProgramUniform4iEXT: TglProgramUniform4iEXT;
3211 glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
3212 glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
3213 glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
3214 glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
3215 glUseProgramStagesEXT: TglUseProgramStagesEXT;
3216 glValidateProgramPipelineEXT: TglValidateProgramPipelineEXT;
3217 glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
3218 glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
3219 glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
3220 glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
3221 glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
3222 glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
3223 glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
3224 glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
3225 glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
3226 glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
3227 glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
3228 glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
3229 glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
3230 glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
3232 { GL_EXT_shader_framebuffer_fetch }
3234 GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = $8A52;
3236 { GL_EXT_shader_implicit_conversions }
3239 { GL_EXT_shader_integer_mix }
3242 { GL_EXT_shader_io_blocks }
3245 { GL_EXT_shader_pixel_local_storage }
3247 GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = $8F63;
3248 GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = $8F67;
3249 GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = $8F64;
3251 { GL_EXT_shader_texture_lod }
3253 { GL_EXT_shadow_samplers }
3255 GL_TEXTURE_COMPARE_MODE_EXT = $884C;
3256 GL_TEXTURE_COMPARE_FUNC_EXT = $884D;
3257 GL_COMPARE_REF_TO_TEXTURE_EXT = $884E;
3258 GL_SAMPLER_2D_SHADOW_EXT = $8B62;
3260 { GL_EXT_tessellation_point_size }
3263 { GL_EXT_tessellation_shader }
3265 GL_PATCHES_EXT = $000E;
3266 GL_PATCH_VERTICES_EXT = $8E72;
3267 GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = $8E75;
3268 GL_TESS_GEN_MODE_EXT = $8E76;
3269 GL_TESS_GEN_SPACING_EXT = $8E77;
3270 GL_TESS_GEN_VERTEX_ORDER_EXT = $8E78;
3271 GL_TESS_GEN_POINT_MODE_EXT = $8E79;
3272 GL_ISOLINES_EXT = $8E7A;
3273 GL_QUADS_EXT = $0007;
3274 GL_FRACTIONAL_ODD_EXT = $8E7B;
3275 GL_FRACTIONAL_EVEN_EXT = $8E7C;
3276 GL_MAX_PATCH_VERTICES_EXT = $8E7D;
3277 GL_MAX_TESS_GEN_LEVEL_EXT = $8E7E;
3278 GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = $8E7F;
3279 GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = $8E80;
3280 GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = $8E81;
3281 GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = $8E82;
3282 GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = $8E83;
3283 GL_MAX_TESS_PATCH_COMPONENTS_EXT = $8E84;
3284 GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = $8E85;
3285 GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = $8E86;
3286 GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = $8E89;
3287 GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = $8E8A;
3288 GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = $886C;
3289 GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = $886D;
3290 GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = $8E1E;
3291 GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = $8E1F;
3292 GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = $92CD;
3293 GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = $92CE;
3294 GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = $92D3;
3295 GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = $92D4;
3296 GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = $90CB;
3297 GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = $90CC;
3298 GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = $90D8;
3299 GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = $90D9;
3300 GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = $8221;
3301 GL_IS_PER_PATCH_EXT = $92E7;
3302 GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = $9307;
3303 GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = $9308;
3304 GL_TESS_CONTROL_SHADER_EXT = $8E88;
3305 GL_TESS_EVALUATION_SHADER_EXT = $8E87;
3306 GL_TESS_CONTROL_SHADER_BIT_EXT = $00000008;
3307 GL_TESS_EVALUATION_SHADER_BIT_EXT = $00000010;
3309 TglPatchParameteriEXT = procedure(aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3311 glPatchParameteriEXT: TglPatchParameteriEXT;
3313 { GL_EXT_texture_border_clamp }
3315 GL_TEXTURE_BORDER_COLOR_EXT = $1004;
3316 GL_CLAMP_TO_BORDER_EXT = $812D;
3318 TglTexParameterIivEXT = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3319 TglTexParameterIuivEXT = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3320 TglGetTexParameterIivEXT = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3321 TglGetTexParameterIuivEXT = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3322 TglSamplerParameterIivEXT = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3323 TglSamplerParameterIuivEXT = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3324 TglGetSamplerParameterIivEXT = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3325 TglGetSamplerParameterIuivEXT = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3327 glTexParameterIivEXT: TglTexParameterIivEXT;
3328 glTexParameterIuivEXT: TglTexParameterIuivEXT;
3329 glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
3330 glGetTexParameterIuivEXT: TglGetTexParameterIuivEXT;
3331 glSamplerParameterIivEXT: TglSamplerParameterIivEXT;
3332 glSamplerParameterIuivEXT: TglSamplerParameterIuivEXT;
3333 glGetSamplerParameterIivEXT: TglGetSamplerParameterIivEXT;
3334 glGetSamplerParameterIuivEXT: TglGetSamplerParameterIuivEXT;
3336 { GL_EXT_texture_buffer }
3338 GL_TEXTURE_BUFFER_EXT = $8C2A;
3339 GL_TEXTURE_BUFFER_BINDING_EXT = $8C2A;
3340 GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
3341 GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
3342 GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
3343 GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = $919F;
3344 GL_SAMPLER_BUFFER_EXT = $8DC2;
3345 GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
3346 GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
3347 GL_IMAGE_BUFFER_EXT = $9051;
3348 GL_INT_IMAGE_BUFFER_EXT = $905C;
3349 GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
3350 GL_TEXTURE_BUFFER_OFFSET_EXT = $919D;
3351 GL_TEXTURE_BUFFER_SIZE_EXT = $919E;
3353 TglTexBufferEXT = procedure(aTarget: GLenum; aInternalformat: GLenum; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3354 TglTexBufferRangeEXT = procedure(aTarget: GLenum; aInternalformat: GLenum; aBuffer: GLuint; aOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3356 glTexBufferEXT: TglTexBufferEXT;
3357 glTexBufferRangeEXT: TglTexBufferRangeEXT;
3359 { GL_EXT_texture_compression_dxt1 }
3361 GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
3362 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
3364 { GL_EXT_texture_compression_s3tc }
3366 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
3367 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
3369 { GL_EXT_texture_cube_map_array }
3371 GL_TEXTURE_CUBE_MAP_ARRAY_EXT = $9009;
3372 GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = $900A;
3373 GL_SAMPLER_CUBE_MAP_ARRAY_EXT = $900C;
3374 GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = $900D;
3375 GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = $900E;
3376 GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = $900F;
3377 GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
3378 GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
3379 GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
3381 { GL_EXT_texture_filter_anisotropic }
3383 GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
3384 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
3386 { GL_EXT_texture_format_BGRA8888 }
3388 { GL_EXT_texture_norm16 }
3391 GL_RG16_EXT = $822C;
3392 GL_RGBA16_EXT = $805B;
3393 GL_RGB16_EXT = $8054;
3394 GL_RGB16_SNORM_EXT = $8F9A;
3396 { GL_EXT_texture_rg }
3403 { GL_EXT_texture_sRGB_decode }
3405 GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
3406 GL_DECODE_EXT = $8A49;
3407 GL_SKIP_DECODE_EXT = $8A4A;
3409 { GL_EXT_texture_storage }
3411 GL_TEXTURE_IMMUTABLE_FORMAT_EXT = $912F;
3412 GL_ALPHA8_EXT = $803C;
3413 GL_LUMINANCE8_EXT = $8040;
3414 GL_LUMINANCE8_ALPHA8_EXT = $8045;
3415 GL_RGBA32F_EXT = $8814;
3416 GL_RGB32F_EXT = $8815;
3417 GL_ALPHA32F_EXT = $8816;
3418 GL_LUMINANCE32F_EXT = $8818;
3419 GL_LUMINANCE_ALPHA32F_EXT = $8819;
3420 GL_ALPHA16F_EXT = $881C;
3421 GL_LUMINANCE16F_EXT = $881E;
3422 GL_LUMINANCE_ALPHA16F_EXT = $881F;
3423 GL_R32F_EXT = $822E;
3424 GL_RG32F_EXT = $8230;
3426 TglTexStorage1DEXT = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3427 TglTexStorage2DEXT = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3428 TglTexStorage3DEXT = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3429 TglTextureStorage1DEXT = procedure(aTexture: GLuint; aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3430 TglTextureStorage2DEXT = procedure(aTexture: GLuint; aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3431 TglTextureStorage3DEXT = procedure(aTexture: GLuint; aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3433 glTexStorage1DEXT: TglTexStorage1DEXT;
3434 glTexStorage2DEXT: TglTexStorage2DEXT;
3435 glTexStorage3DEXT: TglTexStorage3DEXT;
3436 glTextureStorage1DEXT: TglTextureStorage1DEXT;
3437 glTextureStorage2DEXT: TglTextureStorage2DEXT;
3438 glTextureStorage3DEXT: TglTextureStorage3DEXT;
3440 { GL_EXT_texture_type_2_10_10_10_REV }
3442 GL_UNSIGNED_INT_2_10_10_10_REV_EXT = $8368;
3444 { GL_EXT_texture_view }
3446 GL_TEXTURE_VIEW_MIN_LEVEL_EXT = $82DB;
3447 GL_TEXTURE_VIEW_NUM_LEVELS_EXT = $82DC;
3448 GL_TEXTURE_VIEW_MIN_LAYER_EXT = $82DD;
3449 GL_TEXTURE_VIEW_NUM_LAYERS_EXT = $82DE;
3450 //GL_TEXTURE_IMMUTABLE_LEVELS = $82DF;
3452 TglTextureViewEXT = procedure(aTexture: GLuint; aTarget: GLenum; aOrigtexture: GLuint; aInternalformat: GLenum; aMinlevel: GLuint; aNumlevels: GLuint; aMinlayer: GLuint; aNumlayers: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3454 glTextureViewEXT: TglTextureViewEXT;
3456 { GL_EXT_unpack_subimage }
3458 GL_UNPACK_ROW_LENGTH_EXT = $0CF2;
3459 GL_UNPACK_SKIP_ROWS_EXT = $0CF3;
3460 GL_UNPACK_SKIP_PIXELS_EXT = $0CF4;
3462 { GL_FJ_shader_binary_GCCSO }
3464 GL_GCCSO_SHADER_BINARY_FJ = $9260;
3466 { GL_IMG_multisampled_render_to_texture }
3468 GL_RENDERBUFFER_SAMPLES_IMG = $9133;
3469 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = $9134;
3470 GL_MAX_SAMPLES_IMG = $9135;
3471 GL_TEXTURE_SAMPLES_IMG = $9136;
3473 TglRenderbufferStorageMultisampleIMG = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3474 TglFramebufferTexture2DMultisampleIMG = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint; aSamples: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3476 glRenderbufferStorageMultisampleIMG: TglRenderbufferStorageMultisampleIMG;
3477 glFramebufferTexture2DMultisampleIMG: TglFramebufferTexture2DMultisampleIMG;
3479 { GL_IMG_program_binary }
3481 GL_SGX_PROGRAM_BINARY_IMG = $9130;
3483 { GL_IMG_read_format }
3485 GL_BGRA_IMG = $80E1;
3486 GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = $8365;
3488 { GL_IMG_shader_binary }
3490 GL_SGX_BINARY_IMG = $8C0A;
3492 { GL_IMG_texture_compression_pvrtc }
3494 GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = $8C00;
3495 GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = $8C01;
3496 GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = $8C02;
3497 GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = $8C03;
3499 { GL_IMG_texture_compression_pvrtc2 }
3501 GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = $9137;
3502 GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = $9138;
3504 { GL_INTEL_performance_query }
3506 GL_PERFQUERY_SINGLE_CONTEXT_INTEL = $00000000;
3507 GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = $00000001;
3508 GL_PERFQUERY_WAIT_INTEL = $83FB;
3509 GL_PERFQUERY_FLUSH_INTEL = $83FA;
3510 GL_PERFQUERY_DONOT_FLUSH_INTEL = $83F9;
3511 GL_PERFQUERY_COUNTER_EVENT_INTEL = $94F0;
3512 GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = $94F1;
3513 GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = $94F2;
3514 GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = $94F3;
3515 GL_PERFQUERY_COUNTER_RAW_INTEL = $94F4;
3516 GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = $94F5;
3517 GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = $94F8;
3518 GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = $94F9;
3519 GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = $94FA;
3520 GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = $94FB;
3521 GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = $94FC;
3522 GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = $94FD;
3523 GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = $94FE;
3524 GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = $94FF;
3525 GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = $9500;
3527 TglBeginPerfQueryINTEL = procedure(aQueryHandle: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3528 TglCreatePerfQueryINTEL = procedure(aQueryId: GLuint; aQueryHandle: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3529 TglDeletePerfQueryINTEL = procedure(aQueryHandle: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3530 TglEndPerfQueryINTEL = procedure(aQueryHandle: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3531 TglGetFirstPerfQueryIdINTEL = procedure(aQueryId: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3532 TglGetNextPerfQueryIdINTEL = procedure(aQueryId: GLuint; aNextQueryId: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3533 TglGetPerfCounterInfoINTEL = procedure(aQueryId: GLuint; aCounterId: GLuint; aCounterNameLength: GLuint; aCounterName: PGLchar; aCounterDescLength: GLuint; aCounterDesc: PGLchar; aCounterOffset: PGLuint; aCounterDataSize: PGLuint; aCounterTypeEnum: PGLuint; aCounterDataTypeEnum: PGLuint; aRawCounterMaxValue: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3534 TglGetPerfQueryDataINTEL = procedure(aQueryHandle: GLuint; aFlags: GLuint; aDataSize: GLsizei; aData: PGLvoid; aBytesWritten: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3535 TglGetPerfQueryIdByNameINTEL = procedure(aQueryName: PGLchar; aQueryId: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3536 TglGetPerfQueryInfoINTEL = procedure(aQueryId: GLuint; aQueryNameLength: GLuint; aQueryName: PGLchar; aDataSize: PGLuint; aNoCounters: PGLuint; aNoInstances: PGLuint; aCapsMask: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3538 glBeginPerfQueryINTEL: TglBeginPerfQueryINTEL;
3539 glCreatePerfQueryINTEL: TglCreatePerfQueryINTEL;
3540 glDeletePerfQueryINTEL: TglDeletePerfQueryINTEL;
3541 glEndPerfQueryINTEL: TglEndPerfQueryINTEL;
3542 glGetFirstPerfQueryIdINTEL: TglGetFirstPerfQueryIdINTEL;
3543 glGetNextPerfQueryIdINTEL: TglGetNextPerfQueryIdINTEL;
3544 glGetPerfCounterInfoINTEL: TglGetPerfCounterInfoINTEL;
3545 glGetPerfQueryDataINTEL: TglGetPerfQueryDataINTEL;
3546 glGetPerfQueryIdByNameINTEL: TglGetPerfQueryIdByNameINTEL;
3547 glGetPerfQueryInfoINTEL: TglGetPerfQueryInfoINTEL;
3549 { GL_NV_bindless_texture }
3551 TglGetTextureHandleNV = function (aTexture: GLuint): GLuint64; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3552 TglGetTextureSamplerHandleNV = function (aTexture: GLuint; aSampler: GLuint): GLuint64; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3553 TglMakeTextureHandleResidentNV = procedure(aHandle: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3554 TglMakeTextureHandleNonResidentNV = procedure(aHandle: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3555 TglGetImageHandleNV = function (aTexture: GLuint; aLevel: GLint; aLayered: GLboolean; aLayer: GLint; aFormat: GLenum): GLuint64; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3556 TglMakeImageHandleResidentNV = procedure(aHandle: GLuint64; aAccess: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3557 TglMakeImageHandleNonResidentNV = procedure(aHandle: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3558 TglUniformHandleui64NV = procedure(aLocation: GLint; aValue: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3559 TglUniformHandleui64vNV = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3560 TglProgramUniformHandleui64NV = procedure(aProgram: GLuint; aLocation: GLint; aValue: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3561 TglProgramUniformHandleui64vNV = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValues: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3562 TglIsTextureHandleResidentNV = function (aHandle: GLuint64): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3563 TglIsImageHandleResidentNV = function (aHandle: GLuint64): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3565 glGetTextureHandleNV: TglGetTextureHandleNV;
3566 glGetTextureSamplerHandleNV: TglGetTextureSamplerHandleNV;
3567 glMakeTextureHandleResidentNV: TglMakeTextureHandleResidentNV;
3568 glMakeTextureHandleNonResidentNV: TglMakeTextureHandleNonResidentNV;
3569 glGetImageHandleNV: TglGetImageHandleNV;
3570 glMakeImageHandleResidentNV: TglMakeImageHandleResidentNV;
3571 glMakeImageHandleNonResidentNV: TglMakeImageHandleNonResidentNV;
3572 glUniformHandleui64NV: TglUniformHandleui64NV;
3573 glUniformHandleui64vNV: TglUniformHandleui64vNV;
3574 glProgramUniformHandleui64NV: TglProgramUniformHandleui64NV;
3575 glProgramUniformHandleui64vNV: TglProgramUniformHandleui64vNV;
3576 glIsTextureHandleResidentNV: TglIsTextureHandleResidentNV;
3577 glIsImageHandleResidentNV: TglIsImageHandleResidentNV;
3579 { GL_NV_blend_equation_advanced }
3581 GL_BLEND_OVERLAP_NV = $9281;
3582 GL_BLEND_PREMULTIPLIED_SRC_NV = $9280;
3584 GL_COLORBURN_NV = $929A;
3585 GL_COLORDODGE_NV = $9299;
3586 GL_CONJOINT_NV = $9284;
3587 GL_CONTRAST_NV = $92A1;
3588 GL_DARKEN_NV = $9297;
3589 GL_DIFFERENCE_NV = $929E;
3590 GL_DISJOINT_NV = $9283;
3591 GL_DST_ATOP_NV = $928F;
3592 GL_DST_IN_NV = $928B;
3594 GL_DST_OUT_NV = $928D;
3595 GL_DST_OVER_NV = $9289;
3596 GL_EXCLUSION_NV = $92A0;
3597 GL_GREEN_NV = $1904;
3598 GL_HARDLIGHT_NV = $929B;
3599 GL_HARDMIX_NV = $92A9;
3600 GL_HSL_COLOR_NV = $92AF;
3601 GL_HSL_HUE_NV = $92AD;
3602 GL_HSL_LUMINOSITY_NV = $92B0;
3603 GL_HSL_SATURATION_NV = $92AE;
3604 GL_INVERT_OVG_NV = $92B4;
3605 GL_INVERT_RGB_NV = $92A3;
3606 GL_LIGHTEN_NV = $9298;
3607 GL_LINEARBURN_NV = $92A5;
3608 GL_LINEARDODGE_NV = $92A4;
3609 GL_LINEARLIGHT_NV = $92A7;
3610 GL_MINUS_CLAMPED_NV = $92B3;
3611 GL_MINUS_NV = $929F;
3612 GL_MULTIPLY_NV = $9294;
3613 GL_OVERLAY_NV = $9296;
3614 GL_PINLIGHT_NV = $92A8;
3615 GL_PLUS_CLAMPED_ALPHA_NV = $92B2;
3616 GL_PLUS_CLAMPED_NV = $92B1;
3617 GL_PLUS_DARKER_NV = $9292;
3620 GL_SCREEN_NV = $9295;
3621 GL_SOFTLIGHT_NV = $929C;
3622 GL_SRC_ATOP_NV = $928E;
3623 GL_SRC_IN_NV = $928A;
3625 GL_SRC_OUT_NV = $928C;
3626 GL_SRC_OVER_NV = $9288;
3627 GL_UNCORRELATED_NV = $9282;
3628 GL_VIVIDLIGHT_NV = $92A6;
3631 TglBlendParameteriNV = procedure(aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3632 TglBlendBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3634 glBlendParameteriNV: TglBlendParameteriNV;
3635 glBlendBarrierNV: TglBlendBarrierNV;
3637 { GL_NV_blend_equation_advanced_coherent }
3639 GL_BLEND_ADVANCED_COHERENT_NV = $9285;
3641 { GL_NV_conditional_render }
3643 GL_QUERY_WAIT_NV = $8E13;
3644 GL_QUERY_NO_WAIT_NV = $8E14;
3645 GL_QUERY_BY_REGION_WAIT_NV = $8E15;
3646 GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
3648 TglBeginConditionalRenderNV = procedure(aId: GLuint; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3649 TglEndConditionalRenderNV = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3651 glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
3652 glEndConditionalRenderNV: TglEndConditionalRenderNV;
3654 { GL_NV_copy_buffer }
3656 GL_COPY_READ_BUFFER_NV = $8F36;
3657 GL_COPY_WRITE_BUFFER_NV = $8F37;
3659 TglCopyBufferSubDataNV = procedure(aReadTarget: GLenum; aWriteTarget: GLenum; aReadOffset: GLintptr; aWriteOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3661 glCopyBufferSubDataNV: TglCopyBufferSubDataNV;
3663 { GL_NV_coverage_sample }
3665 GL_COVERAGE_COMPONENT_NV = $8ED0;
3666 GL_COVERAGE_COMPONENT4_NV = $8ED1;
3667 GL_COVERAGE_ATTACHMENT_NV = $8ED2;
3668 GL_COVERAGE_BUFFERS_NV = $8ED3;
3669 GL_COVERAGE_SAMPLES_NV = $8ED4;
3670 GL_COVERAGE_ALL_FRAGMENTS_NV = $8ED5;
3671 GL_COVERAGE_EDGE_FRAGMENTS_NV = $8ED6;
3672 GL_COVERAGE_AUTOMATIC_NV = $8ED7;
3673 GL_COVERAGE_BUFFER_BIT_NV = $00008000;
3675 TglCoverageMaskNV = procedure(aMask: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3676 TglCoverageOperationNV = procedure(aOperation: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3678 glCoverageMaskNV: TglCoverageMaskNV;
3679 glCoverageOperationNV: TglCoverageOperationNV;
3681 { GL_NV_depth_nonlinear }
3683 GL_DEPTH_COMPONENT16_NONLINEAR_NV = $8E2C;
3685 { GL_NV_draw_buffers }
3687 GL_MAX_DRAW_BUFFERS_NV = $8824;
3688 GL_DRAW_BUFFER0_NV = $8825;
3689 GL_DRAW_BUFFER1_NV = $8826;
3690 GL_DRAW_BUFFER2_NV = $8827;
3691 GL_DRAW_BUFFER3_NV = $8828;
3692 GL_DRAW_BUFFER4_NV = $8829;
3693 GL_DRAW_BUFFER5_NV = $882A;
3694 GL_DRAW_BUFFER6_NV = $882B;
3695 GL_DRAW_BUFFER7_NV = $882C;
3696 GL_DRAW_BUFFER8_NV = $882D;
3697 GL_DRAW_BUFFER9_NV = $882E;
3698 GL_DRAW_BUFFER10_NV = $882F;
3699 GL_DRAW_BUFFER11_NV = $8830;
3700 GL_DRAW_BUFFER12_NV = $8831;
3701 GL_DRAW_BUFFER13_NV = $8832;
3702 GL_DRAW_BUFFER14_NV = $8833;
3703 GL_DRAW_BUFFER15_NV = $8834;
3704 GL_COLOR_ATTACHMENT0_NV = $8CE0;
3705 GL_COLOR_ATTACHMENT1_NV = $8CE1;
3706 GL_COLOR_ATTACHMENT2_NV = $8CE2;
3707 GL_COLOR_ATTACHMENT3_NV = $8CE3;
3708 GL_COLOR_ATTACHMENT4_NV = $8CE4;
3709 GL_COLOR_ATTACHMENT5_NV = $8CE5;
3710 GL_COLOR_ATTACHMENT6_NV = $8CE6;
3711 GL_COLOR_ATTACHMENT7_NV = $8CE7;
3712 GL_COLOR_ATTACHMENT8_NV = $8CE8;
3713 GL_COLOR_ATTACHMENT9_NV = $8CE9;
3714 GL_COLOR_ATTACHMENT10_NV = $8CEA;
3715 GL_COLOR_ATTACHMENT11_NV = $8CEB;
3716 GL_COLOR_ATTACHMENT12_NV = $8CEC;
3717 GL_COLOR_ATTACHMENT13_NV = $8CED;
3718 GL_COLOR_ATTACHMENT14_NV = $8CEE;
3719 GL_COLOR_ATTACHMENT15_NV = $8CEF;
3721 TglDrawBuffersNV = procedure(n: GLsizei; const aBufs: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3723 glDrawBuffersNV: TglDrawBuffersNV;
3725 { GL_NV_draw_instanced }
3727 TglDrawArraysInstancedNV = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3728 TglDrawElementsInstancedNV = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3730 glDrawArraysInstancedNV: TglDrawArraysInstancedNV;
3731 glDrawElementsInstancedNV: TglDrawElementsInstancedNV;
3733 { GL_NV_explicit_attrib_location }
3736 { GL_NV_fbo_color_attachments }
3738 GL_MAX_COLOR_ATTACHMENTS_NV = $8CDF;
3742 GL_ALL_COMPLETED_NV = $84F2;
3743 GL_FENCE_STATUS_NV = $84F3;
3744 GL_FENCE_CONDITION_NV = $84F4;
3746 TglDeleteFencesNV = procedure(n: GLsizei; const aFences: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3747 TglGenFencesNV = procedure(n: GLsizei; aFences: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3748 TglIsFenceNV = function (aFence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3749 TglTestFenceNV = function (aFence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3750 TglGetFenceivNV = procedure(aFence: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3751 TglFinishFenceNV = procedure(aFence: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3752 TglSetFenceNV = procedure(aFence: GLuint; aCondition: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3754 glDeleteFencesNV: TglDeleteFencesNV;
3755 glGenFencesNV: TglGenFencesNV;
3756 glIsFenceNV: TglIsFenceNV;
3757 glTestFenceNV: TglTestFenceNV;
3758 glGetFenceivNV: TglGetFenceivNV;
3759 glFinishFenceNV: TglFinishFenceNV;
3760 glSetFenceNV: TglSetFenceNV;
3762 { GL_NV_framebuffer_blit }
3764 GL_READ_FRAMEBUFFER_NV = $8CA8;
3765 GL_DRAW_FRAMEBUFFER_NV = $8CA9;
3766 GL_DRAW_FRAMEBUFFER_BINDING_NV = $8CA6;
3767 GL_READ_FRAMEBUFFER_BINDING_NV = $8CAA;
3769 TglBlitFramebufferNV = procedure(aSrcX0: GLint; aSrcY0: GLint; aSrcX1: GLint; aSrcY1: GLint; aDstX0: GLint; aDstY0: GLint; aDstX1: GLint; aDstY1: GLint; aMask: GLbitfield; aFilter: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3771 glBlitFramebufferNV: TglBlitFramebufferNV;
3773 { GL_NV_framebuffer_multisample }
3775 GL_RENDERBUFFER_SAMPLES_NV = $8CAB;
3776 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = $8D56;
3777 GL_MAX_SAMPLES_NV = $8D57;
3779 TglRenderbufferStorageMultisampleNV = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3781 glRenderbufferStorageMultisampleNV: TglRenderbufferStorageMultisampleNV;
3783 { GL_NV_generate_mipmap_sRGB }
3786 { GL_NV_image_formats }
3789 { GL_NV_instanced_arrays }
3791 GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = $88FE;
3793 TglVertexAttribDivisorNV = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3795 glVertexAttribDivisorNV: TglVertexAttribDivisorNV;
3797 { GL_NV_internalformat_sample_query }
3799 //GL_TEXTURE_2D_MULTISAMPLE = $9100;
3800 GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3801 GL_MULTISAMPLES_NV = $9371;
3802 GL_SUPERSAMPLE_SCALE_X_NV = $9372;
3803 GL_SUPERSAMPLE_SCALE_Y_NV = $9373;
3804 GL_CONFORMANT_NV = $9374;
3806 TglGetInternalformatSampleivNV = procedure(aTarget: GLenum; aInternalformat: GLenum; aSamples: GLsizei; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3808 glGetInternalformatSampleivNV: TglGetInternalformatSampleivNV;
3810 { GL_NV_non_square_matrices }
3812 GL_FLOAT_MAT2x3_NV = $8B65;
3813 GL_FLOAT_MAT2x4_NV = $8B66;
3814 GL_FLOAT_MAT3x2_NV = $8B67;
3815 GL_FLOAT_MAT3x4_NV = $8B68;
3816 GL_FLOAT_MAT4x2_NV = $8B69;
3817 GL_FLOAT_MAT4x3_NV = $8B6A;
3819 TglUniformMatrix2x3fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3820 TglUniformMatrix3x2fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3821 TglUniformMatrix2x4fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3822 TglUniformMatrix4x2fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3823 TglUniformMatrix3x4fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3824 TglUniformMatrix4x3fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3826 glUniformMatrix2x3fvNV: TglUniformMatrix2x3fvNV;
3827 glUniformMatrix3x2fvNV: TglUniformMatrix3x2fvNV;
3828 glUniformMatrix2x4fvNV: TglUniformMatrix2x4fvNV;
3829 glUniformMatrix4x2fvNV: TglUniformMatrix4x2fvNV;
3830 glUniformMatrix3x4fvNV: TglUniformMatrix3x4fvNV;
3831 glUniformMatrix4x3fvNV: TglUniformMatrix4x3fvNV;
3833 { GL_NV_path_rendering }
3835 GL_PATH_FORMAT_SVG_NV = $9070;
3836 GL_PATH_FORMAT_PS_NV = $9071;
3837 GL_STANDARD_FONT_NAME_NV = $9072;
3838 GL_SYSTEM_FONT_NAME_NV = $9073;
3839 GL_FILE_NAME_NV = $9074;
3840 GL_PATH_STROKE_WIDTH_NV = $9075;
3841 GL_PATH_END_CAPS_NV = $9076;
3842 GL_PATH_INITIAL_END_CAP_NV = $9077;
3843 GL_PATH_TERMINAL_END_CAP_NV = $9078;
3844 GL_PATH_JOIN_STYLE_NV = $9079;
3845 GL_PATH_MITER_LIMIT_NV = $907A;
3846 GL_PATH_DASH_CAPS_NV = $907B;
3847 GL_PATH_INITIAL_DASH_CAP_NV = $907C;
3848 GL_PATH_TERMINAL_DASH_CAP_NV = $907D;
3849 GL_PATH_DASH_OFFSET_NV = $907E;
3850 GL_PATH_CLIENT_LENGTH_NV = $907F;
3851 GL_PATH_FILL_MODE_NV = $9080;
3852 GL_PATH_FILL_MASK_NV = $9081;
3853 GL_PATH_FILL_COVER_MODE_NV = $9082;
3854 GL_PATH_STROKE_COVER_MODE_NV = $9083;
3855 GL_PATH_STROKE_MASK_NV = $9084;
3856 GL_COUNT_UP_NV = $9088;
3857 GL_COUNT_DOWN_NV = $9089;
3858 GL_PATH_OBJECT_BOUNDING_BOX_NV = $908A;
3859 GL_CONVEX_HULL_NV = $908B;
3860 GL_BOUNDING_BOX_NV = $908D;
3861 GL_TRANSLATE_X_NV = $908E;
3862 GL_TRANSLATE_Y_NV = $908F;
3863 GL_TRANSLATE_2D_NV = $9090;
3864 GL_TRANSLATE_3D_NV = $9091;
3865 GL_AFFINE_2D_NV = $9092;
3866 GL_AFFINE_3D_NV = $9094;
3867 GL_TRANSPOSE_AFFINE_2D_NV = $9096;
3868 GL_TRANSPOSE_AFFINE_3D_NV = $9098;
3870 GL_UTF16_NV = $909B;
3871 GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = $909C;
3872 GL_PATH_COMMAND_COUNT_NV = $909D;
3873 GL_PATH_COORD_COUNT_NV = $909E;
3874 GL_PATH_DASH_ARRAY_COUNT_NV = $909F;
3875 GL_PATH_COMPUTED_LENGTH_NV = $90A0;
3876 GL_PATH_FILL_BOUNDING_BOX_NV = $90A1;
3877 GL_PATH_STROKE_BOUNDING_BOX_NV = $90A2;
3878 GL_SQUARE_NV = $90A3;
3879 GL_ROUND_NV = $90A4;
3880 GL_TRIANGULAR_NV = $90A5;
3881 GL_BEVEL_NV = $90A6;
3882 GL_MITER_REVERT_NV = $90A7;
3883 GL_MITER_TRUNCATE_NV = $90A8;
3884 GL_SKIP_MISSING_GLYPH_NV = $90A9;
3885 GL_USE_MISSING_GLYPH_NV = $90AA;
3886 GL_PATH_ERROR_POSITION_NV = $90AB;
3887 GL_ACCUM_ADJACENT_PAIRS_NV = $90AD;
3888 GL_ADJACENT_PAIRS_NV = $90AE;
3889 GL_FIRST_TO_REST_NV = $90AF;
3890 GL_PATH_GEN_MODE_NV = $90B0;
3891 GL_PATH_GEN_COEFF_NV = $90B1;
3892 GL_PATH_GEN_COMPONENTS_NV = $90B3;
3893 GL_PATH_STENCIL_FUNC_NV = $90B7;
3894 GL_PATH_STENCIL_REF_NV = $90B8;
3895 GL_PATH_STENCIL_VALUE_MASK_NV = $90B9;
3896 GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = $90BD;
3897 GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = $90BE;
3898 GL_PATH_COVER_DEPTH_FUNC_NV = $90BF;
3899 GL_PATH_DASH_OFFSET_RESET_NV = $90B4;
3900 GL_MOVE_TO_RESETS_NV = $90B5;
3901 GL_MOVE_TO_CONTINUES_NV = $90B6;
3902 GL_CLOSE_PATH_NV = $00;
3903 GL_MOVE_TO_NV = $02;
3904 GL_RELATIVE_MOVE_TO_NV = $03;
3905 GL_LINE_TO_NV = $04;
3906 GL_RELATIVE_LINE_TO_NV = $05;
3907 GL_HORIZONTAL_LINE_TO_NV = $06;
3908 GL_RELATIVE_HORIZONTAL_LINE_TO_NV = $07;
3909 GL_VERTICAL_LINE_TO_NV = $08;
3910 GL_RELATIVE_VERTICAL_LINE_TO_NV = $09;
3911 GL_QUADRATIC_CURVE_TO_NV = $0A;
3912 GL_RELATIVE_QUADRATIC_CURVE_TO_NV = $0B;
3913 GL_CUBIC_CURVE_TO_NV = $0C;
3914 GL_RELATIVE_CUBIC_CURVE_TO_NV = $0D;
3915 GL_SMOOTH_QUADRATIC_CURVE_TO_NV = $0E;
3916 GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = $0F;
3917 GL_SMOOTH_CUBIC_CURVE_TO_NV = $10;
3918 GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = $11;
3919 GL_SMALL_CCW_ARC_TO_NV = $12;
3920 GL_RELATIVE_SMALL_CCW_ARC_TO_NV = $13;
3921 GL_SMALL_CW_ARC_TO_NV = $14;
3922 GL_RELATIVE_SMALL_CW_ARC_TO_NV = $15;
3923 GL_LARGE_CCW_ARC_TO_NV = $16;
3924 GL_RELATIVE_LARGE_CCW_ARC_TO_NV = $17;
3925 GL_LARGE_CW_ARC_TO_NV = $18;
3926 GL_RELATIVE_LARGE_CW_ARC_TO_NV = $19;
3927 GL_RESTART_PATH_NV = $F0;
3928 GL_DUP_FIRST_CUBIC_CURVE_TO_NV = $F2;
3929 GL_DUP_LAST_CUBIC_CURVE_TO_NV = $F4;
3931 GL_CIRCULAR_CCW_ARC_TO_NV = $F8;
3932 GL_CIRCULAR_CW_ARC_TO_NV = $FA;
3933 GL_CIRCULAR_TANGENT_ARC_TO_NV = $FC;
3935 GL_RELATIVE_ARC_TO_NV = $FF;
3936 GL_BOLD_BIT_NV = $01;
3937 GL_ITALIC_BIT_NV = $02;
3938 GL_GLYPH_WIDTH_BIT_NV = $01;
3939 GL_GLYPH_HEIGHT_BIT_NV = $02;
3940 GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = $04;
3941 GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = $08;
3942 GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = $10;
3943 GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = $20;
3944 GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = $40;
3945 GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = $80;
3946 GL_GLYPH_HAS_KERNING_BIT_NV = $100;
3947 GL_FONT_X_MIN_BOUNDS_BIT_NV = $00010000;
3948 GL_FONT_Y_MIN_BOUNDS_BIT_NV = $00020000;
3949 GL_FONT_X_MAX_BOUNDS_BIT_NV = $00040000;
3950 GL_FONT_Y_MAX_BOUNDS_BIT_NV = $00080000;
3951 GL_FONT_UNITS_PER_EM_BIT_NV = $00100000;
3952 GL_FONT_ASCENDER_BIT_NV = $00200000;
3953 GL_FONT_DESCENDER_BIT_NV = $00400000;
3954 GL_FONT_HEIGHT_BIT_NV = $00800000;
3955 GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = $01000000;
3956 GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = $02000000;
3957 GL_FONT_UNDERLINE_POSITION_BIT_NV = $04000000;
3958 GL_FONT_UNDERLINE_THICKNESS_BIT_NV = $08000000;
3959 GL_FONT_HAS_KERNING_BIT_NV = $10000000;
3960 GL_ROUNDED_RECT_NV = $E8;
3961 GL_RELATIVE_ROUNDED_RECT_NV = $E9;
3962 GL_ROUNDED_RECT2_NV = $EA;
3963 GL_RELATIVE_ROUNDED_RECT2_NV = $EB;
3964 GL_ROUNDED_RECT4_NV = $EC;
3965 GL_RELATIVE_ROUNDED_RECT4_NV = $ED;
3966 GL_ROUNDED_RECT8_NV = $EE;
3967 GL_RELATIVE_ROUNDED_RECT8_NV = $EF;
3968 GL_RELATIVE_RECT_NV = $F7;
3969 GL_FONT_GLYPHS_AVAILABLE_NV = $9368;
3970 GL_FONT_TARGET_UNAVAILABLE_NV = $9369;
3971 GL_FONT_UNAVAILABLE_NV = $936A;
3972 GL_FONT_UNINTELLIGIBLE_NV = $936B;
3973 GL_CONIC_CURVE_TO_NV = $1A;
3974 GL_RELATIVE_CONIC_CURVE_TO_NV = $1B;
3975 GL_FONT_NUM_GLYPH_INDICES_BIT_NV = $20000000;
3976 GL_STANDARD_FONT_FORMAT_NV = $936C;
3977 GL_PATH_PROJECTION_NV = $1701;
3978 GL_PATH_MODELVIEW_NV = $1700;
3979 GL_PATH_MODELVIEW_STACK_DEPTH_NV = $0BA3;
3980 GL_PATH_MODELVIEW_MATRIX_NV = $0BA6;
3981 GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = $0D36;
3982 GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = $84E3;
3983 GL_PATH_PROJECTION_STACK_DEPTH_NV = $0BA4;
3984 GL_PATH_PROJECTION_MATRIX_NV = $0BA7;
3985 GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = $0D38;
3986 GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = $84E4;
3987 GL_FRAGMENT_INPUT_NV = $936D;
3989 TglGenPathsNV = function (aRange: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3990 TglDeletePathsNV = procedure(aPath: GLuint; aRange: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3991 TglIsPathNV = function (aPath: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3992 TglPathCommandsNV = procedure(aPath: GLuint; aNumCommands: GLsizei; const aCommands: PGLubyte; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3993 TglPathCoordsNV = procedure(aPath: GLuint; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3994 TglPathSubCommandsNV = procedure(aPath: GLuint; aCommandStart: GLsizei; aCommandsToDelete: GLsizei; aNumCommands: GLsizei; const aCommands: PGLubyte; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3995 TglPathSubCoordsNV = procedure(aPath: GLuint; aCoordStart: GLsizei; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3996 TglPathStringNV = procedure(aPath: GLuint; aFormat: GLenum; aLength: GLsizei; const aPathString: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3997 TglPathGlyphsNV = procedure(aFirstPathName: GLuint; aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aNumGlyphs: GLsizei; aType: GLenum; const aCharcodes: Pointer; aHandleMissingGlyphs: GLenum; aPathParameterTemplate: GLuint; aEmScale: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3998 TglPathGlyphRangeNV = procedure(aFirstPathName: GLuint; aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aFirstGlyph: GLuint; aNumGlyphs: GLsizei; aHandleMissingGlyphs: GLenum; aPathParameterTemplate: GLuint; aEmScale: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
3999 TglWeightPathsNV = procedure(aResultPath: GLuint; aNumPaths: GLsizei; const aPaths: PGLuint; const aWeights: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4000 TglCopyPathNV = procedure(aResultPath: GLuint; aSrcPath: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4001 TglInterpolatePathsNV = procedure(aResultPath: GLuint; aPathA: GLuint; aPathB: GLuint; aWeight: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4002 TglTransformPathNV = procedure(aResultPath: GLuint; aSrcPath: GLuint; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4003 TglPathParameterivNV = procedure(aPath: GLuint; aPname: GLenum; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4004 TglPathParameteriNV = procedure(aPath: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4005 TglPathParameterfvNV = procedure(aPath: GLuint; aPname: GLenum; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4006 TglPathParameterfNV = procedure(aPath: GLuint; aPname: GLenum; aValue: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4007 TglPathDashArrayNV = procedure(aPath: GLuint; aDashCount: GLsizei; const aDashArray: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4008 TglPathStencilFuncNV = procedure(aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4009 TglPathStencilDepthOffsetNV = procedure(aFactor: GLfloat; aUnits: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4010 TglStencilFillPathNV = procedure(aPath: GLuint; aFillMode: GLenum; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4011 TglStencilStrokePathNV = procedure(aPath: GLuint; aReference: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4012 TglStencilFillPathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aFillMode: GLenum; aMask: GLuint; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4013 TglStencilStrokePathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aReference: GLint; aMask: GLuint; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4014 TglPathCoverDepthFuncNV = procedure(aFunc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4015 TglCoverFillPathNV = procedure(aPath: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4016 TglCoverStrokePathNV = procedure(aPath: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4017 TglCoverFillPathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4018 TglCoverStrokePathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4019 TglGetPathParameterivNV = procedure(aPath: GLuint; aPname: GLenum; aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4020 TglGetPathParameterfvNV = procedure(aPath: GLuint; aPname: GLenum; aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4021 TglGetPathCommandsNV = procedure(aPath: GLuint; aCommands: PGLubyte); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4022 TglGetPathCoordsNV = procedure(aPath: GLuint; aCoords: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4023 TglGetPathDashArrayNV = procedure(aPath: GLuint; aDashArray: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4024 TglGetPathMetricsNV = procedure(aMetricQueryMask: GLbitfield; aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aStride: GLsizei; aMetrics: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4025 TglGetPathMetricRangeNV = procedure(aMetricQueryMask: GLbitfield; aFirstPathName: GLuint; aNumPaths: GLsizei; aStride: GLsizei; aMetrics: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4026 TglGetPathSpacingNV = procedure(aPathListMode: GLenum; aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aAdvanceScale: GLfloat; aKerningScale: GLfloat; aTransformType: GLenum; aReturnedSpacing: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4027 TglIsPointInFillPathNV = function (aPath: GLuint; aMask: GLuint; x: GLfloat; y: GLfloat): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4028 TglIsPointInStrokePathNV = function (aPath: GLuint; x: GLfloat; y: GLfloat): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4029 TglGetPathLengthNV = function (aPath: GLuint; aStartSegment: GLsizei; aNumSegments: GLsizei): GLfloat; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4030 TglPointAlongPathNV = function (aPath: GLuint; aStartSegment: GLsizei; aNumSegments: GLsizei; aDistance: GLfloat; x: PGLfloat; y: PGLfloat; aTangentX: PGLfloat; aTangentY: PGLfloat): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4031 TglMatrixLoad3x2fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4032 TglMatrixLoad3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4033 TglMatrixLoadTranspose3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4034 TglMatrixMult3x2fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4035 TglMatrixMult3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4036 TglMatrixMultTranspose3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4037 TglStencilThenCoverFillPathNV = procedure(aPath: GLuint; aFillMode: GLenum; aMask: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4038 TglStencilThenCoverStrokePathNV = procedure(aPath: GLuint; aReference: GLint; aMask: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4039 TglStencilThenCoverFillPathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aFillMode: GLenum; aMask: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4040 TglStencilThenCoverStrokePathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aReference: GLint; aMask: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4041 TglPathGlyphIndexRangeNV = function (aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aPathParameterTemplate: GLuint; aEmScale: GLfloat; aBaseAndCount: PGLuint): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4042 TglPathGlyphIndexArrayNV = function (aFirstPathName: GLuint; aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aFirstGlyphIndex: GLuint; aNumGlyphs: GLsizei; aPathParameterTemplate: GLuint; aEmScale: GLfloat): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4043 TglPathMemoryGlyphIndexArrayNV = function (aFirstPathName: GLuint; aFontTarget: GLenum; aFontSize: GLsizeiptr; const aFontData: Pointer; aFaceIndex: GLsizei; aFirstGlyphIndex: GLuint; aNumGlyphs: GLsizei; aPathParameterTemplate: GLuint; aEmScale: GLfloat): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4044 TglProgramPathFragmentInputGenNV = procedure(aProgram: GLuint; aLocation: GLint; aGenMode: GLenum; aComponents: GLint; const aCoeffs: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4045 TglGetProgramResourcefvNV = procedure(aProgram: GLuint; aProgramInterface: GLenum; aIndex: GLuint; aPropCount: GLsizei; const aProps: PGLenum; aBufSize: GLsizei; aLength: PGLsizei; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4047 glGenPathsNV: TglGenPathsNV;
4048 glDeletePathsNV: TglDeletePathsNV;
4049 glIsPathNV: TglIsPathNV;
4050 glPathCommandsNV: TglPathCommandsNV;
4051 glPathCoordsNV: TglPathCoordsNV;
4052 glPathSubCommandsNV: TglPathSubCommandsNV;
4053 glPathSubCoordsNV: TglPathSubCoordsNV;
4054 glPathStringNV: TglPathStringNV;
4055 glPathGlyphsNV: TglPathGlyphsNV;
4056 glPathGlyphRangeNV: TglPathGlyphRangeNV;
4057 glWeightPathsNV: TglWeightPathsNV;
4058 glCopyPathNV: TglCopyPathNV;
4059 glInterpolatePathsNV: TglInterpolatePathsNV;
4060 glTransformPathNV: TglTransformPathNV;
4061 glPathParameterivNV: TglPathParameterivNV;
4062 glPathParameteriNV: TglPathParameteriNV;
4063 glPathParameterfvNV: TglPathParameterfvNV;
4064 glPathParameterfNV: TglPathParameterfNV;
4065 glPathDashArrayNV: TglPathDashArrayNV;
4066 glPathStencilFuncNV: TglPathStencilFuncNV;
4067 glPathStencilDepthOffsetNV: TglPathStencilDepthOffsetNV;
4068 glStencilFillPathNV: TglStencilFillPathNV;
4069 glStencilStrokePathNV: TglStencilStrokePathNV;
4070 glStencilFillPathInstancedNV: TglStencilFillPathInstancedNV;
4071 glStencilStrokePathInstancedNV: TglStencilStrokePathInstancedNV;
4072 glPathCoverDepthFuncNV: TglPathCoverDepthFuncNV;
4073 glCoverFillPathNV: TglCoverFillPathNV;
4074 glCoverStrokePathNV: TglCoverStrokePathNV;
4075 glCoverFillPathInstancedNV: TglCoverFillPathInstancedNV;
4076 glCoverStrokePathInstancedNV: TglCoverStrokePathInstancedNV;
4077 glGetPathParameterivNV: TglGetPathParameterivNV;
4078 glGetPathParameterfvNV: TglGetPathParameterfvNV;
4079 glGetPathCommandsNV: TglGetPathCommandsNV;
4080 glGetPathCoordsNV: TglGetPathCoordsNV;
4081 glGetPathDashArrayNV: TglGetPathDashArrayNV;
4082 glGetPathMetricsNV: TglGetPathMetricsNV;
4083 glGetPathMetricRangeNV: TglGetPathMetricRangeNV;
4084 glGetPathSpacingNV: TglGetPathSpacingNV;
4085 glIsPointInFillPathNV: TglIsPointInFillPathNV;
4086 glIsPointInStrokePathNV: TglIsPointInStrokePathNV;
4087 glGetPathLengthNV: TglGetPathLengthNV;
4088 glPointAlongPathNV: TglPointAlongPathNV;
4089 glMatrixLoad3x2fNV: TglMatrixLoad3x2fNV;
4090 glMatrixLoad3x3fNV: TglMatrixLoad3x3fNV;
4091 glMatrixLoadTranspose3x3fNV: TglMatrixLoadTranspose3x3fNV;
4092 glMatrixMult3x2fNV: TglMatrixMult3x2fNV;
4093 glMatrixMult3x3fNV: TglMatrixMult3x3fNV;
4094 glMatrixMultTranspose3x3fNV: TglMatrixMultTranspose3x3fNV;
4095 glStencilThenCoverFillPathNV: TglStencilThenCoverFillPathNV;
4096 glStencilThenCoverStrokePathNV: TglStencilThenCoverStrokePathNV;
4097 glStencilThenCoverFillPathInstancedNV: TglStencilThenCoverFillPathInstancedNV;
4098 glStencilThenCoverStrokePathInstancedNV: TglStencilThenCoverStrokePathInstancedNV;
4099 glPathGlyphIndexRangeNV: TglPathGlyphIndexRangeNV;
4100 glPathGlyphIndexArrayNV: TglPathGlyphIndexArrayNV;
4101 glPathMemoryGlyphIndexArrayNV: TglPathMemoryGlyphIndexArrayNV;
4102 glProgramPathFragmentInputGenNV: TglProgramPathFragmentInputGenNV;
4103 glGetProgramResourcefvNV: TglGetProgramResourcefvNV;
4105 { GL_NV_read_buffer }
4107 GL_READ_BUFFER_NV = $0C02;
4109 TglReadBufferNV = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4111 glReadBufferNV: TglReadBufferNV;
4113 { GL_NV_read_buffer_front }
4116 { GL_NV_read_depth }
4119 { GL_NV_read_depth_stencil }
4122 { GL_NV_read_stencil }
4125 { GL_NV_sRGB_formats }
4127 GL_SLUMINANCE_NV = $8C46;
4128 GL_SLUMINANCE_ALPHA_NV = $8C44;
4129 GL_SRGB8_NV = $8C41;
4130 GL_SLUMINANCE8_NV = $8C47;
4131 GL_SLUMINANCE8_ALPHA8_NV = $8C45;
4132 GL_COMPRESSED_SRGB_S3TC_DXT1_NV = $8C4C;
4133 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = $8C4D;
4134 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = $8C4E;
4135 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = $8C4F;
4136 GL_ETC1_SRGB8_NV = $88EE;
4138 { GL_NV_shader_noperspective_interpolation }
4141 { GL_NV_shadow_samplers_array }
4143 GL_SAMPLER_2D_ARRAY_SHADOW_NV = $8DC4;
4145 { GL_NV_shadow_samplers_cube }
4147 GL_SAMPLER_CUBE_SHADOW_NV = $8DC5;
4149 { GL_NV_texture_border_clamp }
4151 GL_TEXTURE_BORDER_COLOR_NV = $1004;
4152 GL_CLAMP_TO_BORDER_NV = $812D;
4154 { GL_NV_texture_compression_s3tc_update }
4157 { GL_NV_texture_npot_2D_mipmap }
4160 { GL_NV_viewport_array }
4162 GL_MAX_VIEWPORTS_NV = $825B;
4163 GL_VIEWPORT_SUBPIXEL_BITS_NV = $825C;
4164 GL_VIEWPORT_BOUNDS_RANGE_NV = $825D;
4165 GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = $825F;
4167 TglViewportArrayvNV = procedure(aFirst: GLuint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4168 TglViewportIndexedfNV = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4169 TglViewportIndexedfvNV = procedure(aIndex: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4170 TglScissorArrayvNV = procedure(aFirst: GLuint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4171 TglScissorIndexedNV = procedure(aIndex: GLuint; aLeft: GLint; aBottom: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4172 TglScissorIndexedvNV = procedure(aIndex: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4173 TglDepthRangeArrayfvNV = procedure(aFirst: GLuint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4174 TglDepthRangeIndexedfNV = procedure(aIndex: GLuint; n: GLfloat; f: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4175 TglGetFloati_vNV = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4176 TglEnableiNV = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4177 TglDisableiNV = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4178 TglIsEnablediNV = function (aTarget: GLenum; aIndex: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4180 glViewportArrayvNV: TglViewportArrayvNV;
4181 glViewportIndexedfNV: TglViewportIndexedfNV;
4182 glViewportIndexedfvNV: TglViewportIndexedfvNV;
4183 glScissorArrayvNV: TglScissorArrayvNV;
4184 glScissorIndexedNV: TglScissorIndexedNV;
4185 glScissorIndexedvNV: TglScissorIndexedvNV;
4186 glDepthRangeArrayfvNV: TglDepthRangeArrayfvNV;
4187 glDepthRangeIndexedfNV: TglDepthRangeIndexedfNV;
4188 glGetFloati_vNV: TglGetFloati_vNV;
4189 glEnableiNV: TglEnableiNV;
4190 glDisableiNV: TglDisableiNV;
4191 glIsEnablediNV: TglIsEnablediNV;
4193 { GL_QCOM_alpha_test }
4195 GL_ALPHA_TEST_QCOM = $0BC0;
4196 GL_ALPHA_TEST_FUNC_QCOM = $0BC1;
4197 GL_ALPHA_TEST_REF_QCOM = $0BC2;
4199 TglAlphaFuncQCOM = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4201 glAlphaFuncQCOM: TglAlphaFuncQCOM;
4203 { GL_QCOM_binning_control }
4205 GL_BINNING_CONTROL_HINT_QCOM = $8FB0;
4206 GL_CPU_OPTIMIZED_QCOM = $8FB1;
4207 GL_GPU_OPTIMIZED_QCOM = $8FB2;
4208 GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = $8FB3;
4210 { GL_QCOM_driver_control }
4212 TglGetDriverControlsQCOM = procedure(aNum: PGLint; aSize: GLsizei; aDriverControls: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4213 TglGetDriverControlStringQCOM = procedure(aDriverControl: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aDriverControlString: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4214 TglEnableDriverControlQCOM = procedure(aDriverControl: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4215 TglDisableDriverControlQCOM = procedure(aDriverControl: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4217 glGetDriverControlsQCOM: TglGetDriverControlsQCOM;
4218 glGetDriverControlStringQCOM: TglGetDriverControlStringQCOM;
4219 glEnableDriverControlQCOM: TglEnableDriverControlQCOM;
4220 glDisableDriverControlQCOM: TglDisableDriverControlQCOM;
4222 { GL_QCOM_extended_get }
4224 GL_TEXTURE_WIDTH_QCOM = $8BD2;
4225 GL_TEXTURE_HEIGHT_QCOM = $8BD3;
4226 GL_TEXTURE_DEPTH_QCOM = $8BD4;
4227 GL_TEXTURE_INTERNAL_FORMAT_QCOM = $8BD5;
4228 GL_TEXTURE_FORMAT_QCOM = $8BD6;
4229 GL_TEXTURE_TYPE_QCOM = $8BD7;
4230 GL_TEXTURE_IMAGE_VALID_QCOM = $8BD8;
4231 GL_TEXTURE_NUM_LEVELS_QCOM = $8BD9;
4232 GL_TEXTURE_TARGET_QCOM = $8BDA;
4233 GL_TEXTURE_OBJECT_VALID_QCOM = $8BDB;
4234 GL_STATE_RESTORE = $8BDC;
4236 TglExtGetTexturesQCOM = procedure(aTextures: PGLuint; aMaxTextures: GLint; aNumTextures: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4237 TglExtGetBuffersQCOM = procedure(aBuffers: PGLuint; aMaxBuffers: GLint; aNumBuffers: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4238 TglExtGetRenderbuffersQCOM = procedure(aRenderbuffers: PGLuint; aMaxRenderbuffers: GLint; aNumRenderbuffers: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4239 TglExtGetFramebuffersQCOM = procedure(aFramebuffers: PGLuint; aMaxFramebuffers: GLint; aNumFramebuffers: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4240 TglExtGetTexLevelParameterivQCOM = procedure(aTexture: GLuint; aFace: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4241 TglExtTexObjectStateOverrideiQCOM = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4242 TglExtGetTexSubImageQCOM = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aType: GLenum; aTexels: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4243 TglExtGetBufferPointervQCOM = procedure(aTarget: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4245 glExtGetTexturesQCOM: TglExtGetTexturesQCOM;
4246 glExtGetBuffersQCOM: TglExtGetBuffersQCOM;
4247 glExtGetRenderbuffersQCOM: TglExtGetRenderbuffersQCOM;
4248 glExtGetFramebuffersQCOM: TglExtGetFramebuffersQCOM;
4249 glExtGetTexLevelParameterivQCOM: TglExtGetTexLevelParameterivQCOM;
4250 glExtTexObjectStateOverrideiQCOM: TglExtTexObjectStateOverrideiQCOM;
4251 glExtGetTexSubImageQCOM: TglExtGetTexSubImageQCOM;
4252 glExtGetBufferPointervQCOM: TglExtGetBufferPointervQCOM;
4254 { GL_QCOM_extended_get2 }
4256 TglExtGetShadersQCOM = procedure(aShaders: PGLuint; aMaxShaders: GLint; aNumShaders: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4257 TglExtGetProgramsQCOM = procedure(aPrograms: PGLuint; aMaxPrograms: GLint; aNumPrograms: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4258 TglExtIsProgramBinaryQCOM = function (aProgram: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4259 TglExtGetProgramBinarySourceQCOM = procedure(aProgram: GLuint; aShadertype: GLenum; aSource: PGLchar; aLength: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4261 glExtGetShadersQCOM: TglExtGetShadersQCOM;
4262 glExtGetProgramsQCOM: TglExtGetProgramsQCOM;
4263 glExtIsProgramBinaryQCOM: TglExtIsProgramBinaryQCOM;
4264 glExtGetProgramBinarySourceQCOM: TglExtGetProgramBinarySourceQCOM;
4266 { GL_QCOM_perfmon_global_mode }
4268 GL_PERFMON_GLOBAL_MODE_QCOM = $8FA0;
4270 { GL_QCOM_tiled_rendering }
4272 GL_COLOR_BUFFER_BIT0_QCOM = $00000001;
4273 GL_COLOR_BUFFER_BIT1_QCOM = $00000002;
4274 GL_COLOR_BUFFER_BIT2_QCOM = $00000004;
4275 GL_COLOR_BUFFER_BIT3_QCOM = $00000008;
4276 GL_COLOR_BUFFER_BIT4_QCOM = $00000010;
4277 GL_COLOR_BUFFER_BIT5_QCOM = $00000020;
4278 GL_COLOR_BUFFER_BIT6_QCOM = $00000040;
4279 GL_COLOR_BUFFER_BIT7_QCOM = $00000080;
4280 GL_DEPTH_BUFFER_BIT0_QCOM = $00000100;
4281 GL_DEPTH_BUFFER_BIT1_QCOM = $00000200;
4282 GL_DEPTH_BUFFER_BIT2_QCOM = $00000400;
4283 GL_DEPTH_BUFFER_BIT3_QCOM = $00000800;
4284 GL_DEPTH_BUFFER_BIT4_QCOM = $00001000;
4285 GL_DEPTH_BUFFER_BIT5_QCOM = $00002000;
4286 GL_DEPTH_BUFFER_BIT6_QCOM = $00004000;
4287 GL_DEPTH_BUFFER_BIT7_QCOM = $00008000;
4288 GL_STENCIL_BUFFER_BIT0_QCOM = $00010000;
4289 GL_STENCIL_BUFFER_BIT1_QCOM = $00020000;
4290 GL_STENCIL_BUFFER_BIT2_QCOM = $00040000;
4291 GL_STENCIL_BUFFER_BIT3_QCOM = $00080000;
4292 GL_STENCIL_BUFFER_BIT4_QCOM = $00100000;
4293 GL_STENCIL_BUFFER_BIT5_QCOM = $00200000;
4294 GL_STENCIL_BUFFER_BIT6_QCOM = $00400000;
4295 GL_STENCIL_BUFFER_BIT7_QCOM = $00800000;
4296 GL_MULTISAMPLE_BUFFER_BIT0_QCOM = $01000000;
4297 GL_MULTISAMPLE_BUFFER_BIT1_QCOM = $02000000;
4298 GL_MULTISAMPLE_BUFFER_BIT2_QCOM = $04000000;
4299 GL_MULTISAMPLE_BUFFER_BIT3_QCOM = $08000000;
4300 GL_MULTISAMPLE_BUFFER_BIT4_QCOM = $10000000;
4301 GL_MULTISAMPLE_BUFFER_BIT5_QCOM = $20000000;
4302 GL_MULTISAMPLE_BUFFER_BIT6_QCOM = $40000000;
4303 GL_MULTISAMPLE_BUFFER_BIT7_QCOM = $80000000;
4305 TglStartTilingQCOM = procedure(x: GLuint; y: GLuint; aWidth: GLuint; aHeight: GLuint; aPreserveMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4306 TglEndTilingQCOM = procedure(aPreserveMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4308 glStartTilingQCOM: TglStartTilingQCOM;
4309 glEndTilingQCOM: TglEndTilingQCOM;
4311 { GL_QCOM_writeonly_rendering }
4313 GL_WRITEONLY_RENDERING_QCOM = $8823;
4315 { GL_VIV_shader_binary }
4317 GL_SHADER_BINARY_VIV = $8FC4;
4319 { ================================================== EGL ============================================================= }
4322 EGLboolean = Cardinal;
4324 EGLConfig = Pointer;
4325 EGLContext = Pointer;
4326 EGLDisplay = Pointer;
4327 EGLSurface = Pointer;
4328 EGLClientBuffer = Pointer;
4329 EGLNativeDisplayType = Pointer;
4330 EGLNativePixmapType = Pointer;
4331 EGLNativeWindowType = packed record
4338 PEGLboolean = ^EGLboolean;
4339 PEGLenum = ^EGLenum;
4340 PEGLConfig = ^EGLConfig;
4341 PEGLContext = ^EGLContext;
4342 PEGLDisplay = ^EGLDisplay;
4343 PEGLSurface = ^EGLSurface;
4344 PEGLClientBuffer = ^EGLClientBuffer;
4345 PEGLNativeDisplayType = ^EGLNativeDisplayType;
4346 PEGLNativePixmapType = ^EGLNativePixmapType;
4347 PEGLNativeWindowType = ^EGLNativeWindowType;
4350 EGL_FALSE: EGLboolean = 0;
4351 EGL_TRUE: EGLboolean = 1;
4353 EGL_DEFAULT_DISPLAY: EGLNativeDisplayType = nil;
4354 EGL_NO_CONTEXT: EGLContext = nil;
4355 EGL_NO_DISPLAY: EGLDisplay = nil;
4356 EGL_NO_SURFACE: EGLSurface = nil;
4358 EGL_DONT_CARE: EGLint = -1;
4360 EGL_SUCCESS = $3000;
4361 EGL_NOT_INITIALIZED = $3001;
4362 EGL_BAD_ACCESS = $3002;
4363 EGL_BAD_ALLOC = $3003;
4364 EGL_BAD_ATTRIBUTE = $3004;
4365 EGL_BAD_CONFIG = $3005;
4366 EGL_BAD_CONTEXT = $3006;
4367 EGL_BAD_CURRENT_SURFACE = $3007;
4368 EGL_BAD_DISPLAY = $3008;
4369 EGL_BAD_MATCH = $3009;
4370 EGL_BAD_NATIVE_PIXMAP = $300A;
4371 EGL_BAD_NATIVE_WINDOW = $300B;
4372 EGL_BAD_PARAMETER = $300C;
4373 EGL_BAD_SURFACE = $300D;
4374 EGL_CONTEXT_LOST = $300E;
4376 EGL_BUFFER_SIZE = $3020;
4377 EGL_ALPHA_SIZE = $3021;
4378 EGL_BLUE_SIZE = $3022;
4379 EGL_GREEN_SIZE = $3023;
4380 EGL_RED_SIZE = $3024;
4381 EGL_DEPTH_SIZE = $3025;
4382 EGL_STENCIL_SIZE = $3026;
4383 EGL_CONFIG_CAVEAT = $3027;
4384 EGL_CONFIG_ID = $3028;
4386 EGL_MAX_PBUFFER_HEIGHT = $302A;
4387 EGL_MAX_PBUFFER_PIXELS = $302B;
4388 EGL_MAX_PBUFFER_WIDTH = $302C;
4389 EGL_NATIVE_RENDERABLE = $302D;
4390 EGL_NATIVE_VISUAL_ID = $302E;
4391 EGL_NATIVE_VISUAL_TYPE = $302F;
4392 EGL_SAMPLES = $3031;
4393 EGL_SAMPLE_BUFFERS = $3032;
4394 EGL_SURFACE_TYPE = $3033;
4395 EGL_TRANSPARENT_TYPE = $3034;
4396 EGL_TRANSPARENT_BLUE_VALUE = $3035;
4397 EGL_TRANSPARENT_GREEN_VALUE = $3036;
4398 EGL_TRANSPARENT_RED_VALUE = $3037;
4400 EGL_BIND_TO_TEXTURE_RGB = $3039;
4401 EGL_BIND_TO_TEXTURE_RGBA = $303A;
4402 EGL_MIN_SWAP_INTERVAL = $303B;
4403 EGL_MAX_SWAP_INTERVAL = $303C;
4404 EGL_LUMINANCE_SIZE = $303D;
4405 EGL_ALPHA_MASK_SIZE = $303E;
4406 EGL_COLOR_BUFFER_TYPE = $303F;
4407 EGL_RENDERABLE_TYPE = $3040;
4408 EGL_MATCH_NATIVE_PIXMAP = $3041;
4409 EGL_CONFORMANT = $3042;
4411 EGL_SLOW_CONFIG = $3050;
4412 EGL_NON_CONFORMANT_CONFIG = $3051;
4413 EGL_TRANSPARENT_RGB = $3052;
4414 EGL_RGB_BUFFER = $308E;
4415 EGL_LUMINANCE_BUFFER = $308F;
4417 EGL_NO_TEXTURE = $305C;
4418 EGL_TEXTURE_RGB = $305D;
4419 EGL_TEXTURE_RGBA = $305E;
4420 EGL_TEXTURE_2D = $305F;
4422 EGL_PBUFFER_BIT = $0001;
4423 EGL_PIXMAP_BIT = $0002;
4424 EGL_WINDOW_BIT = $0004;
4425 EGL_VG_COLORSPACE_LINEAR_BIT = $0020;
4426 EGL_VG_ALPHA_FORMAT_PRE_BIT = $0040;
4427 EGL_MULTISAMPLE_RESOLVE_BOX_BIT = $0200;
4428 EGL_SWAP_BEHAVIOR_PRESERVED_BIT = $0400;
4430 EGL_OPENGL_ES_BIT = $0001;
4431 EGL_OPENVG_BIT = $0002;
4432 EGL_OPENGL_ES2_BIT = $0004;
4433 EGL_OPENGL_BIT = $0008;
4436 EGL_VERSION = $3054;
4437 EGL_EXTENSIONS = $3055;
4438 EGL_CLIENT_APIS = $308D;
4442 EGL_LARGEST_PBUFFER = $3058;
4443 EGL_TEXTURE_FORMAT = $3080;
4444 EGL_TEXTURE_TARGET = $3081;
4445 EGL_MIPMAP_TEXTURE = $3082;
4446 EGL_MIPMAP_LEVEL = $3083;
4447 EGL_RENDER_BUFFER = $3086;
4448 EGL_VG_COLORSPACE = $3087;
4449 EGL_VG_ALPHA_FORMAT = $3088;
4450 EGL_HORIZONTAL_RESOLUTION = $3090;
4451 EGL_VERTICAL_RESOLUTION = $3091;
4452 EGL_PIXEL_ASPECT_RATIO = $3092;
4453 EGL_SWAP_BEHAVIOR = $3093;
4454 EGL_MULTISAMPLE_RESOLVE = $3099;
4456 EGL_BACK_BUFFER = $3084;
4457 EGL_SINGLE_BUFFER = $3085;
4459 EGL_VG_COLORSPACE_sRGB = $3089;
4460 EGL_VG_COLORSPACE_LINEAR = $308A;
4462 EGL_VG_ALPHA_FORMAT_NONPRE = $308B;
4463 EGL_VG_ALPHA_FORMAT_PRE = $308C;
4465 EGL_DISPLAY_SCALING = 10000;
4467 EGL_UNKNOWN: EGLint = -1;
4469 EGL_BUFFER_PRESERVED = $3094;
4470 EGL_BUFFER_DESTROYED = $3095;
4472 EGL_OPENVG_IMAGE = $3096;
4474 EGL_CONTEXT_CLIENT_TYPE = $3097;
4476 EGL_CONTEXT_CLIENT_VERSION = $3098;
4478 EGL_MULTISAMPLE_RESOLVE_DEFAULT = $309A;
4479 EGL_MULTISAMPLE_RESOLVE_BOX = $309B;
4481 EGL_OPENGL_ES_API = $30A0;
4482 EGL_OPENVG_API = $30A1;
4483 EGL_OPENGL_API = $30A2;
4488 EGL_CORE_NATIVE_ENGINE = $305B;
4490 EGL_COLORSPACE = EGL_VG_COLORSPACE;
4491 EGL_ALPHA_FORMAT = EGL_VG_ALPHA_FORMAT;
4492 EGL_COLORSPACE_sRGB = EGL_VG_COLORSPACE_sRGB;
4493 EGL_COLORSPACE_LINEAR = EGL_VG_COLORSPACE_LINEAR;
4494 EGL_ALPHA_FORMAT_NONPRE = EGL_VG_ALPHA_FORMAT_NONPRE;
4495 EGL_ALPHA_FORMAT_PRE = EGL_VG_ALPHA_FORMAT_PRE;
4498 TeglGetError = function: EGLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4500 TeglGetDisplay = function(aDisplayID: EGLNativeDisplayType): EGLDisplay; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4501 TeglInitialize = function(aDisplay: EGLDisplay; aMajor, aMinor: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4502 TeglTerminate = function(aDisplay: EGLDisplay): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4504 TeglQueryString = function(aDisplay: EGLDisplay; name: EGLint): PAnsiChar; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4506 TeglGetConfigs = function(aDisplay: EGLDisplay; aConfigs: PEGLConfig; aConfigSize: EGLint; numConfig: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4507 TeglChooseConfig = function(aDisplay: EGLDisplay; const aAttribList: PEGLint; aConfigs: PEGLConfig; aConfigSize: EGLint; numConfig: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4508 TeglGetConfigAttrib = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aAttribute: EGLint; aValue : PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4510 TeglCreateWindowSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aWinType: PEGLNativeWindowType; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4511 TeglCreatePbufferSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4512 TeglCreatePixmapSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aPixmap: EGLNativePixmapType; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4513 TeglDestroySurface = function(aDisplay: EGLDisplay; aSurface: EGLSurface): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4514 TeglQuerySurface = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aAttribute: EGLint; aValue: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4516 TeglBindAPI = function(aApi: EGLenum): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4517 TeglQueryAPI = function: EGLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4519 TeglWaitClient = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4521 TeglReleaseThread = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4523 TeglCreatePbufferFromClientBuffer = function(aDisplay: EGLDisplay; aBufType: EGLenum; aBuffer: EGLClientBuffer; aConfig: EGLConfig; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4525 TeglSurfaceAttrib = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aAttribute: EGLint; aValue: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4526 TeglBindTexImage = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aBuffer: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4527 TeglReleaseTexImage = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aBuffer: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4529 TeglSwapInterval = function(aDisplay: EGLDisplay; aInterval: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4531 TeglCreateContext = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aShareContext: EGLContext; const aAttribList: PEGLint): EGLContext; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4532 TeglDestroyContext = function(aDisplay: EGLDisplay; aContext: EGLContext): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4533 TeglMakeCurrent = function(aDisplay: EGLDisplay; aDraw: EGLSurface; aRead: EGLSurface; aContext: EGLContext): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4535 TeglGetCurrentContext = function: EGLContext; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4536 TeglGetCurrentSurface = function(aReadDraw: EGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4537 TeglGetCurrentDisplay = function: EGLDisplay; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4538 TeglQueryContext = function(aDisplay: EGLDisplay; aContext: EGLContext; aAttribute: EGLint; aValue: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4540 TeglWaitGL = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4541 TeglWaitNative = function(aEngine: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4542 TeglSwapBuffers = function(aDisplay: EGLDisplay; aSurface: EGLSurface): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4543 TeglCopyBuffers = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aTarget: EGLNativePixmapType): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4545 TeglGetProcAddress = function(const aProcName: PAnsiChar): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
4548 eglGetError: TeglGetError;
4550 eglGetDisplay: TeglGetDisplay;
4551 eglInitialize: TeglInitialize;
4552 eglTerminate: TeglTerminate;
4554 eglQueryString: TeglQueryString;
4556 eglGetConfigs: TeglGetConfigs;
4557 eglChooseConfig: TeglChooseConfig;
4558 eglGetConfigAttrib: TeglGetConfigAttrib;
4560 eglCreateWindowSurface: TeglCreateWindowSurface;
4561 eglCreatePbufferSurface: TeglCreatePbufferSurface;
4562 eglCreatePixmapSurface: TeglCreatePixmapSurface;
4563 eglDestroySurface: TeglDestroySurface;
4564 eglQuerySurface: TeglQuerySurface;
4566 eglBindAPI: TeglBindAPI;
4567 eglQueryAPI: TeglQueryAPI;
4569 eglWaitClient: TeglWaitClient;
4571 eglReleaseThread: TeglReleaseThread;
4573 eglCreatePbufferFromClientBuffer: TeglCreatePbufferFromClientBuffer;
4575 eglSurfaceAttrib: TeglSurfaceAttrib;
4576 eglBindTexImage: TeglBindTexImage;
4577 eglReleaseTexImage: TeglReleaseTexImage;
4579 eglSwapInterval: TeglSwapInterval;
4581 eglCreateContext: TeglCreateContext;
4582 eglDestroyContext: TeglDestroyContext;
4583 eglMakeCurrent: TeglMakeCurrent;
4585 eglGetCurrentContext: TeglGetCurrentContext;
4586 eglGetCurrentSurface: TeglGetCurrentSurface;
4587 eglGetCurrentDisplay: TeglGetCurrentDisplay;
4588 eglQueryContext: TeglQueryContext;
4590 eglWaitGL: TeglWaitGL;
4591 eglWaitNative: TeglWaitNative;
4592 eglSwapBuffers: TeglSwapBuffers;
4593 eglCopyBuffers: TeglCopyBuffers;
4595 eglGetProcAddress: TeglGetProcAddress;
4597 { =================================================== DelphiGL ======================================================= }
4607 GL_KHR_blend_equation_advanced,
4608 GL_KHR_blend_equation_advanced_coherent,
4609 GL_KHR_context_flush_control,
4611 GL_KHR_robust_buffer_access_behavior,
4613 GL_KHR_texture_compression_astc_hdr,
4614 GL_KHR_texture_compression_astc_ldr,
4616 GL_OES_EGL_image_external,
4617 GL_OES_compressed_ETC1_RGB8_sub_texture,
4618 GL_OES_compressed_ETC1_RGB8_texture,
4619 GL_OES_compressed_paletted_texture,
4622 GL_OES_depth_texture,
4623 GL_OES_element_index_uint,
4624 GL_OES_fbo_render_mipmap,
4625 GL_OES_fragment_precision_high,
4626 GL_OES_get_program_binary,
4628 GL_OES_packed_depth_stencil,
4629 GL_OES_required_internalformat,
4631 GL_OES_sample_shading,
4632 GL_OES_sample_variables,
4633 GL_OES_shader_image_atomic,
4634 GL_OES_shader_multisample_interpolation,
4635 GL_OES_standard_derivatives,
4638 GL_OES_surfaceless_context,
4640 GL_OES_texture_compression_astc,
4641 GL_OES_texture_float,
4642 GL_OES_texture_float_linear,
4643 GL_OES_texture_half_float,
4644 GL_OES_texture_half_float_linear,
4645 GL_OES_texture_npot,
4646 GL_OES_texture_stencil8,
4647 GL_OES_texture_storage_multisample_2d_array,
4648 GL_OES_vertex_array_object,
4649 GL_OES_vertex_half_float,
4650 GL_OES_vertex_type_10_10_10_2,
4651 GL_AMD_compressed_3DC_texture,
4652 GL_AMD_compressed_ATC_texture,
4653 GL_AMD_performance_monitor,
4654 GL_AMD_program_binary_Z400,
4655 GL_ANDROID_extension_pack_es31a,
4656 GL_ANGLE_depth_texture,
4657 GL_ANGLE_framebuffer_blit,
4658 GL_ANGLE_framebuffer_multisample,
4659 GL_ANGLE_instanced_arrays,
4660 GL_ANGLE_pack_reverse_row_order,
4661 GL_ANGLE_program_binary,
4662 GL_ANGLE_texture_compression_dxt3,
4663 GL_ANGLE_texture_compression_dxt5,
4664 GL_ANGLE_texture_usage,
4665 GL_ANGLE_translated_shader_source,
4666 GL_APPLE_clip_distance,
4667 GL_APPLE_color_buffer_packed_float,
4668 GL_APPLE_copy_texture_levels,
4669 GL_APPLE_framebuffer_multisample,
4672 GL_APPLE_texture_format_BGRA8888,
4673 GL_APPLE_texture_max_level,
4674 GL_APPLE_texture_packed_float,
4675 GL_ARM_mali_program_binary,
4676 GL_ARM_mali_shader_binary,
4678 GL_ARM_shader_framebuffer_fetch,
4679 GL_ARM_shader_framebuffer_fetch_depth_stencil,
4680 GL_DMP_program_binary,
4681 GL_DMP_shader_binary,
4682 GL_EXT_base_instance,
4683 GL_EXT_blend_minmax,
4684 GL_EXT_color_buffer_half_float,
4687 GL_EXT_debug_marker,
4688 GL_EXT_discard_framebuffer,
4689 GL_EXT_disjoint_timer_query,
4690 GL_EXT_draw_buffers,
4691 GL_EXT_draw_buffers_indexed,
4692 GL_EXT_draw_elements_base_vertex,
4693 GL_EXT_draw_instanced,
4694 GL_EXT_geometry_point_size,
4695 GL_EXT_geometry_shader,
4697 GL_EXT_instanced_arrays,
4698 GL_EXT_map_buffer_range,
4699 GL_EXT_multi_draw_arrays,
4700 GL_EXT_multi_draw_indirect,
4701 GL_EXT_multisampled_render_to_texture,
4702 GL_EXT_multiview_draw_buffers,
4703 GL_EXT_occlusion_query_boolean,
4704 GL_EXT_primitive_bounding_box,
4706 GL_EXT_read_format_bgra,
4707 GL_EXT_render_snorm,
4710 GL_EXT_sRGB_write_control,
4711 GL_EXT_separate_shader_objects,
4712 GL_EXT_shader_framebuffer_fetch,
4713 GL_EXT_shader_implicit_conversions,
4714 GL_EXT_shader_integer_mix,
4715 GL_EXT_shader_io_blocks,
4716 GL_EXT_shader_pixel_local_storage,
4717 GL_EXT_shader_texture_lod,
4718 GL_EXT_shadow_samplers,
4719 GL_EXT_tessellation_point_size,
4720 GL_EXT_tessellation_shader,
4721 GL_EXT_texture_border_clamp,
4722 GL_EXT_texture_buffer,
4723 GL_EXT_texture_compression_dxt1,
4724 GL_EXT_texture_compression_s3tc,
4725 GL_EXT_texture_cube_map_array,
4726 GL_EXT_texture_filter_anisotropic,
4727 GL_EXT_texture_format_BGRA8888,
4728 GL_EXT_texture_norm16,
4730 GL_EXT_texture_sRGB_decode,
4731 GL_EXT_texture_storage,
4732 GL_EXT_texture_type_2_10_10_10_REV,
4733 GL_EXT_texture_view,
4734 GL_EXT_unpack_subimage,
4735 GL_FJ_shader_binary_GCCSO,
4736 GL_IMG_multisampled_render_to_texture,
4737 GL_IMG_program_binary,
4739 GL_IMG_shader_binary,
4740 GL_IMG_texture_compression_pvrtc,
4741 GL_IMG_texture_compression_pvrtc2,
4742 GL_INTEL_performance_query,
4743 GL_NV_bindless_texture,
4744 GL_NV_blend_equation_advanced,
4745 GL_NV_blend_equation_advanced_coherent,
4746 GL_NV_conditional_render,
4748 GL_NV_coverage_sample,
4749 GL_NV_depth_nonlinear,
4751 GL_NV_draw_instanced,
4752 GL_NV_explicit_attrib_location,
4753 GL_NV_fbo_color_attachments,
4755 GL_NV_framebuffer_blit,
4756 GL_NV_framebuffer_multisample,
4757 GL_NV_generate_mipmap_sRGB,
4758 GL_NV_image_formats,
4759 GL_NV_instanced_arrays,
4760 GL_NV_internalformat_sample_query,
4761 GL_NV_non_square_matrices,
4762 GL_NV_path_rendering,
4764 GL_NV_read_buffer_front,
4766 GL_NV_read_depth_stencil,
4769 GL_NV_shader_noperspective_interpolation,
4770 GL_NV_shadow_samplers_array,
4771 GL_NV_shadow_samplers_cube,
4772 GL_NV_texture_border_clamp,
4773 GL_NV_texture_compression_s3tc_update,
4774 GL_NV_texture_npot_2D_mipmap,
4775 GL_NV_viewport_array,
4777 GL_QCOM_binning_control,
4778 GL_QCOM_driver_control,
4779 GL_QCOM_extended_get,
4780 GL_QCOM_extended_get2,
4781 GL_QCOM_perfmon_global_mode,
4782 GL_QCOM_tiled_rendering,
4783 GL_QCOM_writeonly_rendering,
4784 GL_VIV_shader_binary: Boolean;
4787 EdglOpenGLES = class(Exception);
4788 EeglError = class(EdglOpenGLES)
4791 constructor Create(const msg: string; const aErrorCode: EGLint);
4800 TActivationFlags = set of TActivationFlag;
4802 TdglRenderContext = packed record
4803 Display: EGLDisplay;
4804 Surface: EGLSurface;
4805 Context: EGLContext;
4808 function InitOpenGLES(const aOpenGLESLibName: String = LIBNAME_OPENGLES; aEGLLibName: String = LIBNAME_EGL): Boolean;
4810 function CreateRenderingContext(const aDisplayType: EGLNativeDisplayType;
4811 const aWindowType: PEGLNativeWindowType;
4812 const aConfigAttribs: PEGLint;
4813 const aContextAttribs: PEGLint): TdglRenderContext;
4814 procedure DestroyRenderingContext(const aContext: TdglRenderContext);
4815 function ActivateRenderingContext(const aContext: TdglRenderContext; const aFlags: TActivationFlags = [afReadOpenGLCore, afReadExtensions, afReadCoreVersion, afReadImplProp]): Boolean;
4816 function DeactivateRenderingContext(const aContext: TdglRenderContext): Boolean;
4817 procedure SwapBuffers(const aContext: TdglRenderContext);
4819 procedure ReadOpenGLCore;
4820 procedure ReadExtensions;
4821 procedure ReadCoreVersion;
4822 procedure ReadImplementationProperties;
4824 procedure Read_GL_KHR_blend_equation_advanced;
4825 procedure Read_GL_KHR_debug;
4826 procedure Read_GL_KHR_robustness;
4827 procedure Read_GL_OES_EGL_image;
4828 procedure Read_GL_OES_get_program_binary;
4829 procedure Read_GL_OES_mapbuffer;
4830 procedure Read_GL_OES_sample_shading;
4831 procedure Read_GL_OES_texture_3D;
4832 procedure Read_GL_OES_texture_storage_multisample_2d_array;
4833 procedure Read_GL_OES_vertex_array_object;
4834 procedure Read_GL_AMD_performance_monitor;
4835 procedure Read_GL_ANGLE_framebuffer_blit;
4836 procedure Read_GL_ANGLE_framebuffer_multisample;
4837 procedure Read_GL_ANGLE_instanced_arrays;
4838 procedure Read_GL_ANGLE_translated_shader_source;
4839 procedure Read_GL_APPLE_copy_texture_levels;
4840 procedure Read_GL_APPLE_framebuffer_multisample;
4841 procedure Read_GL_APPLE_sync;
4842 procedure Read_GL_EXT_base_instance;
4843 procedure Read_GL_EXT_copy_image;
4844 procedure Read_GL_EXT_debug_label;
4845 procedure Read_GL_EXT_debug_marker;
4846 procedure Read_GL_EXT_discard_framebuffer;
4847 procedure Read_GL_EXT_disjoint_timer_query;
4848 procedure Read_GL_EXT_draw_buffers;
4849 procedure Read_GL_EXT_draw_buffers_indexed;
4850 procedure Read_GL_EXT_draw_elements_base_vertex;
4851 procedure Read_GL_EXT_draw_instanced;
4852 procedure Read_GL_EXT_geometry_shader;
4853 procedure Read_GL_EXT_instanced_arrays;
4854 procedure Read_GL_EXT_map_buffer_range;
4855 procedure Read_GL_EXT_multi_draw_arrays;
4856 procedure Read_GL_EXT_multi_draw_indirect;
4857 procedure Read_GL_EXT_multisampled_render_to_texture;
4858 procedure Read_GL_EXT_multiview_draw_buffers;
4859 procedure Read_GL_EXT_primitive_bounding_box;
4860 procedure Read_GL_EXT_robustness;
4861 procedure Read_GL_EXT_separate_shader_objects;
4862 procedure Read_GL_EXT_tessellation_shader;
4863 procedure Read_GL_EXT_texture_border_clamp;
4864 procedure Read_GL_EXT_texture_buffer;
4865 procedure Read_GL_EXT_texture_storage;
4866 procedure Read_GL_EXT_texture_view;
4867 procedure Read_GL_IMG_multisampled_render_to_texture;
4868 procedure Read_GL_INTEL_performance_query;
4869 procedure Read_GL_NV_bindless_texture;
4870 procedure Read_GL_NV_blend_equation_advanced;
4871 procedure Read_GL_NV_conditional_render;
4872 procedure Read_GL_NV_copy_buffer;
4873 procedure Read_GL_NV_coverage_sample;
4874 procedure Read_GL_NV_draw_buffers;
4875 procedure Read_GL_NV_draw_instanced;
4876 procedure Read_GL_NV_fence;
4877 procedure Read_GL_NV_framebuffer_blit;
4878 procedure Read_GL_NV_framebuffer_multisample;
4879 procedure Read_GL_NV_instanced_arrays;
4880 procedure Read_GL_NV_internalformat_sample_query;
4881 procedure Read_GL_NV_non_square_matrices;
4882 procedure Read_GL_NV_path_rendering;
4883 procedure Read_GL_NV_read_buffer;
4884 procedure Read_GL_NV_viewport_array;
4885 procedure Read_GL_QCOM_alpha_test;
4886 procedure Read_GL_QCOM_driver_control;
4887 procedure Read_GL_QCOM_extended_get;
4888 procedure Read_GL_QCOM_extended_get2;
4889 procedure Read_GL_QCOM_tiled_rendering;
4894 LibHandleOpenGLES: Pointer = nil;
4895 LibHandleEGL: Pointer = nil;
4897 function dglLoadLibrary(const name: PChar): Pointer;
4900 result := dlopen(name, RTLD_LAZY);
4904 function dglGetProcAddress(const aProcName: PAnsiChar): Pointer;
4909 if Assigned(LibHandleOpenGLES) then
4910 result := dlsym(LibHandleOpenGLES, aProcName);
4912 if not Assigned(result) and Assigned(eglGetProcAddress) then
4913 result := eglGetProcAddress(aProcName);
4915 if not Assigned(result) and Assigned(LibHandleEGL) then
4916 result := dlsym(LibHandleEGL, aProcName);
4920 function dglFreeAndNilLibrary(var aLibHandle: Pointer): Boolean;
4922 if Assigned(aLibHandle) then begin
4924 result := (dlclose(aLibHandle) = 0);
4931 function InitOpenGLES(const aOpenGLESLibName: String; aEGLLibName: String): Boolean;
4935 if Assigned(LibHandleOpenGLES) then
4936 dglFreeAndNilLibrary(LibHandleOpenGLES);
4938 if Assigned(LibHandleEGL) then
4939 dglFreeAndNilLibrary(LibHandleEGL);
4941 LibHandleOpenGLES := dglLoadLibrary(PChar(aOpenGLESLibName));
4942 LibHandleEGL := dglLoadLibrary(PChar(aEGLLibName));
4944 // load EGL procedures
4945 if Assigned(LibHandleEGL) then begin
4946 eglGetProcAddress := dglGetProcAddress('eglGetProcAddress');
4947 eglGetError := dglGetProcAddress('eglGetError');
4948 eglGetDisplay := dglGetProcAddress('eglGetDisplay');
4949 eglInitialize := dglGetProcAddress('eglInitialize');
4950 eglTerminate := dglGetProcAddress('eglTerminate');
4951 eglQueryString := dglGetProcAddress('eglQueryString');
4952 eglGetConfigs := dglGetProcAddress('eglGetConfigs');
4953 eglChooseConfig := dglGetProcAddress('eglChooseConfig');
4954 eglGetConfigAttrib := dglGetProcAddress('eglGetConfigAttrib');
4955 eglCreateWindowSurface := dglGetProcAddress('eglCreateWindowSurface');
4956 eglCreatePbufferSurface := dglGetProcAddress('eglCreatePbufferSurface');
4957 eglCreatePixmapSurface := dglGetProcAddress('eglCreatePixmapSurface');
4958 eglDestroySurface := dglGetProcAddress('eglDestroySurface');
4959 eglQuerySurface := dglGetProcAddress('eglQuerySurface');
4960 eglBindAPI := dglGetProcAddress('eglBindAPI');
4961 eglQueryAPI := dglGetProcAddress('eglQueryAPI');
4962 eglWaitClient := dglGetProcAddress('eglWaitClient');
4963 eglReleaseThread := dglGetProcAddress('eglReleaseThread');
4964 eglCreatePbufferFromClientBuffer := dglGetProcAddress('eglCreatePbufferFromClientBuffer');
4965 eglSurfaceAttrib := dglGetProcAddress('eglSurfaceAttrib');
4966 eglBindTexImage := dglGetProcAddress('eglBindTexImage');
4967 eglReleaseTexImage := dglGetProcAddress('eglReleaseTexImage');
4968 eglSwapInterval := dglGetProcAddress('eglSwapInterval');
4969 eglCreateContext := dglGetProcAddress('eglCreateContext');
4970 eglDestroyContext := dglGetProcAddress('eglDestroyContext');
4971 eglMakeCurrent := dglGetProcAddress('eglMakeCurrent');
4972 eglGetCurrentContext := dglGetProcAddress('eglGetCurrentContext');
4973 eglGetCurrentSurface := dglGetProcAddress('eglGetCurrentSurface');
4974 eglGetCurrentDisplay := dglGetProcAddress('eglGetCurrentDisplay');
4975 eglQueryContext := dglGetProcAddress('eglQueryContext');
4976 eglWaitGL := dglGetProcAddress('eglWaitGL');
4977 eglWaitNative := dglGetProcAddress('eglWaitNative');
4978 eglSwapBuffers := dglGetProcAddress('eglSwapBuffers');
4979 eglCopyBuffers := dglGetProcAddress('eglCopyBuffers');
4984 procedure RaiseEglError(const aMsg: String);
4987 err := eglGetError();
4988 raise EeglError.Create(aMsg + ' ErrorCode: 0x' + IntToHex(err, 8), err);
4991 function CreateRenderingContext(const aDisplayType: EGLNativeDisplayType; const aWindowType: PEGLNativeWindowType;
4992 const aConfigAttribs: PEGLint; const aContextAttribs: PEGLint): TdglRenderContext;
4994 ConfigCount: EGLint;
4997 if (not Assigned(LibHandleOpenGLES) or not Assigned(LibHandleEGL)) and
4998 not InitOpenGLES then
4999 raise EdglOpenGLES.Create('unable to initialize OpenGL library');
5001 result.Display := eglGetDisplay(aDisplayType);
5002 if (result.Display = EGL_NO_DISPLAY) then
5003 RaiseEglError('unable to get display.');
5005 if (eglInitialize(result.Display, nil, nil) <> EGL_TRUE) then
5006 RaiseEglError('unable to initialize egl.');
5008 if (eglChooseConfig(result.Display, aConfigAttribs, @Config, 1, @ConfigCount) <> EGL_TRUE) or
5009 (ConfigCount < 1) then
5010 RaiseEglError('unable to get suitable config.');
5012 if (eglBindAPI(EGL_OPENGL_ES_API) <> EGL_TRUE) then
5013 RaiseEglError('unable to get an appropriate EGL frame buffer configuration.');
5015 result.Surface := eglCreateWindowSurface(result.Display, Config, aWindowType, nil);
5016 if (result.Surface = EGL_NO_SURFACE) then
5017 RaiseEglError('unable to create window surface.');
5019 result.Context := eglCreateContext(result.Display, Config, EGL_NO_CONTEXT, aContextAttribs);
5020 if (result.Context = EGL_NO_CONTEXT) then begin
5021 eglDestroySurface(result.Display, result.Surface);
5022 RaiseEglError('unable to create context.');
5026 procedure DestroyRenderingContext(const aContext: TdglRenderContext);
5028 if (eglGetCurrentContext = aContext.Context) and
5029 not DeactivateRenderingContext(aContext) then
5030 RaiseEglError('unable to unbind context.');
5032 if (eglDestroyContext(aContext.Display, aContext.Context) <> EGL_TRUE) then
5033 RaiseEglError('unable to destory context.');
5035 if (eglDestroySurface(aContext.Display, aContext.Surface) <> EGL_TRUE) then
5036 RaiseEglError('unable to destroy surface.');
5039 function ActivateRenderingContext(const aContext: TdglRenderContext; const aFlags: TActivationFlags): Boolean;
5041 result := (eglMakeCurrent(aContext.Display, aContext.Surface, aContext.Surface, aContext.Context) = GL_TRUE);
5042 if (afReadOpenGLCore in aFlags) then
5044 if (afReadExtensions in aFlags) then
5046 if (afReadCoreVersion in aFlags) then
5048 if (afReadImplProp in aFlags) then
5049 ReadImplementationProperties;
5052 function DeactivateRenderingContext(const aContext: TdglRenderContext): Boolean;
5054 result := (eglMakeCurrent(aContext.Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT) = EGL_TRUE);
5057 procedure SwapBuffers(const aContext: TdglRenderContext);
5059 eglSwapBuffers(aContext.Display, aContext.Surface);
5062 procedure ReadOpenGLCore;
5064 { ============================================= OpenGL ES 1.0 ====================================================== }
5065 { Available only in Common profile }
5066 glAlphaFunc := dglGetProcAddress('glAlphaFunc');
5067 glClearColor := dglGetProcAddress('glClearColor');
5068 glClearDepthf := dglGetProcAddress('glClearDepthf');
5069 glClipPlanef := dglGetProcAddress('glClipPlanef');
5070 glColor4f := dglGetProcAddress('glColor4f');
5071 glDepthRangef := dglGetProcAddress('glDepthRangef');
5072 glFogf := dglGetProcAddress('glFogf');
5073 glFogfv := dglGetProcAddress('glFogfv');
5074 glFrustumf := dglGetProcAddress('glFrustumf');
5075 glGetClipPlanef := dglGetProcAddress('glGetClipPlanef');
5076 glGetFloatv := dglGetProcAddress('glGetFloatv');
5077 glGetLightfv := dglGetProcAddress('glGetLightfv');
5078 glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
5079 glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
5080 glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
5081 glLightModelf := dglGetProcAddress('glLightModelf');
5082 glLightModelfv := dglGetProcAddress('glLightModelfv');
5083 glLightf := dglGetProcAddress('glLightf');
5084 glLightfv := dglGetProcAddress('glLightfv');
5085 glLineWidth := dglGetProcAddress('glLineWidth');
5086 glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
5087 glMaterialf := dglGetProcAddress('glMaterialf');
5088 glMaterialfv := dglGetProcAddress('glMaterialfv');
5089 glMultMatrixf := dglGetProcAddress('glMultMatrixf');
5090 glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
5091 glNormal3f := dglGetProcAddress('glNormal3f');
5092 glOrthof := dglGetProcAddress('glOrthof');
5093 glPointParameterf := dglGetProcAddress('glPointParameterf');
5094 glPointParameterfv := dglGetProcAddress('glPointParameterfv');
5095 glPointSize := dglGetProcAddress('glPointSize');
5096 glPolygonOffset := dglGetProcAddress('glPolygonOffset');
5097 glRotatef := dglGetProcAddress('glRotatef');
5098 glScalef := dglGetProcAddress('glScalef');
5099 glTexEnvf := dglGetProcAddress('glTexEnvf');
5100 glTexEnvfv := dglGetProcAddress('glTexEnvfv');
5101 glTexParameterf := dglGetProcAddress('glTexParameterf');
5102 glTexParameterfv := dglGetProcAddress('glTexParameterfv');
5103 glTranslatef := dglGetProcAddress('glTranslatef');
5105 { Available in both Common and Common-Lite profiles }
5106 glActiveTexture := dglGetProcAddress('glActiveTexture');
5107 glAlphaFuncx := dglGetProcAddress('glAlphaFuncx');
5108 glBindBuffer := dglGetProcAddress('glBindBuffer');
5109 glBindTexture := dglGetProcAddress('glBindTexture');
5110 glBlendFunc := dglGetProcAddress('glBlendFunc');
5111 glBufferData := dglGetProcAddress('glBufferData');
5112 glBufferSubData := dglGetProcAddress('glBufferSubData');
5113 glClear := dglGetProcAddress('glClear');
5114 glClearColorx := dglGetProcAddress('glClearColorx');
5115 glClearDepthx := dglGetProcAddress('glClearDepthx');
5116 glClearStencil := dglGetProcAddress('glClearStencil');
5117 glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
5118 glClipPlanex := dglGetProcAddress('glClipPlanex');
5119 glColor4ub := dglGetProcAddress('glColor4ub');
5120 glColor4x := dglGetProcAddress('glColor4x');
5121 glColorMask := dglGetProcAddress('glColorMask');
5122 glColorPointer := dglGetProcAddress('glColorPointer');
5123 glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
5124 glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
5125 glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
5126 glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
5127 glCullFace := dglGetProcAddress('glCullFace');
5128 glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
5129 glDeleteTextures := dglGetProcAddress('glDeleteTextures');
5130 glDepthFunc := dglGetProcAddress('glDepthFunc');
5131 glDepthMask := dglGetProcAddress('glDepthMask');
5132 glDepthRangex := dglGetProcAddress('glDepthRangex');
5133 glDisable := dglGetProcAddress('glDisable');
5134 glDisableClientState := dglGetProcAddress('glDisableClientState');
5135 glDrawArrays := dglGetProcAddress('glDrawArrays');
5136 glDrawElements := dglGetProcAddress('glDrawElements');
5137 glEnable := dglGetProcAddress('glEnable');
5138 glEnableClientState := dglGetProcAddress('glEnableClientState');
5139 glFinish := dglGetProcAddress('glFinish');
5140 glFlush := dglGetProcAddress('glFlush');
5141 glFogx := dglGetProcAddress('glFogx');
5142 glFogxv := dglGetProcAddress('glFogxv');
5143 glFrontFace := dglGetProcAddress('glFrontFace');
5144 glFrustumx := dglGetProcAddress('glFrustumx');
5145 glGetBooleanv := dglGetProcAddress('glGetBooleanv');
5146 glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
5147 glGetClipPlanex := dglGetProcAddress('glGetClipPlanex');
5148 glGenBuffers := dglGetProcAddress('glGenBuffers');
5149 glGenTextures := dglGetProcAddress('glGenTextures');
5150 glGetError := dglGetProcAddress('glGetError');
5151 glGetFixedv := dglGetProcAddress('glGetFixedv');
5152 glGetIntegerv := dglGetProcAddress('glGetIntegerv');
5153 glGetLightxv := dglGetProcAddress('glGetLightxv');
5154 glGetMaterialxv := dglGetProcAddress('glGetMaterialxv');
5155 glGetPointerv := dglGetProcAddress('glGetPointerv');
5156 glGetString := dglGetProcAddress('glGetString');
5157 glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
5158 glGetTexEnvxv := dglGetProcAddress('glGetTexEnvxv');
5159 glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
5160 glGetTexParameterxv := dglGetProcAddress('glGetTexParameterxv');
5161 glHint := dglGetProcAddress('glHint');
5162 glIsBuffer := dglGetProcAddress('glIsBuffer');
5163 glIsEnabled := dglGetProcAddress('glIsEnabled');
5164 glIsTexture := dglGetProcAddress('glIsTexture');
5165 glLightModelx := dglGetProcAddress('glLightModelx');
5166 glLightModelxv := dglGetProcAddress('glLightModelxv');
5167 glLightx := dglGetProcAddress('glLightx');
5168 glLightxv := dglGetProcAddress('glLightxv');
5169 glLineWidthx := dglGetProcAddress('glLineWidthx');
5170 glLoadIdentity := dglGetProcAddress('glLoadIdentity');
5171 glLoadMatrix := dglGetProcAddress('glLoadMatrix');
5172 glLogicOp := dglGetProcAddress('glLogicOp');
5173 glMaterialx := dglGetProcAddress('glMaterialx');
5174 glMaterialxv := dglGetProcAddress('glMaterialxv');
5175 glMatrixMode := dglGetProcAddress('glMatrixMode');
5176 glMultMatrixx := dglGetProcAddress('glMultMatrixx');
5177 glMultiTexCoord4x := dglGetProcAddress('glMultiTexCoord4x');
5178 glNormal3x := dglGetProcAddress('glNormal3x');
5179 glNormalPointer := dglGetProcAddress('glNormalPointer');
5180 glOrthox := dglGetProcAddress('glOrthox');
5181 glPixelStorei := dglGetProcAddress('glPixelStorei');
5182 glPointParameterx := dglGetProcAddress('glPointParameterx');
5183 glPointParameterxv := dglGetProcAddress('glPointParameterxv');
5184 glPointSizex := dglGetProcAddress('glPointSizex');
5185 glPolygonOffsetx := dglGetProcAddress('glPolygonOffsetx');
5186 glPopMatrix := dglGetProcAddress('glPopMatrix');
5187 glPushMatrix := dglGetProcAddress('glPushMatrix');
5188 glReadPixels := dglGetProcAddress('glReadPixels');
5189 glRotatex := dglGetProcAddress('glRotatex');
5190 glSampleCoverage := dglGetProcAddress('glSampleCoverage');
5191 glSampleCoveragex := dglGetProcAddress('glSampleCoveragex');
5192 glScalex := dglGetProcAddress('glScalex');
5193 glScissor := dglGetProcAddress('glScissor');
5194 glShadeModel := dglGetProcAddress('glShadeModel');
5195 glStencilFunc := dglGetProcAddress('glStencilFunc');
5196 glStencilMask := dglGetProcAddress('glStencilMask');
5197 glStencilOp := dglGetProcAddress('glStencilOp');
5198 glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
5199 glTexEnvi := dglGetProcAddress('glTexEnvi');
5200 glTexEnvx := dglGetProcAddress('glTexEnvx');
5201 glTexEnviv := dglGetProcAddress('glTexEnviv');
5202 glTexEnvxv := dglGetProcAddress('glTexEnvxv');
5203 glTexImage2D := dglGetProcAddress('glTexImage2D');
5204 glTexParameteri := dglGetProcAddress('glTexParameteri');
5205 glTexParameterx := dglGetProcAddress('glTexParameterx');
5206 glTexParameteriv := dglGetProcAddress('glTexParameteriv');
5207 glTexParameterxv := dglGetProcAddress('glTexParameterxv');
5208 glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
5209 glTranslatex := dglGetProcAddress('glTranslatex');
5210 glVertexPointer := dglGetProcAddress('glVertexPointer');
5211 glViewport := dglGetProcAddress('glViewport');
5213 { ============================================= OpenGL ES 2.0 ====================================================== }
5214 glAttachShader := dglGetProcAddress('glAttachShader');
5215 glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
5216 glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
5217 glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
5218 glBlendColor := dglGetProcAddress('glBlendColor');
5219 glBlendEquation := dglGetProcAddress('glBlendEquation');
5220 glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
5221 glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
5222 glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
5223 glCompileShader := dglGetProcAddress('glCompileShader');
5224 glCreateProgram := dglGetProcAddress('glCreateProgram');
5225 glCreateShader := dglGetProcAddress('glCreateShader');
5226 glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
5227 glDeleteProgram := dglGetProcAddress('glDeleteProgram');
5228 glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
5229 glDeleteShader := dglGetProcAddress('glDeleteShader');
5230 glDetachShader := dglGetProcAddress('glDetachShader');
5231 glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
5232 glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
5233 glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
5234 glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
5235 glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
5236 glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
5237 glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
5238 glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
5239 glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
5240 glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
5241 glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
5242 glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
5243 glGetProgramiv := dglGetProcAddress('glGetProgramiv');
5244 glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
5245 glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
5246 glGetShaderiv := dglGetProcAddress('glGetShaderiv');
5247 glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
5248 glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
5249 glGetShaderSource := dglGetProcAddress('glGetShaderSource');
5250 glGetUniformfv := dglGetProcAddress('glGetUniformfv');
5251 glGetUniformiv := dglGetProcAddress('glGetUniformiv');
5252 glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
5253 glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
5254 glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
5255 glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
5256 glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
5257 glIsProgram := dglGetProcAddress('glIsProgram');
5258 glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
5259 glIsShader := dglGetProcAddress('glIsShader');
5260 glLinkProgram := dglGetProcAddress('glLinkProgram');
5261 glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
5262 glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
5263 glShaderBinary := dglGetProcAddress('glShaderBinary');
5264 glShaderSource := dglGetProcAddress('glShaderSource');
5265 glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
5266 glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
5267 glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
5268 glUniform1f := dglGetProcAddress('glUniform1f');
5269 glUniform1fv := dglGetProcAddress('glUniform1fv');
5270 glUniform1i := dglGetProcAddress('glUniform1i');
5271 glUniform1iv := dglGetProcAddress('glUniform1iv');
5272 glUniform2f := dglGetProcAddress('glUniform2f');
5273 glUniform2fv := dglGetProcAddress('glUniform2fv');
5274 glUniform2i := dglGetProcAddress('glUniform2i');
5275 glUniform2iv := dglGetProcAddress('glUniform2iv');
5276 glUniform3f := dglGetProcAddress('glUniform3f');
5277 glUniform3fv := dglGetProcAddress('glUniform3fv');
5278 glUniform3i := dglGetProcAddress('glUniform3i');
5279 glUniform3iv := dglGetProcAddress('glUniform3iv');
5280 glUniform4f := dglGetProcAddress('glUniform4f');
5281 glUniform4fv := dglGetProcAddress('glUniform4fv');
5282 glUniform4i := dglGetProcAddress('glUniform4i');
5283 glUniform4iv := dglGetProcAddress('glUniform4iv');
5284 glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
5285 glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
5286 glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
5287 glUseProgram := dglGetProcAddress('glUseProgram');
5288 glValidateProgram := dglGetProcAddress('glValidateProgram');
5289 glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
5290 glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
5291 glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
5292 glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
5293 glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
5294 glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
5295 glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
5296 glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
5297 glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
5299 { ============================================= OpenGL ES 3.0 ====================================================== }
5300 glReadBuffer := dglGetProcAddress('glReadBuffer');
5301 glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
5302 glTexImage3D := dglGetProcAddress('glTexImage3D');
5303 glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
5304 glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
5305 glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
5306 glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
5307 glGenQueries := dglGetProcAddress('glGenQueries');
5308 glDeleteQueries := dglGetProcAddress('glDeleteQueries');
5309 glIsQuery := dglGetProcAddress('glIsQuery');
5310 glBeginQuery := dglGetProcAddress('glBeginQuery');
5311 glEndQuery := dglGetProcAddress('glEndQuery');
5312 glGetQueryiv := dglGetProcAddress('glGetQueryiv');
5313 glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
5314 glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
5315 glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
5316 glDrawBuffers := dglGetProcAddress('glDrawBuffers');
5317 glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
5318 glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
5319 glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
5320 glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
5321 glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
5322 glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
5323 glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
5324 glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
5325 glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
5326 glMapBufferRange := dglGetProcAddress('glMapBufferRange');
5327 glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
5328 glBindVertexArray := dglGetProcAddress('glBindVertexArray');
5329 glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
5330 glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
5331 glIsVertexArray := dglGetProcAddress('glIsVertexArray');
5332 glGetIntegeriv := dglGetProcAddress('glGetIntegeriv');
5333 glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
5334 glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
5335 glBindBufferRange := dglGetProcAddress('glBindBufferRange');
5336 glBindBufferBase := dglGetProcAddress('glBindBufferBase');
5337 glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
5338 glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
5339 glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
5340 glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
5341 glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
5342 glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
5343 glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
5344 glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
5345 glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
5346 glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
5347 glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
5348 glUniform1ui := dglGetProcAddress('glUniform1ui');
5349 glUniform2ui := dglGetProcAddress('glUniform2ui');
5350 glUniform3ui := dglGetProcAddress('glUniform3ui');
5351 glUniform4ui := dglGetProcAddress('glUniform4ui');
5352 glUniform1uiv := dglGetProcAddress('glUniform1uiv');
5353 glUniform2uiv := dglGetProcAddress('glUniform2uiv');
5354 glUniform3uiv := dglGetProcAddress('glUniform3uiv');
5355 glUniform4uiv := dglGetProcAddress('glUniform4uiv');
5356 glClearBufferiv := dglGetProcAddress('glClearBufferiv');
5357 glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
5358 glClearBufferfv := dglGetProcAddress('glClearBufferfv');
5359 glClearBufferfi := dglGetProcAddress('glClearBufferfi');
5360 glGetStringi := dglGetProcAddress('glGetStringi');
5361 glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
5362 glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
5363 glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
5364 glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
5365 glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
5366 glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
5367 glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
5368 glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
5369 glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
5370 glFenceSync := dglGetProcAddress('glFenceSync');
5371 glIsSync := dglGetProcAddress('glIsSync');
5372 glDeleteSync := dglGetProcAddress('glDeleteSync');
5373 glClientWaitSync := dglGetProcAddress('glClientWaitSync');
5374 glWaitSync := dglGetProcAddress('glWaitSync');
5375 glGetInteger64v := dglGetProcAddress('glGetInteger64v');
5376 glGetSynciv := dglGetProcAddress('glGetSynciv');
5377 glGetInteger64iv := dglGetProcAddress('glGetInteger64iv');
5378 glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
5379 glGenSamplers := dglGetProcAddress('glGenSamplers');
5380 glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
5381 glIsSampler := dglGetProcAddress('glIsSampler');
5382 glBindSampler := dglGetProcAddress('glBindSampler');
5383 glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
5384 glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
5385 glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
5386 glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
5387 glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
5388 glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
5389 glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
5390 glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
5391 glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
5392 glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
5393 glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
5394 glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
5395 glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
5396 glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
5397 glProgramBinary := dglGetProcAddress('glProgramBinary');
5398 glProgramParameteri := dglGetProcAddress('glProgramParameteri');
5399 glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
5400 glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
5401 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
5402 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
5403 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
5405 { ============================================= OpenGL ES 3.1 ====================================================== }
5406 glDispatchCompute := dglGetProcAddress('glDispatchCompute');
5407 glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
5408 glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
5409 glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
5410 glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
5411 glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
5412 glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
5413 glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
5414 glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
5415 glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
5416 glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
5417 glUseProgramStages := dglGetProcAddress('glUseProgramStages');
5418 glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
5419 glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
5420 glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
5421 glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
5422 glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
5423 glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
5424 glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
5425 glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
5426 glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
5427 glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
5428 glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
5429 glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
5430 glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
5431 glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
5432 glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
5433 glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
5434 glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
5435 glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
5436 glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
5437 glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
5438 glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
5439 glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
5440 glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
5441 glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
5442 glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
5443 glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
5444 glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
5445 glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
5446 glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
5447 glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
5448 glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
5449 glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
5450 glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
5451 glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
5452 glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
5453 glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
5454 glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
5455 glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
5456 glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
5457 glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
5458 glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
5459 glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
5460 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
5461 glGetBooleaniv := dglGetProcAddress('glGetBooleaniv');
5462 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
5463 glMemoryBarrierByRegion := dglGetProcAddress('glMemoryBarrierByRegion');
5464 glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
5465 glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
5466 glSampleMaski := dglGetProcAddress('glSampleMaski');
5467 glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
5468 glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
5469 glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
5470 glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
5471 glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
5472 glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
5473 glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
5476 procedure ReadExtensions;
5478 Read_GL_KHR_blend_equation_advanced;
5480 Read_GL_KHR_robustness;
5481 Read_GL_OES_EGL_image;
5482 Read_GL_OES_get_program_binary;
5483 Read_GL_OES_mapbuffer;
5484 Read_GL_OES_sample_shading;
5485 Read_GL_OES_texture_3D;
5486 Read_GL_OES_texture_storage_multisample_2d_array;
5487 Read_GL_OES_vertex_array_object;
5488 Read_GL_AMD_performance_monitor;
5489 Read_GL_ANGLE_framebuffer_blit;
5490 Read_GL_ANGLE_framebuffer_multisample;
5491 Read_GL_ANGLE_instanced_arrays;
5492 Read_GL_ANGLE_translated_shader_source;
5493 Read_GL_APPLE_copy_texture_levels;
5494 Read_GL_APPLE_framebuffer_multisample;
5496 Read_GL_EXT_base_instance;
5497 Read_GL_EXT_copy_image;
5498 Read_GL_EXT_debug_label;
5499 Read_GL_EXT_debug_marker;
5500 Read_GL_EXT_discard_framebuffer;
5501 Read_GL_EXT_disjoint_timer_query;
5502 Read_GL_EXT_draw_buffers;
5503 Read_GL_EXT_draw_buffers_indexed;
5504 Read_GL_EXT_draw_elements_base_vertex;
5505 Read_GL_EXT_draw_instanced;
5506 Read_GL_EXT_geometry_shader;
5507 Read_GL_EXT_instanced_arrays;
5508 Read_GL_EXT_map_buffer_range;
5509 Read_GL_EXT_multi_draw_arrays;
5510 Read_GL_EXT_multi_draw_indirect;
5511 Read_GL_EXT_multisampled_render_to_texture;
5512 Read_GL_EXT_multiview_draw_buffers;
5513 Read_GL_EXT_primitive_bounding_box;
5514 Read_GL_EXT_robustness;
5515 Read_GL_EXT_separate_shader_objects;
5516 Read_GL_EXT_tessellation_shader;
5517 Read_GL_EXT_texture_border_clamp;
5518 Read_GL_EXT_texture_buffer;
5519 Read_GL_EXT_texture_storage;
5520 Read_GL_EXT_texture_view;
5521 Read_GL_IMG_multisampled_render_to_texture;
5522 Read_GL_INTEL_performance_query;
5523 Read_GL_NV_bindless_texture;
5524 Read_GL_NV_blend_equation_advanced;
5525 Read_GL_NV_conditional_render;
5526 Read_GL_NV_copy_buffer;
5527 Read_GL_NV_coverage_sample;
5528 Read_GL_NV_draw_buffers;
5529 Read_GL_NV_draw_instanced;
5531 Read_GL_NV_framebuffer_blit;
5532 Read_GL_NV_framebuffer_multisample;
5533 Read_GL_NV_instanced_arrays;
5534 Read_GL_NV_internalformat_sample_query;
5535 Read_GL_NV_non_square_matrices;
5536 Read_GL_NV_path_rendering;
5537 Read_GL_NV_read_buffer;
5538 Read_GL_NV_viewport_array;
5539 Read_GL_QCOM_alpha_test;
5540 Read_GL_QCOM_driver_control;
5541 Read_GL_QCOM_extended_get;
5542 Read_GL_QCOM_extended_get2;
5543 Read_GL_QCOM_tiled_rendering;
5546 procedure ReadCoreVersion;
5548 AnsiBuffer: AnsiString;
5551 procedure TrimAndSplitVersionString(const aBuffer: String; out aMajor, aMinor: Integer);
5553 p, s, e, len: Integer;
5558 len := Length(aBuffer);
5559 p := Pos('.', aBuffer);
5564 while (s > 1) and (aBuffer[s - 1] in ['0'..'9']) do
5570 while (e < len) and (aBuffer[e + 1] in ['0'..'9']) do
5575 aMajor := StrToInt(Copy(aBuffer, s - 1, p - s + 1));
5576 aMinor := StrToInt(Copy(aBuffer, p + 1, e - p + 1));
5584 if not Assigned(glGetString) then
5585 glGetString := dglGetProcAddress('glGetString');
5586 AnsiBuffer := PAnsiChar(glGetString(GL_VERSION));
5587 Buffer := String(AnsiBuffer);
5589 TrimAndSplitVersionString(Buffer, GLmajor, GLminor);
5591 GL_VERSION_1_0 := true; // OpenGL ES is always supported
5592 GL_VERSION_1_1 := (GLmajor >= 1) and (GLminor >= 1);
5593 GL_VERSION_2_0 := (GLmajor >= 2) and (GLminor >= 0);
5594 GL_VERSION_3_0 := (GLmajor >= 3) and (GLminor >= 0);
5595 GL_VERSION_3_1 := (GLmajor >= 3) and (GLminor >= 1);
5598 procedure ReadImplementationProperties;
5600 function GetExtensions: String;
5606 if not Assigned(glGetString) then
5607 glGetString := dglGetProcAddress('glGetString');
5608 if Assigned(glGetString) then
5609 result := String(PAnsiChar(glGetString(GL_EXTENSIONS)));
5611 if (result = '') then begin
5612 if not Assigned(glGetIntegerv) then
5613 glGetIntegerv := dglGetProcAddress('glGetIntegerv');
5614 if not Assigned(glGetStringi) then
5615 glGetStringi := dglGetProcAddress('glGetStringi');
5616 if Assigned(glGetStringi) and Assigned(glGetIntegerv) then begin
5617 glGetIntegerv(GL_NUM_EXTENSIONS, @ExtCount);
5618 for i := 0 to ExtCount-1 do begin
5619 if (result <> '') then
5620 result := result + #$20;
5621 result := result + PAnsiChar(glGetStringi(GL_EXTENSIONS, i));
5626 result := #$20 + result + #$20;
5629 function CheckEx(const aAllExt, aExt: String): Boolean;
5631 result := (Pos(#$20 + aExt + #$20, aAllExt) > 0);
5639 Buffer := GetExtensions;
5642 GL_KHR_blend_equation_advanced := CheckEx(Buffer, 'GL_KHR_blend_equation_advanced');
5643 GL_KHR_blend_equation_advanced_coherent := CheckEx(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
5644 GL_KHR_context_flush_control := CheckEx(Buffer, 'GL_KHR_context_flush_control');
5645 GL_KHR_debug := CheckEx(Buffer, 'GL_KHR_debug');
5646 GL_KHR_robust_buffer_access_behavior := CheckEx(Buffer, 'GL_KHR_robust_buffer_access_behavior');
5647 GL_KHR_robustness := CheckEx(Buffer, 'GL_KHR_robustness');
5648 GL_KHR_texture_compression_astc_hdr := CheckEx(Buffer, 'GL_KHR_texture_compression_astc_hdr');
5649 GL_KHR_texture_compression_astc_ldr := CheckEx(Buffer, 'GL_KHR_texture_compression_astc_ldr');
5652 GL_OES_EGL_image := CheckEx(Buffer, 'GL_OES_EGL_image');
5653 GL_OES_EGL_image_external := CheckEx(Buffer, 'GL_OES_EGL_image_external');
5654 GL_OES_compressed_ETC1_RGB8_sub_texture := CheckEx(Buffer, 'GL_OES_compressed_ETC1_RGB8_sub_texture');
5655 GL_OES_compressed_ETC1_RGB8_texture := CheckEx(Buffer, 'GL_OES_compressed_ETC1_RGB8_texture');
5656 GL_OES_compressed_paletted_texture := CheckEx(Buffer, 'GL_OES_compressed_paletted_texture');
5657 GL_OES_depth24 := CheckEx(Buffer, 'GL_OES_depth24');
5658 GL_OES_depth32 := CheckEx(Buffer, 'GL_OES_depth32');
5659 GL_OES_depth_texture := CheckEx(Buffer, 'GL_OES_depth_texture');
5660 GL_OES_element_index_uint := CheckEx(Buffer, 'GL_OES_element_index_uint');
5661 GL_OES_fbo_render_mipmap := CheckEx(Buffer, 'GL_OES_fbo_render_mipmap');
5662 GL_OES_fragment_precision_high := CheckEx(Buffer, 'GL_OES_fragment_precision_high');
5663 GL_OES_get_program_binary := CheckEx(Buffer, 'GL_OES_get_program_binary');
5664 GL_OES_mapbuffer := CheckEx(Buffer, 'GL_OES_mapbuffer');
5665 GL_OES_packed_depth_stencil := CheckEx(Buffer, 'GL_OES_packed_depth_stencil');
5666 GL_OES_required_internalformat := CheckEx(Buffer, 'GL_OES_required_internalformat');
5667 GL_OES_rgb8_rgba8 := CheckEx(Buffer, 'GL_OES_rgb8_rgba8');
5668 GL_OES_sample_shading := CheckEx(Buffer, 'GL_OES_sample_shading');
5669 GL_OES_sample_variables := CheckEx(Buffer, 'GL_OES_sample_variables');
5670 GL_OES_shader_image_atomic := CheckEx(Buffer, 'GL_OES_shader_image_atomic');
5671 GL_OES_shader_multisample_interpolation := CheckEx(Buffer, 'GL_OES_shader_multisample_interpolation');
5672 GL_OES_standard_derivatives := CheckEx(Buffer, 'GL_OES_standard_derivatives');
5673 GL_OES_stencil1 := CheckEx(Buffer, 'GL_OES_stencil1');
5674 GL_OES_stencil4 := CheckEx(Buffer, 'GL_OES_stencil4');
5675 GL_OES_surfaceless_context := CheckEx(Buffer, 'GL_OES_surfaceless_context');
5676 GL_OES_texture_3D := CheckEx(Buffer, 'GL_OES_texture_3D');
5677 GL_OES_texture_compression_astc := CheckEx(Buffer, 'GL_OES_texture_compression_astc');
5678 GL_OES_texture_float := CheckEx(Buffer, 'GL_OES_texture_float');
5679 GL_OES_texture_float_linear := CheckEx(Buffer, 'GL_OES_texture_float_linear');
5680 GL_OES_texture_half_float := CheckEx(Buffer, 'GL_OES_texture_half_float');
5681 GL_OES_texture_half_float_linear := CheckEx(Buffer, 'GL_OES_texture_half_float_linear');
5682 GL_OES_texture_npot := CheckEx(Buffer, 'GL_OES_texture_npot');
5683 GL_OES_texture_stencil8 := CheckEx(Buffer, 'GL_OES_texture_stencil8');
5684 GL_OES_texture_storage_multisample_2d_array := CheckEx(Buffer, 'GL_OES_texture_storage_multisample_2d_array');
5685 GL_OES_vertex_array_object := CheckEx(Buffer, 'GL_OES_vertex_array_object');
5686 GL_OES_vertex_half_float := CheckEx(Buffer, 'GL_OES_vertex_half_float');
5687 GL_OES_vertex_type_10_10_10_2 := CheckEx(Buffer, 'GL_OES_vertex_type_10_10_10_2');
5690 GL_AMD_compressed_3DC_texture := CheckEx(Buffer, 'GL_AMD_compressed_3DC_texture');
5691 GL_AMD_compressed_ATC_texture := CheckEx(Buffer, 'GL_AMD_compressed_ATC_texture');
5692 GL_AMD_performance_monitor := CheckEx(Buffer, 'GL_AMD_performance_monitor');
5693 GL_AMD_program_binary_Z400 := CheckEx(Buffer, 'GL_AMD_program_binary_Z400');
5696 GL_ANDROID_extension_pack_es31a := CheckEx(Buffer, 'GL_ANDROID_extension_pack_es31a');
5699 GL_ANGLE_depth_texture := CheckEx(Buffer, 'GL_ANGLE_depth_texture');
5700 GL_ANGLE_framebuffer_blit := CheckEx(Buffer, 'GL_ANGLE_framebuffer_blit');
5701 GL_ANGLE_framebuffer_multisample := CheckEx(Buffer, 'GL_ANGLE_framebuffer_multisample');
5702 GL_ANGLE_instanced_arrays := CheckEx(Buffer, 'GL_ANGLE_instanced_arrays');
5703 GL_ANGLE_pack_reverse_row_order := CheckEx(Buffer, 'GL_ANGLE_pack_reverse_row_order');
5704 GL_ANGLE_program_binary := CheckEx(Buffer, 'GL_ANGLE_program_binary');
5705 GL_ANGLE_texture_compression_dxt3 := CheckEx(Buffer, 'GL_ANGLE_texture_compression_dxt3');
5706 GL_ANGLE_texture_compression_dxt5 := CheckEx(Buffer, 'GL_ANGLE_texture_compression_dxt5');
5707 GL_ANGLE_texture_usage := CheckEx(Buffer, 'GL_ANGLE_texture_usage');
5708 GL_ANGLE_translated_shader_source := CheckEx(Buffer, 'GL_ANGLE_translated_shader_source');
5711 GL_APPLE_clip_distance := CheckEx(Buffer, 'GL_APPLE_clip_distance');
5712 GL_APPLE_color_buffer_packed_float := CheckEx(Buffer, 'GL_APPLE_color_buffer_packed_float');
5713 GL_APPLE_copy_texture_levels := CheckEx(Buffer, 'GL_APPLE_copy_texture_levels');
5714 GL_APPLE_framebuffer_multisample := CheckEx(Buffer, 'GL_APPLE_framebuffer_multisample');
5715 GL_APPLE_rgb_422 := CheckEx(Buffer, 'GL_APPLE_rgb_422');
5716 GL_APPLE_sync := CheckEx(Buffer, 'GL_APPLE_sync');
5717 GL_APPLE_texture_format_BGRA8888 := CheckEx(Buffer, 'GL_APPLE_texture_format_BGRA8888');
5718 GL_APPLE_texture_max_level := CheckEx(Buffer, 'GL_APPLE_texture_max_level');
5719 GL_APPLE_texture_packed_float := CheckEx(Buffer, 'GL_APPLE_texture_packed_float');
5722 GL_ARM_mali_program_binary := CheckEx(Buffer, 'GL_ARM_mali_program_binary');
5723 GL_ARM_mali_shader_binary := CheckEx(Buffer, 'GL_ARM_mali_shader_binary');
5724 GL_ARM_rgba8 := CheckEx(Buffer, 'GL_ARM_rgba8');
5725 GL_ARM_shader_framebuffer_fetch := CheckEx(Buffer, 'GL_ARM_shader_framebuffer_fetch');
5726 GL_ARM_shader_framebuffer_fetch_depth_stencil := CheckEx(Buffer, 'GL_ARM_shader_framebuffer_fetch_depth_stencil');
5729 GL_DMP_program_binary := CheckEx(Buffer, 'GL_DMP_program_binary');
5730 GL_DMP_shader_binary := CheckEx(Buffer, 'GL_DMP_shader_binary');
5733 GL_EXT_base_instance := CheckEx(Buffer, 'GL_EXT_base_instance');
5734 GL_EXT_blend_minmax := CheckEx(Buffer, 'GL_EXT_blend_minmax');
5735 GL_EXT_color_buffer_half_float := CheckEx(Buffer, 'GL_EXT_color_buffer_half_float');
5736 GL_EXT_copy_image := CheckEx(Buffer, 'GL_EXT_copy_image');
5737 GL_EXT_debug_label := CheckEx(Buffer, 'GL_EXT_debug_label');
5738 GL_EXT_debug_marker := CheckEx(Buffer, 'GL_EXT_debug_marker');
5739 GL_EXT_discard_framebuffer := CheckEx(Buffer, 'GL_EXT_discard_framebuffer');
5740 GL_EXT_disjoint_timer_query := CheckEx(Buffer, 'GL_EXT_disjoint_timer_query');
5741 GL_EXT_draw_buffers := CheckEx(Buffer, 'GL_EXT_draw_buffers');
5742 GL_EXT_draw_buffers_indexed := CheckEx(Buffer, 'GL_EXT_draw_buffers_indexed');
5743 GL_EXT_draw_elements_base_vertex := CheckEx(Buffer, 'GL_EXT_draw_elements_base_vertex');
5744 GL_EXT_draw_instanced := CheckEx(Buffer, 'GL_EXT_draw_instanced');
5745 GL_EXT_geometry_point_size := CheckEx(Buffer, 'GL_EXT_geometry_point_size');
5746 GL_EXT_geometry_shader := CheckEx(Buffer, 'GL_EXT_geometry_shader');
5747 GL_EXT_gpu_shader5 := CheckEx(Buffer, 'GL_EXT_gpu_shader5');
5748 GL_EXT_instanced_arrays := CheckEx(Buffer, 'GL_EXT_instanced_arrays');
5749 GL_EXT_map_buffer_range := CheckEx(Buffer, 'GL_EXT_map_buffer_range');
5750 GL_EXT_multi_draw_arrays := CheckEx(Buffer, 'GL_EXT_multi_draw_arrays');
5751 GL_EXT_multi_draw_indirect := CheckEx(Buffer, 'GL_EXT_multi_draw_indirect');
5752 GL_EXT_multisampled_render_to_texture := CheckEx(Buffer, 'GL_EXT_multisampled_render_to_texture');
5753 GL_EXT_multiview_draw_buffers := CheckEx(Buffer, 'GL_EXT_multiview_draw_buffers');
5754 GL_EXT_occlusion_query_boolean := CheckEx(Buffer, 'GL_EXT_occlusion_query_boolean');
5755 GL_EXT_primitive_bounding_box := CheckEx(Buffer, 'GL_EXT_primitive_bounding_box');
5756 GL_EXT_pvrtc_sRGB := CheckEx(Buffer, 'GL_EXT_pvrtc_sRGB');
5757 GL_EXT_read_format_bgra := CheckEx(Buffer, 'GL_EXT_read_format_bgra');
5758 GL_EXT_render_snorm := CheckEx(Buffer, 'GL_EXT_render_snorm');
5759 GL_EXT_robustness := CheckEx(Buffer, 'GL_EXT_robustness');
5760 GL_EXT_sRGB := CheckEx(Buffer, 'GL_EXT_sRGB');
5761 GL_EXT_sRGB_write_control := CheckEx(Buffer, 'GL_EXT_sRGB_write_control');
5762 GL_EXT_separate_shader_objects := CheckEx(Buffer, 'GL_EXT_separate_shader_objects');
5763 GL_EXT_shader_framebuffer_fetch := CheckEx(Buffer, 'GL_EXT_shader_framebuffer_fetch');
5764 GL_EXT_shader_implicit_conversions := CheckEx(Buffer, 'GL_EXT_shader_implicit_conversions');
5765 GL_EXT_shader_integer_mix := CheckEx(Buffer, 'GL_EXT_shader_integer_mix');
5766 GL_EXT_shader_io_blocks := CheckEx(Buffer, 'GL_EXT_shader_io_blocks');
5767 GL_EXT_shader_pixel_local_storage := CheckEx(Buffer, 'GL_EXT_shader_pixel_local_storage');
5768 GL_EXT_shader_texture_lod := CheckEx(Buffer, 'GL_EXT_shader_texture_lod');
5769 GL_EXT_shadow_samplers := CheckEx(Buffer, 'GL_EXT_shadow_samplers');
5770 GL_EXT_tessellation_point_size := CheckEx(Buffer, 'GL_EXT_tessellation_point_size');
5771 GL_EXT_tessellation_shader := CheckEx(Buffer, 'GL_EXT_tessellation_shader');
5772 GL_EXT_texture_border_clamp := CheckEx(Buffer, 'GL_EXT_texture_border_clamp');
5773 GL_EXT_texture_buffer := CheckEx(Buffer, 'GL_EXT_texture_buffer');
5774 GL_EXT_texture_compression_dxt1 := CheckEx(Buffer, 'GL_EXT_texture_compression_dxt1');
5775 GL_EXT_texture_compression_s3tc := CheckEx(Buffer, 'GL_EXT_texture_compression_s3tc');
5776 GL_EXT_texture_cube_map_array := CheckEx(Buffer, 'GL_EXT_texture_cube_map_array');
5777 GL_EXT_texture_filter_anisotropic := CheckEx(Buffer, 'GL_EXT_texture_filter_anisotropic');
5778 GL_EXT_texture_format_BGRA8888 := CheckEx(Buffer, 'GL_EXT_texture_format_BGRA8888');
5779 GL_EXT_texture_norm16 := CheckEx(Buffer, 'GL_EXT_texture_norm16');
5780 GL_EXT_texture_rg := CheckEx(Buffer, 'GL_EXT_texture_rg');
5781 GL_EXT_texture_sRGB_decode := CheckEx(Buffer, 'GL_EXT_texture_sRGB_decode');
5782 GL_EXT_texture_storage := CheckEx(Buffer, 'GL_EXT_texture_storage');
5783 GL_EXT_texture_type_2_10_10_10_REV := CheckEx(Buffer, 'GL_EXT_texture_type_2_10_10_10_REV');
5784 GL_EXT_texture_view := CheckEx(Buffer, 'GL_EXT_texture_view');
5785 GL_EXT_unpack_subimage := CheckEx(Buffer, 'GL_EXT_unpack_subimage');
5788 GL_FJ_shader_binary_GCCSO := CheckEx(Buffer, 'GL_FJ_shader_binary_GCCSO');
5791 GL_IMG_multisampled_render_to_texture := CheckEx(Buffer, 'GL_IMG_multisampled_render_to_texture');
5792 GL_IMG_program_binary := CheckEx(Buffer, 'GL_IMG_program_binary');
5793 GL_IMG_read_format := CheckEx(Buffer, 'GL_IMG_read_format');
5794 GL_IMG_shader_binary := CheckEx(Buffer, 'GL_IMG_shader_binary');
5795 GL_IMG_texture_compression_pvrtc := CheckEx(Buffer, 'GL_IMG_texture_compression_pvrtc');
5796 GL_IMG_texture_compression_pvrtc2 := CheckEx(Buffer, 'GL_IMG_texture_compression_pvrtc2');
5799 GL_INTEL_performance_query := CheckEx(Buffer, 'GL_INTEL_performance_query');
5802 GL_NV_bindless_texture := CheckEx(Buffer, 'GL_NV_bindless_texture');
5803 GL_NV_blend_equation_advanced := CheckEx(Buffer, 'GL_NV_blend_equation_advanced');
5804 GL_NV_blend_equation_advanced_coherent := CheckEx(Buffer, 'GL_NV_blend_equation_advanced_coherent');
5805 GL_NV_conditional_render := CheckEx(Buffer, 'GL_NV_conditional_render');
5806 GL_NV_copy_buffer := CheckEx(Buffer, 'GL_NV_copy_buffer');
5807 GL_NV_coverage_sample := CheckEx(Buffer, 'GL_NV_coverage_sample');
5808 GL_NV_depth_nonlinear := CheckEx(Buffer, 'GL_NV_depth_nonlinear');
5809 GL_NV_draw_buffers := CheckEx(Buffer, 'GL_NV_draw_buffers');
5810 GL_NV_draw_instanced := CheckEx(Buffer, 'GL_NV_draw_instanced');
5811 GL_NV_explicit_attrib_location := CheckEx(Buffer, 'GL_NV_explicit_attrib_location');
5812 GL_NV_fbo_color_attachments := CheckEx(Buffer, 'GL_NV_fbo_color_attachments');
5813 GL_NV_fence := CheckEx(Buffer, 'GL_NV_fence');
5814 GL_NV_framebuffer_blit := CheckEx(Buffer, 'GL_NV_framebuffer_blit');
5815 GL_NV_framebuffer_multisample := CheckEx(Buffer, 'GL_NV_framebuffer_multisample');
5816 GL_NV_generate_mipmap_sRGB := CheckEx(Buffer, 'GL_NV_generate_mipmap_sRGB');
5817 GL_NV_image_formats := CheckEx(Buffer, 'GL_NV_image_formats');
5818 GL_NV_instanced_arrays := CheckEx(Buffer, 'GL_NV_instanced_arrays');
5819 GL_NV_internalformat_sample_query := CheckEx(Buffer, 'GL_NV_internalformat_sample_query');
5820 GL_NV_non_square_matrices := CheckEx(Buffer, 'GL_NV_non_square_matrices');
5821 GL_NV_path_rendering := CheckEx(Buffer, 'GL_NV_path_rendering');
5822 GL_NV_read_buffer := CheckEx(Buffer, 'GL_NV_read_buffer');
5823 GL_NV_read_buffer_front := CheckEx(Buffer, 'GL_NV_read_buffer_front');
5824 GL_NV_read_depth := CheckEx(Buffer, 'GL_NV_read_depth');
5825 GL_NV_read_depth_stencil := CheckEx(Buffer, 'GL_NV_read_depth_stencil');
5826 GL_NV_read_stencil := CheckEx(Buffer, 'GL_NV_read_stencil');
5827 GL_NV_sRGB_formats := CheckEx(Buffer, 'GL_NV_sRGB_formats');
5828 GL_NV_shader_noperspective_interpolation := CheckEx(Buffer, 'GL_NV_shader_noperspective_interpolation');
5829 GL_NV_shadow_samplers_array := CheckEx(Buffer, 'GL_NV_shadow_samplers_array');
5830 GL_NV_shadow_samplers_cube := CheckEx(Buffer, 'GL_NV_shadow_samplers_cube');
5831 GL_NV_texture_border_clamp := CheckEx(Buffer, 'GL_NV_texture_border_clamp');
5832 GL_NV_texture_compression_s3tc_update := CheckEx(Buffer, 'GL_NV_texture_compression_s3tc_update');
5833 GL_NV_texture_npot_2D_mipmap := CheckEx(Buffer, 'GL_NV_texture_npot_2D_mipmap');
5834 GL_NV_viewport_array := CheckEx(Buffer, 'GL_NV_viewport_array');
5837 GL_QCOM_alpha_test := CheckEx(Buffer, 'GL_QCOM_alpha_test');
5838 GL_QCOM_binning_control := CheckEx(Buffer, 'GL_QCOM_binning_control');
5839 GL_QCOM_driver_control := CheckEx(Buffer, 'GL_QCOM_driver_control');
5840 GL_QCOM_extended_get := CheckEx(Buffer, 'GL_QCOM_extended_get');
5841 GL_QCOM_extended_get2 := CheckEx(Buffer, 'GL_QCOM_extended_get2');
5842 GL_QCOM_perfmon_global_mode := CheckEx(Buffer, 'GL_QCOM_perfmon_global_mode');
5843 GL_QCOM_tiled_rendering := CheckEx(Buffer, 'GL_QCOM_tiled_rendering');
5844 GL_QCOM_writeonly_rendering := CheckEx(Buffer, 'GL_QCOM_writeonly_rendering');
5847 GL_VIV_shader_binary := CheckEx(Buffer, 'GL_VIV_shader_binary');
5850 procedure Read_GL_KHR_blend_equation_advanced;
5852 glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
5855 procedure Read_GL_KHR_debug;
5857 glDebugMessageControlKHR := dglGetProcAddress('glDebugMessageControlKHR');
5858 glDebugMessageInsertKHR := dglGetProcAddress('glDebugMessageInsertKHR');
5859 glDebugMessageCallbackKHR := dglGetProcAddress('glDebugMessageCallbackKHR');
5860 glGetDebugMessageLogKHR := dglGetProcAddress('glGetDebugMessageLogKHR');
5861 glPushDebugGroupKHR := dglGetProcAddress('glPushDebugGroupKHR');
5862 glPopDebugGroupKHR := dglGetProcAddress('glPopDebugGroupKHR');
5863 glObjectLabelKHR := dglGetProcAddress('glObjectLabelKHR');
5864 glGetObjectLabelKHR := dglGetProcAddress('glGetObjectLabelKHR');
5865 glObjectPtrLabelKHR := dglGetProcAddress('glObjectPtrLabelKHR');
5866 glGetObjectPtrLabelKHR := dglGetProcAddress('glGetObjectPtrLabelKHR');
5867 glGetPointervKHR := dglGetProcAddress('glGetPointervKHR');
5870 procedure Read_GL_KHR_robustness;
5872 glGetGraphicsResetStatusKHR := dglGetProcAddress('glGetGraphicsResetStatusKHR');
5873 glReadnPixelsKHR := dglGetProcAddress('glReadnPixelsKHR');
5874 glGetnUniformfvKHR := dglGetProcAddress('glGetnUniformfvKHR');
5875 glGetnUniformivKHR := dglGetProcAddress('glGetnUniformivKHR');
5876 glGetnUniformuivKHR := dglGetProcAddress('glGetnUniformuivKHR');
5879 procedure Read_GL_OES_EGL_image;
5881 glEGLImageTargetTexture2DOES := dglGetProcAddress('glEGLImageTargetTexture2DOES');
5882 glEGLImageTargetRenderbufferStorageOES := dglGetProcAddress('glEGLImageTargetRenderbufferStorageOES');
5885 procedure Read_GL_OES_get_program_binary;
5887 glGetProgramBinaryOES := dglGetProcAddress('glGetProgramBinaryOES');
5888 glProgramBinaryOES := dglGetProcAddress('glProgramBinaryOES');
5891 procedure Read_GL_OES_mapbuffer;
5893 glMapBufferOES := dglGetProcAddress('glMapBufferOES');
5894 glUnmapBufferOES := dglGetProcAddress('glUnmapBufferOES');
5895 glGetBufferPointervOES := dglGetProcAddress('glGetBufferPointervOES');
5898 procedure Read_GL_OES_sample_shading;
5900 glMinSampleShadingOES := dglGetProcAddress('glMinSampleShadingOES');
5903 procedure Read_GL_OES_texture_3D;
5905 glTexImage3DOES := dglGetProcAddress('glTexImage3DOES');
5906 glTexSubImage3DOES := dglGetProcAddress('glTexSubImage3DOES');
5907 glCopyTexSubImage3DOES := dglGetProcAddress('glCopyTexSubImage3DOES');
5908 glCompressedTexImage3DOES := dglGetProcAddress('glCompressedTexImage3DOES');
5909 glCompressedTexSubImage3DOES := dglGetProcAddress('glCompressedTexSubImage3DOES');
5910 glFramebufferTexture3DOES := dglGetProcAddress('glFramebufferTexture3DOES');
5913 procedure Read_GL_OES_texture_storage_multisample_2d_array;
5915 glTexStorage3DMultisampleOES := dglGetProcAddress('glTexStorage3DMultisampleOES');
5918 procedure Read_GL_OES_vertex_array_object;
5920 glBindVertexArrayOES := dglGetProcAddress('glBindVertexArrayOES');
5921 glDeleteVertexArraysOES := dglGetProcAddress('glDeleteVertexArraysOES');
5922 glGenVertexArraysOES := dglGetProcAddress('glGenVertexArraysOES');
5923 glIsVertexArrayOES := dglGetProcAddress('glIsVertexArrayOES');
5926 procedure Read_GL_AMD_performance_monitor;
5928 glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
5929 glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
5930 glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
5931 glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
5932 glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
5933 glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
5934 glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
5935 glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
5936 glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
5937 glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
5938 glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
5941 procedure Read_GL_ANGLE_framebuffer_blit;
5943 glBlitFramebufferANGLE := dglGetProcAddress('glBlitFramebufferANGLE');
5946 procedure Read_GL_ANGLE_framebuffer_multisample;
5948 glRenderbufferStorageMultisampleANGLE := dglGetProcAddress('glRenderbufferStorageMultisampleANGLE');
5951 procedure Read_GL_ANGLE_instanced_arrays;
5953 glDrawArraysInstancedANGLE := dglGetProcAddress('glDrawArraysInstancedANGLE');
5954 glDrawElementsInstancedANGLE := dglGetProcAddress('glDrawElementsInstancedANGLE');
5955 glVertexAttribDivisorANGLE := dglGetProcAddress('glVertexAttribDivisorANGLE');
5958 procedure Read_GL_ANGLE_translated_shader_source;
5960 glGetTranslatedShaderSourceANGLE := dglGetProcAddress('glGetTranslatedShaderSourceANGLE');
5963 procedure Read_GL_APPLE_copy_texture_levels;
5965 glCopyTextureLevelsAPPLE := dglGetProcAddress('glCopyTextureLevelsAPPLE');
5968 procedure Read_GL_APPLE_framebuffer_multisample;
5970 glRenderbufferStorageMultisampleAPPLE := dglGetProcAddress('glRenderbufferStorageMultisampleAPPLE');
5971 glResolveMultisampleFramebufferAPPLE := dglGetProcAddress('glResolveMultisampleFramebufferAPPLE');
5974 procedure Read_GL_APPLE_sync;
5976 glFenceSyncAPPLE := dglGetProcAddress('glFenceSyncAPPLE');
5977 glIsSyncAPPLE := dglGetProcAddress('glIsSyncAPPLE');
5978 glDeleteSyncAPPLE := dglGetProcAddress('glDeleteSyncAPPLE');
5979 glClientWaitSyncAPPLE := dglGetProcAddress('glClientWaitSyncAPPLE');
5980 glWaitSyncAPPLE := dglGetProcAddress('glWaitSyncAPPLE');
5981 glGetInteger64vAPPLE := dglGetProcAddress('glGetInteger64vAPPLE');
5982 glGetSyncivAPPLE := dglGetProcAddress('glGetSyncivAPPLE');
5985 procedure Read_GL_EXT_base_instance;
5987 glDrawArraysInstancedBaseInstanceEXT := dglGetProcAddress('glDrawArraysInstancedBaseInstanceEXT');
5988 glDrawElementsInstancedBaseInstanceEXT := dglGetProcAddress('glDrawElementsInstancedBaseInstanceEXT');
5989 glDrawElementsInstancedBaseVertexBaseInstanceEXT := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstanceEXT');
5992 procedure Read_GL_EXT_copy_image;
5994 glCopyImageSubDataEXT := dglGetProcAddress('glCopyImageSubDataEXT');
5997 procedure Read_GL_EXT_debug_label;
5999 glLabelObjectEXT := dglGetProcAddress('glLabelObjectEXT');
6000 glGetObjectLabelEXT := dglGetProcAddress('glGetObjectLabelEXT');
6003 procedure Read_GL_EXT_debug_marker;
6005 glInsertEventMarkerEXT := dglGetProcAddress('glInsertEventMarkerEXT');
6006 glPushGroupMarkerEXT := dglGetProcAddress('glPushGroupMarkerEXT');
6007 glPopGroupMarkerEXT := dglGetProcAddress('glPopGroupMarkerEXT');
6010 procedure Read_GL_EXT_discard_framebuffer;
6012 glDiscardFramebufferEXT := dglGetProcAddress('glDiscardFramebufferEXT');
6015 procedure Read_GL_EXT_disjoint_timer_query;
6017 glGenQueriesEXT := dglGetProcAddress('glGenQueriesEXT');
6018 glDeleteQueriesEXT := dglGetProcAddress('glDeleteQueriesEXT');
6019 glIsQueryEXT := dglGetProcAddress('glIsQueryEXT');
6020 glBeginQueryEXT := dglGetProcAddress('glBeginQueryEXT');
6021 glEndQueryEXT := dglGetProcAddress('glEndQueryEXT');
6022 glQueryCounterEXT := dglGetProcAddress('glQueryCounterEXT');
6023 glGetQueryivEXT := dglGetProcAddress('glGetQueryivEXT');
6024 glGetQueryObjectivEXT := dglGetProcAddress('glGetQueryObjectivEXT');
6025 glGetQueryObjectuivEXT := dglGetProcAddress('glGetQueryObjectuivEXT');
6026 glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
6027 glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
6030 procedure Read_GL_EXT_draw_buffers;
6032 glDrawBuffersEXT := dglGetProcAddress('glDrawBuffersEXT');
6035 procedure Read_GL_EXT_draw_buffers_indexed;
6037 glEnableiEXT := dglGetProcAddress('glEnableiEXT');
6038 glDisableiEXT := dglGetProcAddress('glDisableiEXT');
6039 glBlendEquationiEXT := dglGetProcAddress('glBlendEquationiEXT');
6040 glBlendEquationSeparateiEXT := dglGetProcAddress('glBlendEquationSeparateiEXT');
6041 glBlendFunciEXT := dglGetProcAddress('glBlendFunciEXT');
6042 glBlendFuncSeparateiEXT := dglGetProcAddress('glBlendFuncSeparateiEXT');
6043 glColorMaskiEXT := dglGetProcAddress('glColorMaskiEXT');
6044 glIsEnablediEXT := dglGetProcAddress('glIsEnablediEXT');
6047 procedure Read_GL_EXT_draw_elements_base_vertex;
6049 glDrawElementsBaseVertexEXT := dglGetProcAddress('glDrawElementsBaseVertexEXT');
6050 glDrawRangeElementsBaseVertexEXT := dglGetProcAddress('glDrawRangeElementsBaseVertexEXT');
6051 glDrawElementsInstancedBaseVertexEXT := dglGetProcAddress('glDrawElementsInstancedBaseVertexEXT');
6052 glMultiDrawElementsBaseVertexEXT := dglGetProcAddress('glMultiDrawElementsBaseVertexEXT');
6055 procedure Read_GL_EXT_draw_instanced;
6057 glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
6058 glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
6061 procedure Read_GL_EXT_geometry_shader;
6063 glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
6066 procedure Read_GL_EXT_instanced_arrays;
6068 glVertexAttribDivisorEXT := dglGetProcAddress('glVertexAttribDivisorEXT');
6071 procedure Read_GL_EXT_map_buffer_range;
6073 glMapBufferRangeEXT := dglGetProcAddress('glMapBufferRangeEXT');
6074 glFlushMappedBufferRangeEXT := dglGetProcAddress('glFlushMappedBufferRangeEXT');
6077 procedure Read_GL_EXT_multi_draw_arrays;
6079 glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
6080 glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
6083 procedure Read_GL_EXT_multi_draw_indirect;
6085 glMultiDrawArraysIndirectEXT := dglGetProcAddress('glMultiDrawArraysIndirectEXT');
6086 glMultiDrawElementsIndirectEXT := dglGetProcAddress('glMultiDrawElementsIndirectEXT');
6089 procedure Read_GL_EXT_multisampled_render_to_texture;
6091 glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
6092 glFramebufferTexture2DMultisampleEXT := dglGetProcAddress('glFramebufferTexture2DMultisampleEXT');
6095 procedure Read_GL_EXT_multiview_draw_buffers;
6097 glReadBufferIndexedEXT := dglGetProcAddress('glReadBufferIndexedEXT');
6098 glDrawBuffersIndexedEXT := dglGetProcAddress('glDrawBuffersIndexedEXT');
6099 glGetIntegeri_vEXT := dglGetProcAddress('glGetIntegeri_vEXT');
6102 procedure Read_GL_EXT_primitive_bounding_box;
6104 glPrimitiveBoundingBoxEXT := dglGetProcAddress('glPrimitiveBoundingBoxEXT');
6107 procedure Read_GL_EXT_robustness;
6109 glGetGraphicsResetStatusEXT := dglGetProcAddress('glGetGraphicsResetStatusEXT');
6110 glReadnPixelsEXT := dglGetProcAddress('glReadnPixelsEXT');
6111 glGetnUniformfvEXT := dglGetProcAddress('glGetnUniformfvEXT');
6112 glGetnUniformivEXT := dglGetProcAddress('glGetnUniformivEXT');
6115 procedure Read_GL_EXT_separate_shader_objects;
6117 glActiveShaderProgramEXT := dglGetProcAddress('glActiveShaderProgramEXT');
6118 glBindProgramPipelineEXT := dglGetProcAddress('glBindProgramPipelineEXT');
6119 glCreateShaderProgramvEXT := dglGetProcAddress('glCreateShaderProgramvEXT');
6120 glDeleteProgramPipelinesEXT := dglGetProcAddress('glDeleteProgramPipelinesEXT');
6121 glGenProgramPipelinesEXT := dglGetProcAddress('glGenProgramPipelinesEXT');
6122 glGetProgramPipelineInfoLogEXT := dglGetProcAddress('glGetProgramPipelineInfoLogEXT');
6123 glGetProgramPipelineivEXT := dglGetProcAddress('glGetProgramPipelineivEXT');
6124 glIsProgramPipelineEXT := dglGetProcAddress('glIsProgramPipelineEXT');
6125 glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
6126 glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
6127 glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
6128 glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
6129 glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
6130 glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
6131 glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
6132 glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
6133 glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
6134 glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
6135 glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
6136 glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
6137 glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
6138 glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
6139 glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
6140 glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
6141 glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
6142 glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
6143 glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
6144 glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
6145 glUseProgramStagesEXT := dglGetProcAddress('glUseProgramStagesEXT');
6146 glValidateProgramPipelineEXT := dglGetProcAddress('glValidateProgramPipelineEXT');
6147 glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
6148 glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
6149 glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
6150 glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
6151 glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
6152 glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
6153 glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
6154 glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
6155 glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
6156 glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
6157 glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
6158 glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
6159 glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
6160 glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
6163 procedure Read_GL_EXT_tessellation_shader;
6165 glPatchParameteriEXT := dglGetProcAddress('glPatchParameteriEXT');
6168 procedure Read_GL_EXT_texture_border_clamp;
6170 glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
6171 glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
6172 glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
6173 glGetTexParameterIuivEXT := dglGetProcAddress('glGetTexParameterIuivEXT');
6174 glSamplerParameterIivEXT := dglGetProcAddress('glSamplerParameterIivEXT');
6175 glSamplerParameterIuivEXT := dglGetProcAddress('glSamplerParameterIuivEXT');
6176 glGetSamplerParameterIivEXT := dglGetProcAddress('glGetSamplerParameterIivEXT');
6177 glGetSamplerParameterIuivEXT := dglGetProcAddress('glGetSamplerParameterIuivEXT');
6180 procedure Read_GL_EXT_texture_buffer;
6182 glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
6183 glTexBufferRangeEXT := dglGetProcAddress('glTexBufferRangeEXT');
6186 procedure Read_GL_EXT_texture_storage;
6188 glTexStorage1DEXT := dglGetProcAddress('glTexStorage1DEXT');
6189 glTexStorage2DEXT := dglGetProcAddress('glTexStorage2DEXT');
6190 glTexStorage3DEXT := dglGetProcAddress('glTexStorage3DEXT');
6191 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
6192 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
6193 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
6196 procedure Read_GL_EXT_texture_view;
6198 glTextureViewEXT := dglGetProcAddress('glTextureViewEXT');
6201 procedure Read_GL_IMG_multisampled_render_to_texture;
6203 glRenderbufferStorageMultisampleIMG := dglGetProcAddress('glRenderbufferStorageMultisampleIMG');
6204 glFramebufferTexture2DMultisampleIMG := dglGetProcAddress('glFramebufferTexture2DMultisampleIMG');
6207 procedure Read_GL_INTEL_performance_query;
6209 glBeginPerfQueryINTEL := dglGetProcAddress('glBeginPerfQueryINTEL');
6210 glCreatePerfQueryINTEL := dglGetProcAddress('glCreatePerfQueryINTEL');
6211 glDeletePerfQueryINTEL := dglGetProcAddress('glDeletePerfQueryINTEL');
6212 glEndPerfQueryINTEL := dglGetProcAddress('glEndPerfQueryINTEL');
6213 glGetFirstPerfQueryIdINTEL := dglGetProcAddress('glGetFirstPerfQueryIdINTEL');
6214 glGetNextPerfQueryIdINTEL := dglGetProcAddress('glGetNextPerfQueryIdINTEL');
6215 glGetPerfCounterInfoINTEL := dglGetProcAddress('glGetPerfCounterInfoINTEL');
6216 glGetPerfQueryDataINTEL := dglGetProcAddress('glGetPerfQueryDataINTEL');
6217 glGetPerfQueryIdByNameINTEL := dglGetProcAddress('glGetPerfQueryIdByNameINTEL');
6218 glGetPerfQueryInfoINTEL := dglGetProcAddress('glGetPerfQueryInfoINTEL');
6221 procedure Read_GL_NV_bindless_texture;
6223 glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
6224 glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
6225 glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
6226 glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
6227 glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
6228 glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
6229 glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
6230 glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
6231 glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
6232 glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
6233 glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
6234 glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
6235 glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
6238 procedure Read_GL_NV_blend_equation_advanced;
6240 glBlendParameteriNV := dglGetProcAddress('glBlendParameteriNV');
6241 glBlendBarrierNV := dglGetProcAddress('glBlendBarrierNV');
6244 procedure Read_GL_NV_conditional_render;
6246 glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
6247 glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
6250 procedure Read_GL_NV_copy_buffer;
6252 glCopyBufferSubDataNV := dglGetProcAddress('glCopyBufferSubDataNV');
6255 procedure Read_GL_NV_coverage_sample;
6257 glCoverageMaskNV := dglGetProcAddress('glCoverageMaskNV');
6258 glCoverageOperationNV := dglGetProcAddress('glCoverageOperationNV');
6261 procedure Read_GL_NV_draw_buffers;
6263 glDrawBuffersNV := dglGetProcAddress('glDrawBuffersNV');
6266 procedure Read_GL_NV_draw_instanced;
6268 glDrawArraysInstancedNV := dglGetProcAddress('glDrawArraysInstancedNV');
6269 glDrawElementsInstancedNV := dglGetProcAddress('glDrawElementsInstancedNV');
6272 procedure Read_GL_NV_fence;
6274 glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
6275 glGenFencesNV := dglGetProcAddress('glGenFencesNV');
6276 glIsFenceNV := dglGetProcAddress('glIsFenceNV');
6277 glTestFenceNV := dglGetProcAddress('glTestFenceNV');
6278 glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
6279 glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
6280 glSetFenceNV := dglGetProcAddress('glSetFenceNV');
6283 procedure Read_GL_NV_framebuffer_blit;
6285 glBlitFramebufferNV := dglGetProcAddress('glBlitFramebufferNV');
6288 procedure Read_GL_NV_framebuffer_multisample;
6290 glRenderbufferStorageMultisampleNV := dglGetProcAddress('glRenderbufferStorageMultisampleNV');
6293 procedure Read_GL_NV_instanced_arrays;
6295 glVertexAttribDivisorNV := dglGetProcAddress('glVertexAttribDivisorNV');
6298 procedure Read_GL_NV_internalformat_sample_query;
6300 glGetInternalformatSampleivNV := dglGetProcAddress('glGetInternalformatSampleivNV');
6303 procedure Read_GL_NV_non_square_matrices;
6305 glUniformMatrix2x3fvNV := dglGetProcAddress('glUniformMatrix2x3fvNV');
6306 glUniformMatrix3x2fvNV := dglGetProcAddress('glUniformMatrix3x2fvNV');
6307 glUniformMatrix2x4fvNV := dglGetProcAddress('glUniformMatrix2x4fvNV');
6308 glUniformMatrix4x2fvNV := dglGetProcAddress('glUniformMatrix4x2fvNV');
6309 glUniformMatrix3x4fvNV := dglGetProcAddress('glUniformMatrix3x4fvNV');
6310 glUniformMatrix4x3fvNV := dglGetProcAddress('glUniformMatrix4x3fvNV');
6313 procedure Read_GL_NV_path_rendering;
6315 glGenPathsNV := dglGetProcAddress('glGenPathsNV');
6316 glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
6317 glIsPathNV := dglGetProcAddress('glIsPathNV');
6318 glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
6319 glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
6320 glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
6321 glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
6322 glPathStringNV := dglGetProcAddress('glPathStringNV');
6323 glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
6324 glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
6325 glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
6326 glCopyPathNV := dglGetProcAddress('glCopyPathNV');
6327 glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
6328 glTransformPathNV := dglGetProcAddress('glTransformPathNV');
6329 glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
6330 glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
6331 glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
6332 glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
6333 glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
6334 glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
6335 glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
6336 glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
6337 glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
6338 glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
6339 glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
6340 glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
6341 glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
6342 glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
6343 glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
6344 glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
6345 glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
6346 glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
6347 glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
6348 glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
6349 glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
6350 glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
6351 glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
6352 glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
6353 glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
6354 glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
6355 glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
6356 glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
6357 glMatrixLoad3x2fNV := dglGetProcAddress('glMatrixLoad3x2fNV');
6358 glMatrixLoad3x3fNV := dglGetProcAddress('glMatrixLoad3x3fNV');
6359 glMatrixLoadTranspose3x3fNV := dglGetProcAddress('glMatrixLoadTranspose3x3fNV');
6360 glMatrixMult3x2fNV := dglGetProcAddress('glMatrixMult3x2fNV');
6361 glMatrixMult3x3fNV := dglGetProcAddress('glMatrixMult3x3fNV');
6362 glMatrixMultTranspose3x3fNV := dglGetProcAddress('glMatrixMultTranspose3x3fNV');
6363 glStencilThenCoverFillPathNV := dglGetProcAddress('glStencilThenCoverFillPathNV');
6364 glStencilThenCoverStrokePathNV := dglGetProcAddress('glStencilThenCoverStrokePathNV');
6365 glStencilThenCoverFillPathInstancedNV := dglGetProcAddress('glStencilThenCoverFillPathInstancedNV');
6366 glStencilThenCoverStrokePathInstancedNV := dglGetProcAddress('glStencilThenCoverStrokePathInstancedNV');
6367 glPathGlyphIndexRangeNV := dglGetProcAddress('glPathGlyphIndexRangeNV');
6368 glPathGlyphIndexArrayNV := dglGetProcAddress('glPathGlyphIndexArrayNV');
6369 glPathMemoryGlyphIndexArrayNV := dglGetProcAddress('glPathMemoryGlyphIndexArrayNV');
6370 glProgramPathFragmentInputGenNV := dglGetProcAddress('glProgramPathFragmentInputGenNV');
6371 glGetProgramResourcefvNV := dglGetProcAddress('glGetProgramResourcefvNV');
6374 procedure Read_GL_NV_read_buffer;
6376 glReadBufferNV := dglGetProcAddress('glReadBufferNV');
6379 procedure Read_GL_NV_viewport_array;
6381 glViewportArrayvNV := dglGetProcAddress('glViewportArrayvNV');
6382 glViewportIndexedfNV := dglGetProcAddress('glViewportIndexedfNV');
6383 glViewportIndexedfvNV := dglGetProcAddress('glViewportIndexedfvNV');
6384 glScissorArrayvNV := dglGetProcAddress('glScissorArrayvNV');
6385 glScissorIndexedNV := dglGetProcAddress('glScissorIndexedNV');
6386 glScissorIndexedvNV := dglGetProcAddress('glScissorIndexedvNV');
6387 glDepthRangeArrayfvNV := dglGetProcAddress('glDepthRangeArrayfvNV');
6388 glDepthRangeIndexedfNV := dglGetProcAddress('glDepthRangeIndexedfNV');
6389 glGetFloati_vNV := dglGetProcAddress('glGetFloati_vNV');
6390 glEnableiNV := dglGetProcAddress('glEnableiNV');
6391 glDisableiNV := dglGetProcAddress('glDisableiNV');
6392 glIsEnablediNV := dglGetProcAddress('glIsEnablediNV');
6395 procedure Read_GL_QCOM_alpha_test;
6397 glAlphaFuncQCOM := dglGetProcAddress('glAlphaFuncQCOM');
6400 procedure Read_GL_QCOM_driver_control;
6402 glGetDriverControlsQCOM := dglGetProcAddress('glGetDriverControlsQCOM');
6403 glGetDriverControlStringQCOM := dglGetProcAddress('glGetDriverControlStringQCOM');
6404 glEnableDriverControlQCOM := dglGetProcAddress('glEnableDriverControlQCOM');
6405 glDisableDriverControlQCOM := dglGetProcAddress('glDisableDriverControlQCOM');
6408 procedure Read_GL_QCOM_extended_get;
6410 glExtGetTexturesQCOM := dglGetProcAddress('glExtGetTexturesQCOM');
6411 glExtGetBuffersQCOM := dglGetProcAddress('glExtGetBuffersQCOM');
6412 glExtGetRenderbuffersQCOM := dglGetProcAddress('glExtGetRenderbuffersQCOM');
6413 glExtGetFramebuffersQCOM := dglGetProcAddress('glExtGetFramebuffersQCOM');
6414 glExtGetTexLevelParameterivQCOM := dglGetProcAddress('glExtGetTexLevelParameterivQCOM');
6415 glExtTexObjectStateOverrideiQCOM := dglGetProcAddress('glExtTexObjectStateOverrideiQCOM');
6416 glExtGetTexSubImageQCOM := dglGetProcAddress('glExtGetTexSubImageQCOM');
6417 glExtGetBufferPointervQCOM := dglGetProcAddress('glExtGetBufferPointervQCOM');
6420 procedure Read_GL_QCOM_extended_get2;
6422 glExtGetShadersQCOM := dglGetProcAddress('glExtGetShadersQCOM');
6423 glExtGetProgramsQCOM := dglGetProcAddress('glExtGetProgramsQCOM');
6424 glExtIsProgramBinaryQCOM := dglGetProcAddress('glExtIsProgramBinaryQCOM');
6425 glExtGetProgramBinarySourceQCOM := dglGetProcAddress('glExtGetProgramBinarySourceQCOM');
6428 procedure Read_GL_QCOM_tiled_rendering;
6430 glStartTilingQCOM := dglGetProcAddress('glStartTilingQCOM');
6431 glEndTilingQCOM := dglGetProcAddress('glEndTilingQCOM');
6434 constructor EeglError.Create(const msg: string; const aErrorCode: EGLint);
6436 inherited Create(msg);
6437 ErrorCode := aErrorCode;