From 2163fd10b63e70efc328faf09ff927cd24bdfad4 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Fri, 14 May 2010 02:20:12 -0500 Subject: [PATCH] Restored old OpenGL headers; hopefully this makes it work on MSVC --- Dependencies/OpenGL/GL/gl_mangle.h | 663 ++++++++++++++++++++++++ Dependencies/OpenGL/GL/glu_mangle.h | 97 ++++ Dependencies/OpenGL/GL/glut.h | 767 ++++++++++++++++++++++++++++ Dependencies/OpenGL/GL/glx.h | 443 ++++++++++++++++ Dependencies/OpenGL/GL/glx_mangle.h | 73 +++ Dependencies/OpenGL/GL/mesa_wgl.h | 121 ----- Dependencies/OpenGL/GL/osmesa.h | 248 +++++++++ Dependencies/OpenGL/GL/svgamesa.h | 100 ++++ Dependencies/OpenGL/GL/xmesa.h | 373 ++++++++++++++ Dependencies/OpenGL/GL/xmesa_x.h | 92 ++++ Dependencies/OpenGL/GL/xmesa_xf86.h | 189 +++++++ 11 files changed, 3045 insertions(+), 121 deletions(-) create mode 100644 Dependencies/OpenGL/GL/gl_mangle.h create mode 100644 Dependencies/OpenGL/GL/glu_mangle.h create mode 100644 Dependencies/OpenGL/GL/glut.h create mode 100644 Dependencies/OpenGL/GL/glx.h create mode 100644 Dependencies/OpenGL/GL/glx_mangle.h delete mode 100644 Dependencies/OpenGL/GL/mesa_wgl.h create mode 100644 Dependencies/OpenGL/GL/osmesa.h create mode 100644 Dependencies/OpenGL/GL/svgamesa.h create mode 100644 Dependencies/OpenGL/GL/xmesa.h create mode 100644 Dependencies/OpenGL/GL/xmesa_x.h create mode 100644 Dependencies/OpenGL/GL/xmesa_xf86.h diff --git a/Dependencies/OpenGL/GL/gl_mangle.h b/Dependencies/OpenGL/GL/gl_mangle.h new file mode 100644 index 0000000..33f578f --- /dev/null +++ b/Dependencies/OpenGL/GL/gl_mangle.h @@ -0,0 +1,663 @@ +/* $Id: gl_mangle.h,v 1.4.4.1 2001/02/19 18:29:20 brianp Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.4.x + * + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * 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 + * BRIAN PAUL 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. + */ + + +/* + * If you compile Mesa with USE_MGL_NAMESPACE defined then you can link + * your application both with OpenGL and Mesa. The Mesa functions will + * be redefined so they are prefixed with "mgl" instead of "gl". + * Contributed by Randy Frank (rfrank@rsinc.com) + */ + +#ifndef GL_MANGLE_H +#define GL_MANGLE_H + +#define glClearIndex mglClearIndex +#define glClearColor mglClearColor +#define glClear mglClear +#define glIndexMask mglIndexMask +#define glColorMask mglColorMask +#define glAlphaFunc mglAlphaFunc +#define glBlendFunc mglBlendFunc +#define glLogicOp mglLogicOp +#define glCullFace mglCullFace +#define glFrontFace mglFrontFace +#define glPointSize mglPointSize +#define glLineWidth mglLineWidth +#define glLineStipple mglLineStipple +#define glPolygonMode mglPolygonMode +#define glPolygonOffset mglPolygonOffset +#define glPolygonStipple mglPolygonStipple +#define glGetPolygonStipple mglGetPolygonStipple +#define glEdgeFlag mglEdgeFlag +#define glEdgeFlagv mglEdgeFlagv +#define glScissor mglScissor +#define glClipPlane mglClipPlane +#define glGetClipPlane mglGetClipPlane +#define glDrawBuffer mglDrawBuffer +#define glReadBuffer mglReadBuffer +#define glEnable mglEnable +#define glDisable mglDisable +#define glIsEnabled mglIsEnabled +#define glEnableClientState mglEnableClientState +#define glDisableClientState mglDisableClientState +#define glGetBooleanv mglGetBooleanv +#define glGetDoublev mglGetDoublev +#define glGetFloatv mglGetFloatv +#define glGetIntegerv mglGetIntegerv +#define glPushAttrib mglPushAttrib +#define glPopAttrib mglPopAttrib +#define glPushClientAttrib mglPushClientAttrib +#define glPopClientAttrib mglPopClientAttrib +#define glRenderMode mglRenderMode +#define glGetError mglGetError +#define glGetString mglGetString +#define glFinish mglFinish +#define glFlush mglFlush +#define glHint mglHint +#define glClearDepth mglClearDepth +#define glDepthFunc mglDepthFunc +#define glDepthMask mglDepthMask +#define glDepthRange mglDepthRange +#define glClearAccum mglClearAccum +#define glAccum mglAccum +#define glMatrixMode mglMatrixMode +#define glOrtho mglOrtho +#define glFrustum mglFrustum +#define glViewport mglViewport +#define glPushMatrix mglPushMatrix +#define glPopMatrix mglPopMatrix +#define glLoadIdentity mglLoadIdentity +#define glLoadMatrixd mglLoadMatrixd +#define glLoadMatrixf mglLoadMatrixf +#define glMultMatrixd mglMultMatrixd +#define glMultMatrixf mglMultMatrixf +#define glRotated mglRotated +#define glRotatef mglRotatef +#define glScaled mglScaled +#define glScalef mglScalef +#define glTranslated mglTranslated +#define glTranslatef mglTranslatef +#define glIsList mglIsList +#define glDeleteLists mglDeleteLists +#define glGenLists mglGenLists +#define glNewList mglNewList +#define glEndList mglEndList +#define glCallList mglCallList +#define glCallLists mglCallLists +#define glListBase mglListBase +#define glBegin mglBegin +#define glEnd mglEnd +#define glVertex2d mglVertex2d +#define glVertex2f mglVertex2f +#define glVertex2i mglVertex2i +#define glVertex2s mglVertex2s +#define glVertex3d mglVertex3d +#define glVertex3f mglVertex3f +#define glVertex3i mglVertex3i +#define glVertex3s mglVertex3s +#define glVertex4d mglVertex4d +#define glVertex4f mglVertex4f +#define glVertex4i mglVertex4i +#define glVertex4s mglVertex4s +#define glVertex2dv mglVertex2dv +#define glVertex2fv mglVertex2fv +#define glVertex2iv mglVertex2iv +#define glVertex2sv mglVertex2sv +#define glVertex3dv mglVertex3dv +#define glVertex3fv mglVertex3fv +#define glVertex3iv mglVertex3iv +#define glVertex3sv mglVertex3sv +#define glVertex4dv mglVertex4dv +#define glVertex4fv mglVertex4fv +#define glVertex4iv mglVertex4iv +#define glVertex4sv mglVertex4sv +#define glNormal3b mglNormal3b +#define glNormal3d mglNormal3d +#define glNormal3f mglNormal3f +#define glNormal3i mglNormal3i +#define glNormal3s mglNormal3s +#define glNormal3bv mglNormal3bv +#define glNormal3dv mglNormal3dv +#define glNormal3fv mglNormal3fv +#define glNormal3iv mglNormal3iv +#define glNormal3sv mglNormal3sv +#define glIndexd mglIndexd +#define glIndexf mglIndexf +#define glIndexi mglIndexi +#define glIndexs mglIndexs +#define glIndexub mglIndexub +#define glIndexdv mglIndexdv +#define glIndexfv mglIndexfv +#define glIndexiv mglIndexiv +#define glIndexsv mglIndexsv +#define glIndexubv mglIndexubv +#define glColor3b mglColor3b +#define glColor3d mglColor3d +#define glColor3f mglColor3f +#define glColor3i mglColor3i +#define glColor3s mglColor3s +#define glColor3ub mglColor3ub +#define glColor3ui mglColor3ui +#define glColor3us mglColor3us +#define glColor4b mglColor4b +#define glColor4d mglColor4d +#define glColor4f mglColor4f +#define glColor4i mglColor4i +#define glColor4s mglColor4s +#define glColor4ub mglColor4ub +#define glColor4ui mglColor4ui +#define glColor4us mglColor4us +#define glColor3bv mglColor3bv +#define glColor3dv mglColor3dv +#define glColor3fv mglColor3fv +#define glColor3iv mglColor3iv +#define glColor3sv mglColor3sv +#define glColor3ubv mglColor3ubv +#define glColor3uiv mglColor3uiv +#define glColor3usv mglColor3usv +#define glColor4bv mglColor4bv +#define glColor4dv mglColor4dv +#define glColor4fv mglColor4fv +#define glColor4iv mglColor4iv +#define glColor4sv mglColor4sv +#define glColor4ubv mglColor4ubv +#define glColor4uiv mglColor4uiv +#define glColor4usv mglColor4usv +#define glTexCoord1d mglTexCoord1d +#define glTexCoord1f mglTexCoord1f +#define glTexCoord1i mglTexCoord1i +#define glTexCoord1s mglTexCoord1s +#define glTexCoord2d mglTexCoord2d +#define glTexCoord2f mglTexCoord2f +#define glTexCoord2i mglTexCoord2i +#define glTexCoord2s mglTexCoord2s +#define glTexCoord3d mglTexCoord3d +#define glTexCoord3f mglTexCoord3f +#define glTexCoord3i mglTexCoord3i +#define glTexCoord3s mglTexCoord3s +#define glTexCoord4d mglTexCoord4d +#define glTexCoord4f mglTexCoord4f +#define glTexCoord4i mglTexCoord4i +#define glTexCoord4s mglTexCoord4s +#define glTexCoord1dv mglTexCoord1dv +#define glTexCoord1fv mglTexCoord1fv +#define glTexCoord1iv mglTexCoord1iv +#define glTexCoord1sv mglTexCoord1sv +#define glTexCoord2dv mglTexCoord2dv +#define glTexCoord2fv mglTexCoord2fv +#define glTexCoord2iv mglTexCoord2iv +#define glTexCoord2sv mglTexCoord2sv +#define glTexCoord3dv mglTexCoord3dv +#define glTexCoord3fv mglTexCoord3fv +#define glTexCoord3iv mglTexCoord3iv +#define glTexCoord3sv mglTexCoord3sv +#define glTexCoord4dv mglTexCoord4dv +#define glTexCoord4fv mglTexCoord4fv +#define glTexCoord4iv mglTexCoord4iv +#define glTexCoord4sv mglTexCoord4sv +#define glRasterPos2d mglRasterPos2d +#define glRasterPos2f mglRasterPos2f +#define glRasterPos2i mglRasterPos2i +#define glRasterPos2s mglRasterPos2s +#define glRasterPos3d mglRasterPos3d +#define glRasterPos3f mglRasterPos3f +#define glRasterPos3i mglRasterPos3i +#define glRasterPos3s mglRasterPos3s +#define glRasterPos4d mglRasterPos4d +#define glRasterPos4f mglRasterPos4f +#define glRasterPos4i mglRasterPos4i +#define glRasterPos4s mglRasterPos4s +#define glRasterPos2dv mglRasterPos2dv +#define glRasterPos2fv mglRasterPos2fv +#define glRasterPos2iv mglRasterPos2iv +#define glRasterPos2sv mglRasterPos2sv +#define glRasterPos3dv mglRasterPos3dv +#define glRasterPos3fv mglRasterPos3fv +#define glRasterPos3iv mglRasterPos3iv +#define glRasterPos3sv mglRasterPos3sv +#define glRasterPos4dv mglRasterPos4dv +#define glRasterPos4fv mglRasterPos4fv +#define glRasterPos4iv mglRasterPos4iv +#define glRasterPos4sv mglRasterPos4sv +#define glRectd mglRectd +#define glRectf mglRectf +#define glRecti mglRecti +#define glRects mglRects +#define glRectdv mglRectdv +#define glRectfv mglRectfv +#define glRectiv mglRectiv +#define glRectsv mglRectsv +#define glVertexPointer mglVertexPointer +#define glNormalPointer mglNormalPointer +#define glColorPointer mglColorPointer +#define glIndexPointer mglIndexPointer +#define glTexCoordPointer mglTexCoordPointer +#define glEdgeFlagPointer mglEdgeFlagPointer +#define glGetPointerv mglGetPointerv +#define glArrayElement mglArrayElement +#define glDrawArrays mglDrawArrays +#define glDrawElements mglDrawElements +#define glInterleavedArrays mglInterleavedArrays +#define glShadeModel mglShadeModel +#define glLightf mglLightf +#define glLighti mglLighti +#define glLightfv mglLightfv +#define glLightiv mglLightiv +#define glGetLightfv mglGetLightfv +#define glGetLightiv mglGetLightiv +#define glLightModelf mglLightModelf +#define glLightModeli mglLightModeli +#define glLightModelfv mglLightModelfv +#define glLightModeliv mglLightModeliv +#define glMaterialf mglMaterialf +#define glMateriali mglMateriali +#define glMaterialfv mglMaterialfv +#define glMaterialiv mglMaterialiv +#define glGetMaterialfv mglGetMaterialfv +#define glGetMaterialiv mglGetMaterialiv +#define glColorMaterial mglColorMaterial +#define glPixelZoom mglPixelZoom +#define glPixelStoref mglPixelStoref +#define glPixelStorei mglPixelStorei +#define glPixelTransferf mglPixelTransferf +#define glPixelTransferi mglPixelTransferi +#define glPixelMapfv mglPixelMapfv +#define glPixelMapuiv mglPixelMapuiv +#define glPixelMapusv mglPixelMapusv +#define glGetPixelMapfv mglGetPixelMapfv +#define glGetPixelMapuiv mglGetPixelMapuiv +#define glGetPixelMapusv mglGetPixelMapusv +#define glBitmap mglBitmap +#define glReadPixels mglReadPixels +#define glDrawPixels mglDrawPixels +#define glCopyPixels mglCopyPixels +#define glStencilFunc mglStencilFunc +#define glStencilMask mglStencilMask +#define glStencilOp mglStencilOp +#define glClearStencil mglClearStencil +#define glTexGend mglTexGend +#define glTexGenf mglTexGenf +#define glTexGeni mglTexGeni +#define glTexGendv mglTexGendv +#define glTexGenfv mglTexGenfv +#define glTexGeniv mglTexGeniv +#define glGetTexGendv mglGetTexGendv +#define glGetTexGenfv mglGetTexGenfv +#define glGetTexGeniv mglGetTexGeniv +#define glTexEnvf mglTexEnvf +#define glTexEnvi mglTexEnvi +#define glTexEnvfv mglTexEnvfv +#define glTexEnviv mglTexEnviv +#define glGetTexEnvfv mglGetTexEnvfv +#define glGetTexEnviv mglGetTexEnviv +#define glTexParameterf mglTexParameterf +#define glTexParameteri mglTexParameteri +#define glTexParameterfv mglTexParameterfv +#define glTexParameteriv mglTexParameteriv +#define glGetTexParameterfv mglGetTexParameterfv +#define glGetTexParameteriv mglGetTexParameteriv +#define glGetTexLevelParameterfv mglGetTexLevelParameterfv +#define glGetTexLevelParameteriv mglGetTexLevelParameteriv +#define glTexImage1D mglTexImage1D +#define glTexImage2D mglTexImage2D +#define glGetTexImage mglGetTexImage +#define glGenTextures mglGenTextures +#define glDeleteTextures mglDeleteTextures +#define glBindTexture mglBindTexture +#define glPrioritizeTextures mglPrioritizeTextures +#define glAreTexturesResident mglAreTexturesResident +#define glIsTexture mglIsTexture +#define glTexSubImage1D mglTexSubImage1D +#define glTexSubImage2D mglTexSubImage2D +#define glCopyTexImage1D mglCopyTexImage1D +#define glCopyTexImage2D mglCopyTexImage2D +#define glCopyTexSubImage1D mglCopyTexSubImage1D +#define glCopyTexSubImage2D mglCopyTexSubImage2D +#define glMap1d mglMap1d +#define glMap1f mglMap1f +#define glMap2d mglMap2d +#define glMap2f mglMap2f +#define glGetMapdv mglGetMapdv +#define glGetMapfv mglGetMapfv +#define glGetMapiv mglGetMapiv +#define glGetMinmax mglGetMinmax +#define glEvalCoord1d mglEvalCoord1d +#define glEvalCoord1f mglEvalCoord1f +#define glEvalCoord1dv mglEvalCoord1dv +#define glEvalCoord1fv mglEvalCoord1fv +#define glEvalCoord2d mglEvalCoord2d +#define glEvalCoord2f mglEvalCoord2f +#define glEvalCoord2dv mglEvalCoord2dv +#define glEvalCoord2fv mglEvalCoord2fv +#define glMapGrid1d mglMapGrid1d +#define glMapGrid1f mglMapGrid1f +#define glMapGrid2d mglMapGrid2d +#define glMapGrid2f mglMapGrid2f +#define glEvalPoint1 mglEvalPoint1 +#define glEvalPoint2 mglEvalPoint2 +#define glEvalMesh1 mglEvalMesh1 +#define glEvalMesh2 mglEvalMesh2 +#define glFogf mglFogf +#define glFogi mglFogi +#define glFogfv mglFogfv +#define glFogiv mglFogiv +#define glFeedbackBuffer mglFeedbackBuffer +#define glPassThrough mglPassThrough +#define glSelectBuffer mglSelectBuffer +#define glInitNames mglInitNames +#define glLoadName mglLoadName +#define glPushName mglPushName +#define glPopName mglPopName +#define glBlendEquation mglBlendEquation +#define glBlendEquationEXT mglBlendEquationEXT +#define glBlendColor mglBlendColor +#define glBlendColorEXT mglBlendColorEXT +#define glPolygonOffsetEXT mglPolygonOffsetEXT +#define glVertexPointerEXT mglVertexPointerEXT +#define glNormalPointerEXT mglNormalPointerEXT +#define glColorPointerEXT mglColorPointerEXT +#define glIndexPointerEXT mglIndexPointerEXT +#define glTexCoordPointerEXT mglTexCoordPointerEXT +#define glEdgeFlagPointerEXT mglEdgeFlagPointerEXT +#define glGetPointervEXT mglGetPointervEXT +#define glArrayElementEXT mglArrayElementEXT +#define glDrawArraysEXT mglDrawArraysEXT +#define glGenTexturesEXT mglGenTexturesEXT +#define glDeleteTexturesEXT mglDeleteTexturesEXT +#define glBindTextureEXT mglBindTextureEXT +#define glPrioritizeTexturesEXT mglPrioritizeTexturesEXT +#define glAreTexturesResidentEXT mglAreTexturesResidentEXT +#define glIsTextureEXT mglIsTextureEXT +#define glTexImage3DEXT mglTexImage3DEXT +#define glTexSubImage3DEXT mglTexSubImage3DEXT +#define glCopyTexSubImage3DEXT mglCopyTexSubImage3DEXT +#define glColorTable mglColorTable +#define glColorTableParameteriv mglColorTableParameteriv +#define glColorTableParameterfv mglColorTableParameterfv +#define glColorSubTable mglColorSubTable +#define glGetColorTable mglGetColorTable +#define glGetColorTableParameteriv mglGetColorTableParameteriv +#define glGetColorTableParameterfv mglGetColorTableParameterfv +#define glColorTableEXT mglColorTableEXT +#define glColorSubTableEXT mglColorSubTableEXT +#define glGetColorTableEXT mglGetColorTableEXT +#define glGetColorTableParameterfvEXT mglGetColorTableParameterfvEXT +#define glGetColorTableParameterivEXT mglGetColorTableParameterivEXT +#define glMultiTexCoord1dSGIS mglMultiTexCoord1dSGIS +#define glMultiTexCoord1dvSGIS mglMultiTexCoord1dvSGIS +#define glMultiTexCoord1fSGIS mglMultiTexCoord1fSGIS +#define glMultiTexCoord1fvSGIS mglMultiTexCoord1fvSGIS +#define glMultiTexCoord1iSGIS mglMultiTexCoord1iSGIS +#define glMultiTexCoord1ivSGIS mglMultiTexCoord1ivSGIS +#define glMultiTexCoord1sSGIS mglMultiTexCoord1sSGIS +#define glMultiTexCoord1svSGIS mglMultiTexCoord1svSGIS +#define glMultiTexCoord2dSGIS mglMultiTexCoord2dSGIS +#define glMultiTexCoord2dvSGIS mglMultiTexCoord2dvSGIS +#define glMultiTexCoord2fSGIS mglMultiTexCoord2fSGIS +#define glMultiTexCoord2fvSGIS mglMultiTexCoord2fvSGIS +#define glMultiTexCoord2iSGIS mglMultiTexCoord2iSGIS +#define glMultiTexCoord2ivSGIS mglMultiTexCoord2ivSGIS +#define glMultiTexCoord2sSGIS mglMultiTexCoord2sSGIS +#define glMultiTexCoord2svSGIS mglMultiTexCoord2svSGIS +#define glMultiTexCoord3dSGIS mglMultiTexCoord3dSGIS +#define glMultiTexCoord3dvSGIS mglMultiTexCoord3dvSGIS +#define glMultiTexCoord3fSGIS mglMultiTexCoord3fSGIS +#define glMultiTexCoord3fvSGIS mglMultiTexCoord3fvSGIS +#define glMultiTexCoord3iSGIS mglMultiTexCoord3iSGIS +#define glMultiTexCoord3ivSGIS mglMultiTexCoord3ivSGIS +#define glMultiTexCoord3sSGIS mglMultiTexCoord3sSGIS +#define glMultiTexCoord3svSGIS mglMultiTexCoord3svSGIS +#define glMultiTexCoord4dSGIS mglMultiTexCoord4dSGIS +#define glMultiTexCoord4dvSGIS mglMultiTexCoord4dvSGIS +#define glMultiTexCoord4fSGIS mglMultiTexCoord4fSGIS +#define glMultiTexCoord4fvSGIS mglMultiTexCoord4fvSGIS +#define glMultiTexCoord4iSGIS mglMultiTexCoord4iSGIS +#define glMultiTexCoord4ivSGIS mglMultiTexCoord4ivSGIS +#define glMultiTexCoord4sSGIS mglMultiTexCoord4sSGIS +#define glMultiTexCoord4svSGIS mglMultiTexCoord4svSGIS +#define glMultiTexCoordPointerSGIS mglMultiTexCoordPointerSGIS +#define glSelectTextureSGIS mglSelectTextureSGIS +#define glSelectTextureCoordSetSGIS mglSelectTextureCoordSetSGIS +#define glActiveTextureARB mglActiveTextureARB +#define glClientActiveTextureARB mglClientActiveTextureARB +#define glMultiTexCoord1dARB mglMultiTexCoord1dARB +#define glMultiTexCoord1dvARB mglMultiTexCoord1dvARB +#define glMultiTexCoord1fARB mglMultiTexCoord1fARB +#define glMultiTexCoord1fvARB mglMultiTexCoord1fvARB +#define glMultiTexCoord1iARB mglMultiTexCoord1iARB +#define glMultiTexCoord1ivARB mglMultiTexCoord1ivARB +#define glMultiTexCoord1sARB mglMultiTexCoord1sARB +#define glMultiTexCoord1svARB mglMultiTexCoord1svARB +#define glMultiTexCoord2dARB mglMultiTexCoord2dARB +#define glMultiTexCoord2dvARB mglMultiTexCoord2dvARB +#define glMultiTexCoord2fARB mglMultiTexCoord2fARB +#define glMultiTexCoord2fvARB mglMultiTexCoord2fvARB +#define glMultiTexCoord2iARB mglMultiTexCoord2iARB +#define glMultiTexCoord2ivARB mglMultiTexCoord2ivARB +#define glMultiTexCoord2sARB mglMultiTexCoord2sARB +#define glMultiTexCoord2svARB mglMultiTexCoord2svARB +#define glMultiTexCoord3dARB mglMultiTexCoord3dARB +#define glMultiTexCoord3dvARB mglMultiTexCoord3dvARB +#define glMultiTexCoord3fARB mglMultiTexCoord3fARB +#define glMultiTexCoord3fvARB mglMultiTexCoord3fvARB +#define glMultiTexCoord3iARB mglMultiTexCoord3iARB +#define glMultiTexCoord3ivARB mglMultiTexCoord3ivARB +#define glMultiTexCoord3sARB mglMultiTexCoord3sARB +#define glMultiTexCoord3svARB mglMultiTexCoord3svARB +#define glMultiTexCoord4dARB mglMultiTexCoord4dARB +#define glMultiTexCoord4dvARB mglMultiTexCoord4dvARB +#define glMultiTexCoord4fARB mglMultiTexCoord4fARB +#define glMultiTexCoord4fvARB mglMultiTexCoord4fvARB +#define glMultiTexCoord4iARB mglMultiTexCoord4iARB +#define glMultiTexCoord4ivARB mglMultiTexCoord4ivARB +#define glMultiTexCoord4sARB mglMultiTexCoord4sARB +#define glMultiTexCoord4svARB mglMultiTexCoord4svARB +#define glPointParameterfEXT mglPointParameterfEXT +#define glPointParameterfvEXT mglPointParameterfvEXT +#define glBlendFuncSeparateINGR mglBlendFuncSeparateINGR +#define glWindowPos2iMESA mglWindowPos2iMESA +#define glWindowPos2sMESA mglWindowPos2sMESA +#define glWindowPos2fMESA mglWindowPos2fMESA +#define glWindowPos2dMESA mglWindowPos2dMESA +#define glWindowPos2ivMESA mglWindowPos2ivMESA +#define glWindowPos2svMESA mglWindowPos2svMESA +#define glWindowPos2fvMESA mglWindowPos2fvMESA +#define glWindowPos2dvMESA mglWindowPos2dvMESA +#define glWindowPos3iMESA mglWindowPos3iMESA +#define glWindowPos3sMESA mglWindowPos3sMESA +#define glWindowPos3fMESA mglWindowPos3fMESA +#define glWindowPos3dMESA mglWindowPos3dMESA +#define glWindowPos3ivMESA mglWindowPos3ivMESA +#define glWindowPos3svMESA mglWindowPos3svMESA +#define glWindowPos3fvMESA mglWindowPos3fvMESA +#define glWindowPos3dvMESA mglWindowPos3dvMESA +#define glWindowPos4iMESA mglWindowPos4iMESA +#define glWindowPos4sMESA mglWindowPos4sMESA +#define glWindowPos4fMESA mglWindowPos4fMESA +#define glWindowPos4dMESA mglWindowPos4dMESA +#define glWindowPos4ivMESA mglWindowPos4ivMESA +#define glWindowPos4svMESA mglWindowPos4svMESA +#define glWindowPos4fvMESA mglWindowPos4fvMESA +#define glWindowPos4dvMESA mglWindowPos4dvMESA +#define glResizeBuffersMESA mglResizeBuffersMESA +#define glDrawRangeElements mglDrawRangeElements +#define glTexImage3D mglTexImage3D +#define glTexSubImage3D mglTexSubImage3D +#define glCopyTexSubImage3D mglCopyTexSubImage3D +#define glHistogram mglHistogram +#define glResetHistogram mglResetHistogram +#define glGetHistogram mglGetHistogram +#define glGetHistogramParameterfv mglGetHistogramParameterfv +#define glGetHistogramParameteriv mglGetHistogramParameteriv +#define glMinmax mglMinmax +#define glResetMinmax mglResetMinmax +#define glGetMinmax mglGetMinmax +#define glGetMinmaxParameterfv mglGetMinmaxParameterfv +#define glGetMinmaxParameteriv mglGetMinmaxParameteriv +#define glConvolutionFilter1D mglConvolutionFilter1D +#define glConvolutionFilter2D mglConvolutionFilter2D +#define glConvolutionParameterf mglConvolutionParameterf +#define glConvolutionParameterfv mglConvolutionParameterfv +#define glConvolutionParameteri mglConvolutionParameteri +#define glConvolutionParameteriv mglConvolutionParameteriv +#define glCopyConvolutionFilter1D mglCopyConvolutionFilter1D +#define glCopyConvolutionFilter2D mglCopyConvolutionFilter2D +#define glGetConvolutionFilter mglGetConvolutionFilter +#define glGetConvolutionParameterfv mglGetConvolutionParameterfv +#define glGetConvolutionParameteriv mglGetConvolutionParameteriv +#define glSeparableFilter2D mglSeparableFilter2D +#define glGetSeparableFilter mglGetSeparableFilter +#define glCopyColorSubTable mglCopyColorSubTable +#define glCopyColorTable mglCopyColorTable +#define glLockArraysEXT mglLockArraysEXT +#define glUnlockArraysEXT mglUnlockArraysEXT +#define glGetFinalCombinerInputParameterivNV mglGetFinalCombinerInputParameterivNV +#define glGetFinalCombinerInputParameterfvNV mglGetFinalCombinerInputParameterfvNV +#define glGetCombinerOutputParameterivNV mglGetCombinerOutputParameterivNV +#define glGetCombinerOutputParameterfvNV mglGetCombinerOutputParameterfvNV +#define glGetCombinerInputParameterivNV mglGetCombinerInputParameterivNV +#define glGetCombinerInputParameterfvNV mglGetCombinerInputParameterfvNV +#define glFinalCombinerInputNV mglFinalCombinerInputNV +#define glCombinerOutputNV mglCombinerOutputNV +#define glCombinerInputNV mglCombinerInputNV +#define glCombinerParameteriNV mglCombinerParameteriNV +#define glCombinerParameterivNV mglCombinerParameterivNV +#define glCombinerParameterfNV mglCombinerParameterfNV +#define glCombinerParameterfvNV mglCombinerParameterfvNV +#define glVertexArrayRangeNV mglVertexArrayRangeNV +#define glFlushVertexArrayRangeNV mglFlushVertexArrayRangeNV +#define glVertexWeightPointerEXT mglVertexWeightPointerEXT +#define glVertexWeightfvEXT mglVertexWeightfvEXT +#define glVertexWeightfEXT mglVertexWeightfEXT +#define glBlendFuncSeparateEXT mglBlendFuncSeparateEXT +#define glFogCoordPointerEXT mglFogCoordPointerEXT +#define glFogCoorddEXT mglFogCoorddEXT +#define glFogCoordfvEXT mglFogCoordfvEXT +#define glFogCoordfEXT mglFogCoordfEXT +#define glLightEnviSGIX mglLightEnviSGIX +#define glGetFragmentMaterialivSGIX mglGetFragmentMaterialivSGIX +#define glGetFragmentMaterialfvSGIX mglGetFragmentMaterialfvSGIX +#define glGetFragmentLightivSGIX mglGetFragmentLightivSGIX +#define glGetFragmentLightfvSGIX mglGetFragmentLightfvSGIX +#define glFragmentMaterialivSGIX mglFragmentMaterialivSGIX +#define glFragmentMaterialiSGIX mglFragmentMaterialiSGIX +#define glFragmentMaterialfvSGIX mglFragmentMaterialfvSGIX +#define glFragmentMaterialfSGIX mglFragmentMaterialfSGIX +#define glFragmentLightModelivSGIX mglFragmentLightModelivSGIX +#define glFragmentLightModeliSGIX mglFragmentLightModeliSGIX +#define glFragmentLightModelfvSGIX mglFragmentLightModelfvSGIX +#define glFragmentLightModelfSGIX mglFragmentLightModelfSGIX +#define glFragmentLightivSGIX mglFragmentLightivSGIX +#define glFragmentLightiSGIX mglFragmentLightiSGIX +#define glFragmentLightfvSGIX mglFragmentLightfvSGIX +#define glFragmentLightfSGIX mglFragmentLightfSGIX +#define glFragmentColorMaterialSGIX mglFragmentColorMaterialSGIX +#define glCullParameterdvEXT mglCullParameterdvEXT +#define glCullParameterfvEXT mglCullParameterfvEXT +#define glIndexFuncEXT mglIndexFuncEXT +#define glIndexMaterialEXT mglIndexMaterialEXT +#define glListParameterivSGIX mglListParameterivSGIX +#define glListParameteriSGIX mglListParameteriSGIX +#define glListParameterfvSGIX mglListParameterfvSGIX +#define glListParameterfSGIX mglListParameterfSGIX +#define glGetListParameterivSGIX mglGetListParameterivSGIX +#define glGetListParameterfvSGIX mglGetListParameterfvSGIX +#define glHintPGI mglHintPGI +#define glCopyColorSubTableEXT mglCopyColorSubTableEXT +#define glFlushRasterSGIX mglFlushRasterSGIX +#define glReferencePlaneSGIX mglReferencePlaneSGIX +#define glTagSampleBufferSGIX mglTagSampleBufferSGIX +#define glFrameZoomSGIX mglFrameZoomSGIX +#define glGetInstrumentsSGIX mglGetInstrumentsSGIX +#define glPollInstrumentsSGIX mglPollInstrumentsSGIX +#define glReadInstrumentsSGIX mglReadInstrumentsSGIX +#define glStopInstrumentsSGIX mglStopInstrumentsSGIX +#define glStartInstrumentsSGIX mglStartInstrumentsSGIX +#define glInstrumentsBufferSGIX mglInstrumentsBufferSGIX +#define glPointParameterfvSGIS mglPointParameterfvSGIS +#define glPointParameterfSGIS mglPointParameterfSGIS +#define glSpriteParameterivSGIX mglSpriteParameterivSGIX +#define glSpriteParameteriSGIX mglSpriteParameteriSGIX +#define glSpriteParameterfvSGIX mglSpriteParameterfvSGIX +#define glSpriteParameterfSGIX mglSpriteParameterfSGIX +#define glSamplePatternSGIS mglSamplePatternSGIS +#define glSampleMaskSGIS mglSampleMaskSGIS +#define glSharpenTexFuncSGIS mglSharpenTexFuncSGIS +#define glGetSharpenTexFuncSGIS mglGetSharpenTexFuncSGIS +#define glGetDetailTexFuncSGIS mglGetDetailTexFuncSGIS +#define glDetailTexFuncSGIS mglDetailTexFuncSGIS +#define glTexSubImage4DSGIS mglTexSubImage4DSGIS +#define glTexImage4DSGIS mglTexImage4DSGIS +#define glGetPixelTexGenParameterivSGIS mglGetPixelTexGenParameterivSGIS +#define glGetPixelTexGenParameterfvSGIS mglGetPixelTexGenParameterfvSGIS +#define glPixelTexGenParameteriSGIS mglPixelTexGenParameteriSGIS +#define glPixelTexGenParameterfSGIS mglPixelTexGenParameterfSGIS +#define glGetColorTableParameterivSGI mglGetColorTableParameterivSGI +#define glGetColorTableParameterfvSGI mglGetColorTableParameterfvSGI +#define glGetColorTableSGI mglGetColorTableSGI +#define glCopyColorTableSGI mglCopyColorTableSGI +#define glColorTableParameterivSGI mglColorTableParameterivSGI +#define glColorTableParameterfvSGI mglColorTableParameterfvSGI +#define glColorTableSGI mglColorTableSGI +#define glSeparableFilter2DEXT mglSeparableFilter2DEXT +#define glGetSeparableFilterEXT mglGetSeparableFilterEXT +#define glGetConvolutionParameterfvEXT mglGetConvolutionParameterfvEXT +#define glGetConvolutionParameterivEXT mglGetConvolutionParameterivEXT +#define glGetConvolutionFilterEXT mglGetConvolutionFilterEXT +#define glCopyConvolutionFilter2DEXT mglCopyConvolutionFilter2DEXT +#define glCopyConvolutionFilter1DEXT mglCopyConvolutionFilter1DEXT +#define glConvolutionParameterivEXT mglConvolutionParameterivEXT +#define glConvolutionParameteriEXT mglConvolutionParameteriEXT +#define glConvolutionParameterfvEXT mglConvolutionParameterfvEXT +#define glConvolutionParameterfEXT mglConvolutionParameterfEXT +#define glConvolutionFilter2DEXT mglConvolutionFilter2DEXT +#define glConvolutionFilter1DEXT mglConvolutionFilter1DEXT +#define glResetMinmaxEXT mglResetMinmaxEXT +#define glResetHistogramEXT mglResetHistogramEXT +#define glMinmaxEXT mglMinmaxEXT +#define glHistogramEXT mglHistogramEXT +#define glGetMinmaxParameterivEXT mglGetMinmaxParameterivEXT +#define glGetMinmaxParameterfvEXT mglGetMinmaxParameterfvEXT +#define glGetMinmaxEXT mglGetMinmaxEXT +#define glGetHistogramParameterivEXT mglGetHistogramParameterivEXT +#define glGetHistogramParameterfvEXT mglGetHistogramParameterfvEXT +#define glGetHistogramEXT mglGetHistogramEXT +#define glCopyTexSubImage2DEXT mglCopyTexSubImage2DEXT +#define glCopyTexSubImage1DEXT mglCopyTexSubImage1DEXT +#define glCopyTexImage2DEXT mglCopyTexImage2DEXT +#define glCopyTexImage1DEXT mglCopyTexImage1DEXT +#define glTexSubImage2DEXT mglTexSubImage2DEXT +#define glTexSubImage1DEXT mglTexSubImage1DEXT +#define glSampleCoverageARB mglSampleCoverageARB +#define glSamplePassARB mglSamplePassARB +#define glMultTransposeMatrixfARB mglMultTransposeMatrixfARB +#define glMultTransposeMatrixdARB mglMultTransposeMatrixdARB +#define glLoadTransposeMatrixfARB mglLoadTransposeMatrixfARB +#define glLoadTransposeMatrixdARB mglLoadTransposeMatrixdARB + +#endif + diff --git a/Dependencies/OpenGL/GL/glu_mangle.h b/Dependencies/OpenGL/GL/glu_mangle.h new file mode 100644 index 0000000..a3386eb --- /dev/null +++ b/Dependencies/OpenGL/GL/glu_mangle.h @@ -0,0 +1,97 @@ +/* $Id: glu_mangle.h,v 1.2 1999/09/10 02:08:19 gareth Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.0 + * Copyright (C) 1995-1998 Brian Paul + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +/* + * $Log: glu_mangle.h,v $ + * Revision 1.2 1999/09/10 02:08:19 gareth + * Added GLU 1.3 tessellation (except winding rule code). + * + * Revision 1.1.1.1 1999/08/19 00:55:40 jtg + * Imported sources + * + * Revision 3.1 1999/06/21 22:00:42 brianp + * added #ifndef GLU_MANGLE_H stuff + * + * Revision 3.0 1998/02/20 05:04:45 brianp + * initial rev + * + */ + +#ifndef GLU_MANGLE_H +#define GLU_MANGLE_H + + +#define gluLookAt mgluLookAt +#define gluOrtho2D mgluOrtho2D +#define gluPerspective mgluPerspective +#define gluPickMatrix mgluPickMatrix +#define gluProject mgluProject +#define gluUnProject mgluUnProject +#define gluErrorString mgluErrorString +#define gluScaleImage mgluScaleImage +#define gluBuild1DMipmaps mgluBuild1DMipmaps +#define gluBuild2DMipmaps mgluBuild2DMipmaps +#define gluNewQuadric mgluNewQuadric +#define gluDeleteQuadric mgluDeleteQuadric +#define gluQuadricDrawStyle mgluQuadricDrawStyle +#define gluQuadricOrientation mgluQuadricOrientation +#define gluQuadricNormals mgluQuadricNormals +#define gluQuadricTexture mgluQuadricTexture +#define gluQuadricCallback mgluQuadricCallback +#define gluCylinder mgluCylinder +#define gluSphere mgluSphere +#define gluDisk mgluDisk +#define gluPartialDisk mgluPartialDisk +#define gluNewNurbsRenderer mgluNewNurbsRenderer +#define gluDeleteNurbsRenderer mgluDeleteNurbsRenderer +#define gluLoadSamplingMatrices mgluLoadSamplingMatrices +#define gluNurbsProperty mgluNurbsProperty +#define gluGetNurbsProperty mgluGetNurbsProperty +#define gluBeginCurve mgluBeginCurve +#define gluEndCurve mgluEndCurve +#define gluNurbsCurve mgluNurbsCurve +#define gluBeginSurface mgluBeginSurface +#define gluEndSurface mgluEndSurface +#define gluNurbsSurface mgluNurbsSurface +#define gluBeginTrim mgluBeginTrim +#define gluEndTrim mgluEndTrim +#define gluPwlCurve mgluPwlCurve +#define gluNurbsCallback mgluNurbsCallback +#define gluNewTess mgluNewTess +#define gluDeleteTess mgluDeleteTess +#define gluTessBeginPolygon mgluTessBeginPolygon +#define gluTessBeginContour mgluTessBeginContour +#define gluTessVertex mgluTessVertex +#define gluTessEndPolygon mgluTessEndPolygon +#define gluTessEndContour mgluTessEndContour +#define gluTessProperty mgluTessProperty +#define gluTessNormal mgluTessNormal +#define gluTessCallback mgluTessCallback +#define gluGetTessProperty mgluGetTessProperty +#define gluBeginPolygon mgluBeginPolygon +#define gluNextContour mgluNextContour +#define gluEndPolygon mgluEndPolygon +#define gluGetString mgluGetString + +#endif + diff --git a/Dependencies/OpenGL/GL/glut.h b/Dependencies/OpenGL/GL/glut.h new file mode 100644 index 0000000..3897dab --- /dev/null +++ b/Dependencies/OpenGL/GL/glut.h @@ -0,0 +1,767 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. + + tjump@spgs.com contributes: + If users are building glut code on MS Windows, then they should + make sure they include windows.h early, let's not get into a + header definitions war since MS has proven it's capability to + change header dependencies w/o publishing they have done so. + + So, let's not include windows.h here, as it's not really required and + MS own gl/gl.h *should* include it if the dependency is there. */ + +/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA + in your compile preprocessor options. */ +# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) +# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +/* To enable automatic SGI OpenGL for Windows library usage for GLUT, + define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ +# ifdef GLUT_USE_SGI_OPENGL +# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */ +# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */ +# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */ +# else +# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */ +# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ +# endif +# endif + +/* To disable supression of annoying warnings about floats being promoted + to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor + options. */ +# ifndef GLUT_NO_WARNING_DISABLE +# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ +# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +# endif + +/* Win32 has an annoying issue where there are multiple C run-time + libraries (CRTs). If the executable is linked with a different CRT + from the GLUT DLL, the GLUT DLL will not share the same CRT static + data seen by the executable. In particular, atexit callbacks registered + in the executable will not be called if GLUT calls its (different) + exit routine). GLUT is typically built with the + "/MD" option (the CRT with multithreading DLL support), but the Visual + C++ linker default is "/ML" (the single threaded CRT). + + One workaround to this issue is requiring users to always link with + the same CRT as GLUT is compiled with. That requires users supply a + non-standard option. GLUT 3.7 has its own built-in workaround where + the executable's "exit" function pointer is covertly passed to GLUT. + GLUT then calls the executable's exit function pointer to ensure that + any "atexit" calls registered by the application are called if GLUT + needs to exit. + + Note that the __glut*WithExit routines should NEVER be called directly. + To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ + +/* XXX This is from Win32's */ +# if !defined(_MSC_VER) && !defined(__cdecl) + /* Define __cdecl for non-Microsoft compilers. */ +# define __cdecl +# define GLUT_DEFINED___CDECL +# endif +# ifndef _CRTIMP +# ifdef _NTSDK + /* Definition compatible with NT SDK */ +# define _CRTIMP +# else + /* Current definition */ +# ifdef _DLL +# define _CRTIMP __declspec(dllimport) +# else +# define _CRTIMP +# endif +# endif +# define GLUT_DEFINED__CRTIMP +# endif +# ifndef GLUT_BUILDING_LIB +extern _CRTIMP void __cdecl exit(int); +# endif + +/* GLUT callback calling convention for Win32. */ +# define GLUTCALLBACK __cdecl + +/* for callback/function pointer defs */ +# define GLUTAPIENTRYV __cdecl + +/* glut-win32 specific macros, defined to prevent collision with + and redifinition of Windows system defs, also removes requirement of + pretty much any standard windows header from this file */ + +#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__) +# define GLUTAPIENTRY __stdcall +#else +# define GLUTAPIENTRY +#endif + +/* GLUT API entry point declarations for Win32. */ +#if defined(GLUT_BUILDING_LIB) && defined(_DLL) +# define GLUTAPI __declspec(dllexport) +#elif defined(_DLL) +# define GLUTAPI __declspec(dllimport) +#else +# define GLUTAPI extern +#endif + +#if defined(_WIN32) && !defined(_WINDEF_) && !defined(MESA) +# if !defined(MESA_MINWARN) +# pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" ) +# pragma message( "----: and PROC typedef. If you receive compiler warnings about either ") +# pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" ) +# endif +# define CALLBACK __stdcall +typedef int (GLUTAPIENTRY *PROC)(); +typedef void *HGLRC; +typedef void *HDC; +typedef unsigned long COLORREF; +#endif + +#if defined(_WIN32) && !defined(_WINGDI_) && !defined(MESA) +# if !defined(MESA_MINWARN) +# pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" ) +# pragma message( "----: and macros. If you receive compiler warnings about any being multiply ") +# pragma message( "----: defined you should include WINDOWS.H priot to gl/glut.h" ) +# endif +# define WGL_FONT_LINES 0 +# define WGL_FONT_POLYGONS 1 +# ifdef UNICODE +# define wglUseFontBitmaps wglUseFontBitmapsW +# define wglUseFontOutlines wglUseFontOutlinesW +# else +# define wglUseFontBitmaps wglUseFontBitmapsA +# define wglUseFontOutlines wglUseFontOutlinesA +# endif /* !UNICODE */ +typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; +typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; +# pragma warning( push ) +# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ +# define WGLAPI __declspec(dllimport) +WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); +WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC); +WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *); +WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc); +WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void); +WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC); +WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int); +WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void); +WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*); +WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *); +WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int); +WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); +WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR); +WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR); +WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *); +WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc); +WGLAPI int GLAPIENTRY wglMakeCurrent(HDC, HGLRC); +WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int); +WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *); +WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC); +WGLAPI int GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int); +WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long); +WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long); +WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); +WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); +WGLAPI int GLAPIENTRY SwapBuffers(HDC); +WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); +WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); +WGLAPI int GLAPIENTRY GetPixelFormat(HDC); +WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); +# undef WGLAPI +# pragma warning( pop ) +#endif + +#else /* _WIN32 not defined */ + +/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */ +# define GLUTAPIENTRY +# define GLUTAPIENTRYV +# define GLUT_APIENTRY_DEFINED +# define GLUTCALLBACK +# define GLUTAPI extern +/* Prototype exit for the non-Win32 case (see above). */ +/*extern void exit(int); this screws up gcc -ansi -pedantic! */ +#endif + + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 3 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +GLUTAPI void *glutStrokeRoman; +GLUTAPI void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +GLUTAPI void *glutBitmap9By15; +GLUTAPI void *glutBitmap8By13; +GLUTAPI void *glutBitmapTimesRoman10; +GLUTAPI void *glutBitmapTimesRoman24; +GLUTAPI void *glutBitmapHelvetica10; +GLUTAPI void *glutBitmapHelvetica12; +GLUTAPI void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +GLUTAPI void GLUTAPIENTRY glutInit(int *argcp, char **argv); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI void GLUTAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static void GLUTAPIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } +#define glutInit glutInit_ATEXIT_HACK +#endif +#endif +GLUTAPI void GLUTAPIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void GLUTAPIENTRY glutInitDisplayString(const char *string); +#endif +GLUTAPI void GLUTAPIENTRY glutInitWindowPosition(int x, int y); +GLUTAPI void GLUTAPIENTRY glutInitWindowSize(int width, int height); +GLUTAPI void GLUTAPIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +GLUTAPI int GLUTAPIENTRY glutCreateWindow(const char *title); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI int GLUTAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static int GLUTAPIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } +#define glutCreateWindow glutCreateWindow_ATEXIT_HACK +#endif +#endif +GLUTAPI int GLUTAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +GLUTAPI void GLUTAPIENTRY glutDestroyWindow(int win); +GLUTAPI void GLUTAPIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +GLUTAPI void GLUTAPIENTRY glutPostWindowRedisplay(int win); +#endif +GLUTAPI void GLUTAPIENTRY glutSwapBuffers(void); +GLUTAPI int GLUTAPIENTRY glutGetWindow(void); +GLUTAPI void GLUTAPIENTRY glutSetWindow(int win); +GLUTAPI void GLUTAPIENTRY glutSetWindowTitle(const char *title); +GLUTAPI void GLUTAPIENTRY glutSetIconTitle(const char *title); +GLUTAPI void GLUTAPIENTRY glutPositionWindow(int x, int y); +GLUTAPI void GLUTAPIENTRY glutReshapeWindow(int width, int height); +GLUTAPI void GLUTAPIENTRY glutPopWindow(void); +GLUTAPI void GLUTAPIENTRY glutPushWindow(void); +GLUTAPI void GLUTAPIENTRY glutIconifyWindow(void); +GLUTAPI void GLUTAPIENTRY glutShowWindow(void); +GLUTAPI void GLUTAPIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +GLUTAPI void GLUTAPIENTRY glutFullScreen(void); +GLUTAPI void GLUTAPIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void GLUTAPIENTRY glutWarpPointer(int x, int y); +#endif + +/* GLUT overlay sub-API. */ +GLUTAPI void GLUTAPIENTRY glutEstablishOverlay(void); +GLUTAPI void GLUTAPIENTRY glutRemoveOverlay(void); +GLUTAPI void GLUTAPIENTRY glutUseLayer(GLenum layer); +GLUTAPI void GLUTAPIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +GLUTAPI void GLUTAPIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +GLUTAPI void GLUTAPIENTRY glutShowOverlay(void); +GLUTAPI void GLUTAPIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +GLUTAPI int GLUTAPIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int)); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI int GLUTAPIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static int GLUTAPIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); } +#define glutCreateMenu glutCreateMenu_ATEXIT_HACK +#endif +#endif +GLUTAPI void GLUTAPIENTRY glutDestroyMenu(int menu); +GLUTAPI int GLUTAPIENTRY glutGetMenu(void); +GLUTAPI void GLUTAPIENTRY glutSetMenu(int menu); +GLUTAPI void GLUTAPIENTRY glutAddMenuEntry(const char *label, int value); +GLUTAPI void GLUTAPIENTRY glutAddSubMenu(const char *label, int submenu); +GLUTAPI void GLUTAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +GLUTAPI void GLUTAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +GLUTAPI void GLUTAPIENTRY glutRemoveMenuItem(int item); +GLUTAPI void GLUTAPIENTRY glutAttachMenu(int button); +GLUTAPI void GLUTAPIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +GLUTAPI void GLUTAPIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void)); +GLUTAPI void GLUTAPIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height)); +GLUTAPI void GLUTAPIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void GLUTAPIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void GLUTAPIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state)); +GLUTAPI void GLUTAPIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state)); +GLUTAPI void GLUTAPIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void)); +GLUTAPI void GLUTAPIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); +GLUTAPI void GLUTAPIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state)); +#if (GLUT_API_VERSION >= 2) +GLUTAPI void GLUTAPIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); +GLUTAPI void GLUTAPIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); +GLUTAPI void GLUTAPIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state)); +GLUTAPI void GLUTAPIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state)); +GLUTAPI void GLUTAPIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value)); +GLUTAPI void GLUTAPIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void GLUTAPIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +GLUTAPI void GLUTAPIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void GLUTAPIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +GLUTAPI void GLUTAPIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +GLUTAPI GLfloat GLUTAPIENTRY glutGetColor(int ndx, int component); +GLUTAPI void GLUTAPIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +GLUTAPI int GLUTAPIENTRY glutGet(GLenum type); +GLUTAPI int GLUTAPIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +GLUTAPI int GLUTAPIENTRY glutGetModifiers(void); +GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type); +#endif + +/* GLUT font sub-API */ +GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character); +GLUTAPI int GLUTAPIENTRY glutBitmapWidth(void *font, int character); +GLUTAPI void GLUTAPIENTRY glutStrokeCharacter(void *font, int character); +GLUTAPI int GLUTAPIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI int GLUTAPIENTRY glutBitmapLength(void *font, const unsigned char *string); +GLUTAPI int GLUTAPIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +GLUTAPI void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutWireCube(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutSolidCube(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +GLUTAPI void GLUTAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +GLUTAPI void GLUTAPIENTRY glutWireDodecahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidDodecahedron(void); +GLUTAPI void GLUTAPIENTRY glutWireTeapot(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutSolidTeapot(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutWireOctahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidOctahedron(void); +GLUTAPI void GLUTAPIENTRY glutWireTetrahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidTetrahedron(void); +GLUTAPI void GLUTAPIENTRY glutWireIcosahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +GLUTAPI int GLUTAPIENTRY glutVideoResizeGet(GLenum param); +GLUTAPI void GLUTAPIENTRY glutSetupVideoResizing(void); +GLUTAPI void GLUTAPIENTRY glutStopVideoResizing(void); +GLUTAPI void GLUTAPIENTRY glutVideoResize(int x, int y, int width, int height); +GLUTAPI void GLUTAPIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +GLUTAPI void GLUTAPIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +GLUTAPI void GLUTAPIENTRY glutIgnoreKeyRepeat(int ignore); +GLUTAPI void GLUTAPIENTRY glutSetKeyRepeat(int repeatMode); +GLUTAPI void GLUTAPIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +GLUTAPI void GLUTAPIENTRY glutGameModeString(const char *string); +GLUTAPI int GLUTAPIENTRY glutEnterGameMode(void); +GLUTAPI void GLUTAPIENTRY glutLeaveGameMode(void); +GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} +#endif + +#if 0 +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#ifdef GLUT_DEFINED___CDECL +# undef GLUT_DEFINED___CDECL +# undef __cdecl +#endif + +#ifdef GLUT_DEFINED__CRTIMP +# undef GLUT_DEFINED__CRTIMP +# undef _CRTIMP +#endif +#endif + +#endif /* __glut_h__ */ + diff --git a/Dependencies/OpenGL/GL/glx.h b/Dependencies/OpenGL/GL/glx.h new file mode 100644 index 0000000..72aec67 --- /dev/null +++ b/Dependencies/OpenGL/GL/glx.h @@ -0,0 +1,443 @@ +/* $Id: glx.h,v 1.22.4.1 2000/11/25 18:52:02 brianp Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.4 + * + * Copyright (C) 1999-2000 Brian Paul All Rights Reserved. + * + * 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 + * BRIAN PAUL 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. + */ + + +#ifndef GLX_H +#define GLX_H + + +#ifdef __VMS +# ifdef __cplusplus +/* VMS Xlib.h gives problems with C++. + * this avoids a bunch of trivial warnings */ +#pragma message disable nosimpint +#endif +#endif +#include +#include +#ifdef __VMS +# ifdef __cplusplus +#pragma message enable nosimpint +#endif +#endif +#include "GL/gl.h" + + +#if defined(USE_MGL_NAMESPACE) +#include "glx_mangle.h" +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define GLX_VERSION_1_1 1 +#define GLX_VERSION_1_2 1 +#define GLX_VERSION_1_3 1 + +#define GLX_EXTENSION_NAME "GLX" + + + +/* + * Tokens for glXChooseVisual and glXGetConfig: + */ +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 + + +/* + * Error codes returned by glXGetConfig: + */ +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + + +/* + * GLX 1.1 and later: + */ +#define GLX_VENDOR 1 +#define GLX_VERSION 2 +#define GLX_EXTENSIONS 3 + + +/* + * GLX 1.3 and later: + */ +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_DONT_CARE 0xFFFFFFFF +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_BUFFER 0x801C +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_VISUAL_ID 0x800B +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_NONE 0x8000 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_SCREEN 0x800C +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 + + + +typedef void * GLXContext; +typedef XID GLXPixmap; +typedef XID GLXDrawable; +/* GLX 1.3 and later */ +typedef void * GLXFBConfig; +typedef XID GLXFBConfigID; +typedef XID GLXContextID; +typedef XID GLXWindow; +typedef XID GLXPbuffer; + + + +extern XVisualInfo* glXChooseVisual( Display *dpy, int screen, + int *attribList ); + +extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, + GLXContext shareList, Bool direct ); + +extern void glXDestroyContext( Display *dpy, GLXContext ctx ); + +extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, + GLXContext ctx); + +extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, + unsigned long mask ); + +extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); + +extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, + Pixmap pixmap ); + +extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); + +extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); + +extern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); + +extern Bool glXIsDirect( Display *dpy, GLXContext ctx ); + +extern int glXGetConfig( Display *dpy, XVisualInfo *visual, + int attrib, int *value ); + +extern GLXContext glXGetCurrentContext( void ); + +extern GLXDrawable glXGetCurrentDrawable( void ); + +extern void glXWaitGL( void ); + +extern void glXWaitX( void ); + +extern void glXUseXFont( Font font, int first, int count, int list ); + + + +/* GLX 1.1 and later */ +extern const char *glXQueryExtensionsString( Display *dpy, int screen ); + +extern const char *glXQueryServerString( Display *dpy, int screen, int name ); + +extern const char *glXGetClientString( Display *dpy, int name ); + + +/* GLX 1.2 and later */ +extern Display *glXGetCurrentDisplay( void ); + + +/* GLX 1.3 and later */ +extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, + const int *attribList, int *nitems ); + +extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, + int attribute, int *value ); + +extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, + int *nelements ); + +extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, + GLXFBConfig config ); + +extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, + Window win, const int *attribList ); + +extern void glXDestroyWindow( Display *dpy, GLXWindow window ); + +extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, + Pixmap pixmap, const int *attribList ); + +extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); + +extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, + const int *attribList ); + +extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); + +extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, + unsigned int *value ); + +extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, + int renderType, GLXContext shareList, + Bool direct ); + +extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, + GLXDrawable read, GLXContext ctx ); + +extern GLXDrawable glXGetCurrentReadDrawable( void ); + +extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, + int *value ); + +extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, + unsigned long mask ); + +extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, + unsigned long *mask ); + + + +/*#ifndef GLX_GLXEXT_LEGACY*/ + +/*#include */ + +/*#else*/ + + +/* + * 28. GLX_EXT_visual_info extension + */ +#ifndef GLX_EXT_visual_info +#define GLX_EXT_visual_info 1 + +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 +#define GLX_TRUE_COLOR_EXT 0x8002 +#define GLX_DIRECT_COLOR_EXT 0x8003 +#define GLX_PSEUDO_COLOR_EXT 0x8004 +#define GLX_STATIC_COLOR_EXT 0x8005 +#define GLX_GRAY_SCALE_EXT 0x8006 +#define GLX_STATIC_GRAY_EXT 0x8007 +#define GLX_NONE_EXT 0x8000 +#define GLX_TRANSPARENT_RGB_EXT 0x8008 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009 + +#endif /* 28. GLX_EXT_visual_info extension */ + + + +/* + * 41. GLX_SGI_video_sync + */ +#ifndef GLX_SGI_video_sync +#define GLX_SGI_video_sync 1 + +extern int glXGetVideoSyncSGI(unsigned int *count); +extern int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count); + +#endif /* GLX_SGI_video_sync */ + + + +/* + * 42. GLX_EXT_visual_rating + */ +#ifndef GLX_EXT_visual_rating +#define GLX_EXT_visual_rating 1 + +#define GLX_VISUAL_CAVEAT_EXT 0x20 +/*#define GLX_NONE_EXT 0x8000*/ +#define GLX_SLOW_VISUAL_EXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D + +#endif /* GLX_EXT_visual_rating */ + + + +/* + * 47. GLX_EXT_import_context + */ +#ifndef GLX_EXT_import_context +#define GLX_EXT_import_context 1 + +#define GLX_SHARE_CONTEXT_EXT 0x800A +#define GLX_VISUAL_ID_EXT 0x800B +#define GLX_SCREEN_EXT 0x800C + +extern void glXFreeContextEXT(Display *dpy, GLXContext context); + +extern GLXContextID glXGetContextIDEXT(const GLXContext context); + +extern Display *glXGetCurrentDisplayEXT(void); + +extern GLXContext glXImportContextEXT(Display *dpy, GLXContextID contextID); + +extern int glXQueryContextInfoEXT(Display *dpy, GLXContext context, + int attribute,int *value); + +#endif /* GLX_EXT_import_context */ + + + +/* + * 215. GLX_MESA_copy_sub_buffer + */ +#ifndef GLX_MESA_copy_sub_buffer +#define GLX_MESA_copy_sub_buffer 1 + +extern void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, + int x, int y, int width, int height ); + +#endif + + + +/* + * 216. GLX_MESA_pixmap_colormap + */ +#ifndef GLX_MESA_pixmap_colormap +#define GLX_MESA_pixmap_colormap 1 + +extern GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, + Pixmap pixmap, Colormap cmap ); + +#endif /* GLX_MESA_pixmap_colormap */ + + + +/* + * 217. GLX_MESA_release_buffers + */ +#ifndef GLX_MESA_release_buffers +#define GLX_MESA_release_buffers 1 + +extern Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); + +#endif /* GLX_MESA_release_buffers */ + + + +/* + * 218. GLX_MESA_set_3dfx_mode + */ +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_MESA_set_3dfx_mode 1 + +#define GLX_3DFX_WINDOW_MODE_MESA 0x1 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 + +extern GLboolean glXSet3DfxModeMESA( GLint mode ); + +#endif /* GLX_MESA_set_3dfx_mode */ + + + +/* + * ARB 2. GLX_ARB_get_proc_address + */ +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 + +extern void (*glXGetProcAddressARB(const GLubyte *procName))(); + +#endif /* GLX_ARB_get_proc_address */ + + + +/*#endif*/ /* GLX_GLXEXT_LEGACY */ + + + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Dependencies/OpenGL/GL/glx_mangle.h b/Dependencies/OpenGL/GL/glx_mangle.h new file mode 100644 index 0000000..fc78153 --- /dev/null +++ b/Dependencies/OpenGL/GL/glx_mangle.h @@ -0,0 +1,73 @@ +/* $Id: glx_mangle.h,v 1.1.1.1 1999/08/19 00:55:40 jtg Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.0 + * Copyright (C) 1995-1998 Brian Paul + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +/* + * $Log: glx_mangle.h,v $ + * Revision 1.1.1.1 1999/08/19 00:55:40 jtg + * Imported sources + * + * Revision 3.3 1999/06/21 22:01:00 brianp + * added #ifndef GLX_MANGLE_H stuff, video sync extension functions + * + * Revision 3.2 1998/03/26 02:44:53 brianp + * removed ^M characters + * + * Revision 3.1 1998/03/17 02:41:19 brianp + * updated by Randy Frank + * + * Revision 3.0 1998/02/20 05:04:45 brianp + * initial rev + * + */ + +#ifndef GLX_MANGLE_H +#define GLX_MANGLE_H + +#define glXChooseVisual mglXChooseVisual +#define glXCreateContext mglXCreateContext +#define glXDestroyContext mglXDestroyContext +#define glXMakeCurrent mglXMakeCurrent +#define glXCopyContext mglXCopyContext +#define glXSwapBuffers mglXSwapBuffers +#define glXCreateGLXPixmap mglXCreateGLXPixmap +#define glXDestroyGLXPixmap mglXDestroyGLXPixmap +#define glXQueryExtension mglXQueryExtension +#define glXQueryVersion mglXQueryVersion +#define glXIsDirect mglXIsDirect +#define glXGetConfig mglXGetConfig +#define glXGetCurrentContext mglXGetCurrentContext +#define glXGetCurrentDrawable mglXGetCurrentDrawable +#define glXWaitGL mglXWaitGL +#define glXWaitX mglXWaitX +#define glXUseXFont mglXUseXFont +#define glXQueryExtensionsString mglXQueryExtensionsString +#define glXQueryServerString mglXQueryServerString +#define glXGetClientString mglXGetClientString +#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA +#define glXReleaseBuffersMESA mglXReleaseBuffersMESA +#define glXCopySubBufferMESA mglXCopySubBufferMESA +#define glXGetVideoSyncSGI mglXGetVideoSyncSGI +#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI + +#endif + diff --git a/Dependencies/OpenGL/GL/mesa_wgl.h b/Dependencies/OpenGL/GL/mesa_wgl.h deleted file mode 100644 index ca2e1b8..0000000 --- a/Dependencies/OpenGL/GL/mesa_wgl.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.1 - * - * Copyright (C) 1999 Brian Paul All Rights Reserved. - * - * 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 - * BRIAN PAUL 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. - */ - - -/* prototypes for the Mesa WGL functions */ -/* relocated here so that I could make GLUT get them properly */ - -#ifndef _mesa_wgl_h_ -#define _mesa_wgl_h_ - -#if defined(__MINGW32__) -# define __W32API_USE_DLLIMPORT__ -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifndef WGLAPI -#define WGLAPI GLAPI -#endif - -#if defined(__MINGW32__) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN 1 -# endif -# include -#endif - - -#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) -#ifndef _GNU_H_WINDOWS32_FUNCTIONS -# ifdef UNICODE -# define wglUseFontBitmaps wglUseFontBitmapsW -# define wglUseFontOutlines wglUseFontOutlinesW -# else -# define wglUseFontBitmaps wglUseFontBitmapsA -# define wglUseFontOutlines wglUseFontOutlinesA -# endif /* !UNICODE */ -#endif /* _GNU_H_WINDOWS32_FUNCTIONS */ -typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; -typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; -typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR; -#endif - - -#ifdef _MSC_VER -# pragma warning( disable : 4615 ) /* pragma warning : unknown user warning type*/ -# pragma warning( push ) -# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ -#endif - - -WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc); -WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc); - -WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int); -WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC); -WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int); -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR); -WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void); -WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void); -WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *); -WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC); -WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int); -WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *); -WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC); -WGLAPI int GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int); -WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); - -#ifndef __MINGW32__ -WGLAPI int GLAPIENTRY SwapBuffers(HDC); -WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY GetPixelFormat(HDC); -WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); -#endif - - -#ifdef _MSC_VER -# pragma warning( pop ) -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* _mesa_wgl_h_ */ diff --git a/Dependencies/OpenGL/GL/osmesa.h b/Dependencies/OpenGL/GL/osmesa.h new file mode 100644 index 0000000..8c5829a --- /dev/null +++ b/Dependencies/OpenGL/GL/osmesa.h @@ -0,0 +1,248 @@ +/* $Id: osmesa.h,v 1.5 2000/03/28 16:59:39 rjfrank Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.3 + * + * Copyright (C) 1999-2000 Brian Paul All Rights Reserved. + * + * 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 + * BRIAN PAUL 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. + */ + + +/* + * Mesa Off-Screen rendering interface. + * + * This is an operating system and window system independent interface to + * Mesa which allows one to render images into a client-supplied buffer in + * main memory. Such images may manipulated or saved in whatever way the + * client wants. + * + * These are the API functions: + * OSMesaCreateContext - create a new Off-Screen Mesa rendering context + * OSMesaMakeCurrent - bind an OSMesaContext to a client's image buffer + * and make the specified context the current one. + * OSMesaDestroyContext - destroy an OSMesaContext + * OSMesaGetCurrentContext - return thread's current context ID + * OSMesaPixelStore - controls how pixels are stored in image buffer + * OSMesaGetIntegerv - return OSMesa state parameters + * + * + * The limits on the width and height of an image buffer are MAX_WIDTH and + * MAX_HEIGHT as defined in Mesa/src/config.h. Defaults are 1280 and 1024. + * You can increase them as needed but beware that many temporary arrays in + * Mesa are dimensioned by MAX_WIDTH or MAX_HEIGHT. + */ + + +#ifndef OSMESA_H +#define OSMESA_H + + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "GL/gl.h" + + +#define OSMESA_MAJOR_VERSION 3 +#define OSMESA_MINOR_VERSION 3 + + + +/* + * Values for the format parameter of OSMesaCreateContext() + * New in version 2.0. + */ +#define OSMESA_COLOR_INDEX GL_COLOR_INDEX +#define OSMESA_RGBA GL_RGBA +#define OSMESA_BGRA 0x1 +#define OSMESA_ARGB 0x2 +#define OSMESA_RGB GL_RGB +#define OSMESA_BGR 0x4 + + +/* + * OSMesaPixelStore() parameters: + * New in version 2.0. + */ +#define OSMESA_ROW_LENGTH 0x10 +#define OSMESA_Y_UP 0x11 + + +/* + * Accepted by OSMesaGetIntegerv: + */ +#define OSMESA_WIDTH 0x20 +#define OSMESA_HEIGHT 0x21 +#define OSMESA_FORMAT 0x22 +#define OSMESA_TYPE 0x23 + + +typedef struct osmesa_context *OSMesaContext; + + +#if defined(__BEOS__) || defined(__QUICKDRAW__) +#pragma export on +#endif + + +/* + * Create an Off-Screen Mesa rendering context. The only attribute needed is + * an RGBA vs Color-Index mode flag. + * + * Input: format - one of OSMESA_COLOR_INDEX, OSMESA_RGBA, OSMESA_BGRA, + * OSMESA_ARGB, OSMESA_RGB, or OSMESA_BGR. + * sharelist - specifies another OSMesaContext with which to share + * display lists. NULL indicates no sharing. + * Return: an OSMesaContext or 0 if error + */ +GLAPI OSMesaContext GLAPIENTRY OSMesaCreateContext( GLenum format, + OSMesaContext sharelist ); + + + + +/* + * Destroy an Off-Screen Mesa rendering context. + * + * Input: ctx - the context to destroy + */ +GLAPI void GLAPIENTRY OSMesaDestroyContext( OSMesaContext ctx ); + + + +/* + * Bind an OSMesaContext to an image buffer. The image buffer is just a + * block of memory which the client provides. Its size must be at least + * as large as width*height*sizeof(type). Its address should be a multiple + * of 4 if using RGBA mode. + * + * Image data is stored in the order of glDrawPixels: row-major order + * with the lower-left image pixel stored in the first array position + * (ie. bottom-to-top). + * + * Since the only type initially supported is GL_UNSIGNED_BYTE, if the + * context is in RGBA mode, each pixel will be stored as a 4-byte RGBA + * value. If the context is in color indexed mode, each pixel will be + * stored as a 1-byte value. + * + * If the context's viewport hasn't been initialized yet, it will now be + * initialized to (0,0,width,height). + * + * Input: ctx - the rendering context + * buffer - the image buffer memory + * type - data type for pixel components, only GL_UNSIGNED_BYTE + * supported now + * width, height - size of image buffer in pixels, at least 1 + * Return: GL_TRUE if success, GL_FALSE if error because of invalid ctx, + * invalid buffer address, type!=GL_UNSIGNED_BYTE, width<1, height<1, + * width>internal limit or height>internal limit. + */ +GLAPI GLboolean GLAPIENTRY OSMesaMakeCurrent( OSMesaContext ctx, + void *buffer, GLenum type, + GLsizei width, GLsizei height ); + + + + +/* + * Return the current Off-Screen Mesa rendering context handle. + */ +GLAPI OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void ); + + + +/* + * Set pixel store/packing parameters for the current context. + * This is similar to glPixelStore. + * Input: pname - OSMESA_ROW_LENGTH + * specify actual pixels per row in image buffer + * 0 = same as image width (default) + * OSMESA_Y_UP + * zero = Y coordinates increase downward + * non-zero = Y coordinates increase upward (default) + * value - the value for the parameter pname + * + * New in version 2.0. + */ +GLAPI void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value ); + + + +/* + * Return an integer value like glGetIntegerv. + * Input: pname - + * OSMESA_WIDTH return current image width + * OSMESA_HEIGHT return current image height + * OSMESA_FORMAT return image format + * OSMESA_TYPE return color component data type + * OSMESA_ROW_LENGTH return row length in pixels + * OSMESA_Y_UP returns 1 or 0 to indicate Y axis direction + * value - pointer to integer in which to return result. + */ +GLAPI void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value ); + + + +/* + * Return the depth buffer associated with an OSMesa context. + * Input: c - the OSMesa context + * Output: width, height - size of buffer in pixels + * bytesPerValue - bytes per depth value (2 or 4) + * buffer - pointer to depth buffer values + * Return: GL_TRUE or GL_FALSE to indicate success or failure. + * + * New in Mesa 2.4. + */ +GLAPI GLboolean GLAPIENTRY OSMesaGetDepthBuffer( OSMesaContext c, + GLint *width, GLint *height, + GLint *bytesPerValue, + void **buffer ); + + +/* + * Return the color buffer associated with an OSMesa context. + * Input: c - the OSMesa context + * Output: width, height - size of buffer in pixels + * format - buffer format (OSMESA_FORMAT) + * buffer - pointer to depth buffer values + * Return: GL_TRUE or GL_FALSE to indicate success or failure. + * + * New in Mesa 3.3. + */ +GLAPI GLboolean GLAPIENTRY OSMesaGetColorBuffer( OSMesaContext c, + GLint *width, GLint *height, + GLint *format, + void **buffer ); + + +#if defined(__BEOS__) || defined(__QUICKDRAW__) +#pragma export off +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif + diff --git a/Dependencies/OpenGL/GL/svgamesa.h b/Dependencies/OpenGL/GL/svgamesa.h new file mode 100644 index 0000000..38389ab --- /dev/null +++ b/Dependencies/OpenGL/GL/svgamesa.h @@ -0,0 +1,100 @@ +/* $Id: svgamesa.h,v 1.4 2000/02/09 19:03:28 brianp Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.3 + * Copyright (C) 1995-2000 Brian Paul + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +/* + * SVGA/Mesa interface for Linux. + */ + + +/* + * Intro to using the VGA/Mesa interface + * + * 1. #include the file + * 2. Call vga_init() to initialize the SVGA library. + * 3. Call vga_setmode() to specify the screen size and color depth. + * 4. Call SVGAMesaCreateContext() to setup a Mesa context. If using 8-bit + * color Mesa assumes color index mode, if using 16-bit or deeper color + * Mesa assumes RGB mode. + * 5. Call SVGAMesaMakeCurrent() to activate the Mesa context. + * 6. You can now use the Mesa API functions. + * 7. Before exiting, call SVGAMesaDestroyContext() then vga_setmode(TEXT) + * to restore the original text screen. + * + * Notes + * 1. You must run your executable as root (or use the set UID-bit) because + * the SVGA library requires it. + * 2. The SVGA driver is not fully implemented yet. See svgamesa.c for what + * has to be done yet. + */ + + +#ifndef SVGAMESA_H +#define SVGAMESA_H + + +#define SVGAMESA_MAJOR_VERSION 3 +#define SVGAMESA_MINOR_VERSION 3 + + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "GL/gl.h" + + + +/* + * This is the SVGAMesa context 'handle': + */ +typedef struct svgamesa_context *SVGAMesaContext; + + + +/* + * doubleBuffer flag new in version 2.4 + */ +extern int SVGAMesaInit( int GraphMode ); + +extern int SVGAMesaClose( void ); + +extern SVGAMesaContext SVGAMesaCreateContext( GLboolean doubleBuffer ); + +extern void SVGAMesaDestroyContext( SVGAMesaContext ctx ); + +extern void SVGAMesaMakeCurrent( SVGAMesaContext ctx ); + +extern void SVGAMesaSwapBuffers( void ); + +extern void SVGAMesaSetCI(int ndx, GLubyte red, GLubyte green, GLubyte blue); + +extern SVGAMesaContext SVGAMesaGetCurrentContext( void ); + +#ifdef __cplusplus +} +#endif + + +#endif + diff --git a/Dependencies/OpenGL/GL/xmesa.h b/Dependencies/OpenGL/GL/xmesa.h new file mode 100644 index 0000000..26a16db --- /dev/null +++ b/Dependencies/OpenGL/GL/xmesa.h @@ -0,0 +1,373 @@ +/* $Id: xmesa.h,v 1.8.4.1 2000/11/02 18:08:28 brianp Exp $ */ + +/* + * Mesa 3-D graphics library + * Version: 3.3 + * + * Copyright (C) 1999-2000 Brian Paul All Rights Reserved. + * + * 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 + * BRIAN PAUL 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. + */ + + +/* + * Mesa/X11 interface. This header file serves as the documentation for + * the Mesa/X11 interface functions. + * + * Note: this interface isn't intended for user programs. It's primarily + * just for implementing the pseudo-GLX interface. + */ + + +/* Sample Usage: + +In addition to the usual X calls to select a visual, create a colormap +and create a window, you must do the following to use the X/Mesa interface: + +1. Call XMesaCreateVisual() to make an XMesaVisual from an XVisualInfo. + +2. Call XMesaCreateContext() to create an X/Mesa rendering context, given + the XMesaVisual. + +3. Call XMesaCreateWindowBuffer() to create an XMesaBuffer from an X window + and XMesaVisual. + +4. Call XMesaMakeCurrent() to bind the XMesaBuffer to an XMesaContext and + to make the context the current one. + +5. Make gl* calls to render your graphics. + +6. Use XMesaSwapBuffers() when double buffering to swap front/back buffers. + +7. Before the X window is destroyed, call XMesaDestroyBuffer(). + +8. Before exiting, call XMesaDestroyVisual and XMesaDestroyContext. + +See the demos/xdemo.c and xmesa1.c files for examples. +*/ + + + + +#ifndef XMESA_H +#define XMESA_H + + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifdef XFree86Server +#include "xmesa_xf86.h" +#else +#include +#include +#include "xmesa_x.h" +#endif +#include "GL/gl.h" + +#ifdef AMIWIN +#include +extern struct Library *XLibBase; +#endif + + +#define XMESA_MAJOR_VERSION 3 +#define XMESA_MINOR_VERSION 4 + + + +/* + * Values passed to XMesaGetString: + */ +#define XMESA_VERSION 1 +#define XMESA_EXTENSIONS 2 + + +/* + * Values passed to XMesaSetFXmode: + */ +#define XMESA_FX_WINDOW 1 +#define XMESA_FX_FULLSCREEN 2 + + + +typedef struct xmesa_context *XMesaContext; + +typedef struct xmesa_visual *XMesaVisual; + +typedef struct xmesa_buffer *XMesaBuffer; + + + +/* + * Create a new X/Mesa visual. + * Input: display - X11 display + * visinfo - an XVisualInfo pointer + * rgb_flag - GL_TRUE = RGB mode, + * GL_FALSE = color index mode + * alpha_flag - alpha buffer requested? + * db_flag - GL_TRUE = double-buffered, + * GL_FALSE = single buffered + * stereo_flag - stereo visual? + * ximage_flag - GL_TRUE = use an XImage for back buffer, + * GL_FALSE = use an off-screen pixmap for back buffer + * depth_size - requested bits/depth values, or zero + * stencil_size - requested bits/stencil values, or zero + * accum_red_size - requested bits/red accum values, or zero + * accum_green_size - requested bits/green accum values, or zero + * accum_blue_size - requested bits/blue accum values, or zero + * accum_alpha_size - requested bits/alpha accum values, or zero + * num_samples - number of samples/pixel if multisampling, or zero + * level - visual level, usually 0 + * visualCaveat - ala the GLX extension, usually GLX_NONE_EXT + * Return; a new XMesaVisual or 0 if error. + */ +extern XMesaVisual XMesaCreateVisual( XMesaDisplay *display, + XMesaVisualInfo visinfo, + GLboolean rgb_flag, + GLboolean alpha_flag, + GLboolean db_flag, + GLboolean stereo_flag, + GLboolean ximage_flag, + GLint depth_size, + GLint stencil_size, + GLint accum_red_size, + GLint accum_green_size, + GLint accum_blue_size, + GLint accum_alpha_size, + GLint num_samples, + GLint level, + GLint visualCaveat ); + +/* + * Destroy an XMesaVisual, but not the associated XVisualInfo. + */ +extern void XMesaDestroyVisual( XMesaVisual v ); + + + +/* + * Create a new XMesaContext for rendering into an X11 window. + * + * Input: visual - an XMesaVisual + * share_list - another XMesaContext with which to share display + * lists or NULL if no sharing is wanted. + * Return: an XMesaContext or NULL if error. + */ +extern XMesaContext XMesaCreateContext( XMesaVisual v, + XMesaContext share_list ); + + +/* + * Destroy a rendering context as returned by XMesaCreateContext() + */ +extern void XMesaDestroyContext( XMesaContext c ); + + +/* + * Create an XMesaBuffer from an X window. + */ +extern XMesaBuffer XMesaCreateWindowBuffer( XMesaVisual v, XMesaWindow w ); + + +/* + * Create an XMesaBuffer from an X pixmap. + */ +extern XMesaBuffer XMesaCreatePixmapBuffer( XMesaVisual v, + XMesaPixmap p, + XMesaColormap cmap ); + + +/* + * Destroy an XMesaBuffer, but not the corresponding window or pixmap. + */ +extern void XMesaDestroyBuffer( XMesaBuffer b ); + + +/* + * Return the XMesaBuffer handle which corresponds to an X drawable, if any. + * + * New in Mesa 2.3. + */ +extern XMesaBuffer XMesaFindBuffer( XMesaDisplay *dpy, + XMesaDrawable d ); + + + +/* + * Bind a buffer to a context and make the context the current one. + */ +extern GLboolean XMesaMakeCurrent( XMesaContext c, + XMesaBuffer b ); + + +/* + * Bind two buffers (read and draw) to a context and make the + * context the current one. + * New in Mesa 3.3 + */ +extern GLboolean XMesaMakeCurrent2( XMesaContext c, + XMesaBuffer drawBuffer, + XMesaBuffer readBuffer ); + + +/* + * Unbind the current context from its buffer. + */ +extern GLboolean XMesaUnbindContext( XMesaContext c ); + + +/* + * Return a handle to the current context. + */ +extern XMesaContext XMesaGetCurrentContext( void ); + + +/* + * Return handle to the current (draw) buffer. + */ +extern XMesaBuffer XMesaGetCurrentBuffer( void ); + + +/* + * Return handle to the current read buffer. + * New in Mesa 3.3 + */ +extern XMesaBuffer XMesaGetCurrentReadBuffer( void ); + + +/* + * Swap the front and back buffers for the given buffer. No action is + * taken if the buffer is not double buffered. + */ +extern void XMesaSwapBuffers( XMesaBuffer b ); + + +/* + * Copy a sub-region of the back buffer to the front buffer. + * + * New in Mesa 2.6 + */ +extern void XMesaCopySubBuffer( XMesaBuffer b, + int x, + int y, + int width, + int height ); + + +/* + * Return a pointer to the the Pixmap or XImage being used as the back + * color buffer of an XMesaBuffer. This function is a way to get "under + * the hood" of X/Mesa so one can manipulate the back buffer directly. + * Input: b - the XMesaBuffer + * Output: pixmap - pointer to back buffer's Pixmap, or 0 + * ximage - pointer to back buffer's XImage, or NULL + * Return: GL_TRUE = context is double buffered + * GL_FALSE = context is single buffered + */ +extern GLboolean XMesaGetBackBuffer( XMesaBuffer b, + XMesaPixmap *pixmap, + XMesaImage **ximage ); + + + +/* + * Return the depth buffer associated with an XMesaBuffer. + * Input: b - the XMesa buffer handle + * Output: width, height - size of buffer in pixels + * bytesPerValue - bytes per depth value (2 or 4) + * buffer - pointer to depth buffer values + * Return: GL_TRUE or GL_FALSE to indicate success or failure. + * + * New in Mesa 2.4. + */ +extern GLboolean XMesaGetDepthBuffer( XMesaBuffer b, + GLint *width, + GLint *height, + GLint *bytesPerValue, + void **buffer ); + + + +/* + * Flush/sync a context + */ +extern void XMesaFlush( XMesaContext c ); + + + +/* + * Get an X/Mesa-specific string. + * Input: name - either XMESA_VERSION or XMESA_EXTENSIONS + */ +extern const char *XMesaGetString( XMesaContext c, int name ); + + + +/* + * Scan for XMesaBuffers whose window/pixmap has been destroyed, then free + * any memory used by that buffer. + * + * New in Mesa 2.3. + */ +extern void XMesaGarbageCollect( void ); + + + +/* + * Return a dithered pixel value. + * Input: c - XMesaContext + * x, y - window coordinate + * red, green, blue, alpha - color components in [0,1] + * Return: pixel value + * + * New in Mesa 2.3. + */ +extern unsigned long XMesaDitherColor( XMesaContext xmesa, + GLint x, + GLint y, + GLfloat red, + GLfloat green, + GLfloat blue, + GLfloat alpha ); + + + +/* + * 3Dfx Glide driver only! + * Set 3Dfx/Glide full-screen or window rendering mode. + * Input: mode - either XMESA_FX_WINDOW (window rendering mode) or + * XMESA_FX_FULLSCREEN (full-screen rendering mode) + * Return: GL_TRUE if success + * GL_FALSE if invalid mode or if not using 3Dfx driver + * + * New in Mesa 2.6. + */ +extern GLboolean XMesaSetFXmode( GLint mode ); + + + +#ifdef __cplusplus +} +#endif + + +#endif + diff --git a/Dependencies/OpenGL/GL/xmesa_x.h b/Dependencies/OpenGL/GL/xmesa_x.h new file mode 100644 index 0000000..d9b7fe1 --- /dev/null +++ b/Dependencies/OpenGL/GL/xmesa_x.h @@ -0,0 +1,92 @@ + +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +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, sub license, 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 (including the +next paragraph) 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 NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin + * + * $Header: /cvsroot/mesa3d/Mesa/include/GL/xmesa_x.h,v 1.2 2000/02/25 20:31:11 brianp Exp $ + */ + +#ifndef _XMESA_X_H_ +#define _XMESA_X_H_ + +typedef Display XMesaDisplay; +typedef Pixmap XMesaPixmap; +typedef Colormap XMesaColormap; +typedef Drawable XMesaDrawable; +typedef Window XMesaWindow; +typedef GC XMesaGC; +typedef XVisualInfo *XMesaVisualInfo; +typedef XImage XMesaImage; +typedef XPoint XMesaPoint; +typedef XColor XMesaColor; + +#define XMesaDestroyImage XDestroyImage + +#define XMesaPutPixel XPutPixel +#define XMesaGetPixel XGetPixel + +#define XMesaSetForeground XSetForeground +#define XMesaSetBackground XSetBackground +#define XMesaSetPlaneMask XSetPlaneMask +#define XMesaSetFunction XSetFunction +#define XMesaSetDashes XSetDashes +#define XMesaSetLineAttributes XSetLineAttributes +#define XMesaSetFillStyle XSetFillStyle +#define XMesaSetTile XSetTile +#define XMesaSetStipple XSetStipple + +#define XMesaDrawPoint XDrawPoint +#define XMesaDrawPoints XDrawPoints +#define XMesaDrawLine XDrawLine +#define XMesaFillRectangle XFillRectangle +#define XMesaPutImage XPutImage +#define XMesaCopyArea XCopyArea +#define XMesaFillPolygon XFillPolygon + +#define XMesaCreatePixmap XCreatePixmap +#define XMesaFreePixmap XFreePixmap +#define XMesaFreeGC XFreeGC + +#define GET_COLORMAP_SIZE(__v) __v->visinfo->colormap_size +#define GET_REDMASK(__v) __v->visinfo->red_mask +#define GET_GREENMASK(__v) __v->visinfo->green_mask +#define GET_BLUEMASK(__v) __v->visinfo->blue_mask +#if defined(__cplusplus) || defined(c_plusplus) +#define GET_VISUAL_CLASS(__v) __v->visinfo->c_class +#else +#define GET_VISUAL_CLASS(__v) __v->visinfo->class +#endif +#define GET_VISUAL_DEPTH(__v) __v->visinfo->depth +#define GET_BLACK_PIXEL(__v) BlackPixel(__v->display, __v->visinfo->screen) +#define CHECK_BYTE_ORDER(__v) host_byte_order()==ImageByteOrder(__v->display) +#define CHECK_FOR_HPCR(__v) XInternAtom(__v->display, "_HP_RGB_SMOOTH_MAP_LIST", True) + +#endif + diff --git a/Dependencies/OpenGL/GL/xmesa_xf86.h b/Dependencies/OpenGL/GL/xmesa_xf86.h new file mode 100644 index 0000000..5532643 --- /dev/null +++ b/Dependencies/OpenGL/GL/xmesa_xf86.h @@ -0,0 +1,189 @@ + +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +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, sub license, 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 (including the +next paragraph) 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 NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin + * + * $Header: /cvsroot/mesa3d/Mesa/include/GL/xmesa_xf86.h,v 1.5 2000/04/05 22:09:10 brianp Exp $ + */ + +#ifndef _XMESA_XF86_H_ +#define _XMESA_XF86_H_ + +#include "scrnintstr.h" +#include "pixmapstr.h" + +typedef struct _XMesaImageRec XMesaImage; + +typedef ScreenRec XMesaDisplay; +typedef PixmapPtr XMesaPixmap; +typedef ColormapPtr XMesaColormap; +typedef DrawablePtr XMesaDrawable; +typedef WindowPtr XMesaWindow; +typedef GCPtr XMesaGC; +typedef VisualPtr XMesaVisualInfo; +typedef DDXPointRec XMesaPoint; +typedef xColorItem XMesaColor; + +#define XMesaSetGeneric(__d,__gc,__val,__mask) \ +do { \ + CARD32 __v[1]; \ + (void) __d; \ + __v[0] = __val; \ + dixChangeGC(NullClient, __gc, __mask, __v, NULL); \ +} while (0) + +#define XMesaSetGenericPtr(__d,__gc,__pval,__mask) \ +do { \ + ChangeGCVal __v[1]; \ + (void) __d; \ + __v[0].ptr = __pval; \ + dixChangeGC(NullClient, __gc, __mask, NULL, __v); \ +} while (0) + +#define XMesaSetDashes(__d,__gc,__do,__dl,__n) \ +do { \ + (void) __d; \ + SetDashes(__gc, __do, __n, (unsigned char *)__dl); \ +} while (0) + +#define XMesaSetLineAttributes(__d,__gc,__lw,__ls,__cs,__js) \ +do { \ + CARD32 __v[4]; \ + (void) __d; \ + __v[0] = __lw; \ + __v[1] = __ls; \ + __v[2] = __cs; \ + __v[3] = __js; \ + dixChangeGC(NullClient, __gc, \ + GCLineWidth|GCLineStyle|GCCapStyle|GCJoinStyle, \ + __v, NULL); \ +} while (0) + +#define XMesaSetForeground(d,gc,v) XMesaSetGeneric(d,gc,v,GCForeground) +#define XMesaSetBackground(d,gc,v) XMesaSetGeneric(d,gc,v,GCBackground) +#define XMesaSetPlaneMask(d,gc,v) XMesaSetGeneric(d,gc,v,GCPlaneMask) +#define XMesaSetFunction(d,gc,v) XMesaSetGeneric(d,gc,v,GCFunction) +#define XMesaSetFillStyle(d,gc,v) XMesaSetGeneric(d,gc,v,GCFillStyle) + +#define XMesaSetTile(d,gc,v) XMesaSetGenericPtr(d,gc,v,GCTile) +#define XMesaSetStipple(d,gc,v) XMesaSetGenericPtr(d,gc,v,GCStipple) + +#define XMesaDrawPoint(__d,__b,__gc,__x,__y) \ +do { \ + XMesaPoint __p[1]; \ + (void) __d; \ + __p[0].x = __x; \ + __p[0].y = __y; \ + ValidateGC(__b, __gc); \ + (*gc->ops->PolyPoint)(__b, __gc, CoordModeOrigin, 1, __p); \ +} while (0) + +#define XMesaDrawPoints(__d,__b,__gc,__p,__n,__m) \ +do { \ + (void) __d; \ + ValidateGC(__b, __gc); \ + (*gc->ops->PolyPoint)(__b, __gc, __m, __n, __p); \ +} while (0) + +#define XMesaDrawLine(__d,__b,__gc,__x0,__y0,__x1,__y1) \ +do { \ + XMesaPoint __p[2]; \ + (void) __d; \ + ValidateGC(__b, __gc); \ + __p[0].x = __x0; \ + __p[0].y = __y0; \ + __p[1].x = __x1; \ + __p[1].y = __y1; \ + (*__gc->ops->Polylines)(__b, __gc, CoordModeOrigin, 2, __p); \ +} while (0) + +#define XMesaFillRectangle(__d,__b,__gc,__x,__y,__w,__h) \ +do { \ + xRectangle __r[1]; \ + (void) __d; \ + ValidateGC((DrawablePtr)__b, __gc); \ + __r[0].x = __x; \ + __r[0].y = __y; \ + __r[0].width = __w; \ + __r[0].height = __h; \ + (*__gc->ops->PolyFillRect)((DrawablePtr)__b, __gc, 1, __r); \ +} while (0) + +#define XMesaPutImage(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h) \ +do { \ + /* Assumes: Images are always in ZPixmap format */ \ + (void) __d; \ + if (__sx || __sy) /* The non-trivial case */ \ + XMesaPutImageHelper(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h); \ + ValidateGC(__b, __gc); \ + (*__gc->ops->PutImage)(__b, __gc, ((XMesaDrawable)(__b))->depth, \ + __x, __y, __w, __h, 0, ZPixmap, \ + ((XMesaImage *)(__i))->data); \ +} while (0) + +#define XMesaCopyArea(__d,__sb,__db,__gc,__sx,__sy,__w,__h,__x,__y) \ +do { \ + (void) __d; \ + ValidateGC(__db, __gc); \ + (*__gc->ops->CopyArea)((DrawablePtr)__sb, __db, __gc, \ + __sx, __sy, __w, __h, __x, __y); \ +} while (0) + +#define XMesaFillPolygon(__d,__b,__gc,__p,__n,__s,__m) \ +do { \ + (void) __d; \ + ValidateGC(__b, __gc); \ + (*__gc->ops->FillPolygon)(__b, __gc, __s, __m, __n, __p); \ +} while (0) + +/* CreatePixmap returns a PixmapPtr; so, it cannot be inside braces */ +#define XMesaCreatePixmap(__d,__b,__w,__h,__depth) \ + (*__d->CreatePixmap)(__d, __w, __h, __depth) +#define XMesaFreePixmap(__d,__b) \ + (*__d->DestroyPixmap)(__b) + +#define XMesaFreeGC(__d,__gc) \ +do { \ + (void) __d; \ + FreeScratchGC(__gc); \ +} while (0) + +#define GET_COLORMAP_SIZE(__v) __v->visinfo->ColormapEntries +#define GET_REDMASK(__v) __v->visinfo->redMask +#define GET_GREENMASK(__v) __v->visinfo->greenMask +#define GET_BLUEMASK(__v) __v->visinfo->blueMask +#define GET_VISUAL_CLASS(__v) __v->visinfo->class +#define GET_VISUAL_DEPTH(__v) __v->visinfo->nplanes +#define GET_BLACK_PIXEL(__v) __v->display->blackPixel +#define CHECK_BYTE_ORDER(__v) GL_TRUE +#define CHECK_FOR_HPCR(__v) GL_FALSE + +#endif + -- 2.39.2