Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

2602 righe
170 KiB

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