PageRenderTime 56ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 1ms

/game_platform/lib/lwjgl-2.8.5/src/templates/org/lwjgl/opengl/GL30.java

https://bitbucket.org/dagronlund/opengl-game-platform
Java | 1059 lines | 481 code | 211 blank | 367 comment | 0 complexity | 68a1a400882ce2a55a8fadbf40923d5a MD5 | raw file
  1. /*
  2. * Copyright (c) 2002-2008 LWJGL Project
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions are
  7. * met:
  8. *
  9. * * Redistributions of source code must retain the above copyright
  10. * notice, this list of conditions and the following disclaimer.
  11. *
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the distribution.
  15. *
  16. * * Neither the name of 'LWJGL' nor the names of
  17. * its contributors may be used to endorse or promote products derived
  18. * from this software without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  22. * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  23. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  24. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  25. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  26. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  27. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  28. * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  29. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  30. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. */
  32. package org.lwjgl.opengl;
  33. import org.lwjgl.util.generator.*;
  34. import org.lwjgl.util.generator.Alternate;
  35. import org.lwjgl.util.generator.opengl.*;
  36. import java.nio.*;
  37. public interface GL30 {
  38. // ----------------------------------------------------------
  39. // ----------------------[ OpenGL 3.0 ]----------------------
  40. // ----------------------------------------------------------
  41. int GL_MAJOR_VERSION = 0x821B;
  42. int GL_MINOR_VERSION = 0x821C;
  43. int GL_NUM_EXTENSIONS = 0x821D;
  44. int GL_CONTEXT_FLAGS = 0x821E;
  45. int GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001;
  46. int GL_DEPTH_BUFFER = 0x8223;
  47. int GL_STENCIL_BUFFER = 0x8224;
  48. int GL_COMPRESSED_RED = 0x8225;
  49. int GL_COMPRESSED_RG = 0x8226;
  50. int GL_COMPARE_REF_TO_TEXTURE = ARB_shadow.GL_COMPARE_R_TO_TEXTURE_ARB;
  51. int GL_CLIP_DISTANCE0 = GL11.GL_CLIP_PLANE0;
  52. int GL_CLIP_DISTANCE1 = GL11.GL_CLIP_PLANE1;
  53. int GL_CLIP_DISTANCE2 = GL11.GL_CLIP_PLANE2;
  54. int GL_CLIP_DISTANCE3 = GL11.GL_CLIP_PLANE3;
  55. int GL_CLIP_DISTANCE4 = GL11.GL_CLIP_PLANE4;
  56. int GL_CLIP_DISTANCE5 = GL11.GL_CLIP_PLANE5;
  57. int GL_CLIP_DISTANCE6 = 0x3006;
  58. int GL_CLIP_DISTANCE7 = 0x3007;
  59. int GL_MAX_CLIP_DISTANCES = GL11.GL_MAX_CLIP_PLANES;
  60. int GL_MAX_VARYING_COMPONENTS = GL20.GL_MAX_VARYING_FLOATS;
  61. int GL_BUFFER_ACCESS_FLAGS = 0x911F;
  62. int GL_BUFFER_MAP_LENGTH = 0x9120;
  63. int GL_BUFFER_MAP_OFFSET = 0x9121;
  64. String glGetStringi(@GLenum int name, @GLuint int index);
  65. @StripPostfix("value")
  66. void glClearBufferfv(@GLenum int buffer, int drawbuffer, @Const @Check("4") FloatBuffer value);
  67. @StripPostfix("value")
  68. void glClearBufferiv(@GLenum int buffer, int drawbuffer, @Const @Check("4") IntBuffer value);
  69. @StripPostfix("value")
  70. void glClearBufferuiv(@GLenum int buffer, int drawbuffer, @Const @Check("4") IntBuffer value);
  71. void glClearBufferfi(@GLenum int buffer, int drawbuffer, float depth, int stencil);
  72. // ---------------------------------------------------------------
  73. // ----------------------[ EXT_gpu_shader4 ]----------------------
  74. // ---------------------------------------------------------------
  75. /**
  76. * Accepted by the <pname> parameters of GetVertexAttribdv,
  77. * GetVertexAttribfv, GetVertexAttribiv, GetVertexAttribIiv, and
  78. * GetVertexAttribIuiv:
  79. */
  80. int GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;
  81. /** Returned by the <type> parameter of GetActiveUniform: */
  82. int GL_SAMPLER_BUFFER = 0x8DC2;
  83. int GL_SAMPLER_CUBE_SHADOW = 0x8DC5;
  84. int GL_UNSIGNED_INT_VEC2 = 0x8DC6;
  85. int GL_UNSIGNED_INT_VEC3 = 0x8DC7;
  86. int GL_UNSIGNED_INT_VEC4 = 0x8DC8;
  87. int GL_INT_SAMPLER_1D = 0x8DC9;
  88. int GL_INT_SAMPLER_2D = 0x8DCA;
  89. int GL_INT_SAMPLER_3D = 0x8DCB;
  90. int GL_INT_SAMPLER_CUBE = 0x8DCC;
  91. int GL_INT_SAMPLER_2D_RECT = 0x8DCD;
  92. int GL_INT_SAMPLER_1D_ARRAY = 0x8DCE;
  93. int GL_INT_SAMPLER_2D_ARRAY = 0x8DCF;
  94. int GL_INT_SAMPLER_BUFFER = 0x8DD0;
  95. int GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1;
  96. int GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2;
  97. int GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3;
  98. int GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;
  99. int GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5;
  100. int GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6;
  101. int GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;
  102. int GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8;
  103. /**
  104. * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
  105. * and GetDoublev:
  106. */
  107. int GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
  108. int GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
  109. @NoErrorCheck
  110. void glVertexAttribI1i(@GLuint int index, int x);
  111. @NoErrorCheck
  112. void glVertexAttribI2i(@GLuint int index, int x, int y);
  113. @NoErrorCheck
  114. void glVertexAttribI3i(@GLuint int index, int x, int y, int z);
  115. @NoErrorCheck
  116. void glVertexAttribI4i(@GLuint int index, int x, int y, int z, int w);
  117. @NoErrorCheck
  118. void glVertexAttribI1ui(@GLuint int index, @GLuint int x);
  119. @NoErrorCheck
  120. void glVertexAttribI2ui(@GLuint int index, @GLuint int x, @GLuint int y);
  121. @NoErrorCheck
  122. void glVertexAttribI3ui(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z);
  123. @NoErrorCheck
  124. void glVertexAttribI4ui(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z, @GLuint int w);
  125. @NoErrorCheck
  126. @StripPostfix("v")
  127. void glVertexAttribI1iv(@GLuint int index, @Check("1") @Const IntBuffer v);
  128. @NoErrorCheck
  129. @StripPostfix("v")
  130. void glVertexAttribI2iv(@GLuint int index, @Check("2") @Const IntBuffer v);
  131. @NoErrorCheck
  132. @StripPostfix("v")
  133. void glVertexAttribI3iv(@GLuint int index, @Check("3") @Const IntBuffer v);
  134. @NoErrorCheck
  135. @StripPostfix("v")
  136. void glVertexAttribI4iv(@GLuint int index, @Check("4") @Const IntBuffer v);
  137. @NoErrorCheck
  138. @StripPostfix("v")
  139. void glVertexAttribI1uiv(@GLuint int index, @Check("1") @Const @GLuint IntBuffer v);
  140. @NoErrorCheck
  141. @StripPostfix("v")
  142. void glVertexAttribI2uiv(@GLuint int index, @Check("2") @Const @GLuint IntBuffer v);
  143. @NoErrorCheck
  144. @StripPostfix("v")
  145. void glVertexAttribI3uiv(@GLuint int index, @Check("3") @Const @GLuint IntBuffer v);
  146. @NoErrorCheck
  147. @StripPostfix("v")
  148. void glVertexAttribI4uiv(@GLuint int index, @Check("4") @Const @GLuint IntBuffer v);
  149. @NoErrorCheck
  150. @StripPostfix("v")
  151. void glVertexAttribI4bv(@GLuint int index, @Check("4") @Const ByteBuffer v);
  152. @NoErrorCheck
  153. @StripPostfix("v")
  154. void glVertexAttribI4sv(@GLuint int index, @Check("4") @Const ShortBuffer v);
  155. @NoErrorCheck
  156. @StripPostfix("v")
  157. void glVertexAttribI4ubv(@GLuint int index, @Check("4") @Const @GLubyte ByteBuffer v);
  158. @NoErrorCheck
  159. @StripPostfix("v")
  160. void glVertexAttribI4usv(@GLuint int index, @Check("4") @Const @GLushort ShortBuffer v);
  161. void glVertexAttribIPointer(@GLuint int index, int size, @GLenum int type, @GLsizei int stride,
  162. @CachedReference(index = "index", name = "glVertexAttribPointer_buffer")
  163. @BufferObject(BufferKind.ArrayVBO)
  164. @Check
  165. @Const
  166. @GLbyte
  167. @GLubyte
  168. @GLshort
  169. @GLushort
  170. @GLint
  171. @GLuint Buffer buffer);
  172. @StripPostfix("params")
  173. void glGetVertexAttribIiv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") IntBuffer params);
  174. @StripPostfix("params")
  175. void glGetVertexAttribIuiv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") @GLuint IntBuffer params);
  176. void glUniform1ui(int location, @GLuint int v0);
  177. void glUniform2ui(int location, @GLuint int v0, @GLuint int v1);
  178. void glUniform3ui(int location, @GLuint int v0, @GLuint int v1, @GLuint int v2);
  179. void glUniform4ui(int location, @GLuint int v0, @GLuint int v1, @GLuint int v2, @GLuint int v3);
  180. @StripPostfix("value")
  181. void glUniform1uiv(int location, @AutoSize("value") @GLsizei int count, @Const @GLuint IntBuffer value);
  182. @StripPostfix("value")
  183. void glUniform2uiv(int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const @GLuint IntBuffer value);
  184. @StripPostfix("value")
  185. void glUniform3uiv(int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const @GLuint IntBuffer value);
  186. @StripPostfix("value")
  187. void glUniform4uiv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const @GLuint IntBuffer value);
  188. @StripPostfix("params")
  189. void glGetUniformuiv(@GLuint int program, int location, @OutParameter @Check @GLuint IntBuffer params);
  190. void glBindFragDataLocation(@GLuint int program, @GLuint int colorNumber, @NullTerminated @Const @GLchar ByteBuffer name);
  191. @Alternate("glBindFragDataLocation")
  192. void glBindFragDataLocation(@GLuint int program, @GLuint int colorNumber, @NullTerminated CharSequence name);
  193. int glGetFragDataLocation(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name);
  194. @Alternate("glGetFragDataLocation")
  195. int glGetFragDataLocation(@GLuint int program, @NullTerminated CharSequence name);
  196. // ---------------------------------------------------------------------
  197. // ----------------------[ NV_conditional_render ]----------------------
  198. // ---------------------------------------------------------------------
  199. /** Accepted by the <mode> parameter of BeginConditionalRender: */
  200. int GL_QUERY_WAIT = 0x8E13;
  201. int GL_QUERY_NO_WAIT = 0x8E14;
  202. int GL_QUERY_BY_REGION_WAIT = 0x8E15;
  203. int GL_QUERY_BY_REGION_NO_WAIT = 0x8E16;
  204. void glBeginConditionalRender(@GLuint int id, @GLenum int mode);
  205. void glEndConditionalRender();
  206. // --------------------------------------------------------------------
  207. // ----------------------[ ARB_map_buffer_range ]----------------------
  208. // --------------------------------------------------------------------
  209. /** Accepted by the <access> parameter of MapBufferRange: */
  210. int GL_MAP_READ_BIT = 0x0001;
  211. int GL_MAP_WRITE_BIT = 0x0002;
  212. int GL_MAP_INVALIDATE_RANGE_BIT = 0x0004;
  213. int GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008;
  214. int GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010;
  215. int GL_MAP_UNSYNCHRONIZED_BIT = 0x0020;
  216. /**
  217. * glMapBufferRange maps a GL buffer object range to a ByteBuffer. The old_buffer argument can be null,
  218. * in which case a new ByteBuffer will be created, pointing to the returned memory. If old_buffer is non-null,
  219. * it will be returned if it points to the same mapped memory and has the same capacity as the buffer object,
  220. * otherwise a new ByteBuffer is created. That way, an application will normally use glMapBufferRange like this:
  221. * <p/>
  222. * ByteBuffer mapped_buffer; mapped_buffer = glMapBufferRange(..., ..., ..., ..., null); ... // Another map on the same buffer mapped_buffer = glMapBufferRange(..., ..., ..., ..., mapped_buffer);
  223. * <p/>
  224. * Only ByteBuffers returned from this method are to be passed as the old_buffer argument. User-created ByteBuffers cannot be reused.
  225. *
  226. * @param old_buffer A ByteBuffer. If this argument points to the same address and has the same capacity as the new mapping, it will be returned and no new buffer will be created.
  227. *
  228. * @return A ByteBuffer representing the mapped buffer memory.
  229. */
  230. @CachedResult(isRange = true)
  231. @GLvoid
  232. @AutoSize("length")
  233. ByteBuffer glMapBufferRange(@GLenum int target, @GLintptr long offset, @GLsizeiptr long length, @GLbitfield int access);
  234. void glFlushMappedBufferRange(@GLenum int target, @GLintptr long offset, @GLsizeiptr long length);
  235. // ----------------------------------------------------------------------
  236. // ----------------------[ ARB_color_buffer_float ]----------------------
  237. // ----------------------------------------------------------------------
  238. /**
  239. * Accepted by the &lt;target&gt; parameter of ClampColor and the &lt;pname&gt;
  240. * parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.
  241. */
  242. int GL_CLAMP_VERTEX_COLOR = 0x891A;
  243. int GL_CLAMP_FRAGMENT_COLOR = 0x891B;
  244. int GL_CLAMP_READ_COLOR = 0x891C;
  245. /** Accepted by the &lt;clamp&gt; parameter of ClampColor. */
  246. int GL_FIXED_ONLY = 0x891D;
  247. void glClampColor(@GLenum int target, @GLenum int clamp);
  248. // ----------------------------------------------------------------------
  249. // ----------------------[ NV_depth_buffer_float ]----------------------
  250. // ----------------------------------------------------------------------
  251. /**
  252. * Accepted by the &lt;internalformat&gt; parameter of TexImage1D, TexImage2D,
  253. * TexImage3D, CopyTexImage1D, CopyTexImage2D, and RenderbufferStorageEXT,
  254. * and returned in the &lt;data&gt; parameter of GetTexLevelParameter and
  255. * GetRenderbufferParameterivEXT:
  256. */
  257. int GL_DEPTH_COMPONENT32F = 0x8DAB;
  258. int GL_DEPTH32F_STENCIL8 = 0x8DAC;
  259. /**
  260. * Accepted by the &lt;type&gt; parameter of DrawPixels, ReadPixels, TexImage1D,
  261. * TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3D, and
  262. * GetTexImage:
  263. */
  264. int GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;
  265. // -----------------------------------------------------------------
  266. // ----------------------[ ARB_texture_float ]----------------------
  267. // -----------------------------------------------------------------
  268. /** Accepted by the &lt;value&gt; parameter of GetTexLevelParameter: */
  269. int GL_TEXTURE_RED_TYPE = 0x8C10;
  270. int GL_TEXTURE_GREEN_TYPE = 0x8C11;
  271. int GL_TEXTURE_BLUE_TYPE = 0x8C12;
  272. int GL_TEXTURE_ALPHA_TYPE = 0x8C13;
  273. int GL_TEXTURE_LUMINANCE_TYPE = 0x8C14;
  274. int GL_TEXTURE_INTENSITY_TYPE = 0x8C15;
  275. int GL_TEXTURE_DEPTH_TYPE = 0x8C16;
  276. /** Returned by the &lt;params&gt; parameter of GetTexLevelParameter: */
  277. int GL_UNSIGNED_NORMALIZED = 0x8C17;
  278. /**
  279. * Accepted by the &lt;internalFormat&gt; parameter of TexImage1D,
  280. * TexImage2D, and TexImage3D:
  281. */
  282. int GL_RGBA32F = 0x8814;
  283. int GL_RGB32F = 0x8815;
  284. int GL_ALPHA32F = 0x8816;
  285. int GL_RGBA16F = 0x881A;
  286. int GL_RGB16F = 0x881B;
  287. int GL_ALPHA16F = 0x881C;
  288. // ----------------------------------------------------------------
  289. // ----------------------[ EXT_packed_float ]----------------------
  290. // ----------------------------------------------------------------
  291. /**
  292. * Accepted by the &lt;internalformat&gt; parameter of TexImage1D,
  293. * TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and
  294. * RenderbufferStorage:
  295. */
  296. int GL_R11F_G11F_B10F = 0x8C3A;
  297. /**
  298. * Accepted by the &lt;type&gt; parameter of DrawPixels, ReadPixels,
  299. * TexImage1D, TexImage2D, GetTexImage, TexImage3D, TexSubImage1D,
  300. * TexSubImage2D, TexSubImage3D, GetHistogram, GetMinmax,
  301. * ConvolutionFilter1D, ConvolutionFilter2D, ConvolutionFilter3D,
  302. * GetConvolutionFilter, SeparableFilter2D, GetSeparableFilter,
  303. * ColorTable, ColorSubTable, and GetColorTable:
  304. */
  305. int GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;
  306. // ---------------------------------------------------------------------------
  307. // ----------------------[ EXT_texture_shared_exponent ]----------------------
  308. // ---------------------------------------------------------------------------
  309. /**
  310. * Accepted by the &lt;internalformat&gt; parameter of TexImage1D,
  311. * TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and
  312. * RenderbufferStorage:
  313. */
  314. int GL_RGB9_E5 = 0x8C3D;
  315. /**
  316. * Accepted by the &lt;type&gt; parameter of DrawPixels, ReadPixels,
  317. * TexImage1D, TexImage2D, GetTexImage, TexImage3D, TexSubImage1D,
  318. * TexSubImage2D, TexSubImage3D, GetHistogram, GetMinmax,
  319. * ConvolutionFilter1D, ConvolutionFilter2D, ConvolutionFilter3D,
  320. * GetConvolutionFilter, SeparableFilter2D, GetSeparableFilter,
  321. * ColorTable, ColorSubTable, and GetColorTable:
  322. */
  323. int GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;
  324. /**
  325. * Accepted by the &lt;pname&gt; parameter of GetTexLevelParameterfv and
  326. * GetTexLevelParameteriv:
  327. */
  328. int GL_TEXTURE_SHARED_SIZE = 0x8C3F;
  329. // ----------------------------------------------------------------------
  330. // ----------------------[ ARB_framebuffer_object ]----------------------
  331. // ----------------------------------------------------------------------
  332. /**
  333. * Accepted by the &lt;target&gt; parameter of BindFramebuffer,
  334. * CheckFramebufferStatus, FramebufferTexture{1D|2D|3D},
  335. * FramebufferRenderbuffer, and
  336. * GetFramebufferAttachmentParameteriv:
  337. */
  338. int GL_FRAMEBUFFER = 0x8D40;
  339. int GL_READ_FRAMEBUFFER = 0x8CA8;
  340. int GL_DRAW_FRAMEBUFFER = 0x8CA9;
  341. /**
  342. * Accepted by the &lt;target&gt; parameter of BindRenderbuffer,
  343. * RenderbufferStorage, and GetRenderbufferParameteriv, and
  344. * returned by GetFramebufferAttachmentParameteriv:
  345. */
  346. int GL_RENDERBUFFER = 0x8D41;
  347. /**
  348. * Accepted by the &lt;internalformat&gt; parameter of
  349. * RenderbufferStorage:
  350. */
  351. int GL_STENCIL_INDEX1 = 0x8D46;
  352. int GL_STENCIL_INDEX4 = 0x8D47;
  353. int GL_STENCIL_INDEX8 = 0x8D48;
  354. int GL_STENCIL_INDEX16 = 0x8D49;
  355. /** Accepted by the &lt;pname&gt; parameter of GetRenderbufferParameteriv: */
  356. int GL_RENDERBUFFER_WIDTH = 0x8D42;
  357. int GL_RENDERBUFFER_HEIGHT = 0x8D43;
  358. int GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
  359. int GL_RENDERBUFFER_RED_SIZE = 0x8D50;
  360. int GL_RENDERBUFFER_GREEN_SIZE = 0x8D51;
  361. int GL_RENDERBUFFER_BLUE_SIZE = 0x8D52;
  362. int GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53;
  363. int GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54;
  364. int GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55;
  365. /**
  366. * Accepted by the &lt;pname&gt; parameter of
  367. * GetFramebufferAttachmentParameteriv:
  368. */
  369. int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
  370. int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
  371. int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
  372. int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
  373. int GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;
  374. int GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211;
  375. int GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212;
  376. int GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213;
  377. int GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214;
  378. int GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215;
  379. int GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216;
  380. int GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217;
  381. /** Returned in &lt;params&gt; by GetFramebufferAttachmentParameteriv: */
  382. int GL_FRAMEBUFFER_DEFAULT = 0x8218;
  383. int GL_INDEX = 0x8222;
  384. /**
  385. * Accepted by the &lt;attachment&gt; parameter of
  386. * FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and
  387. * GetFramebufferAttachmentParameteriv
  388. */
  389. int GL_COLOR_ATTACHMENT0 = 0x8CE0;
  390. int GL_COLOR_ATTACHMENT1 = 0x8CE1;
  391. int GL_COLOR_ATTACHMENT2 = 0x8CE2;
  392. int GL_COLOR_ATTACHMENT3 = 0x8CE3;
  393. int GL_COLOR_ATTACHMENT4 = 0x8CE4;
  394. int GL_COLOR_ATTACHMENT5 = 0x8CE5;
  395. int GL_COLOR_ATTACHMENT6 = 0x8CE6;
  396. int GL_COLOR_ATTACHMENT7 = 0x8CE7;
  397. int GL_COLOR_ATTACHMENT8 = 0x8CE8;
  398. int GL_COLOR_ATTACHMENT9 = 0x8CE9;
  399. int GL_COLOR_ATTACHMENT10 = 0x8CEA;
  400. int GL_COLOR_ATTACHMENT11 = 0x8CEB;
  401. int GL_COLOR_ATTACHMENT12 = 0x8CEC;
  402. int GL_COLOR_ATTACHMENT13 = 0x8CED;
  403. int GL_COLOR_ATTACHMENT14 = 0x8CEE;
  404. int GL_COLOR_ATTACHMENT15 = 0x8CEF;
  405. int GL_DEPTH_ATTACHMENT = 0x8D00;
  406. int GL_STENCIL_ATTACHMENT = 0x8D20;
  407. int GL_DEPTH_STENCIL_ATTACHMENT = 0x821A;
  408. /** Returned by CheckFramebufferStatus(): */
  409. int GL_FRAMEBUFFER_COMPLETE = 0x8CD5;
  410. int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
  411. int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
  412. int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB;
  413. int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC;
  414. int GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
  415. int GL_FRAMEBUFFER_UNDEFINED = 0x8219;
  416. /**
  417. * Accepted by the &lt;pname&gt; parameters of GetIntegerv, GetFloatv,
  418. * and GetDoublev:
  419. */
  420. int GL_FRAMEBUFFER_BINDING = 0x8CA6; // alias DRAW_FRAMEBUFFER_BINDING
  421. int GL_RENDERBUFFER_BINDING = 0x8CA7;
  422. int GL_MAX_COLOR_ATTACHMENTS = 0x8CDF;
  423. int GL_MAX_RENDERBUFFER_SIZE = 0x84E8;
  424. /** Returned by GetError(): */
  425. int GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506;
  426. boolean glIsRenderbuffer(@GLuint int renderbuffer);
  427. void glBindRenderbuffer(@GLenum int target, @GLuint int renderbuffer);
  428. void glDeleteRenderbuffers(@AutoSize("renderbuffers") int n, @Const @GLuint IntBuffer renderbuffers);
  429. @Alternate("glDeleteRenderbuffers")
  430. void glDeleteRenderbuffers(@Constant("1") int n, @Constant(value = "APIUtil.getInt(caps, renderbuffer)", keepParam = true) int renderbuffer);
  431. void glGenRenderbuffers(@AutoSize("renderbuffers") int n, @OutParameter @GLuint IntBuffer renderbuffers);
  432. @Alternate("glGenRenderbuffers")
  433. @GLreturn("renderbuffers")
  434. void glGenRenderbuffers2(@Constant("1") int n, @OutParameter @GLuint IntBuffer renderbuffers);
  435. void glRenderbufferStorage(@GLenum int target, @GLenum int internalformat, @GLsizei int width, @GLsizei int height);
  436. @StripPostfix("params")
  437. void glGetRenderbufferParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params);
  438. /** @deprecated Will be removed in 3.0. Use {@link #glGetRenderbufferParameteri} instead. */
  439. @Alternate("glGetRenderbufferParameteriv")
  440. @GLreturn("params")
  441. @StripPostfix("params")
  442. @Reuse(value = "GL30", method = "glGetRenderbufferParameteri")
  443. @Deprecated
  444. void glGetRenderbufferParameteriv2(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params);
  445. @Alternate("glGetRenderbufferParameteriv")
  446. @GLreturn("params")
  447. @StripPostfix(value = "params", postfix = "v")
  448. void glGetRenderbufferParameteriv3(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params);
  449. boolean glIsFramebuffer(@GLuint int framebuffer);
  450. void glBindFramebuffer(@GLenum int target, @GLuint int framebuffer);
  451. void glDeleteFramebuffers(@AutoSize("framebuffers") int n, @Const @GLuint IntBuffer framebuffers);
  452. @Alternate("glDeleteFramebuffers")
  453. void glDeleteFramebuffers(@Constant("1") int n, @Constant(value = "APIUtil.getInt(caps, framebuffer)", keepParam = true) int framebuffer);
  454. void glGenFramebuffers(@AutoSize("framebuffers") int n, @OutParameter @GLuint IntBuffer framebuffers);
  455. @Alternate("glGenFramebuffers")
  456. @GLreturn("framebuffers")
  457. void glGenFramebuffers2(@Constant("1") int n, @OutParameter @GLuint IntBuffer framebuffers);
  458. @GLenum
  459. int glCheckFramebufferStatus(@GLenum int target);
  460. void glFramebufferTexture1D(@GLenum int target, @GLenum int attachment, @GLenum int textarget, @GLuint int texture, int level);
  461. void glFramebufferTexture2D(@GLenum int target, @GLenum int attachment, @GLenum int textarget, @GLuint int texture, int level);
  462. void glFramebufferTexture3D(@GLenum int target, @GLenum int attachment, @GLenum int textarget, @GLuint int texture, int level, int zoffset);
  463. void glFramebufferRenderbuffer(@GLenum int target, @GLenum int attachment, @GLenum int renderbuffertarget, @GLuint int renderbuffer);
  464. @StripPostfix("params")
  465. void glGetFramebufferAttachmentParameteriv(@GLenum int target, @GLenum int attachment, @GLenum int pname, @OutParameter @Check("4") IntBuffer params);
  466. /** @deprecated Will be removed in 3.0. Use {@link #glGetFramebufferAttachmentParameteri} instead. */
  467. @Alternate("glGetFramebufferAttachmentParameteriv")
  468. @GLreturn("params")
  469. @StripPostfix("params")
  470. @Reuse(value = "GL30", method = "glGetFramebufferAttachmentParameteri")
  471. @Deprecated
  472. void glGetFramebufferAttachmentParameteriv2(@GLenum int target, @GLenum int attachment, @GLenum int pname, @OutParameter IntBuffer params);
  473. @Alternate("glGetFramebufferAttachmentParameteriv")
  474. @GLreturn("params")
  475. @StripPostfix(value = "params", postfix = "v")
  476. void glGetFramebufferAttachmentParameteriv3(@GLenum int target, @GLenum int attachment, @GLenum int pname, @OutParameter IntBuffer params);
  477. void glGenerateMipmap(@GLenum int target);
  478. // --------------------------------------------------------------------------------------------
  479. // ----------------------[ ARB_half_float_vertex & ARB_half_float_pixel ]----------------------
  480. // --------------------------------------------------------------------------------------------
  481. /**
  482. * Accepted by the &lt;type&gt; parameter of DrawPixels, ReadPixels,
  483. * TexImage1D, TexImage2D, TexImage3D, GetTexImage, TexSubImage1D,
  484. * TexSubImage2D, TexSubImage3D, GetHistogram, GetMinmax,
  485. * ConvolutionFilter1D, ConvolutionFilter2D, GetConvolutionFilter,
  486. * SeparableFilter2D, GetSeparableFilter, ColorTable, ColorSubTable,
  487. * and GetColorTable:
  488. * <p/>
  489. * Accepted by the &lt;type&gt; argument of VertexPointer, NormalPointer,
  490. * ColorPointer, SecondaryColorPointer, FogCoordPointer, TexCoordPointer,
  491. * and VertexAttribPointer:
  492. */
  493. int GL_HALF_FLOAT = 0x140B;
  494. // ---------------------------------------------------------------------------
  495. // ----------------------[ EXT_framebuffer_multisample ]----------------------
  496. // ---------------------------------------------------------------------------
  497. /** Accepted by the &lt;pname&gt; parameter of GetRenderbufferParameteriv. */
  498. int GL_RENDERBUFFER_SAMPLES = 0x8CAB;
  499. /** Returned by CheckFramebufferStatus. */
  500. int GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56;
  501. /**
  502. * Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
  503. * GetFloatv, and GetDoublev.
  504. */
  505. int GL_MAX_SAMPLES = 0x8D57;
  506. /**
  507. * Establishes the data storage, format, dimensions, and number of
  508. * samples of a renderbuffer object's image.
  509. */
  510. void glRenderbufferStorageMultisample(
  511. @GLenum int target, @GLsizei int samples,
  512. @GLenum int internalformat,
  513. @GLsizei int width, @GLsizei int height);
  514. // --------------------------------------------------------------------
  515. // ----------------------[ EXT_framebuffer_blit ]----------------------
  516. // --------------------------------------------------------------------
  517. /** Accepted by the &lt;pname&gt; parameters of GetIntegerv, GetFloatv, and GetDoublev. */
  518. int GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6; // alias FRAMEBUFFER_BINDING
  519. int GL_READ_FRAMEBUFFER_BINDING = 0x8CAA;
  520. /**
  521. * Transfers a rectangle of pixel values from one
  522. * region of the read framebuffer to another in the draw framebuffer.
  523. * &lt;mask&gt; is the bitwise OR of a number of values indicating which
  524. * buffers are to be copied. The values are COLOR_BUFFER_BIT,
  525. * DEPTH_BUFFER_BIT, and STENCIL_BUFFER_BIT.
  526. * The pixels corresponding to these buffers are
  527. * copied from the source rectangle, bound by the locations (srcX0,
  528. * srcY0) and (srcX1, srcY1) inclusive, to the destination rectangle,
  529. * bound by the locations (dstX0, dstY0) and (dstX1, dstY1)
  530. * inclusive.
  531. * If the source and destination rectangle dimensions do not match,
  532. * the source image is stretched to fit the destination
  533. * rectangle. &lt;filter&gt; must be LINEAR or NEAREST and specifies the
  534. * method of interpolation to be applied if the image is
  535. * stretched.
  536. */
  537. void glBlitFramebuffer(
  538. @GLint int srcX0, @GLint int srcY0, @GLint int srcX1, @GLint int srcY1,
  539. @GLint int dstX0, @GLint int dstY0, @GLint int dstX1, @GLint int dstY1,
  540. @GLbitfield int mask, @GLenum int filter);
  541. // -------------------------------------------------------------------
  542. // ----------------------[ EXT_texture_integer ]----------------------
  543. // -------------------------------------------------------------------
  544. /**
  545. * Accepted by the &lt;pname&gt; parameters of GetBooleanv, GetIntegerv,
  546. * GetFloatv, and GetDoublev:
  547. */
  548. int GL_RGBA_INTEGER_MODE = 0x8D9E;
  549. /**
  550. * Accepted by the &lt;internalFormat&gt; parameter of TexImage1D,
  551. * TexImage2D, and TexImage3D:
  552. */
  553. int GL_RGBA32UI = 0x8D70;
  554. int GL_RGB32UI = 0x8D71;
  555. int GL_ALPHA32UI = 0x8D72;
  556. int GL_RGBA16UI = 0x8D76;
  557. int GL_RGB16UI = 0x8D77;
  558. int GL_ALPHA16UI = 0x8D78;
  559. int GL_RGBA8UI = 0x8D7C;
  560. int GL_RGB8UI = 0x8D7D;
  561. int GL_ALPHA8UI = 0x8D7E;
  562. int GL_RGBA32I = 0x8D82;
  563. int GL_RGB32I = 0x8D83;
  564. int GL_ALPHA32I = 0x8D84;
  565. int GL_RGBA16I = 0x8D88;
  566. int GL_RGB16I = 0x8D89;
  567. int GL_ALPHA16I = 0x8D8A;
  568. int GL_RGBA8I = 0x8D8E;
  569. int GL_RGB8I = 0x8D8F;
  570. int GL_ALPHA8I = 0x8D90;
  571. /**
  572. * Accepted by the &lt;format&gt; parameter of TexImage1D, TexImage2D,
  573. * TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3D,
  574. * DrawPixels and ReadPixels:
  575. */
  576. int GL_RED_INTEGER = 0x8D94;
  577. int GL_GREEN_INTEGER = 0x8D95;
  578. int GL_BLUE_INTEGER = 0x8D96;
  579. int GL_ALPHA_INTEGER = 0x8D97;
  580. int GL_RGB_INTEGER = 0x8D98;
  581. int GL_RGBA_INTEGER = 0x8D99;
  582. int GL_BGR_INTEGER = 0x8D9A;
  583. int GL_BGRA_INTEGER = 0x8D9B;
  584. @StripPostfix("params")
  585. void glTexParameterIiv(@GLenum int target, @GLenum int pname, @Check("4") IntBuffer params);
  586. @Alternate("glTexParameterIiv")
  587. @StripPostfix(value = "param", postfix = "v")
  588. void glTexParameterIiv(@GLenum int target, @GLenum int pname, @Constant(value = "APIUtil.getInt(caps, param)", keepParam = true) int param);
  589. @StripPostfix("params")
  590. void glTexParameterIuiv(@GLenum int target, @GLenum int pname, @Check("4") @GLuint IntBuffer params);
  591. @Alternate("glTexParameterIuiv")
  592. @StripPostfix(value = "param", postfix = "v")
  593. void glTexParameterIuiv(@GLenum int target, @GLenum int pname, @Constant(value = "APIUtil.getInt(caps, param)", keepParam = true) int param);
  594. @StripPostfix("params")
  595. void glGetTexParameterIiv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") IntBuffer params);
  596. @Alternate("glGetTexParameterIiv")
  597. @GLreturn("params")
  598. @StripPostfix(value = "params", postfix = "v")
  599. void glGetTexParameterIiv2(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params);
  600. @StripPostfix("params")
  601. void glGetTexParameterIuiv(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") @GLuint IntBuffer params);
  602. @Alternate("glGetTexParameterIuiv")
  603. @GLreturn("params")
  604. @StripPostfix(value = "params", postfix = "v")
  605. void glGetTexParameterIuiv2(@GLenum int target, @GLenum int pname, @OutParameter @GLuint IntBuffer params);
  606. // -----------------------------------------------------------------
  607. // ----------------------[ EXT_texture_array ]----------------------
  608. // -----------------------------------------------------------------
  609. /**
  610. * Accepted by the &lt;target&gt; parameter of TexParameteri, TexParameteriv,
  611. * TexParameterf, TexParameterfv, and BindTexture:
  612. */
  613. int GL_TEXTURE_1D_ARRAY = 0x8C18;
  614. int GL_TEXTURE_2D_ARRAY = 0x8C1A;
  615. /**
  616. * Accepted by the &lt;target&gt; parameter of TexImage3D, TexSubImage3D,
  617. * CopyTexSubImage3D, CompressedTexImage3D, and CompressedTexSubImage3D:
  618. */
  619. int GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B;
  620. /**
  621. * Accepted by the &lt;target&gt; parameter of TexImage2D, TexSubImage2D,
  622. * CopyTexImage2D, CopyTexSubImage2D, CompressedTexImage2D, and
  623. * CompressedTexSubImage2D:
  624. */
  625. int GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19;
  626. /**
  627. * Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetDoublev, GetIntegerv
  628. * and GetFloatv:
  629. */
  630. int GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C;
  631. int GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D;
  632. int GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;
  633. /**
  634. * Accepted by the &lt;param&gt; parameter of TexParameterf, TexParameteri,
  635. * TexParameterfv, and TexParameteriv when the &lt;pname&gt; parameter is
  636. * TEXTURE_COMPARE_MODE_ARB:
  637. */
  638. int GL_COMPARE_REF_DEPTH_TO_TEXTURE = 0x884E;
  639. /**
  640. * Accepted by the &lt;pname&gt; parameter of
  641. * GetFramebufferAttachmentParameteriv:
  642. */
  643. int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
  644. /** Returned by the &lt;type&gt; parameter of GetActiveUniform: */
  645. int GL_SAMPLER_1D_ARRAY = 0x8DC0;
  646. int GL_SAMPLER_2D_ARRAY = 0x8DC1;
  647. int GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3;
  648. int GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;
  649. void glFramebufferTextureLayer(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level, int layer);
  650. // ------------------------------------------------------------------------
  651. // ----------------------[ EXT_packed_depth_stencil ]----------------------
  652. // ------------------------------------------------------------------------
  653. /**
  654. * Accepted by the &lt;format&gt; parameter of DrawPixels, ReadPixels,
  655. * TexImage1D, TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D,
  656. * TexSubImage3D, and GetTexImage, by the &lt;type&gt; parameter of
  657. * CopyPixels, by the &lt;internalformat&gt; parameter of TexImage1D,
  658. * TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and
  659. * RenderbufferStorage, and returned in the &lt;data&gt; parameter of
  660. * GetTexLevelParameter and GetRenderbufferParameteriv.
  661. */
  662. int GL_DEPTH_STENCIL = 0x84F9;
  663. /**
  664. * Accepted by the &lt;type&gt; parameter of DrawPixels, ReadPixels,
  665. * TexImage1D, TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D,
  666. * TexSubImage3D, and GetTexImage.
  667. */
  668. int GL_UNSIGNED_INT_24_8 = 0x84FA;
  669. /**
  670. * Accepted by the &lt;internalformat&gt; parameter of TexImage1D,
  671. * TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and
  672. * RenderbufferStorage, and returned in the &lt;data&gt; parameter of
  673. * GetTexLevelParameter and GetRenderbufferParameteriv.
  674. */
  675. int GL_DEPTH24_STENCIL8 = 0x88F0;
  676. /** Accepted by the &lt;value&gt; parameter of GetTexLevelParameter. */
  677. int GL_TEXTURE_STENCIL_SIZE = 0x88F1;
  678. // -----------------------------------------------------------------
  679. // ----------------------[ EXT_draw_buffers2 ]----------------------
  680. // -----------------------------------------------------------------
  681. void glColorMaski(@GLuint int buf, boolean r, boolean g, boolean b, boolean a);
  682. @StripPostfix(value = "data", hasPostfix = false)
  683. void glGetBooleani_v(@GLenum int value, @GLuint int index, @OutParameter @Check("4") @GLboolean ByteBuffer data);
  684. @Alternate("glGetBooleani_v")
  685. @GLreturn("data")
  686. @StripPostfix(value = "data", hasPostfix = false)
  687. void glGetBooleani_v2(@GLenum int value, @GLuint int index, @OutParameter @GLboolean ByteBuffer data);
  688. @StripPostfix("data")
  689. void glGetIntegeri_v(@GLenum int value, @GLuint int index, @OutParameter @Check("4") IntBuffer data);
  690. @Alternate("glGetIntegeri_v")
  691. @GLreturn("data")
  692. @StripPostfix("data")
  693. void glGetIntegeri_v2(@GLenum int value, @GLuint int index, @OutParameter IntBuffer data);
  694. void glEnablei(@GLenum int target, @GLuint int index);
  695. void glDisablei(@GLenum int target, @GLuint int index);
  696. boolean glIsEnabledi(@GLenum int target, @GLuint int index);
  697. // ----------------------------------------------------------------------------
  698. // ----------------------[ ARB_texture_compression_rgtc ]----------------------
  699. // ----------------------------------------------------------------------------
  700. /**
  701. * Accepted by the &lt;internalformat&gt; parameter of TexImage2D,
  702. * CopyTexImage2D, and CompressedTexImage2D and the &lt;format&gt; parameter
  703. * of CompressedTexSubImage2D:
  704. */
  705. int GL_COMPRESSED_RED_RGTC1 = 0x8DBB;
  706. int GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC;
  707. int GL_COMPRESSED_RED_GREEN_RGTC2 = 0x8DBD;
  708. int GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2 = 0x8DBE;
  709. // --------------------------------------------------------------
  710. // ----------------------[ ARB_texture_rg ]----------------------
  711. // --------------------------------------------------------------
  712. /**
  713. * Accepted by the &lt;internalFormat&gt; parameter of TexImage1D, TexImage2D,
  714. * TexImage3D, CopyTexImage1D, and CopyTexImage2D:
  715. */
  716. int GL_R8 = 0x8229;
  717. int GL_R16 = 0x822A;
  718. int GL_RG8 = 0x822B;
  719. int GL_RG16 = 0x822C;
  720. int GL_R16F = 0x822D;
  721. int GL_R32F = 0x822E;
  722. int GL_RG16F = 0x822F;
  723. int GL_RG32F = 0x8230;
  724. int GL_R8I = 0x8231;
  725. int GL_R8UI = 0x8232;
  726. int GL_R16I = 0x8233;
  727. int GL_R16UI = 0x8234;
  728. int GL_R32I = 0x8235;
  729. int GL_R32UI = 0x8236;
  730. int GL_RG8I = 0x8237;
  731. int GL_RG8UI = 0x8238;
  732. int GL_RG16I = 0x8239;
  733. int GL_RG16UI = 0x823A;
  734. int GL_RG32I = 0x823B;
  735. int GL_RG32UI = 0x823C;
  736. /**
  737. * Accepted by the &lt;format&gt; parameter of TexImage3D, TexImage2D,
  738. * TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3D,
  739. * DrawPixels and ReadPixels:
  740. */
  741. int GL_RG = 0x8227;
  742. int GL_RG_INTEGER = 0x8228;
  743. // ----------------------------------------------------------------------
  744. // ----------------------[ EXT_transform_feedback ]----------------------
  745. // ----------------------------------------------------------------------
  746. /**
  747. * Accepted by the &lt;target&gt; parameters of BindBuffer, BufferData,
  748. * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData,
  749. * GetBufferPointerv, BindBufferRange, BindBufferOffset and
  750. * BindBufferBase:
  751. */
  752. int GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;
  753. /**
  754. * Accepted by the &lt;param&gt; parameter of GetIntegerIndexedv and
  755. * GetBooleanIndexedv:
  756. */
  757. int GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;
  758. int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;
  759. /**
  760. * Accepted by the &lt;param&gt; parameter of GetIntegerIndexedv and
  761. * GetBooleanIndexedv, and by the &lt;pname&gt; parameter of GetBooleanv,
  762. * GetDoublev, GetIntegerv, and GetFloatv:
  763. */
  764. int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;
  765. /** Accepted by the &lt;bufferMode&gt; parameter of TransformFeedbackVaryings: */
  766. int GL_INTERLEAVED_ATTRIBS = 0x8C8C;
  767. int GL_SEPARATE_ATTRIBS = 0x8C8D;
  768. /**
  769. * Accepted by the &lt;target&gt; parameter of BeginQuery, EndQuery, and
  770. * GetQueryiv:
  771. */
  772. int GL_PRIMITIVES_GENERATED = 0x8C87;
  773. int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;
  774. /**
  775. * Accepted by the &lt;cap&gt; parameter of Enable, Disable, and IsEnabled, and by
  776. * the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv, GetFloatv, and
  777. * GetDoublev:
  778. */
  779. int GL_RASTERIZER_DISCARD = 0x8C89;
  780. /**
  781. * Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetDoublev, GetIntegerv,
  782. * and GetFloatv:
  783. */
  784. int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
  785. int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
  786. int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;
  787. /** Accepted by the &lt;pname&gt; parameter of GetProgramiv: */
  788. int GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;
  789. int GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;
  790. int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76;
  791. void glBindBufferRange(@GLenum int target, @GLuint int index, @GLuint int buffer, @GLintptr long offset, @GLsizeiptr long size);
  792. void glBindBufferBase(@GLenum int target, @GLuint int index, @GLuint int buffer);
  793. void glBeginTransformFeedback(@GLenum int primitiveMode);
  794. void glEndTransformFeedback();
  795. void glTransformFeedbackVaryings(@GLuint int program, @GLsizei int count,
  796. @Const @NullTerminated("count") @GLchar @PointerArray("count") ByteBuffer varyings,
  797. @GLenum int bufferMode);
  798. @Alternate("glTransformFeedbackVaryings")
  799. void glTransformFeedbackVaryings(@GLuint int program, @Constant("varyings.length") @GLsizei int count,
  800. @Const @NullTerminated @PointerArray("count") CharSequence[] varyings,
  801. @GLenum int bufferMode);
  802. void glGetTransformFeedbackVarying(@GLuint int program, @GLuint int index, @AutoSize("name") @GLsizei int bufSize,
  803. @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
  804. @OutParameter @GLsizei @Check("1") IntBuffer size,
  805. @OutParameter @GLenum @Check("1") IntBuffer type,
  806. @OutParameter @GLchar ByteBuffer name);
  807. @Alternate("glGetTransformFeedbackVarying")
  808. @GLreturn(value = "name", maxLength = "bufSize")
  809. void glGetTransformFeedbackVarying2(@GLuint int program, @GLuint int index, @GLsizei int bufSize,
  810. @OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(name_length)") IntBuffer length,
  811. @OutParameter @GLsizei @Check("1") IntBuffer size,
  812. @OutParameter @GLenum @Check("1") IntBuffer type,
  813. @OutParameter @GLchar ByteBuffer name);
  814. // -----------------------------------------------------------------------
  815. // ----------------------[ ARB_vertex_array_object ]----------------------
  816. // -----------------------------------------------------------------------
  817. /**
  818. * Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
  819. * GetFloatv, and GetDoublev:
  820. */
  821. int GL_VERTEX_ARRAY_BINDING = 0x85B5;
  822. @Code(" StateTracker.bindVAO(caps, array);")
  823. void glBindVertexArray(@GLuint int array);
  824. @Code(" StateTracker.deleteVAO(caps, arrays);")
  825. void glDeleteVertexArrays(@AutoSize("arrays") @GLsizei int n, @Const @GLuint IntBuffer arrays);
  826. @Alternate("glDeleteVertexArrays")
  827. @Code(" StateTracker.deleteVAO(caps, array);")
  828. void glDeleteVertexArrays(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(caps, array)", keepParam = true) int array);
  829. void glGenVertexArrays(@AutoSize("arrays") @GLsizei int n, @OutParameter @GLuint IntBuffer arrays);
  830. @Alternate("glGenVertexArrays")
  831. @GLreturn("arrays")
  832. void glGenVertexArrays2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer arrays);
  833. boolean glIsVertexArray(@GLuint int array);
  834. // --------------------------------------------------------------------
  835. // ----------------------[ ARB_framebuffer_sRGB ]----------------------
  836. // --------------------------------------------------------------------
  837. /**
  838. * Accepted by the &lt;cap&gt; parameter of Enable, Disable, and IsEnabled,
  839. * and by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv, GetFloatv,
  840. * and GetDoublev:
  841. */
  842. int GL_FRAMEBUFFER_SRGB = 0x8DB9;
  843. /**
  844. * Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
  845. * GetFloatv, and GetDoublev:
  846. */
  847. int GL_FRAMEBUFFER_SRGB_CAPABLE = 0x8DBA;
  848. }