diff --git a/demos/gl.d b/demos/gl.d deleted file mode 100644 index 84423ffb..00000000 --- a/demos/gl.d +++ /dev/null @@ -1,6 +0,0 @@ -module gl; - -public { - import gltypes; - import glfuncs; -} diff --git a/demos/glfuncs.d b/demos/glfuncs.d deleted file mode 100644 index 4f4567c4..00000000 --- a/demos/glfuncs.d +++ /dev/null @@ -1,406 +0,0 @@ -/* - * Copyright (c) 2004-2006 Derelict Developers - * 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 names 'Derelict', 'DerelictGL', 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. - * - * Converted to a static binding by Tomas Lindquist Olsen - */ -module glfuncs; - -import gltypes; - -extern(System): - -// Miscellaneous -void glClearIndex(GLfloat c); -void glClearColor(GLclampf,GLclampf,GLclampf,GLclampf); -void glClear(GLbitfield); -void glIndexMask(GLuint); -void glColorMask(GLboolean,GLboolean,GLboolean,GLboolean); -void glAlphaFunc(GLenum,GLclampf); -void glBlendFunc(GLenum,GLenum); -void glLogicOp(GLenum); -void glCullFace(GLenum); -void glFrontFace(GLenum); -void glPointSize(GLfloat); -void glLineWidth(GLfloat); -void glLineStipple(GLint,GLushort); -void glPolygonMode(GLenum,GLenum); -void glPolygonOffset(GLfloat,GLfloat); -void glPolygonStipple(GLubyte*); -void glGetPolygonStipple(GLubyte*); -void glEdgeFlag(GLboolean); -void glEdgeFlagv(GLboolean*); -void glScissor(GLint,GLint,GLsizei,GLsizei); -void glClipPlane(GLenum,GLdouble*); -void glGetClipPlane(GLenum,GLdouble*); -void glDrawBuffer(GLenum); -void glReadBuffer(GLenum); -void glEnable(GLenum); -void glDisable(GLenum); -GLboolean glIsEnabled(GLenum); -void glEnableClientState(GLenum); -void glDisableClientState(GLenum); -void glGetBooleanv(GLenum,GLboolean*); -void glGetDoublev(GLenum,GLdouble*); -void glGetFloatv(GLenum,GLfloat*); -void glGetIntegerv(GLenum,GLint*); -void glPushAttrib(GLbitfield); -void glPopAttrib(); -void glPushClientAttrib(GLbitfield); -void glPopClientAttrib(); -GLint glRenderMode(GLenum); -GLenum glGetError(); -GLchar* glGetString(GLenum); -void glFinish(); -void glFlush(); -void glHint(GLenum,GLenum); - -// Depth Buffer -void glClearDepth(GLclampd); -void glDepthFunc(GLenum); -void glDepthMask(GLboolean); -void glDepthRange(GLclampd,GLclampd); - -// Accumulation Buffer -void glClearAccum(GLfloat,GLfloat,GLfloat,GLfloat); -void glAccum(GLenum,GLfloat); - -// Transformation -void glMatrixMode(GLenum); -void glOrtho(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble); -void glFrustum(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble); -void glViewport(GLint,GLint,GLsizei,GLsizei); -void glPushMatrix(); -void glPopMatrix(); -void glLoadIdentity(); -void glLoadMatrixd(GLdouble*); -void glLoadMatrixf(GLfloat*); -void glMultMatrixd(GLdouble*); -void glMultMatrixf(GLfloat*); -void glRotated(GLdouble,GLdouble,GLdouble,GLdouble); -void glRotatef(GLfloat,GLfloat,GLfloat,GLfloat); -void glScaled(GLdouble,GLdouble,GLdouble); -void glScalef(GLfloat,GLfloat,GLfloat); -void glTranslated(GLdouble,GLdouble,GLdouble); -void glTranslatef(GLfloat,GLfloat,GLfloat); - -// Display Lists -GLboolean glIsList(GLuint); -void glDeleteLists(GLuint,GLsizei); -GLuint glGenLists(GLsizei); -void glNewList(GLuint,GLenum); -void glEndList(); -void glCallList(GLuint); -void glCallLists(GLsizei,GLenum,GLvoid*); -void glListBase(GLuint); - -// Drawing Functions -void glBegin(GLenum); -void glEnd(); -void glVertex2d(GLdouble,GLdouble); -void glVertex2f(GLfloat,GLfloat); -void glVertex2i(GLint,GLint); -void glVertex2s(GLshort,GLshort); -void glVertex3d(GLdouble,GLdouble,GLdouble); -void glVertex3f(GLfloat,GLfloat,GLfloat); -void glVertex3i(GLint,GLint,GLint); -void glVertex3s(GLshort,GLshort,GLshort); -void glVertex4d(GLdouble,GLdouble,GLdouble,GLdouble); -void glVertex4f(GLfloat,GLfloat,GLfloat,GLfloat); -void glVertex4i(GLint,GLint,GLint,GLint); -void glVertex4s(GLshort,GLshort,GLshort,GLshort); -void glVertex2dv(GLdouble*); -void glVertex2fv(GLfloat*); -void glVertex2iv(GLint*); -void glVertex2sv(GLshort*); -void glVertex3dv(GLdouble*); -void glVertex3fv(GLfloat*); -void glVertex3iv(GLint*); -void glVertex3sv(GLshort*); -void glVertex4dv(GLdouble*); -void glVertex4fv(GLfloat*); -void glVertex4iv(GLint*); -void glVertex4sv(GLshort*); -void glNormal3b(GLbyte,GLbyte,GLbyte); -void glNormal3d(GLdouble,GLdouble,GLdouble); -void glNormal3f(GLfloat,GLfloat,GLfloat); -void glNormal3i(GLint,GLint,GLint); -void glNormal3s(GLshort,GLshort,GLshort); -void glNormal3bv(GLbyte*); -void glNormal3dv(GLdouble*); -void glNormal3fv(GLfloat*); -void glNormal3iv(GLint*); -void glNormal3sv(GLshort*); -void glIndexd(GLdouble); -void glIndexf(GLfloat); -void glIndexi(GLint); -void glIndexs(GLshort); -void glIndexub(GLubyte); -void glIndexdv(GLdouble*); -void glIndexfv(GLfloat*); -void glIndexiv(GLint*); -void glIndexsv(GLshort*); -void glIndexubv(GLubyte*); -void glColor3b(GLbyte,GLbyte,GLbyte); -void glColor3d(GLdouble,GLdouble,GLdouble); -void glColor3f(GLfloat,GLfloat,GLfloat); -void glColor3i(GLint,GLint,GLint); -void glColor3s(GLshort,GLshort,GLshort); -void glColor3ub(GLubyte,GLubyte,GLubyte); -void glColor3ui(GLuint,GLuint,GLuint); -void glColor3us(GLushort,GLushort,GLushort); -void glColor4b(GLbyte,GLbyte,GLbyte,GLbyte); -void glColor4d(GLdouble,GLdouble,GLdouble,GLdouble); -void glColor4f(GLfloat,GLfloat,GLfloat,GLfloat); -void glColor4i(GLint,GLint,GLint,GLint); -void glColor4s(GLshort,GLshort,GLshort,GLshort); -void glColor4ub(GLubyte,GLubyte,GLubyte,GLubyte); -void glColor4ui(GLuint,GLuint,GLuint,GLuint); -void glColor4us(GLushort,GLushort,GLushort,GLushort); -void glColor3bv(GLubyte*); -void glColor3dv(GLdouble*); -void glColor3fv(GLfloat*); -void glColor3iv(GLint*); -void glColor3sv(GLshort*); -void glColor3ubv(GLubyte*); -void glColor3uiv(GLuint*); -void glColor3usv(GLushort*); -void glColor4bv(GLbyte*); -void glColor4dv(GLdouble*); -void glColor4fv(GLfloat*); -void glColor4iv(GLint*); -void glColor4sv(GLshort*); -void glColor4ubv(GLubyte*); -void glColor4uiv(GLuint*); -void glColor4usv(GLushort); -void glTexCoord1d(GLdouble); -void glTexCoord1f(GLfloat); -void glTexCoord1i(GLint); -void glTexCoord1s(GLshort); -void glTexCoord2d(GLdouble,GLdouble); -void glTexCoord2f(GLfloat,GLfloat); -void glTexCoord2i(GLint,GLint); -void glTexCoord2s(GLshort,GLshort); -void glTexCoord3d(GLdouble,GLdouble,GLdouble); -void glTexCoord3f(GLfloat,GLfloat,GLfloat); -void glTexCoord3i(GLint,GLint,GLint); -void glTexCoord3s(GLshort,GLshort,GLshort); -void glTexCoord4d(GLdouble,GLdouble,GLdouble,GLdouble); -void glTexCoord4f(GLfloat,GLfloat,GLfloat,GLfloat); -void glTexCoord4i(GLint,GLint,GLint,GLint); -void glTexCoord4s(GLshort,GLshort,GLshort,GLshort); -void glTexCoord1dv(GLdouble*); -void glTexCoord1fv(GLfloat*); -void glTexCoord1iv(GLint*); -void glTexCoord1sv(GLshort*); -void glTexCoord2dv(GLdouble*); -void glTexCoord2fv(GLfloat*); -void glTexCoord2iv(GLint*); -void glTexCoord2sv(GLshort*); -void glTexCoord3dv(GLdouble*); -void glTexCoord3fv(GLfloat*); -void glTexCoord3iv(GLint*); -void glTexCoord3sv(GLshort*); -void glTexCoord4dv(GLdouble*); -void glTexCoord4fv(GLfloat*); -void glTexCoord4iv(GLint*); -void glTexCoord4sv(GLshort*); -void glRasterPos2d(GLdouble,GLdouble); -void glRasterPos2f(GLfloat,GLfloat); -void glRasterPos2i(GLint,GLint); -void glRasterPos2s(GLshort,GLshort); -void glRasterPos3d(GLdouble,GLdouble,GLdouble); -void glRasterPos3f(GLfloat,GLfloat,GLfloat); -void glRasterPos3i(GLint,GLint,GLint); -void glRasterPos3s(GLshort,GLshort,GLshort); -void glRasterPos4d(GLdouble,GLdouble,GLdouble,GLdouble); -void glRasterPos4f(GLfloat,GLfloat,GLfloat,GLfloat); -void glRasterPos4i(GLint,GLint,GLint,GLint); -void glRasterPos4s(GLshort,GLshort,GLshort,GLshort); -void glRasterPos2dv(GLdouble*); -void glRasterPos2fv(GLfloat*); -void glRasterPos2iv(GLint*); -void glRasterPos2sv(GLshort*); -void glRasterPos3dv(GLdouble*); -void glRasterPos3fv(GLfloat*); -void glRasterPos3iv(GLint*); -void glRasterPos3sv(GLshort*); -void glRasterPos4dv(GLdouble*); -void glRasterPos4fv(GLfloat*); -void glRasterPos4iv(GLint*); -void glRasterPos4sv(GLshort*); -void glRectd(GLdouble,GLdouble,GLdouble,GLdouble); -void glRectf(GLfloat,GLfloat,GLfloat,GLfloat); -void glRecti(GLint,GLint,GLint,GLint); -void glRects(GLshort,GLshort,GLshort,GLshort); -void glRectdv(GLdouble*); -void glRectfv(GLfloat*); -void glRectiv(GLint*); -void glRectsv(GLshort*); - -// Lighting -void glShadeModel(GLenum); -void glLightf(GLenum,GLenum,GLfloat); -void glLighti(GLenum,GLenum,GLint); -void glLightfv(GLenum,GLenum,GLfloat*); -void glLightiv(GLenum,GLenum,GLint*); -void glGetLightfv(GLenum,GLenum,GLfloat*); -void glGetLightiv(GLenum,GLenum,GLint*); -void glLightModelf(GLenum,GLfloat); -void glLightModeli(GLenum,GLint); -void glLightModelfv(GLenum,GLfloat*); -void glLightModeliv(GLenum,GLint*); -void glMaterialf(GLenum,GLenum,GLfloat); -void glMateriali(GLenum,GLenum,GLint); -void glMaterialfv(GLenum,GLenum,GLfloat*); -void glMaterialiv(GLenum,GLenum,GLint*); -void glGetMaterialfv(GLenum,GLenum,GLfloat*); -void glGetMaterialiv(GLenum,GLenum,GLint*); -void glColorMaterial(GLenum,GLenum); - -// Raster functions -void glPixelZoom(GLfloat,GLfloat); -void glPixelStoref(GLenum,GLfloat); -void glPixelStorei(GLenum,GLint); -void glPixelTransferf(GLenum,GLfloat); -void glPixelTransferi(GLenum,GLint); -void glPixelMapfv(GLenum,GLint,GLfloat*); -void glPixelMapuiv(GLenum,GLint,GLuint*); -void glPixelMapusv(GLenum,GLint,GLushort*); -void glGetPixelMapfv(GLenum,GLfloat*); -void glGetPixelMapuiv(GLenum,GLuint*); -void glGetPixelMapusv(GLenum,GLushort*); -void glBitmap(GLsizei,GLsizei,GLfloat,GLfloat,GLfloat,GLfloat,GLubyte*); -void glReadPixels(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLvoid*); -void glDrawPixels(GLsizei,GLsizei,GLenum,GLenum,GLvoid*); -void glCopyPixels(GLint,GLint,GLsizei,GLsizei,GLenum); - -// Stenciling -void glStencilFunc(GLenum,GLint,GLuint); -void glStencilMask(GLuint); -void glStencilOp(GLenum,GLenum,GLenum); -void glClearStencil(GLint); - -// Texture mapping -void glTexGend(GLenum,GLenum,GLdouble); -void glTexGenf(GLenum,GLenum,GLfloat); -void glTexGeni(GLenum,GLenum,GLint); -void glTexGendv(GLenum,GLenum,GLdouble*); -void glTexGenfv(GLenum,GLenum,GLfloat*); -void glTexGeniv(GLenum,GLenum,GLint*); -void glGetTexGendv(GLenum,GLenum,GLdouble*); -void glGetTexGenfv(GLenum,GLenum,GLfloat*); -void glGetTexGeniv(GLenum,GLenum,GLint*); -void glTexEnvf(GLenum,GLenum,GLfloat); -void glTexEnvi(GLenum,GLenum,GLint); -void glTexEnvfv(GLenum,GLenum,GLfloat*); -void glTexEnviv(GLenum,GLenum,GLint*); -void glGetTexEnvfv(GLenum,GLenum,GLfloat*); -void glGetTexEnviv(GLenum,GLenum,GLint*); -void glTexParameterf(GLenum,GLenum,GLfloat); -void glTexParameteri(GLenum,GLenum,GLint); -void glTexParameterfv(GLenum,GLenum,GLfloat*); -void glTexParameteriv(GLenum,GLenum,GLint*); -void glGetTexParameterfv(GLenum,GLenum,GLfloat*); -void glGetTexParameteriv(GLenum,GLenum,GLint*); -void glGetTexLevelParameterfv(GLenum,GLint,GLenum,GLfloat*); -void glGetTexLevelParameteriv(GLenum,GLint,GLenum,GLint*); -void glTexImage1D(GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,GLvoid*); -void glTexImage2D(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,GLvoid*); -void glGetTexImage(GLenum,GLint,GLenum,GLenum,GLvoid*); - -// Evaluators -void glMap1d(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble*); -void glMap1f(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat*); -void glMap2d(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,GLdouble*); -void glMap2f(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,GLfloat*); -void glGetMapdv(GLenum,GLenum,GLdouble*); -void glGetMapfv(GLenum,GLenum,GLfloat*); -void glGetMapiv(GLenum,GLenum,GLint*); -void glEvalCoord1d(GLdouble); -void glEvalCoord1f(GLfloat); -void glEvalCoord1dv(GLdouble*); -void glEvalCoord1fv(GLfloat*); -void glEvalCoord2d(GLdouble,GLdouble); -void glEvalCoord2f(GLfloat,GLfloat); -void glEvalCoord2dv(GLdouble*); -void glEvalCoord2fv(GLfloat*); -void glMapGrid1d(GLint,GLdouble,GLdouble); -void glMapGrid1f(GLint,GLfloat,GLfloat); -void glMapGrid2d(GLint,GLdouble,GLdouble,GLint,GLdouble,GLdouble); -void glMapGrid2f(GLint,GLfloat,GLfloat,GLint,GLfloat,GLfloat); -void glEvalPoint1(GLint); -void glEvalPoint2(GLint,GLint); -void glEvalMesh1(GLenum,GLint,GLint); -void glEvalMesh2(GLenum,GLint,GLint,GLint,GLint); - -// Fog -void glFogf(GLenum,GLfloat); -void glFogi(GLenum,GLint); -void glFogfv(GLenum,GLfloat*); -void glFogiv(GLenum,GLint*); - -// Selection and Feedback -void glFeedbackBuffer(GLsizei,GLenum,GLfloat*); -void glPassThrough(GLfloat); -void glSelectBuffer(GLsizei,GLuint*); -void glInitNames(); -void glLoadName(GLuint); -void glPushName(GLuint); -void glPopName(); - -// texture objects -void glGenTextures(GLsizei,GLuint*); -void glDeleteTextures(GLsizei,GLuint*); -void glBindTexture(GLenum,GLuint); -void glPrioritizeTextures(GLsizei,GLuint*,GLclampf*); -GLboolean glAreTexturesResident(GLsizei,GLuint*,GLboolean*); -GLboolean glIsTexture(GLuint); - -// texture mapping -void glTexSubImage1D(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,GLvoid*); -void glTexSubImage2D(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLvoid*); -void glCopyTexImage1D(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint); -void glCopyTexImage2D(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint); -void glCopyTexSubImage1D(GLenum,GLint,GLint,GLint,GLint,GLsizei); -void glCopyTexSubImage2D(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei); - -// vertex arrays -void glVertexPointer(GLint,GLenum,GLsizei,GLvoid*); -void glNormalPointer(GLenum,GLsizei,GLvoid*); -void glColorPointer(GLint,GLenum,GLsizei,GLvoid*); -void glIndexPointer(GLenum,GLsizei,GLvoid*); -void glTexCoordPointer(GLint,GLenum,GLsizei,GLvoid*); -void glEdgeFlagPointer(GLsizei,GLvoid*); -void glGetPointerv(GLenum,GLvoid**); -void glArrayElement(GLint); -void glDrawArrays(GLenum,GLint,GLsizei); -void glDrawElements(GLenum,GLsizei,GLenum,GLvoid*); -void glInterleavedArrays(GLenum,GLsizei,GLvoid*); diff --git a/demos/gltypes.d b/demos/gltypes.d deleted file mode 100644 index 1d079739..00000000 --- a/demos/gltypes.d +++ /dev/null @@ -1,665 +0,0 @@ -/* - * Copyright (c) 2004-2006 Derelict Developers - * 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 names 'Derelict', 'DerelictGL', 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. - * - * Converted to a static binding by Tomas Lindquist Olsen - */ -module gltypes; - -version(build) pragma(link,"GL"); - -alias uint GLenum; -alias ubyte GLboolean; -alias uint GLbitfield; -alias void GLvoid; -alias byte GLbyte; -alias short GLshort; -alias int GLint; -alias ubyte GLubyte; -alias ushort GLushort; -alias uint GLuint; -alias int GLsizei; -alias float GLfloat; -alias float GLclampf; -alias double GLdouble; -alias double GLclampd; -alias char GLchar; -alias ptrdiff_t GLintptr; -alias ptrdiff_t GLsizeiptr; - -// Boolean values -enum : GLboolean { - GL_FALSE = 0x0, - GL_TRUE = 0x1, -} - -enum : GLenum { - // Data types - GL_BYTE = 0x1400, - GL_UNSIGNED_BYTE = 0x1401, - GL_SHORT = 0x1402, - GL_UNSIGNED_SHORT = 0x1403, - GL_INT = 0x1404, - GL_UNSIGNED_INT = 0x1405, - GL_FLOAT = 0x1406, - GL_DOUBLE = 0x140A, - GL_2_BYTES = 0x1407, - GL_3_BYTES = 0x1408, - GL_4_BYTES = 0x1409, - - // Primitives - GL_POINTS = 0x0000, - GL_LINES = 0x0001, - GL_LINE_LOOP = 0x0002, - GL_LINE_STRIP = 0x0003, - GL_TRIANGLES = 0x0004, - GL_TRIANGLE_STRIP = 0x0005, - GL_TRIANGLE_FAN = 0x0006, - GL_QUADS = 0x0007, - GL_QUAD_STRIP = 0x0008, - GL_POLYGON = 0x0009, - - // Vertex Arrays - GL_VERTEX_ARRAY = 0x8074, - GL_NORMAL_ARRAY = 0x8075, - GL_COLOR_ARRAY = 0x8076, - GL_INDEX_ARRAY = 0x8077, - GL_TEXTURE_COORD_ARRAY = 0x8078, - GL_EDGE_FLAG_ARRAY = 0x8079, - GL_VERTEX_ARRAY_SIZE = 0x807A, - GL_VERTEX_ARRAY_TYPE = 0x807B, - GL_VERTEX_ARRAY_STRIDE = 0x807C, - GL_NORMAL_ARRAY_TYPE = 0x807E, - GL_NORMAL_ARRAY_STRIDE = 0x807F, - GL_COLOR_ARRAY_SIZE = 0x8081, - GL_COLOR_ARRAY_TYPE = 0x8082, - GL_COLOR_ARRAY_STRIDE = 0x8083, - GL_INDEX_ARRAY_TYPE = 0x8085, - GL_INDEX_ARRAY_STRIDE = 0x8086, - GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, - GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, - GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, - GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, - GL_VERTEX_ARRAY_POINTER = 0x808E, - GL_NORMAL_ARRAY_POINTER = 0x808F, - GL_COLOR_ARRAY_POINTER = 0x8090, - GL_INDEX_ARRAY_POINTER = 0x8091, - GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, - GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, - GL_V2F = 0x2A20, - GL_V3F = 0x2A21, - GL_C4UB_V2F = 0x2A22, - GL_C4UB_V3F = 0x2A23, - GL_C3F_V3F = 0x2A24, - GL_N3F_V3F = 0x2A25, - GL_C4F_N3F_V3F = 0x2A26, - GL_T2F_V3F = 0x2A27, - GL_T4F_V4F = 0x2A28, - GL_T2F_C4UB_V3F = 0x2A29, - GL_T2F_C3F_V3F = 0x2A2A, - GL_T2F_N3F_V3F = 0x2A2B, - GL_T2F_C4F_N3F_V3F = 0x2A2C, - GL_T4F_C4F_N3F_V4F = 0x2A2D, - - // Matrix Mode - GL_MATRIX_MODE = 0x0BA0, - GL_MODELVIEW = 0x1700, - GL_PROJECTION = 0x1701, - GL_TEXTURE = 0x1702, - - // Points - GL_POINT_SMOOTH = 0x0B10, - GL_POINT_SIZE = 0x0B11, - GL_POINT_SIZE_GRANULARITY = 0x0B13, - GL_POINT_SIZE_RANGE = 0x0B12, - - // Lines - GL_LINE_SMOOTH = 0x0B20, - GL_LINE_STIPPLE = 0x0B24, - GL_LINE_STIPPLE_PATTERN = 0x0B25, - GL_LINE_STIPPLE_REPEAT = 0x0B26, - GL_LINE_WIDTH = 0x0B21, - GL_LINE_WIDTH_GRANULARITY = 0x0B23, - GL_LINE_WIDTH_RANGE = 0x0B22, - - // Polygons - GL_POINT = 0x1B00, - GL_LINE = 0x1B01, - GL_FILL = 0x1B02, - GL_CW = 0x0900, - GL_CCW = 0x0901, - GL_FRONT = 0x0404, - GL_BACK = 0x0405, - GL_POLYGON_MODE = 0x0B40, - GL_POLYGON_SMOOTH = 0x0B41, - GL_POLYGON_STIPPLE = 0x0B42, - GL_EDGE_FLAG = 0x0B43, - GL_CULL_FACE = 0x0B44, - GL_CULL_FACE_MODE = 0x0B45, - GL_FRONT_FACE = 0x0B46, - GL_POLYGON_OFFSET_FACTOR = 0x8038, - GL_POLYGON_OFFSET_UNITS = 0x2A00, - GL_POLYGON_OFFSET_POINT = 0x2A01, - GL_POLYGON_OFFSET_LINE = 0x2A02, - GL_POLYGON_OFFSET_FILL = 0x8037, - - // Display Lists - GL_COMPILE = 0x1300, - GL_COMPILE_AND_EXECUTE = 0x1301, - GL_LIST_BASE = 0x0B32, - GL_LIST_INDEX = 0x0B33, - GL_LIST_MODE = 0x0B30, - - // Depth buffer - GL_NEVER = 0x0200, - GL_LESS = 0x0201, - GL_EQUAL = 0x0202, - GL_LEQUAL = 0x0203, - GL_GREATER = 0x0204, - GL_NOTEQUAL = 0x0205, - GL_GEQUAL = 0x0206, - GL_ALWAYS = 0x0207, - GL_DEPTH_TEST = 0x0B71, - GL_DEPTH_BITS = 0x0D56, - GL_DEPTH_CLEAR_VALUE = 0x0B73, - GL_DEPTH_FUNC = 0x0B74, - GL_DEPTH_RANGE = 0x0B70, - GL_DEPTH_WRITEMASK = 0x0B72, - GL_DEPTH_COMPONENT = 0x1902, - - // Lighting - GL_LIGHTING = 0x0B50, - GL_LIGHT0 = 0x4000, - GL_LIGHT1 = 0x4001, - GL_LIGHT2 = 0x4002, - GL_LIGHT3 = 0x4003, - GL_LIGHT4 = 0x4004, - GL_LIGHT5 = 0x4005, - GL_LIGHT6 = 0x4006, - GL_LIGHT7 = 0x4007, - GL_SPOT_EXPONENT = 0x1205, - GL_SPOT_CUTOFF = 0x1206, - GL_CONSTANT_ATTENUATION = 0x1207, - GL_LINEAR_ATTENUATION = 0x1208, - GL_QUADRATIC_ATTENUATION = 0x1209, - GL_AMBIENT = 0x1200, - GL_DIFFUSE = 0x1201, - GL_SPECULAR = 0x1202, - GL_SHININESS = 0x1601, - GL_EMISSION = 0x1600, - GL_POSITION = 0x1203, - GL_SPOT_DIRECTION = 0x1204, - GL_AMBIENT_AND_DIFFUSE = 0x1602, - GL_COLOR_INDEXES = 0x1603, - GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, - GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, - GL_LIGHT_MODEL_AMBIENT = 0x0B53, - GL_FRONT_AND_BACK = 0x0408, - GL_SHADE_MODEL = 0x0B54, - GL_FLAT = 0x1D00, - GL_SMOOTH = 0x1D01, - GL_COLOR_MATERIAL = 0x0B57, - GL_COLOR_MATERIAL_FACE = 0x0B55, - GL_COLOR_MATERIAL_PARAMETER = 0x0B56, - GL_NORMALIZE = 0x0BA1, - - // User clipping planes - GL_CLIP_PLANE0 = 0x3000, - GL_CLIP_PLANE1 = 0x3001, - GL_CLIP_PLANE2 = 0x3002, - GL_CLIP_PLANE3 = 0x3003, - GL_CLIP_PLANE4 = 0x3004, - GL_CLIP_PLANE5 = 0x3005, - - // Accumulation buffer - GL_ACCUM_RED_BITS = 0x0D58, - GL_ACCUM_GREEN_BITS = 0x0D59, - GL_ACCUM_BLUE_BITS = 0x0D5A, - GL_ACCUM_ALPHA_BITS = 0x0D5B, - GL_ACCUM_CLEAR_VALUE = 0x0B80, - GL_ACCUM = 0x0100, - GL_ADD = 0x0104, - GL_LOAD = 0x0101, - GL_MULT = 0x0103, - GL_RETURN = 0x0102, - - // Alpha testing - GL_ALPHA_TEST = 0x0BC0, - GL_ALPHA_TEST_REF = 0x0BC2, - GL_ALPHA_TEST_FUNC = 0x0BC1, - - // Blending - GL_BLEND = 0x0BE2, - GL_BLEND_SRC = 0x0BE1, - GL_BLEND_DST = 0x0BE0, - GL_ZERO = 0x0, - GL_ONE = 0x1, - GL_SRC_COLOR = 0x0300, - GL_ONE_MINUS_SRC_COLOR = 0x0301, - GL_SRC_ALPHA = 0x0302, - GL_ONE_MINUS_SRC_ALPHA = 0x0303, - GL_DST_ALPHA = 0x0304, - GL_ONE_MINUS_DST_ALPHA = 0x0305, - GL_DST_COLOR = 0x0306, - GL_ONE_MINUS_DST_COLOR = 0x0307, - GL_SRC_ALPHA_SATURATE = 0x0308, - GL_CONSTANT_COLOR = 0x8001, - GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, - GL_CONSTANT_ALPHA = 0x8003, - GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, - - // Render Mode - GL_FEEDBACK = 0x1C01, - GL_RENDER = 0x1C00, - GL_SELECT = 0x1C02, - - // Feedback - GL_2D = 0x0600, - GL_3D = 0x0601, - GL_3D_COLOR = 0x0602, - GL_3D_COLOR_TEXTURE = 0x0603, - GL_4D_COLOR_TEXTURE = 0x0604, - GL_POINT_TOKEN = 0x0701, - GL_LINE_TOKEN = 0x0702, - GL_LINE_RESET_TOKEN = 0x0707, - GL_POLYGON_TOKEN = 0x0703, - GL_BITMAP_TOKEN = 0x0704, - GL_DRAW_PIXEL_TOKEN = 0x0705, - GL_COPY_PIXEL_TOKEN = 0x0706, - GL_PASS_THROUGH_TOKEN = 0x0700, - GL_FEEDBACK_BUFFER_POINTER = 0x0DF0, - GL_FEEDBACK_BUFFER_SIZE = 0x0DF1, - GL_FEEDBACK_BUFFER_TYPE = 0x0DF2, - - // Selection - GL_SELECTION_BUFFER_POINTER = 0x0DF3, - GL_SELECTION_BUFFER_SIZE = 0x0DF4, - - // Fog - GL_FOG = 0x0B60, - GL_FOG_MODE = 0x0B65, - GL_FOG_DENSITY = 0x0B62, - GL_FOG_COLOR = 0x0B66, - GL_FOG_INDEX = 0x0B61, - GL_FOG_START = 0x0B63, - GL_FOG_END = 0x0B64, - GL_LINEAR = 0x2601, - GL_EXP = 0x0800, - GL_EXP2 = 0x0801, - - // Logic Ops - GL_LOGIC_OP = 0x0BF1, - GL_INDEX_LOGIC_OP = 0x0BF1, - GL_COLOR_LOGIC_OP = 0x0BF2, - GL_LOGIC_OP_MODE = 0x0BF0, - GL_CLEAR = 0x1500, - GL_SET = 0x150F, - GL_COPY = 0x1503, - GL_COPY_INVERTED = 0x150C, - GL_NOOP = 0x1505, - GL_INVERT = 0x150A, - GL_AND = 0x1501, - GL_NAND = 0x150E, - GL_OR = 0x1507, - GL_NOR = 0x1508, - GL_XOR = 0x1506, - GL_EQUIV = 0x1509, - GL_AND_REVERSE = 0x1502, - GL_AND_INVERTED = 0x1504, - GL_OR_REVERSE = 0x150B, - GL_OR_INVERTED = 0x150D, - - // Stencil - GL_STENCIL_TEST = 0x0B90, - GL_STENCIL_WRITEMASK = 0x0B98, - GL_STENCIL_BITS = 0x0D57, - GL_STENCIL_FUNC = 0x0B92, - GL_STENCIL_VALUE_MASK = 0x0B93, - GL_STENCIL_REF = 0x0B97, - GL_STENCIL_FAIL = 0x0B94, - GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, - GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, - GL_STENCIL_CLEAR_VALUE = 0x0B91, - GL_STENCIL_INDEX = 0x1901, - GL_KEEP = 0x1E00, - GL_REPLACE = 0x1E01, - GL_INCR = 0x1E02, - GL_DECR = 0x1E03, - - // Buffers, Pixel Drawing/Reading - GL_NONE = 0x0, - GL_LEFT = 0x0406, - GL_RIGHT = 0x0407, - GL_FRONT_LEFT = 0x0400, - GL_FRONT_RIGHT = 0x0401, - GL_BACK_LEFT = 0x0402, - GL_BACK_RIGHT = 0x0403, - GL_AUX0 = 0x0409, - GL_AUX1 = 0x040A, - GL_AUX2 = 0x040B, - GL_AUX3 = 0x040C, - GL_COLOR_INDEX = 0x1900, - GL_RED = 0x1903, - GL_GREEN = 0x1904, - GL_BLUE = 0x1905, - GL_ALPHA = 0x1906, - GL_LUMINANCE = 0x1909, - GL_LUMINANCE_ALPHA = 0x190A, - GL_ALPHA_BITS = 0x0D55, - GL_RED_BITS = 0x0D52, - GL_GREEN_BITS = 0x0D53, - GL_BLUE_BITS = 0x0D54, - GL_INDEX_BITS = 0x0D51, - GL_SUBPIXEL_BITS = 0x0D50, - GL_AUX_BUFFERS = 0x0C00, - GL_READ_BUFFER = 0x0C02, - GL_DRAW_BUFFER = 0x0C01, - GL_DOUBLEBUFFER = 0x0C32, - GL_STEREO = 0x0C33, - GL_BITMAP = 0x1A00, - GL_COLOR = 0x1800, - GL_DEPTH = 0x1801, - GL_STENCIL = 0x1802, - GL_DITHER = 0x0BD0, - GL_RGB = 0x1907, - GL_RGBA = 0x1908, - - // Implementation limits - GL_MAX_LIST_NESTING = 0x0B31, - GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, - GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, - GL_MAX_NAME_STACK_DEPTH = 0x0D37, - GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, - GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, - GL_MAX_EVAL_ORDER = 0x0D30, - GL_MAX_LIGHTS = 0x0D31, - GL_MAX_CLIP_PLANES = 0x0D32, - GL_MAX_TEXTURE_SIZE = 0x0D33, - GL_MAX_PIXEL_MAP_TABLE = 0x0D34, - GL_MAX_VIEWPORT_DIMS = 0x0D3A, - GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B, - - // Gets - GL_ATTRIB_STACK_DEPTH = 0x0BB0, - GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1, - GL_COLOR_CLEAR_VALUE = 0x0C22, - GL_COLOR_WRITEMASK = 0x0C23, - GL_CURRENT_INDEX = 0x0B01, - GL_CURRENT_COLOR = 0x0B00, - GL_CURRENT_NORMAL = 0x0B02, - GL_CURRENT_RASTER_COLOR = 0x0B04, - GL_CURRENT_RASTER_DISTANCE = 0x0B09, - GL_CURRENT_RASTER_INDEX = 0x0B05, - GL_CURRENT_RASTER_POSITION = 0x0B07, - GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, - GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, - GL_CURRENT_TEXTURE_COORDS = 0x0B03, - GL_INDEX_CLEAR_VALUE = 0x0C20, - GL_INDEX_MODE = 0x0C30, - GL_INDEX_WRITEMASK = 0x0C21, - GL_MODELVIEW_MATRIX = 0x0BA6, - GL_MODELVIEW_STACK_DEPTH = 0x0BA3, - GL_NAME_STACK_DEPTH = 0x0D70, - GL_PROJECTION_MATRIX = 0x0BA7, - GL_PROJECTION_STACK_DEPTH = 0x0BA4, - GL_RENDER_MODE = 0x0C40, - GL_RGBA_MODE = 0x0C31, - GL_TEXTURE_MATRIX = 0x0BA8, - GL_TEXTURE_STACK_DEPTH = 0x0BA5, - GL_VIEWPORT = 0x0BA2, - - // Evaluators - GL_AUTO_NORMAL = 0x0D80, - GL_MAP1_COLOR_4 = 0x0D90, - GL_MAP1_GRID_DOMAIN = 0x0DD0, - GL_MAP1_GRID_SEGMENTS = 0x0DD1, - GL_MAP1_INDEX = 0x0D91, - GL_MAP1_NORMAL = 0x0D92, - GL_MAP1_TEXTURE_COORD_1 = 0x0D93, - GL_MAP1_TEXTURE_COORD_2 = 0x0D94, - GL_MAP1_TEXTURE_COORD_3 = 0x0D95, - GL_MAP1_TEXTURE_COORD_4 = 0x0D96, - GL_MAP1_VERTEX_3 = 0x0D97, - GL_MAP1_VERTEX_4 = 0x0D98, - GL_MAP2_COLOR_4 = 0x0DB0, - GL_MAP2_GRID_DOMAIN = 0x0DD2, - GL_MAP2_GRID_SEGMENTS = 0x0DD3, - GL_MAP2_INDEX = 0x0DB1, - GL_MAP2_NORMAL = 0x0DB2, - GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, - GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, - GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, - GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, - GL_MAP2_VERTEX_3 = 0x0DB7, - GL_MAP2_VERTEX_4 = 0x0DB8, - GL_COEFF = 0x0A00, - GL_DOMAIN = 0x0A02, - GL_ORDER = 0x0A01, - - // Hints - GL_FOG_HINT = 0x0C54, - GL_LINE_SMOOTH_HINT = 0x0C52, - GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, - GL_POINT_SMOOTH_HINT = 0x0C51, - GL_POLYGON_SMOOTH_HINT = 0x0C53, - GL_DONT_CARE = 0x1100, - GL_FASTEST = 0x1101, - GL_NICEST = 0x1102, - - // Scissor box - GL_SCISSOR_TEST = 0x0C11, - GL_SCISSOR_BOX = 0x0C10, - - // Pixel Mode / Transfer - GL_MAP_COLOR = 0x0D10, - GL_MAP_STENCIL = 0x0D11, - GL_INDEX_SHIFT = 0x0D12, - GL_INDEX_OFFSET = 0x0D13, - GL_RED_SCALE = 0x0D14, - GL_RED_BIAS = 0x0D15, - GL_GREEN_SCALE = 0x0D18, - GL_GREEN_BIAS = 0x0D19, - GL_BLUE_SCALE = 0x0D1A, - GL_BLUE_BIAS = 0x0D1B, - GL_ALPHA_SCALE = 0x0D1C, - GL_ALPHA_BIAS = 0x0D1D, - GL_DEPTH_SCALE = 0x0D1E, - GL_DEPTH_BIAS = 0x0D1F, - GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, - GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, - GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, - GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, - GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, - GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, - GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, - GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, - GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, - GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, - GL_PIXEL_MAP_S_TO_S = 0x0C71, - GL_PIXEL_MAP_I_TO_I = 0x0C70, - GL_PIXEL_MAP_I_TO_R = 0x0C72, - GL_PIXEL_MAP_I_TO_G = 0x0C73, - GL_PIXEL_MAP_I_TO_B = 0x0C74, - GL_PIXEL_MAP_I_TO_A = 0x0C75, - GL_PIXEL_MAP_R_TO_R = 0x0C76, - GL_PIXEL_MAP_G_TO_G = 0x0C77, - GL_PIXEL_MAP_B_TO_B = 0x0C78, - GL_PIXEL_MAP_A_TO_A = 0x0C79, - GL_PACK_ALIGNMENT = 0x0D05, - GL_PACK_LSB_FIRST = 0x0D01, - GL_PACK_ROW_LENGTH = 0x0D02, - GL_PACK_SKIP_PIXELS = 0x0D04, - GL_PACK_SKIP_ROWS = 0x0D03, - GL_PACK_SWAP_BYTES = 0x0D00, - GL_UNPACK_ALIGNMENT = 0x0CF5, - GL_UNPACK_LSB_FIRST = 0x0CF1, - GL_UNPACK_ROW_LENGTH = 0x0CF2, - GL_UNPACK_SKIP_PIXELS = 0x0CF4, - GL_UNPACK_SKIP_ROWS = 0x0CF3, - GL_UNPACK_SWAP_BYTES = 0x0CF0, - GL_ZOOM_X = 0x0D16, - GL_ZOOM_Y = 0x0D17, - - // Texture mapping - GL_TEXTURE_ENV = 0x2300, - GL_TEXTURE_ENV_MODE = 0x2200, - GL_TEXTURE_1D = 0x0DE0, - GL_TEXTURE_2D = 0x0DE1, - GL_TEXTURE_WRAP_S = 0x2802, - GL_TEXTURE_WRAP_T = 0x2803, - GL_TEXTURE_MAG_FILTER = 0x2800, - GL_TEXTURE_MIN_FILTER = 0x2801, - GL_TEXTURE_ENV_COLOR = 0x2201, - GL_TEXTURE_GEN_S = 0x0C60, - GL_TEXTURE_GEN_T = 0x0C61, - GL_TEXTURE_GEN_MODE = 0x2500, - GL_TEXTURE_BORDER_COLOR = 0x1004, - GL_TEXTURE_WIDTH = 0x1000, - GL_TEXTURE_HEIGHT = 0x1001, - GL_TEXTURE_BORDER = 0x1005, - GL_TEXTURE_COMPONENTS = 0x1003, - GL_TEXTURE_RED_SIZE = 0x805C, - GL_TEXTURE_GREEN_SIZE = 0x805D, - GL_TEXTURE_BLUE_SIZE = 0x805E, - GL_TEXTURE_ALPHA_SIZE = 0x805F, - GL_TEXTURE_LUMINANCE_SIZE = 0x8060, - GL_TEXTURE_INTENSITY_SIZE = 0x8061, - GL_NEAREST_MIPMAP_NEAREST = 0x2700, - GL_NEAREST_MIPMAP_LINEAR = 0x2702, - GL_LINEAR_MIPMAP_NEAREST = 0x2701, - GL_LINEAR_MIPMAP_LINEAR = 0x2703, - GL_OBJECT_LINEAR = 0x2401, - GL_OBJECT_PLANE = 0x2501, - GL_EYE_LINEAR = 0x2400, - GL_EYE_PLANE = 0x2502, - GL_SPHERE_MAP = 0x2402, - GL_DECAL = 0x2101, - GL_MODULATE = 0x2100, - GL_NEAREST = 0x2600, - GL_REPEAT = 0x2901, - GL_CLAMP = 0x2900, - GL_S = 0x2000, - GL_T = 0x2001, - GL_R = 0x2002, - GL_Q = 0x2003, - GL_TEXTURE_GEN_R = 0x0C62, - GL_TEXTURE_GEN_Q = 0x0C63, - - // Utility - GL_VENDOR = 0x1F00, - GL_RENDERER = 0x1F01, - GL_VERSION = 0x1F02, - GL_EXTENSIONS = 0x1F03, - - // Errors - GL_NO_ERROR = 0x0, - GL_INVALID_VALUE = 0x0501, - GL_INVALID_ENUM = 0x0500, - GL_INVALID_OPERATION = 0x0502, - GL_STACK_OVERFLOW = 0x0503, - GL_STACK_UNDERFLOW = 0x0504, - GL_OUT_OF_MEMORY = 0x0505, -} - -// glPush/PopAttrib bits -enum : GLuint { - GL_CURRENT_BIT = 0x00000001, - GL_POINT_BIT = 0x00000002, - GL_LINE_BIT = 0x00000004, - GL_POLYGON_BIT = 0x00000008, - GL_POLYGON_STIPPLE_BIT = 0x00000010, - GL_PIXEL_MODE_BIT = 0x00000020, - GL_LIGHTING_BIT = 0x00000040, - GL_FOG_BIT = 0x00000080, - GL_DEPTH_BUFFER_BIT = 0x00000100, - GL_ACCUM_BUFFER_BIT = 0x00000200, - GL_STENCIL_BUFFER_BIT = 0x00000400, - GL_VIEWPORT_BIT = 0x00000800, - GL_TRANSFORM_BIT = 0x00001000, - GL_ENABLE_BIT = 0x00002000, - GL_COLOR_BUFFER_BIT = 0x00004000, - GL_HINT_BIT = 0x00008000, - GL_EVAL_BIT = 0x00010000, - GL_LIST_BIT = 0x00020000, - GL_TEXTURE_BIT = 0x00040000, - GL_SCISSOR_BIT = 0x00080000, - GL_ALL_ATTRIB_BITS = 0x000FFFFF, -} - -// gl 1.1 -enum : GLenum { - GL_PROXY_TEXTURE_1D = 0x8063, - GL_PROXY_TEXTURE_2D = 0x8064, - GL_TEXTURE_PRIORITY = 0x8066, - GL_TEXTURE_RESIDENT = 0x8067, - GL_TEXTURE_BINDING_1D = 0x8068, - GL_TEXTURE_BINDING_2D = 0x8069, - GL_TEXTURE_INTERNAL_FORMAT = 0x1003, - GL_ALPHA4 = 0x803B, - GL_ALPHA8 = 0x803C, - GL_ALPHA12 = 0x803D, - GL_ALPHA16 = 0x803E, - GL_LUMINANCE4 = 0x803F, - GL_LUMINANCE8 = 0x8040, - GL_LUMINANCE12 = 0x8041, - GL_LUMINANCE16 = 0x8042, - GL_LUMINANCE4_ALPHA4 = 0x8043, - GL_LUMINANCE6_ALPHA2 = 0x8044, - GL_LUMINANCE8_ALPHA8 = 0x8045, - GL_LUMINANCE12_ALPHA4 = 0x8046, - GL_LUMINANCE12_ALPHA12 = 0x8047, - GL_LUMINANCE16_ALPHA16 = 0x8048, - GL_INTENSITY = 0x8049, - GL_INTENSITY4 = 0x804A, - GL_INTENSITY8 = 0x804B, - GL_INTENSITY12 = 0x804C, - GL_INTENSITY16 = 0x804D, - GL_R3_G3_B2 = 0x2A10, - GL_RGB4 = 0x804F, - GL_RGB5 = 0x8050, - GL_RGB8 = 0x8051, - GL_RGB10 = 0x8052, - GL_RGB12 = 0x8053, - GL_RGB16 = 0x8054, - GL_RGBA2 = 0x8055, - GL_RGBA4 = 0x8056, - GL_RGB5_A1 = 0x8057, - GL_RGBA8 = 0x8058, - GL_RGB10_A2 = 0x8059, - GL_RGBA12 = 0x805A, - GL_RGBA16 = 0x805B, -} - -enum : GLuint { - GL_CLIENT_PIXEL_STORE_BIT = 0x00000001, - GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002, - GL_ALL_CLIENT_ATTRIB_BITS = 0xFFFFFFFF, - GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF, -} diff --git a/demos/qd.d b/demos/qd.d deleted file mode 100644 index 54bc58a1..00000000 --- a/demos/qd.d +++ /dev/null @@ -1,474 +0,0 @@ -module qd; - -alias char[] string; - -extern(C) { - struct SDL_Rect { - short x, y; - ushort w, h; - } - struct SDL_PixelFormat { - //SDL_Palette *palette; - void *palette; - ubyte BitsPerPixel, BytesPerPixel, Rloss, Gloss, Bloss, Aloss, Rshift, Gshift, Bshift, Ashift; - uint Rmask, Gmask, Bmask, Amask, colorkey; ubyte alpha; - } - struct SDL_Surface { - uint flags; - SDL_PixelFormat *format; - int w, h; - ushort pitch; - void *pixels; - int offset; - void *hwdata; - SDL_Rect clip_rect; - uint unused; - uint locked; - void *map; - uint format_version; - int refcount; - } - uint SDL_MapRGBA(SDL_PixelFormat *format, ubyte r, ubyte g, ubyte b, ubyte a); - void SDL_GetRGBA(uint pixel, SDL_PixelFormat *fmt, ubyte *r, ubyte *g, ubyte *b, ubyte *a); - int SDL_LockSurface(SDL_Surface *); - void SDL_UnlockSurface(SDL_Surface *); - SDL_Surface * SDL_SetVideoMode(int width, int height, int bpp, uint flags); - SDL_Surface *SDL_CreateRGBSurface(uint flags, int width, int height, int depth, uint Rmask=0, uint Gmask=0, uint Bmask=0, uint Amask=0); - int SDL_Flip(SDL_Surface *); - void SDL_UpdateRect (SDL_Surface *screen, int x, int y, uint w, uint h); - int SDL_UpperBlit(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect); - alias SDL_UpperBlit SDL_BlitSurface; - int SDL_SetAlpha(SDL_Surface *surface, uint flags, ubyte alpha); - int SDL_SetColorKey(SDL_Surface *surface, uint flag, uint key); - int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, uint color); - const uint SDL_SWSURFACE=0; - const uint SDL_HWSURFACE=1; - const uint SDL_DOUBLEBUF=0x40000000; - const uint SDL_FULLSCREEN=0x80000000; - const uint SDL_SRCALPHA=0x00010000; - const uint SDL_SRCCOLORKEY=0x00001000; - void SDL_Delay(uint ms); - uint SDL_GetTicks(); - - enum SDLKey { - Unknown = 0, First = 0, - Escape = 27, - LCtrl = 306, - } - enum SDLMod { - KMOD_NONE = 0x0000, - KMOD_LSHIFT= 0x0001, KMOD_RSHIFT= 0x0002, - KMOD_LCTRL = 0x0040, KMOD_RCTRL = 0x0080, KMOD_CTRL = 0x00C0, - KMOD_LALT = 0x0100, KMOD_RALT = 0x0200, KMOD_ALT = 0x0300, - KMOD_LMETA = 0x0400, KMOD_RMETA = 0x0800, - KMOD_NUM = 0x1000, KMOD_CAPS = 0x2000, KMOD_MODE = 0x4000, - KMOD_RESERVED = 0x8000 - }; - - struct SDL_keysym { ubyte scancode; SDLKey sym; SDLMod mod; ushort unicode; } - enum SDL_EventType : ubyte { - NoEvent=0, Active, KeyDown, KeyUp, - MouseMotion, MouseButtonDown, MouseButtonUp, - JoyAxisMotion, JoyBallMotion, JoyHatMotion, JoyButtonDown, JoyButtonUp, - Quit, SysWMEvent - } - union SDL_Event { - SDL_EventType type; - struct Active { SDL_EventType type, gain, state; }; Active active; - struct Key { SDL_EventType type, which, state; SDL_keysym keysym; }; Key key; - struct Motion { SDL_EventType type, which, state; ushort x, y; short xrel, yrel; }; Motion motion; - struct Button { SDL_EventType type, which, button, state; ushort x, y; }; Button button; - struct Jaxis { SDL_EventType type, which, axis; short value; }; Jaxis jaxis; - struct Jball { SDL_EventType type, which, ball; short xrel, yrel; }; Jball jball; - struct Jhat { SDL_EventType type, which, hat, value; }; Jhat jhat; - struct Jbutton { SDL_EventType type, which, button, state; }; Jbutton jbutton; - struct Resize { SDL_EventType type; int w, h; }; Resize resize; - struct Expose { SDL_EventType type; }; Expose expose; - struct Quit { SDL_EventType type; }; Quit quit; - struct User { SDL_EventType type; int code; void *data1, data2; }; User user; - struct Syswm { SDL_EventType type; void *msg; }; Syswm syswm; - } - - int SDL_PollEvent(SDL_Event *event); -} - -SDL_Surface *display; - -void putpixel32(int x, int y, ubyte[4] col) { - uint *bufp = cast(uint *)display.pixels + y*display.pitch/4 + x; - *bufp = SDL_MapRGBA(display.format, col[0], col[1], col[2], col[3]); -} - -void putpixel32(int x, int y, ubyte[3] col) { - uint *bufp = cast(uint *)display.pixels + y*display.pitch/4 + x; - *bufp = SDL_MapRGBA(display.format, col[0], col[1], col[2], 0); -} - -void getpixel32(int x, int y, ubyte[4] *col) { - uint *bufp = cast(uint *)display.pixels + y*display.pitch/4 + x; - SDL_GetRGBA(*bufp, display.format, &(*col)[0], &(*col)[1], &(*col)[2], &(*col)[3]); -} - -align(1) -struct rgb { - ubyte[3] values; - ubyte r() { return values[0]; } - ubyte g() { return values[1]; } - ubyte b() { return values[2]; } - rgb opCat(rgb other) { - rgb res; - foreach (id, ref v; res.values) v=cast(ubyte)((values[id]+other.values[id])/2); - return res; - } - bool opEquals(rgb r) { - return values == r.values; - } -} - -void putpixel(int x, int y, ubyte[4] col) { - if ( (x<0) || (y<0) || (x!>8; - c[1]=cast(ubyte)(c[1]*178+color.g*77)>>8; - c[2]=cast(ubyte)(c[2]*178+color.b*77)>>8; - putpixel32(x, y, c); - } - } -} - -void pset(T...)(int x, int y, T params) { - SDL_LockSurface(display); - scope(exit) { SDL_UnlockSurface(display); if (doFlip) flip; } - execParams(params); - putpixel32(x, y, color.values); -} - -rgb pget(int x, int y) { - SDL_LockSurface(display); - scope(exit) SDL_UnlockSurface(display); - ubyte[4] c; - getpixel32(x, y, &c); - rgb res; res.values[]=c[0..3]; return res; -} - -void swap(T)(ref T a, ref T b) { T c=a; a=b; b=c; } -T abs(T)(T a) { return (a<0) ? -a : a; } - -void bresenham(bool countUp=true, bool steep=false)(int x0, int y0, int x1, int y1) { - auto deltax = x1 - x0, deltay = y1 - y0; - static if (steep) { - auto Δerror = cast(float)deltax / cast(float)deltay; - auto var2 = x0; - const string name="y"; - } else { - auto Δerror = cast(float)deltay / cast(float)deltax; - auto var2 = y0; - const string name="x"; - } - auto error = 0f; - ubyte[4] col; col[0..3]=color.values; - for (auto var1 = mixin(name~'0'); var1 <= mixin(name~'1'); ++var1) { - static if (steep) putpixel(var2, var1, col); - else putpixel(var1, var2, col); - error += Δerror; - if (abs(error) >= 1f) { static if (countUp) { var2++; error -= 1f; } else { var2--; error += 1f; }} - } -} - -T max(T)(T a, T b) { return a>b?a:b; } -T min(T)(T a, T b) { return a abs(x1 - x0); - void turn() { swap(x0, x1); swap(y0, y1); } - if (steep) { if (y1 < y0) turn; } - else { if (x1 < x0) turn; } - bool stepUp=steep ? (x0 < x1) : (y0 < y1); - if (steep) { - if (stepUp) bresenham!(true, true)(x0, y0, x1, y1); - else bresenham!(false, true)(x0, y0, x1, y1); - } else { - if (stepUp) bresenham!(true, false)(x0, y0, x1, y1); - else bresenham!(false, false)(x0, y0, x1, y1); - } - } -} - -import ldc.intrinsics; -alias llvm_sqrt_f32 sqrt; -alias llvm_sqrt_f64 sqrt; -version(X86) -{ - alias llvm_sqrt_f80 sqrt; -} -else -{ - static import tango.stdc.math; - real sqrt(real x) - { - return tango.stdc.math.sqrtl(x); - } -} - - -template circle_bresenham_pass(bool first) { - const string xy=(first?"x":"y"); - const string yx=(first?"y":"x"); - const string str=" - auto x="~(first?"xradius":"0")~"; - auto y="~(first?"0":"yradius")~"; - auto xchange=yradius*yradius*"~(first?"(1-2*xradius)":"1")~"; - auto ychange=xradius*xradius*"~(first?"1":"(1-2*yradius)")~"; - auto error=0; - auto stopx="~(first?"y2square*xradius":"0")~"; - auto stopy="~(first?"0":"x2square*yradius")~"; - while (stopx"~(first?">=":"<=")~"stopy) { - putpixel(cx+x, cy+y, col); - putpixel(cx+x, cy-y, col); - putpixel(cx-x, cy+y, col); - putpixel(cx-x, cy-y, col); - "~yx~"++; - stop"~yx~"+="~xy~"2square; - error+="~yx~"change; - "~yx~"change+="~xy~"2square; - if ((2*error+"~xy~"change)>0) { - --"~xy~"; - stop"~xy~"-="~yx~"2square; - error+="~xy~"change; - "~xy~"change+="~yx~"2square; - } - } - "; -} - -void circle(T...)(T t) { - static assert(T.length!<3, "Circle: Needs x, y and radius"); - int cx=t[0], cy=t[1], xradius=t[2]; - SDL_LockSurface(display); - scope(exit) { SDL_UnlockSurface(display); if (doFlip) flip; } - execParams(t[3..$]); - auto yradius=xradius; - if (xradius!>0) return; - static if (T.length>3 && is(T[3]: int)) yradius=t[3]; - static if (select!(back_rgb, T) != -1) { - auto ratio=xradius*1f/yradius; - auto back_sdl=SDL_MapRGBA(display.format, back.values[0], back.values[1], back.values[2], 0); - for (int i=0; i<=yradius; ++i) { - ushort j=cast(ushort)(sqrt(cast(real)(yradius*yradius-i*i))*ratio); - hline(cx-j, cy+i, 2*j, back_sdl); - hline(cx-j, cy-i, 2*j, back_sdl); - } - } - auto x2square=2*xradius*xradius; - auto y2square=2*yradius*yradius; - ubyte[4] col; col[0..3]=color.values; - { mixin(circle_bresenham_pass!(true).str); } - { mixin(circle_bresenham_pass!(false).str); } -} - -float distance(float x1, float y1, float x2, float y2) { - auto x=x1-x2, y=y1-y2; - return sqrt(x*x+y*y); -} - -struct floodfill_node { - int x, y; - static floodfill_node opCall(int x, int y) { - floodfill_node res; - res.x=x; res.y=y; - return res; - } -} - -void paint(T...)(int x, int y, T t) { - SDL_LockSurface(display); - scope(exit) { SDL_UnlockSurface(display); if (doFlip) flip; } - execParams(t); - bool border=true; - if (select!(back_rgb, T) == -1) { - back=pget(x, y); - border=false; - } - bool check(rgb r) { - if (border) return (r != back) && (r != color); - else return r == back; - } - if (back == color) throw new Exception("Having identical backgrounds and foregrounds will severely mess up floodfill."); - alias floodfill_node node; - node[] queue; - queue ~= node(x, y); - size_t count=0; - while (count=0) do e--; while (e>=0 && check(pget(e, y))); - //SDL_Flip(display); - for (int i=e+1; i= 0); - uint ms = cast(uint)(secs * 1000); - SDL_Delay(ms); -} diff --git a/demos/qd1.d b/demos/qd1.d deleted file mode 100644 index 451c3bfa..00000000 --- a/demos/qd1.d +++ /dev/null @@ -1,29 +0,0 @@ -module qd1; -import qd; -void main() { - screen(640, 480); - sleep(1); - - cls(Red); - sleep(1); - - cls(Green); - sleep(1); - - cls(Blue); - sleep(1); - -// pset(10, 10); -// line(0, 0, 100, 100, Box, Back(Red~Black)); -// for (int i=0; i<=100; i+=10) { -// line(i, 0, 100-i, 100); -// line(0, i, 100, 100-i); -// } -// circle(100, 100, 50, 15, White~Black, Fill=White~Black); -// paint(200, 200, Red, Back=White); -// circle(100, 100, 50, 15, White); -// paint(200, 200, Black); -// pset(10, 11); pset(10, 11, Black); -// pset(10, 10); -// sleep(1); -} diff --git a/demos/ray.cpp b/demos/ray.cpp deleted file mode 100644 index 9c3d6eab..00000000 --- a/demos/ray.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#include -#include -#include -#include -#include - -using namespace std; - -numeric_limits real; -double delta = sqrt(real.epsilon()), infinity = real.infinity(); - -struct Vec { - double x, y, z; - Vec(double x2, double y2, double z2) : x(x2), y(y2), z(z2) {} -}; -Vec operator+(const Vec &a, const Vec &b) -{ return Vec(a.x+b.x, a.y+b.y, a.z+b.z); } -Vec operator-(const Vec &a, const Vec &b) -{ return Vec(a.x-b.x, a.y-b.y, a.z-b.z); } -Vec operator*(double a, const Vec &b) { return Vec(a*b.x, a*b.y, a*b.z); } -double dot(const Vec &a, const Vec &b) { return a.x*b.x + a.y*b.y + a.z*b.z; } -Vec unitise(const Vec &a) { return (1 / sqrt(dot(a, a))) * a; } - -typedef pair Hit; - -struct Ray { - Vec orig, dir; - Ray(const Vec &o, const Vec &d) : orig(o), dir(d) {} -}; - -struct Scene { - virtual ~Scene() {}; - virtual void intersect(Hit &, const Ray &) const = 0; -}; - -struct Sphere : public Scene { - Vec center; - double radius; - - Sphere(Vec c, double r) : center(c), radius(r) {} - ~Sphere() {} - - double ray_sphere(const Ray &ray) const { - Vec v = center - ray.orig; - double b = dot(v, ray.dir), disc = b*b - dot(v, v) + radius * radius; - if (disc < 0) return infinity; - double d = sqrt(disc), t2 = b + d; - if (t2 < 0) return infinity; - double t1 = b - d; - return (t1 > 0 ? t1 : t2); - } - - void intersect(Hit &hit, const Ray &ray) const { - double lambda = ray_sphere(ray); - if (lambda >= hit.first) return; - hit = Hit(lambda, unitise(ray.orig + lambda*ray.dir - center)); - } -}; - -typedef list Scenes; -struct Group : public Scene { - Sphere bound; - Scenes child; - - Group(Sphere b, Scenes c) : bound(b), child(c) {} - ~Group() { - for (Scenes::const_iterator it=child.begin(); it!=child.end(); ++it) - delete *it; - } - - void intersect(Hit &hit, const Ray &ray) const { - double l = bound.ray_sphere(ray); - if (l < hit.first) - for (Scenes::const_iterator it=child.begin(); it!=child.end(); ++it) - (*it)->intersect(hit, ray); - } -}; - -Hit intersect(const Ray &ray, const Scene &s) { - Hit res = Hit(infinity, Vec(0, 0, 0)); - s.intersect(res, ray); - return res; -} - -double ray_trace(const Vec &light, const Ray &ray, const Scene &s) { - Hit hit = intersect(ray, s); - if (hit.first == infinity) return 0; - double g = dot(hit.second, light); - if (g >= 0) return 0.; - Vec p = ray.orig + hit.first*ray.dir + delta*hit.second; - return (intersect(Ray(p, -1. * light), s).first < infinity ? 0 : -g); -} - -Scene *create(int level, const Vec &c, double r) { - Scene *s = new Sphere(c, r); - if (level == 1) return s; - Scenes child; - child.push_back(s); - double rn = 3*r/sqrt(12.); - for (int dz=-1; dz<=1; dz+=2) - for (int dx=-1; dx<=1; dx+=2) - child.push_back(create(level-1, c + rn*Vec(dx, 1, dz), r/2)); - return new Group(Sphere(c, 3*r), child); -} - -int main(int argc, char *argv[]) { - int level = 6, n = 512, ss = 4; - if (argc == 2) level = atoi(argv[1]); - Vec light = unitise(Vec(-1, -3, 2)); - Scene *s(create(level, Vec(0, -1, 0), 1)); - cout << "P5\n" << n << " " << n << "\n255\n"; - for (int y=n-1; y>=0; --y) - for (int x=0; x 0 ? t1 : t2); - } - void intersect(ref Hit hit, ref Ray ray) { - auto lambda = ray_sphere(ray); - if (lambda < hit.first) - hit = Hit(lambda, (ray.orig + lambda*ray.dir - center).unitise); - } -} - -class Group : Scene { - Sphere bound; - Scene[] children; - //mixin This!("bound, children"); - this (Sphere s, Scene[] c) - { - bound = s; - children = c; - } - void intersect(ref Hit hit, ref Ray ray) { - auto l = bound.ray_sphere(ray); - if (l < hit.first) foreach (child; children) child.intersect(hit, ray); - } -} - -double ray_trace(ref Vec light, ref Ray ray, Scene s) { - auto hit=Hit(double.infinity, Vec(0, 0, 0)); - s.intersect(hit, ray); - if (hit.first == double.infinity) return 0.0; - auto g = hit.second.dot(light); - if (g >= 0) return 0.0; - auto p = ray.orig + ray.dir*hit.first + hit.second*delta; - auto hit2=Hit(double.infinity, Vec(0, 0, 0)); - s.intersect(hit2, Ray(p, light*-1.0)); - return (hit2.first < double.infinity ? 0 : -g); -} - -Scene create(int level, ref Vec c, double r) { - auto s = new Sphere(c, r); - if (level == 1) return s; - Scene[] children; - children ~= s; - double rn = 3*r/sqrt(12.0); - for (int dz=-1; dz<=1; dz+=2) - for (int dx=-1; dx<=1; dx+=2) - children~=create(level-1, c + Vec(dx, 1, dz)*rn, r/2); - return new Group(new Sphere(c, 3*r), children); -} - -void main(string[] args) { - int level = (args.length==3 ? args[1].atoi() : 9), - n = (args.length==3 ? args[2].atoi() : 512), ss = 4; - auto light = Vec(-1, -3, 2).unitise(); - auto s=create(level, Vec(0, -1, 0), 1); - printf("P5\n%d %d\n255\n", n,n); - for (int y=n-1; y>=0; --y) - for (int x=0; x