package org.newdawn.slick.opengl.renderer;
import java.nio.ByteBuffer;
import java.nio.DoubleBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import org.lwjgl.opengl.GL11;
/**
* The description of the OpenGL functions used Slick. Any other rendering method will
* need to emulate these.
*
* @author kevin
*/
public interface SGL {
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_TEXTURE_2D = GL11.GL_TEXTURE_2D;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_RGBA = GL11.GL_RGBA;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_RGB = GL11.GL_RGB;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_UNSIGNED_BYTE = GL11.GL_UNSIGNED_BYTE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_LINEAR = GL11.GL_LINEAR;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_NEAREST = GL11.GL_NEAREST;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_POINT_SMOOTH = GL11.GL_POINT_SMOOTH;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_POLYGON_SMOOTH = GL11.GL_POLYGON_SMOOTH;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_LINE_SMOOTH = GL11.GL_LINE_SMOOTH;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_SCISSOR_TEST = GL11.GL_SCISSOR_TEST;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_MODULATE = GL11.GL_MODULATE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_TEXTURE_ENV = GL11.GL_TEXTURE_ENV;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_TEXTURE_ENV_MODE = GL11.GL_TEXTURE_ENV_MODE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_QUADS = GL11.GL_QUADS;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_POINTS = GL11.GL_POINTS;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_LINES = GL11.GL_LINES;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_LINE_STRIP = GL11.GL_LINE_STRIP;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_TRIANGLES = GL11.GL_TRIANGLES;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_TRIANGLE_FAN = GL11.GL_TRIANGLE_FAN;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_SRC_ALPHA = GL11.GL_SRC_ALPHA;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_ONE = GL11.GL_ONE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_ONE_MINUS_DST_ALPHA = GL11.GL_ONE_MINUS_DST_ALPHA;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_DST_ALPHA = GL11.GL_DST_ALPHA;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_ONE_MINUS_SRC_ALPHA = GL11.GL_ONE_MINUS_SRC_ALPHA;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_COMPILE = GL11.GL_COMPILE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_MAX_TEXTURE_SIZE = GL11.GL_MAX_TEXTURE_SIZE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_COLOR_BUFFER_BIT = GL11.GL_COLOR_BUFFER_BIT;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_DEPTH_BUFFER_BIT = GL11.GL_DEPTH_BUFFER_BIT;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_BLEND = GL11.GL_BLEND;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_COLOR_CLEAR_VALUE = GL11.GL_COLOR_CLEAR_VALUE;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_LINE_WIDTH = GL11.GL_LINE_WIDTH;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_CLIP_PLANE0 = GL11.GL_CLIP_PLANE0;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_CLIP_PLANE1 = GL11.GL_CLIP_PLANE1;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_CLIP_PLANE2 = GL11.GL_CLIP_PLANE2;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_CLIP_PLANE3 = GL11.GL_CLIP_PLANE3;
/** OpenGL Enum - @url http://www.opengl.org/documentation */
public static final int GL_COMPILE_AND_EXECUTE = GL11.GL_COMPILE_AND_EXECUTE;
/**
* Flush the current state of the renderer down to GL
*/
public void flush();
/**
* Initialise the display
*
* @param width The width of the display
* @param height The height of the display
*/
public void initDisplay(int width, int height);
/**
* Enter orthographic mode
*
* @param xsize The size of the ortho display
* @param ysize The size of the ortho display
*/
public void enterOrtho(int xsize, int ysize);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param red
* @param green
* @param blue
* @param alpha
*/
public void glClearColor(float red, float green, float blue, float alpha);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param plane
* @param buffer
*/
public void glClipPlane(int plane, DoubleBuffer buffer);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param x
* @param y
* @param width
* @param height
*/
public void glScissor(int x, int y, int width, int height);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param width
*/
public void glLineWidth(float width);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param value
*/
public void glClear(int value);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param red
* @param green
* @param blue
* @param alpha
*/
public void glColorMask(boolean red, boolean green, boolean blue, boolean alpha);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*/
public void glLoadIdentity();
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param id
* @param ret
*/
public void glGetInteger(int id, IntBuffer ret);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param id
* @param ret
*/
public void glGetFloat(int id, FloatBuffer ret);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param item
*/
public void glEnable(int item);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param item
*/
public void glDisable(int item);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param target
* @param id
*/
public void glBindTexture(int target, int id);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param target
* @param level
* @param format
* @param type
* @param pixels
*/
public void glGetTexImage(int target, int level, int format, int type, ByteBuffer pixels);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param buffer
*/
public void glDeleteTextures(IntBuffer buffer);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param r
* @param g
* @param b
* @param a
*/
public void glColor4f(float r, float g, float b, float a);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param u
* @param v
*/
public void glTexCoord2f(float u, float v);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param x
* @param y
* @param z
*/
public void glVertex3f(float x, float y, float z);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param x
* @param y
*/
public void glVertex2f(float x, float y);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param angle
* @param x
* @param y
* @param z
*/
public void glRotatef(float angle, float x, float y, float z);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param x
* @param y
* @param z
*/
public void glTranslatef(float x, float y, float z);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param geomType
*/
public void glBegin(int geomType);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*/
public void glEnd();
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param target
* @param mode
* @param value
*/
public void glTexEnvi(int target, int mode, int value);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param size
*/
public void glPointSize(float size);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param x
* @param y
* @param z
*/
public void glScalef(float x, float y, float z);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*/
public void glPushMatrix();
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*/
public void glPopMatrix();
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param src
* @param dest
*/
public void glBlendFunc(int src, int dest);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param count
* @return The index of the lists
*/
public int glGenLists(int count);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param id
* @param option
*/
public void glNewList(int id, int option);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*/
public void glEndList();
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param id
*/
public void glCallList(int id);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param target
* @param level
* @param internalFormat
* @param x
* @param y
* @param width
* @param height
* @param border
*/
public void glCopyTexImage2D(int target, int level, int internalFormat,
int x, int y, int width, int height, int border);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param x
* @param y
* @param width
* @param height
* @param format
* @param type
* @param pixels
*/
public void glReadPixels(int x, int y, int width, int height, int format, int type,
ByteBuffer pixels);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param target
* @param param
* @param value
*/
public void glTexParameteri(int target, int param, int value);
/**
* Get the current colour being rendered
*
* @return The current colour being rendered
*/
public float[] getCurrentColor();
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param list
* @param count
*/
public void glDeleteLists(int list, int count);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param mask
*/
public void glDepthMask(boolean mask);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param value
*/
public void glClearDepth(float value);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param func
*/
public void glDepthFunc(int func);
/**
* Set the scaling we'll apply to any colour binds in this renderer
*
* @param alphaScale The scale to apply to any colour binds
*/
public void setGlobalAlphaScale(float alphaScale);
/**
* OpenGL Method - @url http://www.opengl.org/documentation/
*
* @param buffer
*/
public void glLoadMatrix(FloatBuffer buffer);
}