1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
4 // This file is part of Scorched3D.
6 // Scorched3D is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
11 // Scorched3D is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Scorched3D; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ////////////////////////////////////////////////////////////////////////////////
21 #if !defined(AFX_GLMISSINGEXT_H__9DA92C48_B9A4_4517_AB9F_55141CCDA817__INCLUDED_)
22 #define AFX_GLMISSINGEXT_H__9DA92C48_B9A4_4517_AB9F_55141CCDA817__INCLUDED_
24 // Some newer official GL extensions that may not have made it into the SDL
27 #ifndef GL_COMBINE_ARB
28 #define GL_COMBINE_ARB 0x8570
31 #ifndef GL_RGB_SCALE_ARB
32 #define GL_RGB_SCALE_ARB 0x8573
35 #ifndef GL_NV_texture_rectangle
36 #define GL_TEXTURE_RECTANGLE_NV 0x84F5
37 #define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
38 #define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
39 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
42 #ifndef GL_ARB_depth_texture
43 #define GL_DEPTH_COMPONENT16_ARB 0x81A5
44 #define GL_DEPTH_COMPONENT24_ARB 0x81A6
45 #define GL_DEPTH_COMPONENT32_ARB 0x81A7
46 #define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
47 #define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
51 #define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
52 #define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
53 #define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
56 #ifndef GL_EXT_framebuffer_object
57 #define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
58 #define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
59 #define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
60 #define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
61 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
62 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
63 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
64 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
65 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
66 #define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
67 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
68 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
69 #define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
70 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
71 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
72 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
73 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
74 #define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
75 #define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
76 #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
77 #define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
78 #define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
79 #define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
80 #define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
81 #define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
82 #define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
83 #define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
84 #define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
85 #define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
86 #define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
87 #define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
88 #define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
89 #define GL_COLOR_ATTACHMENT13_EXT 0x8CED
90 #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
91 #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
92 #define GL_DEPTH_ATTACHMENT_EXT 0x8D00
93 #define GL_STENCIL_ATTACHMENT_EXT 0x8D20
94 #define GL_FRAMEBUFFER_EXT 0x8D40
95 #define GL_RENDERBUFFER_EXT 0x8D41
96 #define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
97 #define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
98 #define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
99 #define GL_STENCIL_INDEX_EXT 0x8D45
100 #define GL_STENCIL_INDEX1_EXT 0x8D46
101 #define GL_STENCIL_INDEX4_EXT 0x8D47
102 #define GL_STENCIL_INDEX8_EXT 0x8D48
103 #define GL_STENCIL_INDEX16_EXT 0x8D49
104 #define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
105 #define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
106 #define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
107 #define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
108 #define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
109 #define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
112 #ifndef GL_ARRAY_BUFFER_ARB
113 #define GL_ARRAY_BUFFER_ARB 0x8892
114 #define GL_STATIC_DRAW_ARB 0x88E4
115 #define GL_DYNAMIC_DRAW_ARB 0x88E8
116 #define GL_WRITE_ONLY_ARB 0x88B9
119 #ifndef GL_EXT_framebuffer_object
120 #define GL_EXT_framebuffer_object 1
121 typedef GLboolean (APIENTRY
* PFNGLISRENDERBUFFEREXTPROC
) (GLuint renderbuffer
);
122 typedef void (APIENTRY
* PFNGLBINDRENDERBUFFEREXTPROC
) (GLenum target
, GLuint renderbuffer
);
123 typedef void (APIENTRY
* PFNGLDELETERENDERBUFFERSEXTPROC
) (GLsizei n
, const GLuint
*renderbuffers
);
124 typedef void (APIENTRY
* PFNGLGENRENDERBUFFERSEXTPROC
) (GLsizei n
, GLuint
*renderbuffers
);
125 typedef void (APIENTRY
* PFNGLRENDERBUFFERSTORAGEEXTPROC
) (GLenum target
, GLenum internalformat
, GLsizei width
, GLsizei height
);
126 typedef void (APIENTRY
* PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC
) (GLenum target
, GLenum pname
, GLint
*params
);
127 typedef GLboolean (APIENTRY
* PFNGLISFRAMEBUFFEREXTPROC
) (GLuint framebuffer
);
128 typedef void (APIENTRY
* PFNGLBINDFRAMEBUFFEREXTPROC
) (GLenum target
, GLuint framebuffer
);
129 typedef void (APIENTRY
* PFNGLDELETEFRAMEBUFFERSEXTPROC
) (GLsizei n
, const GLuint
*framebuffers
);
130 typedef void (APIENTRY
* PFNGLGENFRAMEBUFFERSEXTPROC
) (GLsizei n
, GLuint
*framebuffers
);
131 typedef GLenum (APIENTRY
* PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC
) (GLenum target
);
132 typedef void (APIENTRY
* PFNGLFRAMEBUFFERTEXTURE1DEXTPROC
) (GLenum target
, GLenum attachment
, GLenum textarget
, GLuint texture
, GLint level
);
133 typedef void (APIENTRY
* PFNGLFRAMEBUFFERTEXTURE2DEXTPROC
) (GLenum target
, GLenum attachment
, GLenum textarget
, GLuint texture
, GLint level
);
134 typedef void (APIENTRY
* PFNGLFRAMEBUFFERTEXTURE3DEXTPROC
) (GLenum target
, GLenum attachment
, GLenum textarget
, GLuint texture
, GLint level
, GLint zoffset
);
135 typedef void (APIENTRY
* PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC
) (GLenum target
, GLenum attachment
, GLenum renderbuffertarget
, GLuint renderbuffer
);
136 typedef void (APIENTRY
* PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC
) (GLenum target
, GLenum attachment
, GLenum pname
, GLint
*params
);
137 typedef void (APIENTRY
* PFNGLGENERATEMIPMAPEXTPROC
) (GLenum target
);
140 #ifndef GL_ARB_multitexture
141 #define GL_ARB_multitexture 1
142 typedef void (APIENTRY
* PFNGLACTIVETEXTUREARBPROC
) (GLenum texture
);
143 typedef void (APIENTRY
* PFNGLCLIENTACTIVETEXTUREARBPROC
) (GLenum texture
);
144 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1DARBPROC
) (GLenum target
, GLdouble s
);
145 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1DVARBPROC
) (GLenum target
, const GLdouble
*v
);
146 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1FARBPROC
) (GLenum target
, GLfloat s
);
147 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1FVARBPROC
) (GLenum target
, const GLfloat
*v
);
148 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1IARBPROC
) (GLenum target
, GLint s
);
149 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1IVARBPROC
) (GLenum target
, const GLint
*v
);
150 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1SARBPROC
) (GLenum target
, GLshort s
);
151 typedef void (APIENTRY
* PFNGLMULTITEXCOORD1SVARBPROC
) (GLenum target
, const GLshort
*v
);
152 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2DARBPROC
) (GLenum target
, GLdouble s
, GLdouble t
);
153 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2DVARBPROC
) (GLenum target
, const GLdouble
*v
);
154 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2FARBPROC
) (GLenum target
, GLfloat s
, GLfloat t
);
155 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2FVARBPROC
) (GLenum target
, const GLfloat
*v
);
156 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2IARBPROC
) (GLenum target
, GLint s
, GLint t
);
157 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2IVARBPROC
) (GLenum target
, const GLint
*v
);
158 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2SARBPROC
) (GLenum target
, GLshort s
, GLshort t
);
159 typedef void (APIENTRY
* PFNGLMULTITEXCOORD2SVARBPROC
) (GLenum target
, const GLshort
*v
);
160 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3DARBPROC
) (GLenum target
, GLdouble s
, GLdouble t
, GLdouble r
);
161 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3DVARBPROC
) (GLenum target
, const GLdouble
*v
);
162 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3FARBPROC
) (GLenum target
, GLfloat s
, GLfloat t
, GLfloat r
);
163 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3FVARBPROC
) (GLenum target
, const GLfloat
*v
);
164 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3IARBPROC
) (GLenum target
, GLint s
, GLint t
, GLint r
);
165 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3IVARBPROC
) (GLenum target
, const GLint
*v
);
166 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3SARBPROC
) (GLenum target
, GLshort s
, GLshort t
, GLshort r
);
167 typedef void (APIENTRY
* PFNGLMULTITEXCOORD3SVARBPROC
) (GLenum target
, const GLshort
*v
);
168 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4DARBPROC
) (GLenum target
, GLdouble s
, GLdouble t
, GLdouble r
, GLdouble q
);
169 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4DVARBPROC
) (GLenum target
, const GLdouble
*v
);
170 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4FARBPROC
) (GLenum target
, GLfloat s
, GLfloat t
, GLfloat r
, GLfloat q
);
171 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4FVARBPROC
) (GLenum target
, const GLfloat
*v
);
172 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4IARBPROC
) (GLenum target
, GLint s
, GLint t
, GLint r
, GLint q
);
173 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4IVARBPROC
) (GLenum target
, const GLint
*v
);
174 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4SARBPROC
) (GLenum target
, GLshort s
, GLshort t
, GLshort r
, GLshort q
);
175 typedef void (APIENTRY
* PFNGLMULTITEXCOORD4SVARBPROC
) (GLenum target
, const GLshort
*v
);
178 #ifndef GL_ARB_vertex_buffer_object
179 #define GL_ARB_vertex_buffer_object 1
180 typedef void (APIENTRY
* PFNGLBINDBUFFERARBPROC
) (GLenum target
, GLuint buffer
);
181 typedef void (APIENTRY
* PFNGLDELETEBUFFERSARBPROC
) (GLsizei n
, const GLuint
*buffers
);
182 typedef void (APIENTRY
* PFNGLGENBUFFERSARBPROC
) (GLsizei n
, GLuint
*buffers
);
183 typedef GLboolean (APIENTRY
* PFNGLISBUFFERARBPROC
) (GLuint buffer
);
184 typedef void (APIENTRY
* PFNGLBUFFERDATAARBPROC
) (GLenum target
, int size
, const GLvoid
*data
, GLenum usage
);
185 typedef void (APIENTRY
* PFNGLBUFFERSUBDATAARBPROC
) (GLenum target
, int offset
, int size
, const GLvoid
*data
);
186 typedef void (APIENTRY
* PFNGLGETBUFFERSUBDATAARBPROC
) (GLenum target
, int offset
, int size
, GLvoid
*data
);
187 typedef GLvoid
* (APIENTRY
* PFNGLMAPBUFFERARBPROC
) (GLenum target
, GLenum access
);
188 typedef GLboolean (APIENTRY
* PFNGLUNMAPBUFFERARBPROC
) (GLenum target
);
189 typedef void (APIENTRY
* PFNGLGETBUFFERPARAMETERIVARBPROC
) (GLenum target
, GLenum pname
, GLint
*params
);
190 typedef void (APIENTRY
* PFNGLGETBUFFERPOINTERVARBPROC
) (GLenum target
, GLenum pname
, GLvoid
* *params
);
193 #endif // !defined(AFX_GLMISSINGEXT_H__9DA92C48_B9A4_4517_AB9F_55141CCDA817__INCLUDED_)