您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

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