{ ============================================================================ OpenGL 4.5 - Headertranslation Version 4.5 Supported environments and targets : - (Linux) FreePascal (1.9.3 and up) ============================================================================== Copyright (C) DGL-OpenGL-Portteam All Rights Reserved Obtained through: - Delphi OpenGL Community(DGL) - www.delphigl.com Converted and maintained by DGL's OpenGL-Portteam : - Bergmann89 - http://www.bergmann89.de ============================================================================== You may retrieve the latest version of this file at the Delphi OpenGL Community home page, located at http://www.delphigl.com/ The contents of this file are used with permission, subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. ============================================================================== } { enable OpenGL ES 1.1 Core functions } {$DEFINE OPENGLES_CORE_1_1} { enable OpenGL ES 2.0 Core functions } {$DEFINE OPENGLES_CORE_2_0} { enable OpenGL ES 3.0 Core functions } {$DEFINE OPENGLES_CORE_3_0} { enable OpenGL ES 3.1 Core functions } {$DEFINE OPENGLES_CORE_3_1} { enable all OpenGL ES extensions } {$DEFINE OPENGLES_EXTENSIONS} unit dglOpenGLES; interface {$IFDEF FPC} {$MODE Delphi} {$ENDIF} // detecting Linux {$IFDEF linux} // Linux {$DEFINE DGL_LINUX} {$ENDIF} //check if system is supported and set system dependent constants uses sysutils {$IFDEF DGL_LINUX} , dl {$ENDIF} ; {$IFDEF DGL_LINUX} const LIBNAME_OPENGLES = 'libGLESv2.so'; LIBNAME_EGL = 'libEGL.so'; {$ELSE} const LIBNAME_OPENGLES = ''; LIBNAME_EGL = ''; {$WARNING 'unknown/unsupported system'} {$ENDIF} { ================================================== OpenGL ES ======================================================= } type { Types } GLbyte = Byte; GLclampf = Single; GLfixed = Integer; GLclampx = Integer; GLshort = ShortInt; GLubyte = Byte; GLushort = Word; GLvoid = Pointer; GLint64 = Int64; GLuint64 = UInt64; GLenum = Cardinal; GLuint = Cardinal; GLchar = AnsiChar; GLbitfield = Cardinal; GLint = Integer; GLintptr = GLint; GLboolean = ByteBool; GLsizei = Integer; GLsizeiptr = GLsizei; GLfloat = Single; GLdouble = Double; { Pointers } PGLbyte = ^GLbyte; PGLclampf = ^GLclampf; PGLfixed = ^GLfixed; PGLshort = ^GLshort; PGLubyte = ^GLubyte; PGLushort = ^GLushort; PGLvoid = Pointer; PPGLvoid = ^PGLvoid; PGLint64 = ^GLint64; PGLuint64 = ^GLuint64; PGLenum = ^GLenum; PGLuint = ^GLuint; PGLchar = ^GLchar; PPGLchar = ^PGLChar; PGLbitfield = ^GLbitfield; PGLint = ^GLint; PGLboolean = ^GLboolean; PGLsizei = ^GLsizei; PGLfloat = ^GLfloat; PGLdouble = ^GLdouble; { Special } GLsync = Pointer; { Cutsom } TGLvectorub2 = array[0..1] of GLubyte; TGLvectorub3 = array[0..2] of GLubyte; TGLvectorub4 = array[0..3] of GLubyte; TGLvectori2 = array[0..1] of GLint; TGLvectori3 = array[0..2] of GLint; TGLvectori4 = array[0..3] of GLint; TGLvectorui2 = array[0..1] of GLuint; TGLvectorui3 = array[0..2] of GLuint; TGLvectorui4 = array[0..3] of GLuint; TGLvectorf2 = array[0..1] of GLfloat; TGLvectorf3 = array[0..2] of GLfloat; TGLvectorf4 = array[0..3] of GLfloat; TGLvectord2 = array[0..1] of GLdouble; TGLvectord3 = array[0..2] of GLdouble; TGLvectord4 = array[0..3] of GLdouble; TGLvectorp2 = array[0..1] of PGLvoid; TGLvectorp3 = array[0..2] of PGLvoid; TGLvectorp4 = array[0..3] of PGLvoid; {$IFDEF OPENGLES_CORE_1_1} const { ============================================== OpenGL ES 1.1 ======================================================= } { ClearBufferMask } GL_DEPTH_BUFFER_BIT = $00000100; GL_STENCIL_BUFFER_BIT = $00000400; GL_COLOR_BUFFER_BIT = $00004000; { Boolean } GL_FALSE = 0; GL_TRUE = 1; { BeginMode } GL_POINTS = $0000; GL_LINES = $0001; GL_LINE_LOOP = $0002; GL_LINE_STRIP = $0003; GL_TRIANGLES = $0004; GL_TRIANGLE_STRIP = $0005; GL_TRIANGLE_FAN = $0006; { AlphaFunction } GL_NEVER = $0200; GL_LESS = $0201; GL_EQUAL = $0202; GL_LEQUAL = $0203; GL_GREATER = $0204; GL_NOTEQUAL = $0205; GL_GEQUAL = $0206; GL_ALWAYS = $0207; { BlendingFactorDest } GL_ZERO = 0; GL_ONE = 1; GL_SRC_COLOR = $0300; GL_ONE_MINUS_SRC_COLOR = $0301; GL_SRC_ALPHA = $0302; GL_ONE_MINUS_SRC_ALPHA = $0303; GL_DST_ALPHA = $0304; GL_ONE_MINUS_DST_ALPHA = $0305; { BlendingFactorSrc } { GL_ZERO } { GL_ONE } GL_DST_COLOR = $0306; GL_ONE_MINUS_DST_COLOR = $0307; GL_SRC_ALPHA_SATURATE = $0308; { GL_SRC_ALPHA } { GL_ONE_MINUS_SRC_ALPHA } { GL_DST_ALPHA } { GL_ONE_MINUS_DST_ALPHA } { ClipPlaneName } GL_CLIP_PLANE0 = $3000; GL_CLIP_PLANE1 = $3001; GL_CLIP_PLANE2 = $3002; GL_CLIP_PLANE3 = $3003; GL_CLIP_PLANE4 = $3004; GL_CLIP_PLANE5 = $3005; { ColorMaterialFace } { GL_FRONT_AND_BACK } { ColorMaterialParameter } { GL_AMBIENT_AND_DIFFUSE } { ColorPointerType } { GL_UNSIGNED_BYTE } { GL_FLOAT } { GL_FIXED } { CullFaceMode } GL_FRONT = $0404; GL_BACK = $0405; GL_FRONT_AND_BACK = $0408; { DepthFunction } { GL_NEVER } { GL_LESS } { GL_EQUAL } { GL_LEQUAL } { GL_GREATER } { GL_NOTEQUAL } { GL_GEQUAL } { GL_ALWAYS } { EnableCap } GL_FOG = $0B60; GL_LIGHTING = $0B50; GL_TEXTURE_2D = $0DE1; GL_CULL_FACE = $0B44; GL_ALPHA_TEST = $0BC0; GL_BLEND = $0BE2; GL_COLOR_LOGIC_OP = $0BF2; GL_DITHER = $0BD0; GL_STENCIL_TEST = $0B90; GL_DEPTH_TEST = $0B71; { GL_LIGHT0 } { GL_LIGHT1 } { GL_LIGHT2 } { GL_LIGHT3 } { GL_LIGHT4 } { GL_LIGHT5 } { GL_LIGHT6 } { GL_LIGHT7 } GL_POINT_SMOOTH = $0B10; GL_LINE_SMOOTH = $0B20; GL_SCISSOR_TEST = $0C11; GL_COLOR_MATERIAL = $0B57; GL_NORMALIZE = $0BA1; GL_RESCALE_NORMAL = $803A; GL_POLYGON_OFFSET_FILL = $8037; GL_VERTEX_ARRAY = $8074; GL_NORMAL_ARRAY = $8075; GL_COLOR_ARRAY = $8076; GL_TEXTURE_COORD_ARRAY = $8078; GL_MULTISAMPLE = $809D; GL_SAMPLE_ALPHA_TO_COVERAGE = $809E; GL_SAMPLE_ALPHA_TO_ONE = $809F; GL_SAMPLE_COVERAGE = $80A0; { ErrorCode } GL_NO_ERROR = 0; GL_INVALID_ENUM = $0500; GL_INVALID_VALUE = $0501; GL_INVALID_OPERATION = $0502; GL_STACK_OVERFLOW = $0503; GL_STACK_UNDERFLOW = $0504; GL_OUT_OF_MEMORY = $0505; { FogMode } { GL_LINEAR } GL_EXP = $0800; GL_EXP2 = $0801; { FogParameter } GL_FOG_DENSITY = $0B62; GL_FOG_START = $0B63; GL_FOG_END = $0B64; GL_FOG_MODE = $0B65; GL_FOG_COLOR = $0B66; { FrontFaceDirection } GL_CW = $0900; GL_CCW = $0901; { GetPName } GL_CURRENT_COLOR = $0B00; GL_CURRENT_NORMAL = $0B02; GL_CURRENT_TEXTURE_COORDS = $0B03; GL_POINT_SIZE = $0B11; GL_POINT_SIZE_MIN = $8126; GL_POINT_SIZE_MAX = $8127; GL_POINT_FADE_THRESHOLD_SIZE = $8128; GL_POINT_DISTANCE_ATTENUATION = $8129; GL_SMOOTH_POINT_SIZE_RANGE = $0B12; GL_LINE_WIDTH = $0B21; GL_SMOOTH_LINE_WIDTH_RANGE = $0B22; GL_ALIASED_POINT_SIZE_RANGE = $846D; GL_ALIASED_LINE_WIDTH_RANGE = $846E; GL_CULL_FACE_MODE = $0B45; GL_FRONT_FACE = $0B46; GL_SHADE_MODEL = $0B54; GL_DEPTH_RANGE = $0B70; GL_DEPTH_WRITEMASK = $0B72; GL_DEPTH_CLEAR_VALUE = $0B73; GL_DEPTH_FUNC = $0B74; GL_STENCIL_CLEAR_VALUE = $0B91; GL_STENCIL_FUNC = $0B92; GL_STENCIL_VALUE_MASK = $0B93; GL_STENCIL_FAIL = $0B94; GL_STENCIL_PASS_DEPTH_FAIL = $0B95; GL_STENCIL_PASS_DEPTH_PASS = $0B96; GL_STENCIL_REF = $0B97; GL_STENCIL_WRITEMASK = $0B98; GL_MATRIX_MODE = $0BA0; GL_VIEWPORT = $0BA2; GL_MODELVIEW_STACK_DEPTH = $0BA3; GL_PROJECTION_STACK_DEPTH = $0BA4; GL_TEXTURE_STACK_DEPTH = $0BA5; GL_MODELVIEW_MATRIX = $0BA6; GL_PROJECTION_MATRIX = $0BA7; GL_TEXTURE_MATRIX = $0BA8; GL_ALPHA_TEST_FUNC = $0BC1; GL_ALPHA_TEST_REF = $0BC2; GL_BLEND_DST = $0BE0; GL_BLEND_SRC = $0BE1; GL_LOGIC_OP_MODE = $0BF0; GL_SCISSOR_BOX = $0C10; GL_COLOR_CLEAR_VALUE = $0C22; GL_COLOR_WRITEMASK = $0C23; GL_UNPACK_ALIGNMENT = $0CF5; GL_PACK_ALIGNMENT = $0D05; GL_MAX_LIGHTS = $0D31; GL_MAX_CLIP_PLANES = $0D32; GL_MAX_TEXTURE_SIZE = $0D33; GL_MAX_MODELVIEW_STACK_DEPTH = $0D36; GL_MAX_PROJECTION_STACK_DEPTH = $0D38; GL_MAX_TEXTURE_STACK_DEPTH = $0D39; GL_MAX_VIEWPORT_DIMS = $0D3A; GL_MAX_TEXTURE_UNITS = $84E2; GL_SUBPIXEL_BITS = $0D50; GL_RED_BITS = $0D52; GL_GREEN_BITS = $0D53; GL_BLUE_BITS = $0D54; GL_ALPHA_BITS = $0D55; GL_DEPTH_BITS = $0D56; GL_STENCIL_BITS = $0D57; GL_POLYGON_OFFSET_UNITS = $2A00; GL_POLYGON_OFFSET_FACTOR = $8038; GL_TEXTURE_BINDING_2D = $8069; GL_VERTEX_ARRAY_SIZE = $807A; GL_VERTEX_ARRAY_TYPE = $807B; GL_VERTEX_ARRAY_STRIDE = $807C; GL_NORMAL_ARRAY_TYPE = $807E; GL_NORMAL_ARRAY_STRIDE = $807F; GL_COLOR_ARRAY_SIZE = $8081; GL_COLOR_ARRAY_TYPE = $8082; GL_COLOR_ARRAY_STRIDE = $8083; GL_TEXTURE_COORD_ARRAY_SIZE = $8088; GL_TEXTURE_COORD_ARRAY_TYPE = $8089; GL_TEXTURE_COORD_ARRAY_STRIDE = $808A; GL_VERTEX_ARRAY_POINTER = $808E; GL_NORMAL_ARRAY_POINTER = $808F; GL_COLOR_ARRAY_POINTER = $8090; GL_TEXTURE_COORD_ARRAY_POINTER = $8092; GL_SAMPLE_BUFFERS = $80A8; GL_SAMPLES = $80A9; GL_SAMPLE_COVERAGE_VALUE = $80AA; GL_SAMPLE_COVERAGE_INVERT = $80AB; { GetTextureParameter } { GL_TEXTURE_MAG_FILTER } { GL_TEXTURE_MIN_FILTER } { GL_TEXTURE_WRAP_S } { GL_TEXTURE_WRAP_T } GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2; GL_COMPRESSED_TEXTURE_FORMATS = $86A3; { HintMode } GL_DONT_CARE = $1100; GL_FASTEST = $1101; GL_NICEST = $1102; { HintTarget } GL_PERSPECTIVE_CORRECTION_HINT = $0C50; GL_POINT_SMOOTH_HINT = $0C51; GL_LINE_SMOOTH_HINT = $0C52; GL_FOG_HINT = $0C54; GL_GENERATE_MIPMAP_HINT = $8192; { LightModelParameter } GL_LIGHT_MODEL_AMBIENT = $0B53; GL_LIGHT_MODEL_TWO_SIDE = $0B52; { LightParameter } GL_AMBIENT = $1200; GL_DIFFUSE = $1201; GL_SPECULAR = $1202; GL_POSITION = $1203; GL_SPOT_DIRECTION = $1204; GL_SPOT_EXPONENT = $1205; GL_SPOT_CUTOFF = $1206; GL_CONSTANT_ATTENUATION = $1207; GL_LINEAR_ATTENUATION = $1208; GL_QUADRATIC_ATTENUATION = $1209; { DataType } GL_BYTE = $1400; GL_UNSIGNED_BYTE = $1401; GL_SHORT = $1402; GL_UNSIGNED_SHORT = $1403; GL_FLOAT = $1406; GL_FIXED = $140C; { LogicOp } GL_CLEAR = $1500; GL_AND = $1501; GL_AND_REVERSE = $1502; GL_COPY = $1503; GL_AND_INVERTED = $1504; GL_NOOP = $1505; GL_XOR = $1506; GL_OR = $1507; GL_NOR = $1508; GL_EQUIV = $1509; GL_INVERT = $150A; GL_OR_REVERSE = $150B; GL_COPY_INVERTED = $150C; GL_OR_INVERTED = $150D; GL_NAND = $150E; GL_SET = $150F; { MaterialFace } { GL_FRONT_AND_BACK } { MaterialParameter } GL_EMISSION = $1600; GL_SHININESS = $1601; GL_AMBIENT_AND_DIFFUSE = $1602; { GL_AMBIENT } { GL_DIFFUSE } { GL_SPECULAR } { MatrixMode } GL_MODELVIEW = $1700; GL_PROJECTION = $1701; GL_TEXTURE = $1702; { NormalPointerType } { GL_BYTE } { GL_SHORT } { GL_FLOAT } { GL_FIXED } { PixelFormat } GL_ALPHA = $1906; GL_RGB = $1907; GL_RGBA = $1908; GL_LUMINANCE = $1909; GL_LUMINANCE_ALPHA = $190A; { PixelType } { GL_UNSIGNED_BYTE } GL_UNSIGNED_SHORT_4_4_4_4 = $8033; GL_UNSIGNED_SHORT_5_5_5_1 = $8034; GL_UNSIGNED_SHORT_5_6_5 = $8363; { ShadingModel } GL_FLAT = $1D00; GL_SMOOTH = $1D01; { StencilFunction } { GL_NEVER } { GL_LESS } { GL_EQUAL } { GL_LEQUAL } { GL_GREATER } { GL_NOTEQUAL } { GL_GEQUAL } { GL_ALWAYS } { StencilOp } { GL_ZERO } GL_KEEP = $1E00; GL_REPLACE = $1E01; GL_INCR = $1E02; GL_DECR = $1E03; { GL_INVERT } { StringName } GL_VENDOR = $1F00; GL_RENDERER = $1F01; GL_VERSION = $1F02; GL_EXTENSIONS = $1F03; { TexCoordPointerType } { GL_SHORT } { GL_FLOAT } { GL_FIXED } { GL_BYTE } { TextureEnvMode } GL_MODULATE = $2100; GL_DECAL = $2101; { GL_BLEND } GL_ADD = $0104; { GL_REPLACE } { TextureEnvParameter } GL_TEXTURE_ENV_MODE = $2200; GL_TEXTURE_ENV_COLOR = $2201; { TextureEnvTarget } GL_TEXTURE_ENV = $2300; { TextureMagFilter } GL_NEAREST = $2600; GL_LINEAR = $2601; { TextureMinFilter } { GL_NEAREST } { GL_LINEAR } GL_NEAREST_MIPMAP_NEAREST = $2700; GL_LINEAR_MIPMAP_NEAREST = $2701; GL_NEAREST_MIPMAP_LINEAR = $2702; GL_LINEAR_MIPMAP_LINEAR = $2703; { TextureParameterName } GL_TEXTURE_MAG_FILTER = $2800; GL_TEXTURE_MIN_FILTER = $2801; GL_TEXTURE_WRAP_S = $2802; GL_TEXTURE_WRAP_T = $2803; GL_GENERATE_MIPMAP = $8191; { TextureTarget } { GL_TEXTURE_2D } { TextureUnit } GL_TEXTURE0 = $84C0; GL_TEXTURE1 = $84C1; GL_TEXTURE2 = $84C2; GL_TEXTURE3 = $84C3; GL_TEXTURE4 = $84C4; GL_TEXTURE5 = $84C5; GL_TEXTURE6 = $84C6; GL_TEXTURE7 = $84C7; GL_TEXTURE8 = $84C8; GL_TEXTURE9 = $84C9; GL_TEXTURE10 = $84CA; GL_TEXTURE11 = $84CB; GL_TEXTURE12 = $84CC; GL_TEXTURE13 = $84CD; GL_TEXTURE14 = $84CE; GL_TEXTURE15 = $84CF; GL_TEXTURE16 = $84D0; GL_TEXTURE17 = $84D1; GL_TEXTURE18 = $84D2; GL_TEXTURE19 = $84D3; GL_TEXTURE20 = $84D4; GL_TEXTURE21 = $84D5; GL_TEXTURE22 = $84D6; GL_TEXTURE23 = $84D7; GL_TEXTURE24 = $84D8; GL_TEXTURE25 = $84D9; GL_TEXTURE26 = $84DA; GL_TEXTURE27 = $84DB; GL_TEXTURE28 = $84DC; GL_TEXTURE29 = $84DD; GL_TEXTURE30 = $84DE; GL_TEXTURE31 = $84DF; GL_ACTIVE_TEXTURE = $84E0; GL_CLIENT_ACTIVE_TEXTURE = $84E1; { TextureWrapMode } GL_REPEAT = $2901; GL_CLAMP_TO_EDGE = $812F; { VertexPointerType } { GL_SHORT } { GL_FLOAT } { GL_FIXED } { GL_BYTE } { LightName } GL_LIGHT0 = $4000; GL_LIGHT1 = $4001; GL_LIGHT2 = $4002; GL_LIGHT3 = $4003; GL_LIGHT4 = $4004; GL_LIGHT5 = $4005; GL_LIGHT6 = $4006; GL_LIGHT7 = $4007; { Buffer Objects } GL_ARRAY_BUFFER = $8892; GL_ELEMENT_ARRAY_BUFFER = $8893; GL_ARRAY_BUFFER_BINDING = $8894; GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895; GL_VERTEX_ARRAY_BUFFER_BINDING = $8896; GL_NORMAL_ARRAY_BUFFER_BINDING = $8897; GL_COLOR_ARRAY_BUFFER_BINDING = $8898; GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A; GL_STATIC_DRAW = $88E4; GL_DYNAMIC_DRAW = $88E8; GL_BUFFER_SIZE = $8764; GL_BUFFER_USAGE = $8765; { Texture combine + dot3 } GL_SUBTRACT = $84E7; GL_COMBINE = $8570; GL_COMBINE_RGB = $8571; GL_COMBINE_ALPHA = $8572; GL_RGB_SCALE = $8573; GL_ADD_SIGNED = $8574; GL_INTERPOLATE = $8575; GL_CONSTANT = $8576; GL_PRIMARY_COLOR = $8577; GL_PREVIOUS = $8578; GL_OPERAND0_RGB = $8590; GL_OPERAND1_RGB = $8591; GL_OPERAND2_RGB = $8592; GL_OPERAND0_ALPHA = $8598; GL_OPERAND1_ALPHA = $8599; GL_OPERAND2_ALPHA = $859A; GL_ALPHA_SCALE = $0D1C; GL_SRC0_RGB = $8580; GL_SRC1_RGB = $8581; GL_SRC2_RGB = $8582; GL_SRC0_ALPHA = $8588; GL_SRC1_ALPHA = $8589; GL_SRC2_ALPHA = $858A; GL_DOT3_RGB = $86AE; GL_DOT3_RGBA = $86AF; {$ENDIF} {$IFDEF OPENGLES_CORE_2_0} const { ============================================== OpenGL ES 2.0 ======================================================= } { BlendEquationSeparate } GL_FUNC_ADD = $8006; GL_BLEND_EQUATION = $8009; GL_BLEND_EQUATION_RGB = $8009; // same as BLEND_EQUATION GL_BLEND_EQUATION_ALPHA = $883D; { BlendSubtract } GL_FUNC_SUBTRACT = $800A; GL_FUNC_REVERSE_SUBTRACT = $800B; { Separate Blend Functions } GL_BLEND_DST_RGB = $80C8; GL_BLEND_SRC_RGB = $80C9; GL_BLEND_DST_ALPHA = $80CA; GL_BLEND_SRC_ALPHA = $80CB; GL_CONSTANT_COLOR = $8001; GL_ONE_MINUS_CONSTANT_COLOR = $8002; GL_CONSTANT_ALPHA = $8003; GL_ONE_MINUS_CONSTANT_ALPHA = $8004; GL_BLEND_COLOR = $8005; { Buffer Objects } GL_STREAM_DRAW = $88E0; GL_CURRENT_VERTEX_ATTRIB = $8626; { GetPName } GL_STENCIL_BACK_FUNC = $8800; GL_STENCIL_BACK_FAIL = $8801; GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802; GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803; GL_STENCIL_BACK_REF = $8CA3; GL_STENCIL_BACK_VALUE_MASK = $8CA4; GL_STENCIL_BACK_WRITEMASK = $8CA5; { DataType } GL_INT = $1404; GL_UNSIGNED_INT = $1405; { PixelFormat } GL_DEPTH_COMPONENT = $1902; { Shaders } GL_FRAGMENT_SHADER = $8B30; GL_VERTEX_SHADER = $8B31; GL_MAX_VERTEX_ATTRIBS = $8869; GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB; GL_MAX_VARYING_VECTORS = $8DFC; GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D; GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C; GL_MAX_TEXTURE_IMAGE_UNITS = $8872; GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD; GL_SHADER_TYPE = $8B4F; GL_DELETE_STATUS = $8B80; GL_LINK_STATUS = $8B82; GL_VALIDATE_STATUS = $8B83; GL_ATTACHED_SHADERS = $8B85; GL_ACTIVE_UNIFORMS = $8B86; GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87; GL_ACTIVE_ATTRIBUTES = $8B89; GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A; GL_SHADING_LANGUAGE_VERSION = $8B8C; GL_CURRENT_PROGRAM = $8B8D; { StencilOp } GL_INCR_WRAP = $8507; GL_DECR_WRAP = $8508; { TextureTarget } GL_TEXTURE_CUBE_MAP = $8513; GL_TEXTURE_BINDING_CUBE_MAP = $8514; GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515; GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516; GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517; GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518; GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519; GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A; GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C; { TextureWrapMode } GL_MIRRORED_REPEAT = $8370; { Uniform Types } GL_FLOAT_VEC2 = $8B50; GL_FLOAT_VEC3 = $8B51; GL_FLOAT_VEC4 = $8B52; GL_INT_VEC2 = $8B53; GL_INT_VEC3 = $8B54; GL_INT_VEC4 = $8B55; GL_BOOL = $8B56; GL_BOOL_VEC2 = $8B57; GL_BOOL_VEC3 = $8B58; GL_BOOL_VEC4 = $8B59; GL_FLOAT_MAT2 = $8B5A; GL_FLOAT_MAT3 = $8B5B; GL_FLOAT_MAT4 = $8B5C; GL_SAMPLER_2D = $8B5E; GL_SAMPLER_CUBE = $8B60; { Vertex Arrays } GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622; GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623; GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624; GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625; GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A; GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645; GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F; { Read Format } GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A; GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B; { Shader Source } GL_COMPILE_STATUS = $8B81; GL_INFO_LOG_LENGTH = $8B84; GL_SHADER_SOURCE_LENGTH = $8B88; GL_SHADER_COMPILER = $8DFA; { Shader Binary } GL_SHADER_BINARY_FORMATS = $8DF8; GL_NUM_SHADER_BINARY_FORMATS = $8DF9; { Shader Precision-Specified Types } GL_LOW_FLOAT = $8DF0; GL_MEDIUM_FLOAT = $8DF1; GL_HIGH_FLOAT = $8DF2; GL_LOW_INT = $8DF3; GL_MEDIUM_INT = $8DF4; GL_HIGH_INT = $8DF5; { Framebuffer Object. } GL_FRAMEBUFFER = $8D40; GL_RENDERBUFFER = $8D41; GL_RGBA4 = $8056; GL_RGB5_A1 = $8057; GL_RGB565 = $8D62; GL_DEPTH_COMPONENT16 = $81A5; GL_STENCIL_INDEX = $1901; GL_STENCIL_INDEX8 = $8D48; GL_RENDERBUFFER_WIDTH = $8D42; GL_RENDERBUFFER_HEIGHT = $8D43; GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44; GL_RENDERBUFFER_RED_SIZE = $8D50; GL_RENDERBUFFER_GREEN_SIZE = $8D51; GL_RENDERBUFFER_BLUE_SIZE = $8D52; GL_RENDERBUFFER_ALPHA_SIZE = $8D53; GL_RENDERBUFFER_DEPTH_SIZE = $8D54; GL_RENDERBUFFER_STENCIL_SIZE = $8D55; GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0; GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3; GL_COLOR_ATTACHMENT0 = $8CE0; GL_DEPTH_ATTACHMENT = $8D00; GL_STENCIL_ATTACHMENT = $8D20; GL_NONE = 0; GL_FRAMEBUFFER_COMPLETE = $8CD5; GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6; GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7; GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = $8CD9; GL_FRAMEBUFFER_UNSUPPORTED = $8CDD; GL_FRAMEBUFFER_BINDING = $8CA6; GL_RENDERBUFFER_BINDING = $8CA7; GL_MAX_RENDERBUFFER_SIZE = $84E8; GL_INVALID_FRAMEBUFFER_OPERATION = $0506; {$ENDIF} {$IFDEF OPENGLES_CORE_3_0} const { ============================================== OpenGL ES 3.0 ======================================================= } GL_READ_BUFFER = $0C02; GL_UNPACK_ROW_LENGTH = $0CF2; GL_UNPACK_SKIP_ROWS = $0CF3; GL_UNPACK_SKIP_PIXELS = $0CF4; GL_PACK_ROW_LENGTH = $0D02; GL_PACK_SKIP_ROWS = $0D03; GL_PACK_SKIP_PIXELS = $0D04; GL_COLOR = $1800; GL_DEPTH = $1801; GL_STENCIL = $1802; GL_RED = $1903; GL_RGB8 = $8051; GL_RGBA8 = $8058; GL_RGB10_A2 = $8059; GL_TEXTURE_BINDING_3D = $806A; GL_UNPACK_SKIP_IMAGES = $806D; GL_UNPACK_IMAGE_HEIGHT = $806E; GL_TEXTURE_3D = $806F; GL_TEXTURE_WRAP_R = $8072; GL_MAX_3D_TEXTURE_SIZE = $8073; GL_UNSIGNED_INT_2_10_10_10_REV = $8368; GL_MAX_ELEMENTS_VERTICES = $80E8; GL_MAX_ELEMENTS_INDICES = $80E9; GL_TEXTURE_MIN_LOD = $813A; GL_TEXTURE_MAX_LOD = $813B; GL_TEXTURE_BASE_LEVEL = $813C; GL_TEXTURE_MAX_LEVEL = $813D; GL_MIN = $8007; GL_MAX = $8008; GL_DEPTH_COMPONENT24 = $81A6; GL_MAX_TEXTURE_LOD_BIAS = $84FD; GL_TEXTURE_COMPARE_MODE = $884C; GL_TEXTURE_COMPARE_FUNC = $884D; GL_CURRENT_QUERY = $8865; GL_QUERY_RESULT = $8866; GL_QUERY_RESULT_AVAILABLE = $8867; GL_BUFFER_MAPPED = $88BC; GL_BUFFER_MAP_POINTER = $88BD; GL_STREAM_READ = $88E1; GL_STREAM_COPY = $88E2; GL_STATIC_READ = $88E5; GL_STATIC_COPY = $88E6; GL_DYNAMIC_READ = $88E9; GL_DYNAMIC_COPY = $88EA; GL_MAX_DRAW_BUFFERS = $8824; GL_DRAW_BUFFER0 = $8825; GL_DRAW_BUFFER1 = $8826; GL_DRAW_BUFFER2 = $8827; GL_DRAW_BUFFER3 = $8828; GL_DRAW_BUFFER4 = $8829; GL_DRAW_BUFFER5 = $882A; GL_DRAW_BUFFER6 = $882B; GL_DRAW_BUFFER7 = $882C; GL_DRAW_BUFFER8 = $882D; GL_DRAW_BUFFER9 = $882E; GL_DRAW_BUFFER10 = $882F; GL_DRAW_BUFFER11 = $8830; GL_DRAW_BUFFER12 = $8831; GL_DRAW_BUFFER13 = $8832; GL_DRAW_BUFFER14 = $8833; GL_DRAW_BUFFER15 = $8834; GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49; GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A; GL_SAMPLER_3D = $8B5F; GL_SAMPLER_2D_SHADOW = $8B62; GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B; GL_PIXEL_PACK_BUFFER = $88EB; GL_PIXEL_UNPACK_BUFFER = $88EC; GL_PIXEL_PACK_BUFFER_BINDING = $88ED; GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF; GL_FLOAT_MAT2x3 = $8B65; GL_FLOAT_MAT2x4 = $8B66; GL_FLOAT_MAT3x2 = $8B67; GL_FLOAT_MAT3x4 = $8B68; GL_FLOAT_MAT4x2 = $8B69; GL_FLOAT_MAT4x3 = $8B6A; GL_SRGB = $8C40; GL_SRGB8 = $8C41; GL_SRGB8_ALPHA8 = $8C43; GL_COMPARE_REF_TO_TEXTURE = $884E; GL_MAJOR_VERSION = $821B; GL_MINOR_VERSION = $821C; GL_NUM_EXTENSIONS = $821D; GL_RGBA32F = $8814; GL_RGB32F = $8815; GL_RGBA16F = $881A; GL_RGB16F = $881B; GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD; GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF; GL_MIN_PROGRAM_TEXEL_OFFSET = $8904; GL_MAX_PROGRAM_TEXEL_OFFSET = $8905; GL_MAX_VARYING_COMPONENTS = $8B4B; GL_TEXTURE_2D_ARRAY = $8C1A; GL_TEXTURE_BINDING_2D_ARRAY = $8C1D; GL_R11F_G11F_B10F = $8C3A; GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B; GL_RGB9_E5 = $8C3D; GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E; GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76; GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F; GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80; GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83; GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84; GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85; GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88; GL_RASTERIZER_DISCARD = $8C89; GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A; GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B; GL_INTERLEAVED_ATTRIBS = $8C8C; GL_SEPARATE_ATTRIBS = $8C8D; GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E; GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F; GL_RGBA32UI = $8D70; GL_RGB32UI = $8D71; GL_RGBA16UI = $8D76; GL_RGB16UI = $8D77; GL_RGBA8UI = $8D7C; GL_RGB8UI = $8D7D; GL_RGBA32I = $8D82; GL_RGB32I = $8D83; GL_RGBA16I = $8D88; GL_RGB16I = $8D89; GL_RGBA8I = $8D8E; GL_RGB8I = $8D8F; GL_RED_INTEGER = $8D94; GL_RGB_INTEGER = $8D98; GL_RGBA_INTEGER = $8D99; GL_SAMPLER_2D_ARRAY = $8DC1; GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4; GL_SAMPLER_CUBE_SHADOW = $8DC5; GL_UNSIGNED_INT_VEC2 = $8DC6; GL_UNSIGNED_INT_VEC3 = $8DC7; GL_UNSIGNED_INT_VEC4 = $8DC8; GL_INT_SAMPLER_2D = $8DCA; GL_INT_SAMPLER_3D = $8DCB; GL_INT_SAMPLER_CUBE = $8DCC; GL_INT_SAMPLER_2D_ARRAY = $8DCF; GL_UNSIGNED_INT_SAMPLER_2D = $8DD2; GL_UNSIGNED_INT_SAMPLER_3D = $8DD3; GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4; GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7; GL_BUFFER_ACCESS_FLAGS = $911F; GL_BUFFER_MAP_LENGTH = $9120; GL_BUFFER_MAP_OFFSET = $9121; GL_DEPTH_COMPONENT32F = $8CAC; GL_DEPTH32F_STENCIL8 = $8CAD; GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD; GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210; GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211; GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212; GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213; GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214; GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215; GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216; GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217; GL_FRAMEBUFFER_DEFAULT = $8218; GL_FRAMEBUFFER_UNDEFINED = $8219; GL_DEPTH_STENCIL_ATTACHMENT = $821A; GL_DEPTH_STENCIL = $84F9; GL_UNSIGNED_INT_24_8 = $84FA; GL_DEPTH24_STENCIL8 = $88F0; GL_UNSIGNED_NORMALIZED = $8C17; GL_DRAW_FRAMEBUFFER_BINDING = $8CA6; GL_READ_FRAMEBUFFER = $8CA8; GL_DRAW_FRAMEBUFFER = $8CA9; GL_READ_FRAMEBUFFER_BINDING = $8CAA; GL_RENDERBUFFER_SAMPLES = $8CAB; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4; GL_MAX_COLOR_ATTACHMENTS = $8CDF; GL_COLOR_ATTACHMENT1 = $8CE1; GL_COLOR_ATTACHMENT2 = $8CE2; GL_COLOR_ATTACHMENT3 = $8CE3; GL_COLOR_ATTACHMENT4 = $8CE4; GL_COLOR_ATTACHMENT5 = $8CE5; GL_COLOR_ATTACHMENT6 = $8CE6; GL_COLOR_ATTACHMENT7 = $8CE7; GL_COLOR_ATTACHMENT8 = $8CE8; GL_COLOR_ATTACHMENT9 = $8CE9; GL_COLOR_ATTACHMENT10 = $8CEA; GL_COLOR_ATTACHMENT11 = $8CEB; GL_COLOR_ATTACHMENT12 = $8CEC; GL_COLOR_ATTACHMENT13 = $8CED; GL_COLOR_ATTACHMENT14 = $8CEE; GL_COLOR_ATTACHMENT15 = $8CEF; GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56; GL_MAX_SAMPLES = $8D57; GL_HALF_FLOAT = $140B; GL_MAP_READ_BIT = $0001; GL_MAP_WRITE_BIT = $0002; GL_MAP_INVALIDATE_RANGE_BIT = $0004; GL_MAP_INVALIDATE_BUFFER_BIT = $0008; GL_MAP_FLUSH_EXPLICIT_BIT = $0010; GL_MAP_UNSYNCHRONIZED_BIT = $0020; GL_RG = $8227; GL_RG_INTEGER = $8228; GL_R8 = $8229; GL_RG8 = $822B; GL_R16F = $822D; GL_R32F = $822E; GL_RG16F = $822F; GL_RG32F = $8230; GL_R8I = $8231; GL_R8UI = $8232; GL_R16I = $8233; GL_R16UI = $8234; GL_R32I = $8235; GL_R32UI = $8236; GL_RG8I = $8237; GL_RG8UI = $8238; GL_RG16I = $8239; GL_RG16UI = $823A; GL_RG32I = $823B; GL_RG32UI = $823C; GL_VERTEX_ARRAY_BINDING = $85B5; GL_R8_SNORM = $8F94; GL_RG8_SNORM = $8F95; GL_RGB8_SNORM = $8F96; GL_RGBA8_SNORM = $8F97; GL_SIGNED_NORMALIZED = $8F9C; GL_PRIMITIVE_RESTART_FIXED_INDEX = $8D69; GL_COPY_READ_BUFFER = $8F36; GL_COPY_WRITE_BUFFER = $8F37; GL_COPY_READ_BUFFER_BINDING = $8F36; GL_COPY_WRITE_BUFFER_BINDING = $8F37; GL_UNIFORM_BUFFER = $8A11; GL_UNIFORM_BUFFER_BINDING = $8A28; GL_UNIFORM_BUFFER_START = $8A29; GL_UNIFORM_BUFFER_SIZE = $8A2A; GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B; GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D; GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E; GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F; GL_MAX_UNIFORM_BLOCK_SIZE = $8A30; GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31; GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33; GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34; GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35; GL_ACTIVE_UNIFORM_BLOCKS = $8A36; GL_UNIFORM_TYPE = $8A37; GL_UNIFORM_SIZE = $8A38; GL_UNIFORM_NAME_LENGTH = $8A39; GL_UNIFORM_BLOCK_INDEX = $8A3A; GL_UNIFORM_OFFSET = $8A3B; GL_UNIFORM_ARRAY_STRIDE = $8A3C; GL_UNIFORM_MATRIX_STRIDE = $8A3D; GL_UNIFORM_IS_ROW_MAJOR = $8A3E; GL_UNIFORM_BLOCK_BINDING = $8A3F; GL_UNIFORM_BLOCK_DATA_SIZE = $8A40; GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41; GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42; GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43; GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44; GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46; GL_INVALID_INDEX = $FFFFFFFF; GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122; GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125; GL_MAX_SERVER_WAIT_TIMEOUT = $9111; GL_OBJECT_TYPE = $9112; GL_SYNC_CONDITION = $9113; GL_SYNC_STATUS = $9114; GL_SYNC_FLAGS = $9115; GL_SYNC_FENCE = $9116; GL_SYNC_GPU_COMMANDS_COMPLETE = $9117; GL_UNSIGNALED = $9118; GL_SIGNALED = $9119; GL_ALREADY_SIGNALED = $911A; GL_TIMEOUT_EXPIRED = $911B; GL_CONDITION_SATISFIED = $911C; GL_WAIT_FAILED = $911D; GL_SYNC_FLUSH_COMMANDS_BIT = $00000001; GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF; GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE; GL_ANY_SAMPLES_PASSED = $8C2F; GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A; GL_SAMPLER_BINDING = $8919; GL_RGB10_A2UI = $906F; GL_TEXTURE_SWIZZLE_R = $8E42; GL_TEXTURE_SWIZZLE_G = $8E43; GL_TEXTURE_SWIZZLE_B = $8E44; GL_TEXTURE_SWIZZLE_A = $8E45; GL_GREEN = $1904; GL_BLUE = $1905; GL_INT_2_10_10_10_REV = $8D9F; GL_TRANSFORM_FEEDBACK = $8E22; GL_TRANSFORM_FEEDBACK_PAUSED = $8E23; GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24; GL_TRANSFORM_FEEDBACK_BINDING = $8E25; GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257; GL_PROGRAM_BINARY_LENGTH = $8741; GL_NUM_PROGRAM_BINARY_FORMATS = $87FE; GL_PROGRAM_BINARY_FORMATS = $87FF; GL_COMPRESSED_R11_EAC = $9270; GL_COMPRESSED_SIGNED_R11_EAC = $9271; GL_COMPRESSED_RG11_EAC = $9272; GL_COMPRESSED_SIGNED_RG11_EAC = $9273; GL_COMPRESSED_RGB8_ETC2 = $9274; GL_COMPRESSED_SRGB8_ETC2 = $9275; GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276; GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277; GL_COMPRESSED_RGBA8_ETC2_EAC = $9278; GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279; GL_TEXTURE_IMMUTABLE_FORMAT = $912F; GL_MAX_ELEMENT_INDEX = $8D6B; GL_NUM_SAMPLE_COUNTS = $9380; GL_TEXTURE_IMMUTABLE_LEVELS = $82DF; {$ENDIF} {$IFDEF OPENGLES_CORE_3_1} const { ============================================== OpenGL ES 3.1 ======================================================= } GL_COMPUTE_SHADER = $91B9; GL_MAX_COMPUTE_UNIFORM_BLOCKS = $91BB; GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC; GL_MAX_COMPUTE_IMAGE_UNIFORMS = $91BD; GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262; GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263; GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264; GL_MAX_COMPUTE_ATOMIC_COUNTERS = $8265; GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266; GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = $90EB; GL_MAX_COMPUTE_WORK_GROUP_COUNT = $91BE; GL_MAX_COMPUTE_WORK_GROUP_SIZE = $91BF; GL_COMPUTE_WORK_GROUP_SIZE = $8267; GL_DISPATCH_INDIRECT_BUFFER = $90EE; GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF; GL_COMPUTE_SHADER_BIT = $00000020; GL_DRAW_INDIRECT_BUFFER = $8F3F; GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43; GL_MAX_UNIFORM_LOCATIONS = $826E; GL_FRAMEBUFFER_DEFAULT_WIDTH = $9310; GL_FRAMEBUFFER_DEFAULT_HEIGHT = $9311; GL_FRAMEBUFFER_DEFAULT_SAMPLES = $9313; GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314; GL_MAX_FRAMEBUFFER_WIDTH = $9315; GL_MAX_FRAMEBUFFER_HEIGHT = $9316; GL_MAX_FRAMEBUFFER_SAMPLES = $9318; GL_UNIFORM = $92E1; GL_UNIFORM_BLOCK = $92E2; GL_PROGRAM_INPUT = $92E3; GL_PROGRAM_OUTPUT = $92E4; GL_BUFFER_VARIABLE = $92E5; GL_SHADER_STORAGE_BLOCK = $92E6; GL_ATOMIC_COUNTER_BUFFER = $92C0; GL_TRANSFORM_FEEDBACK_VARYING = $92F4; GL_ACTIVE_RESOURCES = $92F5; GL_MAX_NAME_LENGTH = $92F6; GL_MAX_NUM_ACTIVE_VARIABLES = $92F7; GL_NAME_LENGTH = $92F9; GL_TYPE = $92FA; GL_ARRAY_SIZE = $92FB; GL_OFFSET = $92FC; GL_BLOCK_INDEX = $92FD; GL_ARRAY_STRIDE = $92FE; GL_MATRIX_STRIDE = $92FF; GL_IS_ROW_MAJOR = $9300; GL_ATOMIC_COUNTER_BUFFER_INDEX = $9301; GL_BUFFER_BINDING = $9302; GL_BUFFER_DATA_SIZE = $9303; GL_NUM_ACTIVE_VARIABLES = $9304; GL_ACTIVE_VARIABLES = $9305; GL_REFERENCED_BY_VERTEX_SHADER = $9306; GL_REFERENCED_BY_FRAGMENT_SHADER = $930A; GL_REFERENCED_BY_COMPUTE_SHADER = $930B; GL_TOP_LEVEL_ARRAY_SIZE = $930C; GL_TOP_LEVEL_ARRAY_STRIDE = $930D; GL_LOCATION = $930E; GL_VERTEX_SHADER_BIT = $00000001; GL_FRAGMENT_SHADER_BIT = $00000002; GL_ALL_SHADER_BITS = $FFFFFFFF; GL_PROGRAM_SEPARABLE = $8258; GL_ACTIVE_PROGRAM = $8259; GL_PROGRAM_PIPELINE_BINDING = $825A; GL_ATOMIC_COUNTER_BUFFER_BINDING = $92C1; GL_ATOMIC_COUNTER_BUFFER_START = $92C2; GL_ATOMIC_COUNTER_BUFFER_SIZE = $92C3; GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC; GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0; GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1; GL_MAX_VERTEX_ATOMIC_COUNTERS = $92D2; GL_MAX_FRAGMENT_ATOMIC_COUNTERS = $92D6; GL_MAX_COMBINED_ATOMIC_COUNTERS = $92D7; GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8; GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC; GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = $92D9; GL_UNSIGNED_INT_ATOMIC_COUNTER = $92DB; GL_MAX_IMAGE_UNITS = $8F38; GL_MAX_VERTEX_IMAGE_UNIFORMS = $90CA; GL_MAX_FRAGMENT_IMAGE_UNIFORMS = $90CE; GL_MAX_COMBINED_IMAGE_UNIFORMS = $90CF; GL_IMAGE_BINDING_NAME = $8F3A; GL_IMAGE_BINDING_LEVEL = $8F3B; GL_IMAGE_BINDING_LAYERED = $8F3C; GL_IMAGE_BINDING_LAYER = $8F3D; GL_IMAGE_BINDING_ACCESS = $8F3E; GL_IMAGE_BINDING_FORMAT = $906E; GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001; GL_ELEMENT_ARRAY_BARRIER_BIT = $00000002; GL_UNIFORM_BARRIER_BIT = $00000004; GL_TEXTURE_FETCH_BARRIER_BIT = $00000008; GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020; GL_COMMAND_BARRIER_BIT = $00000040; GL_PIXEL_BUFFER_BARRIER_BIT = $00000080; GL_TEXTURE_UPDATE_BARRIER_BIT = $00000100; GL_BUFFER_UPDATE_BARRIER_BIT = $00000200; GL_FRAMEBUFFER_BARRIER_BIT = $00000400; GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800; GL_ATOMIC_COUNTER_BARRIER_BIT = $00001000; GL_ALL_BARRIER_BITS = $FFFFFFFF; GL_IMAGE_2D = $904D; GL_IMAGE_3D = $904E; GL_IMAGE_CUBE = $9050; GL_IMAGE_2D_ARRAY = $9053; GL_INT_IMAGE_2D = $9058; GL_INT_IMAGE_3D = $9059; GL_INT_IMAGE_CUBE = $905B; GL_INT_IMAGE_2D_ARRAY = $905E; GL_UNSIGNED_INT_IMAGE_2D = $9063; GL_UNSIGNED_INT_IMAGE_3D = $9064; GL_UNSIGNED_INT_IMAGE_CUBE = $9066; GL_UNSIGNED_INT_IMAGE_2D_ARRAY = $9069; GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7; GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8; GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9; GL_READ_ONLY = $88B8; GL_WRITE_ONLY = $88B9; GL_READ_WRITE = $88BA; GL_SHADER_STORAGE_BUFFER = $90D2; GL_SHADER_STORAGE_BUFFER_BINDING = $90D3; GL_SHADER_STORAGE_BUFFER_START = $90D4; GL_SHADER_STORAGE_BUFFER_SIZE = $90D5; GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6; GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA; GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB; GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC; GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD; GL_MAX_SHADER_STORAGE_BLOCK_SIZE = $90DE; GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF; GL_SHADER_STORAGE_BARRIER_BIT = $00002000; GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = $8F39; GL_DEPTH_STENCIL_TEXTURE_MODE = $90EA; GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E; GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F; GL_SAMPLE_POSITION = $8E50; GL_SAMPLE_MASK = $8E51; GL_SAMPLE_MASK_VALUE = $8E52; GL_TEXTURE_2D_MULTISAMPLE = $9100; GL_MAX_SAMPLE_MASK_WORDS = $8E59; GL_MAX_COLOR_TEXTURE_SAMPLES = $910E; GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F; GL_MAX_INTEGER_SAMPLES = $9110; GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104; GL_TEXTURE_SAMPLES = $9106; GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107; GL_TEXTURE_WIDTH = $1000; GL_TEXTURE_HEIGHT = $1001; GL_TEXTURE_DEPTH = $8071; GL_TEXTURE_INTERNAL_FORMAT = $1003; GL_TEXTURE_RED_SIZE = $805C; GL_TEXTURE_GREEN_SIZE = $805D; GL_TEXTURE_BLUE_SIZE = $805E; GL_TEXTURE_ALPHA_SIZE = $805F; GL_TEXTURE_DEPTH_SIZE = $884A; GL_TEXTURE_STENCIL_SIZE = $88F1; GL_TEXTURE_SHARED_SIZE = $8C3F; GL_TEXTURE_RED_TYPE = $8C10; GL_TEXTURE_GREEN_TYPE = $8C11; GL_TEXTURE_BLUE_TYPE = $8C12; GL_TEXTURE_ALPHA_TYPE = $8C13; GL_TEXTURE_DEPTH_TYPE = $8C16; GL_TEXTURE_COMPRESSED = $86A1; GL_SAMPLER_2D_MULTISAMPLE = $9108; GL_INT_SAMPLER_2D_MULTISAMPLE = $9109; GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A; GL_VERTEX_ATTRIB_BINDING = $82D4; GL_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D5; GL_VERTEX_BINDING_DIVISOR = $82D6; GL_VERTEX_BINDING_OFFSET = $82D7; GL_VERTEX_BINDING_STRIDE = $82D8; GL_VERTEX_BINDING_BUFFER = $8F4F; GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9; GL_MAX_VERTEX_ATTRIB_BINDINGS = $82DA; GL_MAX_VERTEX_ATTRIB_STRIDE = $82E5; {$ENDIF} {$IFDEF OPENGLES_CORE_1_1} type { ============================================== OpenGL ES 1.1 ======================================================= } { Available only in Common profile } TglAlphaFunc = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearDepthf = procedure(aDepth: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClipPlanef = procedure(aPlane: GLenum; const aEquation: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglColor4f = procedure(aRed: GLfloat; aGreen: GLfloat; aBlue: GLfloat; aAlpha: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDepthRangef = procedure(aZNear: GLclampf; aZFar: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFogf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFogfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFrustumf = procedure(aLeft: GLfloat; aRight: GLfloat; aBottom: GLfloat; aTop: GLfloat; aZNear: GLfloat; aZFar: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetClipPlanef = procedure(aPname: GLenum; aEquation: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFloatv = procedure(aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetLightfv = procedure(aLight: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetMaterialfv = procedure(aFace: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexEnvfv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexParameterfv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightModelf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightModelfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightf = procedure(aLight: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightfv = procedure(aLight: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLineWidth = procedure(aWidth: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLoadMatrixf = procedure(const aMatrix: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMaterialf = procedure(aFace: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMaterialfv = procedure(aFace: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultMatrixf = procedure(const aMatrix: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultiTexCoord4f = procedure(aTarget: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglOrthof = procedure(aLeft: GLfloat; aRight: GLfloat; aBottom: GLfloat; aTop: GLfloat; aZNear: GLfloat; aZFar: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointParameterf = procedure(aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointParameterfv = procedure(aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointSize = procedure(aSize: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPolygonOffset = procedure(aFactor: GLfloat; aUnits: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglRotatef = procedure(aAngle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexEnvf = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexEnvfv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexParameterf = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexParameterfv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} { Available in both Common and Common-Lite profiles } TglActiveTexture = procedure(aTexture: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglAlphaFuncx = procedure(aFunc: GLenum; aRef: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindBuffer = procedure(aTarget: GLenum; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindTexture = procedure(aTarget: GLenum; aTexture: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendFunc = procedure(aSfactor: GLenum; aDfactor: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBufferData = procedure(aTarget: GLenum; aSize: GLsizeiptr; const aData: PGLvoid; aUsage: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBufferSubData = procedure(aTarget: GLenum; aOffset: GLintptr; aSize: GLsizeiptr; const aData: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClear = procedure(aMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearColorx = procedure(aRed: GLclampx; aGreen: GLclampx; aBlue: GLclampx; aAlpha: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearDepthx = procedure(aDepth: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearStencil = procedure(aStencil: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClientActiveTexture = procedure(aTexture: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClipPlanex = procedure(aPlane: GLenum; const aEquation: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglColor4ub = procedure(aRed: GLubyte; aGreen: GLubyte; aBlue: GLubyte; aAlpha: GLubyte); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglColor4x = procedure(aRed: GLfixed; aGreen: GLfixed; aBlue: GLfixed; aAlpha: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglColorMask = procedure(aRed: GLboolean; aGreen: GLboolean; aBlue: GLboolean; aAlpha: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglColorPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} 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} 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} 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} 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} TglCullFace = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteBuffers = procedure(n: GLsizei; const aBuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteTextures = procedure(n: GLsizei; const aTextures: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDepthFunc = procedure(aFunc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDepthMask = procedure(aFlag: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDepthRangex = procedure(aZNear: GLclampx; aZFar: GLclampx); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDisable = procedure(aCap: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDisableClientState = procedure(aArray: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawArrays = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElements = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEnable = procedure(aCap: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEnableClientState = procedure(aArray: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFogx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFogxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFrontFace = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFrustumx = procedure(aLeft: GLfixed; aRight: GLfixed; aBottom: GLfixed; aTop: GLfixed; aZNear: GLfixed; aZFar: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetBooleanv = procedure(aPname: GLenum; aParams: PGLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetBufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetClipPlanex = procedure(aPname: GLenum; aEquation: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenBuffers = procedure(n: GLsizei; aBuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenTextures = procedure(n: GLsizei; aTextures: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetError = function (): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFixedv = procedure(aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetIntegerv = procedure(aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetLightxv = procedure(aLight: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetMaterialxv = procedure(aFace: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPointerv = procedure(aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetString = function (name: GLenum): PGLubyte; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexEnviv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexEnvxv = procedure(aEnv: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexParameterxv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglHint = procedure(aTarget: GLenum; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsBuffer = function (aBuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsEnabled = function (aCap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsTexture = function (aTexture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightModelx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightModelxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightx = procedure(aLight: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLightxv = procedure(aLight: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLineWidthx = procedure(aWidth: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLoadMatrix = procedure(const aMatrix: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLogicOp = procedure(aOpcode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMaterialx = procedure(aFace: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMaterialxv = procedure(aFace: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixMode = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultMatrixx = procedure(const aMatrix: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultiTexCoord4x = procedure(aTarget: GLenum; s: GLfixed; t: GLfixed; r: GLfixed; q: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglNormal3x = procedure(nx: GLfixed; ny: GLfixed; nz: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglNormalPointer = procedure(aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglOrthox = procedure(aLeft: GLfixed; aRight: GLfixed; aBottom: GLfixed; aTop: GLfixed; aZNear: GLfixed; aZFar: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPixelStorei = procedure(aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointParameterx = procedure(aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointParameterxv = procedure(aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointSizex = procedure(aSize: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPolygonOffsetx = procedure(aFactor: GLfixed; aUnits: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglReadPixels = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aPixels: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglRotatex = procedure(aAngle: GLfixed; x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSampleCoverage = procedure(aValue: GLclampf; aInvert: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSampleCoveragex = procedure(aValue: GLclampx; aInvert: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglScalex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglScissor = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglShadeModel = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilFunc = procedure(aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilMask = procedure(aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilOp = procedure(aFail: GLenum; aZfail: GLenum; aZpass: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexCoordPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexEnvi = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexEnvx = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexEnviv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexEnvxv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} 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} TglTexParameteri = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexParameterx = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexParameteriv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexParameterxv = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} 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} TglTranslatex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglViewport = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} {$ENDIF} {$IFDEF OPENGLES_CORE_2_0} type { ============================================== OpenGL ES 2.0 ======================================================= } TglAttachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindAttribLocation = procedure(aProgram: GLuint; aIndex: GLuint; const aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindFramebuffer = procedure(aTarget: GLenum; aFramebuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindRenderbuffer = procedure(aTarget: GLenum; aRenderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendEquation = procedure( mode : GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendEquationSeparate = procedure(aModeRGB: GLenum; aModeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendFuncSeparate = procedure(aSrcRGB: GLenum; aDstRGB: GLenum; aSrcAlpha: GLenum; aDstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCheckFramebufferStatus = function (aTarget: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCompileShader = procedure(aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCreateProgram = function (): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCreateShader = function (aType: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteFramebuffers = procedure(n: GLsizei; const aFramebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteRenderbuffers = procedure(n: GLsizei; const aRenderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteShader = procedure(aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDetachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDisableVertexAttribArray = procedure(aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEnableVertexAttribArray = procedure(aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferRenderbuffer = procedure(aTarget: GLenum; aAttachment: GLenum; aRenderbuffertarget: GLenum; aRenderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferTexture2D = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenerateMipmap = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenFramebuffers = procedure(n: GLsizei; aFramebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenRenderbuffers = procedure(n: GLsizei; aRenderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetActiveAttrib = procedure(aProgram: GLuint; aIndex: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSize: PGLint; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetActiveUniform = procedure(aProgram: GLuint; aIndex: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSize: PGLint; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetAttachedShaders = procedure(aProgram: GLuint; aMaxcount: GLsizei; aCount: PGLsizei; aShaders: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetAttribLocation = function (aProgram: GLuint; const aName: PGLchar): Integer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFramebufferAttachmentParameteriv = procedure(aTarget: GLenum; aAttachment: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramiv = procedure(aProgram: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramInfoLog = procedure(aProgram: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aInfolog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetRenderbufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetShaderiv = procedure(aShader: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetShaderInfoLog = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aInfolog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetShaderPrecisionFormat = procedure(aShadertype: GLenum; aPrecisiontype: GLenum; aRange: PGLint; aPrecision: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetShaderSource = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSource: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetUniformfv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetUniformiv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetUniformLocation = function (aProgram: GLuint; const aName: PGLchar): Integer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetVertexAttribfv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetVertexAttribiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetVertexAttribPointerv = procedure(aIndex: GLuint; aPname: GLenum; aPointer: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsFramebuffer = function (aFramebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsProgram = function (aProgram: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsRenderbuffer = function (aRenderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsShader = function (aShader: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglLinkProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglRenderbufferStorage = procedure(aTarget: GLenum; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglShaderBinary = procedure(n: GLsizei; const aShaders: PGLuint; aBinaryformat: GLenum; const aBinary: PGLvoid; aLength: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglShaderSource = procedure(aShader: GLuint; aCount: GLsizei; const aString: PPGLchar; const aLength: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilFuncSeparate = procedure(aFace: GLenum; aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilMaskSeparate = procedure(aFace: GLenum; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilOpSeparate = procedure(aFace: GLenum; aFail: GLenum; aZfail: GLenum; aZpass: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform1f = procedure(aLocation: GLint; x: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform1fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform1i = procedure(aLocation: GLint; x: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform1iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform2f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform2fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform2i = procedure(aLocation: GLint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform2iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform3f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform3fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform3i = procedure(aLocation: GLint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform3iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform4f = procedure(aLocation: GLint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform4fv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform4i = procedure(aLocation: GLint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform4iv = procedure(aLocation: GLint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUseProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglValidateProgram = procedure(aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib1f = procedure(aIndex: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib1fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib2f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib2fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib3f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib3fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib4f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttrib4fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aStride: GLsizei; const aPtr: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} {$ENDIF} {$IFDEF OPENGLES_CORE_3_0} type { ============================================== OpenGL ES 3.0 ======================================================= } TglReadBuffer = procedure(aSrc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawRangeElements = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} 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} 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} 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} 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} 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} TglGenQueries = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteQueries = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsQuery = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBeginQuery = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndQuery = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryiv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryObjectuiv = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUnmapBuffer = function (aTarget: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetBufferPointerv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawBuffers = procedure(n: GLsizei; const aBuffers: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix2x3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix3x2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix2x4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix4x2fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix3x4fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix4x3fv = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} 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} TglRenderbufferStorageMultisample = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferTextureLayer = procedure(aTarget: GLenum; aAttachment: GLenum; aTexture: GLuint; aLevel: GLint; aLayer: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMapBufferRange = function (aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr; aAccess: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFlushMappedBufferRange = procedure(aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindVertexArray = procedure(aArray: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteVertexArrays = procedure(n: GLsizei; const aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenVertexArrays = procedure(n: GLsizei; aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsVertexArray = function (aArray: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetIntegeriv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBeginTransformFeedback = procedure(aPrimitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindBufferRange = procedure(aTarget: GLenum; aIndex: GLuint; aBuffer: GLuint; aOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindBufferBase = procedure(aTarget: GLenum; aIndex: GLuint; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTransformFeedbackVaryings = procedure(aProgram: GLuint; aCount: GLsizei; const aVaryings: PPGLchar; aBufferMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTransformFeedbackVarying = procedure(aProgram: GLuint; aIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aSize: PGLsizei; aType: PGLenum; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribIPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetVertexAttribIiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetVertexAttribIuiv = procedure(aIndex: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribI4i = procedure(aIndex: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribI4ui = procedure(aIndex: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribI4iv = procedure(aIndex: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribI4uiv = procedure(aIndex: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetUniformuiv = procedure(aProgram: GLuint; aLocation: GLint; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFragDataLocation = function (aProgram: GLuint; const aName: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform1ui = procedure(aLocation: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform2ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform3ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform4ui = procedure(aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform1uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform2uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform3uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniform4uiv = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearBufferiv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearBufferuiv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearBufferfv = procedure(aBuffer: GLenum; aDrawbuffer: GLint; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClearBufferfi = procedure(aBuffer: GLenum; aDrawbuffer: GLint; aDepth: GLfloat; aStencil: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetStringi = function (aName: GLenum; aIndex: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCopyBufferSubData = procedure(aReadTarget: GLenum; aWriteTarget: GLenum; aReadOffset: GLintptr; aWriteOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetUniformIndices = procedure(aProgram: GLuint; aUniformCount: GLsizei; const aUniformNames: PPGLchar; aUniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetActiveUniformsiv = procedure(aProgram: GLuint; aUniformCount: GLsizei; const aUniformIndices: PGLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetUniformBlockIndex = function (aProgram: GLuint; const aUniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetActiveUniformBlockiv = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetActiveUniformBlockName = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aUniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformBlockBinding = procedure(aProgram: GLuint; aUniformBlockIndex: GLuint; aUniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawArraysInstanced = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aInstancecount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstanced = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid; aInstancecount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFenceSync = function (aCondition: GLenum; aFlags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsSync = function (aSync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteSync = procedure(aSync: GLsync); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClientWaitSync = function (aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglWaitSync = procedure(aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetInteger64v = procedure(aPname: GLenum; aData: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetSynciv = procedure(aSync: GLsync; aPname: GLenum; aBufSize: GLsizei; aLength: PGLsizei; aValues: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetInteger64iv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetBufferParameteri64v = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenSamplers = procedure(aCount: GLsizei; aSamplers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteSamplers = procedure(aCount: GLsizei; const aSamplers: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsSampler = function (aSampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindSampler = procedure(aUnit: GLuint; aSampler: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSamplerParameteri = procedure(aSampler: GLuint; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSamplerParameteriv = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSamplerParameterf = procedure(aSampler: GLuint; aPname: GLenum; aParam: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSamplerParameterfv = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetSamplerParameteriv = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetSamplerParameterfv = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribDivisor = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindTransformFeedback = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteTransformFeedbacks = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenTransformFeedbacks = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsTransformFeedback = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramBinary = procedure(aProgram: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aBinaryFormat: PGLenum; aBinary: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramBinary = procedure(aProgram: GLuint; aBinaryFormat: GLenum; const aBinary: PGLvoid; aLength: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramParameteri = procedure(aProgram: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglInvalidateFramebuffer = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglInvalidateSubFramebuffer = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexStorage2D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexStorage3D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetInternalformativ = procedure(aTarget: GLenum; aInternalformat: GLenum; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} {$ENDIF} {$IFDEF OPENGLES_CORE_3_1} type { ============================================== OpenGL ES 3.1 ======================================================= } TglDispatchCompute = procedure(aNumGroupsX: GLuint; aNumGroupsY: GLuint; aNumGroupsZ: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDispatchComputeIndirect = procedure(aIndirect: GLintptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawArraysIndirect = procedure(aMode: GLenum; const aIndirect: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsIndirect = procedure(aMode: GLenum; aType: GLenum; const aIndirect: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferParameteri = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFramebufferParameteriv = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramInterfaceiv = procedure(aProgram: GLuint; aProgramInterface: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramResourceIndex = function (aProgram: GLuint; aProgramInterface: GLenum; const aName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramResourceName = procedure(aProgram: GLuint; aProgramInterface: GLenum; aIndex: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} 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} TglGetProgramResourceLocation = function (aProgram: GLuint; aProgramInterface: GLenum; const aName: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUseProgramStages = procedure(aPipeline: GLuint; aStages: GLbitfield; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglActiveShaderProgram = procedure(aPipeline: GLuint; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCreateShaderProgramv = function (aType: GLenum; aCount: GLsizei; const aStrings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindProgramPipeline = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteProgramPipelines = procedure(n: GLsizei; const aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenProgramPipelines = procedure(n: GLsizei; aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsProgramPipeline = function (aPipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramPipelineiv = procedure(aPipeline: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4i = procedure(aProgram: GLuint; aLocation: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4ui = procedure(aProgram: GLuint; aLocation: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4f = procedure(aProgram: GLuint; aLocation: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4iv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4uiv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix2x3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix3x2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix2x4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix4x2fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix3x4fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix4x3fv = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglValidateProgramPipeline = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramPipelineInfoLog = procedure(aPipeline: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aInfoLog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindImageTexture = procedure(aUnit: GLuint; aTexture: GLuint; aLevel: GLint; aLayered: GLboolean; aLayer: GLint; aAccess: GLenum; aFormat: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetBooleaniv = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMemoryBarrier = procedure(aBarriers: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMemoryBarrierByRegion = procedure(aBarriers: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexStorage2DMultisample = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aFixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetMultisamplefv = procedure(aPname: GLenum; aIndex: GLuint; aVal: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSampleMaski = procedure(aMaskNumber: GLuint; aMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexLevelParameteriv = procedure(aTarget: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexLevelParameterfv = procedure(aTarget: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindVertexBuffer = procedure(aBindingindex: GLuint; aBuffer: GLuint; aOffset: GLintptr; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribIFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribBinding = procedure(aAttribindex: GLuint; aBindingindex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexBindingDivisor = procedure(aBindingindex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} {$ENDIF} {$IFDEF OPENGLES_CORE_1_1} var { ============================================== OpenGL ES 1.1 ======================================================= } { Available only in Common profile } glAlphaFunc: TglAlphaFunc; glClearColor: TglClearColor; glClearDepthf: TglClearDepthf; glClipPlanef: TglClipPlanef; glColor4f: TglColor4f; glDepthRangef: TglDepthRangef; glFogf: TglFogf; glFogfv: TglFogfv; glFrustumf: TglFrustumf; glGetClipPlanef: TglGetClipPlanef; glGetFloatv: TglGetFloatv; glGetLightfv: TglGetLightfv; glGetMaterialfv: TglGetMaterialfv; glGetTexEnvfv: TglGetTexEnvfv; glGetTexParameterfv: TglGetTexParameterfv; glLightModelf: TglLightModelf; glLightModelfv: TglLightModelfv; glLightf: TglLightf; glLightfv: TglLightfv; glLineWidth: TglLineWidth; glLoadMatrixf: TglLoadMatrixf; glMaterialf: TglMaterialf; glMaterialfv: TglMaterialfv; glMultMatrixf: TglMultMatrixf; glMultiTexCoord4f: TglMultiTexCoord4f; glNormal3f: TglNormal3f; glOrthof: TglOrthof; glPointParameterf: TglPointParameterf; glPointParameterfv: TglPointParameterfv; glPointSize: TglPointSize; glPolygonOffset: TglPolygonOffset; glRotatef: TglRotatef; glScalef: TglScalef; glTexEnvf: TglTexEnvf; glTexEnvfv: TglTexEnvfv; glTexParameterf: TglTexParameterf; glTexParameterfv: TglTexParameterfv; glTranslatef: TglTranslatef; { Available in both Common and Common-Lite profiles } glActiveTexture: TglActiveTexture; glAlphaFuncx: TglAlphaFuncx; glBindBuffer: TglBindBuffer; glBindTexture: TglBindTexture; glBlendFunc: TglBlendFunc; glBufferData: TglBufferData; glBufferSubData: TglBufferSubData; glClear: TglClear; glClearColorx: TglClearColorx; glClearDepthx: TglClearDepthx; glClearStencil: TglClearStencil; glClientActiveTexture: TglClientActiveTexture; glClipPlanex: TglClipPlanex; glColor4ub: TglColor4ub; glColor4x: TglColor4x; glColorMask: TglColorMask; glColorPointer: TglColorPointer; glCompressedTexImage2D: TglCompressedTexImage2D; glCompressedTexSubImage2D: TglCompressedTexSubImage2D; glCopyTexImage2D: TglCopyTexImage2D; glCopyTexSubImage2D: TglCopyTexSubImage2D; glCullFace: TglCullFace; glDeleteBuffers: TglDeleteBuffers; glDeleteTextures: TglDeleteTextures; glDepthFunc: TglDepthFunc; glDepthMask: TglDepthMask; glDepthRangex: TglDepthRangex; glDisable: TglDisable; glDisableClientState: TglDisableClientState; glDrawArrays: TglDrawArrays; glDrawElements: TglDrawElements; glEnable: TglEnable; glEnableClientState: TglEnableClientState; glFinish: TglFinish; glFlush: TglFlush; glFogx: TglFogx; glFogxv: TglFogxv; glFrontFace: TglFrontFace; glFrustumx: TglFrustumx; glGetBooleanv: TglGetBooleanv; glGetBufferParameteriv: TglGetBufferParameteriv; glGetClipPlanex: TglGetClipPlanex; glGenBuffers: TglGenBuffers; glGenTextures: TglGenTextures; glGetError: TglGetError; glGetFixedv: TglGetFixedv; glGetIntegerv: TglGetIntegerv; glGetLightxv: TglGetLightxv; glGetMaterialxv: TglGetMaterialxv; glGetPointerv: TglGetPointerv; glGetString: TglGetString; glGetTexEnviv: TglGetTexEnviv; glGetTexEnvxv: TglGetTexEnvxv; glGetTexParameteriv: TglGetTexParameteriv; glGetTexParameterxv: TglGetTexParameterxv; glHint: TglHint; glIsBuffer: TglIsBuffer; glIsEnabled: TglIsEnabled; glIsTexture: TglIsTexture; glLightModelx: TglLightModelx; glLightModelxv: TglLightModelxv; glLightx: TglLightx; glLightxv: TglLightxv; glLineWidthx: TglLineWidthx; glLoadIdentity: TglLoadIdentity; glLoadMatrix: TglLoadMatrix; glLogicOp: TglLogicOp; glMaterialx: TglMaterialx; glMaterialxv: TglMaterialxv; glMatrixMode: TglMatrixMode; glMultMatrixx: TglMultMatrixx; glMultiTexCoord4x: TglMultiTexCoord4x; glNormal3x: TglNormal3x; glNormalPointer: TglNormalPointer; glOrthox: TglOrthox; glPixelStorei: TglPixelStorei; glPointParameterx: TglPointParameterx; glPointParameterxv: TglPointParameterxv; glPointSizex: TglPointSizex; glPolygonOffsetx: TglPolygonOffsetx; glPopMatrix: TglPopMatrix; glPushMatrix: TglPushMatrix; glReadPixels: TglReadPixels; glRotatex: TglRotatex; glSampleCoverage: TglSampleCoverage; glSampleCoveragex: TglSampleCoveragex; glScalex: TglScalex; glScissor: TglScissor; glShadeModel: TglShadeModel; glStencilFunc: TglStencilFunc; glStencilMask: TglStencilMask; glStencilOp: TglStencilOp; glTexCoordPointer: TglTexCoordPointer; glTexEnvi: TglTexEnvi; glTexEnvx: TglTexEnvx; glTexEnviv: TglTexEnviv; glTexEnvxv: TglTexEnvxv; glTexImage2D: TglTexImage2D; glTexParameteri: TglTexParameteri; glTexParameterx: TglTexParameterx; glTexParameteriv: TglTexParameteriv; glTexParameterxv: TglTexParameterxv; glTexSubImage2D: TglTexSubImage2D; glTranslatex: TglTranslatex; glVertexPointer: TglVertexPointer; glViewport: TglViewport; {$ENDIF} {$IFDEF OPENGLES_CORE_2_0} var { ============================================== OpenGL ES 2.0 ======================================================= } glAttachShader: TglAttachShader; glBindAttribLocation: TglBindAttribLocation; glBindFramebuffer: TglBindFramebuffer; glBindRenderbuffer: TglBindRenderbuffer; glBlendColor: TglBlendColor; glBlendEquation: TglBlendEquation; glBlendEquationSeparate: TglBlendEquationSeparate; glBlendFuncSeparate: TglBlendFuncSeparate; glCheckFramebufferStatus: TglCheckFramebufferStatus; glCompileShader: TglCompileShader; glCreateProgram: TglCreateProgram; glCreateShader: TglCreateShader; glDeleteFramebuffers: TglDeleteFramebuffers; glDeleteProgram: TglDeleteProgram; glDeleteRenderbuffers: TglDeleteRenderbuffers; glDeleteShader: TglDeleteShader; glDetachShader: TglDetachShader; glDisableVertexAttribArray: TglDisableVertexAttribArray; glEnableVertexAttribArray: TglEnableVertexAttribArray; glFramebufferRenderbuffer: TglFramebufferRenderbuffer; glFramebufferTexture2D: TglFramebufferTexture2D; glGenerateMipmap: TglGenerateMipmap; glGenFramebuffers: TglGenFramebuffers; glGenRenderbuffers: TglGenRenderbuffers; glGetActiveAttrib: TglGetActiveAttrib; glGetActiveUniform: TglGetActiveUniform; glGetAttachedShaders: TglGetAttachedShaders; glGetAttribLocation: TglGetAttribLocation; glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv; glGetProgramiv: TglGetProgramiv; glGetProgramInfoLog: TglGetProgramInfoLog; glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv; glGetShaderiv: TglGetShaderiv; glGetShaderInfoLog: TglGetShaderInfoLog; glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat; glGetShaderSource: TglGetShaderSource; glGetUniformfv: TglGetUniformfv; glGetUniformiv: TglGetUniformiv; glGetUniformLocation: TglGetUniformLocation; glGetVertexAttribfv: TglGetVertexAttribfv; glGetVertexAttribiv: TglGetVertexAttribiv; glGetVertexAttribPointerv: TglGetVertexAttribPointerv; glIsFramebuffer: TglIsFramebuffer; glIsProgram: TglIsProgram; glIsRenderbuffer: TglIsRenderbuffer; glIsShader: TglIsShader; glLinkProgram: TglLinkProgram; glReleaseShaderCompiler: TglReleaseShaderCompiler; glRenderbufferStorage: TglRenderbufferStorage; glShaderBinary: TglShaderBinary; glShaderSource: TglShaderSource; glStencilFuncSeparate: TglStencilFuncSeparate; glStencilMaskSeparate: TglStencilMaskSeparate; glStencilOpSeparate: TglStencilOpSeparate; glUniform1f: TglUniform1f; glUniform1fv: TglUniform1fv; glUniform1i: TglUniform1i; glUniform1iv: TglUniform1iv; glUniform2f: TglUniform2f; glUniform2fv: TglUniform2fv; glUniform2i: TglUniform2i; glUniform2iv: TglUniform2iv; glUniform3f: TglUniform3f; glUniform3fv: TglUniform3fv; glUniform3i: TglUniform3i; glUniform3iv: TglUniform3iv; glUniform4f: TglUniform4f; glUniform4fv: TglUniform4fv; glUniform4i: TglUniform4i; glUniform4iv: TglUniform4iv; glUniformMatrix2fv: TglUniformMatrix2fv; glUniformMatrix3fv: TglUniformMatrix3fv; glUniformMatrix4fv: TglUniformMatrix4fv; glUseProgram: TglUseProgram; glValidateProgram: TglValidateProgram; glVertexAttrib1f: TglVertexAttrib1f; glVertexAttrib1fv: TglVertexAttrib1fv; glVertexAttrib2f: TglVertexAttrib2f; glVertexAttrib2fv: TglVertexAttrib2fv; glVertexAttrib3f: TglVertexAttrib3f; glVertexAttrib3fv: TglVertexAttrib3fv; glVertexAttrib4f: TglVertexAttrib4f; glVertexAttrib4fv: TglVertexAttrib4fv; glVertexAttribPointer: TglVertexAttribPointer; {$ENDIF} {$IFDEF OPENGLES_CORE_3_0} { ============================================== OpenGL ES 3.0 ======================================================= } var glReadBuffer: TglReadBuffer; glDrawRangeElements: TglDrawRangeElements; glTexImage3D: TglTexImage3D; glTexSubImage3D: TglTexSubImage3D; glCopyTexSubImage3D: TglCopyTexSubImage3D; glCompressedTexImage3D: TglCompressedTexImage3D; glCompressedTexSubImage3D: TglCompressedTexSubImage3D; glGenQueries: TglGenQueries; glDeleteQueries: TglDeleteQueries; glIsQuery: TglIsQuery; glBeginQuery: TglBeginQuery; glEndQuery: TglEndQuery; glGetQueryiv: TglGetQueryiv; glGetQueryObjectuiv: TglGetQueryObjectuiv; glUnmapBuffer: TglUnmapBuffer; glGetBufferPointerv: TglGetBufferPointerv; glDrawBuffers: TglDrawBuffers; glUniformMatrix2x3fv: TglUniformMatrix2x3fv; glUniformMatrix3x2fv: TglUniformMatrix3x2fv; glUniformMatrix2x4fv: TglUniformMatrix2x4fv; glUniformMatrix4x2fv: TglUniformMatrix4x2fv; glUniformMatrix3x4fv: TglUniformMatrix3x4fv; glUniformMatrix4x3fv: TglUniformMatrix4x3fv; glBlitFramebuffer: TglBlitFramebuffer; glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample; glFramebufferTextureLayer: TglFramebufferTextureLayer; glMapBufferRange: TglMapBufferRange; glFlushMappedBufferRange: TglFlushMappedBufferRange; glBindVertexArray: TglBindVertexArray; glDeleteVertexArrays: TglDeleteVertexArrays; glGenVertexArrays: TglGenVertexArrays; glIsVertexArray: TglIsVertexArray; glGetIntegeriv: TglGetIntegeriv; glBeginTransformFeedback: TglBeginTransformFeedback; glEndTransformFeedback: TglEndTransformFeedback; glBindBufferRange: TglBindBufferRange; glBindBufferBase: TglBindBufferBase; glTransformFeedbackVaryings: TglTransformFeedbackVaryings; glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying; glVertexAttribIPointer: TglVertexAttribIPointer; glGetVertexAttribIiv: TglGetVertexAttribIiv; glGetVertexAttribIuiv: TglGetVertexAttribIuiv; glVertexAttribI4i: TglVertexAttribI4i; glVertexAttribI4ui: TglVertexAttribI4ui; glVertexAttribI4iv: TglVertexAttribI4iv; glVertexAttribI4uiv: TglVertexAttribI4uiv; glGetUniformuiv: TglGetUniformuiv; glGetFragDataLocation: TglGetFragDataLocation; glUniform1ui: TglUniform1ui; glUniform2ui: TglUniform2ui; glUniform3ui: TglUniform3ui; glUniform4ui: TglUniform4ui; glUniform1uiv: TglUniform1uiv; glUniform2uiv: TglUniform2uiv; glUniform3uiv: TglUniform3uiv; glUniform4uiv: TglUniform4uiv; glClearBufferiv: TglClearBufferiv; glClearBufferuiv: TglClearBufferuiv; glClearBufferfv: TglClearBufferfv; glClearBufferfi: TglClearBufferfi; glGetStringi: TglGetStringi; glCopyBufferSubData: TglCopyBufferSubData; glGetUniformIndices: TglGetUniformIndices; glGetActiveUniformsiv: TglGetActiveUniformsiv; glGetUniformBlockIndex: TglGetUniformBlockIndex; glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv; glGetActiveUniformBlockName: TglGetActiveUniformBlockName; glUniformBlockBinding: TglUniformBlockBinding; glDrawArraysInstanced: TglDrawArraysInstanced; glDrawElementsInstanced: TglDrawElementsInstanced; glFenceSync: TglFenceSync; glIsSync: TglIsSync; glDeleteSync: TglDeleteSync; glClientWaitSync: TglClientWaitSync; glWaitSync: TglWaitSync; glGetInteger64v: TglGetInteger64v; glGetSynciv: TglGetSynciv; glGetInteger64iv: TglGetInteger64iv; glGetBufferParameteri64v: TglGetBufferParameteri64v; glGenSamplers: TglGenSamplers; glDeleteSamplers: TglDeleteSamplers; glIsSampler: TglIsSampler; glBindSampler: TglBindSampler; glSamplerParameteri: TglSamplerParameteri; glSamplerParameteriv: TglSamplerParameteriv; glSamplerParameterf: TglSamplerParameterf; glSamplerParameterfv: TglSamplerParameterfv; glGetSamplerParameteriv: TglGetSamplerParameteriv; glGetSamplerParameterfv: TglGetSamplerParameterfv; glVertexAttribDivisor: TglVertexAttribDivisor; glBindTransformFeedback: TglBindTransformFeedback; glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks; glGenTransformFeedbacks: TglGenTransformFeedbacks; glIsTransformFeedback: TglIsTransformFeedback; glPauseTransformFeedback: TglPauseTransformFeedback; glResumeTransformFeedback: TglResumeTransformFeedback; glGetProgramBinary: TglGetProgramBinary; glProgramBinary: TglProgramBinary; glProgramParameteri: TglProgramParameteri; glInvalidateFramebuffer: TglInvalidateFramebuffer; glInvalidateSubFramebuffer: TglInvalidateSubFramebuffer; glTexStorage2D: TglTexStorage2D; glTexStorage3D: TglTexStorage3D; glGetInternalformativ: TglGetInternalformativ; {$ENDIF} {$IFDEF OPENGLES_CORE_3_1} { ============================================== OpenGL ES 3.1 ======================================================= } var glDispatchCompute: TglDispatchCompute; glDispatchComputeIndirect: TglDispatchComputeIndirect; glDrawArraysIndirect: TglDrawArraysIndirect; glDrawElementsIndirect: TglDrawElementsIndirect; glFramebufferParameteri: TglFramebufferParameteri; glGetFramebufferParameteriv: TglGetFramebufferParameteriv; glGetProgramInterfaceiv: TglGetProgramInterfaceiv; glGetProgramResourceIndex: TglGetProgramResourceIndex; glGetProgramResourceName: TglGetProgramResourceName; glGetProgramResourceiv: TglGetProgramResourceiv; glGetProgramResourceLocation: TglGetProgramResourceLocation; glUseProgramStages: TglUseProgramStages; glActiveShaderProgram: TglActiveShaderProgram; glCreateShaderProgramv: TglCreateShaderProgramv; glBindProgramPipeline: TglBindProgramPipeline; glDeleteProgramPipelines: TglDeleteProgramPipelines; glGenProgramPipelines: TglGenProgramPipelines; glIsProgramPipeline: TglIsProgramPipeline; glGetProgramPipelineiv: TglGetProgramPipelineiv; glProgramUniform1i: TglProgramUniform1i; glProgramUniform2i: TglProgramUniform2i; glProgramUniform3i: TglProgramUniform3i; glProgramUniform4i: TglProgramUniform4i; glProgramUniform1ui: TglProgramUniform1ui; glProgramUniform2ui: TglProgramUniform2ui; glProgramUniform3ui: TglProgramUniform3ui; glProgramUniform4ui: TglProgramUniform4ui; glProgramUniform1f: TglProgramUniform1f; glProgramUniform2f: TglProgramUniform2f; glProgramUniform3f: TglProgramUniform3f; glProgramUniform4f: TglProgramUniform4f; glProgramUniform1iv: TglProgramUniform1iv; glProgramUniform2iv: TglProgramUniform2iv; glProgramUniform3iv: TglProgramUniform3iv; glProgramUniform4iv: TglProgramUniform4iv; glProgramUniform1uiv: TglProgramUniform1uiv; glProgramUniform2uiv: TglProgramUniform2uiv; glProgramUniform3uiv: TglProgramUniform3uiv; glProgramUniform4uiv: TglProgramUniform4uiv; glProgramUniform1fv: TglProgramUniform1fv; glProgramUniform2fv: TglProgramUniform2fv; glProgramUniform3fv: TglProgramUniform3fv; glProgramUniform4fv: TglProgramUniform4fv; glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv; glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv; glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv; glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv; glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv; glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv; glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv; glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv; glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv; glValidateProgramPipeline: TglValidateProgramPipeline; glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog; glBindImageTexture: TglBindImageTexture; glGetBooleaniv: TglGetBooleaniv; glMemoryBarrier: TglMemoryBarrier; glMemoryBarrierByRegion: TglMemoryBarrierByRegion; glTexStorage2DMultisample: TglTexStorage2DMultisample; glGetMultisamplefv: TglGetMultisamplefv; glSampleMaski: TglSampleMaski; glGetTexLevelParameteriv: TglGetTexLevelParameteriv; glGetTexLevelParameterfv: TglGetTexLevelParameterfv; glBindVertexBuffer: TglBindVertexBuffer; glVertexAttribFormat: TglVertexAttribFormat; glVertexAttribIFormat: TglVertexAttribIFormat; glVertexAttribBinding: TglVertexAttribBinding; glVertexBindingDivisor: TglVertexBindingDivisor; {$ENDIF} {$IFDEF OPENGLES_EXTENSIONS} { =============================================== Extensions ========================================================= } { GL_KHR_blend_equation_advanced } const GL_MULTIPLY_KHR = $9294; GL_SCREEN_KHR = $9295; GL_OVERLAY_KHR = $9296; GL_DARKEN_KHR = $9297; GL_LIGHTEN_KHR = $9298; GL_COLORDODGE_KHR = $9299; GL_COLORBURN_KHR = $929A; GL_HARDLIGHT_KHR = $929B; GL_SOFTLIGHT_KHR = $929C; GL_DIFFERENCE_KHR = $929E; GL_EXCLUSION_KHR = $92A0; GL_HSL_HUE_KHR = $92AD; GL_HSL_SATURATION_KHR = $92AE; GL_HSL_COLOR_KHR = $92AF; GL_HSL_LUMINOSITY_KHR = $92B0; type TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBlendBarrierKHR: TglBlendBarrierKHR; { GL_KHR_blend_equation_advanced_coherent } const GL_BLEND_ADVANCED_COHERENT_KHR = $9285; { GL_KHR_context_flush_control } const GL_CONTEXT_RELEASE_BEHAVIOR_KHR = $82FB; GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = $82FC; { GL_KHR_debug } const GL_SAMPLER = $82E6; GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = $8242; GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = $8243; GL_DEBUG_CALLBACK_FUNCTION_KHR = $8244; GL_DEBUG_CALLBACK_USER_PARAM_KHR = $8245; GL_DEBUG_SOURCE_API_KHR = $8246; GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = $8247; GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = $8248; GL_DEBUG_SOURCE_THIRD_PARTY_KHR = $8249; GL_DEBUG_SOURCE_APPLICATION_KHR = $824A; GL_DEBUG_SOURCE_OTHER_KHR = $824B; GL_DEBUG_TYPE_ERROR_KHR = $824C; GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = $824D; GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = $824E; GL_DEBUG_TYPE_PORTABILITY_KHR = $824F; GL_DEBUG_TYPE_PERFORMANCE_KHR = $8250; GL_DEBUG_TYPE_OTHER_KHR = $8251; GL_DEBUG_TYPE_MARKER_KHR = $8268; GL_DEBUG_TYPE_PUSH_GROUP_KHR = $8269; GL_DEBUG_TYPE_POP_GROUP_KHR = $826A; GL_DEBUG_SEVERITY_NOTIFICATION_KHR = $826B; GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = $826C; GL_DEBUG_GROUP_STACK_DEPTH_KHR = $826D; GL_BUFFER_KHR = $82E0; GL_SHADER_KHR = $82E1; GL_PROGRAM_KHR = $82E2; GL_VERTEX_ARRAY_KHR = $8074; GL_QUERY_KHR = $82E3; GL_SAMPLER_KHR = $82E6; GL_MAX_LABEL_LENGTH_KHR = $82E8; GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = $9143; GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = $9144; GL_DEBUG_LOGGED_MESSAGES_KHR = $9145; GL_DEBUG_SEVERITY_HIGH_KHR = $9146; GL_DEBUG_SEVERITY_MEDIUM_KHR = $9147; GL_DEBUG_SEVERITY_LOW_KHR = $9148; GL_DEBUG_OUTPUT_KHR = $92E0; GL_CONTEXT_FLAG_DEBUG_BIT_KHR = $00000002; GL_STACK_OVERFLOW_KHR = $0503; GL_STACK_UNDERFLOW_KHR = $0504; type TglDebugProcKHR = procedure(aSource: GLenum; aType: GLenum; aId: GLuint; aSeverity: GLenum; aLength: GLsizei; const aMessage: PGLchar; const aUserParam: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDebugMessageControlKHR = procedure(aSource: GLenum; aType: GLenum; aSeverity: GLenum; aCount: GLsizei; const aIds: PGLuint; aEnabled: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDebugMessageInsertKHR = procedure(aSource: GLenum; aType: GLenum; aId: GLuint; aSeverity: GLenum; aLength: GLsizei; const aBuf: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDebugMessageCallbackKHR = procedure(aCallback: TglDebugProcKHR; const aUserParam: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetDebugMessageLogKHR = function (aCount: GLuint; aBufSize: GLsizei; aSources: PGLenum; aTypes: PGLenum; aIds: PGLuint; aSeverities: PGLenum; aLengths: PGLsizei; aMessageLog: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPushDebugGroupKHR = procedure(aSource: GLenum; aId: GLuint; aLength: GLsizei; const aMessage: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPopDebugGroupKHR = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglObjectLabelKHR = procedure(aIdentifier: GLenum; aName: GLuint; aLength: GLsizei; const aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetObjectLabelKHR = procedure(aIdentifier: GLenum; aName: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglObjectPtrLabelKHR = procedure(const aPtr: Pointer; aLength: GLsizei; const aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetObjectPtrLabelKHR = procedure(const aPtr: Pointer; aBufSize: GLsizei; aLength: PGLsizei; aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPointervKHR = procedure(aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDebugMessageControlKHR: TglDebugMessageControlKHR; glDebugMessageInsertKHR: TglDebugMessageInsertKHR; glDebugMessageCallbackKHR: TglDebugMessageCallbackKHR; glGetDebugMessageLogKHR: TglGetDebugMessageLogKHR; glPushDebugGroupKHR: TglPushDebugGroupKHR; glPopDebugGroupKHR: TglPopDebugGroupKHR; glObjectLabelKHR: TglObjectLabelKHR; glGetObjectLabelKHR: TglGetObjectLabelKHR; glObjectPtrLabelKHR: TglObjectPtrLabelKHR; glGetObjectPtrLabelKHR: TglGetObjectPtrLabelKHR; glGetPointervKHR: TglGetPointervKHR; { GL_KHR_robust_buffer_access_behavior } // none { GL_KHR_robustness } const GL_CONTEXT_ROBUST_ACCESS_KHR = $90F3; GL_LOSE_CONTEXT_ON_RESET_KHR = $8252; GL_GUILTY_CONTEXT_RESET_KHR = $8253; GL_INNOCENT_CONTEXT_RESET_KHR = $8254; GL_UNKNOWN_CONTEXT_RESET_KHR = $8255; GL_RESET_NOTIFICATION_STRATEGY_KHR = $8256; GL_NO_RESET_NOTIFICATION_KHR = $8261; GL_CONTEXT_LOST_KHR = $0507; type TglGetGraphicsResetStatusKHR = function : GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglReadnPixelsKHR = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aBufSize: GLsizei; aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetnUniformfvKHR = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetnUniformivKHR = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetnUniformuivKHR = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetGraphicsResetStatusKHR: TglGetGraphicsResetStatusKHR; glReadnPixelsKHR: TglReadnPixelsKHR; glGetnUniformfvKHR: TglGetnUniformfvKHR; glGetnUniformivKHR: TglGetnUniformivKHR; glGetnUniformuivKHR: TglGetnUniformuivKHR; { GL_KHR_texture_compression_astc_hdr } const GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0; GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1; GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2; GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3; GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4; GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5; GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6; GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7; GL_COMPRESSED_RGBA_ASTC_10x5_KHR = $93B8; GL_COMPRESSED_RGBA_ASTC_10x6_KHR = $93B9; GL_COMPRESSED_RGBA_ASTC_10x8_KHR = $93BA; GL_COMPRESSED_RGBA_ASTC_10x10_KHR = $93BB; GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC; GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD; { GL_KHR_texture_compression_astc_ldr } // none { GL_OES_EGL_image } type GLeglImageOES = Pointer; TglEGLImageTargetTexture2DOES = procedure(aTarget: GLenum; aImage: GLeglImageOES); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEGLImageTargetRenderbufferStorageOES = procedure(aTarget: GLenum; aImage: GLeglImageOES); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glEGLImageTargetTexture2DOES: TglEGLImageTargetTexture2DOES; glEGLImageTargetRenderbufferStorageOES: TglEGLImageTargetRenderbufferStorageOES; { GL_OES_EGL_image_external } const GL_TEXTURE_EXTERNAL_OES = $8D65; GL_TEXTURE_BINDING_EXTERNAL_OES = $8D67; GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = $8D68; GL_SAMPLER_EXTERNAL_OES = $8D66; { GL_OES_compressed_ETC1_RGB8_sub_texture } // none { GL_OES_compressed_ETC1_RGB8_texture } const GL_ETC1_RGB8_OES = $8D64; { GL_OES_compressed_paletted_texture } const GL_PALETTE4_RGB8_OES = $8B90; GL_PALETTE4_RGBA8_OES = $8B91; GL_PALETTE4_R5_G6_B5_OES = $8B92; GL_PALETTE4_RGBA4_OES = $8B93; GL_PALETTE4_RGB5_A1_OES = $8B94; GL_PALETTE8_RGB8_OES = $8B95; GL_PALETTE8_RGBA8_OES = $8B96; GL_PALETTE8_R5_G6_B5_OES = $8B97; GL_PALETTE8_RGBA4_OES = $8B98; GL_PALETTE8_RGB5_A1_OES = $8B99; { GL_OES_depth24 } const GL_DEPTH_COMPONENT24_OES = $81A6; { GL_OES_depth32 } const GL_DEPTH_COMPONENT32_OES = $81A7; { GL_OES_depth_texture } // none { GL_OES_element_index_uint } // none { GL_OES_fbo_render_mipmap } // none { GL_OES_fragment_precision_high } // none { GL_OES_get_program_binary } const GL_PROGRAM_BINARY_LENGTH_OES = $8741; GL_NUM_PROGRAM_BINARY_FORMATS_OES = $87FE; GL_PROGRAM_BINARY_FORMATS_OES = $87FF; type TglGetProgramBinaryOES = procedure(aProgram: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aBinaryFormat: PGLenum; aBinary: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramBinaryOES = procedure(aProgram: GLuint; aBinaryFormat: GLenum; const aBinary: Pointer; aLength: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetProgramBinaryOES: TglGetProgramBinaryOES; glProgramBinaryOES: TglProgramBinaryOES; { GL_OES_mapbuffer } const GL_WRITE_ONLY_OES = $88B9; GL_BUFFER_ACCESS_OES = $88BB; GL_BUFFER_MAPPED_OES = $88BC; GL_BUFFER_MAP_POINTER_OES = $88BD; type TglMapBufferOES = function (aTarget: GLenum; aAccess: GLenum): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUnmapBufferOES = function (aTarget: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetBufferPointervOES = procedure(aTarget: GLenum; aPname: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glMapBufferOES: TglMapBufferOES; glUnmapBufferOES: TglUnmapBufferOES; glGetBufferPointervOES: TglGetBufferPointervOES; { GL_OES_packed_depth_stencil } const GL_DEPTH_STENCIL_OES = $84F9; GL_UNSIGNED_INT_24_8_OES = $84FA; GL_DEPTH24_STENCIL8_OES = $88F0; { GL_OES_required_internalformat } const GL_ALPHA8_OES = $803C; GL_DEPTH_COMPONENT16_OES = $81A5; GL_LUMINANCE4_ALPHA4_OES = $8043; GL_LUMINANCE8_ALPHA8_OES = $8045; GL_LUMINANCE8_OES = $8040; GL_RGBA4_OES = $8056; GL_RGB5_A1_OES = $8057; GL_RGB565_OES = $8D62; GL_RGB8_OES = $8051; GL_RGBA8_OES = $8058; GL_RGB10_EXT = $8052; GL_RGB10_A2_EXT = $8059; { GL_OES_rgb8_rgba8 } // none { GL_OES_sample_shading } const GL_SAMPLE_SHADING_OES = $8C36; GL_MIN_SAMPLE_SHADING_VALUE_OES = $8C37; type TglMinSampleShadingOES = procedure(aValue: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glMinSampleShadingOES: TglMinSampleShadingOES; { GL_OES_sample_ variables } // none { GL_OES_shader_image_atomic } // none { GL_OES_shader_multisample_interpolation } const GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = $8E5B; GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = $8E5C; GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = $8E5D; { GL_OES_standard_derivatives } const GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = $8B8B; { GL_OES_stencil1 } const GL_STENCIL_INDEX1_OES = $8D46; { GL_OES_stencil4 } const GL_STENCIL_INDEX4_OES = $8D47; { GL_OES_surfaceless_context } const GL_FRAMEBUFFER_UNDEFINED_OES = $8219; { GL_OES_texture_3D } const GL_TEXTURE_WRAP_R_OES = $8072; GL_TEXTURE_3D_OES = $806F; GL_TEXTURE_BINDING_3D_OES = $806A; GL_MAX_3D_TEXTURE_SIZE_OES = $8073; GL_SAMPLER_3D_OES = $8B5F; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = $8CD4; type TglTexImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aBorder: GLint; aFormat: GLenum; aType: GLenum; const aPixels: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexSubImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aType: GLenum; const aPixels: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCopyTexSubImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCompressedTexImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aBorder: GLint; aImageSize: GLsizei; const aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCompressedTexSubImage3DOES = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aImageSize: GLsizei; const aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferTexture3DOES = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint; aZoffset: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glTexImage3DOES: TglTexImage3DOES; glTexSubImage3DOES: TglTexSubImage3DOES; glCopyTexSubImage3DOES: TglCopyTexSubImage3DOES; glCompressedTexImage3DOES: TglCompressedTexImage3DOES; glCompressedTexSubImage3DOES: TglCompressedTexSubImage3DOES; glFramebufferTexture3DOES: TglFramebufferTexture3DOES; { GL_OES_texture_compression_astc } const GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = $93C0; GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = $93C1; GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = $93C2; GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = $93C3; GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = $93C4; GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = $93C5; GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = $93C6; GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = $93C7; GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = $93C8; GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = $93C9; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = $93E0; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = $93E1; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = $93E2; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = $93E3; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = $93E4; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = $93E5; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = $93E6; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = $93E7; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = $93E8; GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = $93E9; { GL_OES_texture_float } // none { GL_OES_texture_float_linear } // none { GL_OES_texture_half_float } const GL_HALF_FLOAT_OES = $8D61; { GL_OES_texture_half_float_linear } // none { GL_OES_texture_npot } // none { GL_OES_texture_stencil8 } const GL_STENCIL_INDEX_OES = $1901; GL_STENCIL_INDEX8_OES = $8D48; { GL_OES_texture_storage_multisample_2d_array } const GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = $9102; GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = $9105; GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = $910B; GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = $910C; GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = $910D; type TglTexStorage3DMultisampleOES = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glTexStorage3DMultisampleOES: TglTexStorage3DMultisampleOES; { GL_OES_vertex_array_object } const GL_VERTEX_ARRAY_BINDING_OES = $85B5; type TglBindVertexArrayOES = procedure(aArray: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteVertexArraysOES = procedure(n: GLsizei; const aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenVertexArraysOES = procedure(n: GLsizei; aArrays: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsVertexArrayOES = function (aArray: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBindVertexArrayOES: TglBindVertexArrayOES; glDeleteVertexArraysOES: TglDeleteVertexArraysOES; glGenVertexArraysOES: TglGenVertexArraysOES; glIsVertexArrayOES: TglIsVertexArrayOES; { GL_OES_vertex_half_float } // none {$IFDEF OPENGLES_EXTENSIONS} { GL_OES_vertex_type_10_10_10_2 } const GL_UNSIGNED_INT_10_10_10_2_OES = $8DF6; GL_INT_10_10_10_2_OES = $8DF7; { GL_AMD_compressed_3DC_texture } const GL_3DC_X_AMD = $87F9; GL_3DC_XY_AMD = $87FA; { GL_AMD_compressed_ATC_texture } const GL_ATC_RGB_AMD = $8C92; GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = $8C93; GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = $87EE; { GL_AMD_performance_monitor } const GL_COUNTER_TYPE_AMD = $8BC0; GL_COUNTER_RANGE_AMD = $8BC1; GL_UNSIGNED_INT64_AMD = $8BC2; GL_PERCENTAGE_AMD = $8BC3; GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4; GL_PERFMON_RESULT_SIZE_AMD = $8BC5; GL_PERFMON_RESULT_AMD = $8BC6; type TglGetPerfMonitorGroupsAMD = procedure(aNumGroups: PGLint; aGroupsSize: GLsizei; aGroups: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfMonitorCountersAMD = procedure(aGroup: GLuint; aNumCounters: PGLint; aMaxActiveCounters: PGLint; aCounterSize: GLsizei; aCounters: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfMonitorGroupStringAMD = procedure(aGroup: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aGroupString: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfMonitorCounterStringAMD = procedure(aGroup: GLuint; aCounter: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aCounterString: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfMonitorCounterInfoAMD = procedure(aGroup: GLuint; aCounter: GLuint; aPname: GLenum; aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenPerfMonitorsAMD = procedure(n: GLsizei; aMonitors: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeletePerfMonitorsAMD = procedure(n: GLsizei; aMonitors: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSelectPerfMonitorCountersAMD = procedure(aMonitor: GLuint; aEnable: GLboolean; aGroup: GLuint; aNumCounters: GLint; aCounterList: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBeginPerfMonitorAMD = procedure(aMonitor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndPerfMonitorAMD = procedure(aMonitor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfMonitorCounterDataAMD = procedure(aMonitor: GLuint; aPname: GLenum; aDataSize: GLsizei; aData: PGLuint; aBytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD; glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD; glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD; glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD; glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD; glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD; glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD; glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD; glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD; glEndPerfMonitorAMD: TglEndPerfMonitorAMD; glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD; { GL_AMD_program_binary_Z400 } const GL_Z400_BINARY_AMD = $8740; { GL_ANDROID_extension_pack_es31a } // none { GL_ANGLE_depth_texture } // none { GL_ANGLE_framebuffer_blit } const GL_READ_FRAMEBUFFER_ANGLE = $8CA8; GL_DRAW_FRAMEBUFFER_ANGLE = $8CA9; GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = $8CA6; GL_READ_FRAMEBUFFER_BINDING_ANGLE = $8CAA; type TglBlitFramebufferANGLE = procedure(aSrcX0: GLint; aSrcY0: GLint; aSrcX1: GLint; aSrcY1: GLint; aDstX0: GLint; aDstY0: GLint; aDstX1: GLint; aDstY1: GLint; aMask: GLbitfield; aFilter: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBlitFramebufferANGLE: TglBlitFramebufferANGLE; { GL_ANGLE_framebuffer_multisample } const GL_RENDERBUFFER_SAMPLES_ANGLE = $8CAB; GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = $8D56; GL_MAX_SAMPLES_ANGLE = $8D57; type TglRenderbufferStorageMultisampleANGLE = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glRenderbufferStorageMultisampleANGLE: TglRenderbufferStorageMultisampleANGLE; { GL_ANGLE_instanced_arrays } const GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = $88FE; type TglDrawArraysInstancedANGLE = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstancedANGLE = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglVertexAttribDivisorANGLE = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawArraysInstancedANGLE: TglDrawArraysInstancedANGLE; glDrawElementsInstancedANGLE: TglDrawElementsInstancedANGLE; glVertexAttribDivisorANGLE: TglVertexAttribDivisorANGLE; { GL_ANGLE_pack_reverse_row_order } const GL_PACK_REVERSE_ROW_ORDER_ANGLE = $93A4; { GL_ANGLE_program_binary } const GL_PROGRAM_BINARY_ANGLE = $93A6; { GL_ANGLE_texture_compression_dxt3 } const GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = $83F2; { GL_ANGLE_texture_compression_dxt5 } const GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = $83F3; { GL_ANGLE_texture_usage } const GL_TEXTURE_USAGE_ANGLE = $93A2; GL_FRAMEBUFFER_ATTACHMENT_ANGLE = $93A3; { GL_ANGLE_translated_shader_source } const GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = $93A0; type TglGetTranslatedShaderSourceANGLE = procedure(aShader: GLuint; aBufsize: GLsizei; aLength: PGLsizei; aSource: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetTranslatedShaderSourceANGLE: TglGetTranslatedShaderSourceANGLE; { GL_APPLE_clip_distance } const GL_MAX_CLIP_DISTANCES_APPLE = $0D32; GL_CLIP_DISTANCE0_APPLE = $3000; GL_CLIP_DISTANCE1_APPLE = $3001; GL_CLIP_DISTANCE2_APPLE = $3002; GL_CLIP_DISTANCE3_APPLE = $3003; GL_CLIP_DISTANCE4_APPLE = $3004; GL_CLIP_DISTANCE5_APPLE = $3005; GL_CLIP_DISTANCE6_APPLE = $3006; GL_CLIP_DISTANCE7_APPLE = $3007; { GL_APPLE_color_buffer_packed_float } // none { GL_APPLE_copy_texture_levels } type TglCopyTextureLevelsAPPLE = procedure(aDestinationTexture: GLuint; aSourceTexture: GLuint; aSourceBaseLevel: GLint; aSourceLevelCount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glCopyTextureLevelsAPPLE: TglCopyTextureLevelsAPPLE; { GL_APPLE_framebuffer_multisample } const GL_RENDERBUFFER_SAMPLES_APPLE = $8CAB; GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = $8D56; GL_MAX_SAMPLES_APPLE = $8D57; GL_READ_FRAMEBUFFER_APPLE = $8CA8; GL_DRAW_FRAMEBUFFER_APPLE = $8CA9; GL_DRAW_FRAMEBUFFER_BINDING_APPLE = $8CA6; GL_READ_FRAMEBUFFER_BINDING_APPLE = $8CAA; type TglRenderbufferStorageMultisampleAPPLE = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglResolveMultisampleFramebufferAPPLE = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glRenderbufferStorageMultisampleAPPLE: TglRenderbufferStorageMultisampleAPPLE; glResolveMultisampleFramebufferAPPLE: TglResolveMultisampleFramebufferAPPLE; { GL_APPLE_rgb_422 } const GL_RGB_422_APPLE = $8A1F; GL_UNSIGNED_SHORT_8_8_APPLE = $85BA; GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB; GL_RGB_RAW_422_APPLE = $8A51; { GL_APPLE_sync } const GL_SYNC_OBJECT_APPLE = $8A53; GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = $9111; GL_OBJECT_TYPE_APPLE = $9112; GL_SYNC_CONDITION_APPLE = $9113; GL_SYNC_STATUS_APPLE = $9114; GL_SYNC_FLAGS_APPLE = $9115; GL_SYNC_FENCE_APPLE = $9116; GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = $9117; GL_UNSIGNALED_APPLE = $9118; GL_SIGNALED_APPLE = $9119; GL_ALREADY_SIGNALED_APPLE = $911A; GL_TIMEOUT_EXPIRED_APPLE = $911B; GL_CONDITION_SATISFIED_APPLE = $911C; GL_WAIT_FAILED_APPLE = $911D; GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = $00000001; GL_TIMEOUT_IGNORED_APPLE = $FFFFFFFFFFFFFFFF; type TglFenceSyncAPPLE = function (aCondition: GLenum; aFlags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsSyncAPPLE = function (aSync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteSyncAPPLE = procedure(aSync: GLsync); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglClientWaitSyncAPPLE = function (aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglWaitSyncAPPLE = procedure(aSync: GLsync; aFlags: GLbitfield; aTimeout: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetInteger64vAPPLE = procedure(aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetSyncivAPPLE = procedure(aSync: GLsync; aPname: GLenum; aBufSize: GLsizei; aLength: PGLsizei; aValues: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glFenceSyncAPPLE: TglFenceSyncAPPLE; glIsSyncAPPLE: TglIsSyncAPPLE; glDeleteSyncAPPLE: TglDeleteSyncAPPLE; glClientWaitSyncAPPLE: TglClientWaitSyncAPPLE; glWaitSyncAPPLE: TglWaitSyncAPPLE; glGetInteger64vAPPLE: TglGetInteger64vAPPLE; glGetSyncivAPPLE: TglGetSyncivAPPLE; { GL_APPLE_texture_format_BGRA8888 } const GL_BGRA_EXT = $80E1; GL_BGRA8_EXT = $93A1; { GL_APPLE_texture_max_level } const GL_TEXTURE_MAX_LEVEL_APPLE = $813D; { GL_APPLE_texture_packed_float } const GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = $8C3B; GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = $8C3E; GL_R11F_G11F_B10F_APPLE = $8C3A; GL_RGB9_E5_APPLE = $8C3D; { GL_ARM_mali_program_binary } const GL_MALI_PROGRAM_BINARY_ARM = $8F61; { GL_ARM_mali_shader_binary } const GL_MALI_SHADER_BINARY_ARM = $8F60; { GL_ARM_rgba8 } // none { GL_ARM_shader_framebuffer_fetch } const GL_FETCH_PER_SAMPLE_ARM = $8F65; GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = $8F66; { GL_ARM_shader_framebuffer_fetch_depth_stencil } { GL_DMP_program_binary } const GL_SMAPHS30_PROGRAM_BINARY_DMP = $9251; GL_SMAPHS_PROGRAM_BINARY_DMP = $9252; GL_DMP_PROGRAM_BINARY_DMP = $9253; { GL_DMP_shader_binary } const GL_SHADER_BINARY_DMP = $9250; { GL_EXT_base_instance } type TglDrawArraysInstancedBaseInstanceEXT = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aInstancecount: GLsizei; aBaseinstance: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstancedBaseInstanceEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aInstancecount: GLsizei; aBaseinstance: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstancedBaseVertexBaseInstanceEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aInstancecount: GLsizei; aBasevertex: GLint; aBaseinstance: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawArraysInstancedBaseInstanceEXT: TglDrawArraysInstancedBaseInstanceEXT; glDrawElementsInstancedBaseInstanceEXT: TglDrawElementsInstancedBaseInstanceEXT; glDrawElementsInstancedBaseVertexBaseInstanceEXT: TglDrawElementsInstancedBaseVertexBaseInstanceEXT; { GL_EXT_blend_minmax } const GL_MIN_EXT = $8007; GL_MAX_EXT = $8008; { GL_EXT_color_buffer_half_float } const GL_RGBA16F_EXT = $881A; GL_RGB16F_EXT = $881B; GL_RG16F_EXT = $822F; GL_R16F_EXT = $822D; GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = $8211; GL_UNSIGNED_NORMALIZED_EXT = $8C17; { GL_EXT_copy_image } type TglCopyImageSubDataEXT = procedure(aSrcName: GLuint; aSrcTarget: GLenum; aSrcLevel: GLint; aSrcX: GLint; aSrcY: GLint; aSrcZ: GLint; aDstName: GLuint; aDstTarget: GLenum; aDstLevel: GLint; aDstX: GLint; aDstY: GLint; aDstZ: GLint; aSrcWidth: GLsizei; aSrcHeight: GLsizei; aSrcDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glCopyImageSubDataEXT: TglCopyImageSubDataEXT; { GL_EXT_debug_label } const GL_PROGRAM_PIPELINE_OBJECT_EXT = $8A4F; GL_PROGRAM_OBJECT_EXT = $8B40; GL_SHADER_OBJECT_EXT = $8B48; GL_BUFFER_OBJECT_EXT = $9151; GL_QUERY_OBJECT_EXT = $9153; GL_VERTEX_ARRAY_OBJECT_EXT = $9154; // GL_TRANSFORM_FEEDBACK = $8E22; type TglLabelObjectEXT = procedure(aType: GLenum; aObject: GLuint; aLength: GLsizei; const aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetObjectLabelEXT = procedure(aType: GLenum; aObject: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aLabel: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glLabelObjectEXT: TglLabelObjectEXT; glGetObjectLabelEXT: TglGetObjectLabelEXT; { GL_EXT_debug_marker } type TglInsertEventMarkerEXT = procedure(aLength: GLsizei; const aMarker: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPushGroupMarkerEXT = procedure(aLength: GLsizei; const aMarker: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPopGroupMarkerEXT = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glInsertEventMarkerEXT: TglInsertEventMarkerEXT; glPushGroupMarkerEXT: TglPushGroupMarkerEXT; glPopGroupMarkerEXT: TglPopGroupMarkerEXT; { GL_EXT_discard_framebuffer } const GL_COLOR_EXT = $1800; GL_DEPTH_EXT = $1801; GL_STENCIL_EXT = $1802; type TglDiscardFramebufferEXT = procedure(aTarget: GLenum; aNumAttachments: GLsizei; const aAttachments: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDiscardFramebufferEXT: TglDiscardFramebufferEXT; { GL_EXT_disjoint_timer_query } const GL_QUERY_COUNTER_BITS_EXT = $8864; GL_CURRENT_QUERY_EXT = $8865; GL_QUERY_RESULT_EXT = $8866; GL_QUERY_RESULT_AVAILABLE_EXT = $8867; GL_TIME_ELAPSED_EXT = $88BF; GL_TIMESTAMP_EXT = $8E28; GL_GPU_DISJOINT_EXT = $8FBB; type TglGenQueriesEXT = procedure(n: GLsizei; aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteQueriesEXT = procedure(n: GLsizei; const aIds: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsQueryEXT = function (aId: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBeginQueryEXT = procedure(aTarget: GLenum; aId: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndQueryEXT = procedure(aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglQueryCounterEXT = procedure(aId: GLuint; aTarget: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryivEXT = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryObjectivEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryObjectuivEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryObjecti64vEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetQueryObjectui64vEXT = procedure(aId: GLuint; aPname: GLenum; aParams: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGenQueriesEXT: TglGenQueriesEXT; glDeleteQueriesEXT: TglDeleteQueriesEXT; glIsQueryEXT: TglIsQueryEXT; glBeginQueryEXT: TglBeginQueryEXT; glEndQueryEXT: TglEndQueryEXT; glQueryCounterEXT: TglQueryCounterEXT; glGetQueryivEXT: TglGetQueryivEXT; glGetQueryObjectivEXT: TglGetQueryObjectivEXT; glGetQueryObjectuivEXT: TglGetQueryObjectuivEXT; glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT; glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT; { GL_EXT_draw_buffers } const GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF; GL_MAX_DRAW_BUFFERS_EXT = $8824; GL_DRAW_BUFFER0_EXT = $8825; GL_DRAW_BUFFER1_EXT = $8826; GL_DRAW_BUFFER2_EXT = $8827; GL_DRAW_BUFFER3_EXT = $8828; GL_DRAW_BUFFER4_EXT = $8829; GL_DRAW_BUFFER5_EXT = $882A; GL_DRAW_BUFFER6_EXT = $882B; GL_DRAW_BUFFER7_EXT = $882C; GL_DRAW_BUFFER8_EXT = $882D; GL_DRAW_BUFFER9_EXT = $882E; GL_DRAW_BUFFER10_EXT = $882F; GL_DRAW_BUFFER11_EXT = $8830; GL_DRAW_BUFFER12_EXT = $8831; GL_DRAW_BUFFER13_EXT = $8832; GL_DRAW_BUFFER14_EXT = $8833; GL_DRAW_BUFFER15_EXT = $8834; GL_COLOR_ATTACHMENT0_EXT = $8CE0; GL_COLOR_ATTACHMENT1_EXT = $8CE1; GL_COLOR_ATTACHMENT2_EXT = $8CE2; GL_COLOR_ATTACHMENT3_EXT = $8CE3; GL_COLOR_ATTACHMENT4_EXT = $8CE4; GL_COLOR_ATTACHMENT5_EXT = $8CE5; GL_COLOR_ATTACHMENT6_EXT = $8CE6; GL_COLOR_ATTACHMENT7_EXT = $8CE7; GL_COLOR_ATTACHMENT8_EXT = $8CE8; GL_COLOR_ATTACHMENT9_EXT = $8CE9; GL_COLOR_ATTACHMENT10_EXT = $8CEA; GL_COLOR_ATTACHMENT11_EXT = $8CEB; GL_COLOR_ATTACHMENT12_EXT = $8CEC; GL_COLOR_ATTACHMENT13_EXT = $8CED; GL_COLOR_ATTACHMENT14_EXT = $8CEE; GL_COLOR_ATTACHMENT15_EXT = $8CEF; type TglDrawBuffersEXT = procedure(n: GLsizei; const aBufs: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawBuffersEXT: TglDrawBuffersEXT; { GL_EXT_draw_buffers_indexed } //GL_MIN = $8007; //GL_MAX = $8008; type TglEnableiEXT = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDisableiEXT = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendEquationiEXT = procedure(aBuf: GLuint; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendEquationSeparateiEXT = procedure(aBuf: GLuint; aModeRGB: GLenum; aModeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendFunciEXT = procedure(aBuf: GLuint; aSrc: GLenum; aDst: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendFuncSeparateiEXT = procedure(aBuf: GLuint; aSrcRGB: GLenum; aDstRGB: GLenum; aSrcAlpha: GLenum; aDstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglColorMaskiEXT = procedure(aIndex: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsEnablediEXT = function (aTarget: GLenum; aIndex: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glEnableiEXT: TglEnableiEXT; glDisableiEXT: TglDisableiEXT; glBlendEquationiEXT: TglBlendEquationiEXT; glBlendEquationSeparateiEXT: TglBlendEquationSeparateiEXT; glBlendFunciEXT: TglBlendFunciEXT; glBlendFuncSeparateiEXT: TglBlendFuncSeparateiEXT; glColorMaskiEXT: TglColorMaskiEXT; glIsEnablediEXT: TglIsEnablediEXT; { GL_EXT_draw_elements_base_vertex } type TglDrawElementsBaseVertexEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aBasevertex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawRangeElementsBaseVertexEXT = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aBasevertex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstancedBaseVertexEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aInstancecount: GLsizei; aBasevertex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultiDrawElementsBaseVertexEXT = procedure(aMode: GLenum; const aCount: PGLsizei; aType: GLenum; const aConstPindices: Pointer; aPrimcount: GLsizei; const aBasevertex: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawElementsBaseVertexEXT: TglDrawElementsBaseVertexEXT; glDrawRangeElementsBaseVertexEXT: TglDrawRangeElementsBaseVertexEXT; glDrawElementsInstancedBaseVertexEXT: TglDrawElementsInstancedBaseVertexEXT; glMultiDrawElementsBaseVertexEXT: TglMultiDrawElementsBaseVertexEXT; { GL_EXT_draw_instanced } type TglDrawArraysInstancedEXT = procedure(aMode: GLenum; aStart: GLint; aCount: GLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstancedEXT = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT; glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT; { GL_EXT_geometry_point_size } { GL_EXT_geometry_shader } const GL_GEOMETRY_SHADER_EXT = $8DD9; GL_GEOMETRY_SHADER_BIT_EXT = $00000004; GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = $8916; GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = $8917; GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = $8918; GL_GEOMETRY_SHADER_INVOCATIONS_EXT = $887F; GL_LAYER_PROVOKING_VERTEX_EXT = $825E; GL_LINES_ADJACENCY_EXT = $000A; GL_LINE_STRIP_ADJACENCY_EXT = $000B; GL_TRIANGLES_ADJACENCY_EXT = $000C; GL_TRIANGLE_STRIP_ADJACENCY_EXT = $000D; GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF; GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = $8A2C; GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8A32; GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = $9123; GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = $9124; GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0; GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1; GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = $8E5A; GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29; GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = $92CF; GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = $92D5; GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = $90CD; GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = $90D7; GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D; GL_LAST_VERTEX_CONVENTION_EXT = $8E4E; GL_UNDEFINED_VERTEX_EXT = $8260; GL_PRIMITIVES_GENERATED_EXT = $8C87; GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = $9312; GL_MAX_FRAMEBUFFER_LAYERS_EXT = $9317; GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8; GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7; GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = $9309; type TglFramebufferTextureEXT = procedure(aTarget: GLenum; aAttachment: GLenum; aTexture: GLuint; aLevel: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glFramebufferTextureEXT: TglFramebufferTextureEXT; { GL_EXT_gpu_shader5 } // none { GL_EXT_instanced_arrays } const GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = $88FE; type TglVertexAttribDivisorEXT = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glVertexAttribDivisorEXT: TglVertexAttribDivisorEXT; { GL_EXT_map_buffer_range } const GL_MAP_READ_BIT_EXT = $0001; GL_MAP_WRITE_BIT_EXT = $0002; GL_MAP_INVALIDATE_RANGE_BIT_EXT = $0004; GL_MAP_INVALIDATE_BUFFER_BIT_EXT = $0008; GL_MAP_FLUSH_EXPLICIT_BIT_EXT = $0010; GL_MAP_UNSYNCHRONIZED_BIT_EXT = $0020; type TglMapBufferRangeEXT = function (aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr; aAccess: GLbitfield): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFlushMappedBufferRangeEXT = procedure(aTarget: GLenum; aOffset: GLintptr; aLength: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glMapBufferRangeEXT: TglMapBufferRangeEXT; glFlushMappedBufferRangeEXT: TglFlushMappedBufferRangeEXT; { GL_EXT_multi_draw_arrays } type TglMultiDrawArraysEXT = procedure(aMode: GLenum; const aFirst: PGLint; const aCount: PGLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultiDrawElementsEXT = procedure(aMode: GLenum; const aCount: PGLsizei; aType: GLenum; const aConstPindices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glMultiDrawArraysEXT: TglMultiDrawArraysEXT; glMultiDrawElementsEXT: TglMultiDrawElementsEXT; { GL_EXT_multi_draw_indirect } type TglMultiDrawArraysIndirectEXT = procedure(aMode: GLenum; const aIndirect: Pointer; aDrawcount: GLsizei; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMultiDrawElementsIndirectEXT = procedure(aMode: GLenum; aType: GLenum; const aIndirect: Pointer; aDrawcount: GLsizei; aStride: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glMultiDrawArraysIndirectEXT: TglMultiDrawArraysIndirectEXT; glMultiDrawElementsIndirectEXT: TglMultiDrawElementsIndirectEXT; { GL_EXT_multisampled_render_to_texture } const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = $8D6C; GL_RENDERBUFFER_SAMPLES_EXT = $8CAB; GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56; GL_MAX_SAMPLES_EXT = $8D57; type TglRenderbufferStorageMultisampleEXT = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferTexture2DMultisampleEXT = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint; aSamples: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT; glFramebufferTexture2DMultisampleEXT: TglFramebufferTexture2DMultisampleEXT; { GL_EXT_multiview_draw_buffers } const GL_COLOR_ATTACHMENT_EXT = $90F0; GL_MULTIVIEW_EXT = $90F1; GL_DRAW_BUFFER_EXT = $0C01; GL_READ_BUFFER_EXT = $0C02; GL_MAX_MULTIVIEW_BUFFERS_EXT = $90F2; type TglReadBufferIndexedEXT = procedure(aSrc: GLenum; aIndex: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawBuffersIndexedEXT = procedure(n: GLint; const aLocation: PGLenum; const aIndices: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetIntegeri_vEXT = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glReadBufferIndexedEXT: TglReadBufferIndexedEXT; glDrawBuffersIndexedEXT: TglDrawBuffersIndexedEXT; glGetIntegeri_vEXT: TglGetIntegeri_vEXT; { GL_EXT_occlusion_query_boolean } const GL_ANY_SAMPLES_PASSED_EXT = $8C2F; GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = $8D6A; { GL_EXT_primitive_bounding_box } const GL_PRIMITIVE_BOUNDING_BOX_EXT = $92BE; type TglPrimitiveBoundingBoxEXT = procedure(aMinX: GLfloat; aMinY: GLfloat; aMinZ: GLfloat; aMinW: GLfloat; aMaxX: GLfloat; aMaxY: GLfloat; aMaxZ: GLfloat; aMaxW: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glPrimitiveBoundingBoxEXT: TglPrimitiveBoundingBoxEXT; { GL_EXT_pvrtc_sRGB } const GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = $8A54; GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = $8A55; GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = $8A56; GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = $8A57; GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = $93F0; GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = $93F1; { GL_EXT_read_format_bgra } const GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = $8365; GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = $8366; { GL_EXT_render_snorm } const //GL_R8_SNORM = $8F94; //GL_RG8_SNORM = $8F95; //GL_RGBA8_SNORM = $8F97; GL_R16_SNORM_EXT = $8F98; GL_RG16_SNORM_EXT = $8F99; GL_RGBA16_SNORM_EXT = $8F9B; { GL_EXT_robustness } const GL_GUILTY_CONTEXT_RESET_EXT = $8253; GL_INNOCENT_CONTEXT_RESET_EXT = $8254; GL_UNKNOWN_CONTEXT_RESET_EXT = $8255; GL_CONTEXT_ROBUST_ACCESS_EXT = $90F3; GL_RESET_NOTIFICATION_STRATEGY_EXT = $8256; GL_LOSE_CONTEXT_ON_RESET_EXT = $8252; GL_NO_RESET_NOTIFICATION_EXT = $8261; type TglGetGraphicsResetStatusEXT = function : GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglReadnPixelsEXT = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei; aFormat: GLenum; aType: GLenum; aBufSize: GLsizei; aData: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetnUniformfvEXT = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetnUniformivEXT = procedure(aProgram: GLuint; aLocation: GLint; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetGraphicsResetStatusEXT: TglGetGraphicsResetStatusEXT; glReadnPixelsEXT: TglReadnPixelsEXT; glGetnUniformfvEXT: TglGetnUniformfvEXT; glGetnUniformivEXT: TglGetnUniformivEXT; { GL_EXT_sRGB } const GL_SRGB_EXT = $8C40; GL_SRGB_ALPHA_EXT = $8C42; GL_SRGB8_ALPHA8_EXT = $8C43; GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = $8210; { GL_EXT_sRGB_write_control } const GL_FRAMEBUFFER_SRGB_EXT = $8DB9; { GL_EXT_separate_shader_objects } const GL_ACTIVE_PROGRAM_EXT = $8259; GL_VERTEX_SHADER_BIT_EXT = $00000001; GL_FRAGMENT_SHADER_BIT_EXT = $00000002; GL_ALL_SHADER_BITS_EXT = $FFFFFFFF; GL_PROGRAM_SEPARABLE_EXT = $8258; GL_PROGRAM_PIPELINE_BINDING_EXT = $825A; type TglActiveShaderProgramEXT = procedure(aPipeline: GLuint; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBindProgramPipelineEXT = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCreateShaderProgramvEXT = function (aType: GLenum; aCount: GLsizei; const aStrings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeleteProgramPipelinesEXT = procedure(n: GLsizei; const aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenProgramPipelinesEXT = procedure(n: GLsizei; aPipelines: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramPipelineInfoLogEXT = procedure(aPipeline: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aInfoLog: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramPipelineivEXT = procedure(aPipeline: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsProgramPipelineEXT = function (aPipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramParameteriEXT = procedure(aProgram: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat; aV1: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint; aV1: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat; aV1: GLfloat; aV2: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint; aV1: GLint; aV2: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4fEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLfloat; aV1: GLfloat; aV2: GLfloat; aV3: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4iEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLint; aV1: GLint; aV2: GLint; aV3: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4ivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUseProgramStagesEXT = procedure(aPipeline: GLuint; aStages: GLbitfield; aProgram: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglValidateProgramPipelineEXT = procedure(aPipeline: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint; aV1: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint; aV1: GLuint; aV2: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4uiEXT = procedure(aProgram: GLuint; aLocation: GLint; aV0: GLuint; aV1: GLuint; aV2: GLuint; aV3: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform1uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform2uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform3uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniform4uivEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValue: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix2x3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix3x2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix2x4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix4x2fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix3x4fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformMatrix4x3fvEXT = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glActiveShaderProgramEXT: TglActiveShaderProgramEXT; glBindProgramPipelineEXT: TglBindProgramPipelineEXT; glCreateShaderProgramvEXT: TglCreateShaderProgramvEXT; glDeleteProgramPipelinesEXT: TglDeleteProgramPipelinesEXT; glGenProgramPipelinesEXT: TglGenProgramPipelinesEXT; glGetProgramPipelineInfoLogEXT: TglGetProgramPipelineInfoLogEXT; glGetProgramPipelineivEXT: TglGetProgramPipelineivEXT; glIsProgramPipelineEXT: TglIsProgramPipelineEXT; glProgramParameteriEXT: TglProgramParameteriEXT; glProgramUniform1fEXT: TglProgramUniform1fEXT; glProgramUniform1fvEXT: TglProgramUniform1fvEXT; glProgramUniform1iEXT: TglProgramUniform1iEXT; glProgramUniform1ivEXT: TglProgramUniform1ivEXT; glProgramUniform2fEXT: TglProgramUniform2fEXT; glProgramUniform2fvEXT: TglProgramUniform2fvEXT; glProgramUniform2iEXT: TglProgramUniform2iEXT; glProgramUniform2ivEXT: TglProgramUniform2ivEXT; glProgramUniform3fEXT: TglProgramUniform3fEXT; glProgramUniform3fvEXT: TglProgramUniform3fvEXT; glProgramUniform3iEXT: TglProgramUniform3iEXT; glProgramUniform3ivEXT: TglProgramUniform3ivEXT; glProgramUniform4fEXT: TglProgramUniform4fEXT; glProgramUniform4fvEXT: TglProgramUniform4fvEXT; glProgramUniform4iEXT: TglProgramUniform4iEXT; glProgramUniform4ivEXT: TglProgramUniform4ivEXT; glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT; glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT; glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT; glUseProgramStagesEXT: TglUseProgramStagesEXT; glValidateProgramPipelineEXT: TglValidateProgramPipelineEXT; glProgramUniform1uiEXT: TglProgramUniform1uiEXT; glProgramUniform2uiEXT: TglProgramUniform2uiEXT; glProgramUniform3uiEXT: TglProgramUniform3uiEXT; glProgramUniform4uiEXT: TglProgramUniform4uiEXT; glProgramUniform1uivEXT: TglProgramUniform1uivEXT; glProgramUniform2uivEXT: TglProgramUniform2uivEXT; glProgramUniform3uivEXT: TglProgramUniform3uivEXT; glProgramUniform4uivEXT: TglProgramUniform4uivEXT; glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT; glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT; glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT; glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT; glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT; glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT; { GL_EXT_shader_framebuffer_fetch } const GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = $8A52; { GL_EXT_shader_implicit_conversions } // none { GL_EXT_shader_integer_mix } // none { GL_EXT_shader_io_blocks } // none { GL_EXT_shader_pixel_local_storage } const GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = $8F63; GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = $8F67; GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = $8F64; { GL_EXT_shader_texture_lod } { GL_EXT_shadow_samplers } const GL_TEXTURE_COMPARE_MODE_EXT = $884C; GL_TEXTURE_COMPARE_FUNC_EXT = $884D; GL_COMPARE_REF_TO_TEXTURE_EXT = $884E; GL_SAMPLER_2D_SHADOW_EXT = $8B62; { GL_EXT_tessellation_point_size } // none { GL_EXT_tessellation_shader } const GL_PATCHES_EXT = $000E; GL_PATCH_VERTICES_EXT = $8E72; GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = $8E75; GL_TESS_GEN_MODE_EXT = $8E76; GL_TESS_GEN_SPACING_EXT = $8E77; GL_TESS_GEN_VERTEX_ORDER_EXT = $8E78; GL_TESS_GEN_POINT_MODE_EXT = $8E79; GL_ISOLINES_EXT = $8E7A; GL_QUADS_EXT = $0007; GL_FRACTIONAL_ODD_EXT = $8E7B; GL_FRACTIONAL_EVEN_EXT = $8E7C; GL_MAX_PATCH_VERTICES_EXT = $8E7D; GL_MAX_TESS_GEN_LEVEL_EXT = $8E7E; GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = $8E7F; GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = $8E80; GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = $8E81; GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = $8E82; GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = $8E83; GL_MAX_TESS_PATCH_COMPONENTS_EXT = $8E84; GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = $8E85; GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = $8E86; GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = $8E89; GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = $8E8A; GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = $886C; GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = $886D; GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = $8E1E; GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = $8E1F; GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = $92CD; GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = $92CE; GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = $92D3; GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = $92D4; GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = $90CB; GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = $90CC; GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = $90D8; GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = $90D9; GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = $8221; GL_IS_PER_PATCH_EXT = $92E7; GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = $9307; GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = $9308; GL_TESS_CONTROL_SHADER_EXT = $8E88; GL_TESS_EVALUATION_SHADER_EXT = $8E87; GL_TESS_CONTROL_SHADER_BIT_EXT = $00000008; GL_TESS_EVALUATION_SHADER_BIT_EXT = $00000010; type TglPatchParameteriEXT = procedure(aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glPatchParameteriEXT: TglPatchParameteriEXT; { GL_EXT_texture_border_clamp } const GL_TEXTURE_BORDER_COLOR_EXT = $1004; GL_CLAMP_TO_BORDER_EXT = $812D; type TglTexParameterIivEXT = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexParameterIuivEXT = procedure(aTarget: GLenum; aPname: GLenum; const aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexParameterIivEXT = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTexParameterIuivEXT = procedure(aTarget: GLenum; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSamplerParameterIivEXT = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSamplerParameterIuivEXT = procedure(aSampler: GLuint; aPname: GLenum; const aParam: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetSamplerParameterIivEXT = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetSamplerParameterIuivEXT = procedure(aSampler: GLuint; aPname: GLenum; aParams: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glTexParameterIivEXT: TglTexParameterIivEXT; glTexParameterIuivEXT: TglTexParameterIuivEXT; glGetTexParameterIivEXT: TglGetTexParameterIivEXT; glGetTexParameterIuivEXT: TglGetTexParameterIuivEXT; glSamplerParameterIivEXT: TglSamplerParameterIivEXT; glSamplerParameterIuivEXT: TglSamplerParameterIuivEXT; glGetSamplerParameterIivEXT: TglGetSamplerParameterIivEXT; glGetSamplerParameterIuivEXT: TglGetSamplerParameterIuivEXT; { GL_EXT_texture_buffer } const GL_TEXTURE_BUFFER_EXT = $8C2A; GL_TEXTURE_BUFFER_BINDING_EXT = $8C2A; GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B; GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C; GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D; GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = $919F; GL_SAMPLER_BUFFER_EXT = $8DC2; GL_INT_SAMPLER_BUFFER_EXT = $8DD0; GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8; GL_IMAGE_BUFFER_EXT = $9051; GL_INT_IMAGE_BUFFER_EXT = $905C; GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067; GL_TEXTURE_BUFFER_OFFSET_EXT = $919D; GL_TEXTURE_BUFFER_SIZE_EXT = $919E; type TglTexBufferEXT = procedure(aTarget: GLenum; aInternalformat: GLenum; aBuffer: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexBufferRangeEXT = procedure(aTarget: GLenum; aInternalformat: GLenum; aBuffer: GLuint; aOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glTexBufferEXT: TglTexBufferEXT; glTexBufferRangeEXT: TglTexBufferRangeEXT; { GL_EXT_texture_compression_dxt1 } const GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0; GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1; { GL_EXT_texture_compression_s3tc } const GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2; GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3; { GL_EXT_texture_cube_map_array } const GL_TEXTURE_CUBE_MAP_ARRAY_EXT = $9009; GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = $900A; GL_SAMPLER_CUBE_MAP_ARRAY_EXT = $900C; GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = $900D; GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = $900E; GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = $900F; GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054; GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F; GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A; { GL_EXT_texture_filter_anisotropic } const GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE; GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF; { GL_EXT_texture_format_BGRA8888 } { GL_EXT_texture_norm16 } const GL_R16_EXT = $822A; GL_RG16_EXT = $822C; GL_RGBA16_EXT = $805B; GL_RGB16_EXT = $8054; GL_RGB16_SNORM_EXT = $8F9A; { GL_EXT_texture_rg } const GL_RED_EXT = $1903; GL_RG_EXT = $8227; GL_R8_EXT = $8229; GL_RG8_EXT = $822B; { GL_EXT_texture_sRGB_decode } const GL_TEXTURE_SRGB_DECODE_EXT = $8A48; GL_DECODE_EXT = $8A49; GL_SKIP_DECODE_EXT = $8A4A; { GL_EXT_texture_storage } const GL_TEXTURE_IMMUTABLE_FORMAT_EXT = $912F; GL_ALPHA8_EXT = $803C; GL_LUMINANCE8_EXT = $8040; GL_LUMINANCE8_ALPHA8_EXT = $8045; GL_RGBA32F_EXT = $8814; GL_RGB32F_EXT = $8815; GL_ALPHA32F_EXT = $8816; GL_LUMINANCE32F_EXT = $8818; GL_LUMINANCE_ALPHA32F_EXT = $8819; GL_ALPHA16F_EXT = $881C; GL_LUMINANCE16F_EXT = $881E; GL_LUMINANCE_ALPHA16F_EXT = $881F; GL_R32F_EXT = $822E; GL_RG32F_EXT = $8230; type TglTexStorage1DEXT = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexStorage2DEXT = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTexStorage3DEXT = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTextureStorage1DEXT = procedure(aTexture: GLuint; aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTextureStorage2DEXT = procedure(aTexture: GLuint; aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTextureStorage3DEXT = procedure(aTexture: GLuint; aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glTexStorage1DEXT: TglTexStorage1DEXT; glTexStorage2DEXT: TglTexStorage2DEXT; glTexStorage3DEXT: TglTexStorage3DEXT; glTextureStorage1DEXT: TglTextureStorage1DEXT; glTextureStorage2DEXT: TglTextureStorage2DEXT; glTextureStorage3DEXT: TglTextureStorage3DEXT; { GL_EXT_texture_type_2_10_10_10_REV } const GL_UNSIGNED_INT_2_10_10_10_REV_EXT = $8368; { GL_EXT_texture_view } const GL_TEXTURE_VIEW_MIN_LEVEL_EXT = $82DB; GL_TEXTURE_VIEW_NUM_LEVELS_EXT = $82DC; GL_TEXTURE_VIEW_MIN_LAYER_EXT = $82DD; GL_TEXTURE_VIEW_NUM_LAYERS_EXT = $82DE; //GL_TEXTURE_IMMUTABLE_LEVELS = $82DF; type TglTextureViewEXT = procedure(aTexture: GLuint; aTarget: GLenum; aOrigtexture: GLuint; aInternalformat: GLenum; aMinlevel: GLuint; aNumlevels: GLuint; aMinlayer: GLuint; aNumlayers: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glTextureViewEXT: TglTextureViewEXT; { GL_EXT_unpack_subimage } const GL_UNPACK_ROW_LENGTH_EXT = $0CF2; GL_UNPACK_SKIP_ROWS_EXT = $0CF3; GL_UNPACK_SKIP_PIXELS_EXT = $0CF4; { GL_FJ_shader_binary_GCCSO } const GL_GCCSO_SHADER_BINARY_FJ = $9260; { GL_IMG_multisampled_render_to_texture } const GL_RENDERBUFFER_SAMPLES_IMG = $9133; GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = $9134; GL_MAX_SAMPLES_IMG = $9135; GL_TEXTURE_SAMPLES_IMG = $9136; type TglRenderbufferStorageMultisampleIMG = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFramebufferTexture2DMultisampleIMG = procedure(aTarget: GLenum; aAttachment: GLenum; aTextarget: GLenum; aTexture: GLuint; aLevel: GLint; aSamples: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glRenderbufferStorageMultisampleIMG: TglRenderbufferStorageMultisampleIMG; glFramebufferTexture2DMultisampleIMG: TglFramebufferTexture2DMultisampleIMG; { GL_IMG_program_binary } const GL_SGX_PROGRAM_BINARY_IMG = $9130; { GL_IMG_read_format } const GL_BGRA_IMG = $80E1; GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = $8365; { GL_IMG_shader_binary } const GL_SGX_BINARY_IMG = $8C0A; { GL_IMG_texture_compression_pvrtc } const GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = $8C00; GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = $8C01; GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = $8C02; GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = $8C03; { GL_IMG_texture_compression_pvrtc2 } const GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = $9137; GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = $9138; { GL_INTEL_performance_query } const GL_PERFQUERY_SINGLE_CONTEXT_INTEL = $00000000; GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = $00000001; GL_PERFQUERY_WAIT_INTEL = $83FB; GL_PERFQUERY_FLUSH_INTEL = $83FA; GL_PERFQUERY_DONOT_FLUSH_INTEL = $83F9; GL_PERFQUERY_COUNTER_EVENT_INTEL = $94F0; GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = $94F1; GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = $94F2; GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = $94F3; GL_PERFQUERY_COUNTER_RAW_INTEL = $94F4; GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = $94F5; GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = $94F8; GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = $94F9; GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = $94FA; GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = $94FB; GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = $94FC; GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = $94FD; GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = $94FE; GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = $94FF; GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = $9500; type TglBeginPerfQueryINTEL = procedure(aQueryHandle: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCreatePerfQueryINTEL = procedure(aQueryId: GLuint; aQueryHandle: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeletePerfQueryINTEL = procedure(aQueryHandle: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndPerfQueryINTEL = procedure(aQueryHandle: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFirstPerfQueryIdINTEL = procedure(aQueryId: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetNextPerfQueryIdINTEL = procedure(aQueryId: GLuint; aNextQueryId: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfCounterInfoINTEL = procedure(aQueryId: GLuint; aCounterId: GLuint; aCounterNameLength: GLuint; aCounterName: PGLchar; aCounterDescLength: GLuint; aCounterDesc: PGLchar; aCounterOffset: PGLuint; aCounterDataSize: PGLuint; aCounterTypeEnum: PGLuint; aCounterDataTypeEnum: PGLuint; aRawCounterMaxValue: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfQueryDataINTEL = procedure(aQueryHandle: GLuint; aFlags: GLuint; aDataSize: GLsizei; aData: PGLvoid; aBytesWritten: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfQueryIdByNameINTEL = procedure(aQueryName: PGLchar; aQueryId: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPerfQueryInfoINTEL = procedure(aQueryId: GLuint; aQueryNameLength: GLuint; aQueryName: PGLchar; aDataSize: PGLuint; aNoCounters: PGLuint; aNoInstances: PGLuint; aCapsMask: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBeginPerfQueryINTEL: TglBeginPerfQueryINTEL; glCreatePerfQueryINTEL: TglCreatePerfQueryINTEL; glDeletePerfQueryINTEL: TglDeletePerfQueryINTEL; glEndPerfQueryINTEL: TglEndPerfQueryINTEL; glGetFirstPerfQueryIdINTEL: TglGetFirstPerfQueryIdINTEL; glGetNextPerfQueryIdINTEL: TglGetNextPerfQueryIdINTEL; glGetPerfCounterInfoINTEL: TglGetPerfCounterInfoINTEL; glGetPerfQueryDataINTEL: TglGetPerfQueryDataINTEL; glGetPerfQueryIdByNameINTEL: TglGetPerfQueryIdByNameINTEL; glGetPerfQueryInfoINTEL: TglGetPerfQueryInfoINTEL; { GL_NV_bindless_texture } type TglGetTextureHandleNV = function (aTexture: GLuint): GLuint64; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetTextureSamplerHandleNV = function (aTexture: GLuint; aSampler: GLuint): GLuint64; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMakeTextureHandleResidentNV = procedure(aHandle: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMakeTextureHandleNonResidentNV = procedure(aHandle: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetImageHandleNV = function (aTexture: GLuint; aLevel: GLint; aLayered: GLboolean; aLayer: GLint; aFormat: GLenum): GLuint64; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMakeImageHandleResidentNV = procedure(aHandle: GLuint64; aAccess: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMakeImageHandleNonResidentNV = procedure(aHandle: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformHandleui64NV = procedure(aLocation: GLint; aValue: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformHandleui64vNV = procedure(aLocation: GLint; aCount: GLsizei; const aValue: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformHandleui64NV = procedure(aProgram: GLuint; aLocation: GLint; aValue: GLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramUniformHandleui64vNV = procedure(aProgram: GLuint; aLocation: GLint; aCount: GLsizei; const aValues: PGLuint64); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsTextureHandleResidentNV = function (aHandle: GLuint64): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsImageHandleResidentNV = function (aHandle: GLuint64): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetTextureHandleNV: TglGetTextureHandleNV; glGetTextureSamplerHandleNV: TglGetTextureSamplerHandleNV; glMakeTextureHandleResidentNV: TglMakeTextureHandleResidentNV; glMakeTextureHandleNonResidentNV: TglMakeTextureHandleNonResidentNV; glGetImageHandleNV: TglGetImageHandleNV; glMakeImageHandleResidentNV: TglMakeImageHandleResidentNV; glMakeImageHandleNonResidentNV: TglMakeImageHandleNonResidentNV; glUniformHandleui64NV: TglUniformHandleui64NV; glUniformHandleui64vNV: TglUniformHandleui64vNV; glProgramUniformHandleui64NV: TglProgramUniformHandleui64NV; glProgramUniformHandleui64vNV: TglProgramUniformHandleui64vNV; glIsTextureHandleResidentNV: TglIsTextureHandleResidentNV; glIsImageHandleResidentNV: TglIsImageHandleResidentNV; { GL_NV_blend_equation_advanced } const GL_BLEND_OVERLAP_NV = $9281; GL_BLEND_PREMULTIPLIED_SRC_NV = $9280; GL_BLUE_NV = $1905; GL_COLORBURN_NV = $929A; GL_COLORDODGE_NV = $9299; GL_CONJOINT_NV = $9284; GL_CONTRAST_NV = $92A1; GL_DARKEN_NV = $9297; GL_DIFFERENCE_NV = $929E; GL_DISJOINT_NV = $9283; GL_DST_ATOP_NV = $928F; GL_DST_IN_NV = $928B; GL_DST_NV = $9287; GL_DST_OUT_NV = $928D; GL_DST_OVER_NV = $9289; GL_EXCLUSION_NV = $92A0; GL_GREEN_NV = $1904; GL_HARDLIGHT_NV = $929B; GL_HARDMIX_NV = $92A9; GL_HSL_COLOR_NV = $92AF; GL_HSL_HUE_NV = $92AD; GL_HSL_LUMINOSITY_NV = $92B0; GL_HSL_SATURATION_NV = $92AE; GL_INVERT_OVG_NV = $92B4; GL_INVERT_RGB_NV = $92A3; GL_LIGHTEN_NV = $9298; GL_LINEARBURN_NV = $92A5; GL_LINEARDODGE_NV = $92A4; GL_LINEARLIGHT_NV = $92A7; GL_MINUS_CLAMPED_NV = $92B3; GL_MINUS_NV = $929F; GL_MULTIPLY_NV = $9294; GL_OVERLAY_NV = $9296; GL_PINLIGHT_NV = $92A8; GL_PLUS_CLAMPED_ALPHA_NV = $92B2; GL_PLUS_CLAMPED_NV = $92B1; GL_PLUS_DARKER_NV = $9292; GL_PLUS_NV = $9291; GL_RED_NV = $1903; GL_SCREEN_NV = $9295; GL_SOFTLIGHT_NV = $929C; GL_SRC_ATOP_NV = $928E; GL_SRC_IN_NV = $928A; GL_SRC_NV = $9286; GL_SRC_OUT_NV = $928C; GL_SRC_OVER_NV = $9288; GL_UNCORRELATED_NV = $9282; GL_VIVIDLIGHT_NV = $92A6; GL_XOR_NV = $1506; type TglBlendParameteriNV = procedure(aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglBlendBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBlendParameteriNV: TglBlendParameteriNV; glBlendBarrierNV: TglBlendBarrierNV; { GL_NV_blend_equation_advanced_coherent } const GL_BLEND_ADVANCED_COHERENT_NV = $9285; { GL_NV_conditional_render } const GL_QUERY_WAIT_NV = $8E13; GL_QUERY_NO_WAIT_NV = $8E14; GL_QUERY_BY_REGION_WAIT_NV = $8E15; GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16; type TglBeginConditionalRenderNV = procedure(aId: GLuint; aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndConditionalRenderNV = procedure; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBeginConditionalRenderNV: TglBeginConditionalRenderNV; glEndConditionalRenderNV: TglEndConditionalRenderNV; { GL_NV_copy_buffer } const GL_COPY_READ_BUFFER_NV = $8F36; GL_COPY_WRITE_BUFFER_NV = $8F37; type TglCopyBufferSubDataNV = procedure(aReadTarget: GLenum; aWriteTarget: GLenum; aReadOffset: GLintptr; aWriteOffset: GLintptr; aSize: GLsizeiptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glCopyBufferSubDataNV: TglCopyBufferSubDataNV; { GL_NV_coverage_sample } const GL_COVERAGE_COMPONENT_NV = $8ED0; GL_COVERAGE_COMPONENT4_NV = $8ED1; GL_COVERAGE_ATTACHMENT_NV = $8ED2; GL_COVERAGE_BUFFERS_NV = $8ED3; GL_COVERAGE_SAMPLES_NV = $8ED4; GL_COVERAGE_ALL_FRAGMENTS_NV = $8ED5; GL_COVERAGE_EDGE_FRAGMENTS_NV = $8ED6; GL_COVERAGE_AUTOMATIC_NV = $8ED7; GL_COVERAGE_BUFFER_BIT_NV = $00008000; type TglCoverageMaskNV = procedure(aMask: GLboolean); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCoverageOperationNV = procedure(aOperation: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glCoverageMaskNV: TglCoverageMaskNV; glCoverageOperationNV: TglCoverageOperationNV; { GL_NV_depth_nonlinear } const GL_DEPTH_COMPONENT16_NONLINEAR_NV = $8E2C; { GL_NV_draw_buffers } const GL_MAX_DRAW_BUFFERS_NV = $8824; GL_DRAW_BUFFER0_NV = $8825; GL_DRAW_BUFFER1_NV = $8826; GL_DRAW_BUFFER2_NV = $8827; GL_DRAW_BUFFER3_NV = $8828; GL_DRAW_BUFFER4_NV = $8829; GL_DRAW_BUFFER5_NV = $882A; GL_DRAW_BUFFER6_NV = $882B; GL_DRAW_BUFFER7_NV = $882C; GL_DRAW_BUFFER8_NV = $882D; GL_DRAW_BUFFER9_NV = $882E; GL_DRAW_BUFFER10_NV = $882F; GL_DRAW_BUFFER11_NV = $8830; GL_DRAW_BUFFER12_NV = $8831; GL_DRAW_BUFFER13_NV = $8832; GL_DRAW_BUFFER14_NV = $8833; GL_DRAW_BUFFER15_NV = $8834; GL_COLOR_ATTACHMENT0_NV = $8CE0; GL_COLOR_ATTACHMENT1_NV = $8CE1; GL_COLOR_ATTACHMENT2_NV = $8CE2; GL_COLOR_ATTACHMENT3_NV = $8CE3; GL_COLOR_ATTACHMENT4_NV = $8CE4; GL_COLOR_ATTACHMENT5_NV = $8CE5; GL_COLOR_ATTACHMENT6_NV = $8CE6; GL_COLOR_ATTACHMENT7_NV = $8CE7; GL_COLOR_ATTACHMENT8_NV = $8CE8; GL_COLOR_ATTACHMENT9_NV = $8CE9; GL_COLOR_ATTACHMENT10_NV = $8CEA; GL_COLOR_ATTACHMENT11_NV = $8CEB; GL_COLOR_ATTACHMENT12_NV = $8CEC; GL_COLOR_ATTACHMENT13_NV = $8CED; GL_COLOR_ATTACHMENT14_NV = $8CEE; GL_COLOR_ATTACHMENT15_NV = $8CEF; type TglDrawBuffersNV = procedure(n: GLsizei; const aBufs: PGLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawBuffersNV: TglDrawBuffersNV; { GL_NV_draw_instanced } type TglDrawArraysInstancedNV = procedure(aMode: GLenum; aFirst: GLint; aCount: GLsizei; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDrawElementsInstancedNV = procedure(aMode: GLenum; aCount: GLsizei; aType: GLenum; const aIndices: Pointer; aPrimcount: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDrawArraysInstancedNV: TglDrawArraysInstancedNV; glDrawElementsInstancedNV: TglDrawElementsInstancedNV; { GL_NV_explicit_attrib_location } // none { GL_NV_fbo_color_attachments } const GL_MAX_COLOR_ATTACHMENTS_NV = $8CDF; { GL_NV_fence } const GL_ALL_COMPLETED_NV = $84F2; GL_FENCE_STATUS_NV = $84F3; GL_FENCE_CONDITION_NV = $84F4; type TglDeleteFencesNV = procedure(n: GLsizei; const aFences: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGenFencesNV = procedure(n: GLsizei; aFences: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsFenceNV = function (aFence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTestFenceNV = function (aFence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFenceivNV = procedure(aFence: GLuint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglFinishFenceNV = procedure(aFence: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglSetFenceNV = procedure(aFence: GLuint; aCondition: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glDeleteFencesNV: TglDeleteFencesNV; glGenFencesNV: TglGenFencesNV; glIsFenceNV: TglIsFenceNV; glTestFenceNV: TglTestFenceNV; glGetFenceivNV: TglGetFenceivNV; glFinishFenceNV: TglFinishFenceNV; glSetFenceNV: TglSetFenceNV; { GL_NV_framebuffer_blit } const GL_READ_FRAMEBUFFER_NV = $8CA8; GL_DRAW_FRAMEBUFFER_NV = $8CA9; GL_DRAW_FRAMEBUFFER_BINDING_NV = $8CA6; GL_READ_FRAMEBUFFER_BINDING_NV = $8CAA; type TglBlitFramebufferNV = procedure(aSrcX0: GLint; aSrcY0: GLint; aSrcX1: GLint; aSrcY1: GLint; aDstX0: GLint; aDstY0: GLint; aDstX1: GLint; aDstY1: GLint; aMask: GLbitfield; aFilter: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glBlitFramebufferNV: TglBlitFramebufferNV; { GL_NV_framebuffer_multisample } const GL_RENDERBUFFER_SAMPLES_NV = $8CAB; GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = $8D56; GL_MAX_SAMPLES_NV = $8D57; type TglRenderbufferStorageMultisampleNV = procedure(aTarget: GLenum; aSamples: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glRenderbufferStorageMultisampleNV: TglRenderbufferStorageMultisampleNV; { GL_NV_generate_mipmap_sRGB } // none { GL_NV_image_formats } // none { GL_NV_instanced_arrays } const GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = $88FE; type TglVertexAttribDivisorNV = procedure(aIndex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glVertexAttribDivisorNV: TglVertexAttribDivisorNV; { GL_NV_internalformat_sample_query } const //GL_TEXTURE_2D_MULTISAMPLE = $9100; GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102; GL_MULTISAMPLES_NV = $9371; GL_SUPERSAMPLE_SCALE_X_NV = $9372; GL_SUPERSAMPLE_SCALE_Y_NV = $9373; GL_CONFORMANT_NV = $9374; type TglGetInternalformatSampleivNV = procedure(aTarget: GLenum; aInternalformat: GLenum; aSamples: GLsizei; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetInternalformatSampleivNV: TglGetInternalformatSampleivNV; { GL_NV_non_square_matrices } const GL_FLOAT_MAT2x3_NV = $8B65; GL_FLOAT_MAT2x4_NV = $8B66; GL_FLOAT_MAT3x2_NV = $8B67; GL_FLOAT_MAT3x4_NV = $8B68; GL_FLOAT_MAT4x2_NV = $8B69; GL_FLOAT_MAT4x3_NV = $8B6A; type TglUniformMatrix2x3fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix3x2fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix2x4fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix4x2fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix3x4fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglUniformMatrix4x3fvNV = procedure(aLocation: GLint; aCount: GLsizei; aTranspose: GLboolean; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glUniformMatrix2x3fvNV: TglUniformMatrix2x3fvNV; glUniformMatrix3x2fvNV: TglUniformMatrix3x2fvNV; glUniformMatrix2x4fvNV: TglUniformMatrix2x4fvNV; glUniformMatrix4x2fvNV: TglUniformMatrix4x2fvNV; glUniformMatrix3x4fvNV: TglUniformMatrix3x4fvNV; glUniformMatrix4x3fvNV: TglUniformMatrix4x3fvNV; { GL_NV_path_rendering } const GL_PATH_FORMAT_SVG_NV = $9070; GL_PATH_FORMAT_PS_NV = $9071; GL_STANDARD_FONT_NAME_NV = $9072; GL_SYSTEM_FONT_NAME_NV = $9073; GL_FILE_NAME_NV = $9074; GL_PATH_STROKE_WIDTH_NV = $9075; GL_PATH_END_CAPS_NV = $9076; GL_PATH_INITIAL_END_CAP_NV = $9077; GL_PATH_TERMINAL_END_CAP_NV = $9078; GL_PATH_JOIN_STYLE_NV = $9079; GL_PATH_MITER_LIMIT_NV = $907A; GL_PATH_DASH_CAPS_NV = $907B; GL_PATH_INITIAL_DASH_CAP_NV = $907C; GL_PATH_TERMINAL_DASH_CAP_NV = $907D; GL_PATH_DASH_OFFSET_NV = $907E; GL_PATH_CLIENT_LENGTH_NV = $907F; GL_PATH_FILL_MODE_NV = $9080; GL_PATH_FILL_MASK_NV = $9081; GL_PATH_FILL_COVER_MODE_NV = $9082; GL_PATH_STROKE_COVER_MODE_NV = $9083; GL_PATH_STROKE_MASK_NV = $9084; GL_COUNT_UP_NV = $9088; GL_COUNT_DOWN_NV = $9089; GL_PATH_OBJECT_BOUNDING_BOX_NV = $908A; GL_CONVEX_HULL_NV = $908B; GL_BOUNDING_BOX_NV = $908D; GL_TRANSLATE_X_NV = $908E; GL_TRANSLATE_Y_NV = $908F; GL_TRANSLATE_2D_NV = $9090; GL_TRANSLATE_3D_NV = $9091; GL_AFFINE_2D_NV = $9092; GL_AFFINE_3D_NV = $9094; GL_TRANSPOSE_AFFINE_2D_NV = $9096; GL_TRANSPOSE_AFFINE_3D_NV = $9098; GL_UTF8_NV = $909A; GL_UTF16_NV = $909B; GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = $909C; GL_PATH_COMMAND_COUNT_NV = $909D; GL_PATH_COORD_COUNT_NV = $909E; GL_PATH_DASH_ARRAY_COUNT_NV = $909F; GL_PATH_COMPUTED_LENGTH_NV = $90A0; GL_PATH_FILL_BOUNDING_BOX_NV = $90A1; GL_PATH_STROKE_BOUNDING_BOX_NV = $90A2; GL_SQUARE_NV = $90A3; GL_ROUND_NV = $90A4; GL_TRIANGULAR_NV = $90A5; GL_BEVEL_NV = $90A6; GL_MITER_REVERT_NV = $90A7; GL_MITER_TRUNCATE_NV = $90A8; GL_SKIP_MISSING_GLYPH_NV = $90A9; GL_USE_MISSING_GLYPH_NV = $90AA; GL_PATH_ERROR_POSITION_NV = $90AB; GL_ACCUM_ADJACENT_PAIRS_NV = $90AD; GL_ADJACENT_PAIRS_NV = $90AE; GL_FIRST_TO_REST_NV = $90AF; GL_PATH_GEN_MODE_NV = $90B0; GL_PATH_GEN_COEFF_NV = $90B1; GL_PATH_GEN_COMPONENTS_NV = $90B3; GL_PATH_STENCIL_FUNC_NV = $90B7; GL_PATH_STENCIL_REF_NV = $90B8; GL_PATH_STENCIL_VALUE_MASK_NV = $90B9; GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = $90BD; GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = $90BE; GL_PATH_COVER_DEPTH_FUNC_NV = $90BF; GL_PATH_DASH_OFFSET_RESET_NV = $90B4; GL_MOVE_TO_RESETS_NV = $90B5; GL_MOVE_TO_CONTINUES_NV = $90B6; GL_CLOSE_PATH_NV = $00; GL_MOVE_TO_NV = $02; GL_RELATIVE_MOVE_TO_NV = $03; GL_LINE_TO_NV = $04; GL_RELATIVE_LINE_TO_NV = $05; GL_HORIZONTAL_LINE_TO_NV = $06; GL_RELATIVE_HORIZONTAL_LINE_TO_NV = $07; GL_VERTICAL_LINE_TO_NV = $08; GL_RELATIVE_VERTICAL_LINE_TO_NV = $09; GL_QUADRATIC_CURVE_TO_NV = $0A; GL_RELATIVE_QUADRATIC_CURVE_TO_NV = $0B; GL_CUBIC_CURVE_TO_NV = $0C; GL_RELATIVE_CUBIC_CURVE_TO_NV = $0D; GL_SMOOTH_QUADRATIC_CURVE_TO_NV = $0E; GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = $0F; GL_SMOOTH_CUBIC_CURVE_TO_NV = $10; GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = $11; GL_SMALL_CCW_ARC_TO_NV = $12; GL_RELATIVE_SMALL_CCW_ARC_TO_NV = $13; GL_SMALL_CW_ARC_TO_NV = $14; GL_RELATIVE_SMALL_CW_ARC_TO_NV = $15; GL_LARGE_CCW_ARC_TO_NV = $16; GL_RELATIVE_LARGE_CCW_ARC_TO_NV = $17; GL_LARGE_CW_ARC_TO_NV = $18; GL_RELATIVE_LARGE_CW_ARC_TO_NV = $19; GL_RESTART_PATH_NV = $F0; GL_DUP_FIRST_CUBIC_CURVE_TO_NV = $F2; GL_DUP_LAST_CUBIC_CURVE_TO_NV = $F4; GL_RECT_NV = $F6; GL_CIRCULAR_CCW_ARC_TO_NV = $F8; GL_CIRCULAR_CW_ARC_TO_NV = $FA; GL_CIRCULAR_TANGENT_ARC_TO_NV = $FC; GL_ARC_TO_NV = $FE; GL_RELATIVE_ARC_TO_NV = $FF; GL_BOLD_BIT_NV = $01; GL_ITALIC_BIT_NV = $02; GL_GLYPH_WIDTH_BIT_NV = $01; GL_GLYPH_HEIGHT_BIT_NV = $02; GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = $04; GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = $08; GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = $10; GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = $20; GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = $40; GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = $80; GL_GLYPH_HAS_KERNING_BIT_NV = $100; GL_FONT_X_MIN_BOUNDS_BIT_NV = $00010000; GL_FONT_Y_MIN_BOUNDS_BIT_NV = $00020000; GL_FONT_X_MAX_BOUNDS_BIT_NV = $00040000; GL_FONT_Y_MAX_BOUNDS_BIT_NV = $00080000; GL_FONT_UNITS_PER_EM_BIT_NV = $00100000; GL_FONT_ASCENDER_BIT_NV = $00200000; GL_FONT_DESCENDER_BIT_NV = $00400000; GL_FONT_HEIGHT_BIT_NV = $00800000; GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = $01000000; GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = $02000000; GL_FONT_UNDERLINE_POSITION_BIT_NV = $04000000; GL_FONT_UNDERLINE_THICKNESS_BIT_NV = $08000000; GL_FONT_HAS_KERNING_BIT_NV = $10000000; GL_ROUNDED_RECT_NV = $E8; GL_RELATIVE_ROUNDED_RECT_NV = $E9; GL_ROUNDED_RECT2_NV = $EA; GL_RELATIVE_ROUNDED_RECT2_NV = $EB; GL_ROUNDED_RECT4_NV = $EC; GL_RELATIVE_ROUNDED_RECT4_NV = $ED; GL_ROUNDED_RECT8_NV = $EE; GL_RELATIVE_ROUNDED_RECT8_NV = $EF; GL_RELATIVE_RECT_NV = $F7; GL_FONT_GLYPHS_AVAILABLE_NV = $9368; GL_FONT_TARGET_UNAVAILABLE_NV = $9369; GL_FONT_UNAVAILABLE_NV = $936A; GL_FONT_UNINTELLIGIBLE_NV = $936B; GL_CONIC_CURVE_TO_NV = $1A; GL_RELATIVE_CONIC_CURVE_TO_NV = $1B; GL_FONT_NUM_GLYPH_INDICES_BIT_NV = $20000000; GL_STANDARD_FONT_FORMAT_NV = $936C; GL_PATH_PROJECTION_NV = $1701; GL_PATH_MODELVIEW_NV = $1700; GL_PATH_MODELVIEW_STACK_DEPTH_NV = $0BA3; GL_PATH_MODELVIEW_MATRIX_NV = $0BA6; GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = $0D36; GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = $84E3; GL_PATH_PROJECTION_STACK_DEPTH_NV = $0BA4; GL_PATH_PROJECTION_MATRIX_NV = $0BA7; GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = $0D38; GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = $84E4; GL_FRAGMENT_INPUT_NV = $936D; type TglGenPathsNV = function (aRange: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDeletePathsNV = procedure(aPath: GLuint; aRange: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsPathNV = function (aPath: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathCommandsNV = procedure(aPath: GLuint; aNumCommands: GLsizei; const aCommands: PGLubyte; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathCoordsNV = procedure(aPath: GLuint; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathSubCommandsNV = procedure(aPath: GLuint; aCommandStart: GLsizei; aCommandsToDelete: GLsizei; aNumCommands: GLsizei; const aCommands: PGLubyte; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathSubCoordsNV = procedure(aPath: GLuint; aCoordStart: GLsizei; aNumCoords: GLsizei; aCoordType: GLenum; const aCoords: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathStringNV = procedure(aPath: GLuint; aFormat: GLenum; aLength: GLsizei; const aPathString: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathGlyphsNV = procedure(aFirstPathName: GLuint; aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aNumGlyphs: GLsizei; aType: GLenum; const aCharcodes: Pointer; aHandleMissingGlyphs: GLenum; aPathParameterTemplate: GLuint; aEmScale: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathGlyphRangeNV = procedure(aFirstPathName: GLuint; aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aFirstGlyph: GLuint; aNumGlyphs: GLsizei; aHandleMissingGlyphs: GLenum; aPathParameterTemplate: GLuint; aEmScale: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglWeightPathsNV = procedure(aResultPath: GLuint; aNumPaths: GLsizei; const aPaths: PGLuint; const aWeights: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCopyPathNV = procedure(aResultPath: GLuint; aSrcPath: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglInterpolatePathsNV = procedure(aResultPath: GLuint; aPathA: GLuint; aPathB: GLuint; aWeight: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglTransformPathNV = procedure(aResultPath: GLuint; aSrcPath: GLuint; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathParameterivNV = procedure(aPath: GLuint; aPname: GLenum; const aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathParameteriNV = procedure(aPath: GLuint; aPname: GLenum; aValue: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathParameterfvNV = procedure(aPath: GLuint; aPname: GLenum; const aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathParameterfNV = procedure(aPath: GLuint; aPname: GLenum; aValue: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathDashArrayNV = procedure(aPath: GLuint; aDashCount: GLsizei; const aDashArray: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathStencilFuncNV = procedure(aFunc: GLenum; aRef: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathStencilDepthOffsetNV = procedure(aFactor: GLfloat; aUnits: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilFillPathNV = procedure(aPath: GLuint; aFillMode: GLenum; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilStrokePathNV = procedure(aPath: GLuint; aReference: GLint; aMask: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilFillPathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aFillMode: GLenum; aMask: GLuint; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilStrokePathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aReference: GLint; aMask: GLuint; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathCoverDepthFuncNV = procedure(aFunc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCoverFillPathNV = procedure(aPath: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCoverStrokePathNV = procedure(aPath: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCoverFillPathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglCoverStrokePathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathParameterivNV = procedure(aPath: GLuint; aPname: GLenum; aValue: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathParameterfvNV = procedure(aPath: GLuint; aPname: GLenum; aValue: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathCommandsNV = procedure(aPath: GLuint; aCommands: PGLubyte); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathCoordsNV = procedure(aPath: GLuint; aCoords: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathDashArrayNV = procedure(aPath: GLuint; aDashArray: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathMetricsNV = procedure(aMetricQueryMask: GLbitfield; aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aStride: GLsizei; aMetrics: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathMetricRangeNV = procedure(aMetricQueryMask: GLbitfield; aFirstPathName: GLuint; aNumPaths: GLsizei; aStride: GLsizei; aMetrics: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathSpacingNV = procedure(aPathListMode: GLenum; aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aAdvanceScale: GLfloat; aKerningScale: GLfloat; aTransformType: GLenum; aReturnedSpacing: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsPointInFillPathNV = function (aPath: GLuint; aMask: GLuint; x: GLfloat; y: GLfloat): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsPointInStrokePathNV = function (aPath: GLuint; x: GLfloat; y: GLfloat): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetPathLengthNV = function (aPath: GLuint; aStartSegment: GLsizei; aNumSegments: GLsizei): GLfloat; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPointAlongPathNV = function (aPath: GLuint; aStartSegment: GLsizei; aNumSegments: GLsizei; aDistance: GLfloat; x: PGLfloat; y: PGLfloat; aTangentX: PGLfloat; aTangentY: PGLfloat): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixLoad3x2fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixLoad3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixLoadTranspose3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixMult3x2fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixMult3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglMatrixMultTranspose3x3fNV = procedure(aMatrixMode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilThenCoverFillPathNV = procedure(aPath: GLuint; aFillMode: GLenum; aMask: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilThenCoverStrokePathNV = procedure(aPath: GLuint; aReference: GLint; aMask: GLuint; aCoverMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilThenCoverFillPathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aFillMode: GLenum; aMask: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglStencilThenCoverStrokePathInstancedNV = procedure(aNumPaths: GLsizei; aPathNameType: GLenum; const aPaths: Pointer; aPathBase: GLuint; aReference: GLint; aMask: GLuint; aCoverMode: GLenum; aTransformType: GLenum; const aTransformValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathGlyphIndexRangeNV = function (aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aPathParameterTemplate: GLuint; aEmScale: GLfloat; aBaseAndCount: PGLuint): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathGlyphIndexArrayNV = function (aFirstPathName: GLuint; aFontTarget: GLenum; const aFontName: Pointer; aFontStyle: GLbitfield; aFirstGlyphIndex: GLuint; aNumGlyphs: GLsizei; aPathParameterTemplate: GLuint; aEmScale: GLfloat): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglPathMemoryGlyphIndexArrayNV = function (aFirstPathName: GLuint; aFontTarget: GLenum; aFontSize: GLsizeiptr; const aFontData: Pointer; aFaceIndex: GLsizei; aFirstGlyphIndex: GLuint; aNumGlyphs: GLsizei; aPathParameterTemplate: GLuint; aEmScale: GLfloat): GLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglProgramPathFragmentInputGenNV = procedure(aProgram: GLuint; aLocation: GLint; aGenMode: GLenum; aComponents: GLint; const aCoeffs: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetProgramResourcefvNV = procedure(aProgram: GLuint; aProgramInterface: GLenum; aIndex: GLuint; aPropCount: GLsizei; const aProps: PGLenum; aBufSize: GLsizei; aLength: PGLsizei; aParams: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGenPathsNV: TglGenPathsNV; glDeletePathsNV: TglDeletePathsNV; glIsPathNV: TglIsPathNV; glPathCommandsNV: TglPathCommandsNV; glPathCoordsNV: TglPathCoordsNV; glPathSubCommandsNV: TglPathSubCommandsNV; glPathSubCoordsNV: TglPathSubCoordsNV; glPathStringNV: TglPathStringNV; glPathGlyphsNV: TglPathGlyphsNV; glPathGlyphRangeNV: TglPathGlyphRangeNV; glWeightPathsNV: TglWeightPathsNV; glCopyPathNV: TglCopyPathNV; glInterpolatePathsNV: TglInterpolatePathsNV; glTransformPathNV: TglTransformPathNV; glPathParameterivNV: TglPathParameterivNV; glPathParameteriNV: TglPathParameteriNV; glPathParameterfvNV: TglPathParameterfvNV; glPathParameterfNV: TglPathParameterfNV; glPathDashArrayNV: TglPathDashArrayNV; glPathStencilFuncNV: TglPathStencilFuncNV; glPathStencilDepthOffsetNV: TglPathStencilDepthOffsetNV; glStencilFillPathNV: TglStencilFillPathNV; glStencilStrokePathNV: TglStencilStrokePathNV; glStencilFillPathInstancedNV: TglStencilFillPathInstancedNV; glStencilStrokePathInstancedNV: TglStencilStrokePathInstancedNV; glPathCoverDepthFuncNV: TglPathCoverDepthFuncNV; glCoverFillPathNV: TglCoverFillPathNV; glCoverStrokePathNV: TglCoverStrokePathNV; glCoverFillPathInstancedNV: TglCoverFillPathInstancedNV; glCoverStrokePathInstancedNV: TglCoverStrokePathInstancedNV; glGetPathParameterivNV: TglGetPathParameterivNV; glGetPathParameterfvNV: TglGetPathParameterfvNV; glGetPathCommandsNV: TglGetPathCommandsNV; glGetPathCoordsNV: TglGetPathCoordsNV; glGetPathDashArrayNV: TglGetPathDashArrayNV; glGetPathMetricsNV: TglGetPathMetricsNV; glGetPathMetricRangeNV: TglGetPathMetricRangeNV; glGetPathSpacingNV: TglGetPathSpacingNV; glIsPointInFillPathNV: TglIsPointInFillPathNV; glIsPointInStrokePathNV: TglIsPointInStrokePathNV; glGetPathLengthNV: TglGetPathLengthNV; glPointAlongPathNV: TglPointAlongPathNV; glMatrixLoad3x2fNV: TglMatrixLoad3x2fNV; glMatrixLoad3x3fNV: TglMatrixLoad3x3fNV; glMatrixLoadTranspose3x3fNV: TglMatrixLoadTranspose3x3fNV; glMatrixMult3x2fNV: TglMatrixMult3x2fNV; glMatrixMult3x3fNV: TglMatrixMult3x3fNV; glMatrixMultTranspose3x3fNV: TglMatrixMultTranspose3x3fNV; glStencilThenCoverFillPathNV: TglStencilThenCoverFillPathNV; glStencilThenCoverStrokePathNV: TglStencilThenCoverStrokePathNV; glStencilThenCoverFillPathInstancedNV: TglStencilThenCoverFillPathInstancedNV; glStencilThenCoverStrokePathInstancedNV: TglStencilThenCoverStrokePathInstancedNV; glPathGlyphIndexRangeNV: TglPathGlyphIndexRangeNV; glPathGlyphIndexArrayNV: TglPathGlyphIndexArrayNV; glPathMemoryGlyphIndexArrayNV: TglPathMemoryGlyphIndexArrayNV; glProgramPathFragmentInputGenNV: TglProgramPathFragmentInputGenNV; glGetProgramResourcefvNV: TglGetProgramResourcefvNV; { GL_NV_read_buffer } const GL_READ_BUFFER_NV = $0C02; type TglReadBufferNV = procedure(aMode: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glReadBufferNV: TglReadBufferNV; { GL_NV_read_buffer_front } // none { GL_NV_read_depth } // none { GL_NV_read_depth_stencil } // none { GL_NV_read_stencil } // none { GL_NV_sRGB_formats } const GL_SLUMINANCE_NV = $8C46; GL_SLUMINANCE_ALPHA_NV = $8C44; GL_SRGB8_NV = $8C41; GL_SLUMINANCE8_NV = $8C47; GL_SLUMINANCE8_ALPHA8_NV = $8C45; GL_COMPRESSED_SRGB_S3TC_DXT1_NV = $8C4C; GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = $8C4D; GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = $8C4E; GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = $8C4F; GL_ETC1_SRGB8_NV = $88EE; { GL_NV_shader_noperspective_interpolation } // none { GL_NV_shadow_samplers_array } const GL_SAMPLER_2D_ARRAY_SHADOW_NV = $8DC4; { GL_NV_shadow_samplers_cube } const GL_SAMPLER_CUBE_SHADOW_NV = $8DC5; { GL_NV_texture_border_clamp } const GL_TEXTURE_BORDER_COLOR_NV = $1004; GL_CLAMP_TO_BORDER_NV = $812D; { GL_NV_texture_compression_s3tc_update } // none { GL_NV_texture_npot_2D_mipmap } // none { GL_NV_viewport_array } const GL_MAX_VIEWPORTS_NV = $825B; GL_VIEWPORT_SUBPIXEL_BITS_NV = $825C; GL_VIEWPORT_BOUNDS_RANGE_NV = $825D; GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = $825F; type TglViewportArrayvNV = procedure(aFirst: GLuint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglViewportIndexedfNV = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglViewportIndexedfvNV = procedure(aIndex: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglScissorArrayvNV = procedure(aFirst: GLuint; aCount: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglScissorIndexedNV = procedure(aIndex: GLuint; aLeft: GLint; aBottom: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglScissorIndexedvNV = procedure(aIndex: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDepthRangeArrayfvNV = procedure(aFirst: GLuint; aCount: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDepthRangeIndexedfNV = procedure(aIndex: GLuint; n: GLfloat; f: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetFloati_vNV = procedure(aTarget: GLenum; aIndex: GLuint; aData: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEnableiNV = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDisableiNV = procedure(aTarget: GLenum; aIndex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglIsEnablediNV = function (aTarget: GLenum; aIndex: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glViewportArrayvNV: TglViewportArrayvNV; glViewportIndexedfNV: TglViewportIndexedfNV; glViewportIndexedfvNV: TglViewportIndexedfvNV; glScissorArrayvNV: TglScissorArrayvNV; glScissorIndexedNV: TglScissorIndexedNV; glScissorIndexedvNV: TglScissorIndexedvNV; glDepthRangeArrayfvNV: TglDepthRangeArrayfvNV; glDepthRangeIndexedfNV: TglDepthRangeIndexedfNV; glGetFloati_vNV: TglGetFloati_vNV; glEnableiNV: TglEnableiNV; glDisableiNV: TglDisableiNV; glIsEnablediNV: TglIsEnablediNV; { GL_QCOM_alpha_test } const GL_ALPHA_TEST_QCOM = $0BC0; GL_ALPHA_TEST_FUNC_QCOM = $0BC1; GL_ALPHA_TEST_REF_QCOM = $0BC2; type TglAlphaFuncQCOM = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glAlphaFuncQCOM: TglAlphaFuncQCOM; { GL_QCOM_binning_control } const GL_BINNING_CONTROL_HINT_QCOM = $8FB0; GL_CPU_OPTIMIZED_QCOM = $8FB1; GL_GPU_OPTIMIZED_QCOM = $8FB2; GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = $8FB3; { GL_QCOM_driver_control } type TglGetDriverControlsQCOM = procedure(aNum: PGLint; aSize: GLsizei; aDriverControls: PGLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglGetDriverControlStringQCOM = procedure(aDriverControl: GLuint; aBufSize: GLsizei; aLength: PGLsizei; aDriverControlString: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEnableDriverControlQCOM = procedure(aDriverControl: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglDisableDriverControlQCOM = procedure(aDriverControl: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glGetDriverControlsQCOM: TglGetDriverControlsQCOM; glGetDriverControlStringQCOM: TglGetDriverControlStringQCOM; glEnableDriverControlQCOM: TglEnableDriverControlQCOM; glDisableDriverControlQCOM: TglDisableDriverControlQCOM; { GL_QCOM_extended_get } const GL_TEXTURE_WIDTH_QCOM = $8BD2; GL_TEXTURE_HEIGHT_QCOM = $8BD3; GL_TEXTURE_DEPTH_QCOM = $8BD4; GL_TEXTURE_INTERNAL_FORMAT_QCOM = $8BD5; GL_TEXTURE_FORMAT_QCOM = $8BD6; GL_TEXTURE_TYPE_QCOM = $8BD7; GL_TEXTURE_IMAGE_VALID_QCOM = $8BD8; GL_TEXTURE_NUM_LEVELS_QCOM = $8BD9; GL_TEXTURE_TARGET_QCOM = $8BDA; GL_TEXTURE_OBJECT_VALID_QCOM = $8BDB; GL_STATE_RESTORE = $8BDC; type TglExtGetTexturesQCOM = procedure(aTextures: PGLuint; aMaxTextures: GLint; aNumTextures: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetBuffersQCOM = procedure(aBuffers: PGLuint; aMaxBuffers: GLint; aNumBuffers: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetRenderbuffersQCOM = procedure(aRenderbuffers: PGLuint; aMaxRenderbuffers: GLint; aNumRenderbuffers: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetFramebuffersQCOM = procedure(aFramebuffers: PGLuint; aMaxFramebuffers: GLint; aNumFramebuffers: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetTexLevelParameterivQCOM = procedure(aTexture: GLuint; aFace: GLenum; aLevel: GLint; aPname: GLenum; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtTexObjectStateOverrideiQCOM = procedure(aTarget: GLenum; aPname: GLenum; aParam: GLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetTexSubImageQCOM = procedure(aTarget: GLenum; aLevel: GLint; aXoffset: GLint; aYoffset: GLint; aZoffset: GLint; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei; aFormat: GLenum; aType: GLenum; aTexels: Pointer); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetBufferPointervQCOM = procedure(aTarget: GLenum; aParams: PPGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glExtGetTexturesQCOM: TglExtGetTexturesQCOM; glExtGetBuffersQCOM: TglExtGetBuffersQCOM; glExtGetRenderbuffersQCOM: TglExtGetRenderbuffersQCOM; glExtGetFramebuffersQCOM: TglExtGetFramebuffersQCOM; glExtGetTexLevelParameterivQCOM: TglExtGetTexLevelParameterivQCOM; glExtTexObjectStateOverrideiQCOM: TglExtTexObjectStateOverrideiQCOM; glExtGetTexSubImageQCOM: TglExtGetTexSubImageQCOM; glExtGetBufferPointervQCOM: TglExtGetBufferPointervQCOM; { GL_QCOM_extended_get2 } type TglExtGetShadersQCOM = procedure(aShaders: PGLuint; aMaxShaders: GLint; aNumShaders: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetProgramsQCOM = procedure(aPrograms: PGLuint; aMaxPrograms: GLint; aNumPrograms: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtIsProgramBinaryQCOM = function (aProgram: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglExtGetProgramBinarySourceQCOM = procedure(aProgram: GLuint; aShadertype: GLenum; aSource: PGLchar; aLength: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glExtGetShadersQCOM: TglExtGetShadersQCOM; glExtGetProgramsQCOM: TglExtGetProgramsQCOM; glExtIsProgramBinaryQCOM: TglExtIsProgramBinaryQCOM; glExtGetProgramBinarySourceQCOM: TglExtGetProgramBinarySourceQCOM; { GL_QCOM_perfmon_global_mode } const GL_PERFMON_GLOBAL_MODE_QCOM = $8FA0; { GL_QCOM_tiled_rendering } const GL_COLOR_BUFFER_BIT0_QCOM = $00000001; GL_COLOR_BUFFER_BIT1_QCOM = $00000002; GL_COLOR_BUFFER_BIT2_QCOM = $00000004; GL_COLOR_BUFFER_BIT3_QCOM = $00000008; GL_COLOR_BUFFER_BIT4_QCOM = $00000010; GL_COLOR_BUFFER_BIT5_QCOM = $00000020; GL_COLOR_BUFFER_BIT6_QCOM = $00000040; GL_COLOR_BUFFER_BIT7_QCOM = $00000080; GL_DEPTH_BUFFER_BIT0_QCOM = $00000100; GL_DEPTH_BUFFER_BIT1_QCOM = $00000200; GL_DEPTH_BUFFER_BIT2_QCOM = $00000400; GL_DEPTH_BUFFER_BIT3_QCOM = $00000800; GL_DEPTH_BUFFER_BIT4_QCOM = $00001000; GL_DEPTH_BUFFER_BIT5_QCOM = $00002000; GL_DEPTH_BUFFER_BIT6_QCOM = $00004000; GL_DEPTH_BUFFER_BIT7_QCOM = $00008000; GL_STENCIL_BUFFER_BIT0_QCOM = $00010000; GL_STENCIL_BUFFER_BIT1_QCOM = $00020000; GL_STENCIL_BUFFER_BIT2_QCOM = $00040000; GL_STENCIL_BUFFER_BIT3_QCOM = $00080000; GL_STENCIL_BUFFER_BIT4_QCOM = $00100000; GL_STENCIL_BUFFER_BIT5_QCOM = $00200000; GL_STENCIL_BUFFER_BIT6_QCOM = $00400000; GL_STENCIL_BUFFER_BIT7_QCOM = $00800000; GL_MULTISAMPLE_BUFFER_BIT0_QCOM = $01000000; GL_MULTISAMPLE_BUFFER_BIT1_QCOM = $02000000; GL_MULTISAMPLE_BUFFER_BIT2_QCOM = $04000000; GL_MULTISAMPLE_BUFFER_BIT3_QCOM = $08000000; GL_MULTISAMPLE_BUFFER_BIT4_QCOM = $10000000; GL_MULTISAMPLE_BUFFER_BIT5_QCOM = $20000000; GL_MULTISAMPLE_BUFFER_BIT6_QCOM = $40000000; GL_MULTISAMPLE_BUFFER_BIT7_QCOM = $80000000; type TglStartTilingQCOM = procedure(x: GLuint; y: GLuint; aWidth: GLuint; aHeight: GLuint; aPreserveMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TglEndTilingQCOM = procedure(aPreserveMask: GLbitfield); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var glStartTilingQCOM: TglStartTilingQCOM; glEndTilingQCOM: TglEndTilingQCOM; { GL_QCOM_writeonly_rendering } const GL_WRITEONLY_RENDERING_QCOM = $8823; { GL_VIV_shader_binary } const GL_SHADER_BINARY_VIV = $8FC4; {$ENDIF} { ================================================== EGL ============================================================= } type EGLint = Integer; EGLboolean = Cardinal; EGLenum = Cardinal; EGLConfig = Pointer; EGLContext = Pointer; EGLDisplay = Pointer; EGLSurface = Pointer; EGLClientBuffer = Pointer; EGLNativeDisplayType = Pointer; EGLNativePixmapType = Pointer; EGLNativeWindowType = packed record element: Cardinal; width: Integer; height: Integer; end; PEGLint = ^EGLint; PEGLboolean = ^EGLboolean; PEGLenum = ^EGLenum; PEGLConfig = ^EGLConfig; PEGLContext = ^EGLContext; PEGLDisplay = ^EGLDisplay; PEGLSurface = ^EGLSurface; PEGLClientBuffer = ^EGLClientBuffer; PEGLNativeDisplayType = ^EGLNativeDisplayType; PEGLNativePixmapType = ^EGLNativePixmapType; PEGLNativeWindowType = ^EGLNativeWindowType; const EGL_FALSE: EGLboolean = 0; EGL_TRUE: EGLboolean = 1; EGL_DEFAULT_DISPLAY: EGLNativeDisplayType = nil; EGL_NO_CONTEXT: EGLContext = nil; EGL_NO_DISPLAY: EGLDisplay = nil; EGL_NO_SURFACE: EGLSurface = nil; EGL_DONT_CARE: EGLint = -1; EGL_SUCCESS = $3000; EGL_NOT_INITIALIZED = $3001; EGL_BAD_ACCESS = $3002; EGL_BAD_ALLOC = $3003; EGL_BAD_ATTRIBUTE = $3004; EGL_BAD_CONFIG = $3005; EGL_BAD_CONTEXT = $3006; EGL_BAD_CURRENT_SURFACE = $3007; EGL_BAD_DISPLAY = $3008; EGL_BAD_MATCH = $3009; EGL_BAD_NATIVE_PIXMAP = $300A; EGL_BAD_NATIVE_WINDOW = $300B; EGL_BAD_PARAMETER = $300C; EGL_BAD_SURFACE = $300D; EGL_CONTEXT_LOST = $300E; EGL_BUFFER_SIZE = $3020; EGL_ALPHA_SIZE = $3021; EGL_BLUE_SIZE = $3022; EGL_GREEN_SIZE = $3023; EGL_RED_SIZE = $3024; EGL_DEPTH_SIZE = $3025; EGL_STENCIL_SIZE = $3026; EGL_CONFIG_CAVEAT = $3027; EGL_CONFIG_ID = $3028; EGL_LEVEL = $3029; EGL_MAX_PBUFFER_HEIGHT = $302A; EGL_MAX_PBUFFER_PIXELS = $302B; EGL_MAX_PBUFFER_WIDTH = $302C; EGL_NATIVE_RENDERABLE = $302D; EGL_NATIVE_VISUAL_ID = $302E; EGL_NATIVE_VISUAL_TYPE = $302F; EGL_SAMPLES = $3031; EGL_SAMPLE_BUFFERS = $3032; EGL_SURFACE_TYPE = $3033; EGL_TRANSPARENT_TYPE = $3034; EGL_TRANSPARENT_BLUE_VALUE = $3035; EGL_TRANSPARENT_GREEN_VALUE = $3036; EGL_TRANSPARENT_RED_VALUE = $3037; EGL_NONE = $3038; EGL_BIND_TO_TEXTURE_RGB = $3039; EGL_BIND_TO_TEXTURE_RGBA = $303A; EGL_MIN_SWAP_INTERVAL = $303B; EGL_MAX_SWAP_INTERVAL = $303C; EGL_LUMINANCE_SIZE = $303D; EGL_ALPHA_MASK_SIZE = $303E; EGL_COLOR_BUFFER_TYPE = $303F; EGL_RENDERABLE_TYPE = $3040; EGL_MATCH_NATIVE_PIXMAP = $3041; EGL_CONFORMANT = $3042; EGL_SLOW_CONFIG = $3050; EGL_NON_CONFORMANT_CONFIG = $3051; EGL_TRANSPARENT_RGB = $3052; EGL_RGB_BUFFER = $308E; EGL_LUMINANCE_BUFFER = $308F; EGL_NO_TEXTURE = $305C; EGL_TEXTURE_RGB = $305D; EGL_TEXTURE_RGBA = $305E; EGL_TEXTURE_2D = $305F; EGL_PBUFFER_BIT = $0001; EGL_PIXMAP_BIT = $0002; EGL_WINDOW_BIT = $0004; EGL_VG_COLORSPACE_LINEAR_BIT = $0020; EGL_VG_ALPHA_FORMAT_PRE_BIT = $0040; EGL_MULTISAMPLE_RESOLVE_BOX_BIT = $0200; EGL_SWAP_BEHAVIOR_PRESERVED_BIT = $0400; EGL_OPENGL_ES_BIT = $0001; EGL_OPENVG_BIT = $0002; EGL_OPENGL_ES2_BIT = $0004; EGL_OPENGL_BIT = $0008; EGL_VENDOR = $3053; EGL_VERSION = $3054; EGL_EXTENSIONS = $3055; EGL_CLIENT_APIS = $308D; EGL_HEIGHT = $3056; EGL_WIDTH = $3057; EGL_LARGEST_PBUFFER = $3058; EGL_TEXTURE_FORMAT = $3080; EGL_TEXTURE_TARGET = $3081; EGL_MIPMAP_TEXTURE = $3082; EGL_MIPMAP_LEVEL = $3083; EGL_RENDER_BUFFER = $3086; EGL_VG_COLORSPACE = $3087; EGL_VG_ALPHA_FORMAT = $3088; EGL_HORIZONTAL_RESOLUTION = $3090; EGL_VERTICAL_RESOLUTION = $3091; EGL_PIXEL_ASPECT_RATIO = $3092; EGL_SWAP_BEHAVIOR = $3093; EGL_MULTISAMPLE_RESOLVE = $3099; EGL_BACK_BUFFER = $3084; EGL_SINGLE_BUFFER = $3085; EGL_VG_COLORSPACE_sRGB = $3089; EGL_VG_COLORSPACE_LINEAR = $308A; EGL_VG_ALPHA_FORMAT_NONPRE = $308B; EGL_VG_ALPHA_FORMAT_PRE = $308C; EGL_DISPLAY_SCALING = 10000; EGL_UNKNOWN: EGLint = -1; EGL_BUFFER_PRESERVED = $3094; EGL_BUFFER_DESTROYED = $3095; EGL_OPENVG_IMAGE = $3096; EGL_CONTEXT_CLIENT_TYPE = $3097; EGL_CONTEXT_CLIENT_VERSION = $3098; EGL_MULTISAMPLE_RESOLVE_DEFAULT = $309A; EGL_MULTISAMPLE_RESOLVE_BOX = $309B; EGL_OPENGL_ES_API = $30A0; EGL_OPENVG_API = $30A1; EGL_OPENGL_API = $30A2; EGL_DRAW = $3059; EGL_READ = $305A; EGL_CORE_NATIVE_ENGINE = $305B; EGL_COLORSPACE = EGL_VG_COLORSPACE; EGL_ALPHA_FORMAT = EGL_VG_ALPHA_FORMAT; EGL_COLORSPACE_sRGB = EGL_VG_COLORSPACE_sRGB; EGL_COLORSPACE_LINEAR = EGL_VG_COLORSPACE_LINEAR; EGL_ALPHA_FORMAT_NONPRE = EGL_VG_ALPHA_FORMAT_NONPRE; EGL_ALPHA_FORMAT_PRE = EGL_VG_ALPHA_FORMAT_PRE; type TeglGetError = function: EGLint; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetDisplay = function(aDisplayID: EGLNativeDisplayType): EGLDisplay; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglInitialize = function(aDisplay: EGLDisplay; aMajor, aMinor: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglTerminate = function(aDisplay: EGLDisplay): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglQueryString = function(aDisplay: EGLDisplay; name: EGLint): PAnsiChar; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetConfigs = function(aDisplay: EGLDisplay; aConfigs: PEGLConfig; aConfigSize: EGLint; numConfig: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglChooseConfig = function(aDisplay: EGLDisplay; const aAttribList: PEGLint; aConfigs: PEGLConfig; aConfigSize: EGLint; numConfig: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetConfigAttrib = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aAttribute: EGLint; aValue : PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglCreateWindowSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aWinType: PEGLNativeWindowType; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglCreatePbufferSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglCreatePixmapSurface = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aPixmap: EGLNativePixmapType; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglDestroySurface = function(aDisplay: EGLDisplay; aSurface: EGLSurface): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglQuerySurface = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aAttribute: EGLint; aValue: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglBindAPI = function(aApi: EGLenum): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglQueryAPI = function: EGLenum; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglWaitClient = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglReleaseThread = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglCreatePbufferFromClientBuffer = function(aDisplay: EGLDisplay; aBufType: EGLenum; aBuffer: EGLClientBuffer; aConfig: EGLConfig; const aAttribList: PEGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglSurfaceAttrib = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aAttribute: EGLint; aValue: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglBindTexImage = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aBuffer: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglReleaseTexImage = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aBuffer: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglSwapInterval = function(aDisplay: EGLDisplay; aInterval: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglCreateContext = function(aDisplay: EGLDisplay; aConfig: EGLConfig; aShareContext: EGLContext; const aAttribList: PEGLint): EGLContext; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglDestroyContext = function(aDisplay: EGLDisplay; aContext: EGLContext): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglMakeCurrent = function(aDisplay: EGLDisplay; aDraw: EGLSurface; aRead: EGLSurface; aContext: EGLContext): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetCurrentContext = function: EGLContext; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetCurrentSurface = function(aReadDraw: EGLint): EGLSurface; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetCurrentDisplay = function: EGLDisplay; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglQueryContext = function(aDisplay: EGLDisplay; aContext: EGLContext; aAttribute: EGLint; aValue: PEGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglWaitGL = function: EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglWaitNative = function(aEngine: EGLint): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglSwapBuffers = function(aDisplay: EGLDisplay; aSurface: EGLSurface): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglCopyBuffers = function(aDisplay: EGLDisplay; aSurface: EGLSurface; aTarget: EGLNativePixmapType): EGLBoolean; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} TeglGetProcAddress = function(const aProcName: PAnsiChar): Pointer; {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF} var eglGetError: TeglGetError; eglGetDisplay: TeglGetDisplay; eglInitialize: TeglInitialize; eglTerminate: TeglTerminate; eglQueryString: TeglQueryString; eglGetConfigs: TeglGetConfigs; eglChooseConfig: TeglChooseConfig; eglGetConfigAttrib: TeglGetConfigAttrib; eglCreateWindowSurface: TeglCreateWindowSurface; eglCreatePbufferSurface: TeglCreatePbufferSurface; eglCreatePixmapSurface: TeglCreatePixmapSurface; eglDestroySurface: TeglDestroySurface; eglQuerySurface: TeglQuerySurface; eglBindAPI: TeglBindAPI; eglQueryAPI: TeglQueryAPI; eglWaitClient: TeglWaitClient; eglReleaseThread: TeglReleaseThread; eglCreatePbufferFromClientBuffer: TeglCreatePbufferFromClientBuffer; eglSurfaceAttrib: TeglSurfaceAttrib; eglBindTexImage: TeglBindTexImage; eglReleaseTexImage: TeglReleaseTexImage; eglSwapInterval: TeglSwapInterval; eglCreateContext: TeglCreateContext; eglDestroyContext: TeglDestroyContext; eglMakeCurrent: TeglMakeCurrent; eglGetCurrentContext: TeglGetCurrentContext; eglGetCurrentSurface: TeglGetCurrentSurface; eglGetCurrentDisplay: TeglGetCurrentDisplay; eglQueryContext: TeglQueryContext; eglWaitGL: TeglWaitGL; eglWaitNative: TeglWaitNative; eglSwapBuffers: TeglSwapBuffers; eglCopyBuffers: TeglCopyBuffers; eglGetProcAddress: TeglGetProcAddress; { =================================================== DelphiGL ======================================================= } var GLmajor: Integer; GLminor: Integer; GL_VERSION_1_0, GL_VERSION_1_1, GL_VERSION_2_0, GL_VERSION_3_0, GL_VERSION_3_1 {$IFDEF OPENGLES_EXTENSIONS}, GL_KHR_blend_equation_advanced, GL_KHR_blend_equation_advanced_coherent, GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness, GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr, GL_OES_EGL_image, GL_OES_EGL_image_external, GL_OES_compressed_ETC1_RGB8_sub_texture, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_compressed_paletted_texture, GL_OES_depth24, GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, GL_OES_fragment_precision_high, GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil, GL_OES_required_internalformat, GL_OES_rgb8_rgba8, GL_OES_sample_shading, GL_OES_sample_variables, GL_OES_shader_image_atomic, GL_OES_shader_multisample_interpolation, GL_OES_standard_derivatives, GL_OES_stencil1, GL_OES_stencil4, GL_OES_surfaceless_context, GL_OES_texture_3D, GL_OES_texture_compression_astc, GL_OES_texture_float, GL_OES_texture_float_linear, GL_OES_texture_half_float, GL_OES_texture_half_float_linear, GL_OES_texture_npot, GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array, GL_OES_vertex_array_object, GL_OES_vertex_half_float, GL_OES_vertex_type_10_10_10_2, GL_AMD_compressed_3DC_texture, GL_AMD_compressed_ATC_texture, GL_AMD_performance_monitor, GL_AMD_program_binary_Z400, GL_ANDROID_extension_pack_es31a, GL_ANGLE_depth_texture, GL_ANGLE_framebuffer_blit, GL_ANGLE_framebuffer_multisample, GL_ANGLE_instanced_arrays, GL_ANGLE_pack_reverse_row_order, GL_ANGLE_program_binary, GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, GL_ANGLE_texture_usage, GL_ANGLE_translated_shader_source, GL_APPLE_clip_distance, GL_APPLE_color_buffer_packed_float, GL_APPLE_copy_texture_levels, GL_APPLE_framebuffer_multisample, GL_APPLE_rgb_422, GL_APPLE_sync, GL_APPLE_texture_format_BGRA8888, GL_APPLE_texture_max_level, GL_APPLE_texture_packed_float, GL_ARM_mali_program_binary, GL_ARM_mali_shader_binary, GL_ARM_rgba8, GL_ARM_shader_framebuffer_fetch, GL_ARM_shader_framebuffer_fetch_depth_stencil, GL_DMP_program_binary, GL_DMP_shader_binary, GL_EXT_base_instance, GL_EXT_blend_minmax, GL_EXT_color_buffer_half_float, GL_EXT_copy_image, GL_EXT_debug_label, GL_EXT_debug_marker, GL_EXT_discard_framebuffer, GL_EXT_disjoint_timer_query, GL_EXT_draw_buffers, GL_EXT_draw_buffers_indexed, GL_EXT_draw_elements_base_vertex, GL_EXT_draw_instanced, GL_EXT_geometry_point_size, GL_EXT_geometry_shader, GL_EXT_gpu_shader5, GL_EXT_instanced_arrays, GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays, GL_EXT_multi_draw_indirect, GL_EXT_multisampled_render_to_texture, GL_EXT_multiview_draw_buffers, GL_EXT_occlusion_query_boolean, GL_EXT_primitive_bounding_box, GL_EXT_pvrtc_sRGB, GL_EXT_read_format_bgra, GL_EXT_render_snorm, GL_EXT_robustness, GL_EXT_sRGB, GL_EXT_sRGB_write_control, GL_EXT_separate_shader_objects, GL_EXT_shader_framebuffer_fetch, GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix, GL_EXT_shader_io_blocks, GL_EXT_shader_pixel_local_storage, GL_EXT_shader_texture_lod, GL_EXT_shadow_samplers, GL_EXT_tessellation_point_size, GL_EXT_tessellation_shader, GL_EXT_texture_border_clamp, GL_EXT_texture_buffer, GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map_array, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, GL_EXT_texture_norm16, GL_EXT_texture_rg, GL_EXT_texture_sRGB_decode, GL_EXT_texture_storage, GL_EXT_texture_type_2_10_10_10_REV, GL_EXT_texture_view, GL_EXT_unpack_subimage, GL_FJ_shader_binary_GCCSO, GL_IMG_multisampled_render_to_texture, GL_IMG_program_binary, GL_IMG_read_format, GL_IMG_shader_binary, GL_IMG_texture_compression_pvrtc, GL_IMG_texture_compression_pvrtc2, GL_INTEL_performance_query, GL_NV_bindless_texture, GL_NV_blend_equation_advanced, GL_NV_blend_equation_advanced_coherent, GL_NV_conditional_render, GL_NV_copy_buffer, GL_NV_coverage_sample, GL_NV_depth_nonlinear, GL_NV_draw_buffers, GL_NV_draw_instanced, GL_NV_explicit_attrib_location, GL_NV_fbo_color_attachments, GL_NV_fence, GL_NV_framebuffer_blit, GL_NV_framebuffer_multisample, GL_NV_generate_mipmap_sRGB, GL_NV_image_formats, GL_NV_instanced_arrays, GL_NV_internalformat_sample_query, GL_NV_non_square_matrices, GL_NV_path_rendering, GL_NV_read_buffer, GL_NV_read_buffer_front, GL_NV_read_depth, GL_NV_read_depth_stencil, GL_NV_read_stencil, GL_NV_sRGB_formats, GL_NV_shader_noperspective_interpolation, GL_NV_shadow_samplers_array, GL_NV_shadow_samplers_cube, GL_NV_texture_border_clamp, GL_NV_texture_compression_s3tc_update, GL_NV_texture_npot_2D_mipmap, GL_NV_viewport_array, GL_QCOM_alpha_test, GL_QCOM_binning_control, GL_QCOM_driver_control, GL_QCOM_extended_get, GL_QCOM_extended_get2, GL_QCOM_perfmon_global_mode, GL_QCOM_tiled_rendering, GL_QCOM_writeonly_rendering, GL_VIV_shader_binary {$ENDIF} : Boolean; type EdglOpenGLES = class(Exception); EeglError = class(EdglOpenGLES) public ErrorCode: EGLint; constructor Create(const msg: string; const aErrorCode: EGLint); end; TActivationFlag = ( afReadOpenGLCore, afReadExtensions, afReadCoreVersion, afReadImplProp ); TActivationFlags = set of TActivationFlag; TdglRenderContext = packed record Display: EGLDisplay; Surface: EGLSurface; Context: EGLContext; end; function InitOpenGLES(const aOpenGLESLibName: String = LIBNAME_OPENGLES; aEGLLibName: String = LIBNAME_EGL): Boolean; function CreateRenderingContext(const aDisplayType: EGLNativeDisplayType; const aWindowType: PEGLNativeWindowType; const aConfigAttribs: PEGLint; const aContextAttribs: PEGLint): TdglRenderContext; procedure DestroyRenderingContext(const aContext: TdglRenderContext); function ActivateRenderingContext(const aContext: TdglRenderContext; const aFlags: TActivationFlags = [afReadOpenGLCore, afReadExtensions, afReadCoreVersion, afReadImplProp]): Boolean; function DeactivateRenderingContext(const aContext: TdglRenderContext): Boolean; procedure SwapBuffers(const aContext: TdglRenderContext); procedure ReadOpenGLCore; procedure ReadExtensions; procedure ReadCoreVersion; procedure ReadImplementationProperties; {$IFDEF OPENGLES_EXTENSIONS} procedure Read_GL_KHR_blend_equation_advanced; procedure Read_GL_KHR_debug; procedure Read_GL_KHR_robustness; procedure Read_GL_OES_EGL_image; procedure Read_GL_OES_get_program_binary; procedure Read_GL_OES_mapbuffer; procedure Read_GL_OES_sample_shading; procedure Read_GL_OES_texture_3D; procedure Read_GL_OES_texture_storage_multisample_2d_array; procedure Read_GL_OES_vertex_array_object; procedure Read_GL_AMD_performance_monitor; procedure Read_GL_ANGLE_framebuffer_blit; procedure Read_GL_ANGLE_framebuffer_multisample; procedure Read_GL_ANGLE_instanced_arrays; procedure Read_GL_ANGLE_translated_shader_source; procedure Read_GL_APPLE_copy_texture_levels; procedure Read_GL_APPLE_framebuffer_multisample; procedure Read_GL_APPLE_sync; procedure Read_GL_EXT_base_instance; procedure Read_GL_EXT_copy_image; procedure Read_GL_EXT_debug_label; procedure Read_GL_EXT_debug_marker; procedure Read_GL_EXT_discard_framebuffer; procedure Read_GL_EXT_disjoint_timer_query; procedure Read_GL_EXT_draw_buffers; procedure Read_GL_EXT_draw_buffers_indexed; procedure Read_GL_EXT_draw_elements_base_vertex; procedure Read_GL_EXT_draw_instanced; procedure Read_GL_EXT_geometry_shader; procedure Read_GL_EXT_instanced_arrays; procedure Read_GL_EXT_map_buffer_range; procedure Read_GL_EXT_multi_draw_arrays; procedure Read_GL_EXT_multi_draw_indirect; procedure Read_GL_EXT_multisampled_render_to_texture; procedure Read_GL_EXT_multiview_draw_buffers; procedure Read_GL_EXT_primitive_bounding_box; procedure Read_GL_EXT_robustness; procedure Read_GL_EXT_separate_shader_objects; procedure Read_GL_EXT_tessellation_shader; procedure Read_GL_EXT_texture_border_clamp; procedure Read_GL_EXT_texture_buffer; procedure Read_GL_EXT_texture_storage; procedure Read_GL_EXT_texture_view; procedure Read_GL_IMG_multisampled_render_to_texture; procedure Read_GL_INTEL_performance_query; procedure Read_GL_NV_bindless_texture; procedure Read_GL_NV_blend_equation_advanced; procedure Read_GL_NV_conditional_render; procedure Read_GL_NV_copy_buffer; procedure Read_GL_NV_coverage_sample; procedure Read_GL_NV_draw_buffers; procedure Read_GL_NV_draw_instanced; procedure Read_GL_NV_fence; procedure Read_GL_NV_framebuffer_blit; procedure Read_GL_NV_framebuffer_multisample; procedure Read_GL_NV_instanced_arrays; procedure Read_GL_NV_internalformat_sample_query; procedure Read_GL_NV_non_square_matrices; procedure Read_GL_NV_path_rendering; procedure Read_GL_NV_read_buffer; procedure Read_GL_NV_viewport_array; procedure Read_GL_QCOM_alpha_test; procedure Read_GL_QCOM_driver_control; procedure Read_GL_QCOM_extended_get; procedure Read_GL_QCOM_extended_get2; procedure Read_GL_QCOM_tiled_rendering; {$ENDIF} implementation var LibHandleOpenGLES: Pointer = nil; LibHandleEGL: Pointer = nil; function dglLoadLibrary(const name: PChar): Pointer; begin result := nil; {$IFDEF DGL_LINUX} result := dlopen(name, RTLD_LAZY); {$ENDIF} end; function dglGetProcAddress(const aProcName: PAnsiChar): Pointer; begin result := nil; {$IFDEF DGL_LINUX} if Assigned(LibHandleOpenGLES) then result := dlsym(LibHandleOpenGLES, aProcName); if not Assigned(result) and Assigned(eglGetProcAddress) then result := eglGetProcAddress(aProcName); if not Assigned(result) and Assigned(LibHandleEGL) then result := dlsym(LibHandleEGL, aProcName); {$ENDIF} end; function dglFreeAndNilLibrary(var aLibHandle: Pointer): Boolean; begin if Assigned(aLibHandle) then begin {$IFDEF DGL_LINUX} result := (dlclose(aLibHandle) = 0); aLibHandle := nil; {$ENDIF} end else result := false; end; function InitOpenGLES(const aOpenGLESLibName: String; aEGLLibName: String): Boolean; begin result := true; if Assigned(LibHandleOpenGLES) then dglFreeAndNilLibrary(LibHandleOpenGLES); if Assigned(LibHandleEGL) then dglFreeAndNilLibrary(LibHandleEGL); LibHandleOpenGLES := dglLoadLibrary(PChar(aOpenGLESLibName)); LibHandleEGL := dglLoadLibrary(PChar(aEGLLibName)); // load EGL procedures if Assigned(LibHandleEGL) then begin eglGetProcAddress := dglGetProcAddress('eglGetProcAddress'); eglGetError := dglGetProcAddress('eglGetError'); eglGetDisplay := dglGetProcAddress('eglGetDisplay'); eglInitialize := dglGetProcAddress('eglInitialize'); eglTerminate := dglGetProcAddress('eglTerminate'); eglQueryString := dglGetProcAddress('eglQueryString'); eglGetConfigs := dglGetProcAddress('eglGetConfigs'); eglChooseConfig := dglGetProcAddress('eglChooseConfig'); eglGetConfigAttrib := dglGetProcAddress('eglGetConfigAttrib'); eglCreateWindowSurface := dglGetProcAddress('eglCreateWindowSurface'); eglCreatePbufferSurface := dglGetProcAddress('eglCreatePbufferSurface'); eglCreatePixmapSurface := dglGetProcAddress('eglCreatePixmapSurface'); eglDestroySurface := dglGetProcAddress('eglDestroySurface'); eglQuerySurface := dglGetProcAddress('eglQuerySurface'); eglBindAPI := dglGetProcAddress('eglBindAPI'); eglQueryAPI := dglGetProcAddress('eglQueryAPI'); eglWaitClient := dglGetProcAddress('eglWaitClient'); eglReleaseThread := dglGetProcAddress('eglReleaseThread'); eglCreatePbufferFromClientBuffer := dglGetProcAddress('eglCreatePbufferFromClientBuffer'); eglSurfaceAttrib := dglGetProcAddress('eglSurfaceAttrib'); eglBindTexImage := dglGetProcAddress('eglBindTexImage'); eglReleaseTexImage := dglGetProcAddress('eglReleaseTexImage'); eglSwapInterval := dglGetProcAddress('eglSwapInterval'); eglCreateContext := dglGetProcAddress('eglCreateContext'); eglDestroyContext := dglGetProcAddress('eglDestroyContext'); eglMakeCurrent := dglGetProcAddress('eglMakeCurrent'); eglGetCurrentContext := dglGetProcAddress('eglGetCurrentContext'); eglGetCurrentSurface := dglGetProcAddress('eglGetCurrentSurface'); eglGetCurrentDisplay := dglGetProcAddress('eglGetCurrentDisplay'); eglQueryContext := dglGetProcAddress('eglQueryContext'); eglWaitGL := dglGetProcAddress('eglWaitGL'); eglWaitNative := dglGetProcAddress('eglWaitNative'); eglSwapBuffers := dglGetProcAddress('eglSwapBuffers'); eglCopyBuffers := dglGetProcAddress('eglCopyBuffers'); end else result := false; end; procedure RaiseEglError(const aMsg: String); var err: EGLint; begin err := eglGetError(); raise EeglError.Create(aMsg + ' ErrorCode: 0x' + IntToHex(err, 8), err); end; function CreateRenderingContext(const aDisplayType: EGLNativeDisplayType; const aWindowType: PEGLNativeWindowType; const aConfigAttribs: PEGLint; const aContextAttribs: PEGLint): TdglRenderContext; var ConfigCount: EGLint; Config: EGLConfig; begin if (not Assigned(LibHandleOpenGLES) or not Assigned(LibHandleEGL)) and not InitOpenGLES then raise EdglOpenGLES.Create('unable to initialize OpenGL library'); result.Display := eglGetDisplay(aDisplayType); if (result.Display = EGL_NO_DISPLAY) then RaiseEglError('unable to get display.'); if (eglInitialize(result.Display, nil, nil) <> EGL_TRUE) then RaiseEglError('unable to initialize egl.'); if (eglChooseConfig(result.Display, aConfigAttribs, @Config, 1, @ConfigCount) <> EGL_TRUE) or (ConfigCount < 1) then RaiseEglError('unable to get suitable config.'); if (eglBindAPI(EGL_OPENGL_ES_API) <> EGL_TRUE) then RaiseEglError('unable to get an appropriate EGL frame buffer configuration.'); result.Surface := eglCreateWindowSurface(result.Display, Config, aWindowType, nil); if (result.Surface = EGL_NO_SURFACE) then RaiseEglError('unable to create window surface.'); result.Context := eglCreateContext(result.Display, Config, EGL_NO_CONTEXT, aContextAttribs); if (result.Context = EGL_NO_CONTEXT) then begin eglDestroySurface(result.Display, result.Surface); RaiseEglError('unable to create context.'); end; end; procedure DestroyRenderingContext(const aContext: TdglRenderContext); begin if (eglGetCurrentContext = aContext.Context) and not DeactivateRenderingContext(aContext) then RaiseEglError('unable to unbind context.'); if (eglDestroyContext(aContext.Display, aContext.Context) <> EGL_TRUE) then RaiseEglError('unable to destory context.'); if (eglDestroySurface(aContext.Display, aContext.Surface) <> EGL_TRUE) then RaiseEglError('unable to destroy surface.'); end; function ActivateRenderingContext(const aContext: TdglRenderContext; const aFlags: TActivationFlags): Boolean; begin result := (eglMakeCurrent(aContext.Display, aContext.Surface, aContext.Surface, aContext.Context) = GL_TRUE); if (afReadOpenGLCore in aFlags) then ReadOpenGLCore; if (afReadExtensions in aFlags) then ReadExtensions; if (afReadCoreVersion in aFlags) then ReadCoreVersion; if (afReadImplProp in aFlags) then ReadImplementationProperties; end; function DeactivateRenderingContext(const aContext: TdglRenderContext): Boolean; begin result := (eglMakeCurrent(aContext.Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT) = EGL_TRUE); end; procedure SwapBuffers(const aContext: TdglRenderContext); begin eglSwapBuffers(aContext.Display, aContext.Surface); end; procedure ReadOpenGLCore; begin {$IFDEF OPENGLES_CORE_1_1} { ============================================= OpenGL ES 1.1 ====================================================== } { Available only in Common profile } glAlphaFunc := dglGetProcAddress('glAlphaFunc'); glClearColor := dglGetProcAddress('glClearColor'); glClearDepthf := dglGetProcAddress('glClearDepthf'); glClipPlanef := dglGetProcAddress('glClipPlanef'); glColor4f := dglGetProcAddress('glColor4f'); glDepthRangef := dglGetProcAddress('glDepthRangef'); glFogf := dglGetProcAddress('glFogf'); glFogfv := dglGetProcAddress('glFogfv'); glFrustumf := dglGetProcAddress('glFrustumf'); glGetClipPlanef := dglGetProcAddress('glGetClipPlanef'); glGetFloatv := dglGetProcAddress('glGetFloatv'); glGetLightfv := dglGetProcAddress('glGetLightfv'); glGetMaterialfv := dglGetProcAddress('glGetMaterialfv'); glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv'); glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv'); glLightModelf := dglGetProcAddress('glLightModelf'); glLightModelfv := dglGetProcAddress('glLightModelfv'); glLightf := dglGetProcAddress('glLightf'); glLightfv := dglGetProcAddress('glLightfv'); glLineWidth := dglGetProcAddress('glLineWidth'); glLoadMatrixf := dglGetProcAddress('glLoadMatrixf'); glMaterialf := dglGetProcAddress('glMaterialf'); glMaterialfv := dglGetProcAddress('glMaterialfv'); glMultMatrixf := dglGetProcAddress('glMultMatrixf'); glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f'); glNormal3f := dglGetProcAddress('glNormal3f'); glOrthof := dglGetProcAddress('glOrthof'); glPointParameterf := dglGetProcAddress('glPointParameterf'); glPointParameterfv := dglGetProcAddress('glPointParameterfv'); glPointSize := dglGetProcAddress('glPointSize'); glPolygonOffset := dglGetProcAddress('glPolygonOffset'); glRotatef := dglGetProcAddress('glRotatef'); glScalef := dglGetProcAddress('glScalef'); glTexEnvf := dglGetProcAddress('glTexEnvf'); glTexEnvfv := dglGetProcAddress('glTexEnvfv'); glTexParameterf := dglGetProcAddress('glTexParameterf'); glTexParameterfv := dglGetProcAddress('glTexParameterfv'); glTranslatef := dglGetProcAddress('glTranslatef'); { Available in both Common and Common-Lite profiles } glActiveTexture := dglGetProcAddress('glActiveTexture'); glAlphaFuncx := dglGetProcAddress('glAlphaFuncx'); glBindBuffer := dglGetProcAddress('glBindBuffer'); glBindTexture := dglGetProcAddress('glBindTexture'); glBlendFunc := dglGetProcAddress('glBlendFunc'); glBufferData := dglGetProcAddress('glBufferData'); glBufferSubData := dglGetProcAddress('glBufferSubData'); glClear := dglGetProcAddress('glClear'); glClearColorx := dglGetProcAddress('glClearColorx'); glClearDepthx := dglGetProcAddress('glClearDepthx'); glClearStencil := dglGetProcAddress('glClearStencil'); glClientActiveTexture := dglGetProcAddress('glClientActiveTexture'); glClipPlanex := dglGetProcAddress('glClipPlanex'); glColor4ub := dglGetProcAddress('glColor4ub'); glColor4x := dglGetProcAddress('glColor4x'); glColorMask := dglGetProcAddress('glColorMask'); glColorPointer := dglGetProcAddress('glColorPointer'); glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D'); glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D'); glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D'); glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D'); glCullFace := dglGetProcAddress('glCullFace'); glDeleteBuffers := dglGetProcAddress('glDeleteBuffers'); glDeleteTextures := dglGetProcAddress('glDeleteTextures'); glDepthFunc := dglGetProcAddress('glDepthFunc'); glDepthMask := dglGetProcAddress('glDepthMask'); glDepthRangex := dglGetProcAddress('glDepthRangex'); glDisable := dglGetProcAddress('glDisable'); glDisableClientState := dglGetProcAddress('glDisableClientState'); glDrawArrays := dglGetProcAddress('glDrawArrays'); glDrawElements := dglGetProcAddress('glDrawElements'); glEnable := dglGetProcAddress('glEnable'); glEnableClientState := dglGetProcAddress('glEnableClientState'); glFinish := dglGetProcAddress('glFinish'); glFlush := dglGetProcAddress('glFlush'); glFogx := dglGetProcAddress('glFogx'); glFogxv := dglGetProcAddress('glFogxv'); glFrontFace := dglGetProcAddress('glFrontFace'); glFrustumx := dglGetProcAddress('glFrustumx'); glGetBooleanv := dglGetProcAddress('glGetBooleanv'); glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv'); glGetClipPlanex := dglGetProcAddress('glGetClipPlanex'); glGenBuffers := dglGetProcAddress('glGenBuffers'); glGenTextures := dglGetProcAddress('glGenTextures'); glGetError := dglGetProcAddress('glGetError'); glGetFixedv := dglGetProcAddress('glGetFixedv'); glGetIntegerv := dglGetProcAddress('glGetIntegerv'); glGetLightxv := dglGetProcAddress('glGetLightxv'); glGetMaterialxv := dglGetProcAddress('glGetMaterialxv'); glGetPointerv := dglGetProcAddress('glGetPointerv'); glGetString := dglGetProcAddress('glGetString'); glGetTexEnviv := dglGetProcAddress('glGetTexEnviv'); glGetTexEnvxv := dglGetProcAddress('glGetTexEnvxv'); glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv'); glGetTexParameterxv := dglGetProcAddress('glGetTexParameterxv'); glHint := dglGetProcAddress('glHint'); glIsBuffer := dglGetProcAddress('glIsBuffer'); glIsEnabled := dglGetProcAddress('glIsEnabled'); glIsTexture := dglGetProcAddress('glIsTexture'); glLightModelx := dglGetProcAddress('glLightModelx'); glLightModelxv := dglGetProcAddress('glLightModelxv'); glLightx := dglGetProcAddress('glLightx'); glLightxv := dglGetProcAddress('glLightxv'); glLineWidthx := dglGetProcAddress('glLineWidthx'); glLoadIdentity := dglGetProcAddress('glLoadIdentity'); glLoadMatrix := dglGetProcAddress('glLoadMatrix'); glLogicOp := dglGetProcAddress('glLogicOp'); glMaterialx := dglGetProcAddress('glMaterialx'); glMaterialxv := dglGetProcAddress('glMaterialxv'); glMatrixMode := dglGetProcAddress('glMatrixMode'); glMultMatrixx := dglGetProcAddress('glMultMatrixx'); glMultiTexCoord4x := dglGetProcAddress('glMultiTexCoord4x'); glNormal3x := dglGetProcAddress('glNormal3x'); glNormalPointer := dglGetProcAddress('glNormalPointer'); glOrthox := dglGetProcAddress('glOrthox'); glPixelStorei := dglGetProcAddress('glPixelStorei'); glPointParameterx := dglGetProcAddress('glPointParameterx'); glPointParameterxv := dglGetProcAddress('glPointParameterxv'); glPointSizex := dglGetProcAddress('glPointSizex'); glPolygonOffsetx := dglGetProcAddress('glPolygonOffsetx'); glPopMatrix := dglGetProcAddress('glPopMatrix'); glPushMatrix := dglGetProcAddress('glPushMatrix'); glReadPixels := dglGetProcAddress('glReadPixels'); glRotatex := dglGetProcAddress('glRotatex'); glSampleCoverage := dglGetProcAddress('glSampleCoverage'); glSampleCoveragex := dglGetProcAddress('glSampleCoveragex'); glScalex := dglGetProcAddress('glScalex'); glScissor := dglGetProcAddress('glScissor'); glShadeModel := dglGetProcAddress('glShadeModel'); glStencilFunc := dglGetProcAddress('glStencilFunc'); glStencilMask := dglGetProcAddress('glStencilMask'); glStencilOp := dglGetProcAddress('glStencilOp'); glTexCoordPointer := dglGetProcAddress('glTexCoordPointer'); glTexEnvi := dglGetProcAddress('glTexEnvi'); glTexEnvx := dglGetProcAddress('glTexEnvx'); glTexEnviv := dglGetProcAddress('glTexEnviv'); glTexEnvxv := dglGetProcAddress('glTexEnvxv'); glTexImage2D := dglGetProcAddress('glTexImage2D'); glTexParameteri := dglGetProcAddress('glTexParameteri'); glTexParameterx := dglGetProcAddress('glTexParameterx'); glTexParameteriv := dglGetProcAddress('glTexParameteriv'); glTexParameterxv := dglGetProcAddress('glTexParameterxv'); glTexSubImage2D := dglGetProcAddress('glTexSubImage2D'); glTranslatex := dglGetProcAddress('glTranslatex'); glVertexPointer := dglGetProcAddress('glVertexPointer'); glViewport := dglGetProcAddress('glViewport'); {$ENDIF} {$IFDEF OPENGLES_CORE_2_0} { ============================================= OpenGL ES 2.0 ====================================================== } glAttachShader := dglGetProcAddress('glAttachShader'); glBindAttribLocation := dglGetProcAddress('glBindAttribLocation'); glBindFramebuffer := dglGetProcAddress('glBindFramebuffer'); glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer'); glBlendColor := dglGetProcAddress('glBlendColor'); glBlendEquation := dglGetProcAddress('glBlendEquation'); glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate'); glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate'); glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus'); glCompileShader := dglGetProcAddress('glCompileShader'); glCreateProgram := dglGetProcAddress('glCreateProgram'); glCreateShader := dglGetProcAddress('glCreateShader'); glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers'); glDeleteProgram := dglGetProcAddress('glDeleteProgram'); glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers'); glDeleteShader := dglGetProcAddress('glDeleteShader'); glDetachShader := dglGetProcAddress('glDetachShader'); glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray'); glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray'); glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer'); glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D'); glGenerateMipmap := dglGetProcAddress('glGenerateMipmap'); glGenFramebuffers := dglGetProcAddress('glGenFramebuffers'); glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers'); glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib'); glGetActiveUniform := dglGetProcAddress('glGetActiveUniform'); glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders'); glGetAttribLocation := dglGetProcAddress('glGetAttribLocation'); glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv'); glGetProgramiv := dglGetProcAddress('glGetProgramiv'); glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog'); glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv'); glGetShaderiv := dglGetProcAddress('glGetShaderiv'); glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog'); glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat'); glGetShaderSource := dglGetProcAddress('glGetShaderSource'); glGetUniformfv := dglGetProcAddress('glGetUniformfv'); glGetUniformiv := dglGetProcAddress('glGetUniformiv'); glGetUniformLocation := dglGetProcAddress('glGetUniformLocation'); glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv'); glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv'); glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv'); glIsFramebuffer := dglGetProcAddress('glIsFramebuffer'); glIsProgram := dglGetProcAddress('glIsProgram'); glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer'); glIsShader := dglGetProcAddress('glIsShader'); glLinkProgram := dglGetProcAddress('glLinkProgram'); glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler'); glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage'); glShaderBinary := dglGetProcAddress('glShaderBinary'); glShaderSource := dglGetProcAddress('glShaderSource'); glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate'); glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate'); glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate'); glUniform1f := dglGetProcAddress('glUniform1f'); glUniform1fv := dglGetProcAddress('glUniform1fv'); glUniform1i := dglGetProcAddress('glUniform1i'); glUniform1iv := dglGetProcAddress('glUniform1iv'); glUniform2f := dglGetProcAddress('glUniform2f'); glUniform2fv := dglGetProcAddress('glUniform2fv'); glUniform2i := dglGetProcAddress('glUniform2i'); glUniform2iv := dglGetProcAddress('glUniform2iv'); glUniform3f := dglGetProcAddress('glUniform3f'); glUniform3fv := dglGetProcAddress('glUniform3fv'); glUniform3i := dglGetProcAddress('glUniform3i'); glUniform3iv := dglGetProcAddress('glUniform3iv'); glUniform4f := dglGetProcAddress('glUniform4f'); glUniform4fv := dglGetProcAddress('glUniform4fv'); glUniform4i := dglGetProcAddress('glUniform4i'); glUniform4iv := dglGetProcAddress('glUniform4iv'); glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv'); glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv'); glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv'); glUseProgram := dglGetProcAddress('glUseProgram'); glValidateProgram := dglGetProcAddress('glValidateProgram'); glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f'); glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv'); glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f'); glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv'); glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f'); glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv'); glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f'); glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv'); glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer'); {$ENDIF} {$IFDEF OPENGLES_CORE_3_0} { ============================================= OpenGL ES 3.0 ====================================================== } glReadBuffer := dglGetProcAddress('glReadBuffer'); glDrawRangeElements := dglGetProcAddress('glDrawRangeElements'); glTexImage3D := dglGetProcAddress('glTexImage3D'); glTexSubImage3D := dglGetProcAddress('glTexSubImage3D'); glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D'); glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D'); glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D'); glGenQueries := dglGetProcAddress('glGenQueries'); glDeleteQueries := dglGetProcAddress('glDeleteQueries'); glIsQuery := dglGetProcAddress('glIsQuery'); glBeginQuery := dglGetProcAddress('glBeginQuery'); glEndQuery := dglGetProcAddress('glEndQuery'); glGetQueryiv := dglGetProcAddress('glGetQueryiv'); glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv'); glUnmapBuffer := dglGetProcAddress('glUnmapBuffer'); glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv'); glDrawBuffers := dglGetProcAddress('glDrawBuffers'); glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv'); glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv'); glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv'); glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv'); glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv'); glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv'); glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer'); glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample'); glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer'); glMapBufferRange := dglGetProcAddress('glMapBufferRange'); glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange'); glBindVertexArray := dglGetProcAddress('glBindVertexArray'); glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays'); glGenVertexArrays := dglGetProcAddress('glGenVertexArrays'); glIsVertexArray := dglGetProcAddress('glIsVertexArray'); glGetIntegeriv := dglGetProcAddress('glGetIntegeriv'); glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback'); glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback'); glBindBufferRange := dglGetProcAddress('glBindBufferRange'); glBindBufferBase := dglGetProcAddress('glBindBufferBase'); glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings'); glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying'); glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer'); glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv'); glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv'); glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i'); glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui'); glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv'); glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv'); glGetUniformuiv := dglGetProcAddress('glGetUniformuiv'); glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation'); glUniform1ui := dglGetProcAddress('glUniform1ui'); glUniform2ui := dglGetProcAddress('glUniform2ui'); glUniform3ui := dglGetProcAddress('glUniform3ui'); glUniform4ui := dglGetProcAddress('glUniform4ui'); glUniform1uiv := dglGetProcAddress('glUniform1uiv'); glUniform2uiv := dglGetProcAddress('glUniform2uiv'); glUniform3uiv := dglGetProcAddress('glUniform3uiv'); glUniform4uiv := dglGetProcAddress('glUniform4uiv'); glClearBufferiv := dglGetProcAddress('glClearBufferiv'); glClearBufferuiv := dglGetProcAddress('glClearBufferuiv'); glClearBufferfv := dglGetProcAddress('glClearBufferfv'); glClearBufferfi := dglGetProcAddress('glClearBufferfi'); glGetStringi := dglGetProcAddress('glGetStringi'); glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData'); glGetUniformIndices := dglGetProcAddress('glGetUniformIndices'); glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv'); glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex'); glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv'); glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName'); glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding'); glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced'); glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced'); glFenceSync := dglGetProcAddress('glFenceSync'); glIsSync := dglGetProcAddress('glIsSync'); glDeleteSync := dglGetProcAddress('glDeleteSync'); glClientWaitSync := dglGetProcAddress('glClientWaitSync'); glWaitSync := dglGetProcAddress('glWaitSync'); glGetInteger64v := dglGetProcAddress('glGetInteger64v'); glGetSynciv := dglGetProcAddress('glGetSynciv'); glGetInteger64iv := dglGetProcAddress('glGetInteger64iv'); glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v'); glGenSamplers := dglGetProcAddress('glGenSamplers'); glDeleteSamplers := dglGetProcAddress('glDeleteSamplers'); glIsSampler := dglGetProcAddress('glIsSampler'); glBindSampler := dglGetProcAddress('glBindSampler'); glSamplerParameteri := dglGetProcAddress('glSamplerParameteri'); glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv'); glSamplerParameterf := dglGetProcAddress('glSamplerParameterf'); glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv'); glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv'); glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv'); glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor'); glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback'); glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks'); glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks'); glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback'); glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback'); glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback'); glGetProgramBinary := dglGetProcAddress('glGetProgramBinary'); glProgramBinary := dglGetProcAddress('glProgramBinary'); glProgramParameteri := dglGetProcAddress('glProgramParameteri'); glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer'); glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer'); glTexStorage2D := dglGetProcAddress('glTexStorage2D'); glTexStorage3D := dglGetProcAddress('glTexStorage3D'); glGetInternalformativ := dglGetProcAddress('glGetInternalformativ'); {$ENDIF} {$IFDEF OPENGLES_CORE_3_1} { ============================================= OpenGL ES 3.1 ====================================================== } glDispatchCompute := dglGetProcAddress('glDispatchCompute'); glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect'); glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect'); glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect'); glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri'); glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv'); glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv'); glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex'); glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName'); glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv'); glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation'); glUseProgramStages := dglGetProcAddress('glUseProgramStages'); glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram'); glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv'); glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline'); glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines'); glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines'); glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline'); glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv'); glProgramUniform1i := dglGetProcAddress('glProgramUniform1i'); glProgramUniform2i := dglGetProcAddress('glProgramUniform2i'); glProgramUniform3i := dglGetProcAddress('glProgramUniform3i'); glProgramUniform4i := dglGetProcAddress('glProgramUniform4i'); glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui'); glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui'); glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui'); glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui'); glProgramUniform1f := dglGetProcAddress('glProgramUniform1f'); glProgramUniform2f := dglGetProcAddress('glProgramUniform2f'); glProgramUniform3f := dglGetProcAddress('glProgramUniform3f'); glProgramUniform4f := dglGetProcAddress('glProgramUniform4f'); glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv'); glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv'); glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv'); glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv'); glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv'); glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv'); glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv'); glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv'); glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv'); glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv'); glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv'); glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv'); glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv'); glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv'); glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv'); glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv'); glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv'); glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv'); glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv'); glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv'); glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv'); glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline'); glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog'); glBindImageTexture := dglGetProcAddress('glBindImageTexture'); glGetBooleaniv := dglGetProcAddress('glGetBooleaniv'); glMemoryBarrier := dglGetProcAddress('glMemoryBarrier'); glMemoryBarrierByRegion := dglGetProcAddress('glMemoryBarrierByRegion'); glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample'); glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv'); glSampleMaski := dglGetProcAddress('glSampleMaski'); glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv'); glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv'); glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer'); glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat'); glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat'); glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding'); glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor'); {$ENDIF} end; procedure ReadExtensions; begin {$IFDEF OPENGLES_EXTENSIONS} Read_GL_KHR_blend_equation_advanced; Read_GL_KHR_debug; Read_GL_KHR_robustness; Read_GL_OES_EGL_image; Read_GL_OES_get_program_binary; Read_GL_OES_mapbuffer; Read_GL_OES_sample_shading; Read_GL_OES_texture_3D; Read_GL_OES_texture_storage_multisample_2d_array; Read_GL_OES_vertex_array_object; Read_GL_AMD_performance_monitor; Read_GL_ANGLE_framebuffer_blit; Read_GL_ANGLE_framebuffer_multisample; Read_GL_ANGLE_instanced_arrays; Read_GL_ANGLE_translated_shader_source; Read_GL_APPLE_copy_texture_levels; Read_GL_APPLE_framebuffer_multisample; Read_GL_APPLE_sync; Read_GL_EXT_base_instance; Read_GL_EXT_copy_image; Read_GL_EXT_debug_label; Read_GL_EXT_debug_marker; Read_GL_EXT_discard_framebuffer; Read_GL_EXT_disjoint_timer_query; Read_GL_EXT_draw_buffers; Read_GL_EXT_draw_buffers_indexed; Read_GL_EXT_draw_elements_base_vertex; Read_GL_EXT_draw_instanced; Read_GL_EXT_geometry_shader; Read_GL_EXT_instanced_arrays; Read_GL_EXT_map_buffer_range; Read_GL_EXT_multi_draw_arrays; Read_GL_EXT_multi_draw_indirect; Read_GL_EXT_multisampled_render_to_texture; Read_GL_EXT_multiview_draw_buffers; Read_GL_EXT_primitive_bounding_box; Read_GL_EXT_robustness; Read_GL_EXT_separate_shader_objects; Read_GL_EXT_tessellation_shader; Read_GL_EXT_texture_border_clamp; Read_GL_EXT_texture_buffer; Read_GL_EXT_texture_storage; Read_GL_EXT_texture_view; Read_GL_IMG_multisampled_render_to_texture; Read_GL_INTEL_performance_query; Read_GL_NV_bindless_texture; Read_GL_NV_blend_equation_advanced; Read_GL_NV_conditional_render; Read_GL_NV_copy_buffer; Read_GL_NV_coverage_sample; Read_GL_NV_draw_buffers; Read_GL_NV_draw_instanced; Read_GL_NV_fence; Read_GL_NV_framebuffer_blit; Read_GL_NV_framebuffer_multisample; Read_GL_NV_instanced_arrays; Read_GL_NV_internalformat_sample_query; Read_GL_NV_non_square_matrices; Read_GL_NV_path_rendering; Read_GL_NV_read_buffer; Read_GL_NV_viewport_array; Read_GL_QCOM_alpha_test; Read_GL_QCOM_driver_control; Read_GL_QCOM_extended_get; Read_GL_QCOM_extended_get2; Read_GL_QCOM_tiled_rendering; {$ENDIF} end; procedure ReadCoreVersion; var AnsiBuffer: AnsiString; Buffer: String; procedure TrimAndSplitVersionString(const aBuffer: String; out aMajor, aMinor: Integer); var p, s, e, len: Integer; begin aMajor := 0; aMinor := 0; try len := Length(aBuffer); p := Pos('.', aBuffer); if (p = 0) then exit; s := p; while (s > 1) and (aBuffer[s - 1] in ['0'..'9']) do dec(s); if (s = p) then exit; e := p; while (e < len) and (aBuffer[e + 1] in ['0'..'9']) do inc(e); if (s = p) then exit; aMajor := StrToInt(Copy(aBuffer, s - 1, p - s + 1)); aMinor := StrToInt(Copy(aBuffer, p + 1, e - p + 1)); except aMajor := 0; aMinor := 0; end; end; begin if not Assigned(glGetString) then glGetString := dglGetProcAddress('glGetString'); AnsiBuffer := PAnsiChar(glGetString(GL_VERSION)); Buffer := String(AnsiBuffer); TrimAndSplitVersionString(Buffer, GLmajor, GLminor); GL_VERSION_1_0 := true; // OpenGL ES is always supported GL_VERSION_1_1 := (GLmajor >= 1) and (GLminor >= 1); GL_VERSION_2_0 := (GLmajor >= 2) and (GLminor >= 0); GL_VERSION_3_0 := (GLmajor >= 3) and (GLminor >= 0); GL_VERSION_3_1 := (GLmajor >= 3) and (GLminor >= 1); end; {$IFDEF OPENGLES_EXTENSIONS} procedure ReadImplementationProperties; function GetExtensions: String; var ExtCount, i: GLint; begin result := ''; if not Assigned(glGetString) then glGetString := dglGetProcAddress('glGetString'); if Assigned(glGetString) then result := String(PAnsiChar(glGetString(GL_EXTENSIONS))); {$IFDEF OPENGLES_CORE_3_0} if (result = '') then begin if not Assigned(glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv'); if not Assigned(glGetStringi) then glGetStringi := dglGetProcAddress('glGetStringi'); if Assigned(glGetStringi) and Assigned(glGetIntegerv) then begin glGetIntegerv(GL_NUM_EXTENSIONS, @ExtCount); for i := 0 to ExtCount-1 do begin if (result <> '') then result := result + #$20; result := result + PAnsiChar(glGetStringi(GL_EXTENSIONS, i)); end; end; end; {$ENDIF} result := #$20 + result + #$20; end; function CheckEx(const aAllExt, aExt: String): Boolean; begin result := (Pos(#$20 + aExt + #$20, aAllExt) > 0); end; var Buffer: String; begin ReadCoreVersion; Buffer := GetExtensions; // KHR GL_KHR_blend_equation_advanced := CheckEx(Buffer, 'GL_KHR_blend_equation_advanced'); GL_KHR_blend_equation_advanced_coherent := CheckEx(Buffer, 'GL_KHR_blend_equation_advanced_coherent'); GL_KHR_context_flush_control := CheckEx(Buffer, 'GL_KHR_context_flush_control'); GL_KHR_debug := CheckEx(Buffer, 'GL_KHR_debug'); GL_KHR_robust_buffer_access_behavior := CheckEx(Buffer, 'GL_KHR_robust_buffer_access_behavior'); GL_KHR_robustness := CheckEx(Buffer, 'GL_KHR_robustness'); GL_KHR_texture_compression_astc_hdr := CheckEx(Buffer, 'GL_KHR_texture_compression_astc_hdr'); GL_KHR_texture_compression_astc_ldr := CheckEx(Buffer, 'GL_KHR_texture_compression_astc_ldr'); // OES GL_OES_EGL_image := CheckEx(Buffer, 'GL_OES_EGL_image'); GL_OES_EGL_image_external := CheckEx(Buffer, 'GL_OES_EGL_image_external'); GL_OES_compressed_ETC1_RGB8_sub_texture := CheckEx(Buffer, 'GL_OES_compressed_ETC1_RGB8_sub_texture'); GL_OES_compressed_ETC1_RGB8_texture := CheckEx(Buffer, 'GL_OES_compressed_ETC1_RGB8_texture'); GL_OES_compressed_paletted_texture := CheckEx(Buffer, 'GL_OES_compressed_paletted_texture'); GL_OES_depth24 := CheckEx(Buffer, 'GL_OES_depth24'); GL_OES_depth32 := CheckEx(Buffer, 'GL_OES_depth32'); GL_OES_depth_texture := CheckEx(Buffer, 'GL_OES_depth_texture'); GL_OES_element_index_uint := CheckEx(Buffer, 'GL_OES_element_index_uint'); GL_OES_fbo_render_mipmap := CheckEx(Buffer, 'GL_OES_fbo_render_mipmap'); GL_OES_fragment_precision_high := CheckEx(Buffer, 'GL_OES_fragment_precision_high'); GL_OES_get_program_binary := CheckEx(Buffer, 'GL_OES_get_program_binary'); GL_OES_mapbuffer := CheckEx(Buffer, 'GL_OES_mapbuffer'); GL_OES_packed_depth_stencil := CheckEx(Buffer, 'GL_OES_packed_depth_stencil'); GL_OES_required_internalformat := CheckEx(Buffer, 'GL_OES_required_internalformat'); GL_OES_rgb8_rgba8 := CheckEx(Buffer, 'GL_OES_rgb8_rgba8'); GL_OES_sample_shading := CheckEx(Buffer, 'GL_OES_sample_shading'); GL_OES_sample_variables := CheckEx(Buffer, 'GL_OES_sample_variables'); GL_OES_shader_image_atomic := CheckEx(Buffer, 'GL_OES_shader_image_atomic'); GL_OES_shader_multisample_interpolation := CheckEx(Buffer, 'GL_OES_shader_multisample_interpolation'); GL_OES_standard_derivatives := CheckEx(Buffer, 'GL_OES_standard_derivatives'); GL_OES_stencil1 := CheckEx(Buffer, 'GL_OES_stencil1'); GL_OES_stencil4 := CheckEx(Buffer, 'GL_OES_stencil4'); GL_OES_surfaceless_context := CheckEx(Buffer, 'GL_OES_surfaceless_context'); GL_OES_texture_3D := CheckEx(Buffer, 'GL_OES_texture_3D'); GL_OES_texture_compression_astc := CheckEx(Buffer, 'GL_OES_texture_compression_astc'); GL_OES_texture_float := CheckEx(Buffer, 'GL_OES_texture_float'); GL_OES_texture_float_linear := CheckEx(Buffer, 'GL_OES_texture_float_linear'); GL_OES_texture_half_float := CheckEx(Buffer, 'GL_OES_texture_half_float'); GL_OES_texture_half_float_linear := CheckEx(Buffer, 'GL_OES_texture_half_float_linear'); GL_OES_texture_npot := CheckEx(Buffer, 'GL_OES_texture_npot'); GL_OES_texture_stencil8 := CheckEx(Buffer, 'GL_OES_texture_stencil8'); GL_OES_texture_storage_multisample_2d_array := CheckEx(Buffer, 'GL_OES_texture_storage_multisample_2d_array'); GL_OES_vertex_array_object := CheckEx(Buffer, 'GL_OES_vertex_array_object'); GL_OES_vertex_half_float := CheckEx(Buffer, 'GL_OES_vertex_half_float'); GL_OES_vertex_type_10_10_10_2 := CheckEx(Buffer, 'GL_OES_vertex_type_10_10_10_2'); // AMD GL_AMD_compressed_3DC_texture := CheckEx(Buffer, 'GL_AMD_compressed_3DC_texture'); GL_AMD_compressed_ATC_texture := CheckEx(Buffer, 'GL_AMD_compressed_ATC_texture'); GL_AMD_performance_monitor := CheckEx(Buffer, 'GL_AMD_performance_monitor'); GL_AMD_program_binary_Z400 := CheckEx(Buffer, 'GL_AMD_program_binary_Z400'); // ANDROID GL_ANDROID_extension_pack_es31a := CheckEx(Buffer, 'GL_ANDROID_extension_pack_es31a'); // ANGLE GL_ANGLE_depth_texture := CheckEx(Buffer, 'GL_ANGLE_depth_texture'); GL_ANGLE_framebuffer_blit := CheckEx(Buffer, 'GL_ANGLE_framebuffer_blit'); GL_ANGLE_framebuffer_multisample := CheckEx(Buffer, 'GL_ANGLE_framebuffer_multisample'); GL_ANGLE_instanced_arrays := CheckEx(Buffer, 'GL_ANGLE_instanced_arrays'); GL_ANGLE_pack_reverse_row_order := CheckEx(Buffer, 'GL_ANGLE_pack_reverse_row_order'); GL_ANGLE_program_binary := CheckEx(Buffer, 'GL_ANGLE_program_binary'); GL_ANGLE_texture_compression_dxt3 := CheckEx(Buffer, 'GL_ANGLE_texture_compression_dxt3'); GL_ANGLE_texture_compression_dxt5 := CheckEx(Buffer, 'GL_ANGLE_texture_compression_dxt5'); GL_ANGLE_texture_usage := CheckEx(Buffer, 'GL_ANGLE_texture_usage'); GL_ANGLE_translated_shader_source := CheckEx(Buffer, 'GL_ANGLE_translated_shader_source'); // APPLE GL_APPLE_clip_distance := CheckEx(Buffer, 'GL_APPLE_clip_distance'); GL_APPLE_color_buffer_packed_float := CheckEx(Buffer, 'GL_APPLE_color_buffer_packed_float'); GL_APPLE_copy_texture_levels := CheckEx(Buffer, 'GL_APPLE_copy_texture_levels'); GL_APPLE_framebuffer_multisample := CheckEx(Buffer, 'GL_APPLE_framebuffer_multisample'); GL_APPLE_rgb_422 := CheckEx(Buffer, 'GL_APPLE_rgb_422'); GL_APPLE_sync := CheckEx(Buffer, 'GL_APPLE_sync'); GL_APPLE_texture_format_BGRA8888 := CheckEx(Buffer, 'GL_APPLE_texture_format_BGRA8888'); GL_APPLE_texture_max_level := CheckEx(Buffer, 'GL_APPLE_texture_max_level'); GL_APPLE_texture_packed_float := CheckEx(Buffer, 'GL_APPLE_texture_packed_float'); // ARM GL_ARM_mali_program_binary := CheckEx(Buffer, 'GL_ARM_mali_program_binary'); GL_ARM_mali_shader_binary := CheckEx(Buffer, 'GL_ARM_mali_shader_binary'); GL_ARM_rgba8 := CheckEx(Buffer, 'GL_ARM_rgba8'); GL_ARM_shader_framebuffer_fetch := CheckEx(Buffer, 'GL_ARM_shader_framebuffer_fetch'); GL_ARM_shader_framebuffer_fetch_depth_stencil := CheckEx(Buffer, 'GL_ARM_shader_framebuffer_fetch_depth_stencil'); // DMP GL_DMP_program_binary := CheckEx(Buffer, 'GL_DMP_program_binary'); GL_DMP_shader_binary := CheckEx(Buffer, 'GL_DMP_shader_binary'); // EXT GL_EXT_base_instance := CheckEx(Buffer, 'GL_EXT_base_instance'); GL_EXT_blend_minmax := CheckEx(Buffer, 'GL_EXT_blend_minmax'); GL_EXT_color_buffer_half_float := CheckEx(Buffer, 'GL_EXT_color_buffer_half_float'); GL_EXT_copy_image := CheckEx(Buffer, 'GL_EXT_copy_image'); GL_EXT_debug_label := CheckEx(Buffer, 'GL_EXT_debug_label'); GL_EXT_debug_marker := CheckEx(Buffer, 'GL_EXT_debug_marker'); GL_EXT_discard_framebuffer := CheckEx(Buffer, 'GL_EXT_discard_framebuffer'); GL_EXT_disjoint_timer_query := CheckEx(Buffer, 'GL_EXT_disjoint_timer_query'); GL_EXT_draw_buffers := CheckEx(Buffer, 'GL_EXT_draw_buffers'); GL_EXT_draw_buffers_indexed := CheckEx(Buffer, 'GL_EXT_draw_buffers_indexed'); GL_EXT_draw_elements_base_vertex := CheckEx(Buffer, 'GL_EXT_draw_elements_base_vertex'); GL_EXT_draw_instanced := CheckEx(Buffer, 'GL_EXT_draw_instanced'); GL_EXT_geometry_point_size := CheckEx(Buffer, 'GL_EXT_geometry_point_size'); GL_EXT_geometry_shader := CheckEx(Buffer, 'GL_EXT_geometry_shader'); GL_EXT_gpu_shader5 := CheckEx(Buffer, 'GL_EXT_gpu_shader5'); GL_EXT_instanced_arrays := CheckEx(Buffer, 'GL_EXT_instanced_arrays'); GL_EXT_map_buffer_range := CheckEx(Buffer, 'GL_EXT_map_buffer_range'); GL_EXT_multi_draw_arrays := CheckEx(Buffer, 'GL_EXT_multi_draw_arrays'); GL_EXT_multi_draw_indirect := CheckEx(Buffer, 'GL_EXT_multi_draw_indirect'); GL_EXT_multisampled_render_to_texture := CheckEx(Buffer, 'GL_EXT_multisampled_render_to_texture'); GL_EXT_multiview_draw_buffers := CheckEx(Buffer, 'GL_EXT_multiview_draw_buffers'); GL_EXT_occlusion_query_boolean := CheckEx(Buffer, 'GL_EXT_occlusion_query_boolean'); GL_EXT_primitive_bounding_box := CheckEx(Buffer, 'GL_EXT_primitive_bounding_box'); GL_EXT_pvrtc_sRGB := CheckEx(Buffer, 'GL_EXT_pvrtc_sRGB'); GL_EXT_read_format_bgra := CheckEx(Buffer, 'GL_EXT_read_format_bgra'); GL_EXT_render_snorm := CheckEx(Buffer, 'GL_EXT_render_snorm'); GL_EXT_robustness := CheckEx(Buffer, 'GL_EXT_robustness'); GL_EXT_sRGB := CheckEx(Buffer, 'GL_EXT_sRGB'); GL_EXT_sRGB_write_control := CheckEx(Buffer, 'GL_EXT_sRGB_write_control'); GL_EXT_separate_shader_objects := CheckEx(Buffer, 'GL_EXT_separate_shader_objects'); GL_EXT_shader_framebuffer_fetch := CheckEx(Buffer, 'GL_EXT_shader_framebuffer_fetch'); GL_EXT_shader_implicit_conversions := CheckEx(Buffer, 'GL_EXT_shader_implicit_conversions'); GL_EXT_shader_integer_mix := CheckEx(Buffer, 'GL_EXT_shader_integer_mix'); GL_EXT_shader_io_blocks := CheckEx(Buffer, 'GL_EXT_shader_io_blocks'); GL_EXT_shader_pixel_local_storage := CheckEx(Buffer, 'GL_EXT_shader_pixel_local_storage'); GL_EXT_shader_texture_lod := CheckEx(Buffer, 'GL_EXT_shader_texture_lod'); GL_EXT_shadow_samplers := CheckEx(Buffer, 'GL_EXT_shadow_samplers'); GL_EXT_tessellation_point_size := CheckEx(Buffer, 'GL_EXT_tessellation_point_size'); GL_EXT_tessellation_shader := CheckEx(Buffer, 'GL_EXT_tessellation_shader'); GL_EXT_texture_border_clamp := CheckEx(Buffer, 'GL_EXT_texture_border_clamp'); GL_EXT_texture_buffer := CheckEx(Buffer, 'GL_EXT_texture_buffer'); GL_EXT_texture_compression_dxt1 := CheckEx(Buffer, 'GL_EXT_texture_compression_dxt1'); GL_EXT_texture_compression_s3tc := CheckEx(Buffer, 'GL_EXT_texture_compression_s3tc'); GL_EXT_texture_cube_map_array := CheckEx(Buffer, 'GL_EXT_texture_cube_map_array'); GL_EXT_texture_filter_anisotropic := CheckEx(Buffer, 'GL_EXT_texture_filter_anisotropic'); GL_EXT_texture_format_BGRA8888 := CheckEx(Buffer, 'GL_EXT_texture_format_BGRA8888'); GL_EXT_texture_norm16 := CheckEx(Buffer, 'GL_EXT_texture_norm16'); GL_EXT_texture_rg := CheckEx(Buffer, 'GL_EXT_texture_rg'); GL_EXT_texture_sRGB_decode := CheckEx(Buffer, 'GL_EXT_texture_sRGB_decode'); GL_EXT_texture_storage := CheckEx(Buffer, 'GL_EXT_texture_storage'); GL_EXT_texture_type_2_10_10_10_REV := CheckEx(Buffer, 'GL_EXT_texture_type_2_10_10_10_REV'); GL_EXT_texture_view := CheckEx(Buffer, 'GL_EXT_texture_view'); GL_EXT_unpack_subimage := CheckEx(Buffer, 'GL_EXT_unpack_subimage'); // FJ GL_FJ_shader_binary_GCCSO := CheckEx(Buffer, 'GL_FJ_shader_binary_GCCSO'); // IMG GL_IMG_multisampled_render_to_texture := CheckEx(Buffer, 'GL_IMG_multisampled_render_to_texture'); GL_IMG_program_binary := CheckEx(Buffer, 'GL_IMG_program_binary'); GL_IMG_read_format := CheckEx(Buffer, 'GL_IMG_read_format'); GL_IMG_shader_binary := CheckEx(Buffer, 'GL_IMG_shader_binary'); GL_IMG_texture_compression_pvrtc := CheckEx(Buffer, 'GL_IMG_texture_compression_pvrtc'); GL_IMG_texture_compression_pvrtc2 := CheckEx(Buffer, 'GL_IMG_texture_compression_pvrtc2'); // INTEL GL_INTEL_performance_query := CheckEx(Buffer, 'GL_INTEL_performance_query'); // NV GL_NV_bindless_texture := CheckEx(Buffer, 'GL_NV_bindless_texture'); GL_NV_blend_equation_advanced := CheckEx(Buffer, 'GL_NV_blend_equation_advanced'); GL_NV_blend_equation_advanced_coherent := CheckEx(Buffer, 'GL_NV_blend_equation_advanced_coherent'); GL_NV_conditional_render := CheckEx(Buffer, 'GL_NV_conditional_render'); GL_NV_copy_buffer := CheckEx(Buffer, 'GL_NV_copy_buffer'); GL_NV_coverage_sample := CheckEx(Buffer, 'GL_NV_coverage_sample'); GL_NV_depth_nonlinear := CheckEx(Buffer, 'GL_NV_depth_nonlinear'); GL_NV_draw_buffers := CheckEx(Buffer, 'GL_NV_draw_buffers'); GL_NV_draw_instanced := CheckEx(Buffer, 'GL_NV_draw_instanced'); GL_NV_explicit_attrib_location := CheckEx(Buffer, 'GL_NV_explicit_attrib_location'); GL_NV_fbo_color_attachments := CheckEx(Buffer, 'GL_NV_fbo_color_attachments'); GL_NV_fence := CheckEx(Buffer, 'GL_NV_fence'); GL_NV_framebuffer_blit := CheckEx(Buffer, 'GL_NV_framebuffer_blit'); GL_NV_framebuffer_multisample := CheckEx(Buffer, 'GL_NV_framebuffer_multisample'); GL_NV_generate_mipmap_sRGB := CheckEx(Buffer, 'GL_NV_generate_mipmap_sRGB'); GL_NV_image_formats := CheckEx(Buffer, 'GL_NV_image_formats'); GL_NV_instanced_arrays := CheckEx(Buffer, 'GL_NV_instanced_arrays'); GL_NV_internalformat_sample_query := CheckEx(Buffer, 'GL_NV_internalformat_sample_query'); GL_NV_non_square_matrices := CheckEx(Buffer, 'GL_NV_non_square_matrices'); GL_NV_path_rendering := CheckEx(Buffer, 'GL_NV_path_rendering'); GL_NV_read_buffer := CheckEx(Buffer, 'GL_NV_read_buffer'); GL_NV_read_buffer_front := CheckEx(Buffer, 'GL_NV_read_buffer_front'); GL_NV_read_depth := CheckEx(Buffer, 'GL_NV_read_depth'); GL_NV_read_depth_stencil := CheckEx(Buffer, 'GL_NV_read_depth_stencil'); GL_NV_read_stencil := CheckEx(Buffer, 'GL_NV_read_stencil'); GL_NV_sRGB_formats := CheckEx(Buffer, 'GL_NV_sRGB_formats'); GL_NV_shader_noperspective_interpolation := CheckEx(Buffer, 'GL_NV_shader_noperspective_interpolation'); GL_NV_shadow_samplers_array := CheckEx(Buffer, 'GL_NV_shadow_samplers_array'); GL_NV_shadow_samplers_cube := CheckEx(Buffer, 'GL_NV_shadow_samplers_cube'); GL_NV_texture_border_clamp := CheckEx(Buffer, 'GL_NV_texture_border_clamp'); GL_NV_texture_compression_s3tc_update := CheckEx(Buffer, 'GL_NV_texture_compression_s3tc_update'); GL_NV_texture_npot_2D_mipmap := CheckEx(Buffer, 'GL_NV_texture_npot_2D_mipmap'); GL_NV_viewport_array := CheckEx(Buffer, 'GL_NV_viewport_array'); // QCOM GL_QCOM_alpha_test := CheckEx(Buffer, 'GL_QCOM_alpha_test'); GL_QCOM_binning_control := CheckEx(Buffer, 'GL_QCOM_binning_control'); GL_QCOM_driver_control := CheckEx(Buffer, 'GL_QCOM_driver_control'); GL_QCOM_extended_get := CheckEx(Buffer, 'GL_QCOM_extended_get'); GL_QCOM_extended_get2 := CheckEx(Buffer, 'GL_QCOM_extended_get2'); GL_QCOM_perfmon_global_mode := CheckEx(Buffer, 'GL_QCOM_perfmon_global_mode'); GL_QCOM_tiled_rendering := CheckEx(Buffer, 'GL_QCOM_tiled_rendering'); GL_QCOM_writeonly_rendering := CheckEx(Buffer, 'GL_QCOM_writeonly_rendering'); // VIV GL_VIV_shader_binary := CheckEx(Buffer, 'GL_VIV_shader_binary'); end; {$ELSE} procedure ReadImplementationProperties; begin // nothing to do here end; {$ENDIF} {$IFDEF OPENGLES_EXTENSIONS} procedure Read_GL_KHR_blend_equation_advanced; begin glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR'); end; procedure Read_GL_KHR_debug; begin glDebugMessageControlKHR := dglGetProcAddress('glDebugMessageControlKHR'); glDebugMessageInsertKHR := dglGetProcAddress('glDebugMessageInsertKHR'); glDebugMessageCallbackKHR := dglGetProcAddress('glDebugMessageCallbackKHR'); glGetDebugMessageLogKHR := dglGetProcAddress('glGetDebugMessageLogKHR'); glPushDebugGroupKHR := dglGetProcAddress('glPushDebugGroupKHR'); glPopDebugGroupKHR := dglGetProcAddress('glPopDebugGroupKHR'); glObjectLabelKHR := dglGetProcAddress('glObjectLabelKHR'); glGetObjectLabelKHR := dglGetProcAddress('glGetObjectLabelKHR'); glObjectPtrLabelKHR := dglGetProcAddress('glObjectPtrLabelKHR'); glGetObjectPtrLabelKHR := dglGetProcAddress('glGetObjectPtrLabelKHR'); glGetPointervKHR := dglGetProcAddress('glGetPointervKHR'); end; procedure Read_GL_KHR_robustness; begin glGetGraphicsResetStatusKHR := dglGetProcAddress('glGetGraphicsResetStatusKHR'); glReadnPixelsKHR := dglGetProcAddress('glReadnPixelsKHR'); glGetnUniformfvKHR := dglGetProcAddress('glGetnUniformfvKHR'); glGetnUniformivKHR := dglGetProcAddress('glGetnUniformivKHR'); glGetnUniformuivKHR := dglGetProcAddress('glGetnUniformuivKHR'); end; procedure Read_GL_OES_EGL_image; begin glEGLImageTargetTexture2DOES := dglGetProcAddress('glEGLImageTargetTexture2DOES'); glEGLImageTargetRenderbufferStorageOES := dglGetProcAddress('glEGLImageTargetRenderbufferStorageOES'); end; procedure Read_GL_OES_get_program_binary; begin glGetProgramBinaryOES := dglGetProcAddress('glGetProgramBinaryOES'); glProgramBinaryOES := dglGetProcAddress('glProgramBinaryOES'); end; procedure Read_GL_OES_mapbuffer; begin glMapBufferOES := dglGetProcAddress('glMapBufferOES'); glUnmapBufferOES := dglGetProcAddress('glUnmapBufferOES'); glGetBufferPointervOES := dglGetProcAddress('glGetBufferPointervOES'); end; procedure Read_GL_OES_sample_shading; begin glMinSampleShadingOES := dglGetProcAddress('glMinSampleShadingOES'); end; procedure Read_GL_OES_texture_3D; begin glTexImage3DOES := dglGetProcAddress('glTexImage3DOES'); glTexSubImage3DOES := dglGetProcAddress('glTexSubImage3DOES'); glCopyTexSubImage3DOES := dglGetProcAddress('glCopyTexSubImage3DOES'); glCompressedTexImage3DOES := dglGetProcAddress('glCompressedTexImage3DOES'); glCompressedTexSubImage3DOES := dglGetProcAddress('glCompressedTexSubImage3DOES'); glFramebufferTexture3DOES := dglGetProcAddress('glFramebufferTexture3DOES'); end; procedure Read_GL_OES_texture_storage_multisample_2d_array; begin glTexStorage3DMultisampleOES := dglGetProcAddress('glTexStorage3DMultisampleOES'); end; procedure Read_GL_OES_vertex_array_object; begin glBindVertexArrayOES := dglGetProcAddress('glBindVertexArrayOES'); glDeleteVertexArraysOES := dglGetProcAddress('glDeleteVertexArraysOES'); glGenVertexArraysOES := dglGetProcAddress('glGenVertexArraysOES'); glIsVertexArrayOES := dglGetProcAddress('glIsVertexArrayOES'); end; procedure Read_GL_AMD_performance_monitor; begin glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD'); glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD'); glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD'); glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD'); glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD'); glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD'); glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD'); glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD'); glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD'); glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD'); glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD'); end; procedure Read_GL_ANGLE_framebuffer_blit; begin glBlitFramebufferANGLE := dglGetProcAddress('glBlitFramebufferANGLE'); end; procedure Read_GL_ANGLE_framebuffer_multisample; begin glRenderbufferStorageMultisampleANGLE := dglGetProcAddress('glRenderbufferStorageMultisampleANGLE'); end; procedure Read_GL_ANGLE_instanced_arrays; begin glDrawArraysInstancedANGLE := dglGetProcAddress('glDrawArraysInstancedANGLE'); glDrawElementsInstancedANGLE := dglGetProcAddress('glDrawElementsInstancedANGLE'); glVertexAttribDivisorANGLE := dglGetProcAddress('glVertexAttribDivisorANGLE'); end; procedure Read_GL_ANGLE_translated_shader_source; begin glGetTranslatedShaderSourceANGLE := dglGetProcAddress('glGetTranslatedShaderSourceANGLE'); end; procedure Read_GL_APPLE_copy_texture_levels; begin glCopyTextureLevelsAPPLE := dglGetProcAddress('glCopyTextureLevelsAPPLE'); end; procedure Read_GL_APPLE_framebuffer_multisample; begin glRenderbufferStorageMultisampleAPPLE := dglGetProcAddress('glRenderbufferStorageMultisampleAPPLE'); glResolveMultisampleFramebufferAPPLE := dglGetProcAddress('glResolveMultisampleFramebufferAPPLE'); end; procedure Read_GL_APPLE_sync; begin glFenceSyncAPPLE := dglGetProcAddress('glFenceSyncAPPLE'); glIsSyncAPPLE := dglGetProcAddress('glIsSyncAPPLE'); glDeleteSyncAPPLE := dglGetProcAddress('glDeleteSyncAPPLE'); glClientWaitSyncAPPLE := dglGetProcAddress('glClientWaitSyncAPPLE'); glWaitSyncAPPLE := dglGetProcAddress('glWaitSyncAPPLE'); glGetInteger64vAPPLE := dglGetProcAddress('glGetInteger64vAPPLE'); glGetSyncivAPPLE := dglGetProcAddress('glGetSyncivAPPLE'); end; procedure Read_GL_EXT_base_instance; begin glDrawArraysInstancedBaseInstanceEXT := dglGetProcAddress('glDrawArraysInstancedBaseInstanceEXT'); glDrawElementsInstancedBaseInstanceEXT := dglGetProcAddress('glDrawElementsInstancedBaseInstanceEXT'); glDrawElementsInstancedBaseVertexBaseInstanceEXT := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstanceEXT'); end; procedure Read_GL_EXT_copy_image; begin glCopyImageSubDataEXT := dglGetProcAddress('glCopyImageSubDataEXT'); end; procedure Read_GL_EXT_debug_label; begin glLabelObjectEXT := dglGetProcAddress('glLabelObjectEXT'); glGetObjectLabelEXT := dglGetProcAddress('glGetObjectLabelEXT'); end; procedure Read_GL_EXT_debug_marker; begin glInsertEventMarkerEXT := dglGetProcAddress('glInsertEventMarkerEXT'); glPushGroupMarkerEXT := dglGetProcAddress('glPushGroupMarkerEXT'); glPopGroupMarkerEXT := dglGetProcAddress('glPopGroupMarkerEXT'); end; procedure Read_GL_EXT_discard_framebuffer; begin glDiscardFramebufferEXT := dglGetProcAddress('glDiscardFramebufferEXT'); end; procedure Read_GL_EXT_disjoint_timer_query; begin glGenQueriesEXT := dglGetProcAddress('glGenQueriesEXT'); glDeleteQueriesEXT := dglGetProcAddress('glDeleteQueriesEXT'); glIsQueryEXT := dglGetProcAddress('glIsQueryEXT'); glBeginQueryEXT := dglGetProcAddress('glBeginQueryEXT'); glEndQueryEXT := dglGetProcAddress('glEndQueryEXT'); glQueryCounterEXT := dglGetProcAddress('glQueryCounterEXT'); glGetQueryivEXT := dglGetProcAddress('glGetQueryivEXT'); glGetQueryObjectivEXT := dglGetProcAddress('glGetQueryObjectivEXT'); glGetQueryObjectuivEXT := dglGetProcAddress('glGetQueryObjectuivEXT'); glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT'); glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT'); end; procedure Read_GL_EXT_draw_buffers; begin glDrawBuffersEXT := dglGetProcAddress('glDrawBuffersEXT'); end; procedure Read_GL_EXT_draw_buffers_indexed; begin glEnableiEXT := dglGetProcAddress('glEnableiEXT'); glDisableiEXT := dglGetProcAddress('glDisableiEXT'); glBlendEquationiEXT := dglGetProcAddress('glBlendEquationiEXT'); glBlendEquationSeparateiEXT := dglGetProcAddress('glBlendEquationSeparateiEXT'); glBlendFunciEXT := dglGetProcAddress('glBlendFunciEXT'); glBlendFuncSeparateiEXT := dglGetProcAddress('glBlendFuncSeparateiEXT'); glColorMaskiEXT := dglGetProcAddress('glColorMaskiEXT'); glIsEnablediEXT := dglGetProcAddress('glIsEnablediEXT'); end; procedure Read_GL_EXT_draw_elements_base_vertex; begin glDrawElementsBaseVertexEXT := dglGetProcAddress('glDrawElementsBaseVertexEXT'); glDrawRangeElementsBaseVertexEXT := dglGetProcAddress('glDrawRangeElementsBaseVertexEXT'); glDrawElementsInstancedBaseVertexEXT := dglGetProcAddress('glDrawElementsInstancedBaseVertexEXT'); glMultiDrawElementsBaseVertexEXT := dglGetProcAddress('glMultiDrawElementsBaseVertexEXT'); end; procedure Read_GL_EXT_draw_instanced; begin glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT'); glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT'); end; procedure Read_GL_EXT_geometry_shader; begin glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT'); end; procedure Read_GL_EXT_instanced_arrays; begin glVertexAttribDivisorEXT := dglGetProcAddress('glVertexAttribDivisorEXT'); end; procedure Read_GL_EXT_map_buffer_range; begin glMapBufferRangeEXT := dglGetProcAddress('glMapBufferRangeEXT'); glFlushMappedBufferRangeEXT := dglGetProcAddress('glFlushMappedBufferRangeEXT'); end; procedure Read_GL_EXT_multi_draw_arrays; begin glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT'); glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT'); end; procedure Read_GL_EXT_multi_draw_indirect; begin glMultiDrawArraysIndirectEXT := dglGetProcAddress('glMultiDrawArraysIndirectEXT'); glMultiDrawElementsIndirectEXT := dglGetProcAddress('glMultiDrawElementsIndirectEXT'); end; procedure Read_GL_EXT_multisampled_render_to_texture; begin glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT'); glFramebufferTexture2DMultisampleEXT := dglGetProcAddress('glFramebufferTexture2DMultisampleEXT'); end; procedure Read_GL_EXT_multiview_draw_buffers; begin glReadBufferIndexedEXT := dglGetProcAddress('glReadBufferIndexedEXT'); glDrawBuffersIndexedEXT := dglGetProcAddress('glDrawBuffersIndexedEXT'); glGetIntegeri_vEXT := dglGetProcAddress('glGetIntegeri_vEXT'); end; procedure Read_GL_EXT_primitive_bounding_box; begin glPrimitiveBoundingBoxEXT := dglGetProcAddress('glPrimitiveBoundingBoxEXT'); end; procedure Read_GL_EXT_robustness; begin glGetGraphicsResetStatusEXT := dglGetProcAddress('glGetGraphicsResetStatusEXT'); glReadnPixelsEXT := dglGetProcAddress('glReadnPixelsEXT'); glGetnUniformfvEXT := dglGetProcAddress('glGetnUniformfvEXT'); glGetnUniformivEXT := dglGetProcAddress('glGetnUniformivEXT'); end; procedure Read_GL_EXT_separate_shader_objects; begin glActiveShaderProgramEXT := dglGetProcAddress('glActiveShaderProgramEXT'); glBindProgramPipelineEXT := dglGetProcAddress('glBindProgramPipelineEXT'); glCreateShaderProgramvEXT := dglGetProcAddress('glCreateShaderProgramvEXT'); glDeleteProgramPipelinesEXT := dglGetProcAddress('glDeleteProgramPipelinesEXT'); glGenProgramPipelinesEXT := dglGetProcAddress('glGenProgramPipelinesEXT'); glGetProgramPipelineInfoLogEXT := dglGetProcAddress('glGetProgramPipelineInfoLogEXT'); glGetProgramPipelineivEXT := dglGetProcAddress('glGetProgramPipelineivEXT'); glIsProgramPipelineEXT := dglGetProcAddress('glIsProgramPipelineEXT'); glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT'); glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT'); glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT'); glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT'); glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT'); glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT'); glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT'); glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT'); glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT'); glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT'); glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT'); glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT'); glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT'); glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT'); glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT'); glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT'); glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT'); glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT'); glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT'); glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT'); glUseProgramStagesEXT := dglGetProcAddress('glUseProgramStagesEXT'); glValidateProgramPipelineEXT := dglGetProcAddress('glValidateProgramPipelineEXT'); glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT'); glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT'); glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT'); glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT'); glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT'); glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT'); glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT'); glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT'); glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT'); glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT'); glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT'); glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT'); glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT'); glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT'); end; procedure Read_GL_EXT_tessellation_shader; begin glPatchParameteriEXT := dglGetProcAddress('glPatchParameteriEXT'); end; procedure Read_GL_EXT_texture_border_clamp; begin glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT'); glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT'); glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT'); glGetTexParameterIuivEXT := dglGetProcAddress('glGetTexParameterIuivEXT'); glSamplerParameterIivEXT := dglGetProcAddress('glSamplerParameterIivEXT'); glSamplerParameterIuivEXT := dglGetProcAddress('glSamplerParameterIuivEXT'); glGetSamplerParameterIivEXT := dglGetProcAddress('glGetSamplerParameterIivEXT'); glGetSamplerParameterIuivEXT := dglGetProcAddress('glGetSamplerParameterIuivEXT'); end; procedure Read_GL_EXT_texture_buffer; begin glTexBufferEXT := dglGetProcAddress('glTexBufferEXT'); glTexBufferRangeEXT := dglGetProcAddress('glTexBufferRangeEXT'); end; procedure Read_GL_EXT_texture_storage; begin glTexStorage1DEXT := dglGetProcAddress('glTexStorage1DEXT'); glTexStorage2DEXT := dglGetProcAddress('glTexStorage2DEXT'); glTexStorage3DEXT := dglGetProcAddress('glTexStorage3DEXT'); glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT'); glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT'); glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT'); end; procedure Read_GL_EXT_texture_view; begin glTextureViewEXT := dglGetProcAddress('glTextureViewEXT'); end; procedure Read_GL_IMG_multisampled_render_to_texture; begin glRenderbufferStorageMultisampleIMG := dglGetProcAddress('glRenderbufferStorageMultisampleIMG'); glFramebufferTexture2DMultisampleIMG := dglGetProcAddress('glFramebufferTexture2DMultisampleIMG'); end; procedure Read_GL_INTEL_performance_query; begin glBeginPerfQueryINTEL := dglGetProcAddress('glBeginPerfQueryINTEL'); glCreatePerfQueryINTEL := dglGetProcAddress('glCreatePerfQueryINTEL'); glDeletePerfQueryINTEL := dglGetProcAddress('glDeletePerfQueryINTEL'); glEndPerfQueryINTEL := dglGetProcAddress('glEndPerfQueryINTEL'); glGetFirstPerfQueryIdINTEL := dglGetProcAddress('glGetFirstPerfQueryIdINTEL'); glGetNextPerfQueryIdINTEL := dglGetProcAddress('glGetNextPerfQueryIdINTEL'); glGetPerfCounterInfoINTEL := dglGetProcAddress('glGetPerfCounterInfoINTEL'); glGetPerfQueryDataINTEL := dglGetProcAddress('glGetPerfQueryDataINTEL'); glGetPerfQueryIdByNameINTEL := dglGetProcAddress('glGetPerfQueryIdByNameINTEL'); glGetPerfQueryInfoINTEL := dglGetProcAddress('glGetPerfQueryInfoINTEL'); end; procedure Read_GL_NV_bindless_texture; begin glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV'); glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV'); glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV'); glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV'); glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV'); glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV'); glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV'); glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV'); glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV'); glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV'); glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV'); glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV'); glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV'); end; procedure Read_GL_NV_blend_equation_advanced; begin glBlendParameteriNV := dglGetProcAddress('glBlendParameteriNV'); glBlendBarrierNV := dglGetProcAddress('glBlendBarrierNV'); end; procedure Read_GL_NV_conditional_render; begin glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV'); glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV'); end; procedure Read_GL_NV_copy_buffer; begin glCopyBufferSubDataNV := dglGetProcAddress('glCopyBufferSubDataNV'); end; procedure Read_GL_NV_coverage_sample; begin glCoverageMaskNV := dglGetProcAddress('glCoverageMaskNV'); glCoverageOperationNV := dglGetProcAddress('glCoverageOperationNV'); end; procedure Read_GL_NV_draw_buffers; begin glDrawBuffersNV := dglGetProcAddress('glDrawBuffersNV'); end; procedure Read_GL_NV_draw_instanced; begin glDrawArraysInstancedNV := dglGetProcAddress('glDrawArraysInstancedNV'); glDrawElementsInstancedNV := dglGetProcAddress('glDrawElementsInstancedNV'); end; procedure Read_GL_NV_fence; begin glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV'); glGenFencesNV := dglGetProcAddress('glGenFencesNV'); glIsFenceNV := dglGetProcAddress('glIsFenceNV'); glTestFenceNV := dglGetProcAddress('glTestFenceNV'); glGetFenceivNV := dglGetProcAddress('glGetFenceivNV'); glFinishFenceNV := dglGetProcAddress('glFinishFenceNV'); glSetFenceNV := dglGetProcAddress('glSetFenceNV'); end; procedure Read_GL_NV_framebuffer_blit; begin glBlitFramebufferNV := dglGetProcAddress('glBlitFramebufferNV'); end; procedure Read_GL_NV_framebuffer_multisample; begin glRenderbufferStorageMultisampleNV := dglGetProcAddress('glRenderbufferStorageMultisampleNV'); end; procedure Read_GL_NV_instanced_arrays; begin glVertexAttribDivisorNV := dglGetProcAddress('glVertexAttribDivisorNV'); end; procedure Read_GL_NV_internalformat_sample_query; begin glGetInternalformatSampleivNV := dglGetProcAddress('glGetInternalformatSampleivNV'); end; procedure Read_GL_NV_non_square_matrices; begin glUniformMatrix2x3fvNV := dglGetProcAddress('glUniformMatrix2x3fvNV'); glUniformMatrix3x2fvNV := dglGetProcAddress('glUniformMatrix3x2fvNV'); glUniformMatrix2x4fvNV := dglGetProcAddress('glUniformMatrix2x4fvNV'); glUniformMatrix4x2fvNV := dglGetProcAddress('glUniformMatrix4x2fvNV'); glUniformMatrix3x4fvNV := dglGetProcAddress('glUniformMatrix3x4fvNV'); glUniformMatrix4x3fvNV := dglGetProcAddress('glUniformMatrix4x3fvNV'); end; procedure Read_GL_NV_path_rendering; begin glGenPathsNV := dglGetProcAddress('glGenPathsNV'); glDeletePathsNV := dglGetProcAddress('glDeletePathsNV'); glIsPathNV := dglGetProcAddress('glIsPathNV'); glPathCommandsNV := dglGetProcAddress('glPathCommandsNV'); glPathCoordsNV := dglGetProcAddress('glPathCoordsNV'); glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV'); glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV'); glPathStringNV := dglGetProcAddress('glPathStringNV'); glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV'); glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV'); glWeightPathsNV := dglGetProcAddress('glWeightPathsNV'); glCopyPathNV := dglGetProcAddress('glCopyPathNV'); glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV'); glTransformPathNV := dglGetProcAddress('glTransformPathNV'); glPathParameterivNV := dglGetProcAddress('glPathParameterivNV'); glPathParameteriNV := dglGetProcAddress('glPathParameteriNV'); glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV'); glPathParameterfNV := dglGetProcAddress('glPathParameterfNV'); glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV'); glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV'); glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV'); glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV'); glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV'); glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV'); glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV'); glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV'); glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV'); glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV'); glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV'); glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV'); glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV'); glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV'); glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV'); glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV'); glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV'); glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV'); glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV'); glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV'); glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV'); glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV'); glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV'); glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV'); glMatrixLoad3x2fNV := dglGetProcAddress('glMatrixLoad3x2fNV'); glMatrixLoad3x3fNV := dglGetProcAddress('glMatrixLoad3x3fNV'); glMatrixLoadTranspose3x3fNV := dglGetProcAddress('glMatrixLoadTranspose3x3fNV'); glMatrixMult3x2fNV := dglGetProcAddress('glMatrixMult3x2fNV'); glMatrixMult3x3fNV := dglGetProcAddress('glMatrixMult3x3fNV'); glMatrixMultTranspose3x3fNV := dglGetProcAddress('glMatrixMultTranspose3x3fNV'); glStencilThenCoverFillPathNV := dglGetProcAddress('glStencilThenCoverFillPathNV'); glStencilThenCoverStrokePathNV := dglGetProcAddress('glStencilThenCoverStrokePathNV'); glStencilThenCoverFillPathInstancedNV := dglGetProcAddress('glStencilThenCoverFillPathInstancedNV'); glStencilThenCoverStrokePathInstancedNV := dglGetProcAddress('glStencilThenCoverStrokePathInstancedNV'); glPathGlyphIndexRangeNV := dglGetProcAddress('glPathGlyphIndexRangeNV'); glPathGlyphIndexArrayNV := dglGetProcAddress('glPathGlyphIndexArrayNV'); glPathMemoryGlyphIndexArrayNV := dglGetProcAddress('glPathMemoryGlyphIndexArrayNV'); glProgramPathFragmentInputGenNV := dglGetProcAddress('glProgramPathFragmentInputGenNV'); glGetProgramResourcefvNV := dglGetProcAddress('glGetProgramResourcefvNV'); end; procedure Read_GL_NV_read_buffer; begin glReadBufferNV := dglGetProcAddress('glReadBufferNV'); end; procedure Read_GL_NV_viewport_array; begin glViewportArrayvNV := dglGetProcAddress('glViewportArrayvNV'); glViewportIndexedfNV := dglGetProcAddress('glViewportIndexedfNV'); glViewportIndexedfvNV := dglGetProcAddress('glViewportIndexedfvNV'); glScissorArrayvNV := dglGetProcAddress('glScissorArrayvNV'); glScissorIndexedNV := dglGetProcAddress('glScissorIndexedNV'); glScissorIndexedvNV := dglGetProcAddress('glScissorIndexedvNV'); glDepthRangeArrayfvNV := dglGetProcAddress('glDepthRangeArrayfvNV'); glDepthRangeIndexedfNV := dglGetProcAddress('glDepthRangeIndexedfNV'); glGetFloati_vNV := dglGetProcAddress('glGetFloati_vNV'); glEnableiNV := dglGetProcAddress('glEnableiNV'); glDisableiNV := dglGetProcAddress('glDisableiNV'); glIsEnablediNV := dglGetProcAddress('glIsEnablediNV'); end; procedure Read_GL_QCOM_alpha_test; begin glAlphaFuncQCOM := dglGetProcAddress('glAlphaFuncQCOM'); end; procedure Read_GL_QCOM_driver_control; begin glGetDriverControlsQCOM := dglGetProcAddress('glGetDriverControlsQCOM'); glGetDriverControlStringQCOM := dglGetProcAddress('glGetDriverControlStringQCOM'); glEnableDriverControlQCOM := dglGetProcAddress('glEnableDriverControlQCOM'); glDisableDriverControlQCOM := dglGetProcAddress('glDisableDriverControlQCOM'); end; procedure Read_GL_QCOM_extended_get; begin glExtGetTexturesQCOM := dglGetProcAddress('glExtGetTexturesQCOM'); glExtGetBuffersQCOM := dglGetProcAddress('glExtGetBuffersQCOM'); glExtGetRenderbuffersQCOM := dglGetProcAddress('glExtGetRenderbuffersQCOM'); glExtGetFramebuffersQCOM := dglGetProcAddress('glExtGetFramebuffersQCOM'); glExtGetTexLevelParameterivQCOM := dglGetProcAddress('glExtGetTexLevelParameterivQCOM'); glExtTexObjectStateOverrideiQCOM := dglGetProcAddress('glExtTexObjectStateOverrideiQCOM'); glExtGetTexSubImageQCOM := dglGetProcAddress('glExtGetTexSubImageQCOM'); glExtGetBufferPointervQCOM := dglGetProcAddress('glExtGetBufferPointervQCOM'); end; procedure Read_GL_QCOM_extended_get2; begin glExtGetShadersQCOM := dglGetProcAddress('glExtGetShadersQCOM'); glExtGetProgramsQCOM := dglGetProcAddress('glExtGetProgramsQCOM'); glExtIsProgramBinaryQCOM := dglGetProcAddress('glExtIsProgramBinaryQCOM'); glExtGetProgramBinarySourceQCOM := dglGetProcAddress('glExtGetProgramBinarySourceQCOM'); end; procedure Read_GL_QCOM_tiled_rendering; begin glStartTilingQCOM := dglGetProcAddress('glStartTilingQCOM'); glEndTilingQCOM := dglGetProcAddress('glEndTilingQCOM'); end; {$ENDIF} constructor EeglError.Create(const msg: string; const aErrorCode: EGLint); begin inherited Create(msg); ErrorCode := aErrorCode; end; end.