Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / mesa / main / api_exec_es1.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:             GLES1.1
5  * date:                     2011-11-17 11:46:39
6  */
7
8
9 #include "GLES/gl.h"
10 #include "GLES/glext.h"
11 #include "main/mfeatures.h"
12 #include "main/compiler.h"
13 #include "main/api_exec.h"
14
15 #if FEATURE_ES1
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_AlphaFunc(GLenum func, GLclampf ref);
82 static void GL_APIENTRY _es_AlphaFunc(GLenum func, GLclampf ref)
83 {
84     switch(func) {
85         case GL_NEVER:
86         case GL_LESS:
87         case GL_EQUAL:
88         case GL_LEQUAL:
89         case GL_GREATER:
90         case GL_NOTEQUAL:
91         case GL_GEQUAL:
92         case GL_ALWAYS:
93             break;
94         default:
95             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glAlphaFunc(func=0x%x)", func);
96             return;
97     }
98
99     _mesa_AlphaFunc(func, ref);
100 }
101
102 extern void GL_APIENTRY _mesa_AlphaFunc(GLenum func, GLclampf  ref);
103 static void GL_APIENTRY _es_AlphaFuncx(GLenum func, GLclampx ref)
104 {
105     GLclampf converted_ref;
106
107     switch(func) {
108         case GL_NEVER:
109         case GL_LESS:
110         case GL_EQUAL:
111         case GL_LEQUAL:
112         case GL_GREATER:
113         case GL_NOTEQUAL:
114         case GL_GEQUAL:
115         case GL_ALWAYS:
116             break;
117         default:
118             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glAlphaFuncx(func=0x%x)", func);
119             return;
120     }
121
122     converted_ref = (GLclampf) (ref / 65536.0f);
123
124     _mesa_AlphaFunc(func, converted_ref);
125 }
126
127 extern void GL_APIENTRY _mesa_BindBufferARB(GLenum target, GLuint buffer);
128 static void GL_APIENTRY _es_BindBuffer(GLenum target, GLuint buffer)
129 {
130     switch(target) {
131         case GL_ARRAY_BUFFER:
132         case GL_ELEMENT_ARRAY_BUFFER:
133             break;
134         default:
135             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindBuffer(target=0x%x)", target);
136             return;
137     }
138
139     _mesa_BindBufferARB(target, buffer);
140 }
141
142 extern void GL_APIENTRY _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer);
143 static void GL_APIENTRY _es_BindFramebufferOES(GLenum target, GLuint framebuffer)
144 {
145     switch(target) {
146         case GL_FRAMEBUFFER_OES:
147             break;
148         default:
149             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindFramebufferOES(target=0x%x)", target);
150             return;
151     }
152
153     _mesa_BindFramebufferEXT(target, framebuffer);
154 }
155
156 extern void GL_APIENTRY _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer);
157 static void GL_APIENTRY _es_BindRenderbufferOES(GLenum target, GLuint renderbuffer)
158 {
159     switch(target) {
160         case GL_RENDERBUFFER_OES:
161             break;
162         default:
163             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindRenderbufferOES(target=0x%x)", target);
164             return;
165     }
166
167     _mesa_BindRenderbufferEXT(target, renderbuffer);
168 }
169
170 extern void GL_APIENTRY _mesa_BindTexture(GLenum target, GLuint texture);
171 static void GL_APIENTRY _es_BindTexture(GLenum target, GLuint texture)
172 {
173     switch(target) {
174         case GL_TEXTURE_2D:
175         case GL_TEXTURE_CUBE_MAP_OES:
176             break;
177         default:
178             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindTexture(target=0x%x)", target);
179             return;
180     }
181
182     _mesa_BindTexture(target, texture);
183 }
184
185 extern void GL_APIENTRY _mesa_BlendEquation(GLenum mode);
186 static void GL_APIENTRY _es_BlendEquationOES(GLenum mode)
187 {
188     switch(mode) {
189         case GL_FUNC_ADD_OES:
190         case GL_FUNC_SUBTRACT_OES:
191         case GL_FUNC_REVERSE_SUBTRACT_OES:
192         case GL_MIN_EXT:
193         case GL_MAX_EXT:
194             break;
195         default:
196             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationOES(mode=0x%x)", mode);
197             return;
198     }
199
200     _mesa_BlendEquation(mode);
201 }
202
203 extern void GL_APIENTRY _mesa_BlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha);
204 static void GL_APIENTRY _es_BlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha)
205 {
206     switch(modeRGB) {
207         case GL_FUNC_ADD_OES:
208         case GL_FUNC_SUBTRACT_OES:
209         case GL_FUNC_REVERSE_SUBTRACT_OES:
210         case GL_MIN_EXT:
211         case GL_MAX_EXT:
212             break;
213         default:
214             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparateOES(modeRGB=0x%x)", modeRGB);
215             return;
216     }
217     switch(modeAlpha) {
218         case GL_FUNC_ADD_OES:
219         case GL_FUNC_SUBTRACT_OES:
220         case GL_FUNC_REVERSE_SUBTRACT_OES:
221         case GL_MIN_EXT:
222         case GL_MAX_EXT:
223             break;
224         default:
225             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparateOES(modeAlpha=0x%x)", modeAlpha);
226             return;
227     }
228
229     _mesa_BlendEquationSeparateEXT(modeRGB, modeAlpha);
230 }
231
232 extern void GL_APIENTRY _mesa_BlendFunc(GLenum sfactor, GLenum dfactor);
233 static void GL_APIENTRY _es_BlendFunc(GLenum sfactor, GLenum dfactor)
234 {
235     switch(sfactor) {
236         case GL_ZERO:
237         case GL_ONE:
238         case GL_SRC_COLOR:
239         case GL_ONE_MINUS_SRC_COLOR:
240         case GL_SRC_ALPHA:
241         case GL_ONE_MINUS_SRC_ALPHA:
242         case GL_DST_ALPHA:
243         case GL_ONE_MINUS_DST_ALPHA:
244         case GL_DST_COLOR:
245         case GL_ONE_MINUS_DST_COLOR:
246         case GL_SRC_ALPHA_SATURATE:
247             break;
248         default:
249             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(sfactor=0x%x)", sfactor);
250             return;
251     }
252     switch(dfactor) {
253         case GL_ZERO:
254         case GL_ONE:
255         case GL_SRC_COLOR:
256         case GL_ONE_MINUS_SRC_COLOR:
257         case GL_SRC_ALPHA:
258         case GL_ONE_MINUS_SRC_ALPHA:
259         case GL_DST_ALPHA:
260         case GL_ONE_MINUS_DST_ALPHA:
261         case GL_DST_COLOR:
262         case GL_ONE_MINUS_DST_COLOR:
263             break;
264         default:
265             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(dfactor=0x%x)", dfactor);
266             return;
267     }
268
269     _mesa_BlendFunc(sfactor, dfactor);
270 }
271
272 extern void GL_APIENTRY _mesa_BlendFuncSeparateEXT(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
273 static void GL_APIENTRY _es_BlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
274 {
275     switch(srcRGB) {
276         case GL_ZERO:
277         case GL_ONE:
278         case GL_SRC_COLOR:
279         case GL_ONE_MINUS_SRC_COLOR:
280         case GL_SRC_ALPHA:
281         case GL_ONE_MINUS_SRC_ALPHA:
282         case GL_DST_ALPHA:
283         case GL_ONE_MINUS_DST_ALPHA:
284         case GL_DST_COLOR:
285         case GL_ONE_MINUS_DST_COLOR:
286         case GL_SRC_ALPHA_SATURATE:
287             break;
288         default:
289             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(srcRGB=0x%x)", srcRGB);
290             return;
291     }
292     switch(dstRGB) {
293         case GL_ZERO:
294         case GL_ONE:
295         case GL_SRC_COLOR:
296         case GL_ONE_MINUS_SRC_COLOR:
297         case GL_SRC_ALPHA:
298         case GL_ONE_MINUS_SRC_ALPHA:
299         case GL_DST_ALPHA:
300         case GL_ONE_MINUS_DST_ALPHA:
301         case GL_DST_COLOR:
302         case GL_ONE_MINUS_DST_COLOR:
303             break;
304         default:
305             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(dstRGB=0x%x)", dstRGB);
306             return;
307     }
308     switch(srcAlpha) {
309         case GL_ZERO:
310         case GL_ONE:
311         case GL_SRC_COLOR:
312         case GL_ONE_MINUS_SRC_COLOR:
313         case GL_SRC_ALPHA:
314         case GL_ONE_MINUS_SRC_ALPHA:
315         case GL_DST_ALPHA:
316         case GL_ONE_MINUS_DST_ALPHA:
317         case GL_DST_COLOR:
318         case GL_ONE_MINUS_DST_COLOR:
319         case GL_SRC_ALPHA_SATURATE:
320             break;
321         default:
322             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(srcAlpha=0x%x)", srcAlpha);
323             return;
324     }
325     switch(dstAlpha) {
326         case GL_ZERO:
327         case GL_ONE:
328         case GL_SRC_COLOR:
329         case GL_ONE_MINUS_SRC_COLOR:
330         case GL_SRC_ALPHA:
331         case GL_ONE_MINUS_SRC_ALPHA:
332         case GL_DST_ALPHA:
333         case GL_ONE_MINUS_DST_ALPHA:
334         case GL_DST_COLOR:
335         case GL_ONE_MINUS_DST_COLOR:
336             break;
337         default:
338             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(dstAlpha=0x%x)", dstAlpha);
339             return;
340     }
341
342     _mesa_BlendFuncSeparateEXT(srcRGB, dstRGB, srcAlpha, dstAlpha);
343 }
344
345 extern void GL_APIENTRY _mesa_BufferDataARB(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);
346 static void GL_APIENTRY _es_BufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
347 {
348     switch(target) {
349         case GL_ARRAY_BUFFER:
350         case GL_ELEMENT_ARRAY_BUFFER:
351             break;
352         default:
353             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(target=0x%x)", target);
354             return;
355     }
356     switch(usage) {
357         case GL_STATIC_DRAW:
358         case GL_DYNAMIC_DRAW:
359             break;
360         default:
361             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(usage=0x%x)", usage);
362             return;
363     }
364
365     _mesa_BufferDataARB(target, size, data, usage);
366 }
367
368 extern void GL_APIENTRY _mesa_BufferSubDataARB(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data);
369 static void GL_APIENTRY _es_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data)
370 {
371     switch(target) {
372         case GL_ARRAY_BUFFER:
373         case GL_ELEMENT_ARRAY_BUFFER:
374             break;
375         default:
376             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferSubData(target=0x%x)", target);
377             return;
378     }
379
380     _mesa_BufferSubDataARB(target, offset, size, data);
381 }
382
383 extern GLenum GL_APIENTRY _mesa_CheckFramebufferStatusEXT(GLenum target);
384 static GLenum GL_APIENTRY _es_CheckFramebufferStatusOES(GLenum target)
385 {
386     switch(target) {
387         case GL_FRAMEBUFFER_OES:
388             break;
389         default:
390             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCheckFramebufferStatusOES(target=0x%x)", target);
391             return (GLenum) 0;
392     }
393
394     return _mesa_CheckFramebufferStatusEXT(target);
395 }
396
397 extern void GL_APIENTRY _mesa_Clear(GLbitfield mask);
398 static void GL_APIENTRY _es_Clear(GLbitfield mask)
399 {
400         printf("%s 1\n", __FUNCTION__);
401
402     switch(mask) {
403         case 0:
404         case (GL_COLOR_BUFFER_BIT):
405         case (GL_DEPTH_BUFFER_BIT):
406         case (GL_STENCIL_BUFFER_BIT):
407         case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT):
408         case (GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT):
409         case (GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT):
410         case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT):
411             break;
412         default:
413             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glClear(mask=0x%x)", mask);
414             return;
415     }
416
417     _mesa_Clear(mask);
418 }
419
420 extern void GL_APIENTRY _mesa_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
421 #define _es_ClearColor _mesa_ClearColor
422
423 extern void GL_APIENTRY _mesa_ClearColor(GLclampf  red, GLclampf  green, GLclampf  blue, GLclampf  alpha);
424 static void GL_APIENTRY _es_ClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
425 {
426     GLclampf converted_red;
427     GLclampf converted_green;
428     GLclampf converted_blue;
429     GLclampf converted_alpha;
430
431     converted_red = (GLclampf) (red / 65536.0f);
432     converted_green = (GLclampf) (green / 65536.0f);
433     converted_blue = (GLclampf) (blue / 65536.0f);
434     converted_alpha = (GLclampf) (alpha / 65536.0f);
435
436     _mesa_ClearColor(converted_red, converted_green, converted_blue, converted_alpha);
437 }
438
439 extern void GL_APIENTRY _mesa_ClearDepthf(GLclampf depth);
440 #define _es_ClearDepthf _mesa_ClearDepthf
441
442 extern void GL_APIENTRY _mesa_ClearDepthf(GLclampf  depth);
443 static void GL_APIENTRY _es_ClearDepthx(GLclampx depth)
444 {
445     GLclampf converted_depth;
446
447     converted_depth = (GLclampf) (depth / 65536.0f);
448
449     _mesa_ClearDepthf(converted_depth);
450 }
451
452 extern void GL_APIENTRY _mesa_ClearStencil(GLint s);
453 #define _es_ClearStencil _mesa_ClearStencil
454
455 extern void GL_APIENTRY _mesa_ClientActiveTextureARB(GLenum texture);
456 static void GL_APIENTRY _es_ClientActiveTexture(GLenum texture)
457 {
458     switch(texture) {
459         case GL_TEXTURE0:
460         case GL_TEXTURE1:
461         case GL_TEXTURE2:
462         case GL_TEXTURE3:
463         case GL_TEXTURE4:
464         case GL_TEXTURE5:
465         case GL_TEXTURE6:
466         case GL_TEXTURE7:
467         case GL_TEXTURE8:
468         case GL_TEXTURE9:
469         case GL_TEXTURE10:
470         case GL_TEXTURE11:
471         case GL_TEXTURE12:
472         case GL_TEXTURE13:
473         case GL_TEXTURE14:
474         case GL_TEXTURE15:
475         case GL_TEXTURE16:
476         case GL_TEXTURE17:
477         case GL_TEXTURE18:
478         case GL_TEXTURE19:
479         case GL_TEXTURE20:
480         case GL_TEXTURE21:
481         case GL_TEXTURE22:
482         case GL_TEXTURE23:
483         case GL_TEXTURE24:
484         case GL_TEXTURE25:
485         case GL_TEXTURE26:
486         case GL_TEXTURE27:
487         case GL_TEXTURE28:
488         case GL_TEXTURE29:
489         case GL_TEXTURE30:
490         case GL_TEXTURE31:
491             break;
492         default:
493             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glClientActiveTexture(texture=0x%x)", texture);
494             return;
495     }
496
497     _mesa_ClientActiveTextureARB(texture);
498 }
499
500 extern void GL_APIENTRY _mesa_ClipPlane(GLenum plane, GLdouble const * equation);
501 static void GL_APIENTRY _es_ClipPlanef(GLenum plane, const GLfloat *equation)
502 {
503     register unsigned int i;
504     unsigned int n_equation = 4;
505     GLdouble converted_equation[4];
506
507     switch(plane) {
508         case GL_CLIP_PLANE0:
509         case GL_CLIP_PLANE1:
510         case GL_CLIP_PLANE2:
511         case GL_CLIP_PLANE3:
512         case GL_CLIP_PLANE4:
513         case GL_CLIP_PLANE5:
514             break;
515         default:
516             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glClipPlanef(plane=0x%x)", plane);
517             return;
518     }
519
520     for (i = 0; i < n_equation; i++) {
521         converted_equation[i] = (GLdouble) (equation[i]);
522     }
523
524     _mesa_ClipPlane(plane, converted_equation);
525 }
526
527 extern void GL_APIENTRY _mesa_ClipPlane(GLenum plane, GLdouble const * equation);
528 static void GL_APIENTRY _es_ClipPlanex(GLenum plane, const GLfixed *equation)
529 {
530     register unsigned int i;
531     unsigned int n_equation = 4;
532     GLdouble converted_equation[4];
533
534     switch(plane) {
535         case GL_CLIP_PLANE0:
536         case GL_CLIP_PLANE1:
537         case GL_CLIP_PLANE2:
538         case GL_CLIP_PLANE3:
539         case GL_CLIP_PLANE4:
540         case GL_CLIP_PLANE5:
541             break;
542         default:
543             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glClipPlanex(plane=0x%x)", plane);
544             return;
545     }
546
547     for (i = 0; i < n_equation; i++) {
548         converted_equation[i] = (GLdouble) (equation[i] / 65536.0);
549     }
550
551     _mesa_ClipPlane(plane, converted_equation);
552 }
553
554 /* this function is special and is defined elsewhere */
555 extern void GL_APIENTRY _es_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
556 #define _check_Color4f _es_Color4f
557
558 extern void GL_APIENTRY _es_Color4f(GLfloat  red, GLfloat  green, GLfloat  blue, GLfloat  alpha);
559 static void GL_APIENTRY _es_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
560 {
561     GLfloat converted_red;
562     GLfloat converted_green;
563     GLfloat converted_blue;
564     GLfloat converted_alpha;
565
566     converted_red = (GLfloat) (red / 255.0f);
567     converted_green = (GLfloat) (green / 255.0f);
568     converted_blue = (GLfloat) (blue / 255.0f);
569     converted_alpha = (GLfloat) (alpha / 255.0f);
570
571     _es_Color4f(converted_red, converted_green, converted_blue, converted_alpha);
572 }
573
574 extern void GL_APIENTRY _es_Color4f(GLfloat  red, GLfloat  green, GLfloat  blue, GLfloat  alpha);
575 static void GL_APIENTRY _es_Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
576 {
577     GLfloat converted_red;
578     GLfloat converted_green;
579     GLfloat converted_blue;
580     GLfloat converted_alpha;
581
582     converted_red = (GLfloat) (red / 65536.0f);
583     converted_green = (GLfloat) (green / 65536.0f);
584     converted_blue = (GLfloat) (blue / 65536.0f);
585     converted_alpha = (GLfloat) (alpha / 65536.0f);
586
587     _es_Color4f(converted_red, converted_green, converted_blue, converted_alpha);
588 }
589
590 extern void GL_APIENTRY _mesa_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
591 #define _es_ColorMask _mesa_ColorMask
592
593 extern void GL_APIENTRY _mesa_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer);
594 static void GL_APIENTRY _es_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
595 {
596     switch(size) {
597         case 4:
598             break;
599         default:
600             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glColorPointer(size=%d)", size);
601             return;
602     }
603     switch(type) {
604         case GL_UNSIGNED_BYTE:
605         case GL_FLOAT:
606         case GL_FIXED:
607             break;
608         default:
609             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glColorPointer(type=0x%x)", type);
610             return;
611     }
612
613     _mesa_ColorPointer(size, type, stride, pointer);
614 }
615
616 extern void GL_APIENTRY _mesa_CompressedTexImage2DARB(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data);
617 static void GL_APIENTRY _es_CompressedTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
618 {
619     switch(target) {
620         case GL_TEXTURE_2D:
621         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
622         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
623         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
624         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
625         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
626         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
627             break;
628         default:
629             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(target=0x%x)", target);
630             return;
631     }
632     switch(internalFormat) {
633         case GL_PALETTE4_RGB8_OES:
634         case GL_PALETTE4_RGBA8_OES:
635         case GL_PALETTE4_R5_G6_B5_OES:
636         case GL_PALETTE4_RGBA4_OES:
637         case GL_PALETTE4_RGB5_A1_OES:
638         case GL_PALETTE8_RGB8_OES:
639         case GL_PALETTE8_RGBA8_OES:
640         case GL_PALETTE8_R5_G6_B5_OES:
641         case GL_PALETTE8_RGBA4_OES:
642         case GL_PALETTE8_RGB5_A1_OES:
643             break;
644         default:
645             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(internalFormat=0x%x)", internalFormat);
646             return;
647     }
648     switch(border) {
649         case 0:
650             break;
651         default:
652             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCompressedTexImage2D(border=%d)", border);
653             return;
654     }
655
656     _mesa_CompressedTexImage2DARB(target, level, internalFormat, width, height, border, imageSize, data);
657 }
658
659 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);
660 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)
661 {
662     switch(target) {
663         case GL_TEXTURE_2D:
664         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
665         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
666         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
667         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
668         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
669         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
670             break;
671         default:
672             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage2D(target=0x%x)", target);
673             return;
674     }
675
676     _mesa_CompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data);
677 }
678
679 extern void GL_APIENTRY _mesa_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
680 static void GL_APIENTRY _es_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
681 {
682     switch(target) {
683         case GL_TEXTURE_2D:
684         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
685         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
686         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
687         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
688         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
689         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
690             break;
691         default:
692             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexImage2D(target=0x%x)", target);
693             return;
694     }
695     switch(internalFormat) {
696         case GL_ALPHA:
697         case GL_RGB:
698         case GL_RGBA:
699         case GL_LUMINANCE:
700         case GL_LUMINANCE_ALPHA:
701             break;
702         default:
703             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(internalFormat=0x%x)", internalFormat);
704             return;
705     }
706     switch(border) {
707         case 0:
708             break;
709         default:
710             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(border=%d)", border);
711             return;
712     }
713
714     _mesa_CopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
715 }
716
717 extern void GL_APIENTRY _mesa_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
718 static void GL_APIENTRY _es_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
719 {
720     switch(target) {
721         case GL_TEXTURE_2D:
722         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
723         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
724         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
725         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
726         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
727         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
728             break;
729         default:
730             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexSubImage2D(target=0x%x)", target);
731             return;
732     }
733
734     _mesa_CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
735 }
736
737 extern void GL_APIENTRY _mesa_CullFace(GLenum mode);
738 static void GL_APIENTRY _es_CullFace(GLenum mode)
739 {
740     switch(mode) {
741         case GL_FRONT:
742         case GL_BACK:
743         case GL_FRONT_AND_BACK:
744             break;
745         default:
746             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCullFace(mode=0x%x)", mode);
747             return;
748     }
749
750     _mesa_CullFace(mode);
751 }
752
753 extern void GL_APIENTRY _mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer);
754 #define _es_DeleteBuffers _mesa_DeleteBuffersARB
755
756 extern void GL_APIENTRY _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers);
757 #define _es_DeleteFramebuffersOES _mesa_DeleteFramebuffersEXT
758
759 extern void GL_APIENTRY _mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers);
760 #define _es_DeleteRenderbuffersOES _mesa_DeleteRenderbuffersEXT
761
762 extern void GL_APIENTRY _mesa_DeleteTextures(GLsizei n, const GLuint * textures);
763 #define _es_DeleteTextures _mesa_DeleteTextures
764
765 extern void GL_APIENTRY _mesa_DepthFunc(GLenum func);
766 static void GL_APIENTRY _es_DepthFunc(GLenum func)
767 {
768     switch(func) {
769         case GL_NEVER:
770         case GL_LESS:
771         case GL_EQUAL:
772         case GL_LEQUAL:
773         case GL_GREATER:
774         case GL_NOTEQUAL:
775         case GL_GEQUAL:
776         case GL_ALWAYS:
777             break;
778         default:
779             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDepthFunc(func=0x%x)", func);
780             return;
781     }
782
783     _mesa_DepthFunc(func);
784 }
785
786 extern void GL_APIENTRY _mesa_DepthMask(GLboolean flag);
787 #define _es_DepthMask _mesa_DepthMask
788
789 extern void GL_APIENTRY _mesa_DepthRangef(GLclampf zNear, GLclampf zFar);
790 #define _es_DepthRangef _mesa_DepthRangef
791
792 extern void GL_APIENTRY _mesa_DepthRangef(GLclampf  zNear, GLclampf  zFar);
793 static void GL_APIENTRY _es_DepthRangex(GLclampx zNear, GLclampx zFar)
794 {
795     GLclampf converted_zNear;
796     GLclampf converted_zFar;
797
798     converted_zNear = (GLclampf) (zNear / 65536.0f);
799     converted_zFar = (GLclampf) (zFar / 65536.0f);
800
801     _mesa_DepthRangef(converted_zNear, converted_zFar);
802 }
803
804 extern void GL_APIENTRY _mesa_Disable(GLenum cap);
805 static void GL_APIENTRY _es_Disable(GLenum cap)
806 {
807     switch(cap) {
808         case GL_NORMALIZE:
809         case GL_RESCALE_NORMAL:
810         case GL_CLIP_PLANE0:
811         case GL_CLIP_PLANE1:
812         case GL_CLIP_PLANE2:
813         case GL_CLIP_PLANE3:
814         case GL_CLIP_PLANE4:
815         case GL_CLIP_PLANE5:
816         case GL_FOG:
817         case GL_LIGHTING:
818         case GL_COLOR_MATERIAL:
819         case GL_LIGHT0:
820         case GL_LIGHT1:
821         case GL_LIGHT2:
822         case GL_LIGHT3:
823         case GL_LIGHT4:
824         case GL_LIGHT5:
825         case GL_LIGHT6:
826         case GL_LIGHT7:
827         case GL_POINT_SMOOTH:
828         case GL_LINE_SMOOTH:
829         case GL_CULL_FACE:
830         case GL_POLYGON_OFFSET_FILL:
831         case GL_MULTISAMPLE:
832         case GL_SAMPLE_ALPHA_TO_COVERAGE:
833         case GL_SAMPLE_ALPHA_TO_ONE:
834         case GL_SAMPLE_COVERAGE:
835         case GL_TEXTURE_2D:
836         case GL_SCISSOR_TEST:
837         case GL_ALPHA_TEST:
838         case GL_STENCIL_TEST:
839         case GL_DEPTH_TEST:
840         case GL_BLEND:
841         case GL_DITHER:
842         case GL_COLOR_LOGIC_OP:
843         case GL_POINT_SPRITE_OES:
844         case GL_MATRIX_PALETTE_OES:
845         case GL_TEXTURE_CUBE_MAP_OES:
846         case GL_TEXTURE_GEN_STR_OES:
847             break;
848         default:
849             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDisable(cap=0x%x)", cap);
850             return;
851     }
852
853     _mesa_Disable(cap);
854 }
855
856 extern void GL_APIENTRY _mesa_DisableClientState(GLenum array);
857 static void GL_APIENTRY _es_DisableClientState(GLenum array)
858 {
859     switch(array) {
860         case GL_VERTEX_ARRAY:
861         case GL_NORMAL_ARRAY:
862         case GL_COLOR_ARRAY:
863         case GL_TEXTURE_COORD_ARRAY:
864         case GL_MATRIX_INDEX_ARRAY_OES:
865         case GL_WEIGHT_ARRAY_OES:
866         case GL_POINT_SIZE_ARRAY_OES:
867             break;
868         default:
869             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDisableClientState(array=0x%x)", array);
870             return;
871     }
872
873     _mesa_DisableClientState(array);
874 }
875
876 extern void GL_APIENTRY _mesa_DrawArrays(GLenum mode, GLint first, GLsizei count);
877 static void GL_APIENTRY _es_DrawArrays(GLenum mode, GLint first, GLsizei count)
878 {
879     switch(mode) {
880         case GL_POINTS:
881         case GL_LINES:
882         case GL_LINE_LOOP:
883         case GL_LINE_STRIP:
884         case GL_TRIANGLES:
885         case GL_TRIANGLE_STRIP:
886         case GL_TRIANGLE_FAN:
887             break;
888         default:
889             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawArrays(mode=0x%x)", mode);
890             return;
891     }
892
893     _mesa_DrawArrays(mode, first, count);
894 }
895
896 extern void GL_APIENTRY _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices);
897 static void GL_APIENTRY _es_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
898 {
899     switch(mode) {
900         case GL_POINTS:
901         case GL_LINES:
902         case GL_LINE_LOOP:
903         case GL_LINE_STRIP:
904         case GL_TRIANGLES:
905         case GL_TRIANGLE_STRIP:
906         case GL_TRIANGLE_FAN:
907             break;
908         default:
909             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(mode=0x%x)", mode);
910             return;
911     }
912     switch(type) {
913         case GL_UNSIGNED_BYTE:
914         case GL_UNSIGNED_SHORT:
915         case GL_UNSIGNED_INT:
916             break;
917         default:
918             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(type=0x%x)", type);
919             return;
920     }
921
922     _mesa_DrawElements(mode, count, type, indices);
923 }
924
925 extern void GL_APIENTRY _mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h);
926 #define _es_DrawTexfOES _mesa_DrawTexf
927
928 extern void GL_APIENTRY _mesa_DrawTexfv(const GLfloat * coords);
929 #define _es_DrawTexfvOES _mesa_DrawTexfv
930
931 extern void GL_APIENTRY _mesa_DrawTexi(GLint x, GLint y, GLint z, GLint w, GLint h);
932 #define _es_DrawTexiOES _mesa_DrawTexi
933
934 extern void GL_APIENTRY _mesa_DrawTexiv(const GLint * coords);
935 #define _es_DrawTexivOES _mesa_DrawTexiv
936
937 extern void GL_APIENTRY _mesa_DrawTexs(GLshort x, GLshort y, GLshort z, GLshort w, GLshort h);
938 #define _es_DrawTexsOES _mesa_DrawTexs
939
940 extern void GL_APIENTRY _mesa_DrawTexsv(const GLshort * coords);
941 #define _es_DrawTexsvOES _mesa_DrawTexsv
942
943 extern void GL_APIENTRY _mesa_DrawTexf(GLfloat  x, GLfloat  y, GLfloat  z, GLfloat  w, GLfloat  h);
944 static void GL_APIENTRY _es_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h)
945 {
946     GLfloat converted_x;
947     GLfloat converted_y;
948     GLfloat converted_z;
949     GLfloat converted_w;
950     GLfloat converted_h;
951
952     converted_x = (GLfloat) (x / 65536.0f);
953     converted_y = (GLfloat) (y / 65536.0f);
954     converted_z = (GLfloat) (z / 65536.0f);
955     converted_w = (GLfloat) (w / 65536.0f);
956     converted_h = (GLfloat) (h / 65536.0f);
957
958     _mesa_DrawTexf(converted_x, converted_y, converted_z, converted_w, converted_h);
959 }
960
961 extern void GL_APIENTRY _mesa_DrawTexfv(GLfloat const * coords);
962 static void GL_APIENTRY _es_DrawTexxvOES(const GLfixed *coords)
963 {
964     register unsigned int i;
965     unsigned int n_coords = 5;
966     GLfloat converted_coords[5];
967
968     for (i = 0; i < n_coords; i++) {
969         converted_coords[i] = (GLfloat) (coords[i] / 65536.0f);
970     }
971
972     _mesa_DrawTexfv(converted_coords);
973 }
974
975 extern void GL_APIENTRY _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
976 static void GL_APIENTRY _es_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
977 {
978     switch(target) {
979         case GL_RENDERBUFFER_OES:
980             break;
981         default:
982             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetRenderbufferStorageOES(target=0x%x)", target);
983             return;
984     }
985
986     _mesa_EGLImageTargetRenderbufferStorageOES(target, image);
987 }
988
989 extern void GL_APIENTRY _mesa_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
990 static void GL_APIENTRY _es_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
991 {
992     switch(target) {
993         case GL_TEXTURE_2D:
994             break;
995         default:
996             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetTexture2DOES(target=0x%x)", target);
997             return;
998     }
999
1000     _mesa_EGLImageTargetTexture2DOES(target, image);
1001 }
1002
1003 extern void GL_APIENTRY _mesa_Enable(GLenum cap);
1004 static void GL_APIENTRY _es_Enable(GLenum cap)
1005 {
1006     switch(cap) {
1007         case GL_NORMALIZE:
1008         case GL_RESCALE_NORMAL:
1009         case GL_CLIP_PLANE0:
1010         case GL_CLIP_PLANE1:
1011         case GL_CLIP_PLANE2:
1012         case GL_CLIP_PLANE3:
1013         case GL_CLIP_PLANE4:
1014         case GL_CLIP_PLANE5:
1015         case GL_FOG:
1016         case GL_LIGHTING:
1017         case GL_COLOR_MATERIAL:
1018         case GL_LIGHT0:
1019         case GL_LIGHT1:
1020         case GL_LIGHT2:
1021         case GL_LIGHT3:
1022         case GL_LIGHT4:
1023         case GL_LIGHT5:
1024         case GL_LIGHT6:
1025         case GL_LIGHT7:
1026         case GL_POINT_SMOOTH:
1027         case GL_LINE_SMOOTH:
1028         case GL_CULL_FACE:
1029         case GL_POLYGON_OFFSET_FILL:
1030         case GL_MULTISAMPLE:
1031         case GL_SAMPLE_ALPHA_TO_COVERAGE:
1032         case GL_SAMPLE_ALPHA_TO_ONE:
1033         case GL_SAMPLE_COVERAGE:
1034         case GL_TEXTURE_2D:
1035         case GL_SCISSOR_TEST:
1036         case GL_ALPHA_TEST:
1037         case GL_STENCIL_TEST:
1038         case GL_DEPTH_TEST:
1039         case GL_BLEND:
1040         case GL_DITHER:
1041         case GL_COLOR_LOGIC_OP:
1042         case GL_POINT_SPRITE_OES:
1043         case GL_MATRIX_PALETTE_OES:
1044         case GL_TEXTURE_CUBE_MAP_OES:
1045         case GL_TEXTURE_GEN_STR_OES:
1046             break;
1047         default:
1048             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEnable(cap=0x%x)", cap);
1049             return;
1050     }
1051
1052     _mesa_Enable(cap);
1053 }
1054
1055 extern void GL_APIENTRY _mesa_EnableClientState(GLenum array);
1056 static void GL_APIENTRY _es_EnableClientState(GLenum array)
1057 {
1058     switch(array) {
1059         case GL_VERTEX_ARRAY:
1060         case GL_NORMAL_ARRAY:
1061         case GL_COLOR_ARRAY:
1062         case GL_TEXTURE_COORD_ARRAY:
1063         case GL_MATRIX_INDEX_ARRAY_OES:
1064         case GL_WEIGHT_ARRAY_OES:
1065         case GL_POINT_SIZE_ARRAY_OES:
1066             break;
1067         default:
1068             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEnableClientState(array=0x%x)", array);
1069             return;
1070     }
1071
1072     _mesa_EnableClientState(array);
1073 }
1074
1075 extern void GL_APIENTRY _mesa_Finish(void);
1076 #define _es_Finish _mesa_Finish
1077
1078 extern void GL_APIENTRY _mesa_Flush(void);
1079 #define _es_Flush _mesa_Flush
1080
1081 extern void GL_APIENTRY _mesa_Fogf(GLenum pname, GLfloat param);
1082 static void GL_APIENTRY _es_Fogf(GLenum pname, GLfloat param)
1083 {
1084     switch(pname) {
1085         case GL_FOG_MODE:
1086             if (param != GL_EXP && param != GL_EXP2 && param != GL_LINEAR) {
1087                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogf(pname=0x%x)", pname);
1088                 return;
1089             }
1090             break;
1091         case GL_FOG_DENSITY:
1092         case GL_FOG_START:
1093         case GL_FOG_END:
1094             break;
1095         default:
1096             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogf(pname=0x%x)", pname);
1097             return;
1098     }
1099
1100     _mesa_Fogf(pname, param);
1101 }
1102
1103 extern void GL_APIENTRY _mesa_Fogfv(GLenum pname, const GLfloat * params);
1104 static void GL_APIENTRY _es_Fogfv(GLenum pname, const GLfloat *params)
1105 {
1106     switch(pname) {
1107         case GL_FOG_MODE: /* size 1 */
1108             if (params[0] != GL_EXP && params[0] != GL_EXP2 && params[0] != GL_LINEAR) {
1109                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogfv(pname=0x%x)", pname);
1110                 return;
1111             }
1112             break;
1113         case GL_FOG_COLOR: /* size 4 */
1114         case GL_FOG_DENSITY: /* size 1 */
1115         case GL_FOG_START: /* size 1 */
1116         case GL_FOG_END: /* size 1 */
1117             break;
1118         default:
1119             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogfv(pname=0x%x)", pname);
1120             return;
1121     }
1122
1123     _mesa_Fogfv(pname, params);
1124 }
1125
1126 extern void GL_APIENTRY _mesa_Fogf(GLenum pname, GLfloat  param);
1127 static void GL_APIENTRY _es_Fogx(GLenum pname, GLfixed param)
1128 {
1129     GLfloat converted_param;
1130     int convert_param_value = 1;
1131
1132     switch(pname) {
1133         case GL_FOG_MODE:
1134             if (param != GL_EXP && param != GL_EXP2 && param != GL_LINEAR) {
1135                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogx(pname=0x%x)", pname);
1136                 return;
1137             }
1138             convert_param_value = 0;
1139             break;
1140         case GL_FOG_DENSITY:
1141         case GL_FOG_START:
1142         case GL_FOG_END:
1143             break;
1144         default:
1145             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogx(pname=0x%x)", pname);
1146             return;
1147     }
1148
1149     if (convert_param_value) {
1150         converted_param = (GLfloat) (param / 65536.0f);
1151     } else {
1152         converted_param = (GLfloat) param;
1153     }
1154
1155     _mesa_Fogf(pname, converted_param);
1156 }
1157
1158 extern void GL_APIENTRY _mesa_Fogfv(GLenum pname, GLfloat const * params);
1159 static void GL_APIENTRY _es_Fogxv(GLenum pname, const GLfixed *params)
1160 {
1161     register unsigned int i;
1162     unsigned int n_params = 4;
1163     GLfloat converted_params[4];
1164     int convert_params_value = 1;
1165
1166     switch(pname) {
1167         case GL_FOG_MODE:
1168             if (params[0] != GL_EXP && params[0] != GL_EXP2 && params[0] != GL_LINEAR) {
1169                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogxv(pname=0x%x)", pname);
1170                 return;
1171             }
1172             convert_params_value = 0;
1173             n_params = 1;
1174             break;
1175         case GL_FOG_COLOR:
1176             n_params = 4;
1177             break;
1178         case GL_FOG_DENSITY:
1179         case GL_FOG_START:
1180         case GL_FOG_END:
1181             n_params = 1;
1182             break;
1183         default:
1184             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogxv(pname=0x%x)", pname);
1185             return;
1186     }
1187
1188     if (convert_params_value) {
1189         for (i = 0; i < n_params; i++) {
1190             converted_params[i] = (GLfloat) (params[i] / 65536.0f);
1191         }
1192     } else {
1193         for (i = 0; i < n_params; i++) {
1194             converted_params[i] = (GLfloat) params[i];
1195         }
1196     }
1197
1198     _mesa_Fogfv(pname, converted_params);
1199 }
1200
1201 extern void GL_APIENTRY _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
1202 static void GL_APIENTRY _es_FramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
1203 {
1204     switch(target) {
1205         case GL_FRAMEBUFFER_OES:
1206             break;
1207         default:
1208             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbufferOES(target=0x%x)", target);
1209             return;
1210     }
1211     switch(attachment) {
1212         case GL_COLOR_ATTACHMENT0_OES:
1213         case GL_DEPTH_ATTACHMENT_OES:
1214         case GL_STENCIL_ATTACHMENT_OES:
1215             break;
1216         default:
1217             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbufferOES(attachment=0x%x)", attachment);
1218             return;
1219     }
1220     switch(renderbuffertarget) {
1221         case GL_RENDERBUFFER_OES:
1222             break;
1223         default:
1224             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbufferOES(renderbuffertarget=0x%x)", renderbuffertarget);
1225             return;
1226     }
1227
1228     _mesa_FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer);
1229 }
1230
1231 extern void GL_APIENTRY _mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1232 static void GL_APIENTRY _es_FramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
1233 {
1234     switch(target) {
1235         case GL_FRAMEBUFFER_OES:
1236             break;
1237         default:
1238             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture2DOES(target=0x%x)", target);
1239             return;
1240     }
1241     switch(attachment) {
1242         case GL_COLOR_ATTACHMENT0_OES:
1243         case GL_DEPTH_ATTACHMENT_OES:
1244         case GL_STENCIL_ATTACHMENT_OES:
1245             break;
1246         default:
1247             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture2DOES(attachment=0x%x)", attachment);
1248             return;
1249     }
1250     switch(textarget) {
1251         case GL_TEXTURE_2D:
1252         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
1253         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
1254         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
1255         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
1256         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
1257         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
1258             break;
1259         default:
1260             _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glFramebufferTexture2DOES(textarget=0x%x)", textarget);
1261             return;
1262     }
1263
1264     _mesa_FramebufferTexture2DEXT(target, attachment, textarget, texture, level);
1265 }
1266
1267 extern void GL_APIENTRY _mesa_FrontFace(GLenum mode);
1268 static void GL_APIENTRY _es_FrontFace(GLenum mode)
1269 {
1270     switch(mode) {
1271         case GL_CW:
1272         case GL_CCW:
1273             break;
1274         default:
1275             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFrontFace(mode=0x%x)", mode);
1276             return;
1277     }
1278
1279     _mesa_FrontFace(mode);
1280 }
1281
1282 extern void GL_APIENTRY _mesa_Frustum(GLdouble  left, GLdouble  right, GLdouble  bottom, GLdouble  top, GLdouble  zNear, GLdouble  zFar);
1283 static void GL_APIENTRY _es_Frustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
1284 {
1285     GLdouble converted_left;
1286     GLdouble converted_right;
1287     GLdouble converted_bottom;
1288     GLdouble converted_top;
1289     GLdouble converted_zNear;
1290     GLdouble converted_zFar;
1291
1292     converted_left = (GLdouble) (left);
1293     converted_right = (GLdouble) (right);
1294     converted_bottom = (GLdouble) (bottom);
1295     converted_top = (GLdouble) (top);
1296     converted_zNear = (GLdouble) (zNear);
1297     converted_zFar = (GLdouble) (zFar);
1298
1299     _mesa_Frustum(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar);
1300 }
1301
1302 extern void GL_APIENTRY _mesa_Frustum(GLdouble  left, GLdouble  right, GLdouble  bottom, GLdouble  top, GLdouble  zNear, GLdouble  zFar);
1303 static void GL_APIENTRY _es_Frustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
1304 {
1305     GLdouble converted_left;
1306     GLdouble converted_right;
1307     GLdouble converted_bottom;
1308     GLdouble converted_top;
1309     GLdouble converted_zNear;
1310     GLdouble converted_zFar;
1311
1312     converted_left = (GLdouble) (left / 65536.0);
1313     converted_right = (GLdouble) (right / 65536.0);
1314     converted_bottom = (GLdouble) (bottom / 65536.0);
1315     converted_top = (GLdouble) (top / 65536.0);
1316     converted_zNear = (GLdouble) (zNear / 65536.0);
1317     converted_zFar = (GLdouble) (zFar / 65536.0);
1318
1319     _mesa_Frustum(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar);
1320 }
1321
1322 extern void GL_APIENTRY _mesa_GenBuffersARB(GLsizei n, GLuint * buffer);
1323 #define _es_GenBuffers _mesa_GenBuffersARB
1324
1325 extern void GL_APIENTRY _mesa_GenFramebuffersEXT(GLsizei n, GLuint * ids);
1326 #define _es_GenFramebuffersOES _mesa_GenFramebuffersEXT
1327
1328 extern void GL_APIENTRY _mesa_GenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers);
1329 #define _es_GenRenderbuffersOES _mesa_GenRenderbuffersEXT
1330
1331 extern void GL_APIENTRY _mesa_GenTextures(GLsizei n, GLuint * textures);
1332 #define _es_GenTextures _mesa_GenTextures
1333
1334 extern void GL_APIENTRY _mesa_GenerateMipmapEXT(GLenum target);
1335 static void GL_APIENTRY _es_GenerateMipmapOES(GLenum target)
1336 {
1337     switch(target) {
1338         case GL_TEXTURE_2D:
1339         case GL_TEXTURE_CUBE_MAP_OES:
1340             break;
1341         default:
1342             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGenerateMipmapOES(target=0x%x)", target);
1343             return;
1344     }
1345
1346     _mesa_GenerateMipmapEXT(target);
1347 }
1348
1349 extern void GL_APIENTRY _mesa_GetBooleanv(GLenum pname, GLboolean * params);
1350 #define _es_GetBooleanv _mesa_GetBooleanv
1351
1352 extern void GL_APIENTRY _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint * params);
1353 static void GL_APIENTRY _es_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
1354 {
1355     switch(target) {
1356         case GL_ARRAY_BUFFER:
1357         case GL_ELEMENT_ARRAY_BUFFER:
1358             break;
1359         default:
1360             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(target=0x%x)", target);
1361             return;
1362     }
1363     switch(pname) {
1364         case GL_BUFFER_SIZE:
1365         case GL_BUFFER_USAGE:
1366         case GL_BUFFER_ACCESS_OES:
1367         case GL_BUFFER_MAPPED_OES:
1368             break;
1369         default:
1370             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(pname=0x%x)", pname);
1371             return;
1372     }
1373
1374     _mesa_GetBufferParameterivARB(target, pname, params);
1375 }
1376
1377 extern void GL_APIENTRY _mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid ** params);
1378 static void GL_APIENTRY _es_GetBufferPointervOES(GLenum target, GLenum pname, GLvoid **params)
1379 {
1380     switch(target) {
1381         case GL_ARRAY_BUFFER:
1382         case GL_ELEMENT_ARRAY_BUFFER:
1383             break;
1384         default:
1385             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(target=0x%x)", target);
1386             return;
1387     }
1388     switch(pname) {
1389         case GL_BUFFER_MAP_POINTER_OES:
1390             break;
1391         default:
1392             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(pname=0x%x)", pname);
1393             return;
1394     }
1395
1396     _mesa_GetBufferPointervARB(target, pname, params);
1397 }
1398
1399 extern void GL_APIENTRY _mesa_GetClipPlane(GLenum plane, GLdouble * equation);
1400 static void GL_APIENTRY _es_GetClipPlanef(GLenum plane, GLfloat *equation)
1401 {
1402     register unsigned int i;
1403     unsigned int n_equation = 4;
1404     GLdouble converted_equation[4];
1405
1406     switch(plane) {
1407         case GL_CLIP_PLANE0:
1408         case GL_CLIP_PLANE1:
1409         case GL_CLIP_PLANE2:
1410         case GL_CLIP_PLANE3:
1411         case GL_CLIP_PLANE4:
1412         case GL_CLIP_PLANE5:
1413             break;
1414         default:
1415             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetClipPlanef(plane=0x%x)", plane);
1416             return;
1417     }
1418
1419     _mesa_GetClipPlane(plane, converted_equation);
1420     for (i = 0; i < n_equation; i++) {
1421         equation[i] = (GLfloat) (converted_equation[i]);
1422     }
1423 }
1424
1425 extern void GL_APIENTRY _mesa_GetClipPlane(GLenum plane, GLdouble * equation);
1426 static void GL_APIENTRY _es_GetClipPlanex(GLenum plane, GLfixed *equation)
1427 {
1428     register unsigned int i;
1429     unsigned int n_equation = 4;
1430     GLdouble converted_equation[4];
1431
1432     switch(plane) {
1433         case GL_CLIP_PLANE0:
1434         case GL_CLIP_PLANE1:
1435         case GL_CLIP_PLANE2:
1436         case GL_CLIP_PLANE3:
1437         case GL_CLIP_PLANE4:
1438         case GL_CLIP_PLANE5:
1439             break;
1440         default:
1441             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetClipPlanex(plane=0x%x)", plane);
1442             return;
1443     }
1444
1445     _mesa_GetClipPlane(plane, converted_equation);
1446     for (i = 0; i < n_equation; i++) {
1447         equation[i] = (GLfixed) (converted_equation[i] * 65536);
1448     }
1449 }
1450
1451 extern GLenum GL_APIENTRY _mesa_GetError(void);
1452 #define _es_GetError _mesa_GetError
1453
1454 extern void GL_APIENTRY _mesa_GetFixedv(GLenum pname, GLfixed * params);
1455 #define _es_GetFixedv _mesa_GetFixedv
1456
1457 extern void GL_APIENTRY _mesa_GetFloatv(GLenum pname, GLfloat * params);
1458 #define _es_GetFloatv _mesa_GetFloatv
1459
1460 extern void GL_APIENTRY _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params);
1461 static void GL_APIENTRY _es_GetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params)
1462 {
1463     switch(target) {
1464         case GL_FRAMEBUFFER_OES:
1465             break;
1466         default:
1467             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameterivOES(target=0x%x)", target);
1468             return;
1469     }
1470     switch(pname) {
1471         case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES: /* size 1 */
1472         case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES: /* size 1 */
1473         case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES: /* size 1 */
1474         case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES: /* size 1 */
1475             break;
1476         default:
1477             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameterivOES(pname=0x%x)", pname);
1478             return;
1479     }
1480
1481     _mesa_GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params);
1482 }
1483
1484 extern void GL_APIENTRY _mesa_GetIntegerv(GLenum pname, GLint * params);
1485 #define _es_GetIntegerv _mesa_GetIntegerv
1486
1487 extern void GL_APIENTRY _mesa_GetLightfv(GLenum light, GLenum pname, GLfloat * params);
1488 static void GL_APIENTRY _es_GetLightfv(GLenum light, GLenum pname, GLfloat *params)
1489 {
1490     switch(light) {
1491         case GL_LIGHT0:
1492         case GL_LIGHT1:
1493         case GL_LIGHT2:
1494         case GL_LIGHT3:
1495         case GL_LIGHT4:
1496         case GL_LIGHT5:
1497         case GL_LIGHT6:
1498         case GL_LIGHT7:
1499             break;
1500         default:
1501             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightfv(light=0x%x)", light);
1502             return;
1503     }
1504     switch(pname) {
1505         case GL_AMBIENT: /* size 4 */
1506         case GL_DIFFUSE: /* size 4 */
1507         case GL_SPECULAR: /* size 4 */
1508         case GL_POSITION: /* size 4 */
1509         case GL_SPOT_DIRECTION: /* size 3 */
1510         case GL_SPOT_EXPONENT: /* size 1 */
1511         case GL_SPOT_CUTOFF: /* size 1 */
1512         case GL_CONSTANT_ATTENUATION: /* size 1 */
1513         case GL_LINEAR_ATTENUATION: /* size 1 */
1514         case GL_QUADRATIC_ATTENUATION: /* size 1 */
1515             break;
1516         default:
1517             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightfv(pname=0x%x)", pname);
1518             return;
1519     }
1520
1521     _mesa_GetLightfv(light, pname, params);
1522 }
1523
1524 extern void GL_APIENTRY _mesa_GetLightfv(GLenum light, GLenum pname, GLfloat * params);
1525 static void GL_APIENTRY _es_GetLightxv(GLenum light, GLenum pname, GLfixed *params)
1526 {
1527     register unsigned int i;
1528     unsigned int n_params = 4;
1529     GLfloat converted_params[4];
1530
1531     switch(light) {
1532         case GL_LIGHT0:
1533         case GL_LIGHT1:
1534         case GL_LIGHT2:
1535         case GL_LIGHT3:
1536         case GL_LIGHT4:
1537         case GL_LIGHT5:
1538         case GL_LIGHT6:
1539         case GL_LIGHT7:
1540             break;
1541         default:
1542             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightxv(light=0x%x)", light);
1543             return;
1544     }
1545     switch(pname) {
1546         case GL_AMBIENT:
1547         case GL_DIFFUSE:
1548         case GL_SPECULAR:
1549         case GL_POSITION:
1550             n_params = 4;
1551             break;
1552         case GL_SPOT_DIRECTION:
1553             n_params = 3;
1554             break;
1555         case GL_SPOT_EXPONENT:
1556         case GL_SPOT_CUTOFF:
1557         case GL_CONSTANT_ATTENUATION:
1558         case GL_LINEAR_ATTENUATION:
1559         case GL_QUADRATIC_ATTENUATION:
1560             n_params = 1;
1561             break;
1562         default:
1563             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightxv(pname=0x%x)", pname);
1564             return;
1565     }
1566
1567     _mesa_GetLightfv(light, pname, converted_params);
1568     for (i = 0; i < n_params; i++) {
1569         params[i] = (GLint) (converted_params[i] * 65536);
1570     }
1571 }
1572
1573 extern void GL_APIENTRY _mesa_GetMaterialfv(GLenum face, GLenum pname, GLfloat * params);
1574 static void GL_APIENTRY _es_GetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
1575 {
1576     switch(face) {
1577         case GL_FRONT:
1578         case GL_BACK:
1579             break;
1580         default:
1581             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialfv(face=0x%x)", face);
1582             return;
1583     }
1584     switch(pname) {
1585         case GL_SHININESS: /* size 1 */
1586         case GL_AMBIENT: /* size 4 */
1587         case GL_DIFFUSE: /* size 4 */
1588         case GL_AMBIENT_AND_DIFFUSE: /* size 4 */
1589         case GL_SPECULAR: /* size 4 */
1590         case GL_EMISSION: /* size 4 */
1591             break;
1592         default:
1593             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialfv(pname=0x%x)", pname);
1594             return;
1595     }
1596
1597     _mesa_GetMaterialfv(face, pname, params);
1598 }
1599
1600 extern void GL_APIENTRY _mesa_GetMaterialfv(GLenum face, GLenum pname, GLfloat * params);
1601 static void GL_APIENTRY _es_GetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
1602 {
1603     register unsigned int i;
1604     unsigned int n_params = 4;
1605     GLfloat converted_params[4];
1606
1607     switch(face) {
1608         case GL_FRONT:
1609         case GL_BACK:
1610             break;
1611         default:
1612             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialxv(face=0x%x)", face);
1613             return;
1614     }
1615     switch(pname) {
1616         case GL_SHININESS:
1617             n_params = 1;
1618             break;
1619         case GL_AMBIENT:
1620         case GL_DIFFUSE:
1621         case GL_AMBIENT_AND_DIFFUSE:
1622         case GL_SPECULAR:
1623         case GL_EMISSION:
1624             n_params = 4;
1625             break;
1626         default:
1627             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialxv(pname=0x%x)", pname);
1628             return;
1629     }
1630
1631     _mesa_GetMaterialfv(face, pname, converted_params);
1632     for (i = 0; i < n_params; i++) {
1633         params[i] = (GLint) (converted_params[i] * 65536);
1634     }
1635 }
1636
1637 extern void GL_APIENTRY _mesa_GetPointerv(GLenum pname, GLvoid ** params);
1638 static void GL_APIENTRY _es_GetPointerv(GLenum pname, GLvoid **params)
1639 {
1640     switch(pname) {
1641         case GL_VERTEX_ARRAY_POINTER:
1642         case GL_NORMAL_ARRAY_POINTER:
1643         case GL_COLOR_ARRAY_POINTER:
1644         case GL_TEXTURE_COORD_ARRAY_POINTER:
1645         case GL_MATRIX_INDEX_ARRAY_POINTER_OES:
1646         case GL_WEIGHT_ARRAY_POINTER_OES:
1647         case GL_POINT_SIZE_ARRAY_POINTER_OES:
1648             break;
1649         default:
1650             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetPointerv(pname=0x%x)", pname);
1651             return;
1652     }
1653
1654     _mesa_GetPointerv(pname, params);
1655 }
1656
1657 extern void GL_APIENTRY _mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params);
1658 static void GL_APIENTRY _es_GetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params)
1659 {
1660     switch(target) {
1661         case GL_RENDERBUFFER_OES:
1662             break;
1663         default:
1664             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameterivOES(target=0x%x)", target);
1665             return;
1666     }
1667     switch(pname) {
1668         case GL_RENDERBUFFER_WIDTH_OES: /* size 1 */
1669         case GL_RENDERBUFFER_HEIGHT_OES: /* size 1 */
1670         case GL_RENDERBUFFER_INTERNAL_FORMAT_OES: /* size 1 */
1671         case GL_RENDERBUFFER_RED_SIZE_OES: /* size 1 */
1672         case GL_RENDERBUFFER_GREEN_SIZE_OES: /* size 1 */
1673         case GL_RENDERBUFFER_BLUE_SIZE_OES: /* size 1 */
1674         case GL_RENDERBUFFER_ALPHA_SIZE_OES: /* size 1 */
1675         case GL_RENDERBUFFER_DEPTH_SIZE_OES: /* size 1 */
1676         case GL_RENDERBUFFER_STENCIL_SIZE_OES: /* size 1 */
1677             break;
1678         default:
1679             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameterivOES(pname=0x%x)", pname);
1680             return;
1681     }
1682
1683     _mesa_GetRenderbufferParameterivEXT(target, pname, params);
1684 }
1685
1686 extern const GLubyte * GL_APIENTRY _mesa_GetString(GLenum name);
1687 static const GLubyte * GL_APIENTRY _es_GetString(GLenum name)
1688 {
1689     switch(name) {
1690         case GL_VENDOR:
1691         case GL_RENDERER:
1692         case GL_VERSION:
1693         case GL_EXTENSIONS:
1694             break;
1695         default:
1696             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetString(name=0x%x)", name);
1697             return (const GLubyte *) 0;
1698     }
1699
1700     return _mesa_GetString(name);
1701 }
1702
1703 extern void GL_APIENTRY _mesa_GetTexEnvfv(GLenum target, GLenum pname, GLfloat * params);
1704 static void GL_APIENTRY _es_GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
1705 {
1706     switch(target) {
1707         case GL_POINT_SPRITE_OES:
1708             if (pname != GL_COORD_REPLACE_OES) {
1709                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target);
1710                 return;
1711             }
1712             break;
1713         case GL_TEXTURE_FILTER_CONTROL_EXT:
1714             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
1715                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target);
1716                 return;
1717             }
1718             break;
1719         case GL_TEXTURE_ENV:
1720             if (pname != GL_TEXTURE_ENV_COLOR && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA) {
1721                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target);
1722                 return;
1723             }
1724             break;
1725         default:
1726             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target);
1727             return;
1728     }
1729     switch(pname) {
1730         case GL_COORD_REPLACE_OES: /* size 1 */
1731             break;
1732         case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */
1733         case GL_TEXTURE_ENV_COLOR: /* size 4 */
1734         case GL_RGB_SCALE: /* size 1 */
1735         case GL_ALPHA_SCALE: /* size 1 */
1736             break;
1737         case GL_TEXTURE_ENV_MODE: /* size 1 */
1738         case GL_COMBINE_RGB: /* size 1 */
1739         case GL_COMBINE_ALPHA: /* size 1 */
1740         case GL_SRC0_RGB: /* size 1 */
1741         case GL_SRC1_RGB: /* size 1 */
1742         case GL_SRC2_RGB: /* size 1 */
1743         case GL_SRC0_ALPHA: /* size 1 */
1744         case GL_SRC1_ALPHA: /* size 1 */
1745         case GL_SRC2_ALPHA: /* size 1 */
1746         case GL_OPERAND0_RGB: /* size 1 */
1747         case GL_OPERAND1_RGB: /* size 1 */
1748         case GL_OPERAND2_RGB: /* size 1 */
1749         case GL_OPERAND0_ALPHA: /* size 1 */
1750         case GL_OPERAND1_ALPHA: /* size 1 */
1751         case GL_OPERAND2_ALPHA: /* size 1 */
1752             break;
1753         default:
1754             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(pname=0x%x)", pname);
1755             return;
1756     }
1757
1758     _mesa_GetTexEnvfv(target, pname, params);
1759 }
1760
1761 extern void GL_APIENTRY _mesa_GetTexEnviv(GLenum target, GLenum pname, GLint * params);
1762 static void GL_APIENTRY _es_GetTexEnviv(GLenum target, GLenum pname, GLint *params)
1763 {
1764     switch(target) {
1765         case GL_POINT_SPRITE_OES:
1766             if (pname != GL_COORD_REPLACE_OES) {
1767                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target);
1768                 return;
1769             }
1770             break;
1771         case GL_TEXTURE_FILTER_CONTROL_EXT:
1772             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
1773                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target);
1774                 return;
1775             }
1776             break;
1777         case GL_TEXTURE_ENV:
1778             if (pname != GL_TEXTURE_ENV_COLOR && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA) {
1779                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target);
1780                 return;
1781             }
1782             break;
1783         default:
1784             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target);
1785             return;
1786     }
1787     switch(pname) {
1788         case GL_COORD_REPLACE_OES: /* size 1 */
1789             break;
1790         case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */
1791         case GL_TEXTURE_ENV_COLOR: /* size 4 */
1792         case GL_RGB_SCALE: /* size 1 */
1793         case GL_ALPHA_SCALE: /* size 1 */
1794             break;
1795         case GL_TEXTURE_ENV_MODE: /* size 1 */
1796         case GL_COMBINE_RGB: /* size 1 */
1797         case GL_COMBINE_ALPHA: /* size 1 */
1798         case GL_SRC0_RGB: /* size 1 */
1799         case GL_SRC1_RGB: /* size 1 */
1800         case GL_SRC2_RGB: /* size 1 */
1801         case GL_SRC0_ALPHA: /* size 1 */
1802         case GL_SRC1_ALPHA: /* size 1 */
1803         case GL_SRC2_ALPHA: /* size 1 */
1804         case GL_OPERAND0_RGB: /* size 1 */
1805         case GL_OPERAND1_RGB: /* size 1 */
1806         case GL_OPERAND2_RGB: /* size 1 */
1807         case GL_OPERAND0_ALPHA: /* size 1 */
1808         case GL_OPERAND1_ALPHA: /* size 1 */
1809         case GL_OPERAND2_ALPHA: /* size 1 */
1810             break;
1811         default:
1812             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(pname=0x%x)", pname);
1813             return;
1814     }
1815
1816     _mesa_GetTexEnviv(target, pname, params);
1817 }
1818
1819 extern void GL_APIENTRY _mesa_GetTexEnvfv(GLenum target, GLenum pname, GLfloat * params);
1820 static void GL_APIENTRY _es_GetTexEnvxv(GLenum target, GLenum pname, GLfixed *params)
1821 {
1822     register unsigned int i;
1823     unsigned int n_params = 4;
1824     GLfloat converted_params[4];
1825     int convert_params_value = 1;
1826
1827     switch(target) {
1828         case GL_POINT_SPRITE_OES:
1829             if (pname != GL_COORD_REPLACE_OES) {
1830                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target);
1831                 return;
1832             }
1833             break;
1834         case GL_TEXTURE_FILTER_CONTROL_EXT:
1835             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
1836                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target);
1837                 return;
1838             }
1839             break;
1840         case GL_TEXTURE_ENV:
1841             if (pname != GL_TEXTURE_ENV_COLOR && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA) {
1842                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target);
1843                 return;
1844             }
1845             break;
1846         default:
1847             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target);
1848             return;
1849     }
1850     switch(pname) {
1851         case GL_COORD_REPLACE_OES:
1852             convert_params_value = 0;
1853             n_params = 1;
1854             break;
1855         case GL_TEXTURE_LOD_BIAS_EXT:
1856             n_params = 1;
1857             break;
1858         case GL_TEXTURE_ENV_COLOR:
1859             n_params = 4;
1860             break;
1861         case GL_RGB_SCALE:
1862         case GL_ALPHA_SCALE:
1863             n_params = 1;
1864             break;
1865         case GL_TEXTURE_ENV_MODE:
1866         case GL_COMBINE_RGB:
1867         case GL_COMBINE_ALPHA:
1868         case GL_SRC0_RGB:
1869         case GL_SRC1_RGB:
1870         case GL_SRC2_RGB:
1871         case GL_SRC0_ALPHA:
1872         case GL_SRC1_ALPHA:
1873         case GL_SRC2_ALPHA:
1874         case GL_OPERAND0_RGB:
1875         case GL_OPERAND1_RGB:
1876         case GL_OPERAND2_RGB:
1877         case GL_OPERAND0_ALPHA:
1878         case GL_OPERAND1_ALPHA:
1879         case GL_OPERAND2_ALPHA:
1880             convert_params_value = 0;
1881             n_params = 1;
1882             break;
1883         default:
1884             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(pname=0x%x)", pname);
1885             return;
1886     }
1887
1888     _mesa_GetTexEnvfv(target, pname, converted_params);
1889     if (convert_params_value) {
1890         for (i = 0; i < n_params; i++) {
1891             params[i] = (GLint) (converted_params[i] * 65536);
1892         }
1893     } else {
1894         for (i = 0; i < n_params; i++) {
1895             params[i] = (GLfixed) converted_params[i];
1896         }
1897     }
1898 }
1899
1900 /* this function is special and is defined elsewhere */
1901 extern void GL_APIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params);
1902 static void GL_APIENTRY _check_GetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
1903 {
1904     switch(coord) {
1905         case GL_TEXTURE_GEN_STR_OES:
1906             break;
1907         default:
1908             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenfvOES(coord=0x%x)", coord);
1909             return;
1910     }
1911     switch(pname) {
1912         case GL_TEXTURE_GEN_MODE_OES: /* size 1 */
1913             break;
1914         default:
1915             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenfvOES(pname=0x%x)", pname);
1916             return;
1917     }
1918
1919     _es_GetTexGenfv(coord, pname, params);
1920 }
1921
1922 /* this function is special and is defined elsewhere */
1923 extern void GL_APIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params);
1924 static void GL_APIENTRY _check_GetTexGenivOES(GLenum coord, GLenum pname, GLint *params)
1925 {
1926     register unsigned int i;
1927     unsigned int n_params = 1;
1928     GLfloat converted_params[1];
1929
1930     switch(coord) {
1931         case GL_TEXTURE_GEN_STR_OES:
1932             break;
1933         default:
1934             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenivOES(coord=0x%x)", coord);
1935             return;
1936     }
1937     switch(pname) {
1938         case GL_TEXTURE_GEN_MODE_OES:
1939             n_params = 1;
1940             break;
1941         default:
1942             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenivOES(pname=0x%x)", pname);
1943             return;
1944     }
1945
1946     _es_GetTexGenfv(coord, pname, converted_params);
1947     for (i = 0; i < n_params; i++) {
1948         params[i] = (GLfloat) converted_params[i];
1949     }
1950 }
1951
1952 /* this function is special and is defined elsewhere */
1953 extern void GL_APIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params);
1954 static void GL_APIENTRY _check_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params)
1955 {
1956     register unsigned int i;
1957     unsigned int n_params = 1;
1958     GLfloat converted_params[1];
1959
1960     switch(coord) {
1961         case GL_TEXTURE_GEN_STR_OES:
1962             break;
1963         default:
1964             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenxvOES(coord=0x%x)", coord);
1965             return;
1966     }
1967     switch(pname) {
1968         case GL_TEXTURE_GEN_MODE_OES:
1969             n_params = 1;
1970             break;
1971         default:
1972             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenxvOES(pname=0x%x)", pname);
1973             return;
1974     }
1975
1976     _es_GetTexGenfv(coord, pname, converted_params);
1977     for (i = 0; i < n_params; i++) {
1978         params[i] = (GLfloat) converted_params[i];
1979     }
1980 }
1981
1982 extern void GL_APIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params);
1983 static void GL_APIENTRY _es_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
1984 {
1985     switch(target) {
1986         case GL_TEXTURE_2D:
1987         case GL_TEXTURE_CUBE_MAP_OES:
1988             break;
1989         default:
1990             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(target=0x%x)", target);
1991             return;
1992     }
1993     switch(pname) {
1994         case GL_TEXTURE_WRAP_S: /* size 1 */
1995         case GL_TEXTURE_WRAP_T: /* size 1 */
1996         case GL_TEXTURE_MIN_FILTER: /* size 1 */
1997         case GL_TEXTURE_MAG_FILTER: /* size 1 */
1998         case GL_GENERATE_MIPMAP: /* size 1 */
1999             break;
2000         case GL_TEXTURE_CROP_RECT_OES: /* size 4 */
2001             break;
2002         default:
2003             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(pname=0x%x)", pname);
2004             return;
2005     }
2006
2007     _mesa_GetTexParameterfv(target, pname, params);
2008 }
2009
2010 extern void GL_APIENTRY _mesa_GetTexParameteriv(GLenum target, GLenum pname, GLint * params);
2011 static void GL_APIENTRY _es_GetTexParameteriv(GLenum target, GLenum pname, GLint *params)
2012 {
2013     switch(target) {
2014         case GL_TEXTURE_2D:
2015         case GL_TEXTURE_CUBE_MAP_OES:
2016             break;
2017         default:
2018             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(target=0x%x)", target);
2019             return;
2020     }
2021     switch(pname) {
2022         case GL_TEXTURE_WRAP_S: /* size 1 */
2023         case GL_TEXTURE_WRAP_T: /* size 1 */
2024         case GL_TEXTURE_MIN_FILTER: /* size 1 */
2025         case GL_TEXTURE_MAG_FILTER: /* size 1 */
2026         case GL_GENERATE_MIPMAP: /* size 1 */
2027             break;
2028         case GL_TEXTURE_CROP_RECT_OES: /* size 4 */
2029             break;
2030         default:
2031             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(pname=0x%x)", pname);
2032             return;
2033     }
2034
2035     _mesa_GetTexParameteriv(target, pname, params);
2036 }
2037
2038 extern void GL_APIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params);
2039 static void GL_APIENTRY _es_GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
2040 {
2041     register unsigned int i;
2042     unsigned int n_params = 4;
2043     GLfloat converted_params[4];
2044     int convert_params_value = 1;
2045
2046     switch(target) {
2047         case GL_TEXTURE_2D:
2048         case GL_TEXTURE_CUBE_MAP_OES:
2049             break;
2050         default:
2051             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterxv(target=0x%x)", target);
2052             return;
2053     }
2054     switch(pname) {
2055         case GL_TEXTURE_WRAP_S:
2056         case GL_TEXTURE_WRAP_T:
2057         case GL_TEXTURE_MIN_FILTER:
2058         case GL_TEXTURE_MAG_FILTER:
2059         case GL_GENERATE_MIPMAP:
2060             convert_params_value = 0;
2061             n_params = 1;
2062             break;
2063         case GL_TEXTURE_CROP_RECT_OES:
2064             n_params = 4;
2065             break;
2066         default:
2067             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterxv(pname=0x%x)", pname);
2068             return;
2069     }
2070
2071     _mesa_GetTexParameterfv(target, pname, converted_params);
2072     if (convert_params_value) {
2073         for (i = 0; i < n_params; i++) {
2074             params[i] = (GLint) (converted_params[i] * 65536);
2075         }
2076     } else {
2077         for (i = 0; i < n_params; i++) {
2078             params[i] = (GLfixed) converted_params[i];
2079         }
2080     }
2081 }
2082
2083 extern void GL_APIENTRY _mesa_Hint(GLenum target, GLenum mode);
2084 static void GL_APIENTRY _es_Hint(GLenum target, GLenum mode)
2085 {
2086     switch(target) {
2087         case GL_FOG_HINT:
2088         case GL_LINE_SMOOTH_HINT:
2089         case GL_PERSPECTIVE_CORRECTION_HINT:
2090         case GL_POINT_SMOOTH_HINT:
2091         case GL_GENERATE_MIPMAP_HINT:
2092             break;
2093         default:
2094             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(target=0x%x)", target);
2095             return;
2096     }
2097     switch(mode) {
2098         case GL_FASTEST:
2099         case GL_NICEST:
2100         case GL_DONT_CARE:
2101             break;
2102         default:
2103             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(mode=0x%x)", mode);
2104             return;
2105     }
2106
2107     _mesa_Hint(target, mode);
2108 }
2109
2110 extern GLboolean GL_APIENTRY _mesa_IsBufferARB(GLuint buffer);
2111 #define _es_IsBuffer _mesa_IsBufferARB
2112
2113 extern GLboolean GL_APIENTRY _mesa_IsEnabled(GLenum cap);
2114 static GLboolean GL_APIENTRY _es_IsEnabled(GLenum cap)
2115 {
2116     switch(cap) {
2117         case GL_NORMALIZE:
2118         case GL_RESCALE_NORMAL:
2119         case GL_CLIP_PLANE0:
2120         case GL_CLIP_PLANE1:
2121         case GL_CLIP_PLANE2:
2122         case GL_CLIP_PLANE3:
2123         case GL_CLIP_PLANE4:
2124         case GL_CLIP_PLANE5:
2125         case GL_FOG:
2126         case GL_LIGHTING:
2127         case GL_COLOR_MATERIAL:
2128         case GL_LIGHT0:
2129         case GL_LIGHT1:
2130         case GL_LIGHT2:
2131         case GL_LIGHT3:
2132         case GL_LIGHT4:
2133         case GL_LIGHT5:
2134         case GL_LIGHT6:
2135         case GL_LIGHT7:
2136         case GL_POINT_SMOOTH:
2137         case GL_LINE_SMOOTH:
2138         case GL_CULL_FACE:
2139         case GL_POLYGON_OFFSET_FILL:
2140         case GL_MULTISAMPLE:
2141         case GL_SAMPLE_ALPHA_TO_COVERAGE:
2142         case GL_SAMPLE_ALPHA_TO_ONE:
2143         case GL_SAMPLE_COVERAGE:
2144         case GL_TEXTURE_2D:
2145         case GL_SCISSOR_TEST:
2146         case GL_ALPHA_TEST:
2147         case GL_STENCIL_TEST:
2148         case GL_DEPTH_TEST:
2149         case GL_BLEND:
2150         case GL_DITHER:
2151         case GL_COLOR_LOGIC_OP:
2152         case GL_POINT_SPRITE_OES:
2153         case GL_TEXTURE_CUBE_MAP_OES:
2154         case GL_TEXTURE_GEN_STR_OES:
2155         case GL_VERTEX_ARRAY:
2156         case GL_NORMAL_ARRAY:
2157         case GL_COLOR_ARRAY:
2158         case GL_TEXTURE_COORD_ARRAY:
2159         case GL_MATRIX_INDEX_ARRAY_OES:
2160         case GL_WEIGHT_ARRAY_OES:
2161         case GL_POINT_SIZE_ARRAY_OES:
2162             break;
2163         default:
2164             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glIsEnabled(cap=0x%x)", cap);
2165             return GL_FALSE;
2166     }
2167
2168     return _mesa_IsEnabled(cap);
2169 }
2170
2171 extern GLboolean GL_APIENTRY _mesa_IsFramebufferEXT(GLuint framebuffer);
2172 #define _es_IsFramebufferOES _mesa_IsFramebufferEXT
2173
2174 extern GLboolean GL_APIENTRY _mesa_IsRenderbufferEXT(GLuint renderbuffer);
2175 #define _es_IsRenderbufferOES _mesa_IsRenderbufferEXT
2176
2177 extern GLboolean GL_APIENTRY _mesa_IsTexture(GLuint texture);
2178 #define _es_IsTexture _mesa_IsTexture
2179
2180 extern void GL_APIENTRY _mesa_LightModelf(GLenum pname, GLfloat param);
2181 static void GL_APIENTRY _es_LightModelf(GLenum pname, GLfloat param)
2182 {
2183     switch(pname) {
2184         case GL_LIGHT_MODEL_TWO_SIDE:
2185             if (param != GL_TRUE && param != GL_FALSE) {
2186                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelf(pname=0x%x)", pname);
2187                 return;
2188             }
2189             break;
2190         default:
2191             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelf(pname=0x%x)", pname);
2192             return;
2193     }
2194
2195     _mesa_LightModelf(pname, param);
2196 }
2197
2198 extern void GL_APIENTRY _mesa_LightModelfv(GLenum pname, const GLfloat * params);
2199 static void GL_APIENTRY _es_LightModelfv(GLenum pname, const GLfloat *params)
2200 {
2201     switch(pname) {
2202         case GL_LIGHT_MODEL_AMBIENT: /* size 4 */
2203             break;
2204         case GL_LIGHT_MODEL_TWO_SIDE: /* size 1 */
2205             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
2206                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelfv(pname=0x%x)", pname);
2207                 return;
2208             }
2209             break;
2210         default:
2211             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelfv(pname=0x%x)", pname);
2212             return;
2213     }
2214
2215     _mesa_LightModelfv(pname, params);
2216 }
2217
2218 extern void GL_APIENTRY _mesa_LightModelf(GLenum pname, GLfloat  param);
2219 static void GL_APIENTRY _es_LightModelx(GLenum pname, GLfixed param)
2220 {
2221     GLfloat converted_param;
2222
2223     switch(pname) {
2224         case GL_LIGHT_MODEL_TWO_SIDE:
2225             if (param != GL_TRUE && param != GL_FALSE) {
2226                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelx(pname=0x%x)", pname);
2227                 return;
2228             }
2229             break;
2230         default:
2231             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelx(pname=0x%x)", pname);
2232             return;
2233     }
2234
2235     converted_param = (GLfloat) param;
2236
2237     _mesa_LightModelf(pname, converted_param);
2238 }
2239
2240 extern void GL_APIENTRY _mesa_LightModelfv(GLenum pname, GLfloat const * params);
2241 static void GL_APIENTRY _es_LightModelxv(GLenum pname, const GLfixed *params)
2242 {
2243     register unsigned int i;
2244     unsigned int n_params = 4;
2245     GLfloat converted_params[4];
2246     int convert_params_value = 1;
2247
2248     switch(pname) {
2249         case GL_LIGHT_MODEL_AMBIENT:
2250             n_params = 4;
2251             break;
2252         case GL_LIGHT_MODEL_TWO_SIDE:
2253             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
2254                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelxv(pname=0x%x)", pname);
2255                 return;
2256             }
2257             convert_params_value = 0;
2258             n_params = 1;
2259             break;
2260         default:
2261             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelxv(pname=0x%x)", pname);
2262             return;
2263     }
2264
2265     if (convert_params_value) {
2266         for (i = 0; i < n_params; i++) {
2267             converted_params[i] = (GLfloat) (params[i] / 65536.0f);
2268         }
2269     } else {
2270         for (i = 0; i < n_params; i++) {
2271             converted_params[i] = (GLfloat) params[i];
2272         }
2273     }
2274
2275     _mesa_LightModelfv(pname, converted_params);
2276 }
2277
2278 extern void GL_APIENTRY _mesa_Lightf(GLenum light, GLenum pname, GLfloat param);
2279 static void GL_APIENTRY _es_Lightf(GLenum light, GLenum pname, GLfloat param)
2280 {
2281     switch(light) {
2282         case GL_LIGHT0:
2283         case GL_LIGHT1:
2284         case GL_LIGHT2:
2285         case GL_LIGHT3:
2286         case GL_LIGHT4:
2287         case GL_LIGHT5:
2288         case GL_LIGHT6:
2289         case GL_LIGHT7:
2290             break;
2291         default:
2292             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightf(light=0x%x)", light);
2293             return;
2294     }
2295     switch(pname) {
2296         case GL_SPOT_EXPONENT:
2297         case GL_SPOT_CUTOFF:
2298         case GL_CONSTANT_ATTENUATION:
2299         case GL_LINEAR_ATTENUATION:
2300         case GL_QUADRATIC_ATTENUATION:
2301             break;
2302         default:
2303             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightf(pname=0x%x)", pname);
2304             return;
2305     }
2306
2307     _mesa_Lightf(light, pname, param);
2308 }
2309
2310 extern void GL_APIENTRY _mesa_Lightfv(GLenum light, GLenum pname, const GLfloat * params);
2311 static void GL_APIENTRY _es_Lightfv(GLenum light, GLenum pname, const GLfloat *params)
2312 {
2313     switch(light) {
2314         case GL_LIGHT0:
2315         case GL_LIGHT1:
2316         case GL_LIGHT2:
2317         case GL_LIGHT3:
2318         case GL_LIGHT4:
2319         case GL_LIGHT5:
2320         case GL_LIGHT6:
2321         case GL_LIGHT7:
2322             break;
2323         default:
2324             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightfv(light=0x%x)", light);
2325             return;
2326     }
2327     switch(pname) {
2328         case GL_AMBIENT: /* size 4 */
2329         case GL_DIFFUSE: /* size 4 */
2330         case GL_SPECULAR: /* size 4 */
2331         case GL_POSITION: /* size 4 */
2332         case GL_SPOT_DIRECTION: /* size 3 */
2333         case GL_SPOT_EXPONENT: /* size 1 */
2334         case GL_SPOT_CUTOFF: /* size 1 */
2335         case GL_CONSTANT_ATTENUATION: /* size 1 */
2336         case GL_LINEAR_ATTENUATION: /* size 1 */
2337         case GL_QUADRATIC_ATTENUATION: /* size 1 */
2338             break;
2339         default:
2340             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightfv(pname=0x%x)", pname);
2341             return;
2342     }
2343
2344     _mesa_Lightfv(light, pname, params);
2345 }
2346
2347 extern void GL_APIENTRY _mesa_Lightf(GLenum light, GLenum pname, GLfloat  param);
2348 static void GL_APIENTRY _es_Lightx(GLenum light, GLenum pname, GLfixed param)
2349 {
2350     GLfloat converted_param;
2351
2352     switch(light) {
2353         case GL_LIGHT0:
2354         case GL_LIGHT1:
2355         case GL_LIGHT2:
2356         case GL_LIGHT3:
2357         case GL_LIGHT4:
2358         case GL_LIGHT5:
2359         case GL_LIGHT6:
2360         case GL_LIGHT7:
2361             break;
2362         default:
2363             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightx(light=0x%x)", light);
2364             return;
2365     }
2366     switch(pname) {
2367         case GL_SPOT_EXPONENT:
2368         case GL_SPOT_CUTOFF:
2369         case GL_CONSTANT_ATTENUATION:
2370         case GL_LINEAR_ATTENUATION:
2371         case GL_QUADRATIC_ATTENUATION:
2372             break;
2373         default:
2374             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightx(pname=0x%x)", pname);
2375             return;
2376     }
2377
2378     converted_param = (GLfloat) (param / 65536.0f);
2379
2380     _mesa_Lightf(light, pname, converted_param);
2381 }
2382
2383 extern void GL_APIENTRY _mesa_Lightfv(GLenum light, GLenum pname, GLfloat const * params);
2384 static void GL_APIENTRY _es_Lightxv(GLenum light, GLenum pname, const GLfixed *params)
2385 {
2386     register unsigned int i;
2387     unsigned int n_params = 4;
2388     GLfloat converted_params[4];
2389
2390     switch(light) {
2391         case GL_LIGHT0:
2392         case GL_LIGHT1:
2393         case GL_LIGHT2:
2394         case GL_LIGHT3:
2395         case GL_LIGHT4:
2396         case GL_LIGHT5:
2397         case GL_LIGHT6:
2398         case GL_LIGHT7:
2399             break;
2400         default:
2401             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightxv(light=0x%x)", light);
2402             return;
2403     }
2404     switch(pname) {
2405         case GL_AMBIENT:
2406         case GL_DIFFUSE:
2407         case GL_SPECULAR:
2408         case GL_POSITION:
2409             n_params = 4;
2410             break;
2411         case GL_SPOT_DIRECTION:
2412             n_params = 3;
2413             break;
2414         case GL_SPOT_EXPONENT:
2415         case GL_SPOT_CUTOFF:
2416         case GL_CONSTANT_ATTENUATION:
2417         case GL_LINEAR_ATTENUATION:
2418         case GL_QUADRATIC_ATTENUATION:
2419             n_params = 1;
2420             break;
2421         default:
2422             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightxv(pname=0x%x)", pname);
2423             return;
2424     }
2425
2426     for (i = 0; i < n_params; i++) {
2427         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
2428     }
2429
2430     _mesa_Lightfv(light, pname, converted_params);
2431 }
2432
2433 extern void GL_APIENTRY _mesa_LineWidth(GLfloat width);
2434 #define _es_LineWidth _mesa_LineWidth
2435
2436 extern void GL_APIENTRY _mesa_LineWidth(GLfloat  width);
2437 static void GL_APIENTRY _es_LineWidthx(GLfixed width)
2438 {
2439     GLfloat converted_width;
2440
2441     converted_width = (GLfloat) (width / 65536.0f);
2442
2443     _mesa_LineWidth(converted_width);
2444 }
2445
2446 extern void GL_APIENTRY _mesa_LoadIdentity(void);
2447 #define _es_LoadIdentity _mesa_LoadIdentity
2448
2449 extern void GL_APIENTRY _mesa_LoadMatrixf(const GLfloat * m);
2450 #define _es_LoadMatrixf _mesa_LoadMatrixf
2451
2452 extern void GL_APIENTRY _mesa_LoadMatrixf(GLfloat const * m);
2453 static void GL_APIENTRY _es_LoadMatrixx(const GLfixed *m)
2454 {
2455     register unsigned int i;
2456     unsigned int n_m = 16;
2457     GLfloat converted_m[16];
2458
2459     for (i = 0; i < n_m; i++) {
2460         converted_m[i] = (GLfloat) (m[i] / 65536.0f);
2461     }
2462
2463     _mesa_LoadMatrixf(converted_m);
2464 }
2465
2466 extern void GL_APIENTRY _mesa_LogicOp(GLenum opcode);
2467 static void GL_APIENTRY _es_LogicOp(GLenum opcode)
2468 {
2469     switch(opcode) {
2470         case GL_CLEAR:
2471         case GL_SET:
2472         case GL_COPY:
2473         case GL_COPY_INVERTED:
2474         case GL_NOOP:
2475         case GL_INVERT:
2476         case GL_AND:
2477         case GL_NAND:
2478         case GL_OR:
2479         case GL_NOR:
2480         case GL_XOR:
2481         case GL_EQUIV:
2482         case GL_AND_REVERSE:
2483         case GL_AND_INVERTED:
2484         case GL_OR_REVERSE:
2485         case GL_OR_INVERTED:
2486             break;
2487         default:
2488             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLogicOp(opcode=0x%x)", opcode);
2489             return;
2490     }
2491
2492     _mesa_LogicOp(opcode);
2493 }
2494
2495 extern void * GL_APIENTRY _mesa_MapBufferARB(GLenum target, GLenum access);
2496 static void * GL_APIENTRY _es_MapBufferOES(GLenum target, GLenum access)
2497 {
2498     switch(target) {
2499         case GL_ARRAY_BUFFER:
2500         case GL_ELEMENT_ARRAY_BUFFER:
2501             break;
2502         default:
2503             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(target=0x%x)", target);
2504             return (void *) 0;
2505     }
2506     switch(access) {
2507         case GL_WRITE_ONLY_OES:
2508             break;
2509         default:
2510             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(access=0x%x)", access);
2511             return (void *) 0;
2512     }
2513
2514     return _mesa_MapBufferARB(target, access);
2515 }
2516
2517 /* this function is special and is defined elsewhere */
2518 extern void GL_APIENTRY _es_Materialf(GLenum face, GLenum pname, GLfloat param);
2519 static void GL_APIENTRY _check_Materialf(GLenum face, GLenum pname, GLfloat param)
2520 {
2521     switch(face) {
2522         case GL_FRONT_AND_BACK:
2523             break;
2524         default:
2525             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialf(face=0x%x)", face);
2526             return;
2527     }
2528     switch(pname) {
2529         case GL_SHININESS:
2530             break;
2531         default:
2532             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialf(pname=0x%x)", pname);
2533             return;
2534     }
2535
2536     _es_Materialf(face, pname, param);
2537 }
2538
2539 /* this function is special and is defined elsewhere */
2540 extern void GL_APIENTRY _es_Materialfv(GLenum face, GLenum pname, const GLfloat * params);
2541 static void GL_APIENTRY _check_Materialfv(GLenum face, GLenum pname, const GLfloat *params)
2542 {
2543     switch(face) {
2544         case GL_FRONT_AND_BACK:
2545             break;
2546         default:
2547             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialfv(face=0x%x)", face);
2548             return;
2549     }
2550     switch(pname) {
2551         case GL_AMBIENT: /* size 4 */
2552         case GL_DIFFUSE: /* size 4 */
2553         case GL_AMBIENT_AND_DIFFUSE: /* size 4 */
2554         case GL_SPECULAR: /* size 4 */
2555         case GL_EMISSION: /* size 4 */
2556         case GL_SHININESS: /* size 1 */
2557             break;
2558         default:
2559             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialfv(pname=0x%x)", pname);
2560             return;
2561     }
2562
2563     _es_Materialfv(face, pname, params);
2564 }
2565
2566 extern void GL_APIENTRY _es_Materialf(GLenum face, GLenum pname, GLfloat  param);
2567 static void GL_APIENTRY _es_Materialx(GLenum face, GLenum pname, GLfixed param)
2568 {
2569     GLfloat converted_param;
2570
2571     switch(face) {
2572         case GL_FRONT_AND_BACK:
2573             break;
2574         default:
2575             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialx(face=0x%x)", face);
2576             return;
2577     }
2578     switch(pname) {
2579         case GL_SHININESS:
2580             break;
2581         default:
2582             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialx(pname=0x%x)", pname);
2583             return;
2584     }
2585
2586     converted_param = (GLfloat) (param / 65536.0f);
2587
2588     _es_Materialf(face, pname, converted_param);
2589 }
2590
2591 extern void GL_APIENTRY _es_Materialfv(GLenum face, GLenum pname, GLfloat const * params);
2592 static void GL_APIENTRY _es_Materialxv(GLenum face, GLenum pname, const GLfixed *params)
2593 {
2594     register unsigned int i;
2595     unsigned int n_params = 4;
2596     GLfloat converted_params[4];
2597
2598     switch(face) {
2599         case GL_FRONT_AND_BACK:
2600             break;
2601         default:
2602             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialxv(face=0x%x)", face);
2603             return;
2604     }
2605     switch(pname) {
2606         case GL_AMBIENT:
2607         case GL_DIFFUSE:
2608         case GL_AMBIENT_AND_DIFFUSE:
2609         case GL_SPECULAR:
2610         case GL_EMISSION:
2611             n_params = 4;
2612             break;
2613         case GL_SHININESS:
2614             n_params = 1;
2615             break;
2616         default:
2617             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialxv(pname=0x%x)", pname);
2618             return;
2619     }
2620
2621     for (i = 0; i < n_params; i++) {
2622         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
2623     }
2624
2625     _es_Materialfv(face, pname, converted_params);
2626 }
2627
2628 extern void GL_APIENTRY _mesa_MatrixMode(GLenum mode);
2629 static void GL_APIENTRY _es_MatrixMode(GLenum mode)
2630 {
2631     switch(mode) {
2632         case GL_MODELVIEW:
2633         case GL_PROJECTION:
2634         case GL_TEXTURE:
2635         case GL_MATRIX_PALETTE_OES:
2636             break;
2637         default:
2638             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMatrixMode(mode=0x%x)", mode);
2639             return;
2640     }
2641
2642     _mesa_MatrixMode(mode);
2643 }
2644
2645 extern void GL_APIENTRY _mesa_MultMatrixf(const GLfloat * m);
2646 #define _es_MultMatrixf _mesa_MultMatrixf
2647
2648 extern void GL_APIENTRY _mesa_MultMatrixf(GLfloat const * m);
2649 static void GL_APIENTRY _es_MultMatrixx(const GLfixed *m)
2650 {
2651     register unsigned int i;
2652     unsigned int n_m = 16;
2653     GLfloat converted_m[16];
2654
2655     for (i = 0; i < n_m; i++) {
2656         converted_m[i] = (GLfloat) (m[i] / 65536.0f);
2657     }
2658
2659     _mesa_MultMatrixf(converted_m);
2660 }
2661
2662 extern void GL_APIENTRY _mesa_MultiDrawArraysEXT(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount);
2663 static void GL_APIENTRY _es_MultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)
2664 {
2665     switch(mode) {
2666         case GL_POINTS:
2667         case GL_LINES:
2668         case GL_LINE_LOOP:
2669         case GL_LINE_STRIP:
2670         case GL_TRIANGLES:
2671         case GL_TRIANGLE_STRIP:
2672         case GL_TRIANGLE_FAN:
2673             break;
2674         default:
2675             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawArraysEXT(mode=0x%x)", mode);
2676             return;
2677     }
2678
2679     _mesa_MultiDrawArraysEXT(mode, first, count, primcount);
2680 }
2681
2682 extern void GL_APIENTRY _mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount);
2683 static void GL_APIENTRY _es_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount)
2684 {
2685     switch(mode) {
2686         case GL_POINTS:
2687         case GL_LINES:
2688         case GL_LINE_LOOP:
2689         case GL_LINE_STRIP:
2690         case GL_TRIANGLES:
2691         case GL_TRIANGLE_STRIP:
2692         case GL_TRIANGLE_FAN:
2693             break;
2694         default:
2695             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(mode=0x%x)", mode);
2696             return;
2697     }
2698     switch(type) {
2699         case GL_UNSIGNED_BYTE:
2700         case GL_UNSIGNED_SHORT:
2701         case GL_UNSIGNED_INT:
2702             break;
2703         default:
2704             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(type=0x%x)", type);
2705             return;
2706     }
2707
2708     _mesa_MultiDrawElementsEXT(mode, count, type, indices, primcount);
2709 }
2710
2711 /* this function is special and is defined elsewhere */
2712 extern void GL_APIENTRY _es_MultiTexCoord4f(GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
2713 static void GL_APIENTRY _check_MultiTexCoord4f(GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
2714 {
2715     switch(texture) {
2716         case GL_TEXTURE0:
2717         case GL_TEXTURE1:
2718         case GL_TEXTURE2:
2719         case GL_TEXTURE3:
2720         case GL_TEXTURE4:
2721         case GL_TEXTURE5:
2722         case GL_TEXTURE6:
2723         case GL_TEXTURE7:
2724         case GL_TEXTURE8:
2725         case GL_TEXTURE9:
2726         case GL_TEXTURE10:
2727         case GL_TEXTURE11:
2728         case GL_TEXTURE12:
2729         case GL_TEXTURE13:
2730         case GL_TEXTURE14:
2731         case GL_TEXTURE15:
2732         case GL_TEXTURE16:
2733         case GL_TEXTURE17:
2734         case GL_TEXTURE18:
2735         case GL_TEXTURE19:
2736         case GL_TEXTURE20:
2737         case GL_TEXTURE21:
2738         case GL_TEXTURE22:
2739         case GL_TEXTURE23:
2740         case GL_TEXTURE24:
2741         case GL_TEXTURE25:
2742         case GL_TEXTURE26:
2743         case GL_TEXTURE27:
2744         case GL_TEXTURE28:
2745         case GL_TEXTURE29:
2746         case GL_TEXTURE30:
2747         case GL_TEXTURE31:
2748             break;
2749         default:
2750             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiTexCoord4f(texture=0x%x)", texture);
2751             return;
2752     }
2753
2754     _es_MultiTexCoord4f(texture, s, t, r, q);
2755 }
2756
2757 extern void GL_APIENTRY _es_MultiTexCoord4f(GLenum texture, GLfloat  s, GLfloat  t, GLfloat  r, GLfloat  q);
2758 static void GL_APIENTRY _es_MultiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
2759 {
2760     GLfloat converted_s;
2761     GLfloat converted_t;
2762     GLfloat converted_r;
2763     GLfloat converted_q;
2764
2765     switch(texture) {
2766         case GL_TEXTURE0:
2767         case GL_TEXTURE1:
2768         case GL_TEXTURE2:
2769         case GL_TEXTURE3:
2770         case GL_TEXTURE4:
2771         case GL_TEXTURE5:
2772         case GL_TEXTURE6:
2773         case GL_TEXTURE7:
2774         case GL_TEXTURE8:
2775         case GL_TEXTURE9:
2776         case GL_TEXTURE10:
2777         case GL_TEXTURE11:
2778         case GL_TEXTURE12:
2779         case GL_TEXTURE13:
2780         case GL_TEXTURE14:
2781         case GL_TEXTURE15:
2782         case GL_TEXTURE16:
2783         case GL_TEXTURE17:
2784         case GL_TEXTURE18:
2785         case GL_TEXTURE19:
2786         case GL_TEXTURE20:
2787         case GL_TEXTURE21:
2788         case GL_TEXTURE22:
2789         case GL_TEXTURE23:
2790         case GL_TEXTURE24:
2791         case GL_TEXTURE25:
2792         case GL_TEXTURE26:
2793         case GL_TEXTURE27:
2794         case GL_TEXTURE28:
2795         case GL_TEXTURE29:
2796         case GL_TEXTURE30:
2797         case GL_TEXTURE31:
2798             break;
2799         default:
2800             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiTexCoord4x(texture=0x%x)", texture);
2801             return;
2802     }
2803
2804     converted_s = (GLfloat) (s / 65536.0f);
2805     converted_t = (GLfloat) (t / 65536.0f);
2806     converted_r = (GLfloat) (r / 65536.0f);
2807     converted_q = (GLfloat) (q / 65536.0f);
2808
2809     _es_MultiTexCoord4f(texture, converted_s, converted_t, converted_r, converted_q);
2810 }
2811
2812 /* this function is special and is defined elsewhere */
2813 extern void GL_APIENTRY _es_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz);
2814 #define _check_Normal3f _es_Normal3f
2815
2816 extern void GL_APIENTRY _es_Normal3f(GLfloat  nx, GLfloat  ny, GLfloat  nz);
2817 static void GL_APIENTRY _es_Normal3x(GLfixed nx, GLfixed ny, GLfixed nz)
2818 {
2819     GLfloat converted_nx;
2820     GLfloat converted_ny;
2821     GLfloat converted_nz;
2822
2823     converted_nx = (GLfloat) (nx / 65536.0f);
2824     converted_ny = (GLfloat) (ny / 65536.0f);
2825     converted_nz = (GLfloat) (nz / 65536.0f);
2826
2827     _es_Normal3f(converted_nx, converted_ny, converted_nz);
2828 }
2829
2830 extern void GL_APIENTRY _mesa_NormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer);
2831 static void GL_APIENTRY _es_NormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
2832 {
2833     switch(type) {
2834         case GL_BYTE:
2835         case GL_SHORT:
2836         case GL_FLOAT:
2837         case GL_FIXED:
2838             break;
2839         default:
2840             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glNormalPointer(type=0x%x)", type);
2841             return;
2842     }
2843
2844     _mesa_NormalPointer(type, stride, pointer);
2845 }
2846
2847 extern void GL_APIENTRY _mesa_Ortho(GLdouble  left, GLdouble  right, GLdouble  bottom, GLdouble  top, GLdouble  zNear, GLdouble  zFar);
2848 static void GL_APIENTRY _es_Orthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
2849 {
2850     GLdouble converted_left;
2851     GLdouble converted_right;
2852     GLdouble converted_bottom;
2853     GLdouble converted_top;
2854     GLdouble converted_zNear;
2855     GLdouble converted_zFar;
2856
2857     converted_left = (GLdouble) (left);
2858     converted_right = (GLdouble) (right);
2859     converted_bottom = (GLdouble) (bottom);
2860     converted_top = (GLdouble) (top);
2861     converted_zNear = (GLdouble) (zNear);
2862     converted_zFar = (GLdouble) (zFar);
2863
2864     _mesa_Ortho(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar);
2865 }
2866
2867 extern void GL_APIENTRY _mesa_Ortho(GLdouble  left, GLdouble  right, GLdouble  bottom, GLdouble  top, GLdouble  zNear, GLdouble  zFar);
2868 static void GL_APIENTRY _es_Orthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
2869 {
2870     GLdouble converted_left;
2871     GLdouble converted_right;
2872     GLdouble converted_bottom;
2873     GLdouble converted_top;
2874     GLdouble converted_zNear;
2875     GLdouble converted_zFar;
2876
2877     converted_left = (GLdouble) (left / 65536.0);
2878     converted_right = (GLdouble) (right / 65536.0);
2879     converted_bottom = (GLdouble) (bottom / 65536.0);
2880     converted_top = (GLdouble) (top / 65536.0);
2881     converted_zNear = (GLdouble) (zNear / 65536.0);
2882     converted_zFar = (GLdouble) (zFar / 65536.0);
2883
2884     _mesa_Ortho(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar);
2885 }
2886
2887 extern void GL_APIENTRY _mesa_PixelStorei(GLenum pname, GLint param);
2888 static void GL_APIENTRY _es_PixelStorei(GLenum pname, GLint param)
2889 {
2890     switch(pname) {
2891         case GL_PACK_ALIGNMENT:
2892         case GL_UNPACK_ALIGNMENT:
2893             break;
2894         default:
2895             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPixelStorei(pname=0x%x)", pname);
2896             return;
2897     }
2898     switch(param) {
2899         case 1:
2900         case 2:
2901         case 4:
2902         case 8:
2903             break;
2904         default:
2905             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glPixelStorei(param=%d)", param);
2906             return;
2907     }
2908
2909     _mesa_PixelStorei(pname, param);
2910 }
2911
2912 extern void GL_APIENTRY _mesa_PointParameterf(GLenum pname, GLfloat param);
2913 static void GL_APIENTRY _es_PointParameterf(GLenum pname, GLfloat param)
2914 {
2915     switch(pname) {
2916         case GL_POINT_SIZE_MIN:
2917         case GL_POINT_SIZE_MAX:
2918         case GL_POINT_FADE_THRESHOLD_SIZE:
2919             break;
2920         default:
2921             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterf(pname=0x%x)", pname);
2922             return;
2923     }
2924
2925     _mesa_PointParameterf(pname, param);
2926 }
2927
2928 extern void GL_APIENTRY _mesa_PointParameterfv(GLenum pname, const GLfloat * params);
2929 static void GL_APIENTRY _es_PointParameterfv(GLenum pname, const GLfloat *params)
2930 {
2931     switch(pname) {
2932         case GL_POINT_SIZE_MIN: /* size 1 */
2933         case GL_POINT_SIZE_MAX: /* size 1 */
2934         case GL_POINT_FADE_THRESHOLD_SIZE: /* size 1 */
2935         case GL_POINT_DISTANCE_ATTENUATION: /* size 3 */
2936             break;
2937         default:
2938             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterfv(pname=0x%x)", pname);
2939             return;
2940     }
2941
2942     _mesa_PointParameterfv(pname, params);
2943 }
2944
2945 extern void GL_APIENTRY _mesa_PointParameterf(GLenum pname, GLfloat  param);
2946 static void GL_APIENTRY _es_PointParameterx(GLenum pname, GLfixed param)
2947 {
2948     GLfloat converted_param;
2949
2950     switch(pname) {
2951         case GL_POINT_SIZE_MIN:
2952         case GL_POINT_SIZE_MAX:
2953         case GL_POINT_FADE_THRESHOLD_SIZE:
2954             break;
2955         default:
2956             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterx(pname=0x%x)", pname);
2957             return;
2958     }
2959
2960     converted_param = (GLfloat) (param / 65536.0f);
2961
2962     _mesa_PointParameterf(pname, converted_param);
2963 }
2964
2965 extern void GL_APIENTRY _mesa_PointParameterfv(GLenum pname, GLfloat const * params);
2966 static void GL_APIENTRY _es_PointParameterxv(GLenum pname, const GLfixed *params)
2967 {
2968     register unsigned int i;
2969     unsigned int n_params = 3;
2970     GLfloat converted_params[3];
2971
2972     switch(pname) {
2973         case GL_POINT_SIZE_MIN:
2974         case GL_POINT_SIZE_MAX:
2975         case GL_POINT_FADE_THRESHOLD_SIZE:
2976             n_params = 1;
2977             break;
2978         case GL_POINT_DISTANCE_ATTENUATION:
2979             n_params = 3;
2980             break;
2981         default:
2982             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterxv(pname=0x%x)", pname);
2983             return;
2984     }
2985
2986     for (i = 0; i < n_params; i++) {
2987         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
2988     }
2989
2990     _mesa_PointParameterfv(pname, converted_params);
2991 }
2992
2993 extern void GL_APIENTRY _mesa_PointSize(GLfloat size);
2994 #define _es_PointSize _mesa_PointSize
2995
2996 extern void GL_APIENTRY _mesa_PointSizePointer(GLenum type, GLsizei stride, const GLvoid * pointer);
2997 static void GL_APIENTRY _es_PointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)
2998 {
2999     switch(type) {
3000         case GL_FLOAT:
3001         case GL_FIXED:
3002             break;
3003         default:
3004             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointSizePointerOES(type=0x%x)", type);
3005             return;
3006     }
3007
3008     _mesa_PointSizePointer(type, stride, pointer);
3009 }
3010
3011 extern void GL_APIENTRY _mesa_PointSize(GLfloat  size);
3012 static void GL_APIENTRY _es_PointSizex(GLfixed size)
3013 {
3014     GLfloat converted_size;
3015
3016     converted_size = (GLfloat) (size / 65536.0f);
3017
3018     _mesa_PointSize(converted_size);
3019 }
3020
3021 extern void GL_APIENTRY _mesa_PolygonOffset(GLfloat factor, GLfloat units);
3022 #define _es_PolygonOffset _mesa_PolygonOffset
3023
3024 extern void GL_APIENTRY _mesa_PolygonOffset(GLfloat  factor, GLfloat  units);
3025 static void GL_APIENTRY _es_PolygonOffsetx(GLfixed factor, GLfixed units)
3026 {
3027     GLfloat converted_factor;
3028     GLfloat converted_units;
3029
3030     converted_factor = (GLfloat) (factor / 65536.0f);
3031     converted_units = (GLfloat) (units / 65536.0f);
3032
3033     _mesa_PolygonOffset(converted_factor, converted_units);
3034 }
3035
3036 extern void GL_APIENTRY _mesa_PopMatrix(void);
3037 #define _es_PopMatrix _mesa_PopMatrix
3038
3039 extern void GL_APIENTRY _mesa_PushMatrix(void);
3040 #define _es_PushMatrix _mesa_PushMatrix
3041
3042 /* this function is special and is defined elsewhere */
3043 extern GLbitfield GL_APIENTRY _es_QueryMatrixxOES(GLfixed * mantissa, GLint * exponent);
3044 #define _check_QueryMatrixxOES _es_QueryMatrixxOES
3045
3046 extern void GL_APIENTRY _mesa_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels);
3047 static void GL_APIENTRY _es_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
3048 {
3049     switch(format) {
3050         case GL_ALPHA:
3051             if (type != GL_UNSIGNED_BYTE) {
3052                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
3053                 return;
3054             }
3055             break;
3056         case GL_RGB:
3057             if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
3058                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
3059                 return;
3060             }
3061             break;
3062         case GL_RGBA:
3063             if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) {
3064                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
3065                 return;
3066             }
3067             break;
3068         case GL_LUMINANCE:
3069         case GL_LUMINANCE_ALPHA:
3070             if (type != GL_UNSIGNED_BYTE) {
3071                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
3072                 return;
3073             }
3074             break;
3075         default:
3076             _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format);
3077             return;
3078     }
3079
3080     _mesa_ReadPixels(x, y, width, height, format, type, pixels);
3081 }
3082
3083 /* this function is special and is defined elsewhere */
3084 extern void GL_APIENTRY _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
3085 static void GL_APIENTRY _check_RenderbufferStorageOES(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
3086 {
3087     switch(target) {
3088         case GL_RENDERBUFFER_OES:
3089             break;
3090         default:
3091             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorageOES(target=0x%x)", target);
3092             return;
3093     }
3094     switch(internalFormat) {
3095         case GL_DEPTH_COMPONENT16_OES:
3096         case GL_RGBA4_OES:
3097         case GL_RGB5_A1_OES:
3098         case GL_RGB565_OES:
3099         case GL_STENCIL_INDEX8_OES:
3100         case GL_DEPTH_COMPONENT24_OES:
3101         case GL_DEPTH_COMPONENT32_OES:
3102         case GL_RGB8_OES:
3103         case GL_RGBA8_OES:
3104         case GL_STENCIL_INDEX1_OES:
3105         case GL_STENCIL_INDEX4_OES:
3106             break;
3107         default:
3108             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorageOES(internalFormat=0x%x)", internalFormat);
3109             return;
3110     }
3111
3112     _es_RenderbufferStorageEXT(target, internalFormat, width, height);
3113 }
3114
3115 extern void GL_APIENTRY _mesa_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
3116 #define _es_Rotatef _mesa_Rotatef
3117
3118 extern void GL_APIENTRY _mesa_Rotatef(GLfloat  angle, GLfloat  x, GLfloat  y, GLfloat  z);
3119 static void GL_APIENTRY _es_Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
3120 {
3121     GLfloat converted_angle;
3122     GLfloat converted_x;
3123     GLfloat converted_y;
3124     GLfloat converted_z;
3125
3126     converted_angle = (GLfloat) (angle / 65536.0f);
3127     converted_x = (GLfloat) (x / 65536.0f);
3128     converted_y = (GLfloat) (y / 65536.0f);
3129     converted_z = (GLfloat) (z / 65536.0f);
3130
3131     _mesa_Rotatef(converted_angle, converted_x, converted_y, converted_z);
3132 }
3133
3134 extern void GL_APIENTRY _mesa_SampleCoverageARB(GLclampf value, GLboolean invert);
3135 #define _es_SampleCoverage _mesa_SampleCoverageARB
3136
3137 extern void GL_APIENTRY _mesa_SampleCoverageARB(GLclampf  value, GLboolean invert);
3138 static void GL_APIENTRY _es_SampleCoveragex(GLclampx value, GLboolean invert)
3139 {
3140     GLclampf converted_value;
3141
3142     converted_value = (GLclampf) (value / 65536.0f);
3143
3144     _mesa_SampleCoverageARB(converted_value, invert);
3145 }
3146
3147 extern void GL_APIENTRY _mesa_Scalef(GLfloat x, GLfloat y, GLfloat z);
3148 #define _es_Scalef _mesa_Scalef
3149
3150 extern void GL_APIENTRY _mesa_Scalef(GLfloat  x, GLfloat  y, GLfloat  z);
3151 static void GL_APIENTRY _es_Scalex(GLfixed x, GLfixed y, GLfixed z)
3152 {
3153     GLfloat converted_x;
3154     GLfloat converted_y;
3155     GLfloat converted_z;
3156
3157     converted_x = (GLfloat) (x / 65536.0f);
3158     converted_y = (GLfloat) (y / 65536.0f);
3159     converted_z = (GLfloat) (z / 65536.0f);
3160
3161     _mesa_Scalef(converted_x, converted_y, converted_z);
3162 }
3163
3164 extern void GL_APIENTRY _mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
3165 #define _es_Scissor _mesa_Scissor
3166
3167 extern void GL_APIENTRY _mesa_ShadeModel(GLenum mode);
3168 static void GL_APIENTRY _es_ShadeModel(GLenum mode)
3169 {
3170     switch(mode) {
3171         case GL_FLAT:
3172         case GL_SMOOTH:
3173             break;
3174         default:
3175             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glShadeModel(mode=0x%x)", mode);
3176             return;
3177     }
3178
3179     _mesa_ShadeModel(mode);
3180 }
3181
3182 extern void GL_APIENTRY _mesa_StencilFunc(GLenum func, GLint ref, GLuint mask);
3183 static void GL_APIENTRY _es_StencilFunc(GLenum func, GLint ref, GLuint mask)
3184 {
3185     switch(func) {
3186         case GL_NEVER:
3187         case GL_LESS:
3188         case GL_LEQUAL:
3189         case GL_GREATER:
3190         case GL_GEQUAL:
3191         case GL_EQUAL:
3192         case GL_NOTEQUAL:
3193         case GL_ALWAYS:
3194             break;
3195         default:
3196             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFunc(func=0x%x)", func);
3197             return;
3198     }
3199
3200     _mesa_StencilFunc(func, ref, mask);
3201 }
3202
3203 extern void GL_APIENTRY _mesa_StencilMask(GLuint mask);
3204 #define _es_StencilMask _mesa_StencilMask
3205
3206 extern void GL_APIENTRY _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
3207 static void GL_APIENTRY _es_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
3208 {
3209     switch(fail) {
3210         case GL_KEEP:
3211         case GL_ZERO:
3212         case GL_REPLACE:
3213         case GL_INCR:
3214         case GL_DECR:
3215         case GL_INVERT:
3216         case GL_INCR_WRAP_OES:
3217         case GL_DECR_WRAP_OES:
3218             break;
3219         default:
3220             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(fail=0x%x)", fail);
3221             return;
3222     }
3223     switch(zfail) {
3224         case GL_KEEP:
3225         case GL_ZERO:
3226         case GL_REPLACE:
3227         case GL_INCR:
3228         case GL_DECR:
3229         case GL_INVERT:
3230         case GL_INCR_WRAP_OES:
3231         case GL_DECR_WRAP_OES:
3232             break;
3233         default:
3234             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zfail=0x%x)", zfail);
3235             return;
3236     }
3237     switch(zpass) {
3238         case GL_KEEP:
3239         case GL_ZERO:
3240         case GL_REPLACE:
3241         case GL_INCR:
3242         case GL_DECR:
3243         case GL_INVERT:
3244         case GL_INCR_WRAP_OES:
3245         case GL_DECR_WRAP_OES:
3246             break;
3247         default:
3248             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zpass=0x%x)", zpass);
3249             return;
3250     }
3251
3252     _mesa_StencilOp(fail, zfail, zpass);
3253 }
3254
3255 extern void GL_APIENTRY _mesa_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer);
3256 static void GL_APIENTRY _es_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
3257 {
3258     switch(size) {
3259         case 2:
3260         case 3:
3261         case 4:
3262             break;
3263         default:
3264             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexCoordPointer(size=%d)", size);
3265             return;
3266     }
3267     switch(type) {
3268         case GL_BYTE:
3269         case GL_SHORT:
3270         case GL_FLOAT:
3271         case GL_FIXED:
3272             break;
3273         default:
3274             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexCoordPointer(type=0x%x)", type);
3275             return;
3276     }
3277
3278     _mesa_TexCoordPointer(size, type, stride, pointer);
3279 }
3280
3281 extern void GL_APIENTRY _mesa_TexEnvf(GLenum target, GLenum pname, GLfloat param);
3282 static void GL_APIENTRY _es_TexEnvf(GLenum target, GLenum pname, GLfloat param)
3283 {
3284     switch(target) {
3285         case GL_POINT_SPRITE_OES:
3286             if (pname != GL_COORD_REPLACE_OES) {
3287                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target);
3288                 return;
3289             }
3290             break;
3291         case GL_TEXTURE_FILTER_CONTROL_EXT:
3292             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
3293                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target);
3294                 return;
3295             }
3296             break;
3297         case GL_TEXTURE_ENV:
3298             if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) {
3299                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target);
3300                 return;
3301             }
3302             break;
3303         default:
3304             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target);
3305             return;
3306     }
3307     switch(pname) {
3308         case GL_COORD_REPLACE_OES:
3309             if (param != GL_TRUE && param != GL_FALSE) {
3310                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3311                 return;
3312             }
3313             break;
3314         case GL_TEXTURE_LOD_BIAS_EXT:
3315             break;
3316         case GL_TEXTURE_ENV_MODE:
3317             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_DECAL && param != GL_BLEND && param != GL_ADD && param != GL_COMBINE) {
3318                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3319                 return;
3320             }
3321             break;
3322         case GL_COMBINE_RGB:
3323             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT && param != GL_DOT3_RGB && param != GL_DOT3_RGBA) {
3324                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3325                 return;
3326             }
3327             break;
3328         case GL_COMBINE_ALPHA:
3329             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT) {
3330                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3331                 return;
3332             }
3333             break;
3334         case GL_RGB_SCALE:
3335         case GL_ALPHA_SCALE:
3336             if (param != 1.0 && param != 2.0 && param != 4.0) {
3337                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvf(pname=0x%x)", pname);
3338                 return;
3339             }
3340             break;
3341         case GL_SRC0_RGB:
3342         case GL_SRC1_RGB:
3343         case GL_SRC2_RGB:
3344         case GL_SRC0_ALPHA:
3345         case GL_SRC1_ALPHA:
3346         case GL_SRC2_ALPHA:
3347             if (param != GL_TEXTURE && param != GL_CONSTANT && param != GL_PRIMARY_COLOR && param != GL_PREVIOUS && param != GL_TEXTURE0 && param != GL_TEXTURE1 && param != GL_TEXTURE2 && param != GL_TEXTURE3 && param != GL_TEXTURE4 && param != GL_TEXTURE5 && param != GL_TEXTURE6 && param != GL_TEXTURE7 && param != GL_TEXTURE8 && param != GL_TEXTURE9 && param != GL_TEXTURE10 && param != GL_TEXTURE11 && param != GL_TEXTURE12 && param != GL_TEXTURE13 && param != GL_TEXTURE14 && param != GL_TEXTURE15 && param != GL_TEXTURE16 && param != GL_TEXTURE17 && param != GL_TEXTURE18 && param != GL_TEXTURE19 && param != GL_TEXTURE20 && param != GL_TEXTURE21 && param != GL_TEXTURE22 && param != GL_TEXTURE23 && param != GL_TEXTURE24 && param != GL_TEXTURE25 && param != GL_TEXTURE26 && param != GL_TEXTURE27 && param != GL_TEXTURE28 && param != GL_TEXTURE29 && param != GL_TEXTURE30 && param != GL_TEXTURE31) {
3348                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3349                 return;
3350             }
3351             break;
3352         case GL_OPERAND0_RGB:
3353         case GL_OPERAND1_RGB:
3354         case GL_OPERAND2_RGB:
3355             if (param != GL_SRC_COLOR && param != GL_ONE_MINUS_SRC_COLOR && param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) {
3356                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3357                 return;
3358             }
3359             break;
3360         case GL_OPERAND0_ALPHA:
3361         case GL_OPERAND1_ALPHA:
3362         case GL_OPERAND2_ALPHA:
3363             if (param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) {
3364                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3365                 return;
3366             }
3367             break;
3368         default:
3369             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname);
3370             return;
3371     }
3372
3373     _mesa_TexEnvf(target, pname, param);
3374 }
3375
3376 extern void GL_APIENTRY _mesa_TexEnvfv(GLenum target, GLenum pname, const GLfloat * params);
3377 static void GL_APIENTRY _es_TexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
3378 {
3379     switch(target) {
3380         case GL_POINT_SPRITE_OES:
3381             if (pname != GL_COORD_REPLACE_OES) {
3382                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target);
3383                 return;
3384             }
3385             break;
3386         case GL_TEXTURE_FILTER_CONTROL_EXT:
3387             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
3388                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target);
3389                 return;
3390             }
3391             break;
3392         case GL_TEXTURE_ENV:
3393             if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) {
3394                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target);
3395                 return;
3396             }
3397             break;
3398         default:
3399             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target);
3400             return;
3401     }
3402     switch(pname) {
3403         case GL_COORD_REPLACE_OES: /* size 1 */
3404             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
3405                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3406                 return;
3407             }
3408             break;
3409         case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */
3410             break;
3411         case GL_TEXTURE_ENV_MODE: /* size 1 */
3412             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_DECAL && params[0] != GL_BLEND && params[0] != GL_ADD && params[0] != GL_COMBINE) {
3413                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3414                 return;
3415             }
3416             break;
3417         case GL_COMBINE_RGB: /* size 1 */
3418             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT && params[0] != GL_DOT3_RGB && params[0] != GL_DOT3_RGBA) {
3419                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3420                 return;
3421             }
3422             break;
3423         case GL_COMBINE_ALPHA: /* size 1 */
3424             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT) {
3425                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3426                 return;
3427             }
3428             break;
3429         case GL_RGB_SCALE:
3430         case GL_ALPHA_SCALE:
3431             if (params[0] != 1.0 && params[0] != 2.0 && params[0] != 4.0) {
3432                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvfv(pname=0x%x)", pname);
3433                 return;
3434             }
3435             break;
3436         case GL_SRC0_RGB: /* size 1 */
3437         case GL_SRC1_RGB: /* size 1 */
3438         case GL_SRC2_RGB: /* size 1 */
3439         case GL_SRC0_ALPHA: /* size 1 */
3440         case GL_SRC1_ALPHA: /* size 1 */
3441         case GL_SRC2_ALPHA: /* size 1 */
3442             if (params[0] != GL_TEXTURE && params[0] != GL_CONSTANT && params[0] != GL_PRIMARY_COLOR && params[0] != GL_PREVIOUS && params[0] != GL_TEXTURE0 && params[0] != GL_TEXTURE1 && params[0] != GL_TEXTURE2 && params[0] != GL_TEXTURE3 && params[0] != GL_TEXTURE4 && params[0] != GL_TEXTURE5 && params[0] != GL_TEXTURE6 && params[0] != GL_TEXTURE7 && params[0] != GL_TEXTURE8 && params[0] != GL_TEXTURE9 && params[0] != GL_TEXTURE10 && params[0] != GL_TEXTURE11 && params[0] != GL_TEXTURE12 && params[0] != GL_TEXTURE13 && params[0] != GL_TEXTURE14 && params[0] != GL_TEXTURE15 && params[0] != GL_TEXTURE16 && params[0] != GL_TEXTURE17 && params[0] != GL_TEXTURE18 && params[0] != GL_TEXTURE19 && params[0] != GL_TEXTURE20 && params[0] != GL_TEXTURE21 && params[0] != GL_TEXTURE22 && params[0] != GL_TEXTURE23 && params[0] != GL_TEXTURE24 && params[0] != GL_TEXTURE25 && params[0] != GL_TEXTURE26 && params[0] != GL_TEXTURE27 && params[0] != GL_TEXTURE28 && params[0] != GL_TEXTURE29 && params[0] != GL_TEXTURE30 && params[0] != GL_TEXTURE31) {
3443                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3444                 return;
3445             }
3446             break;
3447         case GL_OPERAND0_RGB: /* size 1 */
3448         case GL_OPERAND1_RGB: /* size 1 */
3449         case GL_OPERAND2_RGB: /* size 1 */
3450             if (params[0] != GL_SRC_COLOR && params[0] != GL_ONE_MINUS_SRC_COLOR && params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) {
3451                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3452                 return;
3453             }
3454             break;
3455         case GL_OPERAND0_ALPHA: /* size 1 */
3456         case GL_OPERAND1_ALPHA: /* size 1 */
3457         case GL_OPERAND2_ALPHA: /* size 1 */
3458             if (params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) {
3459                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3460                 return;
3461             }
3462             break;
3463         case GL_TEXTURE_ENV_COLOR: /* size 4 */
3464             break;
3465         default:
3466             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname);
3467             return;
3468     }
3469
3470     _mesa_TexEnvfv(target, pname, params);
3471 }
3472
3473 extern void GL_APIENTRY _mesa_TexEnvi(GLenum target, GLenum pname, GLint param);
3474 static void GL_APIENTRY _es_TexEnvi(GLenum target, GLenum pname, GLint param)
3475 {
3476     switch(target) {
3477         case GL_POINT_SPRITE_OES:
3478             if (pname != GL_COORD_REPLACE_OES) {
3479                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target);
3480                 return;
3481             }
3482             break;
3483         case GL_TEXTURE_FILTER_CONTROL_EXT:
3484             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
3485                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target);
3486                 return;
3487             }
3488             break;
3489         case GL_TEXTURE_ENV:
3490             if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) {
3491                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target);
3492                 return;
3493             }
3494             break;
3495         default:
3496             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target);
3497             return;
3498     }
3499     switch(pname) {
3500         case GL_COORD_REPLACE_OES:
3501             if (param != GL_TRUE && param != GL_FALSE) {
3502                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3503                 return;
3504             }
3505             break;
3506         case GL_TEXTURE_LOD_BIAS_EXT:
3507             break;
3508         case GL_TEXTURE_ENV_MODE:
3509             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_DECAL && param != GL_BLEND && param != GL_ADD && param != GL_COMBINE) {
3510                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3511                 return;
3512             }
3513             break;
3514         case GL_COMBINE_RGB:
3515             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT && param != GL_DOT3_RGB && param != GL_DOT3_RGBA) {
3516                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3517                 return;
3518             }
3519             break;
3520         case GL_COMBINE_ALPHA:
3521             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT) {
3522                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3523                 return;
3524             }
3525             break;
3526         case GL_RGB_SCALE:
3527         case GL_ALPHA_SCALE:
3528             if (param != 1.0 && param != 2.0 && param != 4.0) {
3529                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvi(pname=0x%x)", pname);
3530                 return;
3531             }
3532             break;
3533         case GL_SRC0_RGB:
3534         case GL_SRC1_RGB:
3535         case GL_SRC2_RGB:
3536         case GL_SRC0_ALPHA:
3537         case GL_SRC1_ALPHA:
3538         case GL_SRC2_ALPHA:
3539             if (param != GL_TEXTURE && param != GL_CONSTANT && param != GL_PRIMARY_COLOR && param != GL_PREVIOUS && param != GL_TEXTURE0 && param != GL_TEXTURE1 && param != GL_TEXTURE2 && param != GL_TEXTURE3 && param != GL_TEXTURE4 && param != GL_TEXTURE5 && param != GL_TEXTURE6 && param != GL_TEXTURE7 && param != GL_TEXTURE8 && param != GL_TEXTURE9 && param != GL_TEXTURE10 && param != GL_TEXTURE11 && param != GL_TEXTURE12 && param != GL_TEXTURE13 && param != GL_TEXTURE14 && param != GL_TEXTURE15 && param != GL_TEXTURE16 && param != GL_TEXTURE17 && param != GL_TEXTURE18 && param != GL_TEXTURE19 && param != GL_TEXTURE20 && param != GL_TEXTURE21 && param != GL_TEXTURE22 && param != GL_TEXTURE23 && param != GL_TEXTURE24 && param != GL_TEXTURE25 && param != GL_TEXTURE26 && param != GL_TEXTURE27 && param != GL_TEXTURE28 && param != GL_TEXTURE29 && param != GL_TEXTURE30 && param != GL_TEXTURE31) {
3540                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3541                 return;
3542             }
3543             break;
3544         case GL_OPERAND0_RGB:
3545         case GL_OPERAND1_RGB:
3546         case GL_OPERAND2_RGB:
3547             if (param != GL_SRC_COLOR && param != GL_ONE_MINUS_SRC_COLOR && param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) {
3548                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3549                 return;
3550             }
3551             break;
3552         case GL_OPERAND0_ALPHA:
3553         case GL_OPERAND1_ALPHA:
3554         case GL_OPERAND2_ALPHA:
3555             if (param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) {
3556                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3557                 return;
3558             }
3559             break;
3560         default:
3561             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname);
3562             return;
3563     }
3564
3565     _mesa_TexEnvi(target, pname, param);
3566 }
3567
3568 extern void GL_APIENTRY _mesa_TexEnviv(GLenum target, GLenum pname, const GLint * params);
3569 static void GL_APIENTRY _es_TexEnviv(GLenum target, GLenum pname, const GLint *params)
3570 {
3571     switch(target) {
3572         case GL_POINT_SPRITE_OES:
3573             if (pname != GL_COORD_REPLACE_OES) {
3574                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target);
3575                 return;
3576             }
3577             break;
3578         case GL_TEXTURE_FILTER_CONTROL_EXT:
3579             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
3580                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target);
3581                 return;
3582             }
3583             break;
3584         case GL_TEXTURE_ENV:
3585             if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) {
3586                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target);
3587                 return;
3588             }
3589             break;
3590         default:
3591             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target);
3592             return;
3593     }
3594     switch(pname) {
3595         case GL_COORD_REPLACE_OES: /* size 1 */
3596             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
3597                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3598                 return;
3599             }
3600             break;
3601         case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */
3602             break;
3603         case GL_TEXTURE_ENV_MODE: /* size 1 */
3604             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_DECAL && params[0] != GL_BLEND && params[0] != GL_ADD && params[0] != GL_COMBINE) {
3605                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3606                 return;
3607             }
3608             break;
3609         case GL_COMBINE_RGB: /* size 1 */
3610             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT && params[0] != GL_DOT3_RGB && params[0] != GL_DOT3_RGBA) {
3611                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3612                 return;
3613             }
3614             break;
3615         case GL_COMBINE_ALPHA: /* size 1 */
3616             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT) {
3617                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3618                 return;
3619             }
3620             break;
3621         case GL_RGB_SCALE:
3622         case GL_ALPHA_SCALE:
3623             if (params[0] != 1.0 && params[0] != 2.0 && params[0] != 4.0) {
3624                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnviv(pname=0x%x)", pname);
3625                 return;
3626             }
3627             break;
3628         case GL_SRC0_RGB: /* size 1 */
3629         case GL_SRC1_RGB: /* size 1 */
3630         case GL_SRC2_RGB: /* size 1 */
3631         case GL_SRC0_ALPHA: /* size 1 */
3632         case GL_SRC1_ALPHA: /* size 1 */
3633         case GL_SRC2_ALPHA: /* size 1 */
3634             if (params[0] != GL_TEXTURE && params[0] != GL_CONSTANT && params[0] != GL_PRIMARY_COLOR && params[0] != GL_PREVIOUS && params[0] != GL_TEXTURE0 && params[0] != GL_TEXTURE1 && params[0] != GL_TEXTURE2 && params[0] != GL_TEXTURE3 && params[0] != GL_TEXTURE4 && params[0] != GL_TEXTURE5 && params[0] != GL_TEXTURE6 && params[0] != GL_TEXTURE7 && params[0] != GL_TEXTURE8 && params[0] != GL_TEXTURE9 && params[0] != GL_TEXTURE10 && params[0] != GL_TEXTURE11 && params[0] != GL_TEXTURE12 && params[0] != GL_TEXTURE13 && params[0] != GL_TEXTURE14 && params[0] != GL_TEXTURE15 && params[0] != GL_TEXTURE16 && params[0] != GL_TEXTURE17 && params[0] != GL_TEXTURE18 && params[0] != GL_TEXTURE19 && params[0] != GL_TEXTURE20 && params[0] != GL_TEXTURE21 && params[0] != GL_TEXTURE22 && params[0] != GL_TEXTURE23 && params[0] != GL_TEXTURE24 && params[0] != GL_TEXTURE25 && params[0] != GL_TEXTURE26 && params[0] != GL_TEXTURE27 && params[0] != GL_TEXTURE28 && params[0] != GL_TEXTURE29 && params[0] != GL_TEXTURE30 && params[0] != GL_TEXTURE31) {
3635                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3636                 return;
3637             }
3638             break;
3639         case GL_OPERAND0_RGB: /* size 1 */
3640         case GL_OPERAND1_RGB: /* size 1 */
3641         case GL_OPERAND2_RGB: /* size 1 */
3642             if (params[0] != GL_SRC_COLOR && params[0] != GL_ONE_MINUS_SRC_COLOR && params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) {
3643                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3644                 return;
3645             }
3646             break;
3647         case GL_OPERAND0_ALPHA: /* size 1 */
3648         case GL_OPERAND1_ALPHA: /* size 1 */
3649         case GL_OPERAND2_ALPHA: /* size 1 */
3650             if (params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) {
3651                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3652                 return;
3653             }
3654             break;
3655         case GL_TEXTURE_ENV_COLOR: /* size 4 */
3656             break;
3657         default:
3658             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname);
3659             return;
3660     }
3661
3662     _mesa_TexEnviv(target, pname, params);
3663 }
3664
3665 extern void GL_APIENTRY _mesa_TexEnvf(GLenum target, GLenum pname, GLfloat  param);
3666 static void GL_APIENTRY _es_TexEnvx(GLenum target, GLenum pname, GLfixed param)
3667 {
3668     GLfloat converted_param;
3669     int convert_param_value = 1;
3670
3671     switch(target) {
3672         case GL_POINT_SPRITE_OES:
3673             if (pname != GL_COORD_REPLACE_OES) {
3674                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target);
3675                 return;
3676             }
3677             break;
3678         case GL_TEXTURE_FILTER_CONTROL_EXT:
3679             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
3680                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target);
3681                 return;
3682             }
3683             break;
3684         case GL_TEXTURE_ENV:
3685             if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) {
3686                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target);
3687                 return;
3688             }
3689             break;
3690         default:
3691             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target);
3692             return;
3693     }
3694     switch(pname) {
3695         case GL_COORD_REPLACE_OES:
3696             if (param != GL_TRUE && param != GL_FALSE) {
3697                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3698                 return;
3699             }
3700             convert_param_value = 0;
3701             break;
3702         case GL_TEXTURE_LOD_BIAS_EXT:
3703             break;
3704         case GL_TEXTURE_ENV_MODE:
3705             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_DECAL && param != GL_BLEND && param != GL_ADD && param != GL_COMBINE) {
3706                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3707                 return;
3708             }
3709             convert_param_value = 0;
3710             break;
3711         case GL_COMBINE_RGB:
3712             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT && param != GL_DOT3_RGB && param != GL_DOT3_RGBA) {
3713                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3714                 return;
3715             }
3716             convert_param_value = 0;
3717             break;
3718         case GL_COMBINE_ALPHA:
3719             if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT) {
3720                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3721                 return;
3722             }
3723             convert_param_value = 0;
3724             break;
3725         case GL_RGB_SCALE:
3726         case GL_ALPHA_SCALE:
3727             if (param != 1.0 && param != 2.0 && param != 4.0) {
3728                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvx(pname=0x%x)", pname);
3729                 return;
3730             }
3731             break;
3732         case GL_SRC0_RGB:
3733         case GL_SRC1_RGB:
3734         case GL_SRC2_RGB:
3735         case GL_SRC0_ALPHA:
3736         case GL_SRC1_ALPHA:
3737         case GL_SRC2_ALPHA:
3738             if (param != GL_TEXTURE && param != GL_CONSTANT && param != GL_PRIMARY_COLOR && param != GL_PREVIOUS && param != GL_TEXTURE0 && param != GL_TEXTURE1 && param != GL_TEXTURE2 && param != GL_TEXTURE3 && param != GL_TEXTURE4 && param != GL_TEXTURE5 && param != GL_TEXTURE6 && param != GL_TEXTURE7 && param != GL_TEXTURE8 && param != GL_TEXTURE9 && param != GL_TEXTURE10 && param != GL_TEXTURE11 && param != GL_TEXTURE12 && param != GL_TEXTURE13 && param != GL_TEXTURE14 && param != GL_TEXTURE15 && param != GL_TEXTURE16 && param != GL_TEXTURE17 && param != GL_TEXTURE18 && param != GL_TEXTURE19 && param != GL_TEXTURE20 && param != GL_TEXTURE21 && param != GL_TEXTURE22 && param != GL_TEXTURE23 && param != GL_TEXTURE24 && param != GL_TEXTURE25 && param != GL_TEXTURE26 && param != GL_TEXTURE27 && param != GL_TEXTURE28 && param != GL_TEXTURE29 && param != GL_TEXTURE30 && param != GL_TEXTURE31) {
3739                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3740                 return;
3741             }
3742             convert_param_value = 0;
3743             break;
3744         case GL_OPERAND0_RGB:
3745         case GL_OPERAND1_RGB:
3746         case GL_OPERAND2_RGB:
3747             if (param != GL_SRC_COLOR && param != GL_ONE_MINUS_SRC_COLOR && param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) {
3748                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3749                 return;
3750             }
3751             convert_param_value = 0;
3752             break;
3753         case GL_OPERAND0_ALPHA:
3754         case GL_OPERAND1_ALPHA:
3755         case GL_OPERAND2_ALPHA:
3756             if (param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) {
3757                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3758                 return;
3759             }
3760             convert_param_value = 0;
3761             break;
3762         default:
3763             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname);
3764             return;
3765     }
3766
3767     if (convert_param_value) {
3768         converted_param = (GLfloat) (param / 65536.0f);
3769     } else {
3770         converted_param = (GLfloat) param;
3771     }
3772
3773     _mesa_TexEnvf(target, pname, converted_param);
3774 }
3775
3776 extern void GL_APIENTRY _mesa_TexEnvfv(GLenum target, GLenum pname, GLfloat const * params);
3777 static void GL_APIENTRY _es_TexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
3778 {
3779     register unsigned int i;
3780     unsigned int n_params = 4;
3781     GLfloat converted_params[4];
3782     int convert_params_value = 1;
3783
3784     switch(target) {
3785         case GL_POINT_SPRITE_OES:
3786             if (pname != GL_COORD_REPLACE_OES) {
3787                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target);
3788                 return;
3789             }
3790             break;
3791         case GL_TEXTURE_FILTER_CONTROL_EXT:
3792             if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
3793                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target);
3794                 return;
3795             }
3796             break;
3797         case GL_TEXTURE_ENV:
3798             if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) {
3799                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target);
3800                 return;
3801             }
3802             break;
3803         default:
3804             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target);
3805             return;
3806     }
3807     switch(pname) {
3808         case GL_COORD_REPLACE_OES:
3809             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
3810                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3811                 return;
3812             }
3813             convert_params_value = 0;
3814             n_params = 1;
3815             break;
3816         case GL_TEXTURE_LOD_BIAS_EXT:
3817             n_params = 1;
3818             break;
3819         case GL_TEXTURE_ENV_MODE:
3820             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_DECAL && params[0] != GL_BLEND && params[0] != GL_ADD && params[0] != GL_COMBINE) {
3821                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3822                 return;
3823             }
3824             convert_params_value = 0;
3825             n_params = 1;
3826             break;
3827         case GL_COMBINE_RGB:
3828             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT && params[0] != GL_DOT3_RGB && params[0] != GL_DOT3_RGBA) {
3829                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3830                 return;
3831             }
3832             convert_params_value = 0;
3833             n_params = 1;
3834             break;
3835         case GL_COMBINE_ALPHA:
3836             if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT) {
3837                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3838                 return;
3839             }
3840             convert_params_value = 0;
3841             n_params = 1;
3842             break;
3843         case GL_RGB_SCALE:
3844         case GL_ALPHA_SCALE:
3845             if (params[0] != 1.0 && params[0] != 2.0 && params[0] != 4.0) {
3846                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvxv(pname=0x%x)", pname);
3847                 return;
3848             }
3849             break;
3850         case GL_SRC0_RGB:
3851         case GL_SRC1_RGB:
3852         case GL_SRC2_RGB:
3853         case GL_SRC0_ALPHA:
3854         case GL_SRC1_ALPHA:
3855         case GL_SRC2_ALPHA:
3856             if (params[0] != GL_TEXTURE && params[0] != GL_CONSTANT && params[0] != GL_PRIMARY_COLOR && params[0] != GL_PREVIOUS && params[0] != GL_TEXTURE0 && params[0] != GL_TEXTURE1 && params[0] != GL_TEXTURE2 && params[0] != GL_TEXTURE3 && params[0] != GL_TEXTURE4 && params[0] != GL_TEXTURE5 && params[0] != GL_TEXTURE6 && params[0] != GL_TEXTURE7 && params[0] != GL_TEXTURE8 && params[0] != GL_TEXTURE9 && params[0] != GL_TEXTURE10 && params[0] != GL_TEXTURE11 && params[0] != GL_TEXTURE12 && params[0] != GL_TEXTURE13 && params[0] != GL_TEXTURE14 && params[0] != GL_TEXTURE15 && params[0] != GL_TEXTURE16 && params[0] != GL_TEXTURE17 && params[0] != GL_TEXTURE18 && params[0] != GL_TEXTURE19 && params[0] != GL_TEXTURE20 && params[0] != GL_TEXTURE21 && params[0] != GL_TEXTURE22 && params[0] != GL_TEXTURE23 && params[0] != GL_TEXTURE24 && params[0] != GL_TEXTURE25 && params[0] != GL_TEXTURE26 && params[0] != GL_TEXTURE27 && params[0] != GL_TEXTURE28 && params[0] != GL_TEXTURE29 && params[0] != GL_TEXTURE30 && params[0] != GL_TEXTURE31) {
3857                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3858                 return;
3859             }
3860             convert_params_value = 0;
3861             n_params = 1;
3862             break;
3863         case GL_OPERAND0_RGB:
3864         case GL_OPERAND1_RGB:
3865         case GL_OPERAND2_RGB:
3866             if (params[0] != GL_SRC_COLOR && params[0] != GL_ONE_MINUS_SRC_COLOR && params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) {
3867                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3868                 return;
3869             }
3870             convert_params_value = 0;
3871             n_params = 1;
3872             break;
3873         case GL_OPERAND0_ALPHA:
3874         case GL_OPERAND1_ALPHA:
3875         case GL_OPERAND2_ALPHA:
3876             if (params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) {
3877                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3878                 return;
3879             }
3880             convert_params_value = 0;
3881             n_params = 1;
3882             break;
3883         case GL_TEXTURE_ENV_COLOR:
3884             n_params = 4;
3885             break;
3886         default:
3887             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname);
3888             return;
3889     }
3890
3891     if (convert_params_value) {
3892         for (i = 0; i < n_params; i++) {
3893             converted_params[i] = (GLfloat) (params[i] / 65536.0f);
3894         }
3895     } else {
3896         for (i = 0; i < n_params; i++) {
3897             converted_params[i] = (GLfloat) params[i];
3898         }
3899     }
3900
3901     _mesa_TexEnvfv(target, pname, converted_params);
3902 }
3903
3904 /* this function is special and is defined elsewhere */
3905 extern void GL_APIENTRY _es_TexGenf(GLenum coord, GLenum pname, GLfloat param);
3906 static void GL_APIENTRY _check_TexGenfOES(GLenum coord, GLenum pname, GLfloat param)
3907 {
3908     switch(coord) {
3909         case GL_TEXTURE_GEN_STR_OES:
3910             break;
3911         default:
3912             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfOES(coord=0x%x)", coord);
3913             return;
3914     }
3915     switch(pname) {
3916         case GL_TEXTURE_GEN_MODE_OES:
3917             if (param != GL_NORMAL_MAP_OES && param != GL_REFLECTION_MAP_OES) {
3918                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfOES(pname=0x%x)", pname);
3919                 return;
3920             }
3921             break;
3922         default:
3923             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfOES(pname=0x%x)", pname);
3924             return;
3925     }
3926
3927     _es_TexGenf(coord, pname, param);
3928 }
3929
3930 /* this function is special and is defined elsewhere */
3931 extern void GL_APIENTRY _es_TexGenfv(GLenum coord, GLenum pname, const GLfloat * params);
3932 static void GL_APIENTRY _check_TexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params)
3933 {
3934     switch(coord) {
3935         case GL_TEXTURE_GEN_STR_OES:
3936             break;
3937         default:
3938             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfvOES(coord=0x%x)", coord);
3939             return;
3940     }
3941     switch(pname) {
3942         case GL_TEXTURE_GEN_MODE_OES: /* size 1 */
3943             if (params[0] != GL_NORMAL_MAP_OES && params[0] != GL_REFLECTION_MAP_OES) {
3944                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfvOES(pname=0x%x)", pname);
3945                 return;
3946             }
3947             break;
3948         default:
3949             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfvOES(pname=0x%x)", pname);
3950             return;
3951     }
3952
3953     _es_TexGenfv(coord, pname, params);
3954 }
3955
3956 /* this function is special and is defined elsewhere */
3957 extern void GL_APIENTRY _es_TexGenf(GLenum coord, GLenum pname, GLfloat  param);
3958 static void GL_APIENTRY _check_TexGeniOES(GLenum coord, GLenum pname, GLint param)
3959 {
3960     GLfloat converted_param;
3961
3962     switch(coord) {
3963         case GL_TEXTURE_GEN_STR_OES:
3964             break;
3965         default:
3966             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGeniOES(coord=0x%x)", coord);
3967             return;
3968     }
3969     switch(pname) {
3970         case GL_TEXTURE_GEN_MODE_OES:
3971             if (param != GL_NORMAL_MAP_OES && param != GL_REFLECTION_MAP_OES) {
3972                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGeniOES(pname=0x%x)", pname);
3973                 return;
3974             }
3975             break;
3976         default:
3977             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGeniOES(pname=0x%x)", pname);
3978             return;
3979     }
3980
3981     converted_param = (GLfloat) param;
3982
3983     _es_TexGenf(coord, pname, converted_param);
3984 }
3985
3986 /* this function is special and is defined elsewhere */
3987 extern void GL_APIENTRY _es_TexGenfv(GLenum coord, GLenum pname, GLfloat const * params);
3988 static void GL_APIENTRY _check_TexGenivOES(GLenum coord, GLenum pname, const GLint *params)
3989 {
3990     register unsigned int i;
3991     unsigned int n_params = 1;
3992     GLfloat converted_params[1];
3993
3994     switch(coord) {
3995         case GL_TEXTURE_GEN_STR_OES:
3996             break;
3997         default:
3998             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenivOES(coord=0x%x)", coord);
3999             return;
4000     }
4001     switch(pname) {
4002         case GL_TEXTURE_GEN_MODE_OES:
4003             if (params[0] != GL_NORMAL_MAP_OES && params[0] != GL_REFLECTION_MAP_OES) {
4004                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenivOES(pname=0x%x)", pname);
4005                 return;
4006             }
4007             n_params = 1;
4008             break;
4009         default:
4010             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenivOES(pname=0x%x)", pname);
4011             return;
4012     }
4013
4014     for (i = 0; i < n_params; i++) {
4015         converted_params[i] = (GLfloat) params[i];
4016     }
4017
4018     _es_TexGenfv(coord, pname, converted_params);
4019 }
4020
4021 /* this function is special and is defined elsewhere */
4022 extern void GL_APIENTRY _es_TexGenf(GLenum coord, GLenum pname, GLfloat  param);
4023 static void GL_APIENTRY _check_TexGenxOES(GLenum coord, GLenum pname, GLfixed param)
4024 {
4025     GLfloat converted_param;
4026
4027     switch(coord) {
4028         case GL_TEXTURE_GEN_STR_OES:
4029             break;
4030         default:
4031             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxOES(coord=0x%x)", coord);
4032             return;
4033     }
4034     switch(pname) {
4035         case GL_TEXTURE_GEN_MODE_OES:
4036             if (param != GL_NORMAL_MAP_OES && param != GL_REFLECTION_MAP_OES) {
4037                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxOES(pname=0x%x)", pname);
4038                 return;
4039             }
4040             break;
4041         default:
4042             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxOES(pname=0x%x)", pname);
4043             return;
4044     }
4045
4046     converted_param = (GLfloat) param;
4047
4048     _es_TexGenf(coord, pname, converted_param);
4049 }
4050
4051 /* this function is special and is defined elsewhere */
4052 extern void GL_APIENTRY _es_TexGenfv(GLenum coord, GLenum pname, GLfloat const * params);
4053 static void GL_APIENTRY _check_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params)
4054 {
4055     register unsigned int i;
4056     unsigned int n_params = 1;
4057     GLfloat converted_params[1];
4058
4059     switch(coord) {
4060         case GL_TEXTURE_GEN_STR_OES:
4061             break;
4062         default:
4063             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxvOES(coord=0x%x)", coord);
4064             return;
4065     }
4066     switch(pname) {
4067         case GL_TEXTURE_GEN_MODE_OES:
4068             if (params[0] != GL_NORMAL_MAP_OES && params[0] != GL_REFLECTION_MAP_OES) {
4069                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxvOES(pname=0x%x)", pname);
4070                 return;
4071             }
4072             n_params = 1;
4073             break;
4074         default:
4075             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxvOES(pname=0x%x)", pname);
4076             return;
4077     }
4078
4079     for (i = 0; i < n_params; i++) {
4080         converted_params[i] = (GLfloat) params[i];
4081     }
4082
4083     _es_TexGenfv(coord, pname, converted_params);
4084 }
4085
4086 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);
4087 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)
4088 {
4089     switch(target) {
4090         case GL_TEXTURE_2D:
4091         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
4092         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
4093         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
4094         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
4095         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
4096         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
4097             break;
4098         default:
4099             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage2D(target=0x%x)", target);
4100             return;
4101     }
4102     switch(internalFormat) {
4103         case GL_ALPHA:
4104             if (format != GL_ALPHA) {
4105                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
4106                 return;
4107             }
4108             break;
4109         case GL_RGB:
4110             if (format != GL_RGB) {
4111                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
4112                 return;
4113             }
4114             break;
4115         case GL_RGBA:
4116             if (format != GL_RGBA) {
4117                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
4118                 return;
4119             }
4120             break;
4121         case GL_LUMINANCE:
4122             if (format != GL_LUMINANCE) {
4123                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
4124                 return;
4125             }
4126             break;
4127         case GL_LUMINANCE_ALPHA:
4128             if (format != GL_LUMINANCE_ALPHA) {
4129                 _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=0x%x)", internalFormat);
4130                 return;
4131             }
4132             break;
4133         default:
4134             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=%d)", internalFormat);
4135             return;
4136     }
4137     switch(border) {
4138         case 0:
4139             break;
4140         default:
4141             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(border=%d)", border);
4142             return;
4143     }
4144     switch(format) {
4145         case GL_ALPHA:
4146             if (type != GL_UNSIGNED_BYTE) {
4147                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
4148                 return;
4149             }
4150             break;
4151         case GL_RGB:
4152             if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
4153                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
4154                 return;
4155             }
4156             break;
4157         case GL_RGBA:
4158             if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) {
4159                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
4160                 return;
4161             }
4162             break;
4163         case GL_LUMINANCE:
4164         case GL_LUMINANCE_ALPHA:
4165             if (type != GL_UNSIGNED_BYTE) {
4166                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
4167                 return;
4168             }
4169             break;
4170         default:
4171             _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format);
4172             return;
4173     }
4174
4175     _mesa_TexImage2D(target, level, internalFormat, width, height, border, format, type, pixels);
4176 }
4177
4178 extern void GL_APIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param);
4179 static void GL_APIENTRY _es_TexParameterf(GLenum target, GLenum pname, GLfloat param)
4180 {
4181     switch(target) {
4182         case GL_TEXTURE_2D:
4183         case GL_TEXTURE_CUBE_MAP_OES:
4184             break;
4185         default:
4186             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(target=0x%x)", target);
4187             return;
4188     }
4189     switch(pname) {
4190         case GL_TEXTURE_WRAP_S:
4191         case GL_TEXTURE_WRAP_T:
4192             if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT_OES) {
4193                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
4194                 return;
4195             }
4196             break;
4197         case GL_TEXTURE_MIN_FILTER:
4198             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) {
4199                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
4200                 return;
4201             }
4202             break;
4203         case GL_TEXTURE_MAG_FILTER:
4204             if (param != GL_NEAREST && param != GL_LINEAR) {
4205                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
4206                 return;
4207             }
4208             break;
4209         case GL_GENERATE_MIPMAP:
4210             if (param != GL_TRUE && param != GL_FALSE) {
4211                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
4212                 return;
4213             }
4214             break;
4215         case GL_TEXTURE_MAX_ANISOTROPY_EXT:
4216             break;
4217         default:
4218             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname);
4219             return;
4220     }
4221
4222     _mesa_TexParameterf(target, pname, param);
4223 }
4224
4225 extern void GL_APIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params);
4226 static void GL_APIENTRY _es_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
4227 {
4228     switch(target) {
4229         case GL_TEXTURE_2D:
4230         case GL_TEXTURE_CUBE_MAP_OES:
4231             break;
4232         default:
4233             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(target=0x%x)", target);
4234             return;
4235     }
4236     switch(pname) {
4237         case GL_TEXTURE_WRAP_S: /* size 1 */
4238         case GL_TEXTURE_WRAP_T: /* size 1 */
4239             if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT_OES) {
4240                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
4241                 return;
4242             }
4243             break;
4244         case GL_TEXTURE_MIN_FILTER: /* size 1 */
4245             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) {
4246                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
4247                 return;
4248             }
4249             break;
4250         case GL_TEXTURE_MAG_FILTER: /* size 1 */
4251             if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) {
4252                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
4253                 return;
4254             }
4255             break;
4256         case GL_GENERATE_MIPMAP: /* size 1 */
4257             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
4258                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
4259                 return;
4260             }
4261             break;
4262         case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */
4263         case GL_TEXTURE_CROP_RECT_OES: /* size 4 */
4264             break;
4265         default:
4266             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname);
4267             return;
4268     }
4269
4270     _mesa_TexParameterfv(target, pname, params);
4271 }
4272
4273 extern void GL_APIENTRY _mesa_TexParameteri(GLenum target, GLenum pname, GLint param);
4274 static void GL_APIENTRY _es_TexParameteri(GLenum target, GLenum pname, GLint param)
4275 {
4276     switch(target) {
4277         case GL_TEXTURE_2D:
4278         case GL_TEXTURE_CUBE_MAP_OES:
4279             break;
4280         default:
4281             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(target=0x%x)", target);
4282             return;
4283     }
4284     switch(pname) {
4285         case GL_TEXTURE_WRAP_S:
4286         case GL_TEXTURE_WRAP_T:
4287             if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT_OES) {
4288                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
4289                 return;
4290             }
4291             break;
4292         case GL_TEXTURE_MIN_FILTER:
4293             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) {
4294                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
4295                 return;
4296             }
4297             break;
4298         case GL_TEXTURE_MAG_FILTER:
4299             if (param != GL_NEAREST && param != GL_LINEAR) {
4300                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
4301                 return;
4302             }
4303             break;
4304         case GL_GENERATE_MIPMAP:
4305             if (param != GL_TRUE && param != GL_FALSE) {
4306                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
4307                 return;
4308             }
4309             break;
4310         case GL_TEXTURE_MAX_ANISOTROPY_EXT:
4311             break;
4312         default:
4313             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname);
4314             return;
4315     }
4316
4317     _mesa_TexParameteri(target, pname, param);
4318 }
4319
4320 extern void GL_APIENTRY _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint * params);
4321 static void GL_APIENTRY _es_TexParameteriv(GLenum target, GLenum pname, const GLint *params)
4322 {
4323     switch(target) {
4324         case GL_TEXTURE_2D:
4325         case GL_TEXTURE_CUBE_MAP_OES:
4326             break;
4327         default:
4328             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(target=0x%x)", target);
4329             return;
4330     }
4331     switch(pname) {
4332         case GL_TEXTURE_WRAP_S: /* size 1 */
4333         case GL_TEXTURE_WRAP_T: /* size 1 */
4334             if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT_OES) {
4335                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
4336                 return;
4337             }
4338             break;
4339         case GL_TEXTURE_MIN_FILTER: /* size 1 */
4340             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) {
4341                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
4342                 return;
4343             }
4344             break;
4345         case GL_TEXTURE_MAG_FILTER: /* size 1 */
4346             if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) {
4347                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
4348                 return;
4349             }
4350             break;
4351         case GL_GENERATE_MIPMAP: /* size 1 */
4352             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
4353                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
4354                 return;
4355             }
4356             break;
4357         case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */
4358         case GL_TEXTURE_CROP_RECT_OES: /* size 4 */
4359             break;
4360         default:
4361             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname);
4362             return;
4363     }
4364
4365     _mesa_TexParameteriv(target, pname, params);
4366 }
4367
4368 extern void GL_APIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat  param);
4369 static void GL_APIENTRY _es_TexParameterx(GLenum target, GLenum pname, GLfixed param)
4370 {
4371     GLfloat converted_param;
4372     int convert_param_value = 1;
4373
4374     switch(target) {
4375         case GL_TEXTURE_2D:
4376         case GL_TEXTURE_CUBE_MAP_OES:
4377             break;
4378         default:
4379             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(target=0x%x)", target);
4380             return;
4381     }
4382     switch(pname) {
4383         case GL_TEXTURE_WRAP_S:
4384         case GL_TEXTURE_WRAP_T:
4385             if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT_OES) {
4386                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname);
4387                 return;
4388             }
4389             convert_param_value = 0;
4390             break;
4391         case GL_TEXTURE_MIN_FILTER:
4392             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) {
4393                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname);
4394                 return;
4395             }
4396             convert_param_value = 0;
4397             break;
4398         case GL_TEXTURE_MAG_FILTER:
4399             if (param != GL_NEAREST && param != GL_LINEAR) {
4400                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname);
4401                 return;
4402             }
4403             convert_param_value = 0;
4404             break;
4405         case GL_GENERATE_MIPMAP:
4406             if (param != GL_TRUE && param != GL_FALSE) {
4407                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname);
4408                 return;
4409             }
4410             convert_param_value = 0;
4411             break;
4412         case GL_TEXTURE_MAX_ANISOTROPY_EXT:
4413             break;
4414         default:
4415             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname);
4416             return;
4417     }
4418
4419     if (convert_param_value) {
4420         converted_param = (GLfloat) (param / 65536.0f);
4421     } else {
4422         converted_param = (GLfloat) param;
4423     }
4424
4425     _mesa_TexParameterf(target, pname, converted_param);
4426 }
4427
4428 extern void GL_APIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, GLfloat const * params);
4429 static void GL_APIENTRY _es_TexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
4430 {
4431     register unsigned int i;
4432     unsigned int n_params = 4;
4433     GLfloat converted_params[4];
4434     int convert_params_value = 1;
4435
4436     switch(target) {
4437         case GL_TEXTURE_2D:
4438         case GL_TEXTURE_CUBE_MAP_OES:
4439             break;
4440         default:
4441             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(target=0x%x)", target);
4442             return;
4443     }
4444     switch(pname) {
4445         case GL_TEXTURE_WRAP_S:
4446         case GL_TEXTURE_WRAP_T:
4447             if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT_OES) {
4448                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname);
4449                 return;
4450             }
4451             convert_params_value = 0;
4452             n_params = 1;
4453             break;
4454         case GL_TEXTURE_MIN_FILTER:
4455             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) {
4456                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname);
4457                 return;
4458             }
4459             convert_params_value = 0;
4460             n_params = 1;
4461             break;
4462         case GL_TEXTURE_MAG_FILTER:
4463             if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) {
4464                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname);
4465                 return;
4466             }
4467             convert_params_value = 0;
4468             n_params = 1;
4469             break;
4470         case GL_GENERATE_MIPMAP:
4471             if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
4472                 _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname);
4473                 return;
4474             }
4475             convert_params_value = 0;
4476             n_params = 1;
4477             break;
4478         case GL_TEXTURE_MAX_ANISOTROPY_EXT:
4479             n_params = 1;
4480             break;
4481         case GL_TEXTURE_CROP_RECT_OES:
4482             n_params = 4;
4483             break;
4484         default:
4485             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname);
4486             return;
4487     }
4488
4489     if (convert_params_value) {
4490         for (i = 0; i < n_params; i++) {
4491             converted_params[i] = (GLfloat) (params[i] / 65536.0f);
4492         }
4493     } else {
4494         for (i = 0; i < n_params; i++) {
4495             converted_params[i] = (GLfloat) params[i];
4496         }
4497     }
4498
4499     _mesa_TexParameterfv(target, pname, converted_params);
4500 }
4501
4502 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);
4503 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)
4504 {
4505     switch(target) {
4506         case GL_TEXTURE_2D:
4507         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
4508         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
4509         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
4510         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
4511         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
4512         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
4513             break;
4514         default:
4515             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexSubImage2D(target=0x%x)", target);
4516             return;
4517     }
4518     switch(format) {
4519         case GL_ALPHA:
4520             if (type != GL_UNSIGNED_BYTE) {
4521                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
4522                 return;
4523             }
4524             break;
4525         case GL_RGB:
4526             if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) {
4527                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
4528                 return;
4529             }
4530             break;
4531         case GL_RGBA:
4532             if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) {
4533                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
4534                 return;
4535             }
4536             break;
4537         case GL_LUMINANCE:
4538         case GL_LUMINANCE_ALPHA:
4539             if (type != GL_UNSIGNED_BYTE) {
4540                 _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
4541                 return;
4542             }
4543             break;
4544         default:
4545             _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format);
4546             return;
4547     }
4548
4549     _mesa_TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
4550 }
4551
4552 extern void GL_APIENTRY _mesa_Translatef(GLfloat x, GLfloat y, GLfloat z);
4553 #define _es_Translatef _mesa_Translatef
4554
4555 extern void GL_APIENTRY _mesa_Translatef(GLfloat  x, GLfloat  y, GLfloat  z);
4556 static void GL_APIENTRY _es_Translatex(GLfixed x, GLfixed y, GLfixed z)
4557 {
4558     GLfloat converted_x;
4559     GLfloat converted_y;
4560     GLfloat converted_z;
4561
4562     converted_x = (GLfloat) (x / 65536.0f);
4563     converted_y = (GLfloat) (y / 65536.0f);
4564     converted_z = (GLfloat) (z / 65536.0f);
4565
4566     _mesa_Translatef(converted_x, converted_y, converted_z);
4567 }
4568
4569 extern GLboolean GL_APIENTRY _mesa_UnmapBufferARB(GLenum target);
4570 static GLboolean GL_APIENTRY _es_UnmapBufferOES(GLenum target)
4571 {
4572     switch(target) {
4573         case GL_ARRAY_BUFFER:
4574         case GL_ELEMENT_ARRAY_BUFFER:
4575             break;
4576         default:
4577             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glUnmapBufferOES(target=0x%x)", target);
4578             return GL_FALSE;
4579     }
4580
4581     return _mesa_UnmapBufferARB(target);
4582 }
4583
4584 extern void GL_APIENTRY _mesa_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer);
4585 static void GL_APIENTRY _es_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
4586 {
4587     switch(size) {
4588         case 2:
4589         case 3:
4590         case 4:
4591             break;
4592         default:
4593             _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glVertexPointer(size=%d)", size);
4594             return;
4595     }
4596     switch(type) {
4597         case GL_BYTE:
4598         case GL_SHORT:
4599         case GL_FLOAT:
4600         case GL_FIXED:
4601             break;
4602         default:
4603             _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glVertexPointer(type=0x%x)", type);
4604             return;
4605     }
4606
4607     _mesa_VertexPointer(size, type, stride, pointer);
4608 }
4609
4610 extern void GL_APIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
4611 #define _es_Viewport _mesa_Viewport
4612
4613
4614 #include "glapi/glapi.h"
4615
4616 #if FEATURE_remap_table
4617
4618 /* define esLocalRemapTable */
4619 #include "es1api/main/dispatch.h"
4620
4621 #define need_MESA_remap_table
4622 #include "es1api/main/remap_helper.h"
4623
4624 static void
4625 init_remap_table(void)
4626 {
4627    _glthread_DECLARE_STATIC_MUTEX(mutex);
4628    static GLboolean initialized = GL_FALSE;
4629    const struct gl_function_pool_remap *remap = MESA_remap_table_functions;
4630    int i;
4631
4632    _glthread_LOCK_MUTEX(mutex);
4633    if (initialized) {
4634       _glthread_UNLOCK_MUTEX(mutex);
4635       return;
4636    }
4637
4638    for (i = 0; i < esLocalRemapTable_size; i++) {
4639       GLint offset;
4640       const char *spec;
4641
4642       /* sanity check */
4643       ASSERT(i == remap[i].remap_index);
4644       spec = _mesa_function_pool + remap[i].pool_index;
4645
4646       offset = _mesa_map_function_spec(spec);
4647       esLocalRemapTable[i] = offset;
4648    }
4649    initialized = GL_TRUE;
4650    _glthread_UNLOCK_MUTEX(mutex);
4651 }
4652
4653 #else /* FEATURE_remap_table */
4654
4655 #include "es1api/main/dispatch.h"
4656
4657 static INLINE void
4658 init_remap_table(void)
4659 {
4660 }
4661
4662 #endif /* FEATURE_remap_table */
4663
4664 struct _glapi_table *
4665 _mesa_create_exec_table_es1(void)
4666 {
4667    struct _glapi_table *exec;
4668
4669    exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
4670    if (exec == NULL)
4671       return NULL;
4672
4673    init_remap_table();
4674
4675     SET_ActiveTexture(exec, _es_ActiveTexture);
4676     SET_AlphaFunc(exec, _es_AlphaFunc);
4677     SET_AlphaFuncx(exec, _es_AlphaFuncx);
4678     SET_BindBuffer(exec, _es_BindBuffer);
4679     SET_BindFramebufferOES(exec, _es_BindFramebufferOES);
4680     SET_BindRenderbufferOES(exec, _es_BindRenderbufferOES);
4681     SET_BindTexture(exec, _es_BindTexture);
4682     SET_BlendEquationOES(exec, _es_BlendEquationOES);
4683     SET_BlendEquationSeparateOES(exec, _es_BlendEquationSeparateOES);
4684     SET_BlendFunc(exec, _es_BlendFunc);
4685     SET_BlendFuncSeparateOES(exec, _es_BlendFuncSeparateOES);
4686     SET_BufferData(exec, _es_BufferData);
4687     SET_BufferSubData(exec, _es_BufferSubData);
4688     SET_CheckFramebufferStatusOES(exec, _es_CheckFramebufferStatusOES);
4689     SET_Clear(exec, _es_Clear);
4690     SET_ClearColor(exec, _es_ClearColor);
4691     SET_ClearColorx(exec, _es_ClearColorx);
4692     SET_ClearDepthf(exec, _es_ClearDepthf);
4693     SET_ClearDepthx(exec, _es_ClearDepthx);
4694     SET_ClearStencil(exec, _es_ClearStencil);
4695     SET_ClientActiveTexture(exec, _es_ClientActiveTexture);
4696     SET_ClipPlanef(exec, _es_ClipPlanef);
4697     SET_ClipPlanex(exec, _es_ClipPlanex);
4698     SET_Color4f(exec, _check_Color4f);
4699     SET_Color4ub(exec, _es_Color4ub);
4700     SET_Color4x(exec, _es_Color4x);
4701     SET_ColorMask(exec, _es_ColorMask);
4702     SET_ColorPointer(exec, _es_ColorPointer);
4703     SET_CompressedTexImage2D(exec, _es_CompressedTexImage2D);
4704     SET_CompressedTexSubImage2D(exec, _es_CompressedTexSubImage2D);
4705     SET_CopyTexImage2D(exec, _es_CopyTexImage2D);
4706     SET_CopyTexSubImage2D(exec, _es_CopyTexSubImage2D);
4707     SET_CullFace(exec, _es_CullFace);
4708     SET_DeleteBuffers(exec, _es_DeleteBuffers);
4709     SET_DeleteFramebuffersOES(exec, _es_DeleteFramebuffersOES);
4710     SET_DeleteRenderbuffersOES(exec, _es_DeleteRenderbuffersOES);
4711     SET_DeleteTextures(exec, _es_DeleteTextures);
4712     SET_DepthFunc(exec, _es_DepthFunc);
4713     SET_DepthMask(exec, _es_DepthMask);
4714     SET_DepthRangef(exec, _es_DepthRangef);
4715     SET_DepthRangex(exec, _es_DepthRangex);
4716     SET_Disable(exec, _es_Disable);
4717     SET_DisableClientState(exec, _es_DisableClientState);
4718     SET_DrawArrays(exec, _es_DrawArrays);
4719     SET_DrawElements(exec, _es_DrawElements);
4720     SET_DrawTexfOES(exec, _es_DrawTexfOES);
4721     SET_DrawTexfvOES(exec, _es_DrawTexfvOES);
4722     SET_DrawTexiOES(exec, _es_DrawTexiOES);
4723     SET_DrawTexivOES(exec, _es_DrawTexivOES);
4724     SET_DrawTexsOES(exec, _es_DrawTexsOES);
4725     SET_DrawTexsvOES(exec, _es_DrawTexsvOES);
4726     SET_DrawTexxOES(exec, _es_DrawTexxOES);
4727     SET_DrawTexxvOES(exec, _es_DrawTexxvOES);
4728     SET_EGLImageTargetRenderbufferStorageOES(exec, _es_EGLImageTargetRenderbufferStorageOES);
4729     SET_EGLImageTargetTexture2DOES(exec, _es_EGLImageTargetTexture2DOES);
4730     SET_Enable(exec, _es_Enable);
4731     SET_EnableClientState(exec, _es_EnableClientState);
4732     SET_Finish(exec, _es_Finish);
4733     SET_Flush(exec, _es_Flush);
4734     SET_Fogf(exec, _es_Fogf);
4735     SET_Fogfv(exec, _es_Fogfv);
4736     SET_Fogx(exec, _es_Fogx);
4737     SET_Fogxv(exec, _es_Fogxv);
4738     SET_FramebufferRenderbufferOES(exec, _es_FramebufferRenderbufferOES);
4739     SET_FramebufferTexture2DOES(exec, _es_FramebufferTexture2DOES);
4740     SET_FrontFace(exec, _es_FrontFace);
4741     SET_Frustumf(exec, _es_Frustumf);
4742     SET_Frustumx(exec, _es_Frustumx);
4743     SET_GenBuffers(exec, _es_GenBuffers);
4744     SET_GenFramebuffersOES(exec, _es_GenFramebuffersOES);
4745     SET_GenRenderbuffersOES(exec, _es_GenRenderbuffersOES);
4746     SET_GenTextures(exec, _es_GenTextures);
4747     SET_GenerateMipmapOES(exec, _es_GenerateMipmapOES);
4748     SET_GetBooleanv(exec, _es_GetBooleanv);
4749     SET_GetBufferParameteriv(exec, _es_GetBufferParameteriv);
4750     SET_GetBufferPointervOES(exec, _es_GetBufferPointervOES);
4751     SET_GetClipPlanef(exec, _es_GetClipPlanef);
4752     SET_GetClipPlanex(exec, _es_GetClipPlanex);
4753     SET_GetError(exec, _es_GetError);
4754     SET_GetFixedv(exec, _es_GetFixedv);
4755     SET_GetFloatv(exec, _es_GetFloatv);
4756     SET_GetFramebufferAttachmentParameterivOES(exec, _es_GetFramebufferAttachmentParameterivOES);
4757     SET_GetIntegerv(exec, _es_GetIntegerv);
4758     SET_GetLightfv(exec, _es_GetLightfv);
4759     SET_GetLightxv(exec, _es_GetLightxv);
4760     SET_GetMaterialfv(exec, _es_GetMaterialfv);
4761     SET_GetMaterialxv(exec, _es_GetMaterialxv);
4762     SET_GetPointerv(exec, _es_GetPointerv);
4763     SET_GetRenderbufferParameterivOES(exec, _es_GetRenderbufferParameterivOES);
4764     SET_GetString(exec, _es_GetString);
4765     SET_GetTexEnvfv(exec, _es_GetTexEnvfv);
4766     SET_GetTexEnviv(exec, _es_GetTexEnviv);
4767     SET_GetTexEnvxv(exec, _es_GetTexEnvxv);
4768     SET_GetTexGenfvOES(exec, _check_GetTexGenfvOES);
4769     SET_GetTexGenivOES(exec, _check_GetTexGenivOES);
4770     SET_GetTexGenxvOES(exec, _check_GetTexGenxvOES);
4771     SET_GetTexParameterfv(exec, _es_GetTexParameterfv);
4772     SET_GetTexParameteriv(exec, _es_GetTexParameteriv);
4773     SET_GetTexParameterxv(exec, _es_GetTexParameterxv);
4774     SET_Hint(exec, _es_Hint);
4775     SET_IsBuffer(exec, _es_IsBuffer);
4776     SET_IsEnabled(exec, _es_IsEnabled);
4777     SET_IsFramebufferOES(exec, _es_IsFramebufferOES);
4778     SET_IsRenderbufferOES(exec, _es_IsRenderbufferOES);
4779     SET_IsTexture(exec, _es_IsTexture);
4780     SET_LightModelf(exec, _es_LightModelf);
4781     SET_LightModelfv(exec, _es_LightModelfv);
4782     SET_LightModelx(exec, _es_LightModelx);
4783     SET_LightModelxv(exec, _es_LightModelxv);
4784     SET_Lightf(exec, _es_Lightf);
4785     SET_Lightfv(exec, _es_Lightfv);
4786     SET_Lightx(exec, _es_Lightx);
4787     SET_Lightxv(exec, _es_Lightxv);
4788     SET_LineWidth(exec, _es_LineWidth);
4789     SET_LineWidthx(exec, _es_LineWidthx);
4790     SET_LoadIdentity(exec, _es_LoadIdentity);
4791     SET_LoadMatrixf(exec, _es_LoadMatrixf);
4792     SET_LoadMatrixx(exec, _es_LoadMatrixx);
4793     SET_LogicOp(exec, _es_LogicOp);
4794     SET_MapBufferOES(exec, _es_MapBufferOES);
4795     SET_Materialf(exec, _check_Materialf);
4796     SET_Materialfv(exec, _check_Materialfv);
4797     SET_Materialx(exec, _es_Materialx);
4798     SET_Materialxv(exec, _es_Materialxv);
4799     SET_MatrixMode(exec, _es_MatrixMode);
4800     SET_MultMatrixf(exec, _es_MultMatrixf);
4801     SET_MultMatrixx(exec, _es_MultMatrixx);
4802     SET_MultiDrawArraysEXT(exec, _es_MultiDrawArraysEXT);
4803     SET_MultiDrawElementsEXT(exec, _es_MultiDrawElementsEXT);
4804     SET_MultiTexCoord4f(exec, _check_MultiTexCoord4f);
4805     SET_MultiTexCoord4x(exec, _es_MultiTexCoord4x);
4806     SET_Normal3f(exec, _check_Normal3f);
4807     SET_Normal3x(exec, _es_Normal3x);
4808     SET_NormalPointer(exec, _es_NormalPointer);
4809     SET_Orthof(exec, _es_Orthof);
4810     SET_Orthox(exec, _es_Orthox);
4811     SET_PixelStorei(exec, _es_PixelStorei);
4812     SET_PointParameterf(exec, _es_PointParameterf);
4813     SET_PointParameterfv(exec, _es_PointParameterfv);
4814     SET_PointParameterx(exec, _es_PointParameterx);
4815     SET_PointParameterxv(exec, _es_PointParameterxv);
4816     SET_PointSize(exec, _es_PointSize);
4817     SET_PointSizePointerOES(exec, _es_PointSizePointerOES);
4818     SET_PointSizex(exec, _es_PointSizex);
4819     SET_PolygonOffset(exec, _es_PolygonOffset);
4820     SET_PolygonOffsetx(exec, _es_PolygonOffsetx);
4821     SET_PopMatrix(exec, _es_PopMatrix);
4822     SET_PushMatrix(exec, _es_PushMatrix);
4823     SET_QueryMatrixxOES(exec, _check_QueryMatrixxOES);
4824     SET_ReadPixels(exec, _es_ReadPixels);
4825     SET_RenderbufferStorageOES(exec, _check_RenderbufferStorageOES);
4826     SET_Rotatef(exec, _es_Rotatef);
4827     SET_Rotatex(exec, _es_Rotatex);
4828     SET_SampleCoverage(exec, _es_SampleCoverage);
4829     SET_SampleCoveragex(exec, _es_SampleCoveragex);
4830     SET_Scalef(exec, _es_Scalef);
4831     SET_Scalex(exec, _es_Scalex);
4832     SET_Scissor(exec, _es_Scissor);
4833     SET_ShadeModel(exec, _es_ShadeModel);
4834     SET_StencilFunc(exec, _es_StencilFunc);
4835     SET_StencilMask(exec, _es_StencilMask);
4836     SET_StencilOp(exec, _es_StencilOp);
4837     SET_TexCoordPointer(exec, _es_TexCoordPointer);
4838     SET_TexEnvf(exec, _es_TexEnvf);
4839     SET_TexEnvfv(exec, _es_TexEnvfv);
4840     SET_TexEnvi(exec, _es_TexEnvi);
4841     SET_TexEnviv(exec, _es_TexEnviv);
4842     SET_TexEnvx(exec, _es_TexEnvx);
4843     SET_TexEnvxv(exec, _es_TexEnvxv);
4844     SET_TexGenfOES(exec, _check_TexGenfOES);
4845     SET_TexGenfvOES(exec, _check_TexGenfvOES);
4846     SET_TexGeniOES(exec, _check_TexGeniOES);
4847     SET_TexGenivOES(exec, _check_TexGenivOES);
4848     SET_TexGenxOES(exec, _check_TexGenxOES);
4849     SET_TexGenxvOES(exec, _check_TexGenxvOES);
4850     SET_TexImage2D(exec, _es_TexImage2D);
4851     SET_TexParameterf(exec, _es_TexParameterf);
4852     SET_TexParameterfv(exec, _es_TexParameterfv);
4853     SET_TexParameteri(exec, _es_TexParameteri);
4854     SET_TexParameteriv(exec, _es_TexParameteriv);
4855     SET_TexParameterx(exec, _es_TexParameterx);
4856     SET_TexParameterxv(exec, _es_TexParameterxv);
4857     SET_TexSubImage2D(exec, _es_TexSubImage2D);
4858     SET_Translatef(exec, _es_Translatef);
4859     SET_Translatex(exec, _es_Translatex);
4860     SET_UnmapBufferOES(exec, _es_UnmapBufferOES);
4861     SET_VertexPointer(exec, _es_VertexPointer);
4862     SET_Viewport(exec, _es_Viewport);
4863
4864    return exec;
4865 }
4866
4867 #endif /* FEATURE_ES1 */