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.PointerBuffer; 35 import org.lwjgl.util.generator.*; 36 import org.lwjgl.util.generator.opengl.*; 37 38 import java.nio.Buffer; 39 import java.nio.IntBuffer; 40 41 public interface GL44 { 42 43 /** Implementation-dependent state which constrains the maximum value of stride parameters to vertex array pointer-setting commands. */ 44 int GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5; 45 46 // ------------------------------------------------------------------ 47 // ----------------------[ ARB_buffer_storage ]---------------------- 48 // ------------------------------------------------------------------ 49 50 /** 51 * Accepted in the <flags> parameter of BufferStorage and 52 * NamedBufferStorageEXT: 53 */ 54 int GL_MAP_PERSISTENT_BIT = 0x0040, 55 GL_MAP_COHERENT_BIT = 0x0080, 56 GL_DYNAMIC_STORAGE_BIT = 0x0100, 57 GL_CLIENT_STORAGE_BIT = 0x0200; 58 59 /** Accepted by the <pname> parameter of GetBufferParameter{i|i64}v:\ */ 60 61 int GL_BUFFER_IMMUTABLE_STORAGE = 0x821F, 62 GL_BUFFER_STORAGE_FLAGS = 0x8220; 63 64 /** Accepted by the <barriers> parameter of MemoryBarrier: */ 65 int GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000; 66 glBufferStorage(@Lenum int target, @AutoSize(R) @GLsizeiptr long size, @Const @GLbyte @GLshort @GLint @GLuint64 @GLfloat @GLdouble Buffer data, @GLbitfield int flags)67 void glBufferStorage(@GLenum int target, 68 @AutoSize("data") @GLsizeiptr long size, 69 @Const 70 @GLbyte 71 @GLshort 72 @GLint 73 @GLuint64 74 @GLfloat 75 @GLdouble Buffer data, 76 @GLbitfield int flags); 77 78 @Alternate("glBufferStorage") glBufferStorage2(@Lenum int target, @GLsizeiptr long size, @Constant(R) @Const Buffer data, @GLbitfield int flags)79 void glBufferStorage2(@GLenum int target, 80 @GLsizeiptr long size, 81 @Constant("0L") @Const Buffer data, 82 @GLbitfield int flags); 83 84 // ----------------------------------------------------------------- 85 // ----------------------[ ARB_clear_texture ]---------------------- 86 // ----------------------------------------------------------------- 87 88 /** 89 * Accepted by the <pname> parameter for GetInternalformativ and 90 * GetInternalformati64v: 91 */ 92 int GL_CLEAR_TEXTURE = 0x9365; 93 glClearTexImage(@Luint int texture, int level, @GLenum int format, @GLenum int type, @Check(value = R, canBeNull = true) @Const @GLbyte @GLshort @GLint @GLuint64 @GLfloat @GLdouble Buffer data)94 void glClearTexImage(@GLuint int texture, int level, 95 @GLenum int format, @GLenum int type, 96 @Check(value = "1", canBeNull = true) 97 @Const 98 @GLbyte 99 @GLshort 100 @GLint 101 @GLuint64 102 @GLfloat 103 @GLdouble Buffer data); 104 glClearTexSubImage(@Luint int texture, int level, int xoffset, int yoffset, int zoffset, @GLsizei int width, @GLsizei int height, @GLsizei int depth, @GLenum int format, @GLenum int type, @Check(value = R, canBeNull = true) @Const @GLbyte @GLshort @GLint @GLuint64 @GLfloat @GLdouble Buffer data)105 void glClearTexSubImage(@GLuint int texture, int level, 106 int xoffset, int yoffset, int zoffset, 107 @GLsizei int width, @GLsizei int height, @GLsizei int depth, 108 @GLenum int format, @GLenum int type, 109 @Check(value = "1", canBeNull = true) 110 @Const 111 @GLbyte 112 @GLshort 113 @GLint 114 @GLuint64 115 @GLfloat 116 @GLdouble Buffer data); 117 118 // -------------------------------------------------------------------- 119 // ----------------------[ ARB_enhanced_layouts ]---------------------- 120 // -------------------------------------------------------------------- 121 122 /** Accepted in the <props> array of GetProgramResourceiv: */ 123 int GL_LOCATION_COMPONENT = 0x934A, 124 GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B, 125 GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C; 126 127 // -------------------------------------------------------------- 128 // ----------------------[ ARB_multi_bind ]---------------------- 129 // -------------------------------------------------------------- 130 glBindBuffersBase(@Lenum int target, @GLuint int first, @GLsizei int count, @Check(value = R, canBeNull = true) @Const @GLuint IntBuffer buffers)131 void glBindBuffersBase(@GLenum int target, @GLuint int first, @GLsizei int count, @Check(value = "count", canBeNull = true) @Const @GLuint IntBuffer buffers); 132 glBindBuffersRange(@Lenum int target, @GLuint int first, @GLsizei int count, @Check(value = R, canBeNull = true) @Const @GLuint IntBuffer buffers, @Check(value = R, canBeNull = true) @Const @GLintptr PointerBuffer offsets, @Check(value = R, canBeNull = true) @Const @GLsizeiptr PointerBuffer sizes)133 void glBindBuffersRange(@GLenum int target, @GLuint int first, @GLsizei int count, 134 @Check(value = "count", canBeNull = true) @Const @GLuint IntBuffer buffers, 135 @Check(value = "count", canBeNull = true) @Const @GLintptr PointerBuffer offsets, 136 @Check(value = "count", canBeNull = true) @Const @GLsizeiptr PointerBuffer sizes); 137 glBindTextures(@Luint int first, @GLsizei int count, @Check(value = R, canBeNull = true) @Const @GLuint IntBuffer textures)138 void glBindTextures(@GLuint int first, @GLsizei int count, @Check(value = "count", canBeNull = true) @Const @GLuint IntBuffer textures); 139 glBindSamplers(@Luint int first, @GLsizei int count, @Check(value = R, canBeNull = true) @Const @GLuint IntBuffer samplers)140 void glBindSamplers(@GLuint int first, @GLsizei int count, @Check(value = "count", canBeNull = true) @Const @GLuint IntBuffer samplers); 141 glBindImageTextures(@Luint int first, @GLsizei int count, @Check(value = R, canBeNull = true) @Const @GLuint IntBuffer textures)142 void glBindImageTextures(@GLuint int first, @GLsizei int count, @Check(value = "count", canBeNull = true) @Const @GLuint IntBuffer textures); 143 glBindVertexBuffers(@Luint int first, @GLsizei int count, @Check(value = R, canBeNull = true) @Const @GLuint IntBuffer buffers, @Check(value = R, canBeNull = true) @Const @GLintptr PointerBuffer offsets, @Check(value = R, canBeNull = true) @Const @GLsizei IntBuffer strides)144 void glBindVertexBuffers(@GLuint int first, @GLsizei int count, 145 @Check(value = "count", canBeNull = true) @Const @GLuint IntBuffer buffers, 146 @Check(value = "count", canBeNull = true) @Const @GLintptr PointerBuffer offsets, 147 @Check(value = "count", canBeNull = true) @Const @GLsizei IntBuffer strides); 148 149 // ----------------------------------------------------------------------- 150 // ----------------------[ ARB_query_buffer_object ]---------------------- 151 // ----------------------------------------------------------------------- 152 153 /** 154 * Accepted by the <pname> parameter of GetQueryObjectiv, GetQueryObjectuiv, 155 * GetQueryObjecti64v and GetQueryObjectui64v: 156 */ 157 int GL_QUERY_RESULT_NO_WAIT = 0x9194; 158 159 /** 160 * Accepted by the <target> parameter of BindBuffer, BufferData, 161 * BufferSubData, MapBuffer, UnmapBuffer, MapBufferRange, GetBufferSubData, 162 * GetBufferParameteriv, GetBufferParameteri64v, GetBufferPointerv, 163 * ClearBufferSubData, and the <readtarget> and <writetarget> parameters of 164 * CopyBufferSubData: 165 */ 166 int GL_QUERY_BUFFER = 0x9192; 167 168 /** 169 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 170 * and GetDoublev: 171 */ 172 int GL_QUERY_BUFFER_BINDING = 0x9193; 173 174 /** Accepted in the <barriers> bitfield in MemoryBarrier: */ 175 int GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000; 176 177 // -------------------------------------------------------------------------------- 178 // ----------------------[ ARB_texture_mirror_clamp_to_edge ]---------------------- 179 // -------------------------------------------------------------------------------- 180 181 /** 182 * Accepted by the <param> parameter of TexParameter{if}, SamplerParameter{if} 183 * and SamplerParameter{if}v, and by the <params> parameter of 184 * TexParameter{if}v, TexParameterI{i ui}v and SamplerParameterI{i ui}v when 185 * their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or 186 * TEXTURE_WRAP_R: 187 */ 188 int GL_MIRROR_CLAMP_TO_EDGE = 0x8743; 189 190 }