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