No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

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