/*
* Copyright (c) 2002-2011 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.Buffer;
import java.nio.IntBuffer;
public interface GL42 {
// ----------------------------------------------------------------------------
// ----------------------[ ARB_texture_compression_bptc ]----------------------
// ----------------------------------------------------------------------------
/**
* Accepted by the <internalformat> parameter of TexImage2D, TexImage3D,
* CopyTexImage2D, CopyTexImage3D, CompressedTexImage2DARB, and
* CompressedTexImage3DARB and the <format> parameter of
* CompressedTexSubImage2DARB and CompressedTexSubImage3DARB:
*/
int GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C;
int GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D;
int GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E;
int GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F;
// ------------------------------------------------------------------------------------
// ----------------------[ ARB_compressed_texture_pixel_storage ]----------------------
// ------------------------------------------------------------------------------------
/**
* Accepted by the <pname> parameter of PixelStore[fi], GetBooleanv,
* GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127,
GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128,
GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129,
GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A,
GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B,
GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C,
GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D,
GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E;
// --------------------------------------------------------------------------
// ----------------------[ ARB_shader_atomic_counters ]----------------------
// --------------------------------------------------------------------------
/** Accepted by the <target> parameter of BindBufferBase and BindBufferRange: */
int GL_ATOMIC_COUNTER_BUFFER = 0x92C0;
/**
* Accepted by the <pname> parameter of GetBooleani_v, GetIntegeri_v,
* GetFloati_v, GetDoublei_v, GetInteger64i_v, GetBooleanv, GetIntegerv,
* GetInteger64v, GetFloatv, GetDoublev, and GetActiveAtomicCounterBufferiv:
*/
int GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1;
/** Accepted by the <pname> parameter of GetIntegeri_64v: */
int GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2,
GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3;
/** Accepted by the <pname> parameter of GetActiveAtomicCounterBufferiv: */
int GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4,
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5,
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6,
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7,
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8,
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9,
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA,
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB;
/**
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC,
GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD,
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE,
GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF,
GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0,
GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1,
GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2,
GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3,
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4,
GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5,
GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6,
GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7,
GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8,
GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC;
/** Accepted by the <pname> parameter of GetProgramiv: */
int GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9;
/** Accepted by the <pname> parameter of GetActiveUniformsiv: */
int GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA;
/** Returned in <params> by GetActiveUniform and GetActiveUniformsiv: */
int GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB;
@StripPostfix("params")
void glGetActiveAtomicCounterBufferiv(@GLuint int program, @GLuint int bufferIndex, @GLenum int pname, @Check("1") @OutParameter IntBuffer params);
@Alternate("glGetActiveAtomicCounterBufferiv")
@StripPostfix("params")
@GLreturn("params")
void glGetActiveAtomicCounterBufferiv2(@GLuint int program, @GLuint int bufferIndex, @GLenum int pname, @OutParameter IntBuffer params);
// -------------------------------------------------------------------
// ----------------------[ ARB_texture_storage ]----------------------
// -------------------------------------------------------------------
/** Accepted by the <value> parameter of GetTexParameter{if}v: */
int GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F;
void glTexStorage1D(@GLenum int target, @GLsizei int levels,
@GLenum int internalformat,
@GLsizei int width);
void glTexStorage2D(@GLenum int target, @GLsizei int levels,
@GLenum int internalformat,
@GLsizei int width, @GLsizei int height);
void glTexStorage3D(@GLenum int target, @GLsizei int levels,
@GLenum int internalformat,
@GLsizei int width, @GLsizei int height, @GLsizei int depth);
// --------------------------------------------------------------------------------
// ----------------------[ ARB_transform_feedback_instanced ]----------------------
// --------------------------------------------------------------------------------
void glDrawTransformFeedbackInstanced(@GLenum int mode, @GLuint int id, @GLsizei int primcount);
void glDrawTransformFeedbackStreamInstanced(@GLenum int mode, @GLuint int id, @GLuint int stream, @GLsizei int primcount);
// -----------------------------------------------------------------
// ----------------------[ ARB_base_instance ]----------------------
// -----------------------------------------------------------------
void glDrawArraysInstancedBaseInstance(@GLenum int mode,
int first,
@GLsizei int count,
@GLsizei int primcount,
@GLuint int baseinstance);
void glDrawElementsInstancedBaseInstance(@GLenum int mode,
@AutoSize("indices") @GLsizei int count,
@AutoType("indices") @GLenum int type,
@Const
@BufferObject(BufferKind.ElementVBO)
@GLubyte
@GLushort
@GLuint Buffer indices,
@GLsizei int primcount,
@GLuint int baseinstance);
void glDrawElementsInstancedBaseVertexBaseInstance(@GLenum int mode,
@AutoSize("indices") @GLsizei int count,
@AutoType("indices") @GLenum int type,
@Const
@BufferObject(BufferKind.ElementVBO)
@GLubyte
@GLushort
@GLuint Buffer indices,
@GLsizei int primcount,
int basevertex,
@GLuint int baseinstance);
// ---------------------------------------------------------------------------
// ----------------------[ ARB_shader_image_load_store ]----------------------
// ---------------------------------------------------------------------------
/**
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev, and GetInteger64v:
*/
int GL_MAX_IMAGE_UNITS = 0x8F38,
GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39,
GL_MAX_IMAGE_SAMPLES = 0x906D,
GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA,
GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB,
GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC,
GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD,
GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE,
GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF;
/** Accepted by the <target> parameter of GetIntegeri_v and GetBooleani_v: */
int GL_IMAGE_BINDING_NAME = 0x8F3A,
GL_IMAGE_BINDING_LEVEL = 0x8F3B,
GL_IMAGE_BINDING_LAYERED = 0x8F3C,
GL_IMAGE_BINDING_LAYER = 0x8F3D,
GL_IMAGE_BINDING_ACCESS = 0x8F3E,
GL_IMAGE_BINDING_FORMAT = 0x906E;
/** Accepted by the <barriers> parameter of MemoryBarrier: */
int GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001,
GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002,
GL_UNIFORM_BARRIER_BIT = 0x00000004,
GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008,
GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020,
GL_COMMAND_BARRIER_BIT = 0x00000040,
GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080,
GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100,
GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200,
GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400,
GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800,
GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000,
GL_ALL_BARRIER_BITS = 0xFFFFFFFF;
/** Returned by the <type> parameter of GetActiveUniform: */
int GL_IMAGE_1D = 0x904C,
GL_IMAGE_2D = 0x904D,
GL_IMAGE_3D = 0x904E,
GL_IMAGE_2D_RECT = 0x904F,
GL_IMAGE_CUBE = 0x9050,
GL_IMAGE_BUFFER = 0x9051,
GL_IMAGE_1D_ARRAY = 0x9052,
GL_IMAGE_2D_ARRAY = 0x9053,
GL_IMAGE_CUBE_MAP_ARRAY = 0x9054,
GL_IMAGE_2D_MULTISAMPLE = 0x9055,
GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056,
GL_INT_IMAGE_1D = 0x9057,
GL_INT_IMAGE_2D = 0x9058,
GL_INT_IMAGE_3D = 0x9059,
GL_INT_IMAGE_2D_RECT = 0x905A,
GL_INT_IMAGE_CUBE = 0x905B,
GL_INT_IMAGE_BUFFER = 0x905C,
GL_INT_IMAGE_1D_ARRAY = 0x905D,
GL_INT_IMAGE_2D_ARRAY = 0x905E,
GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F,
GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060,
GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061,
GL_UNSIGNED_INT_IMAGE_1D = 0x9062,
GL_UNSIGNED_INT_IMAGE_2D = 0x9063,
GL_UNSIGNED_INT_IMAGE_3D = 0x9064,
GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065,
GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066,
GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067,
GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068,
GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069,
GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A,
GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B,
GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C;
/**
* Accepted by the <value> parameter of GetTexParameteriv, GetTexParameterfv,
* GetTexParameterIiv, and GetTexParameterIuiv:
*/
int GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7;
/**
* Returned in the <data> parameter of GetTexParameteriv, GetTexParameterfv,
* GetTexParameterIiv, and GetTexParameterIuiv when <value> is
* IMAGE_FORMAT_COMPATIBILITY_TYPE:
*/
int GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8,
IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9;
void glBindImageTexture(@GLuint int unit, @GLuint int texture, int level,
boolean layered, int layer, @GLenum int access,
@GLenum int format);
void glMemoryBarrier(@GLbitfield int barriers);
// -------------------------------------------------------------------------
// ----------------------[ ARB_internal_format_query ]----------------------
// -------------------------------------------------------------------------
/** Accepted by the <pname> parameter of GetInternalformativ: */
int GL_NUM_SAMPLE_COUNTS = 0x9380;
@StripPostfix("params")
void glGetInternalformativ(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @AutoSize("params") @GLsizei int bufSize, @OutParameter IntBuffer params);
@Alternate("glGetInternalformativ")
@StripPostfix("params")
@GLreturn("params")
void glGetInternalformativ2(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @Constant("1") @GLsizei int bufSize, @OutParameter IntBuffer params);
// ------------------------------------------------------------------------
// ----------------------[ ARB_map_buffer_alignment ]----------------------
// ------------------------------------------------------------------------
/**
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC;
}