Cleanup: remove redundant doxygen \file argument
[blender.git] / intern / glew-mx / intern / symbol-binding.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2014 Blender Foundation.
17  * All rights reserved.
18  */
19
20 /** \file \ingroup glew-mx
21  *
22  * This file is for any simple stuff that is missing from GLEW when
23  * compiled with either the GLEW_ES_ONLY or the GLEW_NO_ES flag.
24  *
25  * Should be limited to symbolic constants.
26  *
27  * This file is NOT for checking DEPRECATED OpenGL symbolic constants.
28  */
29
30 #ifndef __SYMBOL_BINDING_H__
31 #define __SYMBOL_BINDING_H__
32
33 #ifndef __GLEW_MX_H__
34 #error This file is meant to be included from glew-mx.h
35 #endif
36
37
38 #ifdef GLEW_ES_ONLY
39
40 /* ES does not support the GLdouble type. */
41 #ifndef GLdouble
42 #define GLdouble double
43 #endif
44
45 /*
46  * Need stubs for these version checks if compiling with only ES support.
47  * Rely on compiler to eliminate unreachable code when version checks become constants.
48  */
49
50 #ifndef GLEW_VERSION_1_1
51 #define GLEW_VERSION_1_1 0
52 #endif
53
54 #ifndef GLEW_VERSION_1_2
55 #define GLEW_VERSION_1_2 0
56 #endif
57
58 #ifndef GLEW_VERSION_1_3
59 #define GLEW_VERSION_1_3 0
60 #endif
61
62 #ifndef GLEW_VERSION_1_4
63 #define GLEW_VERSION_1_4 0
64 #endif
65
66 #ifndef GLEW_VERSION_1_5
67 #define GLEW_VERSION_1_5 0
68 #endif
69
70 #ifndef GLEW_VERSION_2_0
71 #define GLEW_VERSION_2_0 0
72 #endif
73
74 #ifndef GLEW_VERSION_3_0
75 #define GLEW_VERSION_3_0 0
76 #endif
77
78 #ifndef GLEW_ARB_shader_objects
79 #define GLEW_ARB_shader_objects 0
80 #endif
81
82 #ifndef GLEW_ARB_vertex_shader
83 #define GLEW_ARB_vertex_shader 0
84 #endif
85
86 #ifndef GLEW_ARB_vertex_program
87 #define GLEW_ARB_vertex_program 0
88 #endif
89
90 #ifndef GLEW_ARB_fragment_program
91 #define GLEW_ARB_fragment_program 0
92 #endif
93
94 #ifndef GLEW_ARB_vertex_buffer_object
95 #define GLEW_ARB_vertex_buffer_object 0
96 #endif
97
98 #ifndef GLEW_ARB_framebuffer_object
99 #define GLEW_ARB_framebuffer_object 0
100 #endif
101
102 #ifndef GLEW_ARB_multitexture
103 #define GLEW_ARB_multitexture 0
104 #endif
105
106 #ifndef GLEW_EXT_framebuffer_object
107 #define GLEW_EXT_framebuffer_object 0
108 #endif
109
110 #ifndef GLEW_ARB_depth_texture
111 #define GLEW_ARB_depth_texture 0
112 #endif
113
114 #ifndef GLEW_ARB_shadow
115 #define GLEW_ARB_shadow 0
116 #endif
117
118 #ifndef GLEW_ARB_texture_float
119 #define GLEW_ARB_texture_float 0
120 #endif
121
122 #ifndef GLEW_ARB_texture_non_power_of_two
123 #define GLEW_ARB_texture_non_power_of_two 0
124 #endif
125
126 #ifndef GLEW_ARB_texture3D
127 #define GLEW_ARB_texture3D 0
128 #endif
129
130 #ifndef GLEW_EXT_texture3D
131 #define GLEW_EXT_texture3D 0
132 #endif
133
134 #ifndef GLEW_ARB_texture_rg
135 #define GLEW_ARB_texture_rg 0
136 #endif
137
138 #ifndef GLEW_ARB_texture_query_lod
139 #define GLEW_ARB_texture_query_lod 0
140 #endif
141
142
143 /*
144  * The following symbolic constants are missing from an ES only header,
145  * so alias them to their (same valued) extension versions which are available in the header.
146  *
147  * Be careful that this does not lead to unguarded use of what are extensions in ES!
148  *
149  * Some of these may be here simply to patch inconsistencies in the header files.
150  */
151
152 #ifndef GL_TEXTURE_3D
153 #define GL_TEXTURE_3D GL_TEXTURE_3D_OES
154 #endif
155
156 #ifndef GL_TEXTURE_WRAP_R
157 #define GL_TEXTURE_WRAP_R GL_TEXTURE_WRAP_R_OES
158 #endif
159
160 #ifndef GL_TEXTURE_COMPARE_MODE
161 #define GL_TEXTURE_COMPARE_MODE GL_TEXTURE_COMPARE_MODE_EXT
162 #endif
163
164 #ifndef GL_COMPARE_REF_TO_TEXTURE
165 #define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_REF_TO_TEXTURE_EXT
166 #endif
167
168 #ifndef GL_TEXTURE_COMPARE_FUNC
169 #define GL_TEXTURE_COMPARE_FUNC GL_TEXTURE_COMPARE_FUNC_EXT
170 #endif
171
172 #ifndef GL_RGBA8
173 #define GL_RGBA8 GL_RGBA8_OES
174 #endif
175
176 #ifndef GL_RGBA16F
177 #define GL_RGBA16F GL_RGBA16F_EXT
178 #endif
179
180 #ifndef GL_RG32F
181 #define GL_RG32F GL_RG32F_EXT
182 #endif
183
184 #ifndef GL_RGB8
185 #define GL_RGB8 GL_RGB8_OES
186 #endif
187
188 #ifndef GL_RG
189 #define GL_RG GL_RG_EXT
190 #endif
191
192 #ifndef GL_RED
193 #define GL_RED GL_RED_EXT
194 #endif
195
196 #ifndef GL_FRAMEBUFFER_INCOMPLETE_FORMATS
197 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
198 #endif
199
200 #ifndef GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
201 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES
202 #endif
203
204 #ifndef GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
205 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES
206 #endif
207
208 #ifndef GL_WRITE_ONLY
209 #define GL_WRITE_ONLY GL_WRITE_ONLY_OES
210 #endif
211
212 #ifndef GLEW_ARB_vertex_array_object
213 #define GLEW_ARB_vertex_array_object 0
214 #endif
215
216
217 /* end of ifdef GLEW_ES_ONLY */
218 #elif defined(GLEW_NO_ES)
219
220
221 /*
222  * Need stubs for these version checks if compiling without any support.
223  * Rely on compiler to eliminate unreachable code when version checks become constants
224  */
225
226 #ifndef GLEW_ES_VERSION_2_0
227 #define GLEW_ES_VERSION_2_0 0
228 #endif
229
230 #ifndef GLEW_EXT_texture_storage
231 #define GLEW_EXT_texture_storage 0
232 #endif
233
234 #ifndef GLEW_OES_framebuffer_object
235 #define GLEW_OES_framebuffer_object 0
236 #endif
237
238 #ifndef GLEW_OES_mapbuffer
239 #define GLEW_OES_mapbuffer 0
240 #endif
241
242 #ifndef GLEW_OES_required_internalformat
243 #define GLEW_OES_required_internalformat 0
244 #endif
245
246 #ifndef GLEW_EXT_color_buffer_half_float
247 #define GLEW_EXT_color_buffer_half_float 0
248 #endif
249
250 #ifndef GLEW_OES_depth_texture
251 #define GLEW_OES_depth_texture 0
252 #endif
253
254 #ifndef GLEW_EXT_shadow_samplers
255 #define GLEW_EXT_shadow_samplers 0
256 #endif
257
258 #ifndef GLEW_ARB_texture3D
259 #define GLEW_ARB_texture3D 0
260 #endif
261
262 #ifndef GLEW_OES_texture_3D
263 #define GLEW_OES_texture_3D 0
264 #endif
265
266 #ifndef GLEW_EXT_texture_rg
267 #define GLEW_EXT_texture_rg 0
268 #endif
269
270 #ifndef GLEW_OES_vertex_array_object
271 #define GLEW_OES_vertex_array_object 0
272 #endif
273
274
275 /*
276  * The following symbolic constants are missing when there is no ES support,
277  * so alias them to their (same valued) extension versions which are available in the header.
278  *
279  * Desktop GL typically does not have any extensions that originated from ES,
280  * unlike ES which has many extensions to replace what was taken out.
281  *
282  * For that reason these aliases are more likely just patching inconsistencies in the header files.
283  */
284
285 #ifndef GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
286 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
287 #endif
288
289 #ifndef GL_FRAMEBUFFER_INCOMPLETE_FORMATS
290 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
291 #endif
292
293 #endif /* ifdef GLEW_NO_ES */
294
295
296 #endif /* __SYMBOL_BINDING_H__*/