You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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