| /* |
| SDL - Simple DirectMedia Layer |
| Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga |
| |
| 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 |
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| |
| Sam Lantinga |
| slouken@libsdl.org |
| */ |
| |
| #ifdef SAVE_RCSID |
| static char rcsid = |
| "@(#) $Id$"; |
| #endif |
| |
| /* This is a simple file to encapsulate the OpenGL API headers */ |
| |
| #ifdef WIN32 |
| #define WIN32_LEAN_AND_MEAN |
| #include <windows.h> |
| #endif |
| #if defined(__APPLE__) && defined(__MACH__) |
| #include <OpenGL/gl.h> /* Header File For The OpenGL Library */ |
| #include <OpenGL/glu.h> /* Header File For The GLU Library */ |
| #else |
| #ifndef NO_SDL_GLEXT |
| #define __glext_h_ /* Don't let gl.h include glext.h */ |
| #endif |
| #include <GL/gl.h> /* Header File For The OpenGL Library */ |
| #include <GL/glu.h> /* Header File For The GLU Library */ |
| #ifndef NO_SDL_GLEXT |
| #undef __glext_h_ |
| #endif |
| #endif |
| |
| /* This file taken from "GLext.h" from the Jeff Molofee OpenGL tutorials. |
| It is included here because glext.h is not available on some systems. |
| If you don't want this version included, simply define "NO_SDL_GLEXT" |
| */ |
| #ifndef NO_SDL_GLEXT |
| #if !defined(__glext_h_) && !defined(GL_GLEXT_LEGACY) |
| #define __glext_h_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef APIENTRY |
| #define APIENTRY |
| #endif |
| |
| /* |
| ** Copyright 1992-1999 Silicon Graphics, Inc. |
| ** All Rights Reserved. |
| ** |
| ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; |
| ** the contents of this file may not be disclosed to third parties, copied or |
| ** duplicated in any form, in whole or in part, without the prior written |
| ** permission of Silicon Graphics, Inc. |
| ** |
| ** RESTRICTED RIGHTS LEGEND: |
| ** Use, duplication or disclosure by the Government is subject to restrictions |
| ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data |
| ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or |
| ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - |
| ** rights reserved under the Copyright Laws of the United States. |
| */ |
| |
| #define GL_ARB_multitexture 1 |
| #define GL_EXT_abgr 1 |
| #define GL_EXT_bgra 1 |
| #define GL_EXT_clip_volume_hint 1 |
| #define GL_EXT_compiled_vertex_array 1 |
| #define GL_EXT_cull_vertex 1 |
| #define GL_EXT_packed_pixels 1 |
| #define GL_EXT_point_parameters 1 |
| #define GL_EXT_stencil_wrap 1 |
| #define GL_EXT_texture_env_add 1 |
| #define GL_EXT_texture_env_combine 1 |
| #define GL_EXT_vertex_array 1 |
| #define GL_NV_texgen_reflection 1 |
| #define GL_NV_texture_env_combine4 1 |
| #define GL_WIN_swap_hint 1 |
| |
| /* EXT_abgr */ |
| #define GL_ABGR_EXT 0x8000 |
| |
| /* EXT_packed_pixels */ |
| #define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 |
| #define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 |
| #define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 |
| #define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 |
| #define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 |
| |
| /* EXT_vertex_array */ |
| #define GL_VERTEX_ARRAY_EXT 0x8074 |
| #define GL_NORMAL_ARRAY_EXT 0x8075 |
| #define GL_COLOR_ARRAY_EXT 0x8076 |
| #define GL_INDEX_ARRAY_EXT 0x8077 |
| #define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 |
| #define GL_EDGE_FLAG_ARRAY_EXT 0x8079 |
| #define GL_VERTEX_ARRAY_SIZE_EXT 0x807A |
| #define GL_VERTEX_ARRAY_TYPE_EXT 0x807B |
| #define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C |
| #define GL_VERTEX_ARRAY_COUNT_EXT 0x807D |
| #define GL_NORMAL_ARRAY_TYPE_EXT 0x807E |
| #define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F |
| #define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 |
| #define GL_COLOR_ARRAY_SIZE_EXT 0x8081 |
| #define GL_COLOR_ARRAY_TYPE_EXT 0x8082 |
| #define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 |
| #define GL_COLOR_ARRAY_COUNT_EXT 0x8084 |
| #define GL_INDEX_ARRAY_TYPE_EXT 0x8085 |
| #define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 |
| #define GL_INDEX_ARRAY_COUNT_EXT 0x8087 |
| #define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 |
| #define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 |
| #define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A |
| #define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B |
| #define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C |
| #define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D |
| #define GL_VERTEX_ARRAY_POINTER_EXT 0x808E |
| #define GL_NORMAL_ARRAY_POINTER_EXT 0x808F |
| #define GL_COLOR_ARRAY_POINTER_EXT 0x8090 |
| #define GL_INDEX_ARRAY_POINTER_EXT 0x8091 |
| #define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 |
| #define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 |
| |
| /* EXT_bgra */ |
| #define GL_BGR_EXT 0x80E0 |
| #define GL_BGRA_EXT 0x80E1 |
| |
| /* EXT_clip_volume_hint */ |
| #define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 |
| |
| /* EXT_point_parameters */ |
| #define GL_POINT_SIZE_MIN_EXT 0x8126 |
| #define GL_POINT_SIZE_MAX_EXT 0x8127 |
| #define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 |
| #define GL_DISTANCE_ATTENUATION_EXT 0x8129 |
| |
| /* EXT_compiled_vertex_array */ |
| #define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 |
| #define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 |
| |
| /* EXT_cull_vertex */ |
| #define GL_CULL_VERTEX_EXT 0x81AA |
| #define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB |
| #define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC |
| |
| /* ARB_multitexture */ |
| #define GL_ACTIVE_TEXTURE_ARB 0x84E0 |
| #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 |
| #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 |
| #define GL_TEXTURE0_ARB 0x84C0 |
| #define GL_TEXTURE1_ARB 0x84C1 |
| #define GL_TEXTURE2_ARB 0x84C2 |
| #define GL_TEXTURE3_ARB 0x84C3 |
| #define GL_TEXTURE4_ARB 0x84C4 |
| #define GL_TEXTURE5_ARB 0x84C5 |
| #define GL_TEXTURE6_ARB 0x84C6 |
| #define GL_TEXTURE7_ARB 0x84C7 |
| #define GL_TEXTURE8_ARB 0x84C8 |
| #define GL_TEXTURE9_ARB 0x84C9 |
| #define GL_TEXTURE10_ARB 0x84CA |
| #define GL_TEXTURE11_ARB 0x84CB |
| #define GL_TEXTURE12_ARB 0x84CC |
| #define GL_TEXTURE13_ARB 0x84CD |
| #define GL_TEXTURE14_ARB 0x84CE |
| #define GL_TEXTURE15_ARB 0x84CF |
| #define GL_TEXTURE16_ARB 0x84D0 |
| #define GL_TEXTURE17_ARB 0x84D1 |
| #define GL_TEXTURE18_ARB 0x84D2 |
| #define GL_TEXTURE19_ARB 0x84D3 |
| #define GL_TEXTURE20_ARB 0x84D4 |
| #define GL_TEXTURE21_ARB 0x84D5 |
| #define GL_TEXTURE22_ARB 0x84D6 |
| #define GL_TEXTURE23_ARB 0x84D7 |
| #define GL_TEXTURE24_ARB 0x84D8 |
| #define GL_TEXTURE25_ARB 0x84D9 |
| #define GL_TEXTURE26_ARB 0x84DA |
| #define GL_TEXTURE27_ARB 0x84DB |
| #define GL_TEXTURE28_ARB 0x84DC |
| #define GL_TEXTURE29_ARB 0x84DD |
| #define GL_TEXTURE30_ARB 0x84DE |
| #define GL_TEXTURE31_ARB 0x84DF |
| |
| /* EXT_stencil_wrap */ |
| #define GL_INCR_WRAP_EXT 0x8507 |
| #define GL_DECR_WRAP_EXT 0x8508 |
| |
| /* NV_texgen_reflection */ |
| #define GL_NORMAL_MAP_NV 0x8511 |
| #define GL_REFLECTION_MAP_NV 0x8512 |
| |
| /* EXT_texture_env_combine */ |
| #define GL_COMBINE_EXT 0x8570 |
| #define GL_COMBINE_RGB_EXT 0x8571 |
| #define GL_COMBINE_ALPHA_EXT 0x8572 |
| #define GL_RGB_SCALE_EXT 0x8573 |
| #define GL_ADD_SIGNED_EXT 0x8574 |
| #define GL_INTERPOLATE_EXT 0x8575 |
| #define GL_CONSTANT_EXT 0x8576 |
| #define GL_PRIMARY_COLOR_EXT 0x8577 |
| #define GL_PREVIOUS_EXT 0x8578 |
| #define GL_SOURCE0_RGB_EXT 0x8580 |
| #define GL_SOURCE1_RGB_EXT 0x8581 |
| #define GL_SOURCE2_RGB_EXT 0x8582 |
| #define GL_SOURCE0_ALPHA_EXT 0x8588 |
| #define GL_SOURCE1_ALPHA_EXT 0x8589 |
| #define GL_SOURCE2_ALPHA_EXT 0x858A |
| #define GL_OPERAND0_RGB_EXT 0x8590 |
| #define GL_OPERAND1_RGB_EXT 0x8591 |
| #define GL_OPERAND2_RGB_EXT 0x8592 |
| #define GL_OPERAND0_ALPHA_EXT 0x8598 |
| #define GL_OPERAND1_ALPHA_EXT 0x8599 |
| #define GL_OPERAND2_ALPHA_EXT 0x859A |
| |
| /* NV_texture_env_combine4 */ |
| #define GL_COMBINE4_NV 0x8503 |
| #define GL_SOURCE3_RGB_NV 0x8583 |
| #define GL_SOURCE3_ALPHA_NV 0x858B |
| #define GL_OPERAND3_RGB_NV 0x8593 |
| #define GL_OPERAND3_ALPHA_NV 0x859B |
| |
| /*************************************************************/ |
| |
| /* EXT_vertex_array */ |
| typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); |
| typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); |
| typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); |
| typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); |
| typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); |
| typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); |
| typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); |
| typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); |
| typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); |
| |
| /* ARB_multitexture */ |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); |
| typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); |
| typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum target); |
| typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum target); |
| |
| /* EXT_compiled_vertex_array */ |
| typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); |
| typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); |
| |
| /* EXT_cull_vertex */ |
| typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); |
| typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); |
| |
| /* WIN_swap_hint */ |
| typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); |
| |
| /* EXT_point_parameter */ |
| typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); |
| typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __glext_h_ */ |
| #endif /* NO_SDL_GLEXT */ |