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 34 import org.lwjgl.util.generator.*; 35 import org.lwjgl.util.generator.Alternate; 36 import org.lwjgl.util.generator.opengl.*; 37 38 import java.nio.ByteBuffer; 39 import java.nio.DoubleBuffer; 40 import java.nio.FloatBuffer; 41 import java.nio.IntBuffer; 42 43 import javax.lang.model.type.TypeKind; 44 45 public interface GL40 { 46 47 // ---------------------------------------------------------------------- 48 // ----------------------[ ARB_draw_buffers_blend ]---------------------- 49 // ---------------------------------------------------------------------- 50 glBlendEquationi(@Luint int buf, @GLenum int mode)51 void glBlendEquationi(@GLuint int buf, @GLenum int mode); 52 glBlendEquationSeparatei(@Luint int buf, @GLenum int modeRGB, @GLenum int modeAlpha)53 void glBlendEquationSeparatei(@GLuint int buf, @GLenum int modeRGB, @GLenum int modeAlpha); 54 glBlendFunci(@Luint int buf, @GLenum int src, @GLenum int dst)55 void glBlendFunci(@GLuint int buf, @GLenum int src, @GLenum int dst); 56 glBlendFuncSeparatei(@Luint int buf, @GLenum int srcRGB, @GLenum int dstRGB, @GLenum int srcAlpha, @GLenum int dstAlpha)57 void glBlendFuncSeparatei(@GLuint int buf, @GLenum int srcRGB, @GLenum int dstRGB, @GLenum int srcAlpha, @GLenum int dstAlpha); 58 59 // ----------------------------------------------------------------- 60 // ----------------------[ ARB_draw_indirect ]---------------------- 61 // ----------------------------------------------------------------- 62 63 /** 64 * Accepted by the <target> parameters of BindBuffer, BufferData, 65 * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, 66 * GetBufferPointerv, MapBufferRange, FlushMappedBufferRange, 67 * GetBufferParameteriv, BindBufferRange, BindBufferBase, and 68 * CopyBufferSubData: 69 */ 70 int GL_DRAW_INDIRECT_BUFFER = 0x8F3F; 71 72 /** 73 * Accepted by the <value> parameter of GetIntegerv, GetBooleanv, GetFloatv, 74 * and GetDoublev: 75 */ 76 int GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43; 77 glDrawArraysIndirect(@Lenum int mode, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid ByteBuffer indirect)78 void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4 * 4") @Const @GLvoid ByteBuffer indirect); 79 80 @Alternate("glDrawArraysIndirect") glDrawArraysIndirect(@Lenum int mode, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid(TypeKind.INT) IntBuffer indirect)81 void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @Const @GLvoid(TypeKind.INT) IntBuffer indirect); 82 glDrawElementsIndirect(@Lenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid ByteBuffer indirect)83 void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5 * 4") @Const @GLvoid ByteBuffer indirect); 84 85 @Alternate("glDrawElementsIndirect") glDrawElementsIndirect(@Lenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid(TypeKind.INT) IntBuffer indirect)86 void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @Const @GLvoid(TypeKind.INT) IntBuffer indirect); 87 88 // --------------------------------------------------------------- 89 // ----------------------[ ARB_gpu_shader5 ]---------------------- 90 // --------------------------------------------------------------- 91 92 /** Accepted by the <pname> parameter of GetProgramiv: */ 93 int GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F; 94 95 /** 96 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 97 * GetDoublev, and GetInteger64v: 98 */ 99 int GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A; 100 int GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B; 101 int GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C; 102 int GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D; 103 int GL_MAX_VERTEX_STREAMS = 0x8E71; 104 105 // ------------------------------------------------------------------- 106 // ----------------------[ ARB_gpu_shader_fp64 ]---------------------- 107 // ------------------------------------------------------------------- 108 109 /** 110 * Returned in the <type> parameter of GetActiveUniform, and 111 * GetTransformFeedbackVarying: 112 */ 113 int GL_DOUBLE_VEC2 = 0x8FFC; 114 int GL_DOUBLE_VEC3 = 0x8FFD; 115 int GL_DOUBLE_VEC4 = 0x8FFE; 116 int GL_DOUBLE_MAT2 = 0x8F46; 117 int GL_DOUBLE_MAT3 = 0x8F47; 118 int GL_DOUBLE_MAT4 = 0x8F48; 119 int GL_DOUBLE_MAT2x3 = 0x8F49; 120 int GL_DOUBLE_MAT2x4 = 0x8F4A; 121 int GL_DOUBLE_MAT3x2 = 0x8F4B; 122 int GL_DOUBLE_MAT3x4 = 0x8F4C; 123 int GL_DOUBLE_MAT4x2 = 0x8F4D; 124 int GL_DOUBLE_MAT4x3 = 0x8F4E; 125 glUniform1d(int location, double x)126 void glUniform1d(int location, double x); 127 glUniform2d(int location, double x, double y)128 void glUniform2d(int location, double x, double y); 129 glUniform3d(int location, double x, double y, double z)130 void glUniform3d(int location, double x, double y, double z); 131 glUniform4d(int location, double x, double y, double z, double w)132 void glUniform4d(int location, double x, double y, double z, double w); 133 134 @StripPostfix("value") glUniform1dv(int location, @AutoSize(R) @GLsizei int count, @Const DoubleBuffer value)135 void glUniform1dv(int location, @AutoSize("value") @GLsizei int count, @Const DoubleBuffer value); 136 137 @StripPostfix("value") glUniform2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)138 void glUniform2dv(int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value); 139 140 @StripPostfix("value") glUniform3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)141 void glUniform3dv(int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value); 142 143 @StripPostfix("value") glUniform4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)144 void glUniform4dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value); 145 146 @StripPostfix("value") glUniformMatrix2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)147 void glUniformMatrix2dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 148 149 @StripPostfix("value") glUniformMatrix3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)150 void glUniformMatrix3dv(int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 151 152 @StripPostfix("value") glUniformMatrix4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)153 void glUniformMatrix4dv(int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 154 155 @StripPostfix("value") glUniformMatrix2x3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)156 void glUniformMatrix2x3dv(int location, @AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 157 158 @StripPostfix("value") glUniformMatrix2x4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)159 void glUniformMatrix2x4dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 160 161 @StripPostfix("value") glUniformMatrix3x2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)162 void glUniformMatrix3x2dv(int location, @AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 163 164 @StripPostfix("value") glUniformMatrix3x4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)165 void glUniformMatrix3x4dv(int location, @AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 166 167 @StripPostfix("value") glUniformMatrix4x2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)168 void glUniformMatrix4x2dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 169 170 @StripPostfix("value") glUniformMatrix4x3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)171 void glUniformMatrix4x3dv(int location, @AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value); 172 173 @StripPostfix("params") glGetUniformdv(@Luint int program, int location, @OutParameter @Check DoubleBuffer params)174 void glGetUniformdv(@GLuint int program, int location, @OutParameter @Check DoubleBuffer params); 175 176 // ------------------------------------------------------------------ 177 // ----------------------[ ARB_sample_shading ]---------------------- 178 // ------------------------------------------------------------------ 179 180 /** 181 * Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, 182 * and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 183 * and GetDoublev: 184 */ 185 int GL_SAMPLE_SHADING = 0x8C36; 186 187 /** 188 * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, 189 * GetIntegerv, and GetFloatv: 190 */ 191 int GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37; 192 glMinSampleShading(float value)193 void glMinSampleShading(float value); 194 195 // --------------------------------------------------------------------- 196 // ----------------------[ ARB_shader_subroutine ]---------------------- 197 // --------------------------------------------------------------------- 198 199 /** Accepted by the <pname> parameter of GetProgramStageiv: */ 200 int GL_ACTIVE_SUBROUTINES = 0x8DE5; 201 int GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6; 202 int GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47; 203 int GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48; 204 int GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49; 205 206 /** 207 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 208 * GetFloatv, GetDoublev, and GetInteger64v: 209 */ 210 int GL_MAX_SUBROUTINES = 0x8DE7; 211 int GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8; 212 213 /** Accepted by the <pname> parameter of GetActiveSubroutineUniformiv: */ 214 int GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A; 215 int GL_COMPATIBLE_SUBROUTINES = 0x8E4B; 216 glGetSubroutineUniformLocation(@Luint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name)217 int glGetSubroutineUniformLocation(@GLuint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name); 218 219 @Alternate("glGetSubroutineUniformLocation") glGetSubroutineUniformLocation(@Luint int program, @GLenum int shadertype, @NullTerminated CharSequence name)220 int glGetSubroutineUniformLocation(@GLuint int program, @GLenum int shadertype, @NullTerminated CharSequence name); 221 222 @GLuint glGetSubroutineIndex(@Luint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name)223 int glGetSubroutineIndex(@GLuint int program, @GLenum int shadertype, @Const @NullTerminated ByteBuffer name); 224 225 @Alternate("glGetSubroutineIndex") 226 @GLuint glGetSubroutineIndex(@Luint int program, @GLenum int shadertype, @NullTerminated CharSequence name)227 int glGetSubroutineIndex(@GLuint int program, @GLenum int shadertype, @NullTerminated CharSequence name); 228 229 @StripPostfix("values") glGetActiveSubroutineUniformiv(@Luint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, @OutParameter @Check(R) IntBuffer values)230 void glGetActiveSubroutineUniformiv(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, 231 @OutParameter @Check("1") IntBuffer values); 232 233 /** @deprecated Will be removed in 3.0. Use {@link #glGetActiveSubroutineUniformi} instead. */ 234 @Alternate("glGetActiveSubroutineUniformiv") 235 @GLreturn("values") 236 @StripPostfix("values") 237 @Reuse(value = "GL40", method = "glGetActiveSubroutineUniformi") 238 @Deprecated glGetActiveSubroutineUniformiv2(@Luint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer values)239 void glGetActiveSubroutineUniformiv2(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, 240 @OutParameter IntBuffer values); 241 242 @Alternate("glGetActiveSubroutineUniformiv") 243 @GLreturn("values") 244 @StripPostfix(value = "values", hasPostfix = false) glGetActiveSubroutineUniformiv3(@Luint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer values)245 void glGetActiveSubroutineUniformiv3(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLenum int pname, 246 @OutParameter IntBuffer values); 247 glGetActiveSubroutineUniformName(@Luint int program, @GLenum int shadertype, @GLuint int index, @AutoSize(R) @GLsizei int bufsize, @OutParameter @Check(value = R, canBeNull = true) @GLsizei IntBuffer length, @OutParameter @GLchar ByteBuffer name)248 void glGetActiveSubroutineUniformName(@GLuint int program, @GLenum int shadertype, @GLuint int index, @AutoSize("name") @GLsizei int bufsize, 249 @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, 250 @OutParameter @GLchar ByteBuffer name); 251 252 @Alternate("glGetActiveSubroutineUniformName") 253 @GLreturn(value = "name", maxLength = "bufsize") glGetActiveSubroutineUniformName2(@Luint int program, @GLenum int shadertype, @GLuint int index, @GLsizei int bufsize, @OutParameter @Constant(R) @GLsizei IntBuffer length, @OutParameter @GLchar ByteBuffer name)254 void glGetActiveSubroutineUniformName2(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLsizei int bufsize, 255 @OutParameter @Constant("MemoryUtil.getAddress0(name_length)") @GLsizei IntBuffer length, 256 @OutParameter @GLchar ByteBuffer name); 257 glGetActiveSubroutineName(@Luint int program, @GLenum int shadertype, @GLuint int index, @AutoSize(R) @GLsizei int bufsize, @OutParameter @Check(value = R, canBeNull = true) @GLsizei IntBuffer length, @OutParameter @GLchar ByteBuffer name)258 void glGetActiveSubroutineName(@GLuint int program, @GLenum int shadertype, @GLuint int index, @AutoSize("name") @GLsizei int bufsize, 259 @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, 260 @OutParameter @GLchar ByteBuffer name); 261 262 @Alternate("glGetActiveSubroutineName") 263 @GLreturn(value = "name", maxLength = "bufsize") glGetActiveSubroutineName2(@Luint int program, @GLenum int shadertype, @GLuint int index, @GLsizei int bufsize, @OutParameter @Constant(R) @GLsizei IntBuffer length, @OutParameter @GLchar ByteBuffer name)264 void glGetActiveSubroutineName2(@GLuint int program, @GLenum int shadertype, @GLuint int index, @GLsizei int bufsize, 265 @OutParameter @Constant("MemoryUtil.getAddress0(name_length)") @GLsizei IntBuffer length, 266 @OutParameter @GLchar ByteBuffer name); 267 268 @StripPostfix("indices") glUniformSubroutinesuiv(@Lenum int shadertype, @AutoSize(R) @GLsizei int count, @Const @GLuint IntBuffer indices)269 void glUniformSubroutinesuiv(@GLenum int shadertype, @AutoSize("indices") @GLsizei int count, @Const @GLuint IntBuffer indices); 270 271 @StripPostfix("params") glGetUniformSubroutineuiv(@Lenum int shadertype, int location, @Check(R) @OutParameter @GLuint IntBuffer params)272 void glGetUniformSubroutineuiv(@GLenum int shadertype, int location, @Check("1") @OutParameter @GLuint IntBuffer params); 273 274 /** @deprecated Will be removed in 3.0. Use {@link #glGetUniformSubroutineui} instead. */ 275 @Alternate("glGetUniformSubroutineuiv") 276 @GLreturn("params") 277 @StripPostfix("params") 278 @Reuse(value = "GL40", method = "glGetUniformSubroutineui") 279 @Deprecated glGetUniformSubroutineuiv2(@Lenum int shadertype, int location, @OutParameter @GLuint IntBuffer params)280 void glGetUniformSubroutineuiv2(@GLenum int shadertype, int location, @OutParameter @GLuint IntBuffer params); 281 282 @Alternate("glGetUniformSubroutineuiv") 283 @GLreturn("params") 284 @StripPostfix(value = "params", hasPostfix = false) glGetUniformSubroutineuiv3(@Lenum int shadertype, int location, @OutParameter @GLuint IntBuffer params)285 void glGetUniformSubroutineuiv3(@GLenum int shadertype, int location, @OutParameter @GLuint IntBuffer params); 286 287 @StripPostfix("values") glGetProgramStageiv(@Luint int program, @GLenum int shadertype, @GLenum int pname, @Check(R) @OutParameter IntBuffer values)288 void glGetProgramStageiv(@GLuint int program, @GLenum int shadertype, @GLenum int pname, @Check("1") @OutParameter IntBuffer values); 289 290 /** @deprecated Will be removed in 3.0. Use {@link #glGetProgramStagei} instead. */ 291 @Alternate("glGetProgramStageiv") 292 @GLreturn("values") 293 @StripPostfix("values") 294 @Reuse(value = "GL40", method = "glGetProgramStagei") 295 @Deprecated glGetProgramStageiv2(@Luint int program, @GLenum int shadertype, @GLenum int pname, @OutParameter IntBuffer values)296 void glGetProgramStageiv2(@GLuint int program, @GLenum int shadertype, @GLenum int pname, @OutParameter IntBuffer values); 297 298 @Alternate("glGetProgramStageiv") 299 @GLreturn("values") 300 @StripPostfix(value = "values", hasPostfix = false) glGetProgramStageiv3(@Luint int program, @GLenum int shadertype, @GLenum int pname, @OutParameter IntBuffer values)301 void glGetProgramStageiv3(@GLuint int program, @GLenum int shadertype, @GLenum int pname, @OutParameter IntBuffer values); 302 303 // ----------------------------------------------------------------------- 304 // ----------------------[ ARB_tessellation_shader ]---------------------- 305 // ----------------------------------------------------------------------- 306 307 /** 308 * Accepted by the <mode> parameter of Begin and all vertex array functions 309 * that implicitly call Begin: 310 */ 311 int GL_PATCHES = 0xE; 312 313 /** 314 * Accepted by the <pname> parameter of PatchParameteri, GetBooleanv, 315 * GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v: 316 */ 317 int GL_PATCH_VERTICES = 0x8E72; 318 319 /** 320 * Accepted by the <pname> parameter of PatchParameterfv, GetBooleanv, 321 * GetDoublev, GetFloatv, and GetIntegerv, and GetInteger64v: 322 */ 323 int GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73; 324 int GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74; 325 326 /** Accepted by the <pname> parameter of GetProgramiv: */ 327 int GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75; 328 int GL_TESS_GEN_MODE = 0x8E76; 329 int GL_TESS_GEN_SPACING = 0x8E77; 330 int GL_TESS_GEN_VERTEX_ORDER = 0x8E78; 331 int GL_TESS_GEN_POINT_MODE = 0x8E79; 332 333 /** Returned by GetProgramiv when <pname> is TESS_GEN_MODE: */ 334 int GL_ISOLINES = 0x8E7A; 335 336 /** Returned by GetProgramiv when <pname> is TESS_GEN_SPACING: */ 337 int GL_FRACTIONAL_ODD = 0x8E7B; 338 int GL_FRACTIONAL_EVEN = 0x8E7C; 339 340 /** 341 * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetFloatv, 342 * GetIntegerv, and GetInteger64v: 343 */ 344 int GL_MAX_PATCH_VERTICES = 0x8E7D; 345 int GL_MAX_TESS_GEN_LEVEL = 0x8E7E; 346 int GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F; 347 int GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80; 348 int GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81; 349 int GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82; 350 int GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83; 351 int GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84; 352 int GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85; 353 int GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86; 354 int GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89; 355 int GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A; 356 int GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C; 357 int GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D; 358 int GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E; 359 int GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F; 360 361 /** Accepted by the <pname> parameter of GetActiveUniformBlockiv: */ 362 int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0; 363 int GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1; 364 365 /** 366 * Accepted by the <type> parameter of CreateShader and returned by the 367 * <params> parameter of GetShaderiv: 368 */ 369 int GL_TESS_EVALUATION_SHADER = 0x8E87; 370 int GL_TESS_CONTROL_SHADER = 0x8E88; 371 glPatchParameteri(@Lenum int pname, int value)372 void glPatchParameteri(@GLenum int pname, int value); 373 374 @StripPostfix("values") glPatchParameterfv(@Lenum int pname, @Check(R) @Const FloatBuffer values)375 void glPatchParameterfv(@GLenum int pname, @Check("4") @Const FloatBuffer values); 376 377 // -------------------------------------------------------------------------- 378 // ----------------------[ ARB_texture_cube_map_array ]---------------------- 379 // -------------------------------------------------------------------------- 380 381 /** 382 * Accepted by the <target> parameter of TexParameteri, TexParameteriv, 383 * TexParameterf, TexParameterfv, BindTexture, and GenerateMipmap: 384 * <p/> 385 * Accepted by the <target> parameter of TexImage3D, TexSubImage3D, 386 * CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D: 387 * <p/> 388 * Accepted by the <tex> parameter of GetTexImage: 389 */ 390 int GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009; 391 392 /** 393 * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, 394 * GetIntegerv and GetFloatv: 395 */ 396 int GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A; 397 398 /** 399 * Accepted by the <target> parameter of TexImage3D, TexSubImage3D, 400 * CompressedTeximage3D, CompressedTexSubImage3D and CopyTexSubImage3D: 401 */ 402 int GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B; 403 404 /** Returned by the <type> parameter of GetActiveUniform: */ 405 int GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C; 406 int GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D; 407 int GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E; 408 int GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F; 409 410 // ------------------------------------------------------------------ 411 // ----------------------[ ARB_texture_gather ]---------------------- 412 // ------------------------------------------------------------------ 413 414 /** 415 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 416 * GetFloatv, and GetDoublev: 417 */ 418 int GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E; 419 int GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F; 420 int GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F; 421 422 // ----------------------------------------------------------------------- 423 // ----------------------[ ARB_transform_feedback2 ]---------------------- 424 // ----------------------------------------------------------------------- 425 426 /** Accepted by the <target> parameter of BindTransformFeedback: */ 427 int GL_TRANSFORM_FEEDBACK = 0x8E22; 428 429 /** 430 * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv, 431 * and GetFloatv: 432 */ 433 int GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23; 434 int GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24; 435 int GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED; 436 int GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE; 437 int GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25; 438 glBindTransformFeedback(@Lenum int target, @GLuint int id)439 void glBindTransformFeedback(@GLenum int target, @GLuint int id); 440 glDeleteTransformFeedbacks(@utoSizeR) @Lsizei int n, @Const @GLuint IntBuffer ids)441 void glDeleteTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @Const @GLuint IntBuffer ids); 442 443 @Alternate("glDeleteTransformFeedbacks") glDeleteTransformFeedbacks(@onstantR) @Lsizei int n, @Constant(value = R, keepParam = true) int id)444 void glDeleteTransformFeedbacks(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(caps, id)", keepParam = true) int id); 445 glGenTransformFeedbacks(@utoSizeR) @Lsizei int n, @OutParameter @GLuint IntBuffer ids)446 void glGenTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @OutParameter @GLuint IntBuffer ids); 447 448 @Alternate("glGenTransformFeedbacks") 449 @GLreturn("ids") glGenTransformFeedbacks2(@onstantR) @Lsizei int n, @OutParameter @GLuint IntBuffer ids)450 void glGenTransformFeedbacks2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer ids); 451 glIsTransformFeedback(@Luint int id)452 boolean glIsTransformFeedback(@GLuint int id); 453 glPauseTransformFeedback()454 void glPauseTransformFeedback(); 455 glResumeTransformFeedback()456 void glResumeTransformFeedback(); 457 glDrawTransformFeedback(@Lenum int mode, @GLuint int id)458 void glDrawTransformFeedback(@GLenum int mode, @GLuint int id); 459 460 // ----------------------------------------------------------------------- 461 // ----------------------[ ARB_transform_feedback3 ]---------------------- 462 // ----------------------------------------------------------------------- 463 464 /** 465 * Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv, 466 * and GetFloatv: 467 */ 468 int GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70; 469 glDrawTransformFeedbackStream(@Lenum int mode, @GLuint int id, @GLuint int stream)470 void glDrawTransformFeedbackStream(@GLenum int mode, @GLuint int id, @GLuint int stream); 471 glBeginQueryIndexed(@Lenum int target, @GLuint int index, @GLuint int id)472 void glBeginQueryIndexed(@GLenum int target, @GLuint int index, @GLuint int id); 473 glEndQueryIndexed(@Lenum int target, @GLuint int index)474 void glEndQueryIndexed(@GLenum int target, @GLuint int index); 475 476 @StripPostfix("params") glGetQueryIndexediv(@Lenum int target, @GLuint int index, @GLenum int pname, @OutParameter @Check(R) IntBuffer params)477 void glGetQueryIndexediv(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); 478 479 /** @deprecated Will be removed in 3.0. Use {@link #glGetQueryIndexedi} instead. */ 480 @Alternate("glGetQueryIndexediv") 481 @GLreturn("params") 482 @StripPostfix("params") 483 @Reuse(value = "GL40", method = "glGetQueryIndexedi") 484 @Deprecated glGetQueryIndexediv2(@Lenum int target, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer params)485 void glGetQueryIndexediv2(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer params); 486 487 @Alternate("glGetQueryIndexediv") 488 @GLreturn("params") 489 @StripPostfix(value = "params", hasPostfix = false) glGetQueryIndexediv3(@Lenum int target, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer params)490 void glGetQueryIndexediv3(@GLenum int target, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer params); 491 492 }