[OPENGL]
[reactos.git] / reactos / dll / opengl / mesa / src / mesa / main / api_exec_es2.c
1 /* DO NOT EDIT *************************************************
2 * THIS FILE AUTOMATICALLY GENERATED BY THE es_generator.py SCRIPT
3 * API specification file: main/APIspec.xml
4 * GLES version: GLES2.0
5 * date: 2012-07-10 08:30:55
6 */
7
8
9 #include "GLES2/gl2.h"
10 #include "GLES2/gl2ext.h"
11 #include "main/mfeatures.h"
12 #include "main/compiler.h"
13 #include "main/api_exec.h"
14
15 #if FEATURE_ES2
16
17 #ifndef GLAPIENTRYP
18 #define GLAPIENTRYP GL_APIENTRYP
19 #endif
20
21
22 /* These types are needed for the Mesa veneer, but are not defined in
23 * the standard GLES headers.
24 */
25 typedef double GLdouble;
26 typedef double GLclampd;
27
28 /* Mesa error handling requires these */
29 extern void *_mesa_get_current_context(void);
30 extern void _mesa_error(void *ctx, GLenum error, const char *fmtString, ... );
31
32 /*************************************************************
33 * Generated functions begin here
34 */
35
36 extern void GL_APIENTRY _mesa_ActiveTextureARB(GLenum texture);
37 static void GL_APIENTRY _es_ActiveTexture(GLenum texture)
38 {
39 switch(texture) {
40 case GL_TEXTURE0:
41 case GL_TEXTURE1:
42 case GL_TEXTURE2:
43 case GL_TEXTURE3:
44 case GL_TEXTURE4:
45 case GL_TEXTURE5:
46 case GL_TEXTURE6:
47 case GL_TEXTURE7:
48 case GL_TEXTURE8:
49 case GL_TEXTURE9:
50 case GL_TEXTURE10:
51 case GL_TEXTURE11:
52 case GL_TEXTURE12:
53 case GL_TEXTURE13:
54 case GL_TEXTURE14:
55 case GL_TEXTURE15:
56 case GL_TEXTURE16:
57 case GL_TEXTURE17:
58 case GL_TEXTURE18:
59 case GL_TEXTURE19:
60 case GL_TEXTURE20:
61 case GL_TEXTURE21:
62 case GL_TEXTURE22:
63 case GL_TEXTURE23:
64 case GL_TEXTURE24:
65 case GL_TEXTURE25:
66 case GL_TEXTURE26:
67 case GL_TEXTURE27:
68 case GL_TEXTURE28:
69 case GL_TEXTURE29:
70 case GL_TEXTURE30:
71 case GL_TEXTURE31:
72 break;
73 default:
74 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glActiveTexture(texture=0x%x)", texture);
75 return;
76 }
77
78 _mesa_ActiveTextureARB(texture);
79 }
80
81 extern void GL_APIENTRY _mesa_AttachShader(GLuint program, GLuint shader);
82 #define _es_AttachShader _mesa_AttachShader
83
84 extern void GL_APIENTRY _mesa_BindAttribLocationARB(GLuint program, GLuint index, const char * name);
85 #define _es_BindAttribLocation _mesa_BindAttribLocationARB
86
87 extern void GL_APIENTRY _mesa_BindBufferARB(GLenum target, GLuint buffer);
88 static void GL_APIENTRY _es_BindBuffer(GLenum target, GLuint buffer)
89 {
90 switch(target) {
91 case GL_ARRAY_BUFFER:
92 case GL_ELEMENT_ARRAY_BUFFER:
93 break;
94 default:
95 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindBuffer(target=0x%x)", target);
96 return;
97 }
98
99 _mesa_BindBufferARB(target, buffer);
100 }
101
102 extern void GL_APIENTRY _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer);
103 #define _es_BindFramebuffer _mesa_BindFramebufferEXT
104
105 extern void GL_APIENTRY _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer);
106 #define _es_BindRenderbuffer _mesa_BindRenderbufferEXT
107
108 extern void GL_APIENTRY _mesa_BindTexture(GLenum target, GLuint texture);
109 static void GL_APIENTRY _es_BindTexture(GLenum target, GLuint texture)
110 {
111 switch(target) {
112 case GL_TEXTURE_2D:
113 case GL_TEXTURE_CUBE_MAP:
114 case GL_TEXTURE_3D_OES:
115 case GL_TEXTURE_EXTERNAL_OES:
116 break;
117 default:
118 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindTexture(target=0x%x)", target);
119 return;
120 }
121
122 _mesa_BindTexture(target, texture);
123 }
124
125 extern void GL_APIENTRY _mesa_BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
126 #define _es_BlendColor _mesa_BlendColor
127
128 extern void GL_APIENTRY _mesa_BlendEquation(GLenum mode);
129 static void GL_APIENTRY _es_BlendEquation(GLenum mode)
130 {
131 switch(mode) {
132 case GL_FUNC_ADD:
133 case GL_FUNC_SUBTRACT:
134 case GL_FUNC_REVERSE_SUBTRACT:
135 case GL_MIN_EXT:
136 case GL_MAX_EXT:
137 break;
138 default:
139 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquation(mode=0x%x)", mode);
140 return;
141 }
142
143 _mesa_BlendEquation(mode);
144 }
145
146 extern void GL_APIENTRY _mesa_BlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha);
147 static void GL_APIENTRY _es_BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
148 {
149 switch(modeRGB) {
150 case GL_FUNC_ADD:
151 case GL_FUNC_SUBTRACT:
152 case GL_FUNC_REVERSE_SUBTRACT:
153 case GL_MIN_EXT:
154 case GL_MAX_EXT:
155 break;
156 default:
157 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparate(modeRGB=0x%x)", modeRGB);
158 return;
159 }
160 switch(modeAlpha) {
161 case GL_FUNC_ADD:
162 case GL_FUNC_SUBTRACT:
163 case GL_FUNC_REVERSE_SUBTRACT:
164 case GL_MIN_EXT:
165 case GL_MAX_EXT:
166 break;
167 default:
168 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparate(modeAlpha=0x%x)", modeAlpha);
169 return;
170 }
171
172 _mesa_BlendEquationSeparateEXT(modeRGB, modeAlpha);
173 }
174
175 extern void GL_APIENTRY _mesa_BlendFunc(GLenum sfactor, GLenum dfactor);
176 static void GL_APIENTRY _es_BlendFunc(GLenum sfactor, GLenum dfactor)
177 {
178 switch(sfactor) {
179 case GL_ZERO:
180 case GL_ONE:
181 case GL_SRC_COLOR:
182 case GL_ONE_MINUS_SRC_COLOR:
183 case GL_SRC_ALPHA:
184 case GL_ONE_MINUS_SRC_ALPHA:
185 case GL_DST_ALPHA:
186 case GL_ONE_MINUS_DST_ALPHA:
187 case GL_DST_COLOR:
188 case GL_ONE_MINUS_DST_COLOR:
189 case GL_SRC_ALPHA_SATURATE:
190 case GL_CONSTANT_COLOR:
191 case GL_CONSTANT_ALPHA:
192 case GL_ONE_MINUS_CONSTANT_COLOR:
193 case GL_ONE_MINUS_CONSTANT_ALPHA:
194 break;
195 default:
196 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(sfactor=0x%x)", sfactor);
197 return;
198 }
199 switch(dfactor) {
200 case GL_ZERO:
201 case GL_ONE:
202 case GL_SRC_COLOR:
203 case GL_ONE_MINUS_SRC_COLOR:
204 case GL_SRC_ALPHA:
205 case GL_ONE_MINUS_SRC_ALPHA:
206 case GL_DST_ALPHA:
207 case GL_ONE_MINUS_DST_ALPHA:
208 case GL_DST_COLOR:
209 case GL_ONE_MINUS_DST_COLOR:
210 case GL_CONSTANT_COLOR:
211 case GL_CONSTANT_ALPHA:
212 case GL_ONE_MINUS_CONSTANT_COLOR:
213 case GL_ONE_MINUS_CONSTANT_ALPHA:
214 break;
215 default:
216 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(dfactor=0x%x)", dfactor);
217 return;
218 }
219
220 _mesa_BlendFunc(sfactor, dfactor);
221 }
222
223 extern void GL_APIENTRY _mesa_BlendFuncSeparateEXT(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
224 static void GL_APIENTRY _es_BlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
225 {
226 switch(srcRGB) {
227 case GL_ZERO:
228 case GL_ONE:
229 case GL_SRC_COLOR:
230 case GL_ONE_MINUS_SRC_COLOR:
231 case GL_SRC_ALPHA:
232 case GL_ONE_MINUS_SRC_ALPHA:
233 case GL_DST_ALPHA:
234 case GL_ONE_MINUS_DST_ALPHA:
235 case GL_DST_COLOR:
236 case GL_ONE_MINUS_DST_COLOR:
237 case GL_SRC_ALPHA_SATURATE:
238 case GL_CONSTANT_COLOR:
239 case GL_ONE_MINUS_CONSTANT_COLOR:
240 case GL_CONSTANT_ALPHA:
241 case GL_ONE_MINUS_CONSTANT_ALPHA:
242 break;
243 default:
244 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(srcRGB=0x%x)", srcRGB);
245 return;
246 }
247 switch(dstRGB) {
248 case GL_ZERO:
249 case GL_ONE:
250 case GL_SRC_COLOR:
251 case GL_ONE_MINUS_SRC_COLOR:
252 case GL_SRC_ALPHA:
253 case GL_ONE_MINUS_SRC_ALPHA:
254 case GL_DST_ALPHA:
255 case GL_ONE_MINUS_DST_ALPHA:
256 case GL_DST_COLOR:
257 case GL_ONE_MINUS_DST_COLOR:
258 case GL_CONSTANT_COLOR:
259 case GL_ONE_MINUS_CONSTANT_COLOR:
260 case GL_CONSTANT_ALPHA:
261 case GL_ONE_MINUS_CONSTANT_ALPHA:
262 break;
263 default:
264 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(dstRGB=0x%x)", dstRGB);
265 return;
266 }
267 switch(srcAlpha) {
268 case GL_ZERO:
269 case GL_ONE:
270 case GL_SRC_COLOR:
271 case GL_ONE_MINUS_SRC_COLOR:
272 case GL_SRC_ALPHA:
273 case GL_ONE_MINUS_SRC_ALPHA:
274 case GL_DST_ALPHA:
275 case GL_ONE_MINUS_DST_ALPHA:
276 case GL_DST_COLOR:
277 case GL_ONE_MINUS_DST_COLOR:
278 case GL_SRC_ALPHA_SATURATE:
279 case GL_CONSTANT_COLOR:
280 case GL_ONE_MINUS_CONSTANT_COLOR:
281 case GL_CONSTANT_ALPHA:
282 case GL_ONE_MINUS_CONSTANT_ALPHA:
283 break;
284 default:
285 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(srcAlpha=0x%x)", srcAlpha);
286 return;
287 }
288 switch(dstAlpha) {
289 case GL_ZERO:
290 case GL_ONE:
291 case GL_SRC_COLOR:
292 case GL_ONE_MINUS_SRC_COLOR:
293 case GL_SRC_ALPHA:
294 case GL_ONE_MINUS_SRC_ALPHA:
295 case GL_DST_ALPHA:
296 case GL_ONE_MINUS_DST_ALPHA:
297 case GL_DST_COLOR:
298 case GL_ONE_MINUS_DST_COLOR:
299 case GL_CONSTANT_COLOR:
300 case GL_ONE_MINUS_CONSTANT_COLOR:
301 case GL_CONSTANT_ALPHA:
302 case GL_ONE_MINUS_CONSTANT_ALPHA:
303 break;
304 default:
305 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(dstAlpha=0x%x)", dstAlpha);
306 return;
307 }
308
309 _mesa_BlendFuncSeparateEXT(srcRGB, dstRGB, srcAlpha, dstAlpha);
310 }
311
312 extern void GL_APIENTRY _mesa_BufferDataARB(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);
313 static void GL_APIENTRY _es_BufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
314 {
315 switch(target) {
316 case GL_ARRAY_BUFFER:
317 case GL_ELEMENT_ARRAY_BUFFER:
318 break;
319 default:
320 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(target=0x%x)", target);
321 return;
322 }
323 switch(usage) {
324 case GL_STATIC_DRAW:
325 case GL_DYNAMIC_DRAW:
326 case GL_STREAM_DRAW:
327 break;
328 default:
329 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(usage=0x%x)", usage);
330 return;
331 }
332
333 _mesa_BufferDataARB(target, size, data, usage);
334 }
335
336 extern void GL_APIENTRY _mesa_BufferSubDataARB(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data);
337 static void GL_APIENTRY _es_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data)
338 {
339 switch(target) {
340 case GL_ARRAY_BUFFER:
341 case GL_ELEMENT_ARRAY_BUFFER:
342 break;
343 default:
344 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferSubData(target=0x%x)", target);
345 return;
346 }
347
348 _mesa_BufferSubDataARB(target, offset, size, data);
349 }
350
351 extern GLenum GL_APIENTRY _mesa_CheckFramebufferStatusEXT(GLenum target);
352 #define _es_CheckFramebufferStatus _mesa_CheckFramebufferStatusEXT
353
354 extern void GL_APIENTRY _mesa_Clear(GLbitfield mask);
355 static void GL_APIENTRY _es_Clear(GLbitfield mask)
356 {
357 switch(mask) {
358 case 0:
359 case (GL_COLOR_BUFFER_BIT):
360 case (GL_DEPTH_BUFFER_BIT):
361 case (GL_STENCIL_BUFFER_BIT):
362 case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT):
363 case (GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT):
364 case (GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT):
365 case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT):
366 break;
367 default:
368 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glClear(mask=0x%x)", mask);
369 return;
370 }
371
372 _mesa_Clear(mask);
373 }
374
375 extern void GL_APIENTRY _mesa_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
376 #define _es_ClearColor _mesa_ClearColor
377
378 extern void GL_APIENTRY _mesa_ClearDepthf(GLclampf depth);
379 #define _es_ClearDepthf _mesa_ClearDepthf
380
381 extern void GL_APIENTRY _mesa_ClearStencil(GLint s);
382 #define _es_ClearStencil _mesa_ClearStencil
383
384 extern void GL_APIENTRY _mesa_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
385 #define _es_ColorMask _mesa_ColorMask
386
387 extern void GL_APIENTRY _mesa_CompileShaderARB(GLuint shader);
388 #define _es_CompileShader _mesa_CompileShaderARB
389
390 extern void GL_APIENTRY _mesa_CompressedTexImage2DARB(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data);
391 static void GL_APIENTRY _es_CompressedTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
392 {
393 switch(target) {
394 case GL_TEXTURE_2D:
395 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
396 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
397 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
398 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
399 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
400 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
401 break;
402 default:
403 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(target=0x%x)", target);
404 return;
405 }
406 switch(internalFormat) {
407 case GL_ETC1_RGB8_OES:
408 case GL_PALETTE4_RGB8_OES:
409 case GL_PALETTE4_RGBA8_OES:
410 case GL_PALETTE4_R5_G6_B5_OES:
411 case GL_PALETTE4_RGBA4_OES:
412 case GL_PALETTE4_RGB5_A1_OES:
413 case GL_PALETTE8_RGB8_OES:
414 case GL_PALETTE8_RGBA8_OES:
415 case GL_PALETTE8_R5_G6_B5_OES:
416 case GL_PALETTE8_RGBA4_OES:
417 case GL_PALETTE8_RGB5_A1_OES:
418 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
419 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
420 break;
421 default:
422 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(internalFormat=0x%x)", internalFormat);
423 return;
424 }
425 switch(border) {
426 case 0:
427 break;
428 default:
429 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCompressedTexImage2D(border=%d)", border);
430 return;
431 }
432
433 _mesa_CompressedTexImage2DARB(target, level, internalFormat, width, height, border, imageSize, data);
434 }
435
436 extern void GL_APIENTRY _mesa_CompressedTexImage3DARB(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid * data);
437 static void GL_APIENTRY _es_CompressedTexImage3DOES(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid *data)
438 {
439 switch(target) {
440 case GL_TEXTURE_3D_OES:
441 break;
442 default:
443 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage3DOES(target=0x%x)", target);
444 return;
445 }
446
447 _mesa_CompressedTexImage3DARB(target, level, internalFormat, width, height, depth, border, imagesize, data);
448 }
449
450 extern void GL_APIENTRY _mesa_CompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data);
451 static void GL_APIENTRY _es_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)
452 {
453 switch(target) {
454 case GL_TEXTURE_2D:
455 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
456 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
457 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
458 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
459 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
460 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
461 break;
462 default:
463 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage2D(target=0x%x)", target);
464 return;
465 }
466 switch(format) {
467 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
468 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
469 break;
470 default:
471 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage2D(format=0x%x)", format);
472 return;
473 }
474
475 _mesa_CompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data);
476 }
477
478 extern void GL_APIENTRY _mesa_CompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid * data);
479 static void GL_APIENTRY _es_CompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid *data)
480 {
481 switch(target) {
482 case GL_TEXTURE_3D_OES:
483 break;
484 default:
485 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage3DOES(target=0x%x)", target);
486 return;
487 }
488
489 _mesa_CompressedTexSubImage3DARB(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, data);
490 }
491
492 extern void GL_APIENTRY _mesa_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
493 static void GL_APIENTRY _es_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
494 {
495 switch(target) {
496 case GL_TEXTURE_2D:
497 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
498 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
499 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
500 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
501 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
502 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
503 break;
504 default:
505 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexImage2D(target=0x%x)", target);
506 return;
507 }
508 switch(internalFormat) {
509 case GL_ALPHA:
510 case GL_RGB:
511 case GL_RGBA:
512 case GL_LUMINANCE:
513 case GL_LUMINANCE_ALPHA:
514 break;
515 default:
516 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(internalFormat=0x%x)", internalFormat);
517 return;
518 }
519 switch(border) {
520 case 0:
521 break;
522 default:
523 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(border=%d)", border);
524 return;
525 }
526
527 _mesa_CopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
528 }
529
530 extern void GL_APIENTRY _mesa_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
531 static void GL_APIENTRY _es_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
532 {
533 switch(target) {
534 case GL_TEXTURE_2D:
535 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
536 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
537 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
538 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
539 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
540 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
541 break;
542 default:
543 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexSubImage2D(target=0x%x)", target);
544 return;
545 }
546
547 _mesa_CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
548 }
549
550 extern void GL_APIENTRY _mesa_CopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
551 static void GL_APIENTRY _es_CopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
552 {
553 switch(target) {
554 case GL_TEXTURE_3D_OES:
555 break;
556 default:
557 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexSubImage3DOES(target=0x%x)", target);
558 return;
559 }
560
561 _mesa_CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
562 }
563
564 extern GLuint GL_APIENTRY _mesa_CreateProgram(void);
565 #define _es_CreateProgram _mesa_CreateProgram
566
567 extern GLuint GL_APIENTRY _mesa_CreateShader(GLenum type);
568 static GLuint GL_APIENTRY _es_CreateShader(GLenum type)
569 {
570 switch(type) {
571 case GL_VERTEX_SHADER:
572 case GL_FRAGMENT_SHADER:
573 break;
574 default:
575 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCreateShader(type=0x%x)", type);
576 return (GLuint) 0;
577 }
578
579 return _mesa_CreateShader(type);
580 }
581
582 extern void GL_APIENTRY _mesa_CullFace(GLenum mode);
583 static void GL_APIENTRY _es_CullFace(GLenum mode)
584 {
585 switch(mode) {
586 case GL_FRONT:
587 case GL_BACK:
588 case GL_FRONT_AND_BACK:
589 break;
590 default:
591 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCullFace(mode=0x%x)", mode);
592 return;
593 }
594
595 _mesa_CullFace(mode);
596 }
597
598 extern void GL_APIENTRY _mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer);
599 #define _es_DeleteBuffers _mesa_DeleteBuffersARB
600
601 extern void GL_APIENTRY _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers);
602 #define _es_DeleteFramebuffers _mesa_DeleteFramebuffersEXT
603
604 extern void GL_APIENTRY _mesa_DeleteProgram(GLuint program);
605 #define _es_DeleteProgram _mesa_DeleteProgram
606
607 extern void GL_APIENTRY _mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers);
608 #define _es_DeleteRenderbuffers _mesa_DeleteRenderbuffersEXT
609
610 extern void GL_APIENTRY _mesa_DeleteShader(GLuint shader);
611 #define _es_DeleteShader _mesa_DeleteShader
612
613 extern void GL_APIENTRY _mesa_DeleteTextures(GLsizei n, const GLuint * textures);
614 #define _es_DeleteTextures _mesa_DeleteTextures
615
616 extern void GL_APIENTRY _mesa_DepthFunc(GLenum func);
617 static void GL_APIENTRY _es_DepthFunc(GLenum func)
618 {
619 switch(func) {
620 case GL_NEVER:
621 case GL_LESS:
622 case GL_EQUAL:
623 case GL_LEQUAL:
624 case GL_GREATER:
625 case GL_NOTEQUAL:
626 case GL_GEQUAL:
627 case GL_ALWAYS:
628 break;
629 default:
630 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDepthFunc(func=0x%x)", func);
631 return;
632 }
633
634 _mesa_DepthFunc(func);
635 }
636
637 extern void GL_APIENTRY _mesa_DepthMask(GLboolean flag);
638 #define _es_DepthMask _mesa_DepthMask
639
640 extern void GL_APIENTRY _mesa_DepthRangef(GLclampf zNear, GLclampf zFar);
641 #define _es_DepthRangef _mesa_DepthRangef
642
643 extern void GL_APIENTRY _mesa_DetachShader(GLuint program, GLuint shader);
644 #define _es_DetachShader _mesa_DetachShader
645
646 extern void GL_APIENTRY _mesa_Disable(GLenum cap);
647 static void GL_APIENTRY _es_Disable(GLenum cap)
648 {
649 switch(cap) {
650 case GL_CULL_FACE:
651 case GL_SCISSOR_TEST:
652 case GL_POLYGON_OFFSET_FILL:
653 case GL_SAMPLE_ALPHA_TO_COVERAGE:
654 case GL_SAMPLE_COVERAGE:
655 case GL_STENCIL_TEST:
656 case GL_DEPTH_TEST:
657 case GL_DITHER:
658 case GL_BLEND:
659 break;
660 default:
661 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDisable(cap=0x%x)", cap);
662 return;
663 }
664
665 _mesa_Disable(cap);
666 }
667
668 extern void GL_APIENTRY _mesa_DisableVertexAttribArrayARB(GLuint index);
669 #define _es_DisableVertexAttribArray _mesa_DisableVertexAttribArrayARB
670
671 extern void GL_APIENTRY _mesa_DrawArrays(GLenum mode, GLint first, GLsizei count);
672 static void GL_APIENTRY _es_DrawArrays(GLenum mode, GLint first, GLsizei count)
673 {
674 switch(mode) {
675 case GL_POINTS:
676 case GL_LINES:
677 case GL_LINE_LOOP:
678 case GL_LINE_STRIP:
679 case GL_TRIANGLES:
680 case GL_TRIANGLE_STRIP:
681 case GL_TRIANGLE_FAN:
682 break;
683 default:
684 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawArrays(mode=0x%x)", mode);
685 return;
686 }
687
688 _mesa_DrawArrays(mode, first, count);
689 }
690
691 extern void GL_APIENTRY _mesa_DrawBuffersARB(GLsizei n, const GLenum * bufs);
692 #define _es_DrawBuffersNV _mesa_DrawBuffersARB
693
694 extern void GL_APIENTRY _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices);
695 static void GL_APIENTRY _es_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
696 {
697 switch(mode) {
698 case GL_POINTS:
699 case GL_LINES:
700 case GL_LINE_LOOP:
701 case GL_LINE_STRIP:
702 case GL_TRIANGLES:
703 case GL_TRIANGLE_STRIP:
704 case GL_TRIANGLE_FAN:
705 break;
706 default:
707 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(mode=0x%x)", mode);
708 return;
709 }
710 switch(type) {
711 case GL_UNSIGNED_BYTE:
712 case GL_UNSIGNED_SHORT:
713 case GL_UNSIGNED_INT:
714 break;
715 default:
716 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(type=0x%x)", type);
717 return;
718 }
719
720 _mesa_DrawElements(mode, count, type, indices);
721 }
722
723 extern void GL_APIENTRY _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
724 #define _es_EGLImageTargetRenderbufferStorageOES _mesa_EGLImageTargetRenderbufferStorageOES
725
726 extern void GL_APIENTRY _mesa_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
727 static void GL_APIENTRY _es_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
728 {
729 switch(target) {
730 case GL_TEXTURE_2D:
731 case GL_TEXTURE_EXTERNAL_OES:
732 break;
733 default:
734 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetTexture2DOES(target=0x%x)", target);
735 return;
736 }
737
738 _mesa_EGLImageTargetTexture2DOES(target, image);
739 }
740
741 extern void GL_APIENTRY _mesa_Enable(GLenum cap);
742 static void GL_APIENTRY _es_Enable(GLenum cap)
743 {
744 switch(cap) {
745 case GL_CULL_FACE:
746 case GL_SCISSOR_TEST:
747 case GL_POLYGON_OFFSET_FILL:
748 case GL_SAMPLE_ALPHA_TO_COVERAGE:
749 case GL_SAMPLE_COVERAGE:
750 case GL_STENCIL_TEST:
751 case GL_DEPTH_TEST:
752 case GL_DITHER:
753 case GL_BLEND:
754 break;
755 default:
756 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEnable(cap=0x%x)", cap);
757 return;
758 }
759
760 _mesa_Enable(cap);
761 }
762
763 extern void GL_APIENTRY _mesa_EnableVertexAttribArrayARB(GLuint index);
764 #define _es_EnableVertexAttribArray _mesa_EnableVertexAttribArrayARB
765
766 extern void GL_APIENTRY _mesa_Finish(void);
767 #define _es_Finish _mesa_Finish
768
769 extern void GL_APIENTRY _mesa_Flush(void);
770 #define _es_Flush _mesa_Flush
771
772 extern void GL_APIENTRY _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
773 #define _es_FramebufferRenderbuffer _mesa_FramebufferRenderbufferEXT
774
775 extern void GL_APIENTRY _mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
776 static void GL_APIENTRY _es_FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
777 {
778 switch(textarget) {
779 case GL_TEXTURE_2D:
780 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
781 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
782 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
783 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
784 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
785 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
786 break;
787 default:
788 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glFramebufferTexture2D(textarget=0x%x)", textarget);
789 return;
790 }
791
792 _mesa_FramebufferTexture2DEXT(target, attachment, textarget, texture, level);
793 }
794
795 extern void GL_APIENTRY _mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
796 static void GL_APIENTRY _es_FramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
797 {
798 switch(textarget) {
799 case GL_TEXTURE_3D_OES:
800 break;
801 default:
802 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glFramebufferTexture3DOES(textarget=0x%x)", textarget);
803 return;
804 }
805
806 _mesa_FramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset);
807 }
808
809 extern void GL_APIENTRY _mesa_FrontFace(GLenum mode);
810 static void GL_APIENTRY _es_FrontFace(GLenum mode)
811 {
812 switch(mode) {
813 case GL_CW:
814 case GL_CCW:
815 break;
816 default:
817 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFrontFace(mode=0x%x)", mode);
818 return;
819 }
820
821 _mesa_FrontFace(mode);
822 }
823
824 extern void GL_APIENTRY _mesa_GenBuffersARB(GLsizei n, GLuint * buffer);
825 #define _es_GenBuffers _mesa_GenBuffersARB
826
827 extern void GL_APIENTRY _mesa_GenFramebuffersEXT(GLsizei n, GLuint * ids);
828 #define _es_GenFramebuffers _mesa_GenFramebuffersEXT
829
830 extern void GL_APIENTRY _mesa_GenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers);
831 #define _es_GenRenderbuffers _mesa_GenRenderbuffersEXT
832
833 extern void GL_APIENTRY _mesa_GenTextures(GLsizei n, GLuint * textures);
834 #define _es_GenTextures _mesa_GenTextures
835
836 extern void GL_APIENTRY _mesa_GenerateMipmapEXT(GLenum target);
837 static void GL_APIENTRY _es_GenerateMipmap(GLenum target)
838 {
839 switch(target) {
840 case GL_TEXTURE_2D:
841 case GL_TEXTURE_CUBE_MAP:
842 case GL_TEXTURE_3D_OES:
843 break;
844 default:
845 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGenerateMipmap(target=0x%x)", target);
846 return;
847 }
848
849 _mesa_GenerateMipmapEXT(target);
850 }
851
852 extern void GL_APIENTRY _mesa_GetActiveAttribARB(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
853 #define _es_GetActiveAttrib _mesa_GetActiveAttribARB
854
855 extern void GL_APIENTRY _mesa_GetActiveUniformARB(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
856 #define _es_GetActiveUniform _mesa_GetActiveUniformARB
857
858 extern void GL_APIENTRY _mesa_GetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
859 #define _es_GetAttachedShaders _mesa_GetAttachedShaders
860
861 extern GLint GL_APIENTRY _mesa_GetAttribLocationARB(GLuint program, const char * name);
862 #define _es_GetAttribLocation _mesa_GetAttribLocationARB
863
864 extern void GL_APIENTRY _mesa_GetBooleanv(GLenum pname, GLboolean * params);
865 #define _es_GetBooleanv _mesa_GetBooleanv
866
867 extern void GL_APIENTRY _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint * params);
868 static void GL_APIENTRY _es_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
869 {
870 switch(target) {
871 case GL_ARRAY_BUFFER:
872 case GL_ELEMENT_ARRAY_BUFFER:
873 break;
874 default:
875 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(target=0x%x)", target);
876 return;
877 }
878 switch(pname) {
879 case GL_BUFFER_SIZE:
880 case GL_BUFFER_USAGE:
881 case GL_BUFFER_ACCESS_OES:
882 case GL_BUFFER_MAPPED_OES:
883 break;
884 default:
885 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(pname=0x%x)", pname);
886 return;
887 }
888
889 _mesa_GetBufferParameterivARB(target, pname, params);
890 }
891
892 extern void GL_APIENTRY _mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid ** params);
893 static void GL_APIENTRY _es_GetBufferPointervOES(GLenum target, GLenum pname, GLvoid **params)
894 {
895 switch(target) {
896 case GL_ARRAY_BUFFER:
897 case GL_ELEMENT_ARRAY_BUFFER:
898 break;
899 default:
900 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(target=0x%x)", target);
901 return;
902 }
903 switch(pname) {
904 case GL_BUFFER_MAP_POINTER_OES:
905 break;
906 default:
907 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(pname=0x%x)", pname);
908 return;
909 }
910
911 _mesa_GetBufferPointervARB(target, pname, params);
912 }
913
914 extern GLenum GL_APIENTRY _mesa_GetError(void);
915 #define _es_GetError _mesa_GetError
916
917 extern void GL_APIENTRY _mesa_GetFloatv(GLenum pname, GLfloat * params);
918 #define _es_GetFloatv _mesa_GetFloatv
919
920 extern void GL_APIENTRY _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params);
921 static void GL_APIENTRY _es_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params)
922 {
923 switch(pname) {
924 case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: /* size 1 */
925 case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: /* size 1 */
926 case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: /* size 1 */
927 case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: /* size 1 */
928 case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES: /* size 1 */
929 break;
930 default:
931 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameteriv(pname=0x%x)", pname);
932 return;
933 }
934
935 _mesa_GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params);
936 }
937
938 extern void GL_APIENTRY _mesa_GetIntegerv(GLenum pname, GLint * params);
939 #define _es_GetIntegerv _mesa_GetIntegerv
940
941 extern void GL_APIENTRY _mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
942 #define _es_GetProgramInfoLog _mesa_GetProgramInfoLog
943
944 extern void GL_APIENTRY _mesa_GetProgramiv(GLuint program, GLenum pname, GLint * params);
945 static void GL_APIENTRY _es_GetProgramiv(GLuint program, GLenum pname, GLint *params)
946 {
947 switch(pname) {
948 case GL_DELETE_STATUS:
949 case GL_LINK_STATUS:
950 case GL_VALIDATE_STATUS:
951 case GL_INFO_LOG_LENGTH:
952 case GL_ATTACHED_SHADERS:
953 case GL_ACTIVE_ATTRIBUTES:
954 case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:
955 case GL_ACTIVE_UNIFORMS:
956 case GL_ACTIVE_UNIFORM_MAX_LENGTH:
957 break;
958 default:
959 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetProgramiv(pname=0x%x)", pname);
960 return;
961 }
962
963 _mesa_GetProgramiv(program, pname, params);
964 }
965
966 extern void GL_APIENTRY _mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params);
967 static void GL_APIENTRY _es_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
968 {
969 switch(pname) {
970 case GL_RENDERBUFFER_WIDTH: /* size 1 */
971 case GL_RENDERBUFFER_HEIGHT: /* size 1 */
972 case GL_RENDERBUFFER_INTERNAL_FORMAT: /* size 1 */
973 case GL_RENDERBUFFER_RED_SIZE: /* size 1 */
974 case GL_RENDERBUFFER_GREEN_SIZE: /* size 1 */
975 case GL_RENDERBUFFER_BLUE_SIZE: /* size 1 */
976 case GL_RENDERBUFFER_ALPHA_SIZE: /* size 1 */
977 case GL_RENDERBUFFER_DEPTH_SIZE: /* size 1 */
978 case GL_RENDERBUFFER_STENCIL_SIZE: /* size 1 */
979 break;
980 default:
981 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameteriv(pname=0x%x)", pname);
982 return;
983 }
984
985 _mesa_GetRenderbufferParameterivEXT(target, pname, params);
986 }
987
988 extern void GL_APIENTRY _mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
989 #define _es_GetShaderInfoLog _mesa_GetShaderInfoLog
990
991 extern void GL_APIENTRY _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
992 static void GL_APIENTRY _es_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
993 {
994 switch(shadertype) {
995 case GL_VERTEX_SHADER:
996 case GL_FRAGMENT_SHADER:
997 break;
998 default:
999 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetShaderPrecisionFormat(shadertype=0x%x)", shadertype);
1000 return;
1001 }
1002 switch(precisiontype) {
1003 case GL_LOW_FLOAT:
1004 case GL_MEDIUM_FLOAT:
1005 case GL_HIGH_FLOAT:
1006 case GL_LOW_INT:
1007 case GL_MEDIUM_INT:
1008 case GL_HIGH_INT:
1009 break;
1010 default:
1011 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetShaderPrecisionFormat(precisiontype=0x%x)", precisiontype);
1012 return;
1013 }
1014
1015 _mesa_GetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
1016 }
1017
1018 extern void GL_APIENTRY _mesa_GetShaderSourceARB(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
1019 #define _es_GetShaderSource _mesa_GetShaderSourceARB
1020
1021 extern void GL_APIENTRY _mesa_GetShaderiv(GLuint shader, GLenum pname, GLint * params);
1022 static void GL_APIENTRY _es_GetShaderiv(GLuint shader, GLenum pname, GLint *params)
1023 {
1024 switch(pname) {
1025 case GL_SHADER_TYPE:
1026 case GL_COMPILE_STATUS:
1027 case GL_DELETE_STATUS:
1028 case GL_INFO_LOG_LENGTH:
1029 case GL_SHADER_SOURCE_LENGTH:
1030 break;
1031 default:
1032 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetShaderiv(pname=0x%x)", pname);
1033 return;
1034 }
1035
1036 _mesa_GetShaderiv(shader, pname, params);
1037 }
1038
1039 extern const GLubyte * GL_APIENTRY _mesa_GetString(GLenum name);
1040 static const GLubyte * GL_APIENTRY _es_GetString(GLenum name)
1041 {
1042 switch(name) {
1043 case GL_VENDOR:
1044 case GL_RENDERER:
1045 case GL_VERSION:
1046 case GL_EXTENSIONS:
1047 case GL_SHADING_LANGUAGE_VERSION:
1048 break;
1049 default:
1050 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetString(name=0x%x)", name);
1051 return (const GLubyte *) 0;
1052 }
1053
1054 return _mesa_GetString(name);
1055 }
1056
1057 extern void GL_APIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params);
1058 static void GL_APIENTRY _es_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
1059 {
1060 switch(target) {
1061 case GL_TEXTURE_2D:
1062 case GL_TEXTURE_CUBE_MAP:
1063 case GL_TEXTURE_3D_OES:
1064 case GL_TEXTURE_EXTERNAL_OES:
1065 break;
1066 default:
1067 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(target=0x%x)", target);
1068 return;
1069 }
1070 switch(pname) {
1071 case GL_TEXTURE_WRAP_S: /* size 1 */
1072 case GL_TEXTURE_WRAP_T: /* size 1 */
1073 case GL_TEXTURE_WRAP_R_OES: /* size 1 */
1074 case GL_TEXTURE_MIN_FILTER: /* size 1 */
1075 case GL_TEXTURE_MAG_FILTER: /* size 1 */
1076 break;
1077 default:
1078 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(pname=0x%x)", pname);
1079 return;
1080 }
1081
1082 _mesa_GetTexParameterfv(target, pname, params);
1083 }
1084
1085 extern void GL_APIENTRY _mesa_GetTexParameteriv(GLenum target, GLenum pname, GLint * params);
1086 static void GL_APIENTRY _es_GetTexParameteriv(GLenum target, GLenum pname, GLint *params)
1087 {
1088 switch(target) {
1089 case GL_TEXTURE_2D:
1090 case GL_TEXTURE_CUBE_MAP:
1091 case GL_TEXTURE_3D_OES:
1092 case GL_TEXTURE_EXTERNAL_OES:
1093 break;
1094 default:
1095 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(target=0x%x)", target);
1096 return;
1097 }
1098 switch(pname) {
1099 case GL_TEXTURE_WRAP_S: /* size 1 */
1100 case GL_TEXTURE_WRAP_T: /* size 1 */
1101 case GL_TEXTURE_WRAP_R_OES: /* size 1 */
1102 case GL_TEXTURE_MIN_FILTER: /* size 1 */
1103 case GL_TEXTURE_MAG_FILTER: /* size 1 */
1104 break;
1105 default:
1106 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(pname=0x%x)", pname);
1107 return;
1108 }
1109
1110 _mesa_GetTexParameteriv(target, pname, params);
1111 }
1112
1113 extern GLint GL_APIENTRY _mesa_GetUniformLocationARB(GLuint program, const char * name);
1114 #define _es_GetUniformLocation _mesa_GetUniformLocationARB
1115
1116 extern void GL_APIENTRY _mesa_GetUniformfvARB(GLuint program, GLint location, GLfloat * params);
1117 #define _es_GetUniformfv _mesa_GetUniformfvARB
1118
1119 extern void GL_APIENTRY _mesa_GetUniformivARB(GLuint program, GLint location, GLint * params);
1120 #define _es_GetUniformiv _mesa_GetUniformivARB
1121
1122 extern void GL_APIENTRY _mesa_GetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid ** pointer);
1123 static void GL_APIENTRY _es_GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer)
1124 {
1125 switch(pname) {
1126 case GL_VERTEX_ATTRIB_ARRAY_POINTER:
1127 break;
1128 default:
1129 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetVertexAttribPointerv(pname=0x%x)", pname);
1130 return;
1131 }
1132
1133 _mesa_GetVertexAttribPointervARB(index, pname, pointer);
1134 }
1135
1136 extern void GL_APIENTRY _mesa_GetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat * params);
1137 static void GL_APIENTRY _es_GetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
1138 {
1139 switch(pname) {
1140 case GL_VERTEX_ATTRIB_ARRAY_ENABLED: /* size 1 */
1141 case GL_VERTEX_ATTRIB_ARRAY_SIZE: /* size 1 */
1142 case GL_VERTEX_ATTRIB_ARRAY_STRIDE: /* size 1 */
1143 case GL_VERTEX_ATTRIB_ARRAY_TYPE: /* size 1 */
1144 case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: /* size 1 */
1145 case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: /* size 1 */
1146 case GL_CURRENT_VERTEX_ATTRIB: /* size 16? */
1147 break;
1148 default:
1149 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetVertexAttribfv(pname=0x%x)", pname);
1150 return;
1151 }
1152
1153 _mesa_GetVertexAttribfvARB(index, pname, params);
1154 }
1155
1156 extern void GL_APIENTRY _mesa_GetVertexAttribivARB(GLuint index, GLenum pname, GLint * params);
1157 static void GL_APIENTRY _es_GetVertexAttribiv(GLuint index, GLenum pname, GLint *params)
1158 {
1159 switch(pname) {
1160 case GL_VERTEX_ATTRIB_ARRAY_ENABLED: /* size 1 */
1161 case GL_VERTEX_ATTRIB_ARRAY_SIZE: /* size 1 */
1162 case GL_VERTEX_ATTRIB_ARRAY_STRIDE: /* size 1 */
1163 case GL_VERTEX_ATTRIB_ARRAY_TYPE: /* size 1 */
1164 case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: /* size 1 */
1165 case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: /* size 1 */
1166 case GL_CURRENT_VERTEX_ATTRIB: /* size 16? */
1167 break;
1168 default:
1169 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetVertexAttribiv(pname=0x%x)", pname);
1170 return;
1171 }
1172
1173 _mesa_GetVertexAttribivARB(index, pname, params);
1174 }
1175
1176 extern void GL_APIENTRY _mesa_Hint(GLenum target, GLenum mode);
1177 static void GL_APIENTRY _es_Hint(GLenum target, GLenum mode)
1178 {
1179 switch(target) {
1180 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES:
1181 case GL_GENERATE_MIPMAP_HINT:
1182 break;
1183 default:
1184 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(target=0x%x)", target);
1185 return;
1186 }
1187 switch(mode) {
1188 case GL_FASTEST:
1189 case GL_NICEST:
1190 case GL_DONT_CARE:
1191 break;
1192 default:
1193 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(mode=0x%x)", mode);
1194 return;
1195 }
1196
1197 _mesa_Hint(target, mode);
1198 }
1199
1200 extern GLboolean GL_APIENTRY _mesa_IsBufferARB(GLuint buffer);
1201 #define _es_IsBuffer _mesa_IsBufferARB
1202
1203 extern GLboolean GL_APIENTRY _mesa_IsEnabled(GLenum cap);
1204 static GLboolean GL_APIENTRY _es_IsEnabled(GLenum cap)
1205 {
1206 switch(cap) {
1207 case GL_CULL_FACE:
1208 case GL_SCISSOR_TEST:
1209 case GL_POLYGON_OFFSET_FILL:
1210 case GL_SAMPLE_ALPHA_TO_COVERAGE:
1211 case GL_SAMPLE_COVERAGE:
1212 case GL_STENCIL_TEST:
1213 case GL_DEPTH_TEST:
1214 case GL_DITHER:
1215 case GL_BLEND:
1216 break;
1217 default:
1218 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glIsEnabled(cap=0x%x)", cap);
1219 return GL_FALSE;
1220 }
1221
1222 return _mesa_IsEnabled(cap);
1223 }
1224
1225 extern GLboolean GL_APIENTRY _mesa_IsFramebufferEXT(GLuint framebuffer);
1226 #define _es_IsFramebuffer _mesa_IsFramebufferEXT
1227
1228 extern GLboolean GL_APIENTRY _mesa_IsProgram(GLuint program);
1229 #define _es_IsProgram _mesa_IsProgram
1230
1231 extern GLboolean GL_APIENTRY _mesa_IsRenderbufferEXT(GLuint renderbuffer);
1232 #define _es_IsRenderbuffer _mesa_IsRenderbufferEXT
1233
1234 extern GLboolean GL_APIENTRY _mesa_IsShader(GLuint shader);
1235 #define _es_IsShader _mesa_IsShader
1236
1237 extern GLboolean GL_APIENTRY _mesa_IsTexture(GLuint texture);
1238 #define _es_IsTexture _mesa_IsTexture
1239
1240 extern void GL_APIENTRY _mesa_LineWidth(GLfloat width);
1241 #define _es_LineWidth _mesa_LineWidth
1242
1243 extern void GL_APIENTRY _mesa_LinkProgramARB(GLuint program);
1244 #define _es_LinkProgram _mesa_LinkProgramARB
1245
1246 extern void * GL_APIENTRY _mesa_MapBufferARB(GLenum target, GLenum access);
1247 static void * GL_APIENTRY _es_MapBufferOES(GLenum target, GLenum access)
1248 {
1249 switch(target) {
1250 case GL_ARRAY_BUFFER:
1251 case GL_ELEMENT_ARRAY_BUFFER:
1252 break;
1253 default:
1254 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(target=0x%x)", target);
1255 return (void *) 0;
1256 }
1257 switch(access) {
1258 case GL_WRITE_ONLY_OES:
1259 break;
1260 default:
1261 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(access=0x%x)", access);
1262 return (void *) 0;
1263 }
1264
1265 return _mesa_MapBufferARB(target, access);
1266 }
1267
1268 extern void GL_APIENTRY _mesa_MultiDrawArraysEXT(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount);
1269 static void GL_APIENTRY _es_MultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)
1270 {
1271 switch(mode) {
1272 case GL_POINTS:
1273 case GL_LINES:
1274 case GL_LINE_LOOP:
1275 case GL_LINE_STRIP:
1276 case GL_TRIANGLES:
1277 case GL_TRIANGLE_STRIP:
1278 case GL_TRIANGLE_FAN:
1279 break;
1280 default:
1281 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawArraysEXT(mode=0x%x)", mode);
1282 return;
1283 }
1284
1285 _mesa_MultiDrawArraysEXT(mode, first, count, primcount);
1286 }
1287
1288 extern void GL_APIENTRY _mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount);
1289 static void GL_APIENTRY _es_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount)
1290 {
1291 switch(mode) {
1292 case GL_POINTS:
1293 case GL_LINES:
1294 case GL_LINE_LOOP:
1295 case GL_LINE_STRIP:
1296 case GL_TRIANGLES:
1297 case GL_TRIANGLE_STRIP:
1298 case GL_TRIANGLE_FAN:
1299 break;
1300 default:
1301 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(mode=0x%x)", mode);
1302 return;
1303 }
1304 switch(type) {
1305 case GL_UNSIGNED_BYTE:
1306 case GL_UNSIGNED_SHORT:
1307 case GL_UNSIGNED_INT:
1308 break;
1309 default:
1310 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(type=0x%x)", type);
1311 return;
1312 }
1313
1314 _mesa_MultiDrawElementsEXT(mode, count, type, indices, primcount);
1315 }
1316
1317 extern void GL_APIENTRY _mesa_PixelStorei(GLenum pname, GLint param);
1318 static void GL_APIENTRY _es_PixelStorei(GLenum pname, GLint param)
1319 {
1320 switch(pname) {
1321 case GL_PACK_ALIGNMENT:
1322 case GL_UNPACK_ALIGNMENT:
1323 break;
1324 default:
1325 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPixelStorei(pname=0x%x)", pname);
1326 return;
1327 }
1328 switch(param) {
1329 case 1:
1330 case 2:
1331 case 4:
1332 case 8:
1333 break;
1334 default:
1335 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glPixelStorei(param=%d)", param);
1336 return;
1337 }
1338
1339 _mesa_PixelStorei(pname, param);
1340 }
1341
1342 extern void GL_APIENTRY _mesa_PolygonOffset(GLfloat factor, GLfloat units);
1343 #define _es_PolygonOffset _mesa_PolygonOffset
1344
1345 extern void GL_APIENTRY _mesa_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels);
1346 static void GL_APIENTRY _es_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
1347 {
1348 switch(format) {
1349 case GL_ALPHA:
1350 if (type != GL_UNSIGNED_BYTE) {
1351 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
1352 return;
1353 }
1354 break;
1355 case GL_RGB:
1356 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
1357 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
1358 return;
1359 }
1360 break;
1361 case GL_RGBA:
1362 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) {
1363 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
1364 return;
1365 }
1366 break;
1367 case GL_LUMINANCE:
1368 case GL_LUMINANCE_ALPHA:
1369 if (type != GL_UNSIGNED_BYTE) {
1370 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
1371 return;
1372 }
1373 break;
1374 default:
1375 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
1376 return;
1377 }
1378
1379 _mesa_ReadPixels(x, y, width, height, format, type, pixels);
1380 }
1381
1382 extern void GL_APIENTRY _mesa_ReleaseShaderCompiler(void);
1383 #define _es_ReleaseShaderCompiler _mesa_ReleaseShaderCompiler
1384
1385 /* this function is special and is defined elsewhere */
1386 extern void GL_APIENTRY _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
1387 static void GL_APIENTRY _check_RenderbufferStorage(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
1388 {
1389 switch(internalFormat) {
1390 case GL_DEPTH_COMPONENT16:
1391 case GL_RGBA4:
1392 case GL_RGB5_A1:
1393 case GL_RGB565:
1394 case GL_STENCIL_INDEX8:
1395 case GL_DEPTH_COMPONENT24_OES:
1396 case GL_DEPTH_COMPONENT32_OES:
1397 case GL_RGB8_OES:
1398 case GL_RGBA8_OES:
1399 case GL_STENCIL_INDEX1_OES:
1400 case GL_STENCIL_INDEX4_OES:
1401 case GL_DEPTH24_STENCIL8_OES:
1402 break;
1403 default:
1404 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorage(internalFormat=0x%x)", internalFormat);
1405 return;
1406 }
1407
1408 _es_RenderbufferStorageEXT(target, internalFormat, width, height);
1409 }
1410
1411 extern void GL_APIENTRY _mesa_SampleCoverageARB(GLclampf value, GLboolean invert);
1412 #define _es_SampleCoverage _mesa_SampleCoverageARB
1413
1414 extern void GL_APIENTRY _mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
1415 #define _es_Scissor _mesa_Scissor
1416
1417 extern void GL_APIENTRY _mesa_ShaderBinary(GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length);
1418 #define _es_ShaderBinary _mesa_ShaderBinary
1419
1420 extern void GL_APIENTRY _mesa_ShaderSourceARB(GLuint shader, GLsizei count, const GLchar ** string, const int * length);
1421 #define _es_ShaderSource _mesa_ShaderSourceARB
1422
1423 extern void GL_APIENTRY _mesa_StencilFunc(GLenum func, GLint ref, GLuint mask);
1424 static void GL_APIENTRY _es_StencilFunc(GLenum func, GLint ref, GLuint mask)
1425 {
1426 switch(func) {
1427 case GL_NEVER:
1428 case GL_LESS:
1429 case GL_LEQUAL:
1430 case GL_GREATER:
1431 case GL_GEQUAL:
1432 case GL_EQUAL:
1433 case GL_NOTEQUAL:
1434 case GL_ALWAYS:
1435 break;
1436 default:
1437 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFunc(func=0x%x)", func);
1438 return;
1439 }
1440
1441 _mesa_StencilFunc(func, ref, mask);
1442 }
1443
1444 extern void GL_APIENTRY _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
1445 static void GL_APIENTRY _es_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
1446 {
1447 switch(face) {
1448 case GL_FRONT:
1449 case GL_BACK:
1450 case GL_FRONT_AND_BACK:
1451 break;
1452 default:
1453 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFuncSeparate(face=0x%x)", face);
1454 return;
1455 }
1456 switch(func) {
1457 case GL_NEVER:
1458 case GL_LESS:
1459 case GL_LEQUAL:
1460 case GL_GREATER:
1461 case GL_GEQUAL:
1462 case GL_EQUAL:
1463 case GL_NOTEQUAL:
1464 case GL_ALWAYS:
1465 break;
1466 default:
1467 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFuncSeparate(func=0x%x)", func);
1468 return;
1469 }
1470
1471 _mesa_StencilFuncSeparate(face, func, ref, mask);
1472 }
1473
1474 extern void GL_APIENTRY _mesa_StencilMask(GLuint mask);
1475 #define _es_StencilMask _mesa_StencilMask
1476
1477 extern void GL_APIENTRY _mesa_StencilMaskSeparate(GLenum face, GLuint mask);
1478 static void GL_APIENTRY _es_StencilMaskSeparate(GLenum face, GLuint mask)
1479 {
1480 switch(face) {
1481 case GL_FRONT:
1482 case GL_BACK:
1483 case GL_FRONT_AND_BACK:
1484 break;
1485 default:
1486 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilMaskSeparate(face=0x%x)", face);
1487 return;
1488 }
1489
1490 _mesa_StencilMaskSeparate(face, mask);
1491 }
1492
1493 extern void GL_APIENTRY _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
1494 static void GL_APIENTRY _es_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
1495 {
1496 switch(fail) {
1497 case GL_KEEP:
1498 case GL_ZERO:
1499 case GL_REPLACE:
1500 case GL_INCR:
1501 case GL_DECR:
1502 case GL_INVERT:
1503 case GL_INCR_WRAP:
1504 case GL_DECR_WRAP:
1505 break;
1506 default:
1507 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(fail=0x%x)", fail);
1508 return;
1509 }
1510 switch(zfail) {
1511 case GL_KEEP:
1512 case GL_ZERO:
1513 case GL_REPLACE:
1514 case GL_INCR:
1515 case GL_DECR:
1516 case GL_INVERT:
1517 case GL_INCR_WRAP:
1518 case GL_DECR_WRAP:
1519 break;
1520 default:
1521 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zfail=0x%x)", zfail);
1522 return;
1523 }
1524 switch(zpass) {
1525 case GL_KEEP:
1526 case GL_ZERO:
1527 case GL_REPLACE:
1528 case GL_INCR:
1529 case GL_DECR:
1530 case GL_INVERT:
1531 case GL_INCR_WRAP:
1532 case GL_DECR_WRAP:
1533 break;
1534 default:
1535 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zpass=0x%x)", zpass);
1536 return;
1537 }
1538
1539 _mesa_StencilOp(fail, zfail, zpass);
1540 }
1541
1542 extern void GL_APIENTRY _mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
1543 static void GL_APIENTRY _es_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
1544 {
1545 switch(face) {
1546 case GL_FRONT:
1547 case GL_BACK:
1548 case GL_FRONT_AND_BACK:
1549 break;
1550 default:
1551 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(face=0x%x)", face);
1552 return;
1553 }
1554 switch(fail) {
1555 case GL_KEEP:
1556 case GL_ZERO:
1557 case GL_REPLACE:
1558 case GL_INCR:
1559 case GL_DECR:
1560 case GL_INVERT:
1561 case GL_INCR_WRAP:
1562 case GL_DECR_WRAP:
1563 break;
1564 default:
1565 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(fail=0x%x)", fail);
1566 return;
1567 }
1568 switch(zfail) {
1569 case GL_KEEP:
1570 case GL_ZERO:
1571 case GL_REPLACE:
1572 case GL_INCR:
1573 case GL_DECR:
1574 case GL_INVERT:
1575 case GL_INCR_WRAP:
1576 case GL_DECR_WRAP:
1577 break;
1578 default:
1579 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(zfail=0x%x)", zfail);
1580 return;
1581 }
1582 switch(zpass) {
1583 case GL_KEEP:
1584 case GL_ZERO:
1585 case GL_REPLACE:
1586 case GL_INCR:
1587 case GL_DECR:
1588 case GL_INVERT:
1589 case GL_INCR_WRAP:
1590 case GL_DECR_WRAP:
1591 break;
1592 default:
1593 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(zpass=0x%x)", zpass);
1594 return;
1595 }
1596
1597 _mesa_StencilOpSeparate(face, fail, zfail, zpass);
1598 }
1599
1600 extern void GL_APIENTRY _mesa_TexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
1601 static void GL_APIENTRY _es_TexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
1602 {
1603 switch(target) {
1604 case GL_TEXTURE_2D:
1605 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
1606 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
1607 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
1608 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
1609 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
1610 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
1611 break;
1612 default:
1613 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage2D(target=0x%x)", target);
1614 return;
1615 }
1616 switch(internalFormat) {
1617 case GL_ALPHA:
1618 if (format != GL_ALPHA) {
1619 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1620 return;
1621 }
1622 break;
1623 case GL_RGB:
1624 if (format != GL_RGB) {
1625 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1626 return;
1627 }
1628 break;
1629 case GL_RGBA:
1630 if (format != GL_RGBA) {
1631 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1632 return;
1633 }
1634 break;
1635 case GL_LUMINANCE:
1636 if (format != GL_LUMINANCE) {
1637 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1638 return;
1639 }
1640 break;
1641 case GL_LUMINANCE_ALPHA:
1642 if (format != GL_LUMINANCE_ALPHA) {
1643 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1644 return;
1645 }
1646 break;
1647 case GL_DEPTH_COMPONENT:
1648 if (format != GL_DEPTH_COMPONENT) {
1649 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1650 return;
1651 }
1652 break;
1653 case GL_DEPTH_STENCIL_OES:
1654 if (format != GL_DEPTH_STENCIL_OES) {
1655 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1656 return;
1657 }
1658 break;
1659 case GL_BGRA_EXT:
1660 if (format != GL_BGRA_EXT) {
1661 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
1662 return;
1663 }
1664 break;
1665 default:
1666 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=%d)", internalFormat);
1667 return;
1668 }
1669 switch(border) {
1670 case 0:
1671 break;
1672 default:
1673 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(border=%d)", border);
1674 return;
1675 }
1676 switch(format) {
1677 case GL_ALPHA:
1678 if (type != GL_UNSIGNED_BYTE) {
1679 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1680 return;
1681 }
1682 break;
1683 case GL_RGB:
1684 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
1685 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1686 return;
1687 }
1688 break;
1689 case GL_RGBA:
1690 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) {
1691 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1692 return;
1693 }
1694 break;
1695 case GL_LUMINANCE:
1696 case GL_LUMINANCE_ALPHA:
1697 if (type != GL_UNSIGNED_BYTE) {
1698 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1699 return;
1700 }
1701 break;
1702 case GL_DEPTH_COMPONENT:
1703 if (type != GL_UNSIGNED_SHORT && type != GL_UNSIGNED_INT) {
1704 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1705 return;
1706 }
1707 break;
1708 case GL_DEPTH_STENCIL_OES:
1709 if (type != GL_UNSIGNED_INT_24_8_OES) {
1710 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1711 return;
1712 }
1713 break;
1714 case GL_BGRA_EXT:
1715 if (type != GL_UNSIGNED_BYTE) {
1716 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1717 return;
1718 }
1719 break;
1720 default:
1721 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
1722 return;
1723 }
1724
1725 _mesa_TexImage2D(target, level, internalFormat, width, height, border, format, type, pixels);
1726 }
1727
1728 extern void GL_APIENTRY _mesa_TexImage3D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
1729 static void GL_APIENTRY _es_TexImage3DOES(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
1730 {
1731 switch(target) {
1732 case GL_TEXTURE_3D_OES:
1733 break;
1734 default:
1735 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage3DOES(target=0x%x)", target);
1736 return;
1737 }
1738 switch(internalFormat) {
1739 case GL_ALPHA:
1740 case GL_RGB:
1741 case GL_RGBA:
1742 case GL_LUMINANCE:
1743 case GL_LUMINANCE_ALPHA:
1744 break;
1745 default:
1746 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage3DOES(internalFormat=0x%x)", internalFormat);
1747 return;
1748 }
1749 switch(format) {
1750 case GL_ALPHA:
1751 if (type != GL_UNSIGNED_BYTE) {
1752 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format);
1753 return;
1754 }
1755 break;
1756 case GL_RGB:
1757 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
1758 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format);
1759 return;
1760 }
1761 break;
1762 case GL_RGBA:
1763 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) {
1764 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format);
1765 return;
1766 }
1767 break;
1768 case GL_LUMINANCE:
1769 case GL_LUMINANCE_ALPHA:
1770 if (type != GL_UNSIGNED_BYTE) {
1771 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format);
1772 return;
1773 }
1774 break;
1775 default:
1776 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format);
1777 return;
1778 }
1779
1780 _mesa_TexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels);
1781 }
1782
1783 extern void GL_APIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param);
1784 static void GL_APIENTRY _es_TexParameterf(GLenum target, GLenum pname, GLfloat param)
1785 {
1786 switch(target) {
1787 case GL_TEXTURE_2D:
1788 case GL_TEXTURE_CUBE_MAP:
1789 case GL_TEXTURE_3D_OES:
1790 case GL_TEXTURE_EXTERNAL_OES:
1791 break;
1792 default:
1793 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(target=0x%x)", target);
1794 return;
1795 }
1796 switch(pname) {
1797 case GL_TEXTURE_WRAP_S:
1798 case GL_TEXTURE_WRAP_T:
1799 case GL_TEXTURE_WRAP_R_OES:
1800 if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT) {
1801 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
1802 return;
1803 }
1804 break;
1805 case GL_TEXTURE_MIN_FILTER:
1806 if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) {
1807 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
1808 return;
1809 }
1810 break;
1811 case GL_TEXTURE_MAG_FILTER:
1812 if (param != GL_NEAREST && param != GL_LINEAR) {
1813 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
1814 return;
1815 }
1816 break;
1817 case GL_TEXTURE_MAX_ANISOTROPY_EXT:
1818 break;
1819 default:
1820 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
1821 return;
1822 }
1823
1824 _mesa_TexParameterf(target, pname, param);
1825 }
1826
1827 extern void GL_APIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params);
1828 static void GL_APIENTRY _es_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
1829 {
1830 switch(target) {
1831 case GL_TEXTURE_2D:
1832 case GL_TEXTURE_CUBE_MAP:
1833 case GL_TEXTURE_3D_OES:
1834 case GL_TEXTURE_EXTERNAL_OES:
1835 break;
1836 default:
1837 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(target=0x%x)", target);
1838 return;
1839 }
1840 switch(pname) {
1841 case GL_TEXTURE_WRAP_S: /* size 1 */
1842 case GL_TEXTURE_WRAP_T: /* size 1 */
1843 case GL_TEXTURE_WRAP_R_OES: /* size 1 */
1844 if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT) {
1845 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
1846 return;
1847 }
1848 break;
1849 case GL_TEXTURE_MIN_FILTER: /* size 1 */
1850 if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) {
1851 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
1852 return;
1853 }
1854 break;
1855 case GL_TEXTURE_MAG_FILTER: /* size 1 */
1856 if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) {
1857 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
1858 return;
1859 }
1860 break;
1861 case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */
1862 break;
1863 default:
1864 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
1865 return;
1866 }
1867
1868 _mesa_TexParameterfv(target, pname, params);
1869 }
1870
1871 extern void GL_APIENTRY _mesa_TexParameteri(GLenum target, GLenum pname, GLint param);
1872 static void GL_APIENTRY _es_TexParameteri(GLenum target, GLenum pname, GLint param)
1873 {
1874 switch(target) {
1875 case GL_TEXTURE_2D:
1876 case GL_TEXTURE_CUBE_MAP:
1877 case GL_TEXTURE_3D_OES:
1878 case GL_TEXTURE_EXTERNAL_OES:
1879 break;
1880 default:
1881 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(target=0x%x)", target);
1882 return;
1883 }
1884 switch(pname) {
1885 case GL_TEXTURE_WRAP_S:
1886 case GL_TEXTURE_WRAP_T:
1887 case GL_TEXTURE_WRAP_R_OES:
1888 if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT) {
1889 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
1890 return;
1891 }
1892 break;
1893 case GL_TEXTURE_MIN_FILTER:
1894 if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) {
1895 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
1896 return;
1897 }
1898 break;
1899 case GL_TEXTURE_MAG_FILTER:
1900 if (param != GL_NEAREST && param != GL_LINEAR) {
1901 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
1902 return;
1903 }
1904 break;
1905 case GL_TEXTURE_MAX_ANISOTROPY_EXT:
1906 break;
1907 default:
1908 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
1909 return;
1910 }
1911
1912 _mesa_TexParameteri(target, pname, param);
1913 }
1914
1915 extern void GL_APIENTRY _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint * params);
1916 static void GL_APIENTRY _es_TexParameteriv(GLenum target, GLenum pname, const GLint *params)
1917 {
1918 switch(target) {
1919 case GL_TEXTURE_2D:
1920 case GL_TEXTURE_CUBE_MAP:
1921 case GL_TEXTURE_3D_OES:
1922 case GL_TEXTURE_EXTERNAL_OES:
1923 break;
1924 default:
1925 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(target=0x%x)", target);
1926 return;
1927 }
1928 switch(pname) {
1929 case GL_TEXTURE_WRAP_S: /* size 1 */
1930 case GL_TEXTURE_WRAP_T: /* size 1 */
1931 case GL_TEXTURE_WRAP_R_OES: /* size 1 */
1932 if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT) {
1933 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
1934 return;
1935 }
1936 break;
1937 case GL_TEXTURE_MIN_FILTER: /* size 1 */
1938 if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) {
1939 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
1940 return;
1941 }
1942 break;
1943 case GL_TEXTURE_MAG_FILTER: /* size 1 */
1944 if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) {
1945 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
1946 return;
1947 }
1948 break;
1949 case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */
1950 break;
1951 default:
1952 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
1953 return;
1954 }
1955
1956 _mesa_TexParameteriv(target, pname, params);
1957 }
1958
1959 extern void GL_APIENTRY _mesa_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels);
1960 static void GL_APIENTRY _es_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
1961 {
1962 switch(target) {
1963 case GL_TEXTURE_2D:
1964 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
1965 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
1966 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
1967 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
1968 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
1969 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
1970 break;
1971 default:
1972 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexSubImage2D(target=0x%x)", target);
1973 return;
1974 }
1975 switch(format) {
1976 case GL_ALPHA:
1977 if (type != GL_UNSIGNED_BYTE) {
1978 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
1979 return;
1980 }
1981 break;
1982 case GL_RGB:
1983 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
1984 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
1985 return;
1986 }
1987 break;
1988 case GL_RGBA:
1989 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) {
1990 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
1991 return;
1992 }
1993 break;
1994 case GL_LUMINANCE:
1995 case GL_LUMINANCE_ALPHA:
1996 if (type != GL_UNSIGNED_BYTE) {
1997 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
1998 return;
1999 }
2000 break;
2001 case GL_DEPTH_COMPONENT:
2002 if (type != GL_UNSIGNED_SHORT && type != GL_UNSIGNED_INT) {
2003 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
2004 return;
2005 }
2006 break;
2007 case GL_DEPTH_STENCIL_OES:
2008 if (type != GL_UNSIGNED_INT_24_8_OES) {
2009 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
2010 return;
2011 }
2012 break;
2013 case GL_BGRA_EXT:
2014 if (type != GL_UNSIGNED_BYTE) {
2015 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
2016 return;
2017 }
2018 break;
2019 default:
2020 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
2021 return;
2022 }
2023
2024 _mesa_TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
2025 }
2026
2027 extern void GL_APIENTRY _mesa_TexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels);
2028 static void GL_APIENTRY _es_TexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
2029 {
2030 switch(target) {
2031 case GL_TEXTURE_3D_OES:
2032 break;
2033 default:
2034 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexSubImage3DOES(target=0x%x)", target);
2035 return;
2036 }
2037 switch(format) {
2038 case GL_ALPHA:
2039 if (type != GL_UNSIGNED_BYTE) {
2040 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format);
2041 return;
2042 }
2043 break;
2044 case GL_RGB:
2045 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
2046 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format);
2047 return;
2048 }
2049 break;
2050 case GL_RGBA:
2051 if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) {
2052 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format);
2053 return;
2054 }
2055 break;
2056 case GL_LUMINANCE:
2057 case GL_LUMINANCE_ALPHA:
2058 if (type != GL_UNSIGNED_BYTE) {
2059 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format);
2060 return;
2061 }
2062 break;
2063 default:
2064 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format);
2065 return;
2066 }
2067
2068 _mesa_TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
2069 }
2070
2071 extern void GL_APIENTRY _mesa_Uniform1fARB(GLint location, GLfloat v0);
2072 #define _es_Uniform1f _mesa_Uniform1fARB
2073
2074 extern void GL_APIENTRY _mesa_Uniform1fvARB(GLint location, GLsizei count, const GLfloat * values);
2075 #define _es_Uniform1fv _mesa_Uniform1fvARB
2076
2077 extern void GL_APIENTRY _mesa_Uniform1iARB(GLint location, GLint v0);
2078 #define _es_Uniform1i _mesa_Uniform1iARB
2079
2080 extern void GL_APIENTRY _mesa_Uniform1ivARB(GLint location, GLsizei count, const GLint * values);
2081 #define _es_Uniform1iv _mesa_Uniform1ivARB
2082
2083 extern void GL_APIENTRY _mesa_Uniform2fARB(GLint location, GLfloat v0, GLfloat v1);
2084 #define _es_Uniform2f _mesa_Uniform2fARB
2085
2086 extern void GL_APIENTRY _mesa_Uniform2fvARB(GLint location, GLsizei count, const GLfloat * values);
2087 #define _es_Uniform2fv _mesa_Uniform2fvARB
2088
2089 extern void GL_APIENTRY _mesa_Uniform2iARB(GLint location, GLint v0, GLint v1);
2090 #define _es_Uniform2i _mesa_Uniform2iARB
2091
2092 extern void GL_APIENTRY _mesa_Uniform2ivARB(GLint location, GLsizei count, const GLint * values);
2093 #define _es_Uniform2iv _mesa_Uniform2ivARB
2094
2095 extern void GL_APIENTRY _mesa_Uniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2096 #define _es_Uniform3f _mesa_Uniform3fARB
2097
2098 extern void GL_APIENTRY _mesa_Uniform3fvARB(GLint location, GLsizei count, const GLfloat * values);
2099 #define _es_Uniform3fv _mesa_Uniform3fvARB
2100
2101 extern void GL_APIENTRY _mesa_Uniform3iARB(GLint location, GLint v0, GLint v1, GLint v2);
2102 #define _es_Uniform3i _mesa_Uniform3iARB
2103
2104 extern void GL_APIENTRY _mesa_Uniform3ivARB(GLint location, GLsizei count, const GLint * values);
2105 #define _es_Uniform3iv _mesa_Uniform3ivARB
2106
2107 extern void GL_APIENTRY _mesa_Uniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2108 #define _es_Uniform4f _mesa_Uniform4fARB
2109
2110 extern void GL_APIENTRY _mesa_Uniform4fvARB(GLint location, GLsizei count, const GLfloat * values);
2111 #define _es_Uniform4fv _mesa_Uniform4fvARB
2112
2113 extern void GL_APIENTRY _mesa_Uniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2114 #define _es_Uniform4i _mesa_Uniform4iARB
2115
2116 extern void GL_APIENTRY _mesa_Uniform4ivARB(GLint location, GLsizei count, const GLint * values);
2117 #define _es_Uniform4iv _mesa_Uniform4ivARB
2118
2119 extern void GL_APIENTRY _mesa_UniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2120 #define _es_UniformMatrix2fv _mesa_UniformMatrix2fvARB
2121
2122 extern void GL_APIENTRY _mesa_UniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2123 #define _es_UniformMatrix3fv _mesa_UniformMatrix3fvARB
2124
2125 extern void GL_APIENTRY _mesa_UniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2126 #define _es_UniformMatrix4fv _mesa_UniformMatrix4fvARB
2127
2128 extern GLboolean GL_APIENTRY _mesa_UnmapBufferARB(GLenum target);
2129 static GLboolean GL_APIENTRY _es_UnmapBufferOES(GLenum target)
2130 {
2131 switch(target) {
2132 case GL_ARRAY_BUFFER:
2133 case GL_ELEMENT_ARRAY_BUFFER:
2134 break;
2135 default:
2136 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glUnmapBufferOES(target=0x%x)", target);
2137 return GL_FALSE;
2138 }
2139
2140 return _mesa_UnmapBufferARB(target);
2141 }
2142
2143 extern void GL_APIENTRY _mesa_UseProgramObjectARB(GLuint program);
2144 #define _es_UseProgram _mesa_UseProgramObjectARB
2145
2146 extern void GL_APIENTRY _mesa_ValidateProgramARB(GLuint program);
2147 #define _es_ValidateProgram _mesa_ValidateProgramARB
2148
2149 /* this function is special and is defined elsewhere */
2150 extern void GL_APIENTRY _es_VertexAttrib1f(GLuint index, GLfloat x);
2151 #define _check_VertexAttrib1f _es_VertexAttrib1f
2152
2153 /* this function is special and is defined elsewhere */
2154 extern void GL_APIENTRY _es_VertexAttrib1fv(GLuint index, const GLfloat * v);
2155 #define _check_VertexAttrib1fv _es_VertexAttrib1fv
2156
2157 /* this function is special and is defined elsewhere */
2158 extern void GL_APIENTRY _es_VertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
2159 #define _check_VertexAttrib2f _es_VertexAttrib2f
2160
2161 /* this function is special and is defined elsewhere */
2162 extern void GL_APIENTRY _es_VertexAttrib2fv(GLuint index, const GLfloat * v);
2163 #define _check_VertexAttrib2fv _es_VertexAttrib2fv
2164
2165 /* this function is special and is defined elsewhere */
2166 extern void GL_APIENTRY _es_VertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
2167 #define _check_VertexAttrib3f _es_VertexAttrib3f
2168
2169 /* this function is special and is defined elsewhere */
2170 extern void GL_APIENTRY _es_VertexAttrib3fv(GLuint index, const GLfloat * v);
2171 #define _check_VertexAttrib3fv _es_VertexAttrib3fv
2172
2173 /* this function is special and is defined elsewhere */
2174 extern void GL_APIENTRY _es_VertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2175 #define _check_VertexAttrib4f _es_VertexAttrib4f
2176
2177 /* this function is special and is defined elsewhere */
2178 extern void GL_APIENTRY _es_VertexAttrib4fv(GLuint index, const GLfloat * v);
2179 #define _check_VertexAttrib4fv _es_VertexAttrib4fv
2180
2181 extern void GL_APIENTRY _mesa_VertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer);
2182 static void GL_APIENTRY _es_VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer)
2183 {
2184 switch(size) {
2185 case 1:
2186 case 2:
2187 case 3:
2188 case 4:
2189 break;
2190 default:
2191 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glVertexAttribPointer(size=%d)", size);
2192 return;
2193 }
2194 switch(type) {
2195 case GL_BYTE:
2196 case GL_UNSIGNED_BYTE:
2197 case GL_SHORT:
2198 case GL_UNSIGNED_SHORT:
2199 case GL_FLOAT:
2200 case GL_FIXED:
2201 break;
2202 default:
2203 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glVertexAttribPointer(type=0x%x)", type);
2204 return;
2205 }
2206
2207 _mesa_VertexAttribPointerARB(index, size, type, normalized, stride, pointer);
2208 }
2209
2210 extern void GL_APIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
2211 #define _es_Viewport _mesa_Viewport
2212
2213
2214 #include "glapi/glapi.h"
2215
2216 #if FEATURE_remap_table
2217
2218 /* define esLocalRemapTable */
2219 #include "main/api_exec_es2_dispatch.h"
2220
2221 #define need_MESA_remap_table
2222 #include "main/api_exec_es2_remap_helper.h"
2223
2224 static void
2225 init_remap_table(void)
2226 {
2227 _glthread_DECLARE_STATIC_MUTEX(mutex);
2228 static GLboolean initialized = GL_FALSE;
2229 const struct gl_function_pool_remap *remap = MESA_remap_table_functions;
2230 int i;
2231
2232 _glthread_LOCK_MUTEX(mutex);
2233 if (initialized) {
2234 _glthread_UNLOCK_MUTEX(mutex);
2235 return;
2236 }
2237
2238 for (i = 0; i < esLocalRemapTable_size; i++) {
2239 GLint offset;
2240 const char *spec;
2241
2242 /* sanity check */
2243 ASSERT(i == remap[i].remap_index);
2244 spec = _mesa_function_pool + remap[i].pool_index;
2245
2246 offset = _mesa_map_function_spec(spec);
2247 esLocalRemapTable[i] = offset;
2248 }
2249 initialized = GL_TRUE;
2250 _glthread_UNLOCK_MUTEX(mutex);
2251 }
2252
2253 #else /* FEATURE_remap_table */
2254
2255 #include "es2api/main/dispatch.h"
2256
2257 static INLINE void
2258 init_remap_table(void)
2259 {
2260 }
2261
2262 #endif /* FEATURE_remap_table */
2263
2264 struct _glapi_table *
2265 _mesa_create_exec_table_es2(void)
2266 {
2267 struct _glapi_table *exec;
2268
2269 exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
2270 if (exec == NULL)
2271 return NULL;
2272
2273 init_remap_table();
2274
2275 SET_ActiveTexture(exec, _es_ActiveTexture);
2276 SET_AttachShader(exec, _es_AttachShader);
2277 SET_BindAttribLocation(exec, _es_BindAttribLocation);
2278 SET_BindBuffer(exec, _es_BindBuffer);
2279 SET_BindFramebuffer(exec, _es_BindFramebuffer);
2280 SET_BindRenderbuffer(exec, _es_BindRenderbuffer);
2281 SET_BindTexture(exec, _es_BindTexture);
2282 SET_BlendColor(exec, _es_BlendColor);
2283 SET_BlendEquation(exec, _es_BlendEquation);
2284 SET_BlendEquationSeparate(exec, _es_BlendEquationSeparate);
2285 SET_BlendFunc(exec, _es_BlendFunc);
2286 SET_BlendFuncSeparate(exec, _es_BlendFuncSeparate);
2287 SET_BufferData(exec, _es_BufferData);
2288 SET_BufferSubData(exec, _es_BufferSubData);
2289 SET_CheckFramebufferStatus(exec, _es_CheckFramebufferStatus);
2290 SET_Clear(exec, _es_Clear);
2291 SET_ClearColor(exec, _es_ClearColor);
2292 SET_ClearDepthf(exec, _es_ClearDepthf);
2293 SET_ClearStencil(exec, _es_ClearStencil);
2294 SET_ColorMask(exec, _es_ColorMask);
2295 SET_CompileShader(exec, _es_CompileShader);
2296 SET_CompressedTexImage2D(exec, _es_CompressedTexImage2D);
2297 SET_CompressedTexImage3DOES(exec, _es_CompressedTexImage3DOES);
2298 SET_CompressedTexSubImage2D(exec, _es_CompressedTexSubImage2D);
2299 SET_CompressedTexSubImage3DOES(exec, _es_CompressedTexSubImage3DOES);
2300 SET_CopyTexImage2D(exec, _es_CopyTexImage2D);
2301 SET_CopyTexSubImage2D(exec, _es_CopyTexSubImage2D);
2302 SET_CopyTexSubImage3DOES(exec, _es_CopyTexSubImage3DOES);
2303 SET_CreateProgram(exec, _es_CreateProgram);
2304 SET_CreateShader(exec, _es_CreateShader);
2305 SET_CullFace(exec, _es_CullFace);
2306 SET_DeleteBuffers(exec, _es_DeleteBuffers);
2307 SET_DeleteFramebuffers(exec, _es_DeleteFramebuffers);
2308 SET_DeleteProgram(exec, _es_DeleteProgram);
2309 SET_DeleteRenderbuffers(exec, _es_DeleteRenderbuffers);
2310 SET_DeleteShader(exec, _es_DeleteShader);
2311 SET_DeleteTextures(exec, _es_DeleteTextures);
2312 SET_DepthFunc(exec, _es_DepthFunc);
2313 SET_DepthMask(exec, _es_DepthMask);
2314 SET_DepthRangef(exec, _es_DepthRangef);
2315 SET_DetachShader(exec, _es_DetachShader);
2316 SET_Disable(exec, _es_Disable);
2317 SET_DisableVertexAttribArray(exec, _es_DisableVertexAttribArray);
2318 SET_DrawArrays(exec, _es_DrawArrays);
2319 SET_DrawBuffersNV(exec, _es_DrawBuffersNV);
2320 SET_DrawElements(exec, _es_DrawElements);
2321 SET_EGLImageTargetRenderbufferStorageOES(exec, _es_EGLImageTargetRenderbufferStorageOES);
2322 SET_EGLImageTargetTexture2DOES(exec, _es_EGLImageTargetTexture2DOES);
2323 SET_Enable(exec, _es_Enable);
2324 SET_EnableVertexAttribArray(exec, _es_EnableVertexAttribArray);
2325 SET_Finish(exec, _es_Finish);
2326 SET_Flush(exec, _es_Flush);
2327 SET_FramebufferRenderbuffer(exec, _es_FramebufferRenderbuffer);
2328 SET_FramebufferTexture2D(exec, _es_FramebufferTexture2D);
2329 SET_FramebufferTexture3DOES(exec, _es_FramebufferTexture3DOES);
2330 SET_FrontFace(exec, _es_FrontFace);
2331 SET_GenBuffers(exec, _es_GenBuffers);
2332 SET_GenFramebuffers(exec, _es_GenFramebuffers);
2333 SET_GenRenderbuffers(exec, _es_GenRenderbuffers);
2334 SET_GenTextures(exec, _es_GenTextures);
2335 SET_GenerateMipmap(exec, _es_GenerateMipmap);
2336 SET_GetActiveAttrib(exec, _es_GetActiveAttrib);
2337 SET_GetActiveUniform(exec, _es_GetActiveUniform);
2338 SET_GetAttachedShaders(exec, _es_GetAttachedShaders);
2339 SET_GetAttribLocation(exec, _es_GetAttribLocation);
2340 SET_GetBooleanv(exec, _es_GetBooleanv);
2341 SET_GetBufferParameteriv(exec, _es_GetBufferParameteriv);
2342 SET_GetBufferPointervOES(exec, _es_GetBufferPointervOES);
2343 SET_GetError(exec, _es_GetError);
2344 SET_GetFloatv(exec, _es_GetFloatv);
2345 SET_GetFramebufferAttachmentParameteriv(exec, _es_GetFramebufferAttachmentParameteriv);
2346 SET_GetIntegerv(exec, _es_GetIntegerv);
2347 SET_GetProgramInfoLog(exec, _es_GetProgramInfoLog);
2348 SET_GetProgramiv(exec, _es_GetProgramiv);
2349 SET_GetRenderbufferParameteriv(exec, _es_GetRenderbufferParameteriv);
2350 SET_GetShaderInfoLog(exec, _es_GetShaderInfoLog);
2351 SET_GetShaderPrecisionFormat(exec, _es_GetShaderPrecisionFormat);
2352 SET_GetShaderSource(exec, _es_GetShaderSource);
2353 SET_GetShaderiv(exec, _es_GetShaderiv);
2354 SET_GetString(exec, _es_GetString);
2355 SET_GetTexParameterfv(exec, _es_GetTexParameterfv);
2356 SET_GetTexParameteriv(exec, _es_GetTexParameteriv);
2357 SET_GetUniformLocation(exec, _es_GetUniformLocation);
2358 SET_GetUniformfv(exec, _es_GetUniformfv);
2359 SET_GetUniformiv(exec, _es_GetUniformiv);
2360 SET_GetVertexAttribPointerv(exec, _es_GetVertexAttribPointerv);
2361 SET_GetVertexAttribfv(exec, _es_GetVertexAttribfv);
2362 SET_GetVertexAttribiv(exec, _es_GetVertexAttribiv);
2363 SET_Hint(exec, _es_Hint);
2364 SET_IsBuffer(exec, _es_IsBuffer);
2365 SET_IsEnabled(exec, _es_IsEnabled);
2366 SET_IsFramebuffer(exec, _es_IsFramebuffer);
2367 SET_IsProgram(exec, _es_IsProgram);
2368 SET_IsRenderbuffer(exec, _es_IsRenderbuffer);
2369 SET_IsShader(exec, _es_IsShader);
2370 SET_IsTexture(exec, _es_IsTexture);
2371 SET_LineWidth(exec, _es_LineWidth);
2372 SET_LinkProgram(exec, _es_LinkProgram);
2373 SET_MapBufferOES(exec, _es_MapBufferOES);
2374 SET_MultiDrawArraysEXT(exec, _es_MultiDrawArraysEXT);
2375 SET_MultiDrawElementsEXT(exec, _es_MultiDrawElementsEXT);
2376 SET_PixelStorei(exec, _es_PixelStorei);
2377 SET_PolygonOffset(exec, _es_PolygonOffset);
2378 SET_ReadPixels(exec, _es_ReadPixels);
2379 SET_ReleaseShaderCompiler(exec, _es_ReleaseShaderCompiler);
2380 SET_RenderbufferStorage(exec, _check_RenderbufferStorage);
2381 SET_SampleCoverage(exec, _es_SampleCoverage);
2382 SET_Scissor(exec, _es_Scissor);
2383 SET_ShaderBinary(exec, _es_ShaderBinary);
2384 SET_ShaderSource(exec, _es_ShaderSource);
2385 SET_StencilFunc(exec, _es_StencilFunc);
2386 SET_StencilFuncSeparate(exec, _es_StencilFuncSeparate);
2387 SET_StencilMask(exec, _es_StencilMask);
2388 SET_StencilMaskSeparate(exec, _es_StencilMaskSeparate);
2389 SET_StencilOp(exec, _es_StencilOp);
2390 SET_StencilOpSeparate(exec, _es_StencilOpSeparate);
2391 SET_TexImage2D(exec, _es_TexImage2D);
2392 SET_TexImage3DOES(exec, _es_TexImage3DOES);
2393 SET_TexParameterf(exec, _es_TexParameterf);
2394 SET_TexParameterfv(exec, _es_TexParameterfv);
2395 SET_TexParameteri(exec, _es_TexParameteri);
2396 SET_TexParameteriv(exec, _es_TexParameteriv);
2397 SET_TexSubImage2D(exec, _es_TexSubImage2D);
2398 SET_TexSubImage3DOES(exec, _es_TexSubImage3DOES);
2399 SET_Uniform1f(exec, _es_Uniform1f);
2400 SET_Uniform1fv(exec, _es_Uniform1fv);
2401 SET_Uniform1i(exec, _es_Uniform1i);
2402 SET_Uniform1iv(exec, _es_Uniform1iv);
2403 SET_Uniform2f(exec, _es_Uniform2f);
2404 SET_Uniform2fv(exec, _es_Uniform2fv);
2405 SET_Uniform2i(exec, _es_Uniform2i);
2406 SET_Uniform2iv(exec, _es_Uniform2iv);
2407 SET_Uniform3f(exec, _es_Uniform3f);
2408 SET_Uniform3fv(exec, _es_Uniform3fv);
2409 SET_Uniform3i(exec, _es_Uniform3i);
2410 SET_Uniform3iv(exec, _es_Uniform3iv);
2411 SET_Uniform4f(exec, _es_Uniform4f);
2412 SET_Uniform4fv(exec, _es_Uniform4fv);
2413 SET_Uniform4i(exec, _es_Uniform4i);
2414 SET_Uniform4iv(exec, _es_Uniform4iv);
2415 SET_UniformMatrix2fv(exec, _es_UniformMatrix2fv);
2416 SET_UniformMatrix3fv(exec, _es_UniformMatrix3fv);
2417 SET_UniformMatrix4fv(exec, _es_UniformMatrix4fv);
2418 SET_UnmapBufferOES(exec, _es_UnmapBufferOES);
2419 SET_UseProgram(exec, _es_UseProgram);
2420 SET_ValidateProgram(exec, _es_ValidateProgram);
2421 SET_VertexAttrib1f(exec, _check_VertexAttrib1f);
2422 SET_VertexAttrib1fv(exec, _check_VertexAttrib1fv);
2423 SET_VertexAttrib2f(exec, _check_VertexAttrib2f);
2424 SET_VertexAttrib2fv(exec, _check_VertexAttrib2fv);
2425 SET_VertexAttrib3f(exec, _check_VertexAttrib3f);
2426 SET_VertexAttrib3fv(exec, _check_VertexAttrib3fv);
2427 SET_VertexAttrib4f(exec, _check_VertexAttrib4f);
2428 SET_VertexAttrib4fv(exec, _check_VertexAttrib4fv);
2429 SET_VertexAttribPointer(exec, _es_VertexAttribPointer);
2430 SET_Viewport(exec, _es_Viewport);
2431
2432 return exec;
2433 }
2434
2435 #endif /* FEATURE_ES2 */