1 /* 2 * Copyright (c) 2002-2012 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.opengl.*; 36 37 import java.nio.ByteBuffer; 38 import java.nio.IntBuffer; 39 import java.nio.LongBuffer; 40 import javax.lang.model.type.TypeKind; 41 42 43 public interface GL43 { 44 45 /** No. of supported Shading Language Versions. Accepted by the <pname> parameter of GetIntegerv. */ 46 int GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9; 47 48 /** Vertex attrib array has unconverted doubles. Accepted by the <pname> parameter of GetVertexAttribiv. */ 49 int GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E; 50 51 // --------------------------------------------------------------------- 52 // ----------------------[ ARB_ES3_compatibility ]---------------------- 53 // --------------------------------------------------------------------- 54 55 /** Accepted by the <internalformat> parameter of CompressedTexImage2D */ 56 int GL_COMPRESSED_RGB8_ETC2 = 0x9274, 57 GL_COMPRESSED_SRGB8_ETC2 = 0x9275, 58 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276, 59 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, 60 GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278, 61 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279, 62 GL_COMPRESSED_R11_EAC = 0x9270, 63 GL_COMPRESSED_SIGNED_R11_EAC = 0x9271, 64 GL_COMPRESSED_RG11_EAC = 0x9272, 65 GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273; 66 67 /** Accepted by the <target> parameter of Enable and Disable: */ 68 int GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69; 69 70 /** 71 * Accepted by the <target> parameter of BeginQuery, EndQuery, 72 * GetQueryIndexediv and GetQueryiv: 73 */ 74 int GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A; 75 76 /** Accepted by the <value> parameter of the GetInteger* functions: */ 77 int GL_MAX_ELEMENT_INDEX = 0x8D6B; 78 79 // ----------------------------------------------------------------------- 80 // ----------------------[ ARB_clear_buffer_object ]---------------------- 81 // ----------------------------------------------------------------------- 82 glClearBufferData(@Lenum int target, @GLenum int internalformat, @GLenum int format, @GLenum int type, @Check(R) @Const @GLvoid ByteBuffer data)83 void glClearBufferData(@GLenum int target, 84 @GLenum int internalformat, 85 @GLenum int format, 86 @GLenum int type, 87 @Check("1") @Const @GLvoid ByteBuffer data); 88 glClearBufferSubData(@Lenum int target, @GLenum int internalformat, @GLintptr long offset, @GLsizeiptr long size, @GLenum int format, @GLenum int type, @Check(R) @Const @GLvoid ByteBuffer data)89 void glClearBufferSubData(@GLenum int target, 90 @GLenum int internalformat, 91 @GLintptr long offset, 92 @GLsizeiptr long size, 93 @GLenum int format, 94 @GLenum int type, 95 @Check("1") @Const @GLvoid ByteBuffer data); 96 97 // ------------------------------------------------------------------ 98 // ----------------------[ ARB_compute_shader ]---------------------- 99 // ------------------------------------------------------------------ 100 101 /** 102 * Accepted by the <type> parameter of CreateShader and returned in the 103 * <params> parameter by GetShaderiv: 104 */ 105 int GL_COMPUTE_SHADER = 0x91B9; 106 107 /** 108 * Accepted by the <pname> parameter of GetIntegerv, GetBooleanv, GetFloatv, 109 * GetDoublev and GetInteger64v: 110 */ 111 int GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB, 112 GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC, 113 GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD, 114 GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262, 115 GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263, 116 GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264, 117 GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265, 118 GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266, 119 GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB; 120 121 /** 122 * Accepted by the <pname> parameter of GetIntegeri_v, GetBooleani_v, 123 * GetFloati_v, GetDoublei_v and GetInteger64i_v: 124 */ 125 126 int GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE, 127 GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF; 128 129 /** Accepted by the <pname> parameter of GetProgramiv: */ 130 int GL_COMPUTE_WORK_GROUP_SIZE = 0x8267; 131 132 /** Accepted by the <pname> parameter of GetActiveUniformBlockiv: */ 133 int GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC; 134 135 /** Accepted by the <pname> parameter of GetActiveAtomicCounterBufferiv: */ 136 int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED; 137 138 /** 139 * Accepted by the <target> parameters of BindBuffer, BufferData, 140 * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and 141 * GetBufferPointerv: 142 */ 143 int GL_DISPATCH_INDIRECT_BUFFER = 0x90EE; 144 145 /** 146 * Accepted by the <value> parameter of GetIntegerv, GetBooleanv, 147 * GetInteger64v, GetFloatv, and GetDoublev: 148 */ 149 int GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF; 150 151 /** Accepted by the <stages> parameter of UseProgramStages: */ 152 int GL_COMPUTE_SHADER_BIT = 0x00000020; 153 glDispatchCompute(@Luint int num_groups_x, @GLuint int num_groups_y, @GLuint int num_groups_z)154 void glDispatchCompute(@GLuint int num_groups_x, 155 @GLuint int num_groups_y, 156 @GLuint int num_groups_z); 157 glDispatchComputeIndirect(@Lintptr long indirect)158 void glDispatchComputeIndirect(@GLintptr long indirect); 159 160 // -------------------------------------------------------------- 161 // ----------------------[ ARB_copy_image ]---------------------- 162 // -------------------------------------------------------------- 163 glCopyImageSubData( @Luint int srcName, @GLenum int srcTarget, int srcLevel, int srcX, int srcY, int srcZ, @GLuint int dstName, @GLenum int dstTarget, int dstLevel, int dstX, int dstY, int dstZ, @GLsizei int srcWidth, @GLsizei int srcHeight, @GLsizei int srcDepth)164 void glCopyImageSubData( 165 @GLuint int srcName, @GLenum int srcTarget, int srcLevel, 166 int srcX, int srcY, int srcZ, 167 @GLuint int dstName, @GLenum int dstTarget, int dstLevel, 168 int dstX, int dstY, int dstZ, 169 @GLsizei int srcWidth, @GLsizei int srcHeight, @GLsizei int srcDepth); 170 171 // ---------------------------------------------------------------- 172 // ----------------------[ KHR_debug_output ]---------------------- 173 // ----------------------[ ARB_debug_output2 ]--------------------- 174 // ----------------------[ ARB_debug_group ]----------------------- 175 // ----------------------[ ARB_debug_label ]----------------------- 176 // ---------------------------------------------------------------- 177 178 /** 179 * Tokens accepted by the <target> parameters of Enable, Disable, and 180 * IsEnabled: 181 */ 182 int GL_DEBUG_OUTPUT = 0x92E0, 183 GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242; 184 185 /** Returned by GetIntegerv when <pname> is CONTEXT_FLAGS: */ 186 int GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002; 187 188 /** 189 * Tokens accepted by the <value> parameters of GetBooleanv, GetIntegerv, 190 * GetFloatv, GetDoublev and GetInteger64v: 191 */ 192 int GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143, 193 GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144, 194 GL_DEBUG_LOGGED_MESSAGES = 0x9145, 195 GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243, 196 GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C, 197 GL_DEBUG_GROUP_STACK_DEPTH = 0x826D, 198 GL_MAX_LABEL_LENGTH = 0x82E8; 199 200 /** Tokens accepted by the <pname> parameter of GetPointerv: */ 201 int GL_DEBUG_CALLBACK_FUNCTION = 0x8244, 202 GL_DEBUG_CALLBACK_USER_PARAM = 0x8245; 203 204 /** 205 * Tokens accepted or provided by the <source> parameters of 206 * DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the <sources> 207 * parameter of GetDebugMessageLog: 208 */ 209 int GL_DEBUG_SOURCE_API = 0x8246, 210 GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247, 211 GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248, 212 GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249, 213 GL_DEBUG_SOURCE_APPLICATION = 0x824A, 214 GL_DEBUG_SOURCE_OTHER = 0x824B; 215 216 /** 217 * Tokens accepted or provided by the <type> parameters of 218 * DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the <types> 219 * parameter of GetDebugMessageLog: 220 */ 221 int GL_DEBUG_TYPE_ERROR = 0x824C, 222 GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D, 223 GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E, 224 GL_DEBUG_TYPE_PORTABILITY = 0x824F, 225 GL_DEBUG_TYPE_PERFORMANCE = 0x8250, 226 GL_DEBUG_TYPE_OTHER = 0x8251, 227 GL_DEBUG_TYPE_MARKER = 0x8268; 228 229 /** 230 * Tokens accepted or provided by the <type> parameters of 231 * DebugMessageControl and DEBUGPROC, and the <types> parameter of 232 * GetDebugMessageLog: 233 */ 234 int GL_DEBUG_TYPE_PUSH_GROUP = 0x8269, 235 GL_DEBUG_TYPE_POP_GROUP = 0x826A; 236 237 /** 238 * Tokens accepted or provided by the <severity> parameters of 239 * DebugMessageControl, DebugMessageInsert and DEBUGPROC callback functions, 240 * and the <severities> parameter of GetDebugMessageLog: 241 */ 242 int GL_DEBUG_SEVERITY_HIGH = 0x9146, 243 GL_DEBUG_SEVERITY_MEDIUM = 0x9147, 244 GL_DEBUG_SEVERITY_LOW = 0x9148, 245 GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B; 246 247 /** 248 * Tokens accepted or provided by the <identifier> parameters of 249 * ObjectLabel and GetObjectLabel: 250 */ 251 int GL_BUFFER = 0x82E0, 252 GL_SHADER = 0x82E1, 253 GL_PROGRAM = 0x82E2, 254 GL_QUERY = 0x82E3, 255 GL_PROGRAM_PIPELINE = 0x82E4, 256 GL_SAMPLER = 0x82E6, 257 GL_DISPLAY_LIST = 0x82E7; 258 259 // ----------------------------- 260 glDebugMessageControl(@Lenum int source, @GLenum int type, @GLenum int severity, @AutoSize(value = R, canBeNull = true) @GLsizei int count, @Check(canBeNull = true) @Const @GLuint IntBuffer ids, boolean enabled)261 void glDebugMessageControl(@GLenum int source, 262 @GLenum int type, 263 @GLenum int severity, 264 @AutoSize(value = "ids", canBeNull = true) @GLsizei int count, 265 @Check(canBeNull = true) @Const @GLuint IntBuffer ids, 266 boolean enabled); 267 glDebugMessageInsert(@Lenum int source, @GLenum int type, @GLuint int id, @GLenum int severity, @AutoSize(R) @GLsizei int length, @Const @GLchar ByteBuffer buf)268 void glDebugMessageInsert(@GLenum int source, 269 @GLenum int type, 270 @GLuint int id, 271 @GLenum int severity, 272 @AutoSize("buf") @GLsizei int length, 273 @Const @GLchar ByteBuffer buf); 274 275 @Alternate("glDebugMessageInsert") glDebugMessageInsert(@Lenum int source, @GLenum int type, @GLuint int id, @GLenum int severity, @Constant(R) @GLsizei int length, CharSequence buf)276 void glDebugMessageInsert(@GLenum int source, 277 @GLenum int type, 278 @GLuint int id, 279 @GLenum int severity, 280 @Constant("buf.length()") @GLsizei int length, 281 CharSequence buf); 282 283 /** 284 * The {@code KHRDebugCallback.Handler} implementation passed to this method will be used for 285 * KHR_debug messages. If callback is null, any previously registered handler for the current 286 * thread will be unregistered and stop receiving messages. 287 * 288 * @param callback the callback function to use 289 */ 290 @Code( 291 // Create a GlobalRef to the callback object and register it with the current context. 292 javaBeforeNative = "\t\tlong userParam = callback == null ? 0 : CallbackUtil.createGlobalRef(callback.getHandler());\n" + 293 "\t\tCallbackUtil.registerContextCallbackKHR(userParam);" 294 ) glDebugMessageCallback(@ointerWrappervalue = R, canBeNull = true) KHRDebugCallback callback, @Constant(R) @PointerWrapper(R) long userParam)295 void glDebugMessageCallback(@PointerWrapper(value = "GLDEBUGPROC", canBeNull = true) KHRDebugCallback callback, 296 @Constant("userParam") @PointerWrapper("GLvoid *") long userParam); 297 298 @GLuint glGetDebugMessageLog(@Luint int count, @AutoSize(value = R, canBeNull = true) @GLsizei int bufsize, @Check(value = R, canBeNull = true) @GLenum IntBuffer sources, @Check(value = R, canBeNull = true) @GLenum IntBuffer types, @Check(value = R, canBeNull = true) @GLuint IntBuffer ids, @Check(value = R, canBeNull = true) @GLenum IntBuffer severities, @Check(value = R, canBeNull = true) @GLsizei IntBuffer lengths, @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer messageLog)299 int glGetDebugMessageLog(@GLuint int count, 300 @AutoSize(value = "messageLog", canBeNull = true) @GLsizei int bufsize, 301 @Check(value = "count", canBeNull = true) @GLenum IntBuffer sources, 302 @Check(value = "count", canBeNull = true) @GLenum IntBuffer types, 303 @Check(value = "count", canBeNull = true) @GLuint IntBuffer ids, 304 @Check(value = "count", canBeNull = true) @GLenum IntBuffer severities, 305 @Check(value = "count", canBeNull = true) @GLsizei IntBuffer lengths, 306 @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer messageLog); 307 glPushDebugGroup(@Lenum int source, @GLuint int id, @AutoSize(R) @GLsizei int length, @Const @GLchar ByteBuffer message)308 void glPushDebugGroup(@GLenum int source, @GLuint int id, @AutoSize("message") @GLsizei int length, 309 @Const @GLchar ByteBuffer message); 310 311 @Alternate("glPushDebugGroup") glPushDebugGroup(@Lenum int source, @GLuint int id, @Constant(R) @GLsizei int length, CharSequence message)312 void glPushDebugGroup(@GLenum int source, @GLuint int id, @Constant("message.length()") @GLsizei int length, 313 CharSequence message); 314 glPopDebugGroup()315 void glPopDebugGroup(); 316 glObjectLabel(@Lenum int identifier, @GLuint int name, @AutoSize(value = R, canBeNull = true) @GLsizei int length, @Check(canBeNull = true) @Const @GLchar ByteBuffer label)317 void glObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize(value = "label", canBeNull = true) @GLsizei int length, 318 @Check(canBeNull = true) @Const @GLchar ByteBuffer label); 319 320 @Alternate("glObjectLabel") glObjectLabel(@Lenum int identifier, @GLuint int name, @Constant(R) @GLsizei int length, CharSequence label)321 void glObjectLabel(@GLenum int identifier, @GLuint int name, @Constant("label.length()") @GLsizei int length, 322 CharSequence label); 323 glGetObjectLabel(@Lenum int identifier, @GLuint int name, @AutoSize(R) @GLsizei int bufSize, @OutParameter @Check(value = R, canBeNull = true) @GLsizei IntBuffer length, @OutParameter @GLchar ByteBuffer label)324 void glGetObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize("label") @GLsizei int bufSize, 325 @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, 326 @OutParameter @GLchar ByteBuffer label); 327 328 @Alternate("glGetObjectLabel") 329 @GLreturn(value = "label", maxLength = "bufSize") glGetObjectLabel2(@Lenum int identifier, @GLuint int name, @GLsizei int bufSize, @OutParameter @GLsizei @Constant(R) IntBuffer length, @OutParameter @GLchar ByteBuffer label)330 void glGetObjectLabel2(@GLenum int identifier, @GLuint int name, @GLsizei int bufSize, 331 @OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length, 332 @OutParameter @GLchar ByteBuffer label); 333 glObjectPtrLabel(@ointerWrapperR) org.lwjgl.PointerWrapper ptr, @AutoSize(value = R, canBeNull = true) @GLsizei int length, @Check(canBeNull = true) @Const @GLchar ByteBuffer label)334 void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize(value = "label", canBeNull = true) @GLsizei int length, 335 @Check(canBeNull = true) @Const @GLchar ByteBuffer label); 336 337 @Alternate("glObjectPtrLabel") glObjectPtrLabel(@ointerWrapperR) org.lwjgl.PointerWrapper ptr, @Constant(R) @GLsizei int length, CharSequence label)338 void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @Constant("label.length()") @GLsizei int length, 339 CharSequence label); 340 glGetObjectPtrLabel(@ointerWrapperR) org.lwjgl.PointerWrapper ptr, @AutoSize(R) @GLsizei int bufSize, @OutParameter @Check(value = R, canBeNull = true) @GLsizei IntBuffer length, @OutParameter @GLchar ByteBuffer label)341 void glGetObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize("label") @GLsizei int bufSize, 342 @OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length, 343 @OutParameter @GLchar ByteBuffer label); 344 345 @Alternate("glGetObjectPtrLabel") 346 @GLreturn(value = "label", maxLength = "bufSize") glGetObjectPtrLabel2(@ointerWrapperR) org.lwjgl.PointerWrapper ptr, @GLsizei int bufSize, @OutParameter @GLsizei @Constant(R) IntBuffer length, @OutParameter @GLchar ByteBuffer label)347 void glGetObjectPtrLabel2(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @GLsizei int bufSize, 348 @OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length, 349 @OutParameter @GLchar ByteBuffer label); 350 351 // ----------------------------------------------------------------------------- 352 // ----------------------[ ARB_explicit_uniform_location ]---------------------- 353 // ----------------------------------------------------------------------------- 354 355 /** 356 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 357 * GetFloatv, GetDoublev, and GetInteger64v: 358 */ 359 int GL_MAX_UNIFORM_LOCATIONS = 0x826E; 360 361 // ----------------------------------------------------------------------------- 362 // ----------------------[ ARB_framebuffer_no_attachment ]---------------------- 363 // ----------------------------------------------------------------------------- 364 365 /** 366 * Accepted by the <pname> parameter of FramebufferParameteri, 367 * GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and 368 * GetNamedFramebufferParameterivEXT: 369 */ 370 int GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310, 371 GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311, 372 GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312, 373 GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313, 374 GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314; 375 376 /** 377 * Accepted by the <pname> parameter of GetIntegerv, GetBooleanv, 378 * GetInteger64v, GetFloatv, and GetDoublev: 379 */ 380 int GL_MAX_FRAMEBUFFER_WIDTH = 0x9315, 381 GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316, 382 GL_MAX_FRAMEBUFFER_LAYERS = 0x9317, 383 GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318; 384 glFramebufferParameteri(@Lenum int target, @GLenum int pname, int param)385 void glFramebufferParameteri(@GLenum int target, @GLenum int pname, int param); 386 387 @StripPostfix("params") glGetFramebufferParameteriv(@Lenum int target, @GLenum int pname, @OutParameter @Check(R) IntBuffer params)388 void glGetFramebufferParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("1") IntBuffer params); 389 390 @Alternate("glGetFramebufferParameteriv") 391 @GLreturn("params") 392 @StripPostfix(value = "params", hasPostfix = false) glGetFramebufferParameteriv2(@Lenum int target, @GLenum int pname, @OutParameter IntBuffer params)393 void glGetFramebufferParameteriv2(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params); 394 395 // ----------------------------------------------------------------------------- 396 // ----------------------[ ARB_internalformat_query2 ]---------------------- 397 // ----------------------------------------------------------------------------- 398 399 /** 400 * Accepted by the <pname> parameter of GetInternalformativ 401 * and GetInternalformati64v: 402 */ 403 int GL_INTERNALFORMAT_SUPPORTED = 0x826F, 404 GL_INTERNALFORMAT_PREFERRED = 0x8270, 405 GL_INTERNALFORMAT_RED_SIZE = 0x8271, 406 GL_INTERNALFORMAT_GREEN_SIZE = 0x8272, 407 GL_INTERNALFORMAT_BLUE_SIZE = 0x8273, 408 GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274, 409 GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275, 410 GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276, 411 GL_INTERNALFORMAT_SHARED_SIZE = 0x8277, 412 GL_INTERNALFORMAT_RED_TYPE = 0x8278, 413 GL_INTERNALFORMAT_GREEN_TYPE = 0x8279, 414 GL_INTERNALFORMAT_BLUE_TYPE = 0x827A, 415 GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B, 416 GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C, 417 GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D, 418 GL_MAX_WIDTH = 0x827E, 419 GL_MAX_HEIGHT = 0x827F, 420 GL_MAX_DEPTH = 0x8280, 421 GL_MAX_LAYERS = 0x8281, 422 GL_MAX_COMBINED_DIMENSIONS = 0x8282, 423 GL_COLOR_COMPONENTS = 0x8283, 424 GL_DEPTH_COMPONENTS = 0x8284, 425 GL_STENCIL_COMPONENTS = 0x8285, 426 GL_COLOR_RENDERABLE = 0x8286, 427 GL_DEPTH_RENDERABLE = 0x8287, 428 GL_STENCIL_RENDERABLE = 0x8288, 429 GL_FRAMEBUFFER_RENDERABLE = 0x8289, 430 GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A, 431 GL_FRAMEBUFFER_BLEND = 0x828B, 432 GL_READ_PIXELS = 0x828C, 433 GL_READ_PIXELS_FORMAT = 0x828D, 434 GL_READ_PIXELS_TYPE = 0x828E, 435 GL_TEXTURE_IMAGE_FORMAT = 0x828F, 436 GL_TEXTURE_IMAGE_TYPE = 0x8290, 437 GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291, 438 GL_GET_TEXTURE_IMAGE_TYPE = 0x8292, 439 GL_MIPMAP = 0x8293, 440 GL_MANUAL_GENERATE_MIPMAP = 0x8294, 441 GL_AUTO_GENERATE_MIPMAP = 0x8295, 442 GL_COLOR_ENCODING = 0x8296, 443 GL_SRGB_READ = 0x8297, 444 GL_SRGB_WRITE = 0x8298, 445 GL_SRGB_DECODE_ARB = 0x8299, 446 GL_FILTER = 0x829A, 447 GL_VERTEX_TEXTURE = 0x829B, 448 GL_TESS_CONTROL_TEXTURE = 0x829C, 449 GL_TESS_EVALUATION_TEXTURE = 0x829D, 450 GL_GEOMETRY_TEXTURE = 0x829E, 451 GL_FRAGMENT_TEXTURE = 0x829F, 452 GL_COMPUTE_TEXTURE = 0x82A0, 453 GL_TEXTURE_SHADOW = 0x82A1, 454 GL_TEXTURE_GATHER = 0x82A2, 455 GL_TEXTURE_GATHER_SHADOW = 0x82A3, 456 GL_SHADER_IMAGE_LOAD = 0x82A4, 457 GL_SHADER_IMAGE_STORE = 0x82A5, 458 GL_SHADER_IMAGE_ATOMIC = 0x82A6, 459 GL_IMAGE_TEXEL_SIZE = 0x82A7, 460 GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8, 461 GL_IMAGE_PIXEL_FORMAT = 0x82A9, 462 GL_IMAGE_PIXEL_TYPE = 0x82AA, 463 GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC, 464 GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD, 465 GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE, 466 GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF, 467 GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1, 468 GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2, 469 GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3, 470 GL_CLEAR_BUFFER = 0x82B4, 471 GL_TEXTURE_VIEW = 0x82B5, 472 GL_VIEW_COMPATIBILITY_CLASS = 0x82B6; 473 474 /** 475 * Returned as possible responses for various <pname> queries 476 * to GetInternalformativ and GetInternalformati64v 477 */ 478 int GL_FULL_SUPPORT = 0x82B7, 479 GL_CAVEAT_SUPPORT = 0x82B8, 480 GL_IMAGE_CLASS_4_X_32 = 0x82B9, 481 GL_IMAGE_CLASS_2_X_32 = 0x82BA, 482 GL_IMAGE_CLASS_1_X_32 = 0x82BB, 483 GL_IMAGE_CLASS_4_X_16 = 0x82BC, 484 GL_IMAGE_CLASS_2_X_16 = 0x82BD, 485 GL_IMAGE_CLASS_1_X_16 = 0x82BE, 486 GL_IMAGE_CLASS_4_X_8 = 0x82BF, 487 GL_IMAGE_CLASS_2_X_8 = 0x82C0, 488 GL_IMAGE_CLASS_1_X_8 = 0x82C1, 489 GL_IMAGE_CLASS_11_11_10 = 0x82C2, 490 GL_IMAGE_CLASS_10_10_10_2 = 0x82C3, 491 GL_VIEW_CLASS_128_BITS = 0x82C4, 492 GL_VIEW_CLASS_96_BITS = 0x82C5, 493 GL_VIEW_CLASS_64_BITS = 0x82C6, 494 GL_VIEW_CLASS_48_BITS = 0x82C7, 495 GL_VIEW_CLASS_32_BITS = 0x82C8, 496 GL_VIEW_CLASS_24_BITS = 0x82C9, 497 GL_VIEW_CLASS_16_BITS = 0x82CA, 498 GL_VIEW_CLASS_8_BITS = 0x82CB, 499 GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC, 500 GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD, 501 GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE, 502 GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF, 503 GL_VIEW_CLASS_RGTC1_RED = 0x82D0, 504 GL_VIEW_CLASS_RGTC2_RG = 0x82D1, 505 GL_VIEW_CLASS_BPTC_UNORM = 0x82D2, 506 GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3; 507 508 @StripPostfix("params") glGetInternalformati64v(@Lenum int target, @GLenum int internalformat, @GLenum int pname, @AutoSize(R) @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params)509 void glGetInternalformati64v(@GLenum int target, @GLenum int internalformat, 510 @GLenum int pname, @AutoSize("params") @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params); 511 512 @Alternate("glGetInternalformati64v") 513 @GLreturn("params") 514 @StripPostfix(value = "params", hasPostfix = false) glGetInternalformati64v2(@Lenum int target, @GLenum int internalformat, @GLenum int pname, @Constant(R) @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params)515 void glGetInternalformati64v2(@GLenum int target, @GLenum int internalformat, 516 @GLenum int pname, @Constant("1") @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params); 517 518 // ---------------------------------------------------------------------- 519 // ----------------------[ ARB_invalidate_subdata ]---------------------- 520 // ---------------------------------------------------------------------- 521 glInvalidateTexSubImage(@Luint int texture, int level, int xoffset, int yoffset, int zoffset, @GLsizei int width, @GLsizei int height, @GLsizei int depth)522 void glInvalidateTexSubImage(@GLuint int texture, int level, 523 int xoffset, int yoffset, int zoffset, 524 @GLsizei int width, @GLsizei int height, @GLsizei int depth); 525 glInvalidateTexImage(@Luint int texture, int level)526 void glInvalidateTexImage(@GLuint int texture, int level); 527 glInvalidateBufferSubData(@Luint int buffer, @GLintptr long offset, @GLsizeiptr long length)528 void glInvalidateBufferSubData(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length); 529 glInvalidateBufferData(@Luint int buffer)530 void glInvalidateBufferData(@GLuint int buffer); 531 glInvalidateFramebuffer(@Lenum int target, @AutoSize(R) @GLsizei int numAttachments, @Const @GLenum IntBuffer attachments)532 void glInvalidateFramebuffer(@GLenum int target, 533 @AutoSize("attachments") @GLsizei int numAttachments, 534 @Const @GLenum IntBuffer attachments); 535 glInvalidateSubFramebuffer(@Lenum int target, @AutoSize(R) @GLsizei int numAttachments, @Const @GLenum IntBuffer attachments, int x, int y, @GLsizei int width, @GLsizei int height)536 void glInvalidateSubFramebuffer(@GLenum int target, 537 @AutoSize("attachments") @GLsizei int numAttachments, 538 @Const @GLenum IntBuffer attachments, 539 int x, int y, @GLsizei int width, @GLsizei int height); 540 541 // ----------------------------------------------------------------------- 542 // ----------------------[ ARB_multi_draw_indirect ]---------------------- 543 // ----------------------------------------------------------------------- 544 glMultiDrawArraysIndirect(@Lenum int mode, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid ByteBuffer indirect, @GLsizei int primcount, @GLsizei int stride)545 void glMultiDrawArraysIndirect(@GLenum int mode, 546 @BufferObject(BufferKind.IndirectBO) @Check("(stride == 0 ? 4 * 4 : stride) * primcount") @Const @GLvoid ByteBuffer indirect, 547 @GLsizei int primcount, 548 @GLsizei int stride); 549 550 @Alternate("glMultiDrawArraysIndirect") glMultiDrawArraysIndirect(@Lenum int mode, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid(TypeKind.INT) IntBuffer indirect, @GLsizei int primcount, @GLsizei int stride)551 void glMultiDrawArraysIndirect(@GLenum int mode, 552 @BufferObject(BufferKind.IndirectBO) @Check("(stride == 0 ? 4 : stride >> 2) * primcount") @Const @GLvoid(TypeKind.INT) IntBuffer indirect, 553 @GLsizei int primcount, 554 @GLsizei int stride); 555 glMultiDrawElementsIndirect(@Lenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid ByteBuffer indirect, @GLsizei int primcount, @GLsizei int stride)556 void glMultiDrawElementsIndirect(@GLenum int mode, 557 @GLenum int type, 558 @BufferObject(BufferKind.IndirectBO) @Check("(stride == 0 ? 5 * 4 : stride) * primcount") @Const @GLvoid ByteBuffer indirect, 559 @GLsizei int primcount, 560 @GLsizei int stride); 561 562 @Alternate("glMultiDrawElementsIndirect") glMultiDrawElementsIndirect(@Lenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check(R) @Const @GLvoid(TypeKind.INT) IntBuffer indirect, @GLsizei int primcount, @GLsizei int stride)563 void glMultiDrawElementsIndirect(@GLenum int mode, 564 @GLenum int type, 565 @BufferObject(BufferKind.IndirectBO) @Check("(stride == 0 ? 5 : stride >> 2) * primcount") @Const @GLvoid(TypeKind.INT) IntBuffer indirect, 566 @GLsizei int primcount, 567 @GLsizei int stride); 568 569 // --------------------------------------------------------------------------- 570 // ----------------------[ ARB_program_interface_query ]---------------------- 571 // --------------------------------------------------------------------------- 572 573 /** 574 * Accepted by the <programInterface> parameter of GetProgramInterfaceiv, 575 * GetProgramResourceIndex, GetProgramResourceName, GetProgramResourceiv, 576 * GetProgramResourceLocation, and GetProgramResourceLocationIndex: 577 */ 578 int GL_UNIFORM = 0x92E1, 579 GL_UNIFORM_BLOCK = 0x92E2, 580 GL_PROGRAM_INPUT = 0x92E3, 581 GL_PROGRAM_OUTPUT = 0x92E4, 582 GL_BUFFER_VARIABLE = 0x92E5, 583 GL_SHADER_STORAGE_BLOCK = 0x92E6, 584 GL_VERTEX_SUBROUTINE = 0x92E8, 585 GL_TESS_CONTROL_SUBROUTINE = 0x92E9, 586 GL_TESS_EVALUATION_SUBROUTINE = 0x92EA, 587 GL_GEOMETRY_SUBROUTINE = 0x92EB, 588 GL_FRAGMENT_SUBROUTINE = 0x92EC, 589 GL_COMPUTE_SUBROUTINE = 0x92ED, 590 GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE, 591 GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF, 592 GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0, 593 GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1, 594 GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2, 595 GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3, 596 GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4; 597 598 /** Accepted by the <pname> parameter of GetProgramInterfaceiv: */ 599 int GL_ACTIVE_RESOURCES = 0x92F5, 600 GL_MAX_NAME_LENGTH = 0x92F6, 601 GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7, 602 GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8; 603 604 /** Accepted in the <props> array of GetProgramResourceiv: */ 605 int GL_NAME_LENGTH = 0x92F9, 606 GL_TYPE = 0x92FA, 607 GL_ARRAY_SIZE = 0x92FB, 608 GL_OFFSET = 0x92FC, 609 GL_BLOCK_INDEX = 0x92FD, 610 GL_ARRAY_STRIDE = 0x92FE, 611 GL_MATRIX_STRIDE = 0x92FF, 612 GL_IS_ROW_MAJOR = 0x9300, 613 GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301, 614 GL_BUFFER_BINDING = 0x9302, 615 GL_BUFFER_DATA_SIZE = 0x9303, 616 GL_NUM_ACTIVE_VARIABLES = 0x9304, 617 GL_ACTIVE_VARIABLES = 0x9305, 618 GL_REFERENCED_BY_VERTEX_SHADER = 0x9306, 619 GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307, 620 GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308, 621 GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309, 622 GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A, 623 GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B, 624 GL_TOP_LEVEL_ARRAY_SIZE = 0x930C, 625 GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D, 626 GL_LOCATION = 0x930E, 627 GL_LOCATION_INDEX = 0x930F, 628 GL_IS_PER_PATCH = 0x92E7; 629 630 @StripPostfix("params") glGetProgramInterfaceiv(@Luint int program, @GLenum int programInterface, @GLenum int pname, @Check(R) @OutParameter IntBuffer params)631 void glGetProgramInterfaceiv(@GLuint int program, @GLenum int programInterface, 632 @GLenum int pname, @Check("1") @OutParameter IntBuffer params); 633 634 @Alternate("glGetProgramInterfaceiv") 635 @GLreturn("params") 636 @StripPostfix(value = "params", hasPostfix = false) glGetProgramInterfaceiv2(@Luint int program, @GLenum int programInterface, @GLenum int pname, @OutParameter IntBuffer params)637 void glGetProgramInterfaceiv2(@GLuint int program, @GLenum int programInterface, 638 @GLenum int pname, @OutParameter IntBuffer params); 639 640 @GLuint glGetProgramResourceIndex(@Luint int program, @GLenum int programInterface, @NullTerminated @Const @GLchar ByteBuffer name)641 int glGetProgramResourceIndex(@GLuint int program, @GLenum int programInterface, 642 @NullTerminated @Const @GLchar ByteBuffer name); 643 644 @Alternate("glGetProgramResourceIndex") 645 @GLuint glGetProgramResourceIndex(@Luint int program, @GLenum int programInterface, @NullTerminated CharSequence name)646 int glGetProgramResourceIndex(@GLuint int program, @GLenum int programInterface, 647 @NullTerminated CharSequence name); 648 glGetProgramResourceName(@Luint int program, @GLenum int programInterface, @GLuint int index, @AutoSize(value = R, canBeNull = true) @GLsizei int bufSize, @Check(value = R, canBeNull = true) @OutParameter @GLsizei IntBuffer length, @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer name)649 void glGetProgramResourceName(@GLuint int program, @GLenum int programInterface, 650 @GLuint int index, @AutoSize(value = "name", canBeNull = true) @GLsizei int bufSize, @Check(value = "1", canBeNull = true) @OutParameter @GLsizei IntBuffer length, 651 @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer name); 652 653 @Alternate("glGetProgramResourceName") 654 @GLreturn(value = "name", maxLength = "bufSize") glGetProgramResourceName2(@Luint int program, @GLenum int programInterface, @GLuint int index, @GLsizei int bufSize, @OutParameter @GLsizei @Constant(R) IntBuffer length, @OutParameter @GLchar ByteBuffer name)655 void glGetProgramResourceName2(@GLuint int program, @GLenum int programInterface, 656 @GLuint int index, @GLsizei int bufSize, 657 @OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(name_length)") IntBuffer length, 658 @OutParameter @GLchar ByteBuffer name); 659 660 @StripPostfix("params") glGetProgramResourceiv(@Luint int program, @GLenum int programInterface, @GLuint int index, @AutoSize(R) @GLsizei int propCount, @Const @GLenum IntBuffer props, @AutoSize(R) @GLsizei int bufSize, @Check(value = R, canBeNull = true) @OutParameter @GLsizei IntBuffer length, @OutParameter IntBuffer params)661 void glGetProgramResourceiv(@GLuint int program, @GLenum int programInterface, 662 @GLuint int index, @AutoSize("props") @GLsizei int propCount, 663 @Const @GLenum IntBuffer props, @AutoSize("params") @GLsizei int bufSize, 664 @Check(value = "1", canBeNull = true) @OutParameter @GLsizei IntBuffer length, @OutParameter IntBuffer params); 665 glGetProgramResourceLocation(@Luint int program, @GLenum int programInterface, @NullTerminated @Const @GLchar ByteBuffer name)666 int glGetProgramResourceLocation(@GLuint int program, @GLenum int programInterface, 667 @NullTerminated @Const @GLchar ByteBuffer name); 668 669 @Alternate("glGetProgramResourceLocation") glGetProgramResourceLocation(@Luint int program, @GLenum int programInterface, @NullTerminated CharSequence name)670 int glGetProgramResourceLocation(@GLuint int program, @GLenum int programInterface, 671 @NullTerminated CharSequence name); 672 glGetProgramResourceLocationIndex(@Luint int program, @GLenum int programInterface, @NullTerminated @Const @GLchar ByteBuffer name)673 int glGetProgramResourceLocationIndex(@GLuint int program, @GLenum int programInterface, 674 @NullTerminated @Const @GLchar ByteBuffer name); 675 676 @Alternate("glGetProgramResourceLocationIndex") glGetProgramResourceLocationIndex(@Luint int program, @GLenum int programInterface, @NullTerminated CharSequence name)677 int glGetProgramResourceLocationIndex(@GLuint int program, @GLenum int programInterface, 678 @NullTerminated CharSequence name); 679 680 // -------------------------------------------------------------------------------- 681 // ----------------------[ ARB_shader_storage_buffer_object ]---------------------- 682 // -------------------------------------------------------------------------------- 683 684 /** 685 * Accepted by the <target> parameters of BindBuffer, BufferData, 686 * BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and 687 * GetBufferPointerv: 688 */ 689 int GL_SHADER_STORAGE_BUFFER = 0x90D2; 690 691 /** 692 * Accepted by the <pname> parameter of GetIntegerv, GetIntegeri_v, 693 * GetBooleanv, GetInteger64v, GetFloatv, GetDoublev, GetBooleani_v, 694 * GetIntegeri_v, GetFloati_v, GetDoublei_v, and GetInteger64i_v: 695 */ 696 int GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3; 697 698 /** 699 * Accepted by the <pname> parameter of GetIntegeri_v, GetBooleani_v, 700 * GetIntegeri_v, GetFloati_v, GetDoublei_v, and GetInteger64i_v: 701 */ 702 int GL_SHADER_STORAGE_BUFFER_START = 0x90D4, 703 GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5; 704 705 /** 706 * Accepted by the <pname> parameter of GetIntegerv, GetBooleanv, 707 * GetInteger64v, GetFloatv, and GetDoublev: 708 */ 709 int GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6, 710 GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7, 711 GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8, 712 GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9, 713 GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA, 714 GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB, 715 GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC, 716 GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD, 717 GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE, 718 GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF; 719 720 /** Accepted in the <barriers> bitfield in glMemoryBarrier: */ 721 int GL_SHADER_STORAGE_BARRIER_BIT = 0x2000; 722 723 /** 724 * Alias for the existing token 725 * MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS: 726 */ 727 int GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39; 728 glShaderStorageBlockBinding(@Luint int program, @GLuint int storageBlockIndex, @GLuint int storageBlockBinding)729 void glShaderStorageBlockBinding(@GLuint int program, @GLuint int storageBlockIndex, 730 @GLuint int storageBlockBinding); 731 732 // --------------------------------------------------------------------- 733 // ----------------------[ ARB_stencil_texturing ]---------------------- 734 // --------------------------------------------------------------------- 735 736 /** Accepted by the <pname> parameter of TexParameter* and GetTexParameter*: */ 737 int GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA; 738 739 // ------------------------------------------------------------------------ 740 // ----------------------[ ARB_texture_buffer_range ]---------------------- 741 // ------------------------------------------------------------------------ 742 743 /** Accepted by the <pname> parameter of GetTexLevelParameter: */ 744 int GL_TEXTURE_BUFFER_OFFSET = 0x919D, 745 GL_TEXTURE_BUFFER_SIZE = 0x919E; 746 747 /** 748 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 749 * and GetDoublev: 750 */ 751 int GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F; 752 glTexBufferRange(@Lenum int target, @GLenum int internalformat, @GLuint int buffer, @GLintptr long offset, @GLsizeiptr long size)753 void glTexBufferRange(@GLenum int target, 754 @GLenum int internalformat, 755 @GLuint int buffer, 756 @GLintptr long offset, 757 @GLsizeiptr long size); 758 759 // ------------------------------------------------------------------------------- 760 // ----------------------[ ARB_texture_storage_multisample ]---------------------- 761 // ------------------------------------------------------------------------------- 762 glTexStorage2DMultisample(@Lenum int target, @GLsizei int samples, @GLenum int internalformat, @GLsizei int width, @GLsizei int height, boolean fixedsamplelocations)763 void glTexStorage2DMultisample(@GLenum int target, 764 @GLsizei int samples, 765 @GLenum int internalformat, 766 @GLsizei int width, 767 @GLsizei int height, 768 boolean fixedsamplelocations); 769 glTexStorage3DMultisample(@Lenum int target, @GLsizei int samples, @GLenum int internalformat, @GLsizei int width, @GLsizei int height, @GLsizei int depth, boolean fixedsamplelocations)770 void glTexStorage3DMultisample(@GLenum int target, 771 @GLsizei int samples, 772 @GLenum int internalformat, 773 @GLsizei int width, 774 @GLsizei int height, 775 @GLsizei int depth, 776 boolean fixedsamplelocations); 777 778 // ---------------------------------------------------------------- 779 // ----------------------[ ARB_texture_view ]---------------------- 780 // ---------------------------------------------------------------- 781 782 /** 783 * Accepted by the <pname> parameters of GetTexParameterfv and 784 * GetTexParameteriv: 785 */ 786 int GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB, 787 GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC, 788 GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD, 789 GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE, 790 GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF; 791 glTextureView(@Luint int texture, @GLenum int target, @GLuint int origtexture, @GLenum int internalformat, @GLuint int minlevel, @GLuint int numlevels, @GLuint int minlayer, @GLuint int numlayers)792 void glTextureView(@GLuint int texture, @GLenum int target, @GLuint int origtexture, 793 @GLenum int internalformat, 794 @GLuint int minlevel, @GLuint int numlevels, 795 @GLuint int minlayer, @GLuint int numlayers); 796 797 // ------------------------------------------------------------------------- 798 // ----------------------[ ARB_vertex_attrib_binding ]---------------------- 799 // ------------------------------------------------------------------------- 800 801 /** Accepted by the <pname> parameter of GetVertexAttrib*v: */ 802 int GL_VERTEX_ATTRIB_BINDING = 0x82D4, 803 GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5; 804 805 /** 806 * Accepted by the <target> parameter of GetBooleani_v, GetIntegeri_v, 807 * GetFloati_v, GetDoublei_v, and GetInteger64i_v: 808 */ 809 int GL_VERTEX_BINDING_DIVISOR = 0x82D6, 810 GL_VERTEX_BINDING_OFFSET = 0x82D7, 811 GL_VERTEX_BINDING_STRIDE = 0x82D8; 812 813 /** Accepted by the <pname> parameter of GetIntegerv, ... */ 814 int GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9, 815 GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA; 816 glBindVertexBuffer(@Luint int bindingindex, @GLuint int buffer, @GLintptr long offset, @GLsizei int stride)817 void glBindVertexBuffer(@GLuint int bindingindex, @GLuint int buffer, @GLintptr long offset, 818 @GLsizei int stride); 819 glVertexAttribFormat(@Luint int attribindex, int size, @GLenum int type, boolean normalized, @GLuint int relativeoffset)820 void glVertexAttribFormat(@GLuint int attribindex, int size, @GLenum int type, 821 boolean normalized, @GLuint int relativeoffset); 822 glVertexAttribIFormat(@Luint int attribindex, int size, @GLenum int type, @GLuint int relativeoffset)823 void glVertexAttribIFormat(@GLuint int attribindex, int size, @GLenum int type, 824 @GLuint int relativeoffset); 825 glVertexAttribLFormat(@Luint int attribindex, int size, @GLenum int type, @GLuint int relativeoffset)826 void glVertexAttribLFormat(@GLuint int attribindex, int size, @GLenum int type, 827 @GLuint int relativeoffset); 828 glVertexAttribBinding(@Luint int attribindex, @GLuint int bindingindex)829 void glVertexAttribBinding(@GLuint int attribindex, @GLuint int bindingindex); 830 glVertexBindingDivisor(@Luint int bindingindex, @GLuint int divisor)831 void glVertexBindingDivisor(@GLuint int bindingindex, @GLuint int divisor); 832 833 }