1 { ============================================================================
3 OpenGL 4.5 - Headertranslation
6 Supported environments and targets :
7 - (Linux) FreePascal (1.9.3 and up)
9 ==============================================================================
11 Copyright (C) DGL-OpenGL-Portteam
15 - Delphi OpenGL Community(DGL) - www.delphigl.com
17 Converted and maintained by DGL's OpenGL-Portteam :
18 - Bergmann89 - http://www.bergmann89.de
20 ==============================================================================
22 You may retrieve the latest version of this file at the Delphi OpenGL
23 Community home page, located at http://www.delphigl.com/
25 The contents of this file are used with permission, subject to
26 the Mozilla Public License Version 1.1 (the "License"); you may
27 not use this file except in compliance with the License. You may
28 obtain a copy of the License at
29 http://www.mozilla.org/MPL/MPL-1.1.html
31 Software distributed under the License is distributed on an
32 "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
33 implied. See the License for the specific language governing
34 rights and limitations under the License.
36 ============================================================================== }
47 {$IFDEF linux} // Linux
51 //check if system is supported and set system dependent constants
61 LIBNAME_OPENGLES = 'libGLESv2.so';
62 LIBNAME_EGL = 'libEGL.so';
65 {$ERROR 'unknown/unsupported system'}
69 { ================================================== OpenGL ES ======================================================= }
85 GLbitfield = Cardinal;
94 PGLclampf = ^GLclampf;
98 PGLushort = ^GLushort;
102 PGLuint64 = ^GLuint64;
107 PGLbitfield = ^GLbitfield;
109 PGLboolean = ^GLboolean;
112 PGLdouble = ^GLdouble;
118 TGLvectorub2 = array[0..1] of GLubyte;
119 TGLvectorub3 = array[0..2] of GLubyte;
120 TGLvectorub4 = array[0..3] of GLubyte;
122 TGLvectori2 = array[0..1] of GLint;
123 TGLvectori3 = array[0..2] of GLint;
124 TGLvectori4 = array[0..3] of GLint;
126 TGLvectorf2 = array[0..1] of GLfloat;
127 TGLvectorf3 = array[0..2] of GLfloat;
128 TGLvectorf4 = array[0..3] of GLfloat;
130 TGLvectord2 = array[0..1] of GLdouble;
131 TGLvectord3 = array[0..2] of GLdouble;
132 TGLvectord4 = array[0..3] of GLdouble;
134 TGLvectorp2 = array[0..1] of PGLvoid;
135 TGLvectorp3 = array[0..2] of PGLvoid;
136 TGLvectorp4 = array[0..3] of PGLvoid;
139 { ============================================== OpenGL ES 1.0 ======================================================= }
141 GL_DEPTH_BUFFER_BIT = $00000100;
142 GL_STENCIL_BUFFER_BIT = $00000400;
143 GL_COLOR_BUFFER_BIT = $00004000;
152 GL_LINE_LOOP = $0002;
153 GL_LINE_STRIP = $0003;
154 GL_TRIANGLES = $0004;
155 GL_TRIANGLE_STRIP = $0005;
156 GL_TRIANGLE_FAN = $0006;
168 { BlendingFactorDest }
171 GL_SRC_COLOR = $0300;
172 GL_ONE_MINUS_SRC_COLOR = $0301;
173 GL_SRC_ALPHA = $0302;
174 GL_ONE_MINUS_SRC_ALPHA = $0303;
175 GL_DST_ALPHA = $0304;
176 GL_ONE_MINUS_DST_ALPHA = $0305;
178 { BlendingFactorSrc }
181 GL_DST_COLOR = $0306;
182 GL_ONE_MINUS_DST_COLOR = $0307;
183 GL_SRC_ALPHA_SATURATE = $0308;
185 { GL_ONE_MINUS_SRC_ALPHA }
187 { GL_ONE_MINUS_DST_ALPHA }
190 GL_CLIP_PLANE0 = $3000;
191 GL_CLIP_PLANE1 = $3001;
192 GL_CLIP_PLANE2 = $3002;
193 GL_CLIP_PLANE3 = $3003;
194 GL_CLIP_PLANE4 = $3004;
195 GL_CLIP_PLANE5 = $3005;
197 { ColorMaterialFace }
198 { GL_FRONT_AND_BACK }
200 { ColorMaterialParameter }
201 { GL_AMBIENT_AND_DIFFUSE }
211 GL_FRONT_AND_BACK = $0408;
226 GL_TEXTURE_2D = $0DE1;
227 GL_CULL_FACE = $0B44;
228 GL_ALPHA_TEST = $0BC0;
230 GL_COLOR_LOGIC_OP = $0BF2;
232 GL_STENCIL_TEST = $0B90;
233 GL_DEPTH_TEST = $0B71;
242 GL_POINT_SMOOTH = $0B10;
243 GL_LINE_SMOOTH = $0B20;
244 GL_SCISSOR_TEST = $0C11;
245 GL_COLOR_MATERIAL = $0B57;
246 GL_NORMALIZE = $0BA1;
247 GL_RESCALE_NORMAL = $803A;
248 GL_POLYGON_OFFSET_FILL = $8037;
249 GL_VERTEX_ARRAY = $8074;
250 GL_NORMAL_ARRAY = $8075;
251 GL_COLOR_ARRAY = $8076;
252 GL_TEXTURE_COORD_ARRAY = $8078;
253 GL_MULTISAMPLE = $809D;
254 GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
255 GL_SAMPLE_ALPHA_TO_ONE = $809F;
256 GL_SAMPLE_COVERAGE = $80A0;
260 GL_INVALID_ENUM = $0500;
261 GL_INVALID_VALUE = $0501;
262 GL_INVALID_OPERATION = $0502;
263 GL_STACK_OVERFLOW = $0503;
264 GL_STACK_UNDERFLOW = $0504;
265 GL_OUT_OF_MEMORY = $0505;
273 GL_FOG_DENSITY = $0B62;
274 GL_FOG_START = $0B63;
277 GL_FOG_COLOR = $0B66;
279 { FrontFaceDirection }
284 GL_CURRENT_COLOR = $0B00;
285 GL_CURRENT_NORMAL = $0B02;
286 GL_CURRENT_TEXTURE_COORDS = $0B03;
287 GL_POINT_SIZE = $0B11;
288 GL_POINT_SIZE_MIN = $8126;
289 GL_POINT_SIZE_MAX = $8127;
290 GL_POINT_FADE_THRESHOLD_SIZE = $8128;
291 GL_POINT_DISTANCE_ATTENUATION = $8129;
292 GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
293 GL_LINE_WIDTH = $0B21;
294 GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
295 GL_ALIASED_POINT_SIZE_RANGE = $846D;
296 GL_ALIASED_LINE_WIDTH_RANGE = $846E;
297 GL_CULL_FACE_MODE = $0B45;
298 GL_FRONT_FACE = $0B46;
299 GL_SHADE_MODEL = $0B54;
300 GL_DEPTH_RANGE = $0B70;
301 GL_DEPTH_WRITEMASK = $0B72;
302 GL_DEPTH_CLEAR_VALUE = $0B73;
303 GL_DEPTH_FUNC = $0B74;
304 GL_STENCIL_CLEAR_VALUE = $0B91;
305 GL_STENCIL_FUNC = $0B92;
306 GL_STENCIL_VALUE_MASK = $0B93;
307 GL_STENCIL_FAIL = $0B94;
308 GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
309 GL_STENCIL_PASS_DEPTH_PASS = $0B96;
310 GL_STENCIL_REF = $0B97;
311 GL_STENCIL_WRITEMASK = $0B98;
312 GL_MATRIX_MODE = $0BA0;
314 GL_MODELVIEW_STACK_DEPTH = $0BA3;
315 GL_PROJECTION_STACK_DEPTH = $0BA4;
316 GL_TEXTURE_STACK_DEPTH = $0BA5;
317 GL_MODELVIEW_MATRIX = $0BA6;
318 GL_PROJECTION_MATRIX = $0BA7;
319 GL_TEXTURE_MATRIX = $0BA8;
320 GL_ALPHA_TEST_FUNC = $0BC1;
321 GL_ALPHA_TEST_REF = $0BC2;
322 GL_BLEND_DST = $0BE0;
323 GL_BLEND_SRC = $0BE1;
324 GL_LOGIC_OP_MODE = $0BF0;
325 GL_SCISSOR_BOX = $0C10;
326 GL_COLOR_CLEAR_VALUE = $0C22;
327 GL_COLOR_WRITEMASK = $0C23;
328 GL_UNPACK_ALIGNMENT = $0CF5;
329 GL_PACK_ALIGNMENT = $0D05;
330 GL_MAX_LIGHTS = $0D31;
331 GL_MAX_CLIP_PLANES = $0D32;
332 GL_MAX_TEXTURE_SIZE = $0D33;
333 GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
334 GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
335 GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
336 GL_MAX_VIEWPORT_DIMS = $0D3A;
337 GL_MAX_TEXTURE_UNITS = $84E2;
338 GL_SUBPIXEL_BITS = $0D50;
340 GL_GREEN_BITS = $0D53;
341 GL_BLUE_BITS = $0D54;
342 GL_ALPHA_BITS = $0D55;
343 GL_DEPTH_BITS = $0D56;
344 GL_STENCIL_BITS = $0D57;
345 GL_POLYGON_OFFSET_UNITS = $2A00;
346 GL_POLYGON_OFFSET_FACTOR = $8038;
347 GL_TEXTURE_BINDING_2D = $8069;
348 GL_VERTEX_ARRAY_SIZE = $807A;
349 GL_VERTEX_ARRAY_TYPE = $807B;
350 GL_VERTEX_ARRAY_STRIDE = $807C;
351 GL_NORMAL_ARRAY_TYPE = $807E;
352 GL_NORMAL_ARRAY_STRIDE = $807F;
353 GL_COLOR_ARRAY_SIZE = $8081;
354 GL_COLOR_ARRAY_TYPE = $8082;
355 GL_COLOR_ARRAY_STRIDE = $8083;
356 GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
357 GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
358 GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
359 GL_VERTEX_ARRAY_POINTER = $808E;
360 GL_NORMAL_ARRAY_POINTER = $808F;
361 GL_COLOR_ARRAY_POINTER = $8090;
362 GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
363 GL_SAMPLE_BUFFERS = $80A8;
365 GL_SAMPLE_COVERAGE_VALUE = $80AA;
366 GL_SAMPLE_COVERAGE_INVERT = $80AB;
368 { GetTextureParameter }
369 { GL_TEXTURE_MAG_FILTER }
370 { GL_TEXTURE_MIN_FILTER }
371 { GL_TEXTURE_WRAP_S }
372 { GL_TEXTURE_WRAP_T }
374 GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
375 GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
378 GL_DONT_CARE = $1100;
383 GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
384 GL_POINT_SMOOTH_HINT = $0C51;
385 GL_LINE_SMOOTH_HINT = $0C52;
387 GL_GENERATE_MIPMAP_HINT = $8192;
389 { LightModelParameter }
390 GL_LIGHT_MODEL_AMBIENT = $0B53;
391 GL_LIGHT_MODEL_TWO_SIDE = $0B52;
398 GL_SPOT_DIRECTION = $1204;
399 GL_SPOT_EXPONENT = $1205;
400 GL_SPOT_CUTOFF = $1206;
401 GL_CONSTANT_ATTENUATION = $1207;
402 GL_LINEAR_ATTENUATION = $1208;
403 GL_QUADRATIC_ATTENUATION = $1209;
407 GL_UNSIGNED_BYTE = $1401;
409 GL_UNSIGNED_SHORT = $1403;
416 GL_AND_REVERSE = $1502;
418 GL_AND_INVERTED = $1504;
425 GL_OR_REVERSE = $150B;
426 GL_COPY_INVERTED = $150C;
427 GL_OR_INVERTED = $150D;
432 { GL_FRONT_AND_BACK }
434 { MaterialParameter }
436 GL_SHININESS = $1601;
437 GL_AMBIENT_AND_DIFFUSE = $1602;
443 GL_MODELVIEW = $1700;
444 GL_PROJECTION = $1701;
447 { NormalPointerType }
457 GL_LUMINANCE = $1909;
458 GL_LUMINANCE_ALPHA = $190A;
462 GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
463 GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
464 GL_UNSIGNED_SHORT_5_6_5 = $8363;
492 GL_EXTENSIONS = $1F03;
494 { TexCoordPointerType }
507 { TextureEnvParameter }
508 GL_TEXTURE_ENV_MODE = $2200;
509 GL_TEXTURE_ENV_COLOR = $2201;
512 GL_TEXTURE_ENV = $2300;
521 GL_NEAREST_MIPMAP_NEAREST = $2700;
522 GL_LINEAR_MIPMAP_NEAREST = $2701;
523 GL_NEAREST_MIPMAP_LINEAR = $2702;
524 GL_LINEAR_MIPMAP_LINEAR = $2703;
526 { TextureParameterName }
527 GL_TEXTURE_MAG_FILTER = $2800;
528 GL_TEXTURE_MIN_FILTER = $2801;
529 GL_TEXTURE_WRAP_S = $2802;
530 GL_TEXTURE_WRAP_T = $2803;
531 GL_GENERATE_MIPMAP = $8191;
547 GL_TEXTURE10 = $84CA;
548 GL_TEXTURE11 = $84CB;
549 GL_TEXTURE12 = $84CC;
550 GL_TEXTURE13 = $84CD;
551 GL_TEXTURE14 = $84CE;
552 GL_TEXTURE15 = $84CF;
553 GL_TEXTURE16 = $84D0;
554 GL_TEXTURE17 = $84D1;
555 GL_TEXTURE18 = $84D2;
556 GL_TEXTURE19 = $84D3;
557 GL_TEXTURE20 = $84D4;
558 GL_TEXTURE21 = $84D5;
559 GL_TEXTURE22 = $84D6;
560 GL_TEXTURE23 = $84D7;
561 GL_TEXTURE24 = $84D8;
562 GL_TEXTURE25 = $84D9;
563 GL_TEXTURE26 = $84DA;
564 GL_TEXTURE27 = $84DB;
565 GL_TEXTURE28 = $84DC;
566 GL_TEXTURE29 = $84DD;
567 GL_TEXTURE30 = $84DE;
568 GL_TEXTURE31 = $84DF;
569 GL_ACTIVE_TEXTURE = $84E0;
570 GL_CLIENT_ACTIVE_TEXTURE = $84E1;
574 GL_CLAMP_TO_EDGE = $812F;
576 { VertexPointerType }
593 GL_ARRAY_BUFFER = $8892;
594 GL_ELEMENT_ARRAY_BUFFER = $8893;
596 GL_ARRAY_BUFFER_BINDING = $8894;
597 GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
598 GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
599 GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
600 GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
601 GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
603 GL_STATIC_DRAW = $88E4;
604 GL_DYNAMIC_DRAW = $88E8;
606 GL_BUFFER_SIZE = $8764;
607 GL_BUFFER_USAGE = $8765;
609 { Texture combine + dot3 }
612 GL_COMBINE_RGB = $8571;
613 GL_COMBINE_ALPHA = $8572;
614 GL_RGB_SCALE = $8573;
615 GL_ADD_SIGNED = $8574;
616 GL_INTERPOLATE = $8575;
618 GL_PRIMARY_COLOR = $8577;
620 GL_OPERAND0_RGB = $8590;
621 GL_OPERAND1_RGB = $8591;
622 GL_OPERAND2_RGB = $8592;
623 GL_OPERAND0_ALPHA = $8598;
624 GL_OPERAND1_ALPHA = $8599;
625 GL_OPERAND2_ALPHA = $859A;
627 GL_ALPHA_SCALE = $0D1C;
632 GL_SRC0_ALPHA = $8588;
633 GL_SRC1_ALPHA = $8589;
634 GL_SRC2_ALPHA = $858A;
637 GL_DOT3_RGBA = $86AF;
639 { ============================================== OpenGL ES 2.0 ======================================================= }
640 { BlendEquationSeparate }
642 GL_BLEND_EQUATION = $8009;
643 GL_BLEND_EQUATION_RGB = $8009; // same as BLEND_EQUATION
644 GL_BLEND_EQUATION_ALPHA = $883D;
647 GL_FUNC_SUBTRACT = $800A;
648 GL_FUNC_REVERSE_SUBTRACT = $800B;
650 { Separate Blend Functions }
651 GL_BLEND_DST_RGB = $80C8;
652 GL_BLEND_SRC_RGB = $80C9;
653 GL_BLEND_DST_ALPHA = $80CA;
654 GL_BLEND_SRC_ALPHA = $80CB;
655 GL_CONSTANT_COLOR = $8001;
656 GL_ONE_MINUS_CONSTANT_COLOR = $8002;
657 GL_CONSTANT_ALPHA = $8003;
658 GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
659 GL_BLEND_COLOR = $8005;
662 GL_STREAM_DRAW = $88E0;
663 GL_CURRENT_VERTEX_ATTRIB = $8626;
666 GL_STENCIL_BACK_FUNC = $8800;
667 GL_STENCIL_BACK_FAIL = $8801;
668 GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
669 GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
670 GL_STENCIL_BACK_REF = $8CA3;
671 GL_STENCIL_BACK_VALUE_MASK = $8CA4;
672 GL_STENCIL_BACK_WRITEMASK = $8CA5;
676 GL_UNSIGNED_INT = $1405;
679 GL_DEPTH_COMPONENT = $1902;
682 GL_FRAGMENT_SHADER = $8B30;
683 GL_VERTEX_SHADER = $8B31;
684 GL_MAX_VERTEX_ATTRIBS = $8869;
685 GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
686 GL_MAX_VARYING_VECTORS = $8DFC;
687 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
688 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
689 GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
690 GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
691 GL_SHADER_TYPE = $8B4F;
692 GL_DELETE_STATUS = $8B80;
693 GL_LINK_STATUS = $8B82;
694 GL_VALIDATE_STATUS = $8B83;
695 GL_ATTACHED_SHADERS = $8B85;
696 GL_ACTIVE_UNIFORMS = $8B86;
697 GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
698 GL_ACTIVE_ATTRIBUTES = $8B89;
699 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
700 GL_SHADING_LANGUAGE_VERSION = $8B8C;
701 GL_CURRENT_PROGRAM = $8B8D;
704 GL_INCR_WRAP = $8507;
705 GL_DECR_WRAP = $8508;
708 GL_TEXTURE_CUBE_MAP = $8513;
709 GL_TEXTURE_BINDING_CUBE_MAP = $8514;
710 GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
711 GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
712 GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
713 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
714 GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
715 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
716 GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
719 GL_MIRRORED_REPEAT = $8370;
722 GL_FLOAT_VEC2 = $8B50;
723 GL_FLOAT_VEC3 = $8B51;
724 GL_FLOAT_VEC4 = $8B52;
729 GL_BOOL_VEC2 = $8B57;
730 GL_BOOL_VEC3 = $8B58;
731 GL_BOOL_VEC4 = $8B59;
732 GL_FLOAT_MAT2 = $8B5A;
733 GL_FLOAT_MAT3 = $8B5B;
734 GL_FLOAT_MAT4 = $8B5C;
735 GL_SAMPLER_2D = $8B5E;
736 GL_SAMPLER_CUBE = $8B60;
739 GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
740 GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
741 GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
742 GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
743 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
744 GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
745 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
748 GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
749 GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
752 GL_COMPILE_STATUS = $8B81;
753 GL_INFO_LOG_LENGTH = $8B84;
754 GL_SHADER_SOURCE_LENGTH = $8B88;
755 GL_SHADER_COMPILER = $8DFA;
758 GL_SHADER_BINARY_FORMATS = $8DF8;
759 GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
761 { Shader Precision-Specified Types }
762 GL_LOW_FLOAT = $8DF0;
763 GL_MEDIUM_FLOAT = $8DF1;
764 GL_HIGH_FLOAT = $8DF2;
766 GL_MEDIUM_INT = $8DF4;
769 { Framebuffer Object. }
770 GL_FRAMEBUFFER = $8D40;
771 GL_RENDERBUFFER = $8D41;
776 GL_DEPTH_COMPONENT16 = $81A5;
777 GL_STENCIL_INDEX = $1901;
778 GL_STENCIL_INDEX8 = $8D48;
780 GL_RENDERBUFFER_WIDTH = $8D42;
781 GL_RENDERBUFFER_HEIGHT = $8D43;
782 GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
783 GL_RENDERBUFFER_RED_SIZE = $8D50;
784 GL_RENDERBUFFER_GREEN_SIZE = $8D51;
785 GL_RENDERBUFFER_BLUE_SIZE = $8D52;
786 GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
787 GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
788 GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
790 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
791 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
792 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
793 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
795 GL_COLOR_ATTACHMENT0 = $8CE0;
796 GL_DEPTH_ATTACHMENT = $8D00;
797 GL_STENCIL_ATTACHMENT = $8D20;
801 GL_FRAMEBUFFER_COMPLETE = $8CD5;
802 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
803 GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
804 GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = $8CD9;
805 GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
807 GL_FRAMEBUFFER_BINDING = $8CA6;
808 GL_RENDERBUFFER_BINDING = $8CA7;
809 GL_MAX_RENDERBUFFER_SIZE = $84E8;
811 GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
813 { ============================================== OpenGL ES 3.0 ======================================================= }
814 GL_READ_BUFFER = $0C02;
815 GL_UNPACK_ROW_LENGTH = $0CF2;
816 GL_UNPACK_SKIP_ROWS = $0CF3;
817 GL_UNPACK_SKIP_PIXELS = $0CF4;
818 GL_PACK_ROW_LENGTH = $0D02;
819 GL_PACK_SKIP_ROWS = $0D03;
820 GL_PACK_SKIP_PIXELS = $0D04;
828 GL_TEXTURE_BINDING_3D = $806A;
829 GL_UNPACK_SKIP_IMAGES = $806D;
830 GL_UNPACK_IMAGE_HEIGHT = $806E;
831 GL_TEXTURE_3D = $806F;
832 GL_TEXTURE_WRAP_R = $8072;
833 GL_MAX_3D_TEXTURE_SIZE = $8073;
834 GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
835 GL_MAX_ELEMENTS_VERTICES = $80E8;
836 GL_MAX_ELEMENTS_INDICES = $80E9;
837 GL_TEXTURE_MIN_LOD = $813A;
838 GL_TEXTURE_MAX_LOD = $813B;
839 GL_TEXTURE_BASE_LEVEL = $813C;
840 GL_TEXTURE_MAX_LEVEL = $813D;
843 GL_DEPTH_COMPONENT24 = $81A6;
844 GL_MAX_TEXTURE_LOD_BIAS = $84FD;
845 GL_TEXTURE_COMPARE_MODE = $884C;
846 GL_TEXTURE_COMPARE_FUNC = $884D;
847 GL_CURRENT_QUERY = $8865;
848 GL_QUERY_RESULT = $8866;
849 GL_QUERY_RESULT_AVAILABLE = $8867;
850 GL_BUFFER_MAPPED = $88BC;
851 GL_BUFFER_MAP_POINTER = $88BD;
852 GL_STREAM_READ = $88E1;
853 GL_STREAM_COPY = $88E2;
854 GL_STATIC_READ = $88E5;
855 GL_STATIC_COPY = $88E6;
856 GL_DYNAMIC_READ = $88E9;
857 GL_DYNAMIC_COPY = $88EA;
858 GL_MAX_DRAW_BUFFERS = $8824;
859 GL_DRAW_BUFFER0 = $8825;
860 GL_DRAW_BUFFER1 = $8826;
861 GL_DRAW_BUFFER2 = $8827;
862 GL_DRAW_BUFFER3 = $8828;
863 GL_DRAW_BUFFER4 = $8829;
864 GL_DRAW_BUFFER5 = $882A;
865 GL_DRAW_BUFFER6 = $882B;
866 GL_DRAW_BUFFER7 = $882C;
867 GL_DRAW_BUFFER8 = $882D;
868 GL_DRAW_BUFFER9 = $882E;
869 GL_DRAW_BUFFER10 = $882F;
870 GL_DRAW_BUFFER11 = $8830;
871 GL_DRAW_BUFFER12 = $8831;
872 GL_DRAW_BUFFER13 = $8832;
873 GL_DRAW_BUFFER14 = $8833;
874 GL_DRAW_BUFFER15 = $8834;
875 GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
876 GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
877 GL_SAMPLER_3D = $8B5F;
878 GL_SAMPLER_2D_SHADOW = $8B62;
879 GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
880 GL_PIXEL_PACK_BUFFER = $88EB;
881 GL_PIXEL_UNPACK_BUFFER = $88EC;
882 GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
883 GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
884 GL_FLOAT_MAT2x3 = $8B65;
885 GL_FLOAT_MAT2x4 = $8B66;
886 GL_FLOAT_MAT3x2 = $8B67;
887 GL_FLOAT_MAT3x4 = $8B68;
888 GL_FLOAT_MAT4x2 = $8B69;
889 GL_FLOAT_MAT4x3 = $8B6A;
892 GL_SRGB8_ALPHA8 = $8C43;
893 GL_COMPARE_REF_TO_TEXTURE = $884E;
894 GL_MAJOR_VERSION = $821B;
895 GL_MINOR_VERSION = $821C;
896 GL_NUM_EXTENSIONS = $821D;
901 GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
902 GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
903 GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
904 GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
905 GL_MAX_VARYING_COMPONENTS = $8B4B;
906 GL_TEXTURE_2D_ARRAY = $8C1A;
907 GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
908 GL_R11F_G11F_B10F = $8C3A;
909 GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
911 GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
912 GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
913 GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
914 GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
915 GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
916 GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
917 GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
918 GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
919 GL_RASTERIZER_DISCARD = $8C89;
920 GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
921 GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
922 GL_INTERLEAVED_ATTRIBS = $8C8C;
923 GL_SEPARATE_ATTRIBS = $8C8D;
924 GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
925 GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
938 GL_RED_INTEGER = $8D94;
939 GL_RGB_INTEGER = $8D98;
940 GL_RGBA_INTEGER = $8D99;
941 GL_SAMPLER_2D_ARRAY = $8DC1;
942 GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
943 GL_SAMPLER_CUBE_SHADOW = $8DC5;
944 GL_UNSIGNED_INT_VEC2 = $8DC6;
945 GL_UNSIGNED_INT_VEC3 = $8DC7;
946 GL_UNSIGNED_INT_VEC4 = $8DC8;
947 GL_INT_SAMPLER_2D = $8DCA;
948 GL_INT_SAMPLER_3D = $8DCB;
949 GL_INT_SAMPLER_CUBE = $8DCC;
950 GL_INT_SAMPLER_2D_ARRAY = $8DCF;
951 GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
952 GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
953 GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
954 GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
955 GL_BUFFER_ACCESS_FLAGS = $911F;
956 GL_BUFFER_MAP_LENGTH = $9120;
957 GL_BUFFER_MAP_OFFSET = $9121;
958 GL_DEPTH_COMPONENT32F = $8CAC;
959 GL_DEPTH32F_STENCIL8 = $8CAD;
960 GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
961 GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
962 GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
963 GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
964 GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
965 GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
966 GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
967 GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
968 GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
969 GL_FRAMEBUFFER_DEFAULT = $8218;
970 GL_FRAMEBUFFER_UNDEFINED = $8219;
971 GL_DEPTH_STENCIL_ATTACHMENT = $821A;
972 GL_DEPTH_STENCIL = $84F9;
973 GL_UNSIGNED_INT_24_8 = $84FA;
974 GL_DEPTH24_STENCIL8 = $88F0;
975 GL_UNSIGNED_NORMALIZED = $8C17;
976 GL_DRAW_FRAMEBUFFER_BINDING = $8CA6;
977 GL_READ_FRAMEBUFFER = $8CA8;
978 GL_DRAW_FRAMEBUFFER = $8CA9;
979 GL_READ_FRAMEBUFFER_BINDING = $8CAA;
980 GL_RENDERBUFFER_SAMPLES = $8CAB;
981 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
982 GL_MAX_COLOR_ATTACHMENTS = $8CDF;
983 GL_COLOR_ATTACHMENT1 = $8CE1;
984 GL_COLOR_ATTACHMENT2 = $8CE2;
985 GL_COLOR_ATTACHMENT3 = $8CE3;
986 GL_COLOR_ATTACHMENT4 = $8CE4;
987 GL_COLOR_ATTACHMENT5 = $8CE5;
988 GL_COLOR_ATTACHMENT6 = $8CE6;
989 GL_COLOR_ATTACHMENT7 = $8CE7;
990 GL_COLOR_ATTACHMENT8 = $8CE8;
991 GL_COLOR_ATTACHMENT9 = $8CE9;
992 GL_COLOR_ATTACHMENT10 = $8CEA;
993 GL_COLOR_ATTACHMENT11 = $8CEB;
994 GL_COLOR_ATTACHMENT12 = $8CEC;
995 GL_COLOR_ATTACHMENT13 = $8CED;
996 GL_COLOR_ATTACHMENT14 = $8CEE;
997 GL_COLOR_ATTACHMENT15 = $8CEF;
998 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
999 GL_MAX_SAMPLES = $8D57;
1000 GL_HALF_FLOAT = $140B;
1001 GL_MAP_READ_BIT = $0001;
1002 GL_MAP_WRITE_BIT = $0002;
1003 GL_MAP_INVALIDATE_RANGE_BIT = $0004;
1004 GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
1005 GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
1006 GL_MAP_UNSYNCHRONIZED_BIT = $0020;
1008 GL_RG_INTEGER = $8228;
1027 GL_VERTEX_ARRAY_BINDING = $85B5;
1028 GL_R8_SNORM = $8F94;
1029 GL_RG8_SNORM = $8F95;
1030 GL_RGB8_SNORM = $8F96;
1031 GL_RGBA8_SNORM = $8F97;
1032 GL_SIGNED_NORMALIZED = $8F9C;
1033 GL_PRIMITIVE_RESTART_FIXED_INDEX = $8D69;
1034 GL_COPY_READ_BUFFER = $8F36;
1035 GL_COPY_WRITE_BUFFER = $8F37;
1036 GL_COPY_READ_BUFFER_BINDING = $8F36;
1037 GL_COPY_WRITE_BUFFER_BINDING = $8F37;
1038 GL_UNIFORM_BUFFER = $8A11;
1039 GL_UNIFORM_BUFFER_BINDING = $8A28;
1040 GL_UNIFORM_BUFFER_START = $8A29;
1041 GL_UNIFORM_BUFFER_SIZE = $8A2A;
1042 GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
1043 GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
1044 GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
1045 GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
1046 GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
1047 GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
1048 GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
1049 GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
1050 GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
1051 GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
1052 GL_UNIFORM_TYPE = $8A37;
1053 GL_UNIFORM_SIZE = $8A38;
1054 GL_UNIFORM_NAME_LENGTH = $8A39;
1055 GL_UNIFORM_BLOCK_INDEX = $8A3A;
1056 GL_UNIFORM_OFFSET = $8A3B;
1057 GL_UNIFORM_ARRAY_STRIDE = $8A3C;
1058 GL_UNIFORM_MATRIX_STRIDE = $8A3D;
1059 GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
1060 GL_UNIFORM_BLOCK_BINDING = $8A3F;
1061 GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
1062 GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
1063 GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
1064 GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
1065 GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
1066 GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
1067 GL_INVALID_INDEX = $FFFFFFFF;
1068 GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
1069 GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
1070 GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
1071 GL_OBJECT_TYPE = $9112;
1072 GL_SYNC_CONDITION = $9113;
1073 GL_SYNC_STATUS = $9114;
1074 GL_SYNC_FLAGS = $9115;
1075 GL_SYNC_FENCE = $9116;
1076 GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
1077 GL_UNSIGNALED = $9118;
1078 GL_SIGNALED = $9119;
1079 GL_ALREADY_SIGNALED = $911A;
1080 GL_TIMEOUT_EXPIRED = $911B;
1081 GL_CONDITION_SATISFIED = $911C;
1082 GL_WAIT_FAILED = $911D;
1083 GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
1084 GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
1085 GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
1086 GL_ANY_SAMPLES_PASSED = $8C2F;
1087 GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
1088 GL_SAMPLER_BINDING = $8919;
1089 GL_RGB10_A2UI = $906F;
1090 GL_TEXTURE_SWIZZLE_R = $8E42;
1091 GL_TEXTURE_SWIZZLE_G = $8E43;
1092 GL_TEXTURE_SWIZZLE_B = $8E44;
1093 GL_TEXTURE_SWIZZLE_A = $8E45;
1096 GL_INT_2_10_10_10_REV = $8D9F;
1097 GL_TRANSFORM_FEEDBACK = $8E22;
1098 GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
1099 GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
1100 GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
1101 GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
1102 GL_PROGRAM_BINARY_LENGTH = $8741;
1103 GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
1104 GL_PROGRAM_BINARY_FORMATS = $87FF;
1105 GL_COMPRESSED_R11_EAC = $9270;
1106 GL_COMPRESSED_SIGNED_R11_EAC = $9271;
1107 GL_COMPRESSED_RG11_EAC = $9272;
1108 GL_COMPRESSED_SIGNED_RG11_EAC = $9273;
1109 GL_COMPRESSED_RGB8_ETC2 = $9274;
1110 GL_COMPRESSED_SRGB8_ETC2 = $9275;
1111 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
1112 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
1113 GL_COMPRESSED_RGBA8_ETC2_EAC = $9278;
1114 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
1115 GL_TEXTURE_IMMUTABLE_FORMAT = $912F;
1116 GL_MAX_ELEMENT_INDEX = $8D6B;
1117 GL_NUM_SAMPLE_COUNTS = $9380;
1118 GL_TEXTURE_IMMUTABLE_LEVELS = $82DF;
1120 { ============================================== OpenGL ES 3.1 ======================================================= }
1121 GL_COMPUTE_SHADER = $91B9;
1122 GL_MAX_COMPUTE_UNIFORM_BLOCKS = $91BB;
1123 GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
1124 GL_MAX_COMPUTE_IMAGE_UNIFORMS = $91BD;
1125 GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
1126 GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
1127 GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
1128 GL_MAX_COMPUTE_ATOMIC_COUNTERS = $8265;
1129 GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
1130 GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = $90EB;
1131 GL_MAX_COMPUTE_WORK_GROUP_COUNT = $91BE;
1132 GL_MAX_COMPUTE_WORK_GROUP_SIZE = $91BF;
1133 GL_COMPUTE_WORK_GROUP_SIZE = $8267;
1134 GL_DISPATCH_INDIRECT_BUFFER = $90EE;
1135 GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
1136 GL_COMPUTE_SHADER_BIT = $00000020;
1137 GL_DRAW_INDIRECT_BUFFER = $8F3F;
1138 GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
1139 GL_MAX_UNIFORM_LOCATIONS = $826E;
1140 GL_FRAMEBUFFER_DEFAULT_WIDTH = $9310;
1141 GL_FRAMEBUFFER_DEFAULT_HEIGHT = $9311;
1142 GL_FRAMEBUFFER_DEFAULT_SAMPLES = $9313;
1143 GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
1144 GL_MAX_FRAMEBUFFER_WIDTH = $9315;
1145 GL_MAX_FRAMEBUFFER_HEIGHT = $9316;
1146 GL_MAX_FRAMEBUFFER_SAMPLES = $9318;
1148 GL_UNIFORM_BLOCK = $92E2;
1149 GL_PROGRAM_INPUT = $92E3;
1150 GL_PROGRAM_OUTPUT = $92E4;
1151 GL_BUFFER_VARIABLE = $92E5;
1152 GL_SHADER_STORAGE_BLOCK = $92E6;
1153 GL_ATOMIC_COUNTER_BUFFER = $92C0;
1154 GL_TRANSFORM_FEEDBACK_VARYING = $92F4;
1155 GL_ACTIVE_RESOURCES = $92F5;
1156 GL_MAX_NAME_LENGTH = $92F6;
1157 GL_MAX_NUM_ACTIVE_VARIABLES = $92F7;
1158 GL_NAME_LENGTH = $92F9;
1160 GL_ARRAY_SIZE = $92FB;
1162 GL_BLOCK_INDEX = $92FD;
1163 GL_ARRAY_STRIDE = $92FE;
1164 GL_MATRIX_STRIDE = $92FF;
1165 GL_IS_ROW_MAJOR = $9300;
1166 GL_ATOMIC_COUNTER_BUFFER_INDEX = $9301;
1167 GL_BUFFER_BINDING = $9302;
1168 GL_BUFFER_DATA_SIZE = $9303;
1169 GL_NUM_ACTIVE_VARIABLES = $9304;
1170 GL_ACTIVE_VARIABLES = $9305;
1171 GL_REFERENCED_BY_VERTEX_SHADER = $9306;
1172 GL_REFERENCED_BY_FRAGMENT_SHADER = $930A;
1173 GL_REFERENCED_BY_COMPUTE_SHADER = $930B;
1174 GL_TOP_LEVEL_ARRAY_SIZE = $930C;
1175 GL_TOP_LEVEL_ARRAY_STRIDE = $930D;
1176 GL_LOCATION = $930E;
1177 GL_VERTEX_SHADER_BIT = $00000001;
1178 GL_FRAGMENT_SHADER_BIT = $00000002;
1179 GL_ALL_SHADER_BITS = $FFFFFFFF;
1180 GL_PROGRAM_SEPARABLE = $8258;
1181 GL_ACTIVE_PROGRAM = $8259;
1182 GL_PROGRAM_PIPELINE_BINDING = $825A;
1183 GL_ATOMIC_COUNTER_BUFFER_BINDING = $92C1;
1184 GL_ATOMIC_COUNTER_BUFFER_START = $92C2;
1185 GL_ATOMIC_COUNTER_BUFFER_SIZE = $92C3;
1186 GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
1187 GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
1188 GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
1189 GL_MAX_VERTEX_ATOMIC_COUNTERS = $92D2;
1190 GL_MAX_FRAGMENT_ATOMIC_COUNTERS = $92D6;
1191 GL_MAX_COMBINED_ATOMIC_COUNTERS = $92D7;
1192 GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
1193 GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
1194 GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = $92D9;
1195 GL_UNSIGNED_INT_ATOMIC_COUNTER = $92DB;
1196 GL_MAX_IMAGE_UNITS = $8F38;
1197 GL_MAX_VERTEX_IMAGE_UNIFORMS = $90CA;
1198 GL_MAX_FRAGMENT_IMAGE_UNIFORMS = $90CE;
1199 GL_MAX_COMBINED_IMAGE_UNIFORMS = $90CF;
1200 GL_IMAGE_BINDING_NAME = $8F3A;
1201 GL_IMAGE_BINDING_LEVEL = $8F3B;
1202 GL_IMAGE_BINDING_LAYERED = $8F3C;
1203 GL_IMAGE_BINDING_LAYER = $8F3D;
1204 GL_IMAGE_BINDING_ACCESS = $8F3E;
1205 GL_IMAGE_BINDING_FORMAT = $906E;
1206 GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
1207 GL_ELEMENT_ARRAY_BARRIER_BIT = $00000002;
1208 GL_UNIFORM_BARRIER_BIT = $00000004;
1209 GL_TEXTURE_FETCH_BARRIER_BIT = $00000008;
1210 GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
1211 GL_COMMAND_BARRIER_BIT = $00000040;
1212 GL_PIXEL_BUFFER_BARRIER_BIT = $00000080;
1213 GL_TEXTURE_UPDATE_BARRIER_BIT = $00000100;
1214 GL_BUFFER_UPDATE_BARRIER_BIT = $00000200;
1215 GL_FRAMEBUFFER_BARRIER_BIT = $00000400;
1216 GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
1217 GL_ATOMIC_COUNTER_BARRIER_BIT = $00001000;
1218 GL_ALL_BARRIER_BITS = $FFFFFFFF;
1219 GL_IMAGE_2D = $904D;
1220 GL_IMAGE_3D = $904E;
1221 GL_IMAGE_CUBE = $9050;
1222 GL_IMAGE_2D_ARRAY = $9053;
1223 GL_INT_IMAGE_2D = $9058;
1224 GL_INT_IMAGE_3D = $9059;
1225 GL_INT_IMAGE_CUBE = $905B;
1226 GL_INT_IMAGE_2D_ARRAY = $905E;
1227 GL_UNSIGNED_INT_IMAGE_2D = $9063;
1228 GL_UNSIGNED_INT_IMAGE_3D = $9064;
1229 GL_UNSIGNED_INT_IMAGE_CUBE = $9066;
1230 GL_UNSIGNED_INT_IMAGE_2D_ARRAY = $9069;
1231 GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
1232 GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
1233 GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
1234 GL_READ_ONLY = $88B8;
1235 GL_WRITE_ONLY = $88B9;
1236 GL_READ_WRITE = $88BA;
1237 GL_SHADER_STORAGE_BUFFER = $90D2;
1238 GL_SHADER_STORAGE_BUFFER_BINDING = $90D3;
1239 GL_SHADER_STORAGE_BUFFER_START = $90D4;
1240 GL_SHADER_STORAGE_BUFFER_SIZE = $90D5;
1241 GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
1242 GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
1243 GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
1244 GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
1245 GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
1246 GL_MAX_SHADER_STORAGE_BLOCK_SIZE = $90DE;
1247 GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
1248 GL_SHADER_STORAGE_BARRIER_BIT = $00002000;
1249 GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = $8F39;
1250 GL_DEPTH_STENCIL_TEXTURE_MODE = $90EA;
1251 GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
1252 GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
1253 GL_SAMPLE_POSITION = $8E50;
1254 GL_SAMPLE_MASK = $8E51;
1255 GL_SAMPLE_MASK_VALUE = $8E52;
1256 GL_TEXTURE_2D_MULTISAMPLE = $9100;
1257 GL_MAX_SAMPLE_MASK_WORDS = $8E59;
1258 GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
1259 GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
1260 GL_MAX_INTEGER_SAMPLES = $9110;
1261 GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
1262 GL_TEXTURE_SAMPLES = $9106;
1263 GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
1264 GL_TEXTURE_WIDTH = $1000;
1265 GL_TEXTURE_HEIGHT = $1001;
1266 GL_TEXTURE_DEPTH = $8071;
1267 GL_TEXTURE_INTERNAL_FORMAT = $1003;
1268 GL_TEXTURE_RED_SIZE = $805C;
1269 GL_TEXTURE_GREEN_SIZE = $805D;
1270 GL_TEXTURE_BLUE_SIZE = $805E;
1271 GL_TEXTURE_ALPHA_SIZE = $805F;
1272 GL_TEXTURE_DEPTH_SIZE = $884A;
1273 GL_TEXTURE_STENCIL_SIZE = $88F1;
1274 GL_TEXTURE_SHARED_SIZE = $8C3F;
1275 GL_TEXTURE_RED_TYPE = $8C10;
1276 GL_TEXTURE_GREEN_TYPE = $8C11;
1277 GL_TEXTURE_BLUE_TYPE = $8C12;
1278 GL_TEXTURE_ALPHA_TYPE = $8C13;
1279 GL_TEXTURE_DEPTH_TYPE = $8C16;
1280 GL_TEXTURE_COMPRESSED = $86A1;
1281 GL_SAMPLER_2D_MULTISAMPLE = $9108;
1282 GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
1283 GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
1284 GL_VERTEX_ATTRIB_BINDING = $82D4;
1285 GL_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D5;
1286 GL_VERTEX_BINDING_DIVISOR = $82D6;
1287 GL_VERTEX_BINDING_OFFSET = $82D7;
1288 GL_VERTEX_BINDING_STRIDE = $82D8;
1289 GL_VERTEX_BINDING_BUFFER = $8F4F;
1290 GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
1291 GL_MAX_VERTEX_ATTRIB_BINDINGS = $82DA;
1292 GL_MAX_VERTEX_ATTRIB_STRIDE = $82E5;
1295 { ============================================== OpenGL ES 1.0 ======================================================= }
1296 { Available only in Common profile }
1297 TglAlphaFunc = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1298 TglClearColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1299 TglClearDepthf = procedure(aDepth: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1300 TglClipPlanef = procedure(aPlane: GLenum; const aEquation: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1301 TglColor4f = procedure(aRed: GLfloat; aGreen: GLfloat; aBlue: GLfloat; aAlpha: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1302 TglDepthRangef = procedure(aZNear: GLclampf; aZFar: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1303 TglFogf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1304 TglFogfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1305 TglFrustumf = procedure(aLeft: GLfloat; aRight: GLfloat; aBottom: GLfloat; aTop: GLfloat; aZNear: GLfloat; aZFar: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1306 TglGetClipPlanef = procedure(aPname: GLenum; aEquation: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1307 TglGetFloatv = procedure(aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1308 TglGetLightfv = procedure(aLight: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1309 TglGetMaterialfv = procedure(aFace: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1310 TglGetTexEnvfv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1311 TglGetTexParameterfv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1312 TglLightModelf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1313 TglLightModelfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1314 TglLightf = procedure(aLight: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1315 TglLightfv = procedure(aLight: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1316 TglLineWidth = procedure(aWidth: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1317 TglLoadMatrixf = procedure(const aMatrix: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1318 TglMaterialf = procedure(aFace: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1319 TglMaterialfv = procedure(aFace: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1320 TglMultMatrixf = procedure(const aMatrix: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1321 TglMultiTexCoord4f = procedure(aTarget: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1322 TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1323 TglOrthof = procedure(aLeft: GLfloat; aRight: GLfloat; aBottom: GLfloat; aTop: GLfloat; aZNear: GLfloat; aZFar: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1324 TglPointParameterf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1325 TglPointParameterfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1326 TglPointSize = procedure(aSize: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1327 TglPolygonOffset = procedure(aFactor: GLfloat; aUnits: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1328 TglRotatef = procedure(aAngle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1329 TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1330 TglTexEnvf = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1331 TglTexEnvfv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1332 TglTexParameterf = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1333 TglTexParameterfv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1334 TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1336 { Available in both Common and Common-Lite profiles }
1337 TglActiveTexture = procedure(aTexture: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1338 TglAlphaFuncx = procedure(aFunc: GLenum; aRef: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1339 TglBindBuffer = procedure(aTarget: GLenum; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1340 TglBindTexture = procedure(aTarget: GLenum; aTexture: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1341 TglBlendFunc = procedure(aSfactor: GLenum; aDfactor: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1342 TglBufferData = procedure(aTarget: GLenum; aSize: PGLsizei; const aData: PGLvoid; aUsage: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1343 TglBufferSubData = procedure(aTarget: GLenum; aOffset: PGLint; aSize: PGLsizei; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1344 TglClear = procedure(aMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1345 TglClearColorx = procedure(aRed: GLclampx; aGreen: GLclampx; aBlue: GLclampx; aAlpha: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1346 TglClearDepthx = procedure(aDepth: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1347 TglClearStencil = procedure(aStencil: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1348 TglClientActiveTexture = procedure(aTexture: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1349 TglClipPlanex = procedure(aPlane: GLenum; const aEquation: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1350 TglColor4ub = procedure(aRed: GLubyte; aGreen: GLubyte; aBlue: GLubyte; aAlpha: GLubyte); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1351 TglColor4x = procedure(aRed: GLfixed; aGreen: GLfixed; aBlue: GLfixed; aAlpha: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1352 TglColorMask = procedure(aRed: GLboolean; aGreen: GLboolean; aBlue: GLboolean; aAlpha: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1353 TglColorPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1354 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}
1355 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}
1356 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}
1357 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}
1358 TglCullFace = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1359 TglDeleteBuffers = procedure(n: GLsizei; const aBuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1360 TglDeleteTextures = procedure(n: GLsizei; const aTextures: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1361 TglDepthFunc = procedure(aFunc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1362 TglDepthMask = procedure(aFlag: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1363 TglDepthRangex = procedure(aZNear: GLclampx; aZFar: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1364 TglDisable = procedure(aCap: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1365 TglDisableClientState = procedure(aArray: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1366 TglDrawArrays = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1367 TglDrawElements = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1368 TglEnable = procedure(aCap: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1369 TglEnableClientState = procedure(aArray: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1370 TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1371 TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1372 TglFogx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1373 TglFogxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1374 TglFrontFace = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1375 TglFrustumx = procedure(aLeft: GLfixed; aRight: GLfixed; aBottom: GLfixed; aTop: GLfixed; aZNear: GLfixed; aZFar: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1376 TglGetBooleanv = procedure(aPname: GLenum; aParams: PGLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1377 TglGetBufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1378 TglGetClipPlanex = procedure(aPname: GLenum; aEquation: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1379 TglGenBuffers = procedure(n: GLsizei; aBuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1380 TglGenTextures = procedure(n: GLsizei; aTextures: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1381 TglGetError = function (): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1382 TglGetFixedv = procedure(aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1383 TglGetIntegerv = procedure(aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1384 TglGetLightxv = procedure(aLight: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1385 TglGetMaterialxv = procedure(aFace: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1386 TglGetPointerv = procedure(aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1387 TglGetString = function (name: GLenum): PGLubyte; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1388 TglGetTexEnviv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1389 TglGetTexEnvxv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1390 TglGetTexParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1391 TglGetTexParameterxv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1392 TglHint = procedure(aTarget: GLenum; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1393 TglIsBuffer = function (aBuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1394 TglIsEnabled = function (aCap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1395 TglIsTexture = function (aTexture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1396 TglLightModelx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1397 TglLightModelxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1398 TglLightx = procedure(aLight: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1399 TglLightxv = procedure(aLight: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1400 TglLineWidthx = procedure(aWidth: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1401 TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1402 TglLoadMatrix = procedure(const aMatrix: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1403 TglLogicOp = procedure(aOpcode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1404 TglMaterialx = procedure(aFace: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1405 TglMaterialxv = procedure(aFace: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1406 TglMatrixMode = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1407 TglMultMatrixx = procedure(const aMatrix: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1408 TglMultiTexCoord4x = procedure(aTarget: GLenum; s: GLfixed; t: GLfixed; r: GLfixed; q: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1409 TglNormal3x = procedure(nx: GLfixed; ny: GLfixed; nz: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1410 TglNormalPointer = procedure(aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1411 TglOrthox = procedure(aLeft: GLfixed; aRight: GLfixed; aBottom: GLfixed; aTop: GLfixed; aZNear: GLfixed; aZFar: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1412 TglPixelStorei = procedure(aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1413 TglPointParameterx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1414 TglPointParameterxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1415 TglPointSizex = procedure(aSize: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1416 TglPolygonOffsetx = procedure(aFactor: GLfixed; aUnits: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1417 TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1418 TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1419 TglReadPixels = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1420 TglRotatex = procedure(aAngle: GLfixed; x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1421 TglSampleCoverage = procedure(aValue: GLclampf; aInvert: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1422 TglSampleCoveragex = procedure(aValue: GLclampx; aInvert: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1423 TglScalex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1424 TglScissor = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1425 TglShadeModel = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1426 TglStencilFunc = procedure(aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1427 TglStencilMask = procedure(aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1428 TglStencilOp = procedure(aFail: GLenum; aZfail: GLenum; aZpass: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1429 TglTexCoordPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1430 TglTexEnvi = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1431 TglTexEnvx = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1432 TglTexEnviv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1433 TglTexEnvxv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1434 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}
1435 TglTexParameteri = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1436 TglTexParameterx = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1437 TglTexParameteriv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1438 TglTexParameterxv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1439 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}
1440 TglTranslatex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1441 TglVertexPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1442 TglViewport = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1444 { ============================================== OpenGL ES 2.0 ======================================================= }
1445 TglAttachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1446 TglBindAttribLocation = procedure(aProgram: GLuint; aIndex: GLuint; const aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1447 TglBindFramebuffer = procedure(aTarget: GLenum; aFramebuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1448 TglBindRenderbuffer = procedure(aTarget: GLenum; aRenderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1449 TglBlendColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1450 TglBlendEquation = procedure( mode : GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1451 TglBlendEquationSeparate = procedure(aModeRGB: GLenum; aModeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1452 TglBlendFuncSeparate = procedure(aSrcRGB: GLenum; aDstRGB: GLenum; aSrcAlpha: GLenum; aDstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1453 TglCheckFramebufferStatus = function (aTarget: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1454 TglCompileShader = procedure(aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1455 TglCreateProgram = function (): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1456 TglCreateShader = function (aType: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1457 TglDeleteFramebuffers = procedure(n: GLsizei; const aFramebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1458 TglDeleteProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1459 TglDeleteRenderbuffers = procedure(n: GLsizei; const aRenderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1460 TglDeleteShader = procedure(aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1461 TglDetachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1462 TglDisableVertexAttribArray = procedure(aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1463 TglEnableVertexAttribArray = procedure(aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1464 TglFramebufferRenderbuffer = procedure(aTarget: GLenum; aAttachment: GLenum; aRenderbuffertarget: GLenum; aRenderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1465 TglFramebufferTexture2D = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1466 TglGenerateMipmap = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1467 TglGenFramebuffers = procedure(n: GLsizei; aFramebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1468 TglGenRenderbuffers = procedure(n: GLsizei; aRenderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1469 TglGetActiveAttrib = procedure(aProgram: GLuint; aIndex: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSize: PGLint; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1470 TglGetActiveUniform = procedure(aProgram: GLuint; aIndex: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSize: PGLint; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1471 TglGetAttachedShaders = procedure(aProgram: GLuint; aMaxcount: GLsizei; aCount: PGLsizei; aShaders: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1472 TglGetAttribLocation = function (aProgram: GLuint; const aName: PGLchar): Integer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1473 TglGetFramebufferAttachmentParameteriv = procedure(aTarget: GLenum; aAttachment: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1474 TglGetProgramiv = procedure(aProgram: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1475 TglGetProgramInfoLog = procedure(aProgram: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aInfolog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1476 TglGetRenderbufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1477 TglGetShaderiv = procedure(aShader: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1478 TglGetShaderInfoLog = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aInfolog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1479 TglGetShaderPrecisionFormat = procedure(aShadertype: GLenum; aPrecisiontype: GLenum; aRange: PGLint; aPrecision: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1480 TglGetShaderSource = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSource: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1481 TglGetUniformfv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1482 TglGetUniformiv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1483 TglGetUniformLocation = function (aProgram: GLuint; const aName: PGLchar): Integer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1484 TglGetVertexAttribfv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1485 TglGetVertexAttribiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1486 TglGetVertexAttribPointerv = procedure(aIndex: GLuint; aPname: GLenum; aPointer: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1487 TglIsFramebuffer = function (aFramebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1488 TglIsProgram = function (aProgram: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1489 TglIsRenderbuffer = function (aRenderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1490 TglIsShader = function (aShader: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1491 TglLinkProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1492 TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1493 TglRenderbufferStorage = procedure(aTarget: GLenum; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1494 TglShaderBinary = procedure(n: GLsizei; const aShaders: PGLuint; aBinaryformat: GLenum; const aBinary: PGLvoid; aLength: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1495 TglShaderSource = procedure(aShader: GLuint; aCount: GLsizei; const aString: PPGLchar; const aLength: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1496 TglStencilFuncSeparate = procedure(aFace: GLenum; aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1497 TglStencilMaskSeparate = procedure(aFace: GLenum; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1498 TglStencilOpSeparate = procedure(aFace: GLenum; aFail: GLenum; aZfail: GLenum; aZpass: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1499 TglUniform1f = procedure(aLocation: GLint; x: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1500 TglUniform1fv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1501 TglUniform1i = procedure(aLocation: GLint; x: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1502 TglUniform1iv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1503 TglUniform2f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1504 TglUniform2fv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1505 TglUniform2i = procedure(aLocation: GLint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1506 TglUniform2iv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1507 TglUniform3f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1508 TglUniform3fv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1509 TglUniform3i = procedure(aLocation: GLint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1510 TglUniform3iv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1511 TglUniform4f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat; z: GLfloat; aW: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1512 TglUniform4fv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1513 TglUniform4i = procedure(aLocation: GLint; x: GLint; y: GLint; z: GLint; aW: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1514 TglUniform4iv = procedure(aLocation: GLint; aCount: GLsizei; const aV: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1515 TglUniformMatrix2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1516 TglUniformMatrix3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1517 TglUniformMatrix4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1518 TglUseProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1519 TglValidateProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1520 TglVertexAttrib1f = procedure(aIndex: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1521 TglVertexAttrib1fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1522 TglVertexAttrib2f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1523 TglVertexAttrib2fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1524 TglVertexAttrib3f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1525 TglVertexAttrib3fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1526 TglVertexAttrib4f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; aW: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1527 TglVertexAttrib4fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1528 TglVertexAttribPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aStride: GLsizei; const aPtr: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1530 { ============================================== OpenGL ES 3.0 ======================================================= }
1531 TglReadBuffer = procedure(aSrc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1532 TglDrawRangeElements = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1533 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}
1534 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}
1535 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}
1536 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}
1537 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}
1538 TglGenQueries = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1539 TglDeleteQueries = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1540 TglIsQuery = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1541 TglBeginQuery = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1542 TglEndQuery = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1543 TglGetQueryiv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1544 TglGetQueryObjectuiv = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1545 TglUnmapBuffer = function (aTarget: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1546 TglGetBufferPointerv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1547 TglDrawBuffers = procedure(n: GLsizei; const aBuffers: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1548 TglUniformMatrix2x3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1549 TglUniformMatrix3x2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1550 TglUniformMatrix2x4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1551 TglUniformMatrix4x2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1552 TglUniformMatrix3x4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1553 TglUniformMatrix4x3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1554 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}
1555 TglRenderbufferStorageMultisample = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1556 TglFramebufferTextureLayer = procedure(aTarget: GLenum; aAttachment: GLenum; aTexture: GLuint; aLevel: GLint; aLayer: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1557 TglMapBufferRange = function (aTarget: GLenum; aOffset: PGLint; aLength: PGLsizei; aAccess: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1558 TglFlushMappedBufferRange = procedure(aTarget: GLenum; aOffset: PGLint; aLength: PGLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1559 TglBindVertexArray = procedure(aArray: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1560 TglDeleteVertexArrays = procedure(n: GLsizei; const aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1561 TglGenVertexArrays = procedure(n: GLsizei; aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1562 TglIsVertexArray = function (aArray: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1563 TglGetIntegeriv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1564 TglBeginTransformFeedback = procedure(aPrimitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1565 TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1566 TglBindBufferRange = procedure(aTarget: GLenum; aIndex: GLuint; aBuffer: GLuint; aOffset: PGLint; aSize: PGLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1567 TglBindBufferBase = procedure(aTarget: GLenum; aIndex: GLuint; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1568 TglTransformFeedbackVaryings = procedure(aProgram: GLuint; aCount: GLsizei; const aVaryings: PPGLchar; aBufferMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1569 TglGetTransformFeedbackVarying = procedure(aProgram: GLuint; aIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aSize: PGLsizei; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1570 TglVertexAttribIPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1571 TglGetVertexAttribIiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1572 TglGetVertexAttribIuiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1573 TglVertexAttribI4i = procedure(aIndex: GLuint; x: GLint; y: GLint; z: GLint; aW: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1574 TglVertexAttribI4ui = procedure(aIndex: GLuint; x: GLuint; y: GLuint; z: GLuint; aW: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1575 TglVertexAttribI4iv = procedure(aIndex: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1576 TglVertexAttribI4uiv = procedure(aIndex: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1577 TglGetUniformuiv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1578 TglGetFragDataLocation = function (aProgram: GLuint; const aName: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1579 TglUniform1ui = procedure(aLocation: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1580 TglUniform2ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1581 TglUniform3ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1582 TglUniform4ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1583 TglUniform1uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1584 TglUniform2uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1585 TglUniform3uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1586 TglUniform4uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1587 TglClearBufferiv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1588 TglClearBufferuiv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1589 TglClearBufferfv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1590 TglClearBufferfi = procedure(aBuffer: GLenum; aDrawbuffer: GLint; aDepth: GLfloat; aStencil: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1591 TglGetStringi = function (aName: GLenum; aIndex: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1592 TglCopyBufferSubData = procedure(aReadTarget: GLenum; aWriteTarget: GLenum; aReadOffset: PGLint; aWriteOffset: PGLint; aSize: PGLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1593 TglGetUniformIndices = procedure(aProgram: GLuint; aUniformCount: GLsizei; const aUniformNames: PPGLchar; aUniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1594 TglGetActiveUniformsiv = procedure(aProgram: GLuint; aUniformCount: GLsizei; const aUniformIndices: PGLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1595 TglGetUniformBlockIndex = function (aProgram: GLuint; const aUniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1596 TglGetActiveUniformBlockiv = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1597 TglGetActiveUniformBlockName = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aUniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1598 TglUniformBlockBinding = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aUniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1599 TglDrawArraysInstanced = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aInstancecount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1600 TglDrawElementsInstanced = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid; aInstancecount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1601 TglFenceSync = function (aCondition: GLenum; aFlags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1602 TglIsSync = function (aSync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1603 TglDeleteSync = procedure(aSync: GLsync); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1604 TglClientWaitSync = function (aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1605 TglWaitSync = procedure(aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1606 TglGetInteger64v = procedure(aPname: GLenum; aData: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1607 TglGetSynciv = procedure(aSync: GLsync; aPname: GLenum; aBufSize: GLsizei; aLength: PGLsizei; aValues: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1608 TglGetInteger64iv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1609 TglGetBufferParameteri64v = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1610 TglGenSamplers = procedure(aCount: GLsizei; aSamplers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1611 TglDeleteSamplers = procedure(aCount: GLsizei; const aSamplers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1612 TglIsSampler = function (aSampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1613 TglBindSampler = procedure(aUnit: GLuint; aSampler: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1614 TglSamplerParameteri = procedure(aSampler: GLuint; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1615 TglSamplerParameteriv = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1616 TglSamplerParameterf = procedure(aSampler: GLuint; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1617 TglSamplerParameterfv = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1618 TglGetSamplerParameteriv = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1619 TglGetSamplerParameterfv = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1620 TglVertexAttribDivisor = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1621 TglBindTransformFeedback = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1622 TglDeleteTransformFeedbacks = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1623 TglGenTransformFeedbacks = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1624 TglIsTransformFeedback = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1625 TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1626 TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1627 TglGetProgramBinary = procedure(aProgram: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aBinaryFormat: PGLenum; aBinary: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1628 TglProgramBinary = procedure(aProgram: GLuint; aBinaryFormat: GLenum; const aBinary: PGLvoid; aLength: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1629 TglProgramParameteri = procedure(aProgram: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1630 TglInvalidateFramebuffer = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1631 TglInvalidateSubFramebuffer = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1632 TglTexStorage2D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1633 TglTexStorage3D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1634 TglGetInternalformativ = procedure(aTarget: GLenum; aInternalformat: GLenum; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1636 { ============================================== OpenGL ES 3.1 ======================================================= }
1637 TglDispatchCompute = procedure(aNumGroupsX: GLuint; aNumGroupsY: GLuint; aNumGroupsZ: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1638 TglDispatchComputeIndirect = procedure(aIndirect: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1639 TglDrawArraysIndirect = procedure(aMode: GLenum; const aIndirect: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1640 TglDrawElementsIndirect = procedure(aMode: GLenum; aType: GLenum; const aIndirect: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1641 TglFramebufferParameteri = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1642 TglGetFramebufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1643 TglGetProgramInterfaceiv = procedure(aProgram: GLuint; aProgramInterface: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1644 TglGetProgramResourceIndex = function (aProgram: GLuint; aProgramInterface: GLenum; const aName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1645 TglGetProgramResourceName = procedure(aProgram: GLuint; aProgramInterface: GLenum; aIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1646 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}
1647 TglGetProgramResourceLocation = function (aProgram: GLuint; aProgramInterface: GLenum; const aName: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1648 TglUseProgramStages = procedure(aPipeline: GLuint; aStages: GLbitfield; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1649 TglActiveShaderProgram = procedure(aPipeline: GLuint; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1650 TglCreateShaderProgramv = function (aType: GLenum; aCount: GLsizei; const aStrings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1651 TglBindProgramPipeline = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1652 TglDeleteProgramPipelines = procedure(aN: GLsizei; const aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1653 TglGenProgramPipelines = procedure(aN: GLsizei; aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1654 TglIsProgramPipeline = function (aPipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1655 TglGetProgramPipelineiv = procedure(aPipeline: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1656 TglProgramUniform1i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1657 TglProgramUniform2i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1658 TglProgramUniform3i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1659 TglProgramUniform4i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1660 TglProgramUniform1ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1661 TglProgramUniform2ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1662 TglProgramUniform3ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1663 TglProgramUniform4ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1664 TglProgramUniform1f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1665 TglProgramUniform2f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1666 TglProgramUniform3f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1667 TglProgramUniform4f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1668 TglProgramUniform1iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1669 TglProgramUniform2iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1670 TglProgramUniform3iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1671 TglProgramUniform4iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1672 TglProgramUniform1uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1673 TglProgramUniform2uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1674 TglProgramUniform3uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1675 TglProgramUniform4uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1676 TglProgramUniform1fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1677 TglProgramUniform2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1678 TglProgramUniform3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1679 TglProgramUniform4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1680 TglProgramUniformMatrix2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1681 TglProgramUniformMatrix3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1682 TglProgramUniformMatrix4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1683 TglProgramUniformMatrix2x3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1684 TglProgramUniformMatrix3x2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1685 TglProgramUniformMatrix2x4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1686 TglProgramUniformMatrix4x2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1687 TglProgramUniformMatrix3x4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1688 TglProgramUniformMatrix4x3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1689 TglValidateProgramPipeline = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1690 TglGetProgramPipelineInfoLog = procedure(aPipeline: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aInfoLog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1691 TglBindImageTexture = procedure(aUnit: GLuint; aTexture: GLuint; aLevel: GLint; aLayered: GLboolean; aLayer: GLint; aAccess: GLenum; aFormat: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1692 TglGetBooleaniv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1693 TglMemoryBarrier = procedure(aBarriers: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1694 TglMemoryBarrierByRegion = procedure(aBarriers: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1695 TglTexStorage2DMultisample = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aFixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1696 TglGetMultisamplefv = procedure(aPname: GLenum; aIndex: GLuint; aVal: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1697 TglSampleMaski = procedure(aMaskNumber: GLuint; aMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1698 TglGetTexLevelParameteriv = procedure(aTarget: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1699 TglGetTexLevelParameterfv = procedure(aTarget: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1700 TglBindVertexBuffer = procedure(aBindingindex: GLuint; aBuffer: GLuint; aOffset: PGLint; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1701 TglVertexAttribFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1702 TglVertexAttribIFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1703 TglVertexAttribBinding = procedure(aAttribindex: GLuint; aBindingindex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1704 TglVertexBindingDivisor = procedure(aBindingindex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
1707 { ============================================== OpenGL ES 1.0 ======================================================= }
1708 { Available only in Common profile }
1709 glAlphaFunc: TglAlphaFunc;
1710 glClearColor: TglClearColor;
1711 glClearDepthf: TglClearDepthf;
1712 glClipPlanef: TglClipPlanef;
1713 glColor4f: TglColor4f;
1714 glDepthRangef: TglDepthRangef;
1717 glFrustumf: TglFrustumf;
1718 glGetClipPlanef: TglGetClipPlanef;
1719 glGetFloatv: TglGetFloatv;
1720 glGetLightfv: TglGetLightfv;
1721 glGetMaterialfv: TglGetMaterialfv;
1722 glGetTexEnvfv: TglGetTexEnvfv;
1723 glGetTexParameterfv: TglGetTexParameterfv;
1724 glLightModelf: TglLightModelf;
1725 glLightModelfv: TglLightModelfv;
1726 glLightf: TglLightf;
1727 glLightfv: TglLightfv;
1728 glLineWidth: TglLineWidth;
1729 glLoadMatrixf: TglLoadMatrixf;
1730 glMaterialf: TglMaterialf;
1731 glMaterialfv: TglMaterialfv;
1732 glMultMatrixf: TglMultMatrixf;
1733 glMultiTexCoord4f: TglMultiTexCoord4f;
1734 glNormal3f: TglNormal3f;
1735 glOrthof: TglOrthof;
1736 glPointParameterf: TglPointParameterf;
1737 glPointParameterfv: TglPointParameterfv;
1738 glPointSize: TglPointSize;
1739 glPolygonOffset: TglPolygonOffset;
1740 glRotatef: TglRotatef;
1741 glScalef: TglScalef;
1742 glTexEnvf: TglTexEnvf;
1743 glTexEnvfv: TglTexEnvfv;
1744 glTexParameterf: TglTexParameterf;
1745 glTexParameterfv: TglTexParameterfv;
1746 glTranslatef: TglTranslatef;
1748 { Available in both Common and Common-Lite profiles }
1749 glActiveTexture: TglActiveTexture;
1750 glAlphaFuncx: TglAlphaFuncx;
1751 glBindBuffer: TglBindBuffer;
1752 glBindTexture: TglBindTexture;
1753 glBlendFunc: TglBlendFunc;
1754 glBufferData: TglBufferData;
1755 glBufferSubData: TglBufferSubData;
1757 glClearColorx: TglClearColorx;
1758 glClearDepthx: TglClearDepthx;
1759 glClearStencil: TglClearStencil;
1760 glClientActiveTexture: TglClientActiveTexture;
1761 glClipPlanex: TglClipPlanex;
1762 glColor4ub: TglColor4ub;
1763 glColor4x: TglColor4x;
1764 glColorMask: TglColorMask;
1765 glColorPointer: TglColorPointer;
1766 glCompressedTexImage2D: TglCompressedTexImage2D;
1767 glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
1768 glCopyTexImage2D: TglCopyTexImage2D;
1769 glCopyTexSubImage2D: TglCopyTexSubImage2D;
1770 glCullFace: TglCullFace;
1771 glDeleteBuffers: TglDeleteBuffers;
1772 glDeleteTextures: TglDeleteTextures;
1773 glDepthFunc: TglDepthFunc;
1774 glDepthMask: TglDepthMask;
1775 glDepthRangex: TglDepthRangex;
1776 glDisable: TglDisable;
1777 glDisableClientState: TglDisableClientState;
1778 glDrawArrays: TglDrawArrays;
1779 glDrawElements: TglDrawElements;
1780 glEnable: TglEnable;
1781 glEnableClientState: TglEnableClientState;
1782 glFinish: TglFinish;
1786 glFrontFace: TglFrontFace;
1787 glFrustumx: TglFrustumx;
1788 glGetBooleanv: TglGetBooleanv;
1789 glGetBufferParameteriv: TglGetBufferParameteriv;
1790 glGetClipPlanex: TglGetClipPlanex;
1791 glGenBuffers: TglGenBuffers;
1792 glGenTextures: TglGenTextures;
1793 glGetError: TglGetError;
1794 glGetFixedv: TglGetFixedv;
1795 glGetIntegerv: TglGetIntegerv;
1796 glGetLightxv: TglGetLightxv;
1797 glGetMaterialxv: TglGetMaterialxv;
1798 glGetPointerv: TglGetPointerv;
1799 glGetString: TglGetString;
1800 glGetTexEnviv: TglGetTexEnviv;
1801 glGetTexEnvxv: TglGetTexEnvxv;
1802 glGetTexParameteriv: TglGetTexParameteriv;
1803 glGetTexParameterxv: TglGetTexParameterxv;
1805 glIsBuffer: TglIsBuffer;
1806 glIsEnabled: TglIsEnabled;
1807 glIsTexture: TglIsTexture;
1808 glLightModelx: TglLightModelx;
1809 glLightModelxv: TglLightModelxv;
1810 glLightx: TglLightx;
1811 glLightxv: TglLightxv;
1812 glLineWidthx: TglLineWidthx;
1813 glLoadIdentity: TglLoadIdentity;
1814 glLoadMatrix: TglLoadMatrix;
1815 glLogicOp: TglLogicOp;
1816 glMaterialx: TglMaterialx;
1817 glMaterialxv: TglMaterialxv;
1818 glMatrixMode: TglMatrixMode;
1819 glMultMatrixx: TglMultMatrixx;
1820 glMultiTexCoord4x: TglMultiTexCoord4x;
1821 glNormal3x: TglNormal3x;
1822 glNormalPointer: TglNormalPointer;
1823 glOrthox: TglOrthox;
1824 glPixelStorei: TglPixelStorei;
1825 glPointParameterx: TglPointParameterx;
1826 glPointParameterxv: TglPointParameterxv;
1827 glPointSizex: TglPointSizex;
1828 glPolygonOffsetx: TglPolygonOffsetx;
1829 glPopMatrix: TglPopMatrix;
1830 glPushMatrix: TglPushMatrix;
1831 glReadPixels: TglReadPixels;
1832 glRotatex: TglRotatex;
1833 glSampleCoverage: TglSampleCoverage;
1834 glSampleCoveragex: TglSampleCoveragex;
1835 glScalex: TglScalex;
1836 glScissor: TglScissor;
1837 glShadeModel: TglShadeModel;
1838 glStencilFunc: TglStencilFunc;
1839 glStencilMask: TglStencilMask;
1840 glStencilOp: TglStencilOp;
1841 glTexCoordPointer: TglTexCoordPointer;
1842 glTexEnvi: TglTexEnvi;
1843 glTexEnvx: TglTexEnvx;
1844 glTexEnviv: TglTexEnviv;
1845 glTexEnvxv: TglTexEnvxv;
1846 glTexImage2D: TglTexImage2D;
1847 glTexParameteri: TglTexParameteri;
1848 glTexParameterx: TglTexParameterx;
1849 glTexParameteriv: TglTexParameteriv;
1850 glTexParameterxv: TglTexParameterxv;
1851 glTexSubImage2D: TglTexSubImage2D;
1852 glTranslatex: TglTranslatex;
1853 glVertexPointer: TglVertexPointer;
1854 glViewport: TglViewport;
1856 { ============================================== OpenGL ES 2.0 ======================================================= }
1857 glAttachShader: TglAttachShader;
1858 glBindAttribLocation: TglBindAttribLocation;
1859 glBindFramebuffer: TglBindFramebuffer;
1860 glBindRenderbuffer: TglBindRenderbuffer;
1861 glBlendColor: TglBlendColor;
1862 glBlendEquation: TglBlendEquation;
1863 glBlendEquationSeparate: TglBlendEquationSeparate;
1864 glBlendFuncSeparate: TglBlendFuncSeparate;
1865 glCheckFramebufferStatus: TglCheckFramebufferStatus;
1866 glCompileShader: TglCompileShader;
1867 glCreateProgram: TglCreateProgram;
1868 glCreateShader: TglCreateShader;
1869 glDeleteFramebuffers: TglDeleteFramebuffers;
1870 glDeleteProgram: TglDeleteProgram;
1871 glDeleteRenderbuffers: TglDeleteRenderbuffers;
1872 glDeleteShader: TglDeleteShader;
1873 glDetachShader: TglDetachShader;
1874 glDisableVertexAttribArray: TglDisableVertexAttribArray;
1875 glEnableVertexAttribArray: TglEnableVertexAttribArray;
1876 glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
1877 glFramebufferTexture2D: TglFramebufferTexture2D;
1878 glGenerateMipmap: TglGenerateMipmap;
1879 glGenFramebuffers: TglGenFramebuffers;
1880 glGenRenderbuffers: TglGenRenderbuffers;
1881 glGetActiveAttrib: TglGetActiveAttrib;
1882 glGetActiveUniform: TglGetActiveUniform;
1883 glGetAttachedShaders: TglGetAttachedShaders;
1884 glGetAttribLocation: TglGetAttribLocation;
1885 glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
1886 glGetProgramiv: TglGetProgramiv;
1887 glGetProgramInfoLog: TglGetProgramInfoLog;
1888 glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
1889 glGetShaderiv: TglGetShaderiv;
1890 glGetShaderInfoLog: TglGetShaderInfoLog;
1891 glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
1892 glGetShaderSource: TglGetShaderSource;
1893 glGetUniformfv: TglGetUniformfv;
1894 glGetUniformiv: TglGetUniformiv;
1895 glGetUniformLocation: TglGetUniformLocation;
1896 glGetVertexAttribfv: TglGetVertexAttribfv;
1897 glGetVertexAttribiv: TglGetVertexAttribiv;
1898 glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
1899 glIsFramebuffer: TglIsFramebuffer;
1900 glIsProgram: TglIsProgram;
1901 glIsRenderbuffer: TglIsRenderbuffer;
1902 glIsShader: TglIsShader;
1903 glLinkProgram: TglLinkProgram;
1904 glReleaseShaderCompiler: TglReleaseShaderCompiler;
1905 glRenderbufferStorage: TglRenderbufferStorage;
1906 glShaderBinary: TglShaderBinary;
1907 glShaderSource: TglShaderSource;
1908 glStencilFuncSeparate: TglStencilFuncSeparate;
1909 glStencilMaskSeparate: TglStencilMaskSeparate;
1910 glStencilOpSeparate: TglStencilOpSeparate;
1911 glUniform1f: TglUniform1f;
1912 glUniform1fv: TglUniform1fv;
1913 glUniform1i: TglUniform1i;
1914 glUniform1iv: TglUniform1iv;
1915 glUniform2f: TglUniform2f;
1916 glUniform2fv: TglUniform2fv;
1917 glUniform2i: TglUniform2i;
1918 glUniform2iv: TglUniform2iv;
1919 glUniform3f: TglUniform3f;
1920 glUniform3fv: TglUniform3fv;
1921 glUniform3i: TglUniform3i;
1922 glUniform3iv: TglUniform3iv;
1923 glUniform4f: TglUniform4f;
1924 glUniform4fv: TglUniform4fv;
1925 glUniform4i: TglUniform4i;
1926 glUniform4iv: TglUniform4iv;
1927 glUniformMatrix2fv: TglUniformMatrix2fv;
1928 glUniformMatrix3fv: TglUniformMatrix3fv;
1929 glUniformMatrix4fv: TglUniformMatrix4fv;
1930 glUseProgram: TglUseProgram;
1931 glValidateProgram: TglValidateProgram;
1932 glVertexAttrib1f: TglVertexAttrib1f;
1933 glVertexAttrib1fv: TglVertexAttrib1fv;
1934 glVertexAttrib2f: TglVertexAttrib2f;
1935 glVertexAttrib2fv: TglVertexAttrib2fv;
1936 glVertexAttrib3f: TglVertexAttrib3f;
1937 glVertexAttrib3fv: TglVertexAttrib3fv;
1938 glVertexAttrib4f: TglVertexAttrib4f;
1939 glVertexAttrib4fv: TglVertexAttrib4fv;
1940 glVertexAttribPointer: TglVertexAttribPointer;
1942 { ============================================== OpenGL ES 3.0 ======================================================= }
1943 glReadBuffer: TglReadBuffer;
1944 glDrawRangeElements: TglDrawRangeElements;
1945 glTexImage3D: TglTexImage3D;
1946 glTexSubImage3D: TglTexSubImage3D;
1947 glCopyTexSubImage3D: TglCopyTexSubImage3D;
1948 glCompressedTexImage3D: TglCompressedTexImage3D;
1949 glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
1950 glGenQueries: TglGenQueries;
1951 glDeleteQueries: TglDeleteQueries;
1952 glIsQuery: TglIsQuery;
1953 glBeginQuery: TglBeginQuery;
1954 glEndQuery: TglEndQuery;
1955 glGetQueryiv: TglGetQueryiv;
1956 glGetQueryObjectuiv: TglGetQueryObjectuiv;
1957 glUnmapBuffer: TglUnmapBuffer;
1958 glGetBufferPointerv: TglGetBufferPointerv;
1959 glDrawBuffers: TglDrawBuffers;
1960 glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
1961 glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
1962 glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
1963 glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
1964 glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
1965 glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
1966 glBlitFramebuffer: TglBlitFramebuffer;
1967 glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
1968 glFramebufferTextureLayer: TglFramebufferTextureLayer;
1969 glMapBufferRange: TglMapBufferRange;
1970 glFlushMappedBufferRange: TglFlushMappedBufferRange;
1971 glBindVertexArray: TglBindVertexArray;
1972 glDeleteVertexArrays: TglDeleteVertexArrays;
1973 glGenVertexArrays: TglGenVertexArrays;
1974 glIsVertexArray: TglIsVertexArray;
1975 glGetIntegeriv: TglGetIntegeriv;
1976 glBeginTransformFeedback: TglBeginTransformFeedback;
1977 glEndTransformFeedback: TglEndTransformFeedback;
1978 glBindBufferRange: TglBindBufferRange;
1979 glBindBufferBase: TglBindBufferBase;
1980 glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
1981 glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
1982 glVertexAttribIPointer: TglVertexAttribIPointer;
1983 glGetVertexAttribIiv: TglGetVertexAttribIiv;
1984 glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
1985 glVertexAttribI4i: TglVertexAttribI4i;
1986 glVertexAttribI4ui: TglVertexAttribI4ui;
1987 glVertexAttribI4iv: TglVertexAttribI4iv;
1988 glVertexAttribI4uiv: TglVertexAttribI4uiv;
1989 glGetUniformuiv: TglGetUniformuiv;
1990 glGetFragDataLocation: TglGetFragDataLocation;
1991 glUniform1ui: TglUniform1ui;
1992 glUniform2ui: TglUniform2ui;
1993 glUniform3ui: TglUniform3ui;
1994 glUniform4ui: TglUniform4ui;
1995 glUniform1uiv: TglUniform1uiv;
1996 glUniform2uiv: TglUniform2uiv;
1997 glUniform3uiv: TglUniform3uiv;
1998 glUniform4uiv: TglUniform4uiv;
1999 glClearBufferiv: TglClearBufferiv;
2000 glClearBufferuiv: TglClearBufferuiv;
2001 glClearBufferfv: TglClearBufferfv;
2002 glClearBufferfi: TglClearBufferfi;
2003 glGetStringi: TglGetStringi;
2004 glCopyBufferSubData: TglCopyBufferSubData;
2005 glGetUniformIndices: TglGetUniformIndices;
2006 glGetActiveUniformsiv: TglGetActiveUniformsiv;
2007 glGetUniformBlockIndex: TglGetUniformBlockIndex;
2008 glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
2009 glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
2010 glUniformBlockBinding: TglUniformBlockBinding;
2011 glDrawArraysInstanced: TglDrawArraysInstanced;
2012 glDrawElementsInstanced: TglDrawElementsInstanced;
2013 glFenceSync: TglFenceSync;
2014 glIsSync: TglIsSync;
2015 glDeleteSync: TglDeleteSync;
2016 glClientWaitSync: TglClientWaitSync;
2017 glWaitSync: TglWaitSync;
2018 glGetInteger64v: TglGetInteger64v;
2019 glGetSynciv: TglGetSynciv;
2020 glGetInteger64iv: TglGetInteger64iv;
2021 glGetBufferParameteri64v: TglGetBufferParameteri64v;
2022 glGenSamplers: TglGenSamplers;
2023 glDeleteSamplers: TglDeleteSamplers;
2024 glIsSampler: TglIsSampler;
2025 glBindSampler: TglBindSampler;
2026 glSamplerParameteri: TglSamplerParameteri;
2027 glSamplerParameteriv: TglSamplerParameteriv;
2028 glSamplerParameterf: TglSamplerParameterf;
2029 glSamplerParameterfv: TglSamplerParameterfv;
2030 glGetSamplerParameteriv: TglGetSamplerParameteriv;
2031 glGetSamplerParameterfv: TglGetSamplerParameterfv;
2032 glVertexAttribDivisor: TglVertexAttribDivisor;
2033 glBindTransformFeedback: TglBindTransformFeedback;
2034 glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
2035 glGenTransformFeedbacks: TglGenTransformFeedbacks;
2036 glIsTransformFeedback: TglIsTransformFeedback;
2037 glPauseTransformFeedback: TglPauseTransformFeedback;
2038 glResumeTransformFeedback: TglResumeTransformFeedback;
2039 glGetProgramBinary: TglGetProgramBinary;
2040 glProgramBinary: TglProgramBinary;
2041 glProgramParameteri: TglProgramParameteri;
2042 glInvalidateFramebuffer: TglInvalidateFramebuffer;
2043 glInvalidateSubFramebuffer: TglInvalidateSubFramebuffer;
2044 glTexStorage2D: TglTexStorage2D;
2045 glTexStorage3D: TglTexStorage3D;
2046 glGetInternalformativ: TglGetInternalformativ;
2048 { ============================================== OpenGL ES 3.1 ======================================================= }
2049 glDispatchCompute: TglDispatchCompute;
2050 glDispatchComputeIndirect: TglDispatchComputeIndirect;
2051 glDrawArraysIndirect: TglDrawArraysIndirect;
2052 glDrawElementsIndirect: TglDrawElementsIndirect;
2053 glFramebufferParameteri: TglFramebufferParameteri;
2054 glGetFramebufferParameteriv: TglGetFramebufferParameteriv;
2055 glGetProgramInterfaceiv: TglGetProgramInterfaceiv;
2056 glGetProgramResourceIndex: TglGetProgramResourceIndex;
2057 glGetProgramResourceName: TglGetProgramResourceName;
2058 glGetProgramResourceiv: TglGetProgramResourceiv;
2059 glGetProgramResourceLocation: TglGetProgramResourceLocation;
2060 glUseProgramStages: TglUseProgramStages;
2061 glActiveShaderProgram: TglActiveShaderProgram;
2062 glCreateShaderProgramv: TglCreateShaderProgramv;
2063 glBindProgramPipeline: TglBindProgramPipeline;
2064 glDeleteProgramPipelines: TglDeleteProgramPipelines;
2065 glGenProgramPipelines: TglGenProgramPipelines;
2066 glIsProgramPipeline: TglIsProgramPipeline;
2067 glGetProgramPipelineiv: TglGetProgramPipelineiv;
2068 glProgramUniform1i: TglProgramUniform1i;
2069 glProgramUniform2i: TglProgramUniform2i;
2070 glProgramUniform3i: TglProgramUniform3i;
2071 glProgramUniform4i: TglProgramUniform4i;
2072 glProgramUniform1ui: TglProgramUniform1ui;
2073 glProgramUniform2ui: TglProgramUniform2ui;
2074 glProgramUniform3ui: TglProgramUniform3ui;
2075 glProgramUniform4ui: TglProgramUniform4ui;
2076 glProgramUniform1f: TglProgramUniform1f;
2077 glProgramUniform2f: TglProgramUniform2f;
2078 glProgramUniform3f: TglProgramUniform3f;
2079 glProgramUniform4f: TglProgramUniform4f;
2080 glProgramUniform1iv: TglProgramUniform1iv;
2081 glProgramUniform2iv: TglProgramUniform2iv;
2082 glProgramUniform3iv: TglProgramUniform3iv;
2083 glProgramUniform4iv: TglProgramUniform4iv;
2084 glProgramUniform1uiv: TglProgramUniform1uiv;
2085 glProgramUniform2uiv: TglProgramUniform2uiv;
2086 glProgramUniform3uiv: TglProgramUniform3uiv;
2087 glProgramUniform4uiv: TglProgramUniform4uiv;
2088 glProgramUniform1fv: TglProgramUniform1fv;
2089 glProgramUniform2fv: TglProgramUniform2fv;
2090 glProgramUniform3fv: TglProgramUniform3fv;
2091 glProgramUniform4fv: TglProgramUniform4fv;
2092 glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
2093 glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
2094 glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
2095 glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
2096 glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
2097 glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
2098 glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
2099 glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
2100 glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
2101 glValidateProgramPipeline: TglValidateProgramPipeline;
2102 glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
2103 glBindImageTexture: TglBindImageTexture;
2104 glGetBooleaniv: TglGetBooleaniv;
2105 glMemoryBarrier: TglMemoryBarrier;
2106 glMemoryBarrierByRegion: TglMemoryBarrierByRegion;
2107 glTexStorage2DMultisample: TglTexStorage2DMultisample;
2108 glGetMultisamplefv: TglGetMultisamplefv;
2109 glSampleMaski: TglSampleMaski;
2110 glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
2111 glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
2112 glBindVertexBuffer: TglBindVertexBuffer;
2113 glVertexAttribFormat: TglVertexAttribFormat;
2114 glVertexAttribIFormat: TglVertexAttribIFormat;
2115 glVertexAttribBinding: TglVertexAttribBinding;
2116 glVertexBindingDivisor: TglVertexBindingDivisor;
2118 { ===================================================== EGL ========================================================== }
2121 EGLboolean = Cardinal;
2123 EGLConfig = Pointer;
2124 EGLContext = Pointer;
2125 EGLDisplay = Pointer;
2126 EGLSurface = Pointer;
2127 EGLClientBuffer = Pointer;
2128 EGLNativeDisplayType = Pointer;
2129 EGLNativePixmapType = Pointer;
2130 EGLNativeWindowType = packed record
2137 PEGLboolean = ^EGLboolean;
2138 PEGLenum = ^EGLenum;
2139 PEGLConfig = ^EGLConfig;
2140 PEGLContext = ^EGLContext;
2141 PEGLDisplay = ^EGLDisplay;
2142 PEGLSurface = ^EGLSurface;
2143 PEGLClientBuffer = ^EGLClientBuffer;
2144 PEGLNativeDisplayType = ^EGLNativeDisplayType;
2145 PEGLNativePixmapType = ^EGLNativePixmapType;
2146 PEGLNativeWindowType = ^EGLNativeWindowType;
2149 EGL_FALSE: EGLboolean = 0;
2150 EGL_TRUE: EGLboolean = 1;
2152 EGL_DEFAULT_DISPLAY: EGLNativeDisplayType = nil;
2153 EGL_NO_CONTEXT: EGLContext = nil;
2154 EGL_NO_DISPLAY: EGLDisplay = nil;
2155 EGL_NO_SURFACE: EGLSurface = nil;
2157 EGL_DONT_CARE: EGLint = -1;
2159 EGL_SUCCESS = $3000;
2160 EGL_NOT_INITIALIZED = $3001;
2161 EGL_BAD_ACCESS = $3002;
2162 EGL_BAD_ALLOC = $3003;
2163 EGL_BAD_ATTRIBUTE = $3004;
2164 EGL_BAD_CONFIG = $3005;
2165 EGL_BAD_CONTEXT = $3006;
2166 EGL_BAD_CURRENT_SURFACE = $3007;
2167 EGL_BAD_DISPLAY = $3008;
2168 EGL_BAD_MATCH = $3009;
2169 EGL_BAD_NATIVE_PIXMAP = $300A;
2170 EGL_BAD_NATIVE_WINDOW = $300B;
2171 EGL_BAD_PARAMETER = $300C;
2172 EGL_BAD_SURFACE = $300D;
2173 EGL_CONTEXT_LOST = $300E;
2175 EGL_BUFFER_SIZE = $3020;
2176 EGL_ALPHA_SIZE = $3021;
2177 EGL_BLUE_SIZE = $3022;
2178 EGL_GREEN_SIZE = $3023;
2179 EGL_RED_SIZE = $3024;
2180 EGL_DEPTH_SIZE = $3025;
2181 EGL_STENCIL_SIZE = $3026;
2182 EGL_CONFIG_CAVEAT = $3027;
2183 EGL_CONFIG_ID = $3028;
2185 EGL_MAX_PBUFFER_HEIGHT = $302A;
2186 EGL_MAX_PBUFFER_PIXELS = $302B;
2187 EGL_MAX_PBUFFER_WIDTH = $302C;
2188 EGL_NATIVE_RENDERABLE = $302D;
2189 EGL_NATIVE_VISUAL_ID = $302E;
2190 EGL_NATIVE_VISUAL_TYPE = $302F;
2191 EGL_SAMPLES = $3031;
2192 EGL_SAMPLE_BUFFERS = $3032;
2193 EGL_SURFACE_TYPE = $3033;
2194 EGL_TRANSPARENT_TYPE = $3034;
2195 EGL_TRANSPARENT_BLUE_VALUE = $3035;
2196 EGL_TRANSPARENT_GREEN_VALUE = $3036;
2197 EGL_TRANSPARENT_RED_VALUE = $3037;
2199 EGL_BIND_TO_TEXTURE_RGB = $3039;
2200 EGL_BIND_TO_TEXTURE_RGBA = $303A;
2201 EGL_MIN_SWAP_INTERVAL = $303B;
2202 EGL_MAX_SWAP_INTERVAL = $303C;
2203 EGL_LUMINANCE_SIZE = $303D;
2204 EGL_ALPHA_MASK_SIZE = $303E;
2205 EGL_COLOR_BUFFER_TYPE = $303F;
2206 EGL_RENDERABLE_TYPE = $3040;
2207 EGL_MATCH_NATIVE_PIXMAP = $3041;
2208 EGL_CONFORMANT = $3042;
2210 EGL_SLOW_CONFIG = $3050;
2211 EGL_NON_CONFORMANT_CONFIG = $3051;
2212 EGL_TRANSPARENT_RGB = $3052;
2213 EGL_RGB_BUFFER = $308E;
2214 EGL_LUMINANCE_BUFFER = $308F;
2216 EGL_NO_TEXTURE = $305C;
2217 EGL_TEXTURE_RGB = $305D;
2218 EGL_TEXTURE_RGBA = $305E;
2219 EGL_TEXTURE_2D = $305F;
2221 EGL_PBUFFER_BIT = $0001;
2222 EGL_PIXMAP_BIT = $0002;
2223 EGL_WINDOW_BIT = $0004;
2224 EGL_VG_COLORSPACE_LINEAR_BIT = $0020;
2225 EGL_VG_ALPHA_FORMAT_PRE_BIT = $0040;
2226 EGL_MULTISAMPLE_RESOLVE_BOX_BIT = $0200;
2227 EGL_SWAP_BEHAVIOR_PRESERVED_BIT = $0400;
2229 EGL_OPENGL_ES_BIT = $0001;
2230 EGL_OPENVG_BIT = $0002;
2231 EGL_OPENGL_ES2_BIT = $0004;
2232 EGL_OPENGL_BIT = $0008;
2235 EGL_VERSION = $3054;
2236 EGL_EXTENSIONS = $3055;
2237 EGL_CLIENT_APIS = $308D;
2241 EGL_LARGEST_PBUFFER = $3058;
2242 EGL_TEXTURE_FORMAT = $3080;
2243 EGL_TEXTURE_TARGET = $3081;
2244 EGL_MIPMAP_TEXTURE = $3082;
2245 EGL_MIPMAP_LEVEL = $3083;
2246 EGL_RENDER_BUFFER = $3086;
2247 EGL_VG_COLORSPACE = $3087;
2248 EGL_VG_ALPHA_FORMAT = $3088;
2249 EGL_HORIZONTAL_RESOLUTION = $3090;
2250 EGL_VERTICAL_RESOLUTION = $3091;
2251 EGL_PIXEL_ASPECT_RATIO = $3092;
2252 EGL_SWAP_BEHAVIOR = $3093;
2253 EGL_MULTISAMPLE_RESOLVE = $3099;
2255 EGL_BACK_BUFFER = $3084;
2256 EGL_SINGLE_BUFFER = $3085;
2258 EGL_VG_COLORSPACE_sRGB = $3089;
2259 EGL_VG_COLORSPACE_LINEAR = $308A;
2261 EGL_VG_ALPHA_FORMAT_NONPRE = $308B;
2262 EGL_VG_ALPHA_FORMAT_PRE = $308C;
2264 EGL_DISPLAY_SCALING = 10000;
2266 EGL_UNKNOWN: EGLint = -1;
2268 EGL_BUFFER_PRESERVED = $3094;
2269 EGL_BUFFER_DESTROYED = $3095;
2271 EGL_OPENVG_IMAGE = $3096;
2273 EGL_CONTEXT_CLIENT_TYPE = $3097;
2275 EGL_CONTEXT_CLIENT_VERSION = $3098;
2277 EGL_MULTISAMPLE_RESOLVE_DEFAULT = $309A;
2278 EGL_MULTISAMPLE_RESOLVE_BOX = $309B;
2280 EGL_OPENGL_ES_API = $30A0;
2281 EGL_OPENVG_API = $30A1;
2282 EGL_OPENGL_API = $30A2;
2287 EGL_CORE_NATIVE_ENGINE = $305B;
2289 EGL_COLORSPACE = EGL_VG_COLORSPACE;
2290 EGL_ALPHA_FORMAT = EGL_VG_ALPHA_FORMAT;
2291 EGL_COLORSPACE_sRGB = EGL_VG_COLORSPACE_sRGB;
2292 EGL_COLORSPACE_LINEAR = EGL_VG_COLORSPACE_LINEAR;
2293 EGL_ALPHA_FORMAT_NONPRE = EGL_VG_ALPHA_FORMAT_NONPRE;
2294 EGL_ALPHA_FORMAT_PRE = EGL_VG_ALPHA_FORMAT_PRE;
2297 TeglGetError = function: EGLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2299 TeglGetDisplay = function(aDisplayID: EGLNativeDisplayType): EGLDisplay; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2300 TeglInitialize = function(aDisplay: EGLDisplay; aMajor, aMinor: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2301 TeglTerminate = function(aDisplay: EGLDisplay): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2303 TeglQueryString = function(aDisplay: EGLDisplay; name: EGLint): PAnsiChar; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2305 TeglGetConfigs = function(aDisplay: EGLDisplay; aConfigs: PEGLConfig; aConfigSize: EGLint; numConfig: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2306 TeglChooseConfig = function(aDisplay: EGLDisplay; const aAttribList: PEGLint; aConfigs: PEGLConfig; aConfigSize: EGLint; numConfig: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2307 TeglGetConfigAttrib = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aAttribute: EGLint; aValue : PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2309 TeglCreateWindowSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aWinType: PEGLNativeWindowType; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2310 TeglCreatePbufferSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2311 TeglCreatePixmapSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aPixmap: EGLNativePixmapType; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2312 TeglDestroySurface = function(aDisplay: EGLDisplay; aSurface: EGLSurface): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2313 TeglQuerySurface = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aAttribute: EGLint; aValue: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2315 TeglBindAPI = function(aApi: EGLenum): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2316 TeglQueryAPI = function: EGLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2318 TeglWaitClient = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2320 TeglReleaseThread = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2322 TeglCreatePbufferFromClientBuffer = function(aDisplay: EGLDisplay; aBufType: EGLenum; aBuffer: EGLClientBuffer; aConfig: EGLConfig; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2324 TeglSurfaceAttrib = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aAttribute: EGLint; aValue: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2325 TeglBindTexImage = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aBuffer: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2326 TeglReleaseTexImage = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aBuffer: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2328 TeglSwapInterval = function(aDisplay: EGLDisplay; aInterval: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2330 TeglCreateContext = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aShareContext: EGLContext; const aAttribList: PEGLint): EGLContext; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2331 TeglDestroyContext = function(aDisplay: EGLDisplay; aContext: EGLContext): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2332 TeglMakeCurrent = function(aDisplay: EGLDisplay; aDraw: EGLSurface; aRead: EGLSurface; aContext: EGLContext): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2334 TeglGetCurrentContext = function: EGLContext; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2335 TeglGetCurrentSurface = function(aReadDraw: EGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2336 TeglGetCurrentDisplay = function: EGLDisplay; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2337 TeglQueryContext = function(aDisplay: EGLDisplay; aContext: EGLContext; aAttribute: EGLint; aValue: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2339 TeglWaitGL = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2340 TeglWaitNative = function(aEngine: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2341 TeglSwapBuffers = function(aDisplay: EGLDisplay; aSurface: EGLSurface): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2342 TeglCopyBuffers = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aTarget: EGLNativePixmapType): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2344 TeglGetProcAddress = function(const aProcName: PAnsiChar): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
2347 eglGetError: TeglGetError;
2349 eglGetDisplay: TeglGetDisplay;
2350 eglInitialize: TeglInitialize;
2351 eglTerminate: TeglTerminate;
2353 eglQueryString: TeglQueryString;
2355 eglGetConfigs: TeglGetConfigs;
2356 eglChooseConfig: TeglChooseConfig;
2357 eglGetConfigAttrib: TeglGetConfigAttrib;
2359 eglCreateWindowSurface: TeglCreateWindowSurface;
2360 eglCreatePbufferSurface: TeglCreatePbufferSurface;
2361 eglCreatePixmapSurface: TeglCreatePixmapSurface;
2362 eglDestroySurface: TeglDestroySurface;
2363 eglQuerySurface: TeglQuerySurface;
2365 eglBindAPI: TeglBindAPI;
2366 eglQueryAPI: TeglQueryAPI;
2368 eglWaitClient: TeglWaitClient;
2370 eglReleaseThread: TeglReleaseThread;
2372 eglCreatePbufferFromClientBuffer: TeglCreatePbufferFromClientBuffer;
2374 eglSurfaceAttrib: TeglSurfaceAttrib;
2375 eglBindTexImage: TeglBindTexImage;
2376 eglReleaseTexImage: TeglReleaseTexImage;
2378 eglSwapInterval: TeglSwapInterval;
2380 eglCreateContext: TeglCreateContext;
2381 eglDestroyContext: TeglDestroyContext;
2382 eglMakeCurrent: TeglMakeCurrent;
2384 eglGetCurrentContext: TeglGetCurrentContext;
2385 eglGetCurrentSurface: TeglGetCurrentSurface;
2386 eglGetCurrentDisplay: TeglGetCurrentDisplay;
2387 eglQueryContext: TeglQueryContext;
2389 eglWaitGL: TeglWaitGL;
2390 eglWaitNative: TeglWaitNative;
2391 eglSwapBuffers: TeglSwapBuffers;
2392 eglCopyBuffers: TeglCopyBuffers;
2394 eglGetProcAddress: TeglGetProcAddress;
2396 { =================================================== DelphiGL ======================================================= }
2398 EdglOpenGLES = class(Exception);
2399 EeglError = class(EdglOpenGLES)
2402 constructor Create(const msg: string; const aErrorCode: EGLint);
2405 TdglRenderContext = packed record
2406 Display: EGLDisplay;
2407 Surface: EGLSurface;
2408 Context: EGLContext;
2411 function InitOpenGLES(const aOpenGLESLibName: String = LIBNAME_OPENGLES; aEGLLibName: String = LIBNAME_EGL): Boolean;
2413 function CreateRenderingContext(const aDisplayType: EGLNativeDisplayType;
2414 const aWindowType: PEGLNativeWindowType;
2415 const aConfigAttribs: PEGLint;
2416 const aContextAttribs: PEGLint): TdglRenderContext;
2417 procedure DestroyRenderingContext(const aContext: TdglRenderContext);
2418 function ActivateRenderingContext(const aContext: TdglRenderContext): Boolean;
2419 function DeactivateRenderingContext(const aContext: TdglRenderContext): Boolean;
2420 procedure SwapBuffers(const aContext: TdglRenderContext);
2422 procedure ReadExtensions;
2427 LibHandleOpenGLES: Pointer = nil;
2428 LibHandleEGL: Pointer = nil;
2430 function dglLoadLibrary(const name: PChar): Pointer;
2433 result := dlopen(name, RTLD_LAZY);
2437 function dglGetProcAddress(const aProcName: PAnsiChar): Pointer;
2441 if Assigned(LibHandleOpenGLES) then
2442 result := dlsym(LibHandleOpenGLES, aProcName);
2444 if not Assigned(result) and Assigned(eglGetProcAddress) then
2445 result := eglGetProcAddress(aProcName);
2447 if not Assigned(result) and Assigned(LibHandleEGL) then
2448 result := dlsym(LibHandleEGL, aProcName);
2451 function dglFreeAndNilLibrary(var aLibHandle: Pointer): Boolean;
2453 if Assigned(aLibHandle) then begin
2455 result := (dlclose(aLibHandle) = 0);
2462 procedure ReadOpenGLCore;
2467 function InitOpenGLES(const aOpenGLESLibName: String; aEGLLibName: String): Boolean;
2471 if Assigned(LibHandleOpenGLES) then
2472 dglFreeAndNilLibrary(LibHandleOpenGLES);
2474 if Assigned(LibHandleEGL) then
2475 dglFreeAndNilLibrary(LibHandleEGL);
2477 LibHandleOpenGLES := dglLoadLibrary(PChar(aOpenGLESLibName));
2478 LibHandleEGL := dglLoadLibrary(PChar(aEGLLibName));
2480 // load EGL procedures
2481 if Assigned(LibHandleEGL) then begin
2482 eglGetProcAddress := dglGetProcAddress('eglGetProcAddress');
2483 eglGetError := dglGetProcAddress('eglGetError');
2484 eglGetDisplay := dglGetProcAddress('eglGetDisplay');
2485 eglInitialize := dglGetProcAddress('eglInitialize');
2486 eglTerminate := dglGetProcAddress('eglTerminate');
2487 eglQueryString := dglGetProcAddress('eglQueryString');
2488 eglGetConfigs := dglGetProcAddress('eglGetConfigs');
2489 eglChooseConfig := dglGetProcAddress('eglChooseConfig');
2490 eglGetConfigAttrib := dglGetProcAddress('eglGetConfigAttrib');
2491 eglCreateWindowSurface := dglGetProcAddress('eglCreateWindowSurface');
2492 eglCreatePbufferSurface := dglGetProcAddress('eglCreatePbufferSurface');
2493 eglCreatePixmapSurface := dglGetProcAddress('eglCreatePixmapSurface');
2494 eglDestroySurface := dglGetProcAddress('eglDestroySurface');
2495 eglQuerySurface := dglGetProcAddress('eglQuerySurface');
2496 eglBindAPI := dglGetProcAddress('eglBindAPI');
2497 eglQueryAPI := dglGetProcAddress('eglQueryAPI');
2498 eglWaitClient := dglGetProcAddress('eglWaitClient');
2499 eglReleaseThread := dglGetProcAddress('eglReleaseThread');
2500 eglCreatePbufferFromClientBuffer := dglGetProcAddress('eglCreatePbufferFromClientBuffer');
2501 eglSurfaceAttrib := dglGetProcAddress('eglSurfaceAttrib');
2502 eglBindTexImage := dglGetProcAddress('eglBindTexImage');
2503 eglReleaseTexImage := dglGetProcAddress('eglReleaseTexImage');
2504 eglSwapInterval := dglGetProcAddress('eglSwapInterval');
2505 eglCreateContext := dglGetProcAddress('eglCreateContext');
2506 eglDestroyContext := dglGetProcAddress('eglDestroyContext');
2507 eglMakeCurrent := dglGetProcAddress('eglMakeCurrent');
2508 eglGetCurrentContext := dglGetProcAddress('eglGetCurrentContext');
2509 eglGetCurrentSurface := dglGetProcAddress('eglGetCurrentSurface');
2510 eglGetCurrentDisplay := dglGetProcAddress('eglGetCurrentDisplay');
2511 eglQueryContext := dglGetProcAddress('eglQueryContext');
2512 eglWaitGL := dglGetProcAddress('eglWaitGL');
2513 eglWaitNative := dglGetProcAddress('eglWaitNative');
2514 eglSwapBuffers := dglGetProcAddress('eglSwapBuffers');
2515 eglCopyBuffers := dglGetProcAddress('eglCopyBuffers');
2520 procedure RaiseEglError(const aMsg: String);
2523 err := eglGetError();
2524 raise EeglError.Create(aMsg + ' ErrorCode: 0x' + IntToHex(err, 8), err);
2527 function CreateRenderingContext(const aDisplayType: EGLNativeDisplayType; const aWindowType: PEGLNativeWindowType;
2528 const aConfigAttribs: PEGLint; const aContextAttribs: PEGLint): TdglRenderContext;
2530 ConfigCount: EGLint;
2533 if (not Assigned(LibHandleOpenGLES) or not Assigned(LibHandleEGL)) and
2534 not InitOpenGLES then
2535 raise EdglOpenGLES.Create('unable to initialize OpenGL library');
2537 result.Display := eglGetDisplay(aDisplayType);
2538 if (result.Display = EGL_NO_DISPLAY) then
2539 RaiseEglError('unable to get display.');
2541 if (eglInitialize(result.Display, nil, nil) <> EGL_TRUE) then
2542 RaiseEglError('unable to initialize egl.');
2544 if (eglChooseConfig(result.Display, aConfigAttribs, @Config, 1, @ConfigCount) <> EGL_TRUE) or
2545 (ConfigCount < 1) then
2546 RaiseEglError('unable to get suitable config.');
2548 if (eglBindAPI(EGL_OPENGL_ES_API) <> EGL_TRUE) then
2549 RaiseEglError('unable to get an appropriate EGL frame buffer configuration.');
2551 result.Surface := eglCreateWindowSurface(result.Display, Config, aWindowType, nil);
2552 if (result.Surface = EGL_NO_SURFACE) then
2553 RaiseEglError('unable to create window surface.');
2555 result.Context := eglCreateContext(result.Display, Config, EGL_NO_CONTEXT, aContextAttribs);
2556 if (result.Context = EGL_NO_CONTEXT) then begin
2557 eglDestroySurface(result.Display, result.Surface);
2558 RaiseEglError('unable to create context.');
2562 procedure DestroyRenderingContext(const aContext: TdglRenderContext);
2564 if (eglGetCurrentContext = aContext.Context) and
2565 not DeactivateRenderingContext(aContext) then
2566 RaiseEglError('unable to unbind context.');
2568 if (eglDestroyContext(aContext.Display, aContext.Context) <> EGL_TRUE) then
2569 RaiseEglError('unable to destory context.');
2571 if (eglDestroySurface(aContext.Display, aContext.Surface) <> EGL_TRUE) then
2572 RaiseEglError('unable to destroy surface.');
2575 function ActivateRenderingContext(const aContext: TdglRenderContext): Boolean;
2577 result := (eglMakeCurrent(aContext.Display, aContext.Surface, aContext.Surface, aContext.Context) = GL_TRUE);
2580 function DeactivateRenderingContext(const aContext: TdglRenderContext): Boolean;
2582 result := (eglMakeCurrent(aContext.Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT) = EGL_TRUE);
2585 procedure SwapBuffers(const aContext: TdglRenderContext);
2587 eglSwapBuffers(aContext.Display, aContext.Surface);
2590 procedure ReadExtensions;
2595 constructor EeglError.Create(const msg: string; const aErrorCode: EGLint);
2597 inherited Create(msg);
2598 ErrorCode := aErrorCode;