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

6441 行
424 KiB

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