1 ////////////////////////////////////////////////////////////////////////////////
2 //    Scorched3D (c) 2000-2011
3 //
4 //    This file is part of Scorched3D.
5 //
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.
10 //
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.
15 //
16 //    You should have received a copy of the GNU General Public License along
17 //    with this program; if not, write to the Free Software Foundation, Inc.,
18 //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 ////////////////////////////////////////////////////////////////////////////////
20 
21 #if !defined(AFX_GLMISSINGEXT_H__9DA92C48_B9A4_4517_AB9F_55141CCDA817__INCLUDED_)
22 #define AFX_GLMISSINGEXT_H__9DA92C48_B9A4_4517_AB9F_55141CCDA817__INCLUDED_
23 
24 // Some newer official GL extensions that may not have made it into the SDL
25 // implementation yet
26 
27 #ifndef GL_COMBINE_ARB
28 #define GL_COMBINE_ARB						0x8570
29 #endif
30 
31 #ifndef GL_RGB_SCALE_ARB
32 #define GL_RGB_SCALE_ARB					0x8573
33 #endif
34 
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
40 #endif
41 
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
48 #endif
49 
50 #ifndef GL_ARB_shadow
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
54 #endif
55 
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
110 #endif
111 
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
117 #endif
118 
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);
138 #endif
139 
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);
176 #endif
177 
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);
191 #endif
192 
193 #endif // !defined(AFX_GLMISSINGEXT_H__9DA92C48_B9A4_4517_AB9F_55141CCDA817__INCLUDED_)
194