/** * The MIT License (MIT) * * Copyright (c) 2015 Tyler Bucher * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package org.ajgl.graphics; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * This class adds annotated discription to most of the OpenGL * parameters. * @author Tyler Bucher */ public class UtilAnnotations { /** * The following are all valid begin modes for use in * {@link org.lwjgl.opengl.GL11#glBegin(int) glBegin}. * <ul> * <li>{@link org.lwjgl.opengl.GL11#GL_POINTS GL_POINTS} * <li>{@link org.lwjgl.opengl.GL11#GL_LINES GL_LINES} * <li>{@link org.lwjgl.opengl.GL11#GL_LINE_LOOP GL_LINE_LOOP} * <li>{@link org.lwjgl.opengl.GL11#GL_LINE_STRIP GL_LINE_STRIP} * <li>{@link org.lwjgl.opengl.GL11#GL_TRIANGLES GL_TRIANGLES} * <li>{@link org.lwjgl.opengl.GL11#GL_TRIANGLE_STRIP GL_TRIANGLE_STRIP} * <li>{@link org.lwjgl.opengl.GL11#GL_TRIANGLE_FAN GL_TRIANGLE_FAN} * <li>{@link org.lwjgl.opengl.GL11#GL_QUADS GL_QUADS} * <li>{@link org.lwjgl.opengl.GL11#GL_QUAD_STRIP GL_QUAD_STRIP} * <li>{@link org.lwjgl.opengl.GL11#GL_POLYGON GL_POLYGON} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.PARAMETER}) public @interface GlBeginMode { } /** * The following constants are OpenGL storage patterns. * Commonly used with buffer-data. * <ul> * <li>{@link org.lwjgl.opengl.GL15#GL_STREAM_DRAW GL_STREAM_DRAW} * <li>{@link org.lwjgl.opengl.GL15#GL_STREAM_READ GL_STREAM_READ} * <li>{@link org.lwjgl.opengl.GL15#GL_STREAM_COPY GL_STREAM_COPY} * <li>{@link org.lwjgl.opengl.GL15#GL_STATIC_DRAW GL_STATIC_DRAW} * <li>{@link org.lwjgl.opengl.GL15#GL_STATIC_READ GL_STATIC_READ} * <li>{@link org.lwjgl.opengl.GL15#GL_STATIC_COPY GL_STATIC_COPY} * <li>{@link org.lwjgl.opengl.GL15#GL_DYNAMIC_DRAW GL_DYNAMIC_DRAW} * <li>{@link org.lwjgl.opengl.GL15#GL_DYNAMIC_READ GL_DYNAMIC_READ} * <li>{@link org.lwjgl.opengl.GL15#GL_DYNAMIC_COPY GL_DYNAMIC_COPY} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.PARAMETER}) public @interface GlDrawMode { } /** * The following constants are compile modes used with display lists. * <ul> * <li>{@link org.lwjgl.opengl.GL11#GL_COMPILE GL_COMPILE} * <li>{@link org.lwjgl.opengl.GL11#GL_COMPILE_AND_EXECUTE GL_COMPILE_AND_EXECUTE} * </ul> * @author Tyler Bucher * @see {@link org.lwjgl.opengl.GL11#glNewList(int, int) glNewList} */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.PARAMETER}) public @interface GlCompileMode { } /** * The following constants are OpenGL Data-type pointers. * <ul> * <li>{@link org.lwjgl.opengl.GL11#GL_BYTE GL_BYTE} * <li>{@link org.lwjgl.opengl.GL11#GL_UNSIGNED_BYTE GL_UNSIGNED_BYTE} * <li>{@link org.lwjgl.opengl.GL11#GL_SHORT GL_SHORT} * <li>{@link org.lwjgl.opengl.GL11#GL_UNSIGNED_SHORT GL_UNSIGNED_SHORT} * <li>{@link org.lwjgl.opengl.GL11#GL_INT GL_INT} * <li>{@link org.lwjgl.opengl.GL11#GL_UNSIGNED_INT GL_UNSIGNED_INT} * <li>{@link org.lwjgl.opengl.GL11#GL_FLOAT GL_FLOAT} * <li>{@link org.lwjgl.opengl.GL11#GL_2_BYTES GL_2_BYTES} * <li>{@link org.lwjgl.opengl.GL11#GL_3_BYTES GL_3_BYTES} * <li>{@link org.lwjgl.opengl.GL11#GL_4_BYTES GL_4_BYTES} * <li>{@link org.lwjgl.opengl.GL11#GL_DOUBLE GL_DOUBLE} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.PARAMETER}) public @interface GlDataType { } /** * The following are OpenGL texture constants. * <ul> * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_1D TEXTURE_1D} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_2D TEXTURE_2D} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_1D_ARRAY TEXTURE_1D_ARRAY} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_RECTANGLE TEXTURE_RECTANGLE} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_CUBE_MAP TEXTURE_CUBE_MAP} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_3D TEXTURE_3D} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_2D_ARRAY TEXTURE_2D_ARRAY} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_CUBE_MAP_ARRAY TEXTURE_CUBE_MAP_ARRAY} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_BUFFER TEXTURE_BUFFER} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_2D_MULTISAMPLE TEXTURE_2D_MULTISAMPLE} * <li>{@link org.lwjgl.opengl.GL11#TEXTURE_2D_MULTISAMPLE_ARRAY TEXTURE_2D_MULTISAMPLE_ARRAY} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.PARAMETER}) public @interface GlTextureFormat { } /** * Between {@link org.lwjgl.opengl.GL11#glBegin(int) glBegin} and * {@link org.lwjgl.opengl.GL11#glEnd() glEnd} all of * the following are acceptable. * <ul> * <li>{@link org.lwjgl.opengl.GL11 glVertex} * <li>{@link org.lwjgl.opengl.GL11 glColor} * <li>{@link org.lwjgl.opengl.GL14 glSecondaryColor} * <li>{@link org.lwjgl.opengl.GL11 glIndex} * <li>{@link org.lwjgl.opengl.GL11 glNormal} * <li>{@link org.lwjgl.opengl.GL14 glFogCoord} * <li>{@link org.lwjgl.opengl.GL11 glTexCoord} * <li>{@link org.lwjgl.opengl.GL13 glMultiTexCoord} * <li>{@link org.lwjgl.opengl.GL20 glVertexAttrib} * <li>{@link org.lwjgl.opengl.GL11 glEvalCoord} * <li>{@link org.lwjgl.opengl.GL11 glEvalPoint} * <li>{@link org.lwjgl.opengl.GL11#glArrayElement(int) glArrayElement} * <li>{@link org.lwjgl.opengl.GL11 glMaterial} * <li>{@link org.lwjgl.opengl.GL11 glEdgeFlag} * <li>{@link org.lwjgl.opengl.GL11#glCallList(int) glCallList} * <li>{@link org.lwjgl.opengl.GL11 glCallLists} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) public @interface GlBeginFunction { } /** * For GL buffer binding the following functions should * be applicable. To use the buffer functions you need to call * {@link org.lwjgl.opengl.GL15#glBindBuffer(int, int) glBindBuffer} * then the function don't forget to call * {@link org.lwjgl.opengl.GL15#glBindBuffer(int, int) glBindBuffer(int, 0)} * again when you are done. * <ul> * <li>{@link org.lwjgl.opengl.GL11 glVertexPointer} * <li>{@link org.lwjgl.opengl.GL11 glColorPointer} * <li>{@link org.lwjgl.opengl.GL14 glSecondaryColorPointer} * <li>{@link org.lwjgl.opengl.GL11 glIndexPointer} * <li>{@link org.lwjgl.opengl.GL11 glNormalPointer} * <li>{@link org.lwjgl.opengl.GL14 glFogCoordPointer} * <li>{@link org.lwjgl.opengl.GL11 glTexCoordPointer} * <li>{@link org.lwjgl.opengl.GL30 glVertexAttribPointer} * <li>{@link org.lwjgl.opengl.GL11#glEdgeFlagPointer(int, java.nio.ByteBuffer) glEdgeFlagPointer} * <li>{@link org.lwjgl.opengl.GL15 glBufferData} * <li>{@link org.lwjgl.opengl.GL15 glBufferSubData} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) public @interface GlBufferFunction { } /** * The Following constants are OpenGL buffer data targets. * <ul> * <li>{@link org.lwjgl.opengl.GL15#GL_ARRAY_BUFFER GL_ARRAY_BUFFER} * <li>{@link org.lwjgl.opengl.GL42#GL_ATOMIC_COUNTER_BUFFER GL_ATOMIC_COUNTER_BUFFER} * <li>{@link org.lwjgl.opengl.GL31#GL_COPY_READ_BUFFER GL_COPY_READ_BUFFER} * <li>{@link org.lwjgl.opengl.GL31#GL_COPY_WRITE_BUFFER GL_COPY_WRITE_BUFFER} * <li>{@link org.lwjgl.opengl.GL43#GL_DISPATCH_INDIRECT_BUFFER GL_DISPATCH_INDIRECT_BUFFER} * <li>{@link org.lwjgl.opengl.GL40#GL_DRAW_INDIRECT_BUFFER GL_DRAW_INDIRECT_BUFFER} * <li>{@link org.lwjgl.opengl.GL15#GL_ELEMENT_ARRAY_BUFFER GL_ELEMENT_ARRAY_BUFFER} * <li>{@link org.lwjgl.opengl.GL21#GL_PIXEL_PACK_BUFFER GL_PIXEL_PACK_BUFFER} * <li>{@link org.lwjgl.opengl.GL21#GL_PIXEL_UNPACK_BUFFER GL_PIXEL_UNPACK_BUFFER} * <li>{@link org.lwjgl.opengl.GL44#GL_QUERY_BUFFER GL_QUERY_BUFFER} * <li>{@link org.lwjgl.opengl.GL43#GL_SHADER_STORAGE_BUFFER GL_SHADER_STORAGE_BUFFER} * <li>{@link org.lwjgl.opengl.GL31#GL_TEXTURE_BUFFER GL_TEXTURE_BUFFER} * <li>{@link org.lwjgl.opengl.GL30#GL_TRANSFORM_FEEDBACK_BUFFER GL_TRANSFORM_FEEDBACK_BUFFER} * <li>{@link org.lwjgl.opengl.GL31#GL_UNIFORM_BUFFER GL_UNIFORM_BUFFER} * </ul> * @author Tyler Bucher * @see {@link org.lwjgl.opengl.GL15 glBufferData} */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.PARAMETER}) public @interface GlBufferTarget { } /** * For OpenGL Shaders the following functions are acceptable. * <ul> * <li>{@link org.lwjgl.opengl.GL20 glBindAttribLocation} * <li>{@link org.lwjgl.opengl.GL30 glBindFragDataLocation} * <li>{@link org.lwjgl.opengl.GL33 glBindFragDataLocationIndexed} * <li>{@link org.lwjgl.opengl.GL20 glGetActive} * <li>{@link org.lwjgl.opengl.GL31 glGetActive} * <li>{@link org.lwjgl.opengl.GL40 glGetActive} * <li>{@link org.lwjgl.opengl.GL20 glGetAttachedShaders} * <li>{@link org.lwjgl.opengl.GL20 glGetAttribLocation} * <li>{@link org.lwjgl.opengl.GL30 glGetFragDataLocation} * <li>{@link org.lwjgl.opengl.GL33 glGetFragDataIndex} * <li>{@link org.lwjgl.opengl.GL20 glGetProgram} * <li>{@link org.lwjgl.opengl.GL43 glGetProgram} * <li>{@link org.lwjgl.opengl.GL20 glGetShader} * <li>{@link org.lwjgl.opengl.GL41 glGetShader} * <li>{@link org.lwjgl.opengl.GL40 glGetSubroutine} * <li>{@link org.lwjgl.opengl.GL20 glGetUniform} * <li>{@link org.lwjgl.opengl.GL30 glGetUniform} * <li>{@link org.lwjgl.opengl.GL31 glGetUniform} * <li>{@link org.lwjgl.opengl.GL40 glGetUniform} * <li>{@link org.lwjgl.opengl.GL20 glUnifrom} * <li>{@link org.lwjgl.opengl.GL30 glUnifrom} * <li>{@link org.lwjgl.opengl.GL40 glUnifrom} * </ul> * @author Tyler Bucher */ @Retention(RetentionPolicy.SOURCE) public @interface GlShaderFunction { } }