├── .gitignore ├── LICENSE ├── OpenGLES30.pas └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Delphi compiler-generated binaries (safe to delete) 2 | *.exe 3 | *.dll 4 | *.bpl 5 | *.bpi 6 | *.dcp 7 | *.so 8 | *.apk 9 | *.drc 10 | *.map 11 | *.dres 12 | *.rsm 13 | *.tds 14 | *.dcu 15 | *.lib 16 | *.a 17 | *.o 18 | *.ocx 19 | Temp/ 20 | *.tmp 21 | 22 | # Delphi autogenerated files (duplicated info) 23 | *.cfg 24 | *.hpp 25 | *Resource.rc 26 | 27 | # Delphi local files (user-specific info) 28 | *.local 29 | *.identcache 30 | *.projdata 31 | *.tvsconfig 32 | *.dsk 33 | 34 | # Delphi history and backups 35 | __history/ 36 | __recovery/ 37 | *.~* 38 | 39 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 40 | *.stat 41 | *.log 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Artem Gavrilov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /OpenGLES30.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************** 2 | *Copyright (c) 2019 Gavrilov Artem * 3 | * * 4 | *Permission is hereby granted, free of charge, to any person obtaining a copy of* 5 | *this software and associated documentation files (the "Software"), to deal in * 6 | *the Software without restriction, including without limitation the rights to * 7 | *use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * 8 | *of the Software, and to permit persons to whom the Software is furnished to do * 9 | *so, subject to the following conditions: * 10 | * * 11 | *The above copyright notice and this permission notice shall be included in all * 12 | *copies or substantial portions of the Software. * 13 | * * 14 | *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * 15 | *IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * 16 | *FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * 17 | *AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * 18 | *LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * 19 | *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * 20 | *SOFTWARE. * 21 | ********************************************************************************} 22 | unit OpenGLES30; 23 | 24 | interface 25 | 26 | uses 27 | SysUtils; 28 | 29 | {$IFDEF DCC} 30 | {$IFDEF ANDROID} 31 | type 32 | PAnsiChar=MarshaledAString; 33 | PPAnsiChar=^PAnsiChar; 34 | {$ENDIF} 35 | {$ENDIF} 36 | 37 | const 38 | OpenGLES3Lib={$IFDEF MSWINDOWS}'libGLESv2.dll'{$ELSE}'libGLESv3.so'{$ENDIF}; 39 | 40 | GL_DEPTH_BUFFER_BIT=$00000100; 41 | GL_STENCIL_BUFFER_BIT=$00000400; 42 | GL_COLOR_BUFFER_BIT=$00004000; 43 | GL_POINTS=$0000; 44 | GL_LINES=$0001; 45 | GL_LINE_LOOP=$0002; 46 | GL_LINE_STRIP=$0003; 47 | GL_TRIANGLES=$0004; 48 | GL_TRIANGLE_STRIP=$0005; 49 | GL_TRIANGLE_FAN=$0006; 50 | GL_ZERO=0; 51 | GL_ONE=1; 52 | GL_SRC_COLOR=$0300; 53 | GL_ONE_MINUS_SRC_COLOR=$0301; 54 | GL_SRC_ALPHA=$0302; 55 | GL_ONE_MINUS_SRC_ALPHA=$0303; 56 | GL_DST_ALPHA=$0304; 57 | GL_ONE_MINUS_DST_ALPHA=$0305; 58 | GL_DST_COLOR=$0306; 59 | GL_ONE_MINUS_DST_COLOR=$0307; 60 | GL_SRC_ALPHA_SATURATE=$0308; 61 | GL_FUNC_ADD=$8006; 62 | GL_BLEND_EQUATION=$8009; 63 | GL_BLEND_EQUATION_RGB=$8009; 64 | GL_BLEND_EQUATION_ALPHA=$883D; 65 | GL_FUNC_SUBTRACT=$800A; 66 | GL_FUNC_REVERSE_SUBTRACT=$800B; 67 | GL_BLEND_DST_RGB=$80C8; 68 | GL_BLEND_SRC_RGB=$80C9; 69 | GL_BLEND_DST_ALPHA=$80CA; 70 | GL_BLEND_SRC_ALPHA=$80CB; 71 | GL_CONSTANT_COLOR=$8001; 72 | GL_ONE_MINUS_CONSTANT_COLOR=$8002; 73 | GL_CONSTANT_ALPHA=$8003; 74 | GL_ONE_MINUS_CONSTANT_ALPHA=$8004; 75 | GL_BLEND_COLOR=$8005; 76 | GL_ARRAY_BUFFER=$8892; 77 | GL_ELEMENT_ARRAY_BUFFER=$8893; 78 | GL_ARRAY_BUFFER_BINDING=$8894; 79 | GL_ELEMENT_ARRAY_BUFFER_BINDING=$8895; 80 | GL_STREAM_DRAW=$88E0; 81 | GL_STATIC_DRAW=$88E4; 82 | GL_DYNAMIC_DRAW=$88E8; 83 | GL_BUFFER_SIZE=$8764; 84 | GL_BUFFER_USAGE=$8765; 85 | GL_CURRENT_VERTEX_ATTRIB=$8626; 86 | GL_FRONT=$0404; 87 | GL_BACK=$0405; 88 | GL_FRONT_AND_BACK=$0408; 89 | GL_TEXTURE_2D=$0DE1; 90 | GL_CULL_FACE=$0B44; 91 | GL_BLEND=$0BE2; 92 | GL_DITHER=$0BD0; 93 | GL_STENCIL_TEST=$0B90; 94 | GL_DEPTH_TEST=$0B71; 95 | GL_SCISSOR_TEST=$0C11; 96 | GL_POLYGON_OFFSET_FILL=$8037; 97 | GL_SAMPLE_ALPHA_TO_COVERAGE=$809E; 98 | GL_SAMPLE_COVERAGE=$80A0; 99 | GL_NO_ERROR=0; 100 | GL_INVALID_ENUM=$0500; 101 | GL_INVALID_VALUE=$0501; 102 | GL_INVALID_OPERATION=$0502; 103 | GL_OUT_OF_MEMORY=$0505; 104 | GL_CW=$0900; 105 | GL_CCW=$0901; 106 | GL_LINE_WIDTH=$0B21; 107 | GL_ALIASED_POINT_SIZE_RANGE=$846D; 108 | GL_ALIASED_LINE_WIDTH_RANGE=$846E; 109 | GL_CULL_FACE_MODE=$0B45; 110 | GL_FRONT_FACE=$0B46; 111 | GL_DEPTH_RANGE=$0B70; 112 | GL_DEPTH_WRITEMASK=$0B72; 113 | GL_DEPTH_CLEAR_VALUE=$0B73; 114 | GL_DEPTH_FUNC=$0B74; 115 | GL_STENCIL_CLEAR_VALUE=$0B91; 116 | GL_STENCIL_FUNC=$0B92; 117 | GL_STENCIL_FAIL=$0B94; 118 | GL_STENCIL_PASS_DEPTH_FAIL=$0B95; 119 | GL_STENCIL_PASS_DEPTH_PASS=$0B96; 120 | GL_STENCIL_REF=$0B97; 121 | GL_STENCIL_VALUE_MASK=$0B93; 122 | GL_STENCIL_WRITEMASK=$0B98; 123 | GL_STENCIL_BACK_FUNC=$8800; 124 | GL_STENCIL_BACK_FAIL=$8801; 125 | GL_STENCIL_BACK_PASS_DEPTH_FAIL=$8802; 126 | GL_STENCIL_BACK_PASS_DEPTH_PASS=$8803; 127 | GL_STENCIL_BACK_REF=$8CA3; 128 | GL_STENCIL_BACK_VALUE_MASK=$8CA4; 129 | GL_STENCIL_BACK_WRITEMASK=$8CA5; 130 | GL_VIEWPORT=$0BA2; 131 | GL_SCISSOR_BOX=$0C10; 132 | GL_COLOR_CLEAR_VALUE=$0C22; 133 | GL_COLOR_WRITEMASK=$0C23; 134 | GL_UNPACK_ALIGNMENT=$0CF5; 135 | GL_PACK_ALIGNMENT=$0D05; 136 | GL_MAX_TEXTURE_SIZE=$0D33; 137 | GL_MAX_VIEWPORT_DIMS=$0D3A; 138 | GL_SUBPIXEL_BITS=$0D50; 139 | GL_RED_BITS=$0D52; 140 | GL_GREEN_BITS=$0D53; 141 | GL_BLUE_BITS=$0D54; 142 | GL_ALPHA_BITS=$0D55; 143 | GL_DEPTH_BITS=$0D56; 144 | GL_STENCIL_BITS=$0D57; 145 | GL_POLYGON_OFFSET_UNITS=$2A00; 146 | GL_POLYGON_OFFSET_FACTOR=$8038; 147 | GL_TEXTURE_BINDING_2D=$8069; 148 | GL_SAMPLE_BUFFERS=$80A8; 149 | GL_SAMPLES=$80A9; 150 | GL_SAMPLE_COVERAGE_VALUE=$80AA; 151 | GL_SAMPLE_COVERAGE_INVERT=$80AB; 152 | GL_NUM_COMPRESSED_TEXTURE_FORMATS=$86A2; 153 | GL_COMPRESSED_TEXTURE_FORMATS=$86A3; 154 | GL_DONT_CARE=$1100; 155 | GL_FASTEST=$1101; 156 | GL_NICEST=$1102; 157 | GL_GENERATE_MIPMAP_HINT=$8192; 158 | GL_BYTE=$1400; 159 | GL_UNSIGNED_BYTE=$1401; 160 | GL_SHORT=$1402; 161 | GL_UNSIGNED_SHORT=$1403; 162 | GL_INT=$1404; 163 | GL_UNSIGNED_INT=$1405; 164 | GL_FLOAT=$1406; 165 | GL_FIXED=$140C; 166 | GL_DEPTH_COMPONENT=$1902; 167 | GL_ALPHA=$1906; 168 | GL_RGB=$1907; 169 | GL_RGBA=$1908; 170 | GL_LUMINANCE=$1909; 171 | GL_LUMINANCE_ALPHA=$190A; 172 | GL_UNSIGNED_SHORT_4_4_4_4=$8033; 173 | GL_UNSIGNED_SHORT_5_5_5_1=$8034; 174 | GL_UNSIGNED_SHORT_5_6_5=$8363; 175 | GL_FRAGMENT_SHADER=$8B30; 176 | GL_VERTEX_SHADER=$8B31; 177 | GL_MAX_VERTEX_ATTRIBS=$8869; 178 | GL_MAX_VERTEX_UNIFORM_VECTORS=$8DFB; 179 | GL_MAX_VARYING_VECTORS=$8DFC; 180 | GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS=$8B4D; 181 | GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS=$8B4C; 182 | GL_MAX_TEXTURE_IMAGE_UNITS=$8872; 183 | GL_MAX_FRAGMENT_UNIFORM_VECTORS=$8DFD; 184 | GL_SHADER_TYPE=$8B4F; 185 | GL_DELETE_STATUS=$8B80; 186 | GL_LINK_STATUS=$8B82; 187 | GL_VALIDATE_STATUS=$8B83; 188 | GL_ATTACHED_SHADERS=$8B85; 189 | GL_ACTIVE_UNIFORMS=$8B86; 190 | GL_ACTIVE_UNIFORM_MAX_LENGTH=$8B87; 191 | GL_ACTIVE_ATTRIBUTES=$8B89; 192 | GL_ACTIVE_ATTRIBUTE_MAX_LENGTH=$8B8A; 193 | GL_SHADING_LANGUAGE_VERSION=$8B8C; 194 | GL_CURRENT_PROGRAM=$8B8D; 195 | GL_NEVER=$0200; 196 | GL_LESS=$0201; 197 | GL_EQUAL=$0202; 198 | GL_LEQUAL=$0203; 199 | GL_GREATER=$0204; 200 | GL_NOTEQUAL=$0205; 201 | GL_GEQUAL=$0206; 202 | GL_ALWAYS=$0207; 203 | GL_KEEP=$1E00; 204 | GL_REPLACE=$1E01; 205 | GL_INCR=$1E02; 206 | GL_DECR=$1E03; 207 | GL_INVERT=$150A; 208 | GL_INCR_WRAP=$8507; 209 | GL_DECR_WRAP=$8508; 210 | GL_VENDOR=$1F00; 211 | GL_RENDERER=$1F01; 212 | GL_VERSION=$1F02; 213 | GL_EXTENSIONS=$1F03; 214 | GL_NEAREST=$2600; 215 | GL_LINEAR=$2601; 216 | GL_NEAREST_MIPMAP_NEAREST=$2700; 217 | GL_LINEAR_MIPMAP_NEAREST=$2701; 218 | GL_NEAREST_MIPMAP_LINEAR=$2702; 219 | GL_LINEAR_MIPMAP_LINEAR=$2703; 220 | GL_TEXTURE_MAG_FILTER=$2800; 221 | GL_TEXTURE_MIN_FILTER=$2801; 222 | GL_TEXTURE_WRAP_S=$2802; 223 | GL_TEXTURE_WRAP_T=$2803; 224 | GL_TEXTURE=$1702; 225 | GL_TEXTURE_CUBE_MAP=$8513; 226 | GL_TEXTURE_BINDING_CUBE_MAP=$8514; 227 | GL_TEXTURE_CUBE_MAP_POSITIVE_X=$8515; 228 | GL_TEXTURE_CUBE_MAP_NEGATIVE_X=$8516; 229 | GL_TEXTURE_CUBE_MAP_POSITIVE_Y=$8517; 230 | GL_TEXTURE_CUBE_MAP_NEGATIVE_Y=$8518; 231 | GL_TEXTURE_CUBE_MAP_POSITIVE_Z=$8519; 232 | GL_TEXTURE_CUBE_MAP_NEGATIVE_Z=$851A; 233 | GL_MAX_CUBE_MAP_TEXTURE_SIZE=$851C; 234 | GL_TEXTURE0=$84C0; 235 | GL_TEXTURE1=$84C1; 236 | GL_TEXTURE2=$84C2; 237 | GL_TEXTURE3=$84C3; 238 | GL_TEXTURE4=$84C4; 239 | GL_TEXTURE5=$84C5; 240 | GL_TEXTURE6=$84C6; 241 | GL_TEXTURE7=$84C7; 242 | GL_TEXTURE8=$84C8; 243 | GL_TEXTURE9=$84C9; 244 | GL_TEXTURE10=$84CA; 245 | GL_TEXTURE11=$84CB; 246 | GL_TEXTURE12=$84CC; 247 | GL_TEXTURE13=$84CD; 248 | GL_TEXTURE14=$84CE; 249 | GL_TEXTURE15=$84CF; 250 | GL_TEXTURE16=$84D0; 251 | GL_TEXTURE17=$84D1; 252 | GL_TEXTURE18=$84D2; 253 | GL_TEXTURE19=$84D3; 254 | GL_TEXTURE20=$84D4; 255 | GL_TEXTURE21=$84D5; 256 | GL_TEXTURE22=$84D6; 257 | GL_TEXTURE23=$84D7; 258 | GL_TEXTURE24=$84D8; 259 | GL_TEXTURE25=$84D9; 260 | GL_TEXTURE26=$84DA; 261 | GL_TEXTURE27=$84DB; 262 | GL_TEXTURE28=$84DC; 263 | GL_TEXTURE29=$84DD; 264 | GL_TEXTURE30=$84DE; 265 | GL_TEXTURE31=$84DF; 266 | GL_ACTIVE_TEXTURE=$84E0; 267 | GL_REPEAT=$2901; 268 | GL_CLAMP_TO_EDGE=$812F; 269 | GL_MIRRORED_REPEAT=$8370; 270 | GL_FLOAT_VEC2=$8B50; 271 | GL_FLOAT_VEC3=$8B51; 272 | GL_FLOAT_VEC4=$8B52; 273 | GL_INT_VEC2=$8B53; 274 | GL_INT_VEC3=$8B54; 275 | GL_INT_VEC4=$8B55; 276 | GL_BOOL=$8B56; 277 | GL_BOOL_VEC2=$8B57; 278 | GL_BOOL_VEC3=$8B58; 279 | GL_BOOL_VEC4=$8B59; 280 | GL_FLOAT_MAT2=$8B5A; 281 | GL_FLOAT_MAT3=$8B5B; 282 | GL_FLOAT_MAT4=$8B5C; 283 | GL_SAMPLER_2D=$8B5E; 284 | GL_SAMPLER_CUBE=$8B60; 285 | GL_VERTEX_ATTRIB_ARRAY_ENABLED=$8622; 286 | GL_VERTEX_ATTRIB_ARRAY_SIZE=$8623; 287 | GL_VERTEX_ATTRIB_ARRAY_STRIDE=$8624; 288 | GL_VERTEX_ATTRIB_ARRAY_TYPE=$8625; 289 | GL_VERTEX_ATTRIB_ARRAY_NORMALIZED=$886A; 290 | GL_VERTEX_ATTRIB_ARRAY_POINTER=$8645; 291 | GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=$889F; 292 | GL_IMPLEMENTATION_COLOR_READ_TYPE=$8B9A; 293 | GL_IMPLEMENTATION_COLOR_READ_FORMAT=$8B9B; 294 | GL_COMPILE_STATUS=$8B81; 295 | GL_INFO_LOG_LENGTH=$8B84; 296 | GL_SHADER_SOURCE_LENGTH=$8B88; 297 | GL_SHADER_COMPILER=$8DFA; 298 | GL_SHADER_BINARY_FORMATS=$8DF8; 299 | GL_NUM_SHADER_BINARY_FORMATS=$8DF9; 300 | GL_LOW_FLOAT=$8DF0; 301 | GL_MEDIUM_FLOAT=$8DF1; 302 | GL_HIGH_FLOAT=$8DF2; 303 | GL_LOW_INT=$8DF3; 304 | GL_MEDIUM_INT=$8DF4; 305 | GL_HIGH_INT=$8DF5; 306 | GL_FRAMEBUFFER=$8D40; 307 | GL_RENDERBUFFER=$8D41; 308 | GL_RGBA4=$8056; 309 | GL_RGB5_A1=$8057; 310 | GL_RGB565=$8D62; 311 | GL_DEPTH_COMPONENT16=$81A5; 312 | GL_STENCIL_INDEX8=$8D48; 313 | GL_RENDERBUFFER_WIDTH=$8D42; 314 | GL_RENDERBUFFER_HEIGHT=$8D43; 315 | GL_RENDERBUFFER_INTERNAL_FORMAT=$8D44; 316 | GL_RENDERBUFFER_RED_SIZE=$8D50; 317 | GL_RENDERBUFFER_GREEN_SIZE=$8D51; 318 | GL_RENDERBUFFER_BLUE_SIZE=$8D52; 319 | GL_RENDERBUFFER_ALPHA_SIZE=$8D53; 320 | GL_RENDERBUFFER_DEPTH_SIZE=$8D54; 321 | GL_RENDERBUFFER_STENCIL_SIZE=$8D55; 322 | GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=$8CD0; 323 | GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=$8CD1; 324 | GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=$8CD2; 325 | GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=$8CD3; 326 | GL_COLOR_ATTACHMENT0=$8CE0; 327 | GL_DEPTH_ATTACHMENT=$8D00; 328 | GL_STENCIL_ATTACHMENT=$8D20; 329 | GL_NONE=0; 330 | GL_FRAMEBUFFER_COMPLETE=$8CD5; 331 | GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT=$8CD6; 332 | GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=$8CD7; 333 | GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS=$8CD9; 334 | GL_FRAMEBUFFER_UNSUPPORTED=$8CDD; 335 | GL_FRAMEBUFFER_BINDING=$8CA6; 336 | GL_RENDERBUFFER_BINDING=$8CA7; 337 | GL_MAX_RENDERBUFFER_SIZE=$84E8; 338 | GL_INVALID_FRAMEBUFFER_OPERATION=$0506; 339 | procedure glActiveTexture(texture:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 340 | procedure glAttachShader(&program,shader:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 341 | procedure glBindAttribLocation(&program,index:Cardinal;const name:PAnsiChar);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 342 | procedure glBindBuffer(target,buffer:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 343 | procedure glBindFramebuffer(target,framebuffer:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 344 | procedure glBindRenderbuffer(target,renderbuffer:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 345 | procedure glBindTexture(target,texture:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 346 | procedure glBlendColor(red,green,blue,alpha:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 347 | procedure glBlendEquation(mode:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 348 | procedure glBlendEquationSeparate(modeRGB,modeAlpha:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 349 | procedure glBlendFunc(sfactor,dfactor:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 350 | procedure glBlendFuncSeparate(sfactorRGB,dfactorRGB,sfactorAlpha,dfactorAlpha:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 351 | procedure glBufferData(target:Cardinal;size:NativeInt;data:Pointer;usage:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 352 | procedure glBufferSubData(target:Cardinal;offset:NativeInt;size:NativeInt;const data:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 353 | function glCheckFramebufferStatus(target:Cardinal):Cardinal;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 354 | procedure glClear(mask:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 355 | procedure glClearColor(red,green,blue,alpha:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 356 | procedure glClearDepthf(d:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 357 | procedure glClearStencil(s:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 358 | procedure glColorMask(red,green,blue,alpha:Boolean);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 359 | procedure glCompileShader(shader:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 360 | procedure glCompressedTexImage2D(target:Cardinal;level:Integer;internalformat:Cardinal;width,height,border,imageSize:Integer;const data:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 361 | procedure glCompressedTexSubImage2D(target:Cardinal;level,xoffset,yoffset,width,height:Integer;format:Cardinal;imageSize:Integer;const data:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 362 | procedure glCopyTexImage2D(target:Cardinal;level:Integer;internalformat:Cardinal;x,y,width,height,border:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 363 | procedure glCopyTexSubImage2D(target:Cardinal;level,xoffset,yoffset,x,y,width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 364 | function glCreateProgram():Cardinal;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 365 | function glCreateShader(&type:Cardinal):Cardinal;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 366 | procedure glCullFace(mode:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 367 | procedure glDeleteBuffers(n:Integer;const buffers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 368 | procedure glDeleteFramebuffers(n:Integer;const framebuffers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 369 | procedure glDeleteProgram(&program:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 370 | procedure glDeleteRenderbuffers(n:Integer;const renderbuffers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 371 | procedure glDeleteShader(shader:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 372 | procedure glDeleteTextures(n:Integer;const textures:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 373 | procedure glDepthFunc(func:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 374 | procedure glDepthMask(flag:Boolean);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 375 | procedure glDepthRangef(n,f:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 376 | procedure glDetachShader(&program,shader:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 377 | procedure glDisable(cap:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 378 | procedure glDisableVertexAttribArray(index:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 379 | procedure glDrawArrays(mode:Cardinal;first,count:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 380 | procedure glDrawElements(mode:Cardinal;count:Integer;&type:Cardinal;const indices:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 381 | procedure glEnable(cap:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 382 | procedure glEnableVertexAttribArray(index:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 383 | procedure glFinish();{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 384 | procedure glFlush();{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 385 | procedure glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 386 | procedure glFramebufferTexture2D(target,attachment,textarget,texture:Cardinal;level:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 387 | procedure glFrontFace(mode:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 388 | procedure glGenBuffers(n:Integer;out buffers:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 389 | procedure glGenerateMipmap(target:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 390 | procedure glGenFramebuffers(n:Integer;framebuffers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 391 | procedure glGenRenderbuffers(n:Integer;renderbuffers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 392 | procedure glGenTextures(n:Integer;out textures:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 393 | procedure glGetActiveAttrib(&program,index:Cardinal;bufSize:Integer;length,size:PInteger;&type:PCardinal;name:PAnsiChar);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 394 | procedure glGetActiveUniform(&program,index:Cardinal;bufSize:Integer;length,size:PInteger;&type:PCardinal;name:PAnsiChar);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 395 | procedure glGetAttachedShaders(&program:Cardinal;maxCount:Integer;count:PInteger;shaders:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 396 | function glGetAttribLocation(&program:Cardinal;const name:PAnsiChar):Integer;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 397 | procedure glGetBooleanv(pname:Cardinal;data:PBoolean);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 398 | procedure glGetBufferParameteriv(target,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 399 | function glGetError():Cardinal;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 400 | procedure glGetFloatv(pname:Cardinal;data:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 401 | procedure glGetFramebufferAttachmentParameteriv(target,attachment,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 402 | procedure glGetIntegerv(pname:Cardinal;data:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 403 | procedure glGetProgramiv(&program,pname:Cardinal;var params:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 404 | procedure glGetProgramInfoLog(&program:Cardinal;bufSize:Integer;var length:Integer;var infoLog);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 405 | procedure glGetRenderbufferParameteriv(target,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 406 | procedure glGetShaderiv(shader,pname:Cardinal;var params);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 407 | procedure glGetShaderInfoLog(shader:Cardinal;bufSize:Integer;var length:Integer;var infoLog);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 408 | procedure glGetShaderPrecisionFormat(shadertype,precisiontype:Cardinal;range,precision:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 409 | procedure glGetShaderSource(shader:Cardinal;bufSize:Integer;length:PInteger;source:PAnsiChar);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 410 | function glGetString(name:Cardinal):PByte;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 411 | procedure glGetTexParameterfv(target,pname:Cardinal;params:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 412 | procedure glGetTexParameteriv(target,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 413 | procedure glGetUniformfv(&program:Cardinal;location:Integer;params:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 414 | procedure glGetUniformiv(&program:Cardinal;location:Integer;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 415 | function glGetUniformLocation(&program:Cardinal;const PAnsiChar):Integer;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 416 | procedure glGetVertexAttribfv(index,pname:Cardinal;params:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 417 | procedure glGetVertexAttribiv(index,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 418 | procedure glGetVertexAttribPointerv(index,pname:Cardinal;pointer:PPointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 419 | procedure glHint(target,mode:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 420 | function glIsBuffer(bufferCardinal:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 421 | function glIsEnabled(cap:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 422 | function glIsFramebuffer(framebuffer:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 423 | function glIsProgram(&program:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 424 | function glIsRenderbuffer(renderbuffer:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 425 | function glIsShader(shader:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 426 | function glIsTexture(texture:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 427 | procedure glLineWidth(width:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 428 | procedure glLinkProgram(&program:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 429 | procedure glPixelStorei(pname:Cardinal;param:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 430 | procedure glPolygonOffset(factor,units:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 431 | procedure glReadPixels(x,y,width,height:Integer;format,&type:Cardinal;pixels:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 432 | procedure glReleaseShaderCompiler();{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 433 | procedure glRenderbufferStorage(target,internalformat:Cardinal;width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 434 | procedure glSampleCoverage(value:Single;invert:boolean);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 435 | procedure glScissor(x,y,width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 436 | procedure glShaderBinary(count:Integer;const shaders:PCardinal;binaryformat:Cardinal;const binary:Pointer;length:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 437 | procedure glShaderSource(shader:Cardinal;count:Integer;const &string:PPAnsiChar;const length:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 438 | procedure glStencilFunc(func:Cardinal;ref:Integer;mask:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 439 | procedure glStencilFuncSeparate(face,func:Cardinal;ref:Integer;mask:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 440 | procedure glStencilMask(mask:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 441 | procedure glStencilMaskSeparate(face,mask:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 442 | procedure glStencilOp(fail,zfail,zpass:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 443 | procedure glStencilOpSeparate(face,sfail,dpfail,dppass:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 444 | procedure glTexImage2D(target:Cardinal;level,internalformat,width,height,border:Integer;format:Cardinal;&type:Cardinal;var pixels);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 445 | procedure glTexParameterf(target,pname:Cardinal;param:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 446 | procedure glTexParameterfv(target,pname:Cardinal;const params:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 447 | procedure glTexParameteri(target,pname:Cardinal;param:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 448 | procedure glTexParameteriv(target,pname:Cardinal;const params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 449 | procedure glTexSubImage2D(target:Cardinal;level,xoffset,yoffset,width,height:Integer;format,&type:Cardinal;const pixels:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 450 | procedure glUniform1f(location:Integer;v0:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 451 | procedure glUniform1fv(location,count:Integer;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 452 | procedure glUniform1i(location,v0:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 453 | procedure glUniform1iv(location,count:Integer;const value:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 454 | procedure glUniform2f(location:Integer;v0,v1:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 455 | procedure glUniform2fv(location,count:Integer;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 456 | procedure glUniform2i(location,v0,v1:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 457 | procedure glUniform2iv(location,count:Integer;const value:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 458 | procedure glUniform3f(location:Integer;v0,v1,v2:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 459 | procedure glUniform3fv(location,count:Integer;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 460 | procedure glUniform3i(location,v0,v1,v2:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 461 | procedure glUniform3iv(location,count:Integer;const value:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 462 | procedure glUniform4f(location:Integer;v0,v1,v2,v3:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 463 | procedure glUniform4fv(location,count:Integer;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 464 | procedure glUniform4i(location,v0,v1,v2,v3:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 465 | procedure glUniform4iv(location,count:Integer;const value:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 466 | procedure glUniformMatrix2fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 467 | procedure glUniformMatrix3fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 468 | procedure glUniformMatrix4fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 469 | procedure glUseProgram(&program:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 470 | procedure glValidateProgram(&program:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 471 | procedure glVertexAttrib1f(index:Cardinal;x:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 472 | procedure glVertexAttrib1fv(index:Cardinal;const v:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 473 | procedure glVertexAttrib2f(index:Cardinal;x,y:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 474 | procedure glVertexAttrib2fv(index:Cardinal;const v:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 475 | procedure glVertexAttrib3f(index:Cardinal;x,y,z:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 476 | procedure glVertexAttrib3fv(index:Cardinal;const v:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 477 | procedure glVertexAttrib4f(index:Cardinal;x,y,z,w:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 478 | procedure glVertexAttrib4fv(index:Cardinal;const v:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 479 | procedure glVertexAttribPointer(index:Cardinal;size:Integer;&type:Cardinal;normalized:boolean;stride:Integer;const pointer:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 480 | procedure glViewport(x,y,width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 481 | 482 | const 483 | GL_READ_BUFFER=$0C02; 484 | GL_UNPACK_ROW_LENGTH=$0CF2; 485 | GL_UNPACK_SKIP_ROWS=$0CF3; 486 | GL_UNPACK_SKIP_PIXELS=$0CF4; 487 | GL_PACK_ROW_LENGTH=$0D02; 488 | GL_PACK_SKIP_ROWS=$0D03; 489 | GL_PACK_SKIP_PIXELS=$0D04; 490 | GL_COLOR=$1800; 491 | GL_DEPTH=$1801; 492 | GL_STENCIL=$1802; 493 | GL_RED=$1903; 494 | GL_RGB8=$8051; 495 | GL_RGBA8=$8058; 496 | GL_RGB10_A2=$8059; 497 | GL_TEXTURE_BINDING_3D=$806A; 498 | GL_UNPACK_SKIP_IMAGES=$806D; 499 | GL_UNPACK_IMAGE_HEIGHT=$806E; 500 | GL_TEXTURE_3D=$806F; 501 | GL_TEXTURE_WRAP_R=$8072; 502 | GL_MAX_3D_TEXTURE_SIZE=$8073; 503 | GL_UNSIGNED_INT_2_10_10_10_REV=$8368; 504 | GL_MAX_ELEMENTS_VERTICES=$80E8; 505 | GL_MAX_ELEMENTS_INDICES=$80E9; 506 | GL_TEXTURE_MIN_LOD=$813A; 507 | GL_TEXTURE_MAX_LOD=$813B; 508 | GL_TEXTURE_BASE_LEVEL=$813C; 509 | GL_TEXTURE_MAX_LEVEL=$813D; 510 | GL_MIN=$8007; 511 | GL_MAX=$8008; 512 | GL_DEPTH_COMPONENT24=$81A6; 513 | GL_MAX_TEXTURE_LOD_BIAS=$84FD; 514 | GL_TEXTURE_COMPARE_MODE=$884C; 515 | GL_TEXTURE_COMPARE_FUNC=$884D; 516 | GL_CURRENT_QUERY=$8865; 517 | GL_QUERY_RESULT=$8866; 518 | GL_QUERY_RESULT_AVAILABLE=$8867; 519 | GL_BUFFER_MAPPED=$88BC; 520 | GL_BUFFER_MAP_POINTER=$88BD; 521 | GL_STREAM_READ=$88E1; 522 | GL_STREAM_COPY=$88E2; 523 | GL_STATIC_READ=$88E5; 524 | GL_STATIC_COPY=$88E6; 525 | GL_DYNAMIC_READ=$88E9; 526 | GL_DYNAMIC_COPY=$88EA; 527 | GL_MAX_DRAW_BUFFERS=$8824; 528 | GL_DRAW_BUFFER0=$8825; 529 | GL_DRAW_BUFFER1=$8826; 530 | GL_DRAW_BUFFER2=$8827; 531 | GL_DRAW_BUFFER3=$8828; 532 | GL_DRAW_BUFFER4=$8829; 533 | GL_DRAW_BUFFER5=$882A; 534 | GL_DRAW_BUFFER6=$882B; 535 | GL_DRAW_BUFFER7=$882C; 536 | GL_DRAW_BUFFER8=$882D; 537 | GL_DRAW_BUFFER9=$882E; 538 | GL_DRAW_BUFFER10=$882F; 539 | GL_DRAW_BUFFER11=$8830; 540 | GL_DRAW_BUFFER12=$8831; 541 | GL_DRAW_BUFFER13=$8832; 542 | GL_DRAW_BUFFER14=$8833; 543 | GL_DRAW_BUFFER15=$8834; 544 | GL_MAX_FRAGMENT_UNIFORM_COMPONENTS=$8B49; 545 | GL_MAX_VERTEX_UNIFORM_COMPONENTS=$8B4A; 546 | GL_SAMPLER_3D=$8B5F; 547 | GL_SAMPLER_2D_SHADOW=$8B62; 548 | GL_FRAGMENT_SHADER_DERIVATIVE_HINT=$8B8B; 549 | GL_PIXEL_PACK_BUFFER=$88EB; 550 | GL_PIXEL_UNPACK_BUFFER=$88EC; 551 | GL_PIXEL_PACK_BUFFER_BINDING=$88ED; 552 | GL_PIXEL_UNPACK_BUFFER_BINDING=$88EF; 553 | GL_FLOAT_MAT2x3=$8B65; 554 | GL_FLOAT_MAT2x4=$8B66; 555 | GL_FLOAT_MAT3x2=$8B67; 556 | GL_FLOAT_MAT3x4=$8B68; 557 | GL_FLOAT_MAT4x2=$8B69; 558 | GL_FLOAT_MAT4x3=$8B6A; 559 | GL_SRGB=$8C40; 560 | GL_SRGB8=$8C41; 561 | GL_SRGB8_ALPHA8=$8C43; 562 | GL_COMPARE_REF_TO_TEXTURE=$884E; 563 | GL_MAJOR_VERSION=$821B; 564 | GL_MINOR_VERSION=$821C; 565 | GL_NUM_EXTENSIONS=$821D; 566 | GL_RGBA32F=$8814; 567 | GL_RGB32F=$8815; 568 | GL_RGBA16F=$881A; 569 | GL_RGB16F=$881B; 570 | GL_VERTEX_ATTRIB_ARRAY_INTEGER=$88FD; 571 | GL_MAX_ARRAY_TEXTURE_LAYERS=$88FF; 572 | GL_MIN_PROGRAM_TEXEL_OFFSET=$8904; 573 | GL_MAX_PROGRAM_TEXEL_OFFSET=$8905; 574 | GL_MAX_VARYING_COMPONENTS=$8B4B; 575 | GL_TEXTURE_2D_ARRAY=$8C1A; 576 | GL_TEXTURE_BINDING_2D_ARRAY=$8C1D; 577 | GL_R11F_G11F_B10F=$8C3A; 578 | GL_UNSIGNED_INT_10F_11F_11F_REV=$8C3B; 579 | GL_RGB9_E5=$8C3D; 580 | GL_UNSIGNED_INT_5_9_9_9_REV=$8C3E; 581 | GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH=$8C76; 582 | GL_TRANSFORM_FEEDBACK_BUFFER_MODE=$8C7F; 583 | GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=$8C80; 584 | GL_TRANSFORM_FEEDBACK_VARYINGS=$8C83; 585 | GL_TRANSFORM_FEEDBACK_BUFFER_START=$8C84; 586 | GL_TRANSFORM_FEEDBACK_BUFFER_SIZE=$8C85; 587 | GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=$8C88; 588 | GL_RASTERIZER_DISCARD=$8C89; 589 | GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=$8C8A; 590 | GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=$8C8B; 591 | GL_INTERLEAVED_ATTRIBS=$8C8C; 592 | GL_SEPARATE_ATTRIBS=$8C8D; 593 | GL_TRANSFORM_FEEDBACK_BUFFER=$8C8E; 594 | GL_TRANSFORM_FEEDBACK_BUFFER_BINDING=$8C8F; 595 | GL_RGBA32UI=$8D70; 596 | GL_RGB32UI=$8D71; 597 | GL_RGBA16UI=$8D76; 598 | GL_RGB16UI=$8D77; 599 | GL_RGBA8UI=$8D7C; 600 | GL_RGB8UI=$8D7D; 601 | GL_RGBA32I=$8D82; 602 | GL_RGB32I=$8D83; 603 | GL_RGBA16I=$8D88; 604 | GL_RGB16I=$8D89; 605 | GL_RGBA8I=$8D8E; 606 | GL_RGB8I=$8D8F; 607 | GL_RED_INTEGER=$8D94; 608 | GL_RGB_INTEGER=$8D98; 609 | GL_RGBA_INTEGER=$8D99; 610 | GL_SAMPLER_2D_ARRAY=$8DC1; 611 | GL_SAMPLER_2D_ARRAY_SHADOW=$8DC4; 612 | GL_SAMPLER_CUBE_SHADOW=$8DC5; 613 | GL_UNSIGNED_INT_VEC2=$8DC6; 614 | GL_UNSIGNED_INT_VEC3=$8DC7; 615 | GL_UNSIGNED_INT_VEC4=$8DC8; 616 | GL_INT_SAMPLER_2D=$8DCA; 617 | GL_INT_SAMPLER_3D=$8DCB; 618 | GL_INT_SAMPLER_CUBE=$8DCC; 619 | GL_INT_SAMPLER_2D_ARRAY=$8DCF; 620 | GL_UNSIGNED_INT_SAMPLER_2D=$8DD2; 621 | GL_UNSIGNED_INT_SAMPLER_3D=$8DD3; 622 | GL_UNSIGNED_INT_SAMPLER_CUBE=$8DD4; 623 | GL_UNSIGNED_INT_SAMPLER_2D_ARRAY=$8DD7; 624 | GL_BUFFER_ACCESS_FLAGS=$911F; 625 | GL_BUFFER_MAP_LENGTH=$9120; 626 | GL_BUFFER_MAP_OFFSET=$9121; 627 | GL_DEPTH_COMPONENT32F=$8CAC; 628 | GL_DEPTH32F_STENCIL8=$8CAD; 629 | GL_FLOAT_32_UNSIGNED_INT_24_8_REV=$8DAD; 630 | GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=$8210; 631 | GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=$8211; 632 | GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE=$8212; 633 | GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=$8213; 634 | GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=$8214; 635 | GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=$8215; 636 | GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=$8216; 637 | GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=$8217; 638 | GL_FRAMEBUFFER_DEFAULT=$8218; 639 | GL_FRAMEBUFFER_UNDEFINED=$8219; 640 | GL_DEPTH_STENCIL_ATTACHMENT=$821A; 641 | GL_DEPTH_STENCIL=$84F9; 642 | GL_UNSIGNED_INT_24_8=$84FA; 643 | GL_DEPTH24_STENCIL8=$88F0; 644 | GL_UNSIGNED_NORMALIZED=$8C17; 645 | GL_DRAW_FRAMEBUFFER_BINDING=$8CA6; 646 | GL_READ_FRAMEBUFFER=$8CA8; 647 | GL_DRAW_FRAMEBUFFER=$8CA9; 648 | GL_READ_FRAMEBUFFER_BINDING=$8CAA; 649 | GL_RENDERBUFFER_SAMPLES=$8CAB; 650 | GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=$8CD4; 651 | GL_MAX_COLOR_ATTACHMENTS=$8CDF; 652 | GL_COLOR_ATTACHMENT1=$8CE1; 653 | GL_COLOR_ATTACHMENT2=$8CE2; 654 | GL_COLOR_ATTACHMENT3=$8CE3; 655 | GL_COLOR_ATTACHMENT4=$8CE4; 656 | GL_COLOR_ATTACHMENT5=$8CE5; 657 | GL_COLOR_ATTACHMENT6=$8CE6; 658 | GL_COLOR_ATTACHMENT7=$8CE7; 659 | GL_COLOR_ATTACHMENT8=$8CE8; 660 | GL_COLOR_ATTACHMENT9=$8CE9; 661 | GL_COLOR_ATTACHMENT10=$8CEA; 662 | GL_COLOR_ATTACHMENT11=$8CEB; 663 | GL_COLOR_ATTACHMENT12=$8CEC; 664 | GL_COLOR_ATTACHMENT13=$8CED; 665 | GL_COLOR_ATTACHMENT14=$8CEE; 666 | GL_COLOR_ATTACHMENT15=$8CEF; 667 | GL_COLOR_ATTACHMENT16=$8CF0; 668 | GL_COLOR_ATTACHMENT17=$8CF1; 669 | GL_COLOR_ATTACHMENT18=$8CF2; 670 | GL_COLOR_ATTACHMENT19=$8CF3; 671 | GL_COLOR_ATTACHMENT20=$8CF4; 672 | GL_COLOR_ATTACHMENT21=$8CF5; 673 | GL_COLOR_ATTACHMENT22=$8CF6; 674 | GL_COLOR_ATTACHMENT23=$8CF7; 675 | GL_COLOR_ATTACHMENT24=$8CF8; 676 | GL_COLOR_ATTACHMENT25=$8CF9; 677 | GL_COLOR_ATTACHMENT26=$8CFA; 678 | GL_COLOR_ATTACHMENT27=$8CFB; 679 | GL_COLOR_ATTACHMENT28=$8CFC; 680 | GL_COLOR_ATTACHMENT29=$8CFD; 681 | GL_COLOR_ATTACHMENT30=$8CFE; 682 | GL_COLOR_ATTACHMENT31=$8CFF; 683 | GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=$8D56; 684 | GL_MAX_SAMPLES=$8D57; 685 | GL_HALF_FLOAT=$140B; 686 | GL_MAP_READ_BIT=$0001; 687 | GL_MAP_WRITE_BIT=$0002; 688 | GL_MAP_INVALIDATE_RANGE_BIT=$0004; 689 | GL_MAP_INVALIDATE_BUFFER_BIT=$0008; 690 | GL_MAP_FLUSH_EXPLICIT_BIT=$0010; 691 | GL_MAP_UNSYNCHRONIZED_BIT=$0020; 692 | GL_RG =$8227; 693 | GL_RG_INTEGER=$8228; 694 | GL_R8 =$8229; 695 | GL_RG8=$822B; 696 | GL_R16F=$822D; 697 | GL_R32F=$822E; 698 | GL_RG16F=$822F; 699 | GL_RG32F=$8230; 700 | GL_R8I=$8231; 701 | GL_R8UI=$8232; 702 | GL_R16I=$8233; 703 | GL_R16UI=$8234; 704 | GL_R32I=$8235; 705 | GL_R32UI=$8236; 706 | GL_RG8I=$8237; 707 | GL_RG8UI=$8238; 708 | GL_RG16I=$8239; 709 | GL_RG16UI=$823A; 710 | GL_RG32I=$823B; 711 | GL_RG32UI=$823C; 712 | GL_VERTEX_ARRAY_BINDING=$85B5; 713 | GL_R8_SNORM=$8F94; 714 | GL_RG8_SNORM=$8F95; 715 | GL_RGB8_SNORM=$8F96; 716 | GL_RGBA8_SNORM=$8F97; 717 | GL_SIGNED_NORMALIZED=$8F9C; 718 | GL_PRIMITIVE_RESTART_FIXED_INDEX=$8D69; 719 | GL_COPY_READ_BUFFER=$8F36; 720 | GL_COPY_WRITE_BUFFER=$8F37; 721 | GL_COPY_READ_BUFFER_BINDING=$8F36; 722 | GL_COPY_WRITE_BUFFER_BINDING=$8F37; 723 | GL_UNIFORM_BUFFER=$8A11; 724 | GL_UNIFORM_BUFFER_BINDING=$8A28; 725 | GL_UNIFORM_BUFFER_START=$8A29; 726 | GL_UNIFORM_BUFFER_SIZE=$8A2A; 727 | GL_MAX_VERTEX_UNIFORM_BLOCKS=$8A2B; 728 | GL_MAX_FRAGMENT_UNIFORM_BLOCKS=$8A2D; 729 | GL_MAX_COMBINED_UNIFORM_BLOCKS=$8A2E; 730 | GL_MAX_UNIFORM_BUFFER_BINDINGS=$8A2F; 731 | GL_MAX_UNIFORM_BLOCK_SIZE=$8A30; 732 | GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=$8A31; 733 | GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=$8A33; 734 | GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT=$8A34; 735 | GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH=$8A35; 736 | GL_ACTIVE_UNIFORM_BLOCKS=$8A36; 737 | GL_UNIFORM_TYPE=$8A37; 738 | GL_UNIFORM_SIZE=$8A38; 739 | GL_UNIFORM_NAME_LENGTH=$8A39; 740 | GL_UNIFORM_BLOCK_INDEX=$8A3A; 741 | GL_UNIFORM_OFFSET=$8A3B; 742 | GL_UNIFORM_ARRAY_STRIDE=$8A3C; 743 | GL_UNIFORM_MATRIX_STRIDE=$8A3D; 744 | GL_UNIFORM_IS_ROW_MAJOR=$8A3E; 745 | GL_UNIFORM_BLOCK_BINDING=$8A3F; 746 | GL_UNIFORM_BLOCK_DATA_SIZE=$8A40; 747 | GL_UNIFORM_BLOCK_NAME_LENGTH=$8A41; 748 | GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS=$8A42; 749 | GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=$8A43; 750 | GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=$8A44; 751 | GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=$8A46; 752 | GL_INVALID_INDEX=$FFFFFFFF; 753 | GL_MAX_VERTEX_OUTPUT_COMPONENTS=$9122; 754 | GL_MAX_FRAGMENT_INPUT_COMPONENTS=$9125; 755 | GL_MAX_SERVER_WAIT_TIMEOUT=$9111; 756 | GL_OBJECT_TYPE=$9112; 757 | GL_SYNC_CONDITION=$9113; 758 | GL_SYNC_STATUS=$9114; 759 | GL_SYNC_FLAGS=$9115; 760 | GL_SYNC_FENCE=$9116; 761 | GL_SYNC_GPU_COMMANDS_COMPLETE=$9117; 762 | GL_UNSIGNALED=$9118; 763 | GL_SIGNALED=$9119; 764 | GL_ALREADY_SIGNALED=$911A; 765 | GL_TIMEOUT_EXPIRED=$911B; 766 | GL_CONDITION_SATISFIED=$911C; 767 | GL_WAIT_FAILED=$911D; 768 | GL_SYNC_FLUSH_COMMANDS_BIT=$00000001; 769 | GL_TIMEOUT_IGNORED=$FFFFFFFFFFFFFFFF; 770 | GL_VERTEX_ATTRIB_ARRAY_DIVISOR=$88FE; 771 | GL_ANY_SAMPLES_PASSED=$8C2F; 772 | GL_ANY_SAMPLES_PASSED_CONSERVATIVE=$8D6A; 773 | GL_SAMPLER_BINDING=$8919; 774 | GL_RGB10_A2UI=$906F; 775 | GL_TEXTURE_SWIZZLE_R=$8E42; 776 | GL_TEXTURE_SWIZZLE_G=$8E43; 777 | GL_TEXTURE_SWIZZLE_B=$8E44; 778 | GL_TEXTURE_SWIZZLE_A=$8E45; 779 | GL_GREEN=$1904; 780 | GL_BLUE=$1905; 781 | GL_INT_2_10_10_10_REV=$8D9F; 782 | GL_TRANSFORM_FEEDBACK=$8E22; 783 | GL_TRANSFORM_FEEDBACK_PAUSED=$8E23; 784 | GL_TRANSFORM_FEEDBACK_ACTIVE=$8E24; 785 | GL_TRANSFORM_FEEDBACK_BINDING=$8E25; 786 | GL_PROGRAM_BINARY_RETRIEVABLE_HINT=$8257; 787 | GL_PROGRAM_BINARY_LENGTH=$8741; 788 | GL_NUM_PROGRAM_BINARY_FORMATS=$87FE; 789 | GL_PROGRAM_BINARY_FORMATS=$87FF; 790 | GL_COMPRESSED_R11_EAC=$9270; 791 | GL_COMPRESSED_SIGNED_R11_EAC=$9271; 792 | GL_COMPRESSED_RG11_EAC=$9272; 793 | GL_COMPRESSED_SIGNED_RG11_EAC=$9273; 794 | GL_COMPRESSED_RGB8_ETC2=$9274; 795 | GL_COMPRESSED_SRGB8_ETC2=$9275; 796 | GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=$9276; 797 | GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=$9277; 798 | GL_COMPRESSED_RGBA8_ETC2_EAC=$9278; 799 | GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=$9279; 800 | GL_TEXTURE_IMMUTABLE_FORMAT=$912F; 801 | GL_MAX_ELEMENT_INDEX=$8D6B; 802 | GL_NUM_SAMPLE_COUNTS=$9380; 803 | GL_TEXTURE_IMMUTABLE_LEVELS=$82DF; 804 | 805 | procedure glReadBuffer(src:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 806 | procedure glDrawRangeElements(mode,start,&end:Cardinal;count:Integer;&type:Cardinal;const indices:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 807 | procedure glTexImage3D(target:Cardinal;level,internalformat,width,height,depth,border:Integer;format,&type:Cardinal;const pixels:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 808 | procedure glTexSubImage3D(target:Cardinal;level,xoffset,yoffset,zoffset,width,height,depth:Integer;format,&type:Cardinal;const pixels:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 809 | procedure glCopyTexSubImage3D(target:Cardinal;level,xoffset,yoffset,zoffset,x,y,width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 810 | procedure glCompressedTexImage3D(target:Cardinal;level:Integer;internalformat:Cardinal;width,height,depth,border,imageSize:Integer;const data:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 811 | procedure glCompressedTexSubImage3D(target:Cardinal;level,xoffset,yoffset,zoffset,width,height,depth:Integer;format:Cardinal;imageSize:Integer;const data:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 812 | procedure glGenQueries(n:Integer;ids:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 813 | procedure glDeleteQueries(n:Integer;ids:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 814 | function glIsQuery(id:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 815 | procedure glBeginQuery(target,id:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 816 | procedure glEndQuery(target:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 817 | procedure glGetQueryiv(target,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 818 | procedure glGetQueryObjectuiv(id,pname:Cardinal;params:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 819 | function glUnmapBuffer(target:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 820 | procedure glGetBufferPointerv(target,pname:Cardinal;params:PPointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 821 | procedure glDrawBuffers(n:Integer;const bufs:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 822 | procedure glUniformMatrix2x3fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 823 | procedure glUniformMatrix3x2fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 824 | procedure glUniformMatrix2x4fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 825 | procedure glUniformMatrix4x2fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 826 | procedure glUniformMatrix3x4fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 827 | procedure glUniformMatrix4x3fv(location,count:Integer;transpose:boolean;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 828 | procedure glBlitFramebuffer(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1:Integer;mask,filter:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 829 | procedure glRenderbufferStorageMultisample(target:Cardinal;samples:Integer;internalformat:Cardinal;width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 830 | procedure glFramebufferTextureLayer(target,attachment,texture:Cardinal;level,layer:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 831 | function glMapBufferRange(target:Cardinal;offset,length:NativeInt;access:Cardinal):Pointer;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 832 | procedure glFlushMappedBufferRange(target:Cardinal;offset,length:NativeInt);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 833 | procedure glBindVertexArray(&array:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 834 | procedure glDeleteVertexArrays(n:Integer;var arrays:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 835 | procedure glGenVertexArrays(n:Integer;out arrays:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 836 | function glIsVertexArray(&array:Cardinal):Boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 837 | procedure glGetIntegeri_v(target,index:Cardinal;data:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 838 | procedure glBeginTransformFeedback(primitiveMode:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 839 | procedure glEndTransformFeedback();{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 840 | procedure glBindBufferRange(target,index,buffer:Cardinal;offset,size:NativeInt);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 841 | procedure glBindBufferBase(target,index,buffer:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 842 | procedure glTransformFeedbackVaryings(&program:Cardinal;count:Integer;const varyings:PPAnsiChar;bufferMode:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 843 | procedure glGetTransformFeedbackVarying(&program,index:Cardinal;bufSize:Integer;length,size:PInteger;&type:PCardinal;name:PAnsiChar);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 844 | procedure glVertexAttribIPointer(index:Cardinal;size:Integer;&type:Cardinal;stride:Integer;const pointer:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 845 | procedure glGetVertexAttribIiv(index,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 846 | procedure glGetVertexAttribIuiv(index,pname:Cardinal;params:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 847 | procedure glVertexAttribI4i(index:Cardinal;x,y,z,w:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 848 | procedure glVertexAttribI4ui(index,x,y,z,w:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 849 | procedure glVertexAttribI4iv(index:Cardinal;const v:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 850 | procedure glVertexAttribI4uiv(index:Cardinal;const v:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 851 | procedure glGetUniformuiv(&program:Cardinal;location:Integer;params:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 852 | function glGetFragDataLocation(&program:Cardinal;const name:PAnsiChar):integer;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 853 | procedure glUniform1ui(location:Integer;v0:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 854 | procedure glUniform2ui(location:Integer;v0,v1:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 855 | procedure glUniform3ui(location:Integer;v0,v1,v2:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 856 | procedure glUniform4ui(location:Integer;v0,v1,v2,v3:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 857 | procedure glUniform1uiv(location,count:Integer;const value:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 858 | procedure glUniform2uiv(location,count:Integer;const value:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 859 | procedure glUniform3uiv(location,count:Integer;const value:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 860 | procedure glUniform4uiv(location,count:Integer;const value:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 861 | procedure glClearBufferiv(buffer:Cardinal;drawbuffer:Integer;const value:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 862 | procedure glClearBufferuiv(buffer:Cardinal;drawbuffer:Integer;const value:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 863 | procedure glClearBufferfv(buffer:Cardinal;drawbuffer:Integer;const value:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 864 | procedure glClearBufferfi(buffer:Cardinal;drawbuffer:Integer;depth:Single;stencil:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 865 | function glGetStringi(name,index:Cardinal):PByte;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 866 | procedure glCopyBufferSubData(readTarget,writeTarget:Cardinal;readOffset,writeOffset,size:NativeInt);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 867 | procedure glGetUniformIndices(&program:Cardinal;uniformCount:Integer;const uniformNames:PPAnsiChar;uniformIndices:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 868 | procedure glGetActiveUniformsiv(&program:Cardinal;uniformCount:Integer;const uniformIndices:PCardinal;pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 869 | function glGetUniformBlockIndex(&program:Cardinal;const uniformBlockName:PAnsiChar):Cardinal;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 870 | procedure glGetActiveUniformBlockiv(&program,uniformBlockIndex,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 871 | procedure glGetActiveUniformBlockName(&program,uniformBlockIndex:Cardinal;bufSize:Integer;length:PInteger;uniformBlockName:PAnsiChar);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 872 | procedure glUniformBlockBinding(&program,uniformBlockIndex,uniformBlockBinding:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 873 | procedure glDrawArraysInstanced(mode:Cardinal;first,count,instancecount:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 874 | procedure glDrawElementsInstanced(mode:Cardinal;count:Integer;&type:Cardinal;const indices:Pointer;instancecount:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 875 | function glFenceSync(condition,flags:Cardinal):Pointer;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 876 | function glIsSync(sync:Pointer):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 877 | procedure glDeleteSync(sync:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 878 | function glClientWaitSync(sync:Pointer;flags:Cardinal;timeout:UInt64):Cardinal;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 879 | procedure glWaitSync(sync:Pointer;flags:Cardinal;timeout:UInt64);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 880 | procedure glGetInteger64v(pname:Cardinal;data:PInt64);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 881 | procedure glGetSynciv(sync:Pointer;pname:Cardinal;bufSize:Integer;length,values:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 882 | procedure glGetInteger64i_v(target,index:Cardinal;data:PInt64);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 883 | procedure glGetBufferParameteri64v(target,pname:Cardinal;params:PUInt64);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 884 | procedure glGenSamplers(count:Integer;samplers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 885 | procedure glDeleteSamplers(count:Integer;const samplers:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 886 | function glIsSampler(sampler:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 887 | procedure glBindSampler(&unit,sampler:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 888 | procedure glSamplerParameteri(sampler,pname:Cardinal;param:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 889 | procedure glSamplerParameteriv(sampler,pname:Cardinal;const param:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 890 | procedure glSamplerParameterf(sampler,pname:Cardinal;param:Single);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 891 | procedure glSamplerParameterfv(sampler,pname:Cardinal;const param:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 892 | procedure glGetSamplerParameteriv(sampler,pname:Cardinal;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 893 | procedure glGetSamplerParameterfv(sampler,pname:Cardinal;params:PSingle);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 894 | procedure glVertexAttribDivisor(index,divisor:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 895 | procedure glBindTransformFeedback(target,id:Cardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 896 | procedure glDeleteTransformFeedbacks(n:Integer;const ids:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 897 | procedure glGenTransformFeedbacks(n:Integer;ids:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 898 | function glIsTransformFeedback(id:Cardinal):boolean;{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 899 | procedure glPauseTransformFeedback();{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 900 | procedure glResumeTransformFeedback();{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 901 | procedure glGetProgramBinary(&program:Cardinal;bufSize:Integer;length:PInteger;binaryFormat:PCardinal;binary:Pointer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 902 | procedure glProgramBinary(&program,binaryFormat:Cardinal;const binary:Pointer;length:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 903 | procedure glProgramParameteri(&program,pname:Cardinal;value:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 904 | procedure glInvalidateFramebuffer(target:Cardinal;numAttachments:Integer;const attachments:PCardinal);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 905 | procedure glInvalidateSubFramebuffer(target:Cardinal;numAttachments:Integer;const attachments:PCardinal;x,y,width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 906 | procedure glTexStorage2D(target:Cardinal;levels:Integer;internalformat:Cardinal;width,height:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 907 | procedure glTexStorage3D(target:Cardinal;levels:Integer;internalformat:Cardinal;width,height,depth:Integer);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 908 | procedure glGetInternalformativ(target,internalformat,pname:Cardinal;bufSize:Integer;params:PInteger);{$IFDEF MSWINDOWS}stdcall;{$ELSE}cdecl;{$ENDIF}external OpenGLES3Lib; 909 | 910 | implementation 911 | 912 | end. 913 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenGLES30 2 | OpenGL ES v3.0 for Delphi and fpc. This lib does not include EGL. 3 | 4 | [Here you can get EGL.](https://github.com/TeamFND/DelphiEGL) 5 | 6 | You can find libGLESv2.dll in chromium based browser directory, it support libGLESv3.dll API. 7 | 8 | More info here [Angle](https://github.com/google/angle) 9 | --------------------------------------------------------------------------------