APIspec.xml revision 52d57985c69a0d8dab23db7070e2d83d914438f4
1<?xml version="1.0"?>
2<!DOCTYPE apispec SYSTEM "APIspec.dtd">
3
4<!-- A function is generated from a template.  Multiple functions can be
5     generated from a single template with different arguments.  For example,
6     glColor3f can be generated from
7
8     <function name="Color3f" template="Color" gltype="GLfloat" vector_size="3" expand_vector="true"/>
9
10     and glColor4iv can be generated from
11
12     <function name="Color4iv" template="Color" gltype="GLint" vector_size="4"/>
13
14     In a template, there are <desc>s that describe the properties of
15     parameters.  A <desc> can enumerate the valid values of a parameter.  It
16     can also specify the error code when an invalid value is given, and etc.
17     By nesting <desc>s, they can create dependency between parameters.
18
19     A function can be marked as external.  It means that the function cannot
20     be dispatched to the corresponding mesa function, if one exists, directly,
21     and requires an external implementation.
22-->
23
24<apispec>
25
26<template name="Color">
27	<proto>
28		<return type="void"/>
29		<vector name="v" type="const GLtype *" size="dynamic">
30			<param name="red" type="GLtype"/>
31			<param name="green" type="GLtype"/>
32			<param name="blue" type="GLtype"/>
33			<param name="alpha" type="GLtype"/>
34		</vector>
35	</proto>
36</template>
37
38<template name="ClipPlane">
39	<proto>
40		<return type="void"/>
41		<param name="plane" type="GLenum"/>
42		<vector name="equation" type="const GLtype *" size="4"/>
43	</proto>
44</template>
45
46<template name="CullFace">
47	<proto>
48		<return type="void"/>
49		<param name="mode" type="GLenum"/>
50	</proto>
51</template>
52
53<template name="Fog">
54	<proto>
55		<return type="void"/>
56		<param name="pname" type="GLenum"/>
57		<vector name="params" type="const GLtype *" size="dynamic">
58			<param name="param" type="GLtype"/>
59		</vector>
60	</proto>
61
62        <desc name="pname">
63		<value name="GL_FOG_MODE"/>
64		<desc name="param">
65			<value name="GL_EXP"/>
66			<value name="GL_EXP2"/>
67			<value name="GL_LINEAR"/>
68		</desc>
69        </desc>
70
71	<desc name="pname">
72		<value name="GL_FOG_COLOR"/>
73
74		<desc name="params" vector_size="4"/>
75	</desc>
76
77	<desc name="pname">
78		<value name="GL_FOG_DENSITY"/>
79		<value name="GL_FOG_START"/>
80		<value name="GL_FOG_END"/>
81
82		<desc name="params" vector_size="1"/>
83	</desc>
84</template>
85
86<template name="FrontFace">
87	<proto>
88		<return type="void"/>
89		<param name="mode" type="GLenum"/>
90	</proto>
91</template>
92
93<template name="Hint">
94	<proto>
95		<return type="void"/>
96		<param name="target" type="GLenum"/>
97		<param name="mode" type="GLenum"/>
98	</proto>
99
100	<desc name="target" category="GLES1.1">
101		<value name="GL_FOG_HINT"/>
102		<value name="GL_LINE_SMOOTH_HINT"/>
103		<value name="GL_PERSPECTIVE_CORRECTION_HINT"/>
104		<value name="GL_POINT_SMOOTH_HINT"/>
105	</desc>
106	<desc name="target" category="OES_standard_derivatives">
107		<value name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
108	</desc>
109	<desc name="target">
110		<value name="GL_GENERATE_MIPMAP_HINT"/>
111	</desc>
112
113	<desc name="mode">
114		<value name="GL_FASTEST"/>
115		<value name="GL_NICEST"/>
116		<value name="GL_DONT_CARE"/>
117	</desc>
118</template>
119
120<template name="Light">
121	<proto>
122		<return type="void"/>
123		<param name="light" type="GLenum"/>
124		<param name="pname" type="GLenum"/>
125		<vector name="params" type="const GLtype *" size="dynamic">
126			<param name="param" type="GLtype"/>
127		</vector>
128	</proto>
129
130	<desc name="light">
131		<range base="GL_LIGHT" from="0" to="7"/>
132	</desc>
133
134	<desc name="pname">
135		<value name="GL_AMBIENT"/>
136		<value name="GL_DIFFUSE"/>
137		<value name="GL_SPECULAR"/>
138		<value name="GL_POSITION"/>
139
140		<desc name="params" vector_size="4"/>
141	</desc>
142
143	<desc name="pname">
144		<value name="GL_SPOT_DIRECTION"/>
145
146		<desc name="params" vector_size="3"/>
147	</desc>
148
149	<desc name="pname">
150		<value name="GL_SPOT_EXPONENT"/>
151		<value name="GL_SPOT_CUTOFF"/>
152		<value name="GL_CONSTANT_ATTENUATION"/>
153		<value name="GL_LINEAR_ATTENUATION"/>
154		<value name="GL_QUADRATIC_ATTENUATION"/>
155
156		<desc name="params" vector_size="1"/>
157	</desc>
158</template>
159
160<template name="LightModel">
161	<proto>
162		<return type="void"/>
163		<param name="pname" type="GLenum"/>
164		<vector name="params" type="const GLtype *" size="dynamic">
165			<param name="param" type="GLtype"/>
166		</vector>
167	</proto>
168
169	<desc name="pname">
170		<value name="GL_LIGHT_MODEL_AMBIENT"/>
171
172		<desc name="params" vector_size="4"/>
173	</desc>
174
175	<desc name="pname">
176		<value name="GL_LIGHT_MODEL_TWO_SIDE"/>
177		<desc name="param">
178			<value name="GL_TRUE"/>
179			<value name="GL_FALSE"/>
180		</desc>
181	</desc>
182</template>
183
184<template name="LineWidth">
185	<proto>
186		<return type="void"/>
187		<param name="width" type="GLtype"/>
188	</proto>
189</template>
190
191<template name="Material">
192	<proto>
193		<return type="void"/>
194		<param name="face" type="GLenum"/>
195		<param name="pname" type="GLenum"/>
196		<vector name="params" type="const GLtype *" size="dynamic">
197			<param name="param" type="GLtype"/>
198		</vector>
199	</proto>
200
201	<desc name="face">
202		<value name="GL_FRONT_AND_BACK"/>
203	</desc>
204
205	<desc name="pname">
206		<value name="GL_AMBIENT"/>
207		<value name="GL_DIFFUSE"/>
208		<value name="GL_AMBIENT_AND_DIFFUSE"/>
209		<value name="GL_SPECULAR"/>
210		<value name="GL_EMISSION"/>
211
212		<desc name="params" vector_size="4"/>
213	</desc>
214
215	<desc name="pname">
216		<value name="GL_SHININESS"/>
217
218		<desc name="params" vector_size="1"/>
219	</desc>
220</template>
221
222<template name="PointSize">
223	<proto>
224		<return type="void"/>
225		<param name="size" type="GLtype"/>
226	</proto>
227</template>
228
229<template name="PointSizePointer">
230	<proto>
231		<return type="void"/>
232		<param name="type" type="GLenum"/>
233		<param name="stride" type="GLsizei"/>
234		<param name="pointer" type="const GLvoid *"/>
235	</proto>
236
237	<desc name="type">
238		<value name="GL_FLOAT"/>
239		<value name="GL_FIXED"/>
240	</desc>
241</template>
242
243<template name="Scissor">
244	<proto>
245		<return type="void"/>
246		<param name="x" type="GLint"/>
247		<param name="y" type="GLint"/>
248		<param name="width" type="GLsizei"/>
249		<param name="height" type="GLsizei"/>
250	</proto>
251</template>
252
253<template name="ShadeModel">
254	<proto>
255		<return type="void"/>
256		<param name="mode" type="GLenum"/>
257	</proto>
258
259	<desc name="mode">
260		<value name="GL_FLAT"/>
261		<value name="GL_SMOOTH"/>
262	</desc>
263</template>
264
265<template name="TexParameter">
266	<proto>
267		<return type="void"/>
268		<param name="target" type="GLenum"/>
269		<param name="pname" type="GLenum"/>
270		<vector name="params" type="const GLtype *" size="dynamic">
271			<param name="param" type="GLtype"/>
272		</vector>
273	</proto>
274
275	<desc name="target">
276		<value name="GL_TEXTURE_2D"/>
277		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
278		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
279		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
280		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
281	</desc>
282
283	<desc name="pname">
284		<value name="GL_TEXTURE_WRAP_S"/>
285		<value name="GL_TEXTURE_WRAP_T"/>
286		<value name="GL_TEXTURE_WRAP_R_OES" category="OES_texture_3D"/>
287
288		<desc name="param">
289			<value name="GL_CLAMP_TO_EDGE"/>
290			<value name="GL_REPEAT"/>
291			<value name="GL_MIRRORED_REPEAT" category="GLES2.0"/>
292			<value name="GL_MIRRORED_REPEAT_OES" category="OES_texture_mirrored_repeat"/>
293		</desc>
294	</desc>
295
296        <desc name="pname">
297               <value name="GL_TEXTURE_MIN_FILTER"/>
298               <value name="GL_TEXTURE_MAG_FILTER"/>
299		<value name="GL_TEXTURE_MAX_ANISOTROPY_EXT" category="EXT_texture_filter_anisotropic"/>
300        </desc>
301
302	<desc name="pname" category="GLES1.1">
303		<value name="GL_GENERATE_MIPMAP"/>
304
305		<desc name="param">
306			<value name="GL_TRUE"/>
307			<value name="GL_FALSE"/>
308		</desc>
309	</desc>
310
311	<desc name="pname" category="OES_draw_texture">
312		<value name="GL_TEXTURE_CROP_RECT_OES"/>
313		<desc name="params" vector_size="4"/>
314	</desc>
315</template>
316
317<template name="TexImage2D">
318	<proto>
319		<return type="void"/>
320		<param name="target" type="GLenum"/>
321		<param name="level" type="GLint"/>
322		<param name="internalFormat" type="GLint"/> <!-- should be GLenum -->
323		<param name="width" type="GLsizei"/>
324		<param name="height" type="GLsizei"/>
325		<param name="border" type="GLint"/>
326		<param name="format" type="GLenum"/>
327		<param name="type" type="GLenum"/>
328		<param name="pixels" type="const GLvoid *"/>
329	</proto>
330
331	<desc name="target">
332		<value name="GL_TEXTURE_2D"/>
333		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
334		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
335		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
336		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
337		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
338		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
339		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
340		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
341		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
342		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
343		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
344		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
345	</desc>
346
347	<desc name="internalFormat">
348		<value name="GL_ALPHA"/>
349
350		<desc name="format" error="GL_INVALID_VALUE">
351			<value name="GL_ALPHA"/>
352		</desc>
353	</desc>
354
355	<desc name="internalFormat">
356		<value name="GL_RGB"/>
357
358		<desc name="format" error="GL_INVALID_VALUE">
359			<value name="GL_RGB"/>
360		</desc>
361	</desc>
362
363	<desc name="internalFormat">
364		<value name="GL_RGBA"/>
365
366		<desc name="format" error="GL_INVALID_VALUE">
367			<value name="GL_RGBA"/>
368		</desc>
369	</desc>
370
371	<desc name="internalFormat">
372		<value name="GL_LUMINANCE"/>
373
374		<desc name="format" error="GL_INVALID_VALUE">
375			<value name="GL_LUMINANCE"/>
376		</desc>
377	</desc>
378
379	<desc name="internalFormat">
380		<value name="GL_LUMINANCE_ALPHA"/>
381
382		<desc name="format" error="GL_INVALID_VALUE">
383			<value name="GL_LUMINANCE_ALPHA"/>
384		</desc>
385	</desc>
386
387	<desc name="internalFormat" category="OES_depth_texture">
388		<value name="GL_DEPTH_COMPONENT"/>
389
390		<desc name="format" error="GL_INVALID_VALUE">
391			<value name="GL_DEPTH_COMPONENT"/>
392		</desc>
393	</desc>
394
395	<desc name="internalFormat" category="OES_packed_depth_stencil">
396		<value name="GL_DEPTH_STENCIL_OES"/>
397
398		<desc name="format" error="GL_INVALID_VALUE">
399			<value name="GL_DEPTH_STENCIL_OES"/>
400		</desc>
401	</desc>
402
403	<desc name="internalFormat" category="EXT_texture_format_BGRA8888">
404		<value name="GL_BGRA_EXT"/>
405
406		<desc name="format" error="GL_INVALID_VALUE">
407			<value name="GL_BGRA_EXT"/>
408		</desc>
409	</desc>
410
411	<desc name="border" error="GL_INVALID_VALUE">
412		<value name="0"/>
413	</desc>
414
415	<desc name="format">
416		<value name="GL_ALPHA"/>
417
418		<desc name="type" error="GL_INVALID_OPERATION">
419			<value name="GL_UNSIGNED_BYTE"/>
420			<value name="GL_FLOAT" category="OES_texture_float"/>
421			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
422		</desc>
423	</desc>
424
425	<desc name="format">
426		<value name="GL_RGB"/>
427
428		<desc name="type" error="GL_INVALID_OPERATION">
429			<value name="GL_UNSIGNED_BYTE"/>
430			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
431			<value name="GL_FLOAT" category="OES_texture_float"/>
432			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
433		</desc>
434	</desc>
435
436	<desc name="format">
437		<value name="GL_RGBA"/>
438
439		<desc name="type" error="GL_INVALID_OPERATION">
440			<value name="GL_UNSIGNED_BYTE"/>
441			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
442			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
443			<value name="GL_FLOAT" category="OES_texture_float"/>
444			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
445			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
446		</desc>
447	</desc>
448
449	<desc name="format">
450		<value name="GL_LUMINANCE"/>
451
452		<desc name="type" error="GL_INVALID_OPERATION">
453			<value name="GL_UNSIGNED_BYTE"/>
454			<value name="GL_FLOAT" category="OES_texture_float"/>
455			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
456		</desc>
457	</desc>
458
459	<desc name="format">
460		<value name="GL_LUMINANCE_ALPHA"/>
461
462		<desc name="type" error="GL_INVALID_OPERATION">
463			<value name="GL_UNSIGNED_BYTE"/>
464			<value name="GL_FLOAT" category="OES_texture_float"/>
465			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
466		</desc>
467	</desc>
468
469	<desc name="format" category="OES_depth_texture">
470		<value name="GL_DEPTH_COMPONENT"/>
471
472		<desc name="type" error="GL_INVALID_OPERATION">
473			<value name="GL_UNSIGNED_SHORT"/>
474			<value name="GL_UNSIGNED_INT"/>
475		</desc>
476	</desc>
477
478	<desc name="format" category="OES_packed_depth_stencil">
479		<value name="GL_DEPTH_STENCIL_OES"/>
480		<desc name="type" error="GL_INVALID_OPERATION">
481			<value name="GL_UNSIGNED_INT_24_8_OES"/>
482		</desc>
483	</desc>
484
485	<desc name="format" category="EXT_texture_format_BGRA8888">
486		<value name="GL_BGRA_EXT"/>
487
488		<desc name="type" error="GL_INVALID_OPERATION">
489			<value name="GL_UNSIGNED_BYTE"/>
490		</desc>
491	</desc>
492</template>
493
494<template name="TexEnv">
495	<proto>
496		<return type="void"/>
497		<param name="target" type="GLenum"/>
498		<param name="pname" type="GLenum"/>
499		<vector name="params" type="const GLtype *" size="dynamic">
500			<param name="param" type="GLtype"/>
501		</vector>
502	</proto>
503
504	<desc name="target" category="OES_point_sprite">
505		<value name="GL_POINT_SPRITE_OES"/>
506
507		<desc name="pname">
508			<value name="GL_COORD_REPLACE_OES"/>
509		</desc>
510	</desc>
511
512	<desc name="pname" category="OES_point_sprite">
513		<value name="GL_COORD_REPLACE_OES"/>
514
515		<desc name="param">
516			<value name="GL_TRUE"/>
517			<value name="GL_FALSE"/>
518		</desc>
519	</desc>
520
521	<desc name="target" category="EXT_texture_lod_bias">
522		<value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
523
524		<desc name="pname">
525			<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
526		</desc>
527	</desc>
528
529	<desc name="pname" category="EXT_texture_lod_bias">
530		<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
531		<desc name="params" vector_size="1"/>
532	</desc>
533
534	<desc name="target">
535		<value name="GL_TEXTURE_ENV"/>
536
537		<desc name="pname">
538			<value name="GL_TEXTURE_ENV_MODE"/>
539			<value name="GL_COMBINE_RGB"/>
540			<value name="GL_COMBINE_ALPHA"/>
541			<value name="GL_RGB_SCALE"/>
542			<value name="GL_ALPHA_SCALE"/>
543			<value name="GL_SRC0_RGB"/>
544			<value name="GL_SRC1_RGB"/>
545			<value name="GL_SRC2_RGB"/>
546			<value name="GL_SRC0_ALPHA"/>
547			<value name="GL_SRC1_ALPHA"/>
548			<value name="GL_SRC2_ALPHA"/>
549			<value name="GL_OPERAND0_RGB"/>
550			<value name="GL_OPERAND1_RGB"/>
551			<value name="GL_OPERAND2_RGB"/>
552			<value name="GL_OPERAND0_ALPHA"/>
553			<value name="GL_OPERAND1_ALPHA"/>
554			<value name="GL_OPERAND2_ALPHA"/>
555			<value name="GL_TEXTURE_ENV_COLOR"/>
556		</desc>
557	</desc>
558
559	<desc name="pname">
560		<value name="GL_TEXTURE_ENV_MODE"/>
561
562		<desc name="param">
563			<value name="GL_REPLACE"/>
564			<value name="GL_MODULATE"/>
565			<value name="GL_DECAL"/>
566			<value name="GL_BLEND"/>
567			<value name="GL_ADD"/>
568			<value name="GL_COMBINE"/>
569		</desc>
570	</desc>
571
572	<desc name="pname">
573		<value name="GL_COMBINE_RGB"/>
574
575		<desc name="param">
576			<value name="GL_REPLACE"/>
577			<value name="GL_MODULATE"/>
578			<value name="GL_ADD"/>
579			<value name="GL_ADD_SIGNED"/>
580			<value name="GL_INTERPOLATE"/>
581			<value name="GL_SUBTRACT"/>
582			<value name="GL_DOT3_RGB"/>
583			<value name="GL_DOT3_RGBA"/>
584		</desc>
585	</desc>
586
587	<desc name="pname">
588		<value name="GL_COMBINE_ALPHA"/>
589
590		<desc name="param">
591			<value name="GL_REPLACE"/>
592			<value name="GL_MODULATE"/>
593			<value name="GL_ADD"/>
594			<value name="GL_ADD_SIGNED"/>
595			<value name="GL_INTERPOLATE"/>
596			<value name="GL_SUBTRACT"/>
597		</desc>
598	</desc>
599
600	<desc name="pname">
601		<value name="GL_RGB_SCALE"/>
602		<value name="GL_ALPHA_SCALE"/>
603	</desc>
604
605	<desc name="pname">
606		<value name="GL_SRC0_RGB"/>
607		<value name="GL_SRC1_RGB"/>
608		<value name="GL_SRC2_RGB"/>
609		<value name="GL_SRC0_ALPHA"/>
610		<value name="GL_SRC1_ALPHA"/>
611		<value name="GL_SRC2_ALPHA"/>
612
613		<desc name="param">
614			<value name="GL_TEXTURE"/>
615			<value name="GL_CONSTANT"/>
616			<value name="GL_PRIMARY_COLOR"/>
617			<value name="GL_PREVIOUS"/>
618
619			<range base="GL_TEXTURE" from="0" to="31" category="OES_texture_env_crossbar"/>
620		</desc>
621	</desc>
622
623	<desc name="pname">
624		<value name="GL_OPERAND0_RGB"/>
625		<value name="GL_OPERAND1_RGB"/>
626		<value name="GL_OPERAND2_RGB"/>
627
628		<desc name="param">
629			<value name="GL_SRC_COLOR"/>
630			<value name="GL_ONE_MINUS_SRC_COLOR"/>
631			<value name="GL_SRC_ALPHA"/>
632			<value name="GL_ONE_MINUS_SRC_ALPHA"/>
633		</desc>
634	</desc>
635
636	<desc name="pname">
637		<value name="GL_OPERAND0_ALPHA"/>
638		<value name="GL_OPERAND1_ALPHA"/>
639		<value name="GL_OPERAND2_ALPHA"/>
640
641		<desc name="param">
642			<value name="GL_SRC_ALPHA"/>
643			<value name="GL_ONE_MINUS_SRC_ALPHA"/>
644		</desc>
645	</desc>
646
647	<desc name="pname">
648		<value name="GL_TEXTURE_ENV_COLOR"/>
649
650		<desc name="params" vector_size="4"/>
651	</desc>
652</template>
653
654<template name="TexGen">
655	<proto>
656		<return type="void"/>
657		<param name="coord" type="GLenum"/>
658		<param name="pname" type="GLenum"/>
659		<vector name="params" type="const GLtype *" size="dynamic">
660			<param name="param" type="GLtype"/>
661		</vector>
662	</proto>
663
664	<desc name="coord" category="OES_texture_cube_map">
665		<value name="GL_TEXTURE_GEN_STR_OES"/>
666	</desc>
667
668	<desc name="pname" category="OES_texture_cube_map">
669		<value name="GL_TEXTURE_GEN_MODE_OES"/>
670
671		<desc name="param">
672			<value name="GL_NORMAL_MAP_OES"/>
673			<value name="GL_REFLECTION_MAP_OES"/>
674		</desc>
675	</desc>
676</template>
677
678<template name="Clear">
679	<proto>
680		<return type="void"/>
681		<param name="mask" type="GLbitfield"/>
682	</proto>
683
684	<desc name="mask" error="GL_INVALID_VALUE">
685		<value name="0"/>
686		<value name="(GL_COLOR_BUFFER_BIT)"/>
687		<value name="(GL_DEPTH_BUFFER_BIT)"/>
688		<value name="(GL_STENCIL_BUFFER_BIT)"/>
689		<value name="(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)"/>
690		<value name="(GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
691		<value name="(GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
692		<value name="(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
693	</desc>
694</template>
695
696<template name="ClearColor">
697	<proto>
698		<return type="void"/>
699		<param name="red" type="GLtype"/>
700		<param name="green" type="GLtype"/>
701		<param name="blue" type="GLtype"/>
702		<param name="alpha" type="GLtype"/>
703	</proto>
704</template>
705
706<template name="ClearStencil">
707	<proto>
708		<return type="void"/>
709		<param name="s" type="GLint"/>
710	</proto>
711</template>
712
713<template name="ClearDepth">
714	<proto>
715		<return type="void"/>
716		<param name="depth" type="GLtype"/>
717	</proto>
718</template>
719
720<template name="StencilMask">
721	<proto>
722		<return type="void"/>
723		<param name="mask" type="GLuint"/>
724	</proto>
725</template>
726
727<template name="StencilMaskSeparate">
728	<proto>
729		<return type="void"/>
730		<param name="face" type="GLenum"/>
731		<param name="mask" type="GLuint"/>
732	</proto>
733
734	<desc name="face">
735		<value name="GL_FRONT"/>
736		<value name="GL_BACK"/>
737		<value name="GL_FRONT_AND_BACK"/>
738	</desc>
739</template>
740
741<template name="ColorMask">
742	<proto>
743		<return type="void"/>
744		<param name="red" type="GLboolean"/>
745		<param name="green" type="GLboolean"/>
746		<param name="blue" type="GLboolean"/>
747		<param name="alpha" type="GLboolean"/>
748	</proto>
749</template>
750
751<template name="DepthMask">
752	<proto>
753		<return type="void"/>
754		<param name="flag" type="GLboolean"/>
755	</proto>
756</template>
757
758<template name="Disable">
759	<proto>
760		<return type="void"/>
761		<param name="cap" type="GLenum"/>
762	</proto>
763
764	<desc name="cap" category="GLES1.1">
765		<value name="GL_NORMALIZE"/>
766		<value name="GL_RESCALE_NORMAL"/>
767
768		<range base="GL_CLIP_PLANE" from="0" to="5"/>
769		<value name="GL_CLIP_PLANE0+6"/>
770		<value name="GL_CLIP_PLANE0+7"/>
771
772		<value name="GL_FOG"/>
773		<value name="GL_LIGHTING"/>
774		<value name="GL_COLOR_MATERIAL"/>
775
776		<range base="GL_LIGHT" from="0" to="7"/>
777
778		<value name="GL_POINT_SMOOTH"/>
779		<value name="GL_LINE_SMOOTH"/>
780		<value name="GL_CULL_FACE"/>
781		<value name="GL_POLYGON_OFFSET_FILL"/>
782		<value name="GL_MULTISAMPLE"/>
783		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
784		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
785		<value name="GL_SAMPLE_COVERAGE"/>
786		<value name="GL_TEXTURE_2D"/>
787		<value name="GL_SCISSOR_TEST"/>
788		<value name="GL_ALPHA_TEST"/>
789		<value name="GL_STENCIL_TEST"/>
790		<value name="GL_DEPTH_TEST"/>
791		<value name="GL_BLEND"/>
792		<value name="GL_DITHER"/>
793		<value name="GL_COLOR_LOGIC_OP"/>
794
795		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
796		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
797		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
798		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
799		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
800	</desc>
801
802	<desc name="cap" category="GLES2.0">
803		<value name="GL_CULL_FACE"/>
804		<value name="GL_SCISSOR_TEST"/>
805		<value name="GL_POLYGON_OFFSET_FILL"/>
806		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
807		<value name="GL_SAMPLE_COVERAGE"/>
808		<value name="GL_STENCIL_TEST"/>
809		<value name="GL_DEPTH_TEST"/>
810		<value name="GL_DITHER"/>
811		<value name="GL_BLEND"/>
812	</desc>
813</template>
814
815<!-- it is exactly the same as Disable -->
816<template name="Enable">
817	<proto>
818		<return type="void"/>
819		<param name="cap" type="GLenum"/>
820	</proto>
821
822	<desc name="cap" category="GLES1.1">
823		<value name="GL_NORMALIZE"/>
824		<value name="GL_RESCALE_NORMAL"/>
825
826		<range base="GL_CLIP_PLANE" from="0" to="5"/>
827		<value name="GL_CLIP_PLANE0+6"/>
828		<value name="GL_CLIP_PLANE0+7"/>
829
830		<value name="GL_FOG"/>
831		<value name="GL_LIGHTING"/>
832		<value name="GL_COLOR_MATERIAL"/>
833
834		<range base="GL_LIGHT" from="0" to="7"/>
835
836		<value name="GL_POINT_SMOOTH"/>
837		<value name="GL_LINE_SMOOTH"/>
838		<value name="GL_CULL_FACE"/>
839		<value name="GL_POLYGON_OFFSET_FILL"/>
840		<value name="GL_MULTISAMPLE"/>
841		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
842		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
843		<value name="GL_SAMPLE_COVERAGE"/>
844		<value name="GL_TEXTURE_2D"/>
845		<value name="GL_SCISSOR_TEST"/>
846		<value name="GL_ALPHA_TEST"/>
847		<value name="GL_STENCIL_TEST"/>
848		<value name="GL_DEPTH_TEST"/>
849		<value name="GL_BLEND"/>
850		<value name="GL_DITHER"/>
851		<value name="GL_COLOR_LOGIC_OP"/>
852
853		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
854		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
855		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
856		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
857		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
858	</desc>
859
860	<desc name="cap" category="GLES2.0">
861		<value name="GL_CULL_FACE"/>
862		<value name="GL_SCISSOR_TEST"/>
863		<value name="GL_POLYGON_OFFSET_FILL"/>
864		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
865		<value name="GL_SAMPLE_COVERAGE"/>
866		<value name="GL_STENCIL_TEST"/>
867		<value name="GL_DEPTH_TEST"/>
868		<value name="GL_DITHER"/>
869		<value name="GL_BLEND"/>
870	</desc>
871</template>
872
873<template name="Finish">
874	<proto>
875		<return type="void"/>
876	</proto>
877</template>
878
879<template name="Flush">
880	<proto>
881		<return type="void"/>
882	</proto>
883</template>
884
885<template name="AlphaFunc">
886	<proto>
887		<return type="void"/>
888		<param name="func" type="GLenum"/>
889		<param name="ref" type="GLtype"/>
890	</proto>
891	<desc name="func">
892		<value name="GL_NEVER"/>
893		<value name="GL_LESS"/>
894		<value name="GL_EQUAL"/>
895		<value name="GL_LEQUAL"/>
896		<value name="GL_GREATER"/>
897		<value name="GL_NOTEQUAL"/>
898		<value name="GL_GEQUAL"/>
899		<value name="GL_ALWAYS"/>
900	</desc>
901</template>
902
903<template name="BlendFunc">
904	<proto>
905		<return type="void"/>
906		<param name="sfactor" type="GLenum"/>
907		<param name="dfactor" type="GLenum"/>
908	</proto>
909
910	<desc name="sfactor">
911		<value name="GL_ZERO"/>
912		<value name="GL_ONE"/>
913		<value name="GL_SRC_COLOR"/>
914		<value name="GL_ONE_MINUS_SRC_COLOR"/>
915		<value name="GL_SRC_ALPHA"/>
916		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
917		<value name="GL_DST_ALPHA"/>
918		<value name="GL_ONE_MINUS_DST_ALPHA"/>
919		<value name="GL_DST_COLOR"/>
920		<value name="GL_ONE_MINUS_DST_COLOR"/>
921		<value name="GL_SRC_ALPHA_SATURATE"/>
922
923		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
924		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
925		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
926		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
927	</desc>
928
929	<desc name="dfactor">
930		<value name="GL_ZERO"/>
931		<value name="GL_ONE"/>
932		<value name="GL_SRC_COLOR"/>
933		<value name="GL_ONE_MINUS_SRC_COLOR"/>
934		<value name="GL_SRC_ALPHA"/>
935		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
936		<value name="GL_DST_ALPHA"/>
937		<value name="GL_ONE_MINUS_DST_ALPHA"/>
938		<value name="GL_DST_COLOR"/>
939		<value name="GL_ONE_MINUS_DST_COLOR"/>
940
941		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
942		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
943		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
944		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
945	</desc>
946</template>
947
948<template name="LogicOp">
949	<proto>
950		<return type="void"/>
951		<param name="opcode" type="GLenum"/>
952	</proto>
953
954	<desc name="opcode">
955		<value name="GL_CLEAR"/>
956		<value name="GL_SET"/>
957		<value name="GL_COPY"/>
958		<value name="GL_COPY_INVERTED"/>
959		<value name="GL_NOOP"/>
960		<value name="GL_INVERT"/>
961		<value name="GL_AND"/>
962		<value name="GL_NAND"/>
963		<value name="GL_OR"/>
964		<value name="GL_NOR"/>
965		<value name="GL_XOR"/>
966		<value name="GL_EQUIV"/>
967		<value name="GL_AND_REVERSE"/>
968		<value name="GL_AND_INVERTED"/>
969		<value name="GL_OR_REVERSE"/>
970		<value name="GL_OR_INVERTED"/>
971	</desc>
972</template>
973
974<template name="StencilFunc">
975	<proto>
976		<return type="void"/>
977		<param name="func" type="GLenum"/>
978		<param name="ref" type="GLint"/>
979		<param name="mask" type="GLuint"/>
980	</proto>
981
982	<desc name="func">
983		<value name="GL_NEVER"/>
984		<value name="GL_LESS"/>
985		<value name="GL_LEQUAL"/>
986		<value name="GL_GREATER"/>
987		<value name="GL_GEQUAL"/>
988		<value name="GL_EQUAL"/>
989		<value name="GL_NOTEQUAL"/>
990		<value name="GL_ALWAYS"/>
991	</desc>
992</template>
993
994<template name="StencilFuncSeparate">
995	<proto>
996		<return type="void"/>
997		<param name="face" type="GLenum"/>
998		<param name="func" type="GLenum"/>
999		<param name="ref" type="GLint"/>
1000		<param name="mask" type="GLuint"/>
1001	</proto>
1002
1003	<desc name="face">
1004		<value name="GL_FRONT"/>
1005		<value name="GL_BACK"/>
1006		<value name="GL_FRONT_AND_BACK"/>
1007	</desc>
1008
1009	<desc name="func">
1010		<value name="GL_NEVER"/>
1011		<value name="GL_LESS"/>
1012		<value name="GL_LEQUAL"/>
1013		<value name="GL_GREATER"/>
1014		<value name="GL_GEQUAL"/>
1015		<value name="GL_EQUAL"/>
1016		<value name="GL_NOTEQUAL"/>
1017		<value name="GL_ALWAYS"/>
1018	</desc>
1019</template>
1020
1021<template name="StencilOp">
1022	<proto>
1023		<return type="void"/>
1024		<param name="fail" type="GLenum"/>
1025		<param name="zfail" type="GLenum"/>
1026		<param name="zpass" type="GLenum"/>
1027	</proto>
1028
1029	<desc name="fail">
1030		<value name="GL_KEEP"/>
1031		<value name="GL_ZERO"/>
1032		<value name="GL_REPLACE"/>
1033		<value name="GL_INCR"/>
1034		<value name="GL_DECR"/>
1035		<value name="GL_INVERT"/>
1036		<value name="GL_INCR_WRAP" category="GLES2.0"/>
1037		<value name="GL_DECR_WRAP" category="GLES2.0"/>
1038		<value name="GL_INCR_WRAP_OES" category="OES_stencil_wrap"/>
1039		<value name="GL_DECR_WRAP_OES" category="OES_stencil_wrap"/>
1040	</desc>
1041
1042	<desc name="zfail">
1043		<value name="GL_KEEP"/>
1044		<value name="GL_ZERO"/>
1045		<value name="GL_REPLACE"/>
1046		<value name="GL_INCR"/>
1047		<value name="GL_DECR"/>
1048		<value name="GL_INVERT"/>
1049		<value name="GL_INCR_WRAP" category="GLES2.0"/>
1050		<value name="GL_DECR_WRAP" category="GLES2.0"/>
1051		<value name="GL_INCR_WRAP_OES" category="OES_stencil_wrap"/>
1052		<value name="GL_DECR_WRAP_OES" category="OES_stencil_wrap"/>
1053	</desc>
1054
1055	<desc name="zpass">
1056		<value name="GL_KEEP"/>
1057		<value name="GL_ZERO"/>
1058		<value name="GL_REPLACE"/>
1059		<value name="GL_INCR"/>
1060		<value name="GL_DECR"/>
1061		<value name="GL_INVERT"/>
1062		<value name="GL_INCR_WRAP" category="GLES2.0"/>
1063		<value name="GL_DECR_WRAP" category="GLES2.0"/>
1064		<value name="GL_INCR_WRAP_OES" category="OES_stencil_wrap"/>
1065		<value name="GL_DECR_WRAP_OES" category="OES_stencil_wrap"/>
1066	</desc>
1067</template>
1068
1069<template name="StencilOpSeparate">
1070	<proto>
1071		<return type="void"/>
1072		<param name="face" type="GLenum"/>
1073		<param name="fail" type="GLenum"/>
1074		<param name="zfail" type="GLenum"/>
1075		<param name="zpass" type="GLenum"/>
1076	</proto>
1077
1078	<desc name="face">
1079		<value name="GL_FRONT"/>
1080		<value name="GL_BACK"/>
1081		<value name="GL_FRONT_AND_BACK"/>
1082	</desc>
1083
1084	<desc name="fail">
1085		<value name="GL_KEEP"/>
1086		<value name="GL_ZERO"/>
1087		<value name="GL_REPLACE"/>
1088		<value name="GL_INCR"/>
1089		<value name="GL_DECR"/>
1090		<value name="GL_INVERT"/>
1091		<value name="GL_INCR_WRAP"/>
1092		<value name="GL_DECR_WRAP"/>
1093	</desc>
1094
1095	<desc name="zfail">
1096		<value name="GL_KEEP"/>
1097		<value name="GL_ZERO"/>
1098		<value name="GL_REPLACE"/>
1099		<value name="GL_INCR"/>
1100		<value name="GL_DECR"/>
1101		<value name="GL_INVERT"/>
1102		<value name="GL_INCR_WRAP"/>
1103		<value name="GL_DECR_WRAP"/>
1104	</desc>
1105
1106	<desc name="zpass">
1107		<value name="GL_KEEP"/>
1108		<value name="GL_ZERO"/>
1109		<value name="GL_REPLACE"/>
1110		<value name="GL_INCR"/>
1111		<value name="GL_DECR"/>
1112		<value name="GL_INVERT"/>
1113		<value name="GL_INCR_WRAP"/>
1114		<value name="GL_DECR_WRAP"/>
1115	</desc>
1116</template>
1117
1118<template name="DepthFunc">
1119	<proto>
1120		<return type="void"/>
1121		<param name="func" type="GLenum"/>
1122	</proto>
1123
1124	<desc name="func">
1125		<value name="GL_NEVER"/>
1126		<value name="GL_LESS"/>
1127		<value name="GL_EQUAL"/>
1128		<value name="GL_LEQUAL"/>
1129		<value name="GL_GREATER"/>
1130		<value name="GL_NOTEQUAL"/>
1131		<value name="GL_GEQUAL"/>
1132		<value name="GL_ALWAYS"/>
1133	</desc>
1134</template>
1135
1136<template name="PixelStore">
1137	<proto>
1138		<return type="void"/>
1139		<param name="pname" type="GLenum"/>
1140		<param name="param" type="GLtype"/>
1141	</proto>
1142
1143	<desc name="pname">
1144		<value name="GL_PACK_ALIGNMENT"/>
1145		<desc name="param" error="GL_INVALID_VALUE">
1146			<value name="1"/>
1147			<value name="2"/>
1148			<value name="4"/>
1149			<value name="8"/>
1150		</desc>
1151	</desc>
1152
1153	<desc name="pname">
1154		<value name="GL_UNPACK_ALIGNMENT"/>
1155		<desc name="param" error="GL_INVALID_VALUE">
1156			<value name="1"/>
1157			<value name="2"/>
1158			<value name="4"/>
1159			<value name="8"/>
1160		</desc>
1161	</desc>
1162
1163	<desc name="pname" category="EXT_unpack_subimage">
1164		<value name="GL_UNPACK_ROW_LENGTH"/>
1165		<value name="GL_UNPACK_SKIP_PIXELS"/>
1166		<value name="GL_UNPACK_SKIP_ROWS"/>
1167	</desc>
1168
1169</template>
1170
1171<template name="ReadPixels" direction="get">
1172	<proto>
1173		<return type="void"/>
1174		<param name="x" type="GLint"/>
1175		<param name="y" type="GLint"/>
1176		<param name="width" type="GLsizei"/>
1177		<param name="height" type="GLsizei"/>
1178		<param name="format" type="GLenum"/>
1179		<param name="type" type="GLenum"/>
1180		<param name="pixels" type="GLvoid *"/>
1181	</proto>
1182
1183	<!-- Technically, only two combinations are actually allowed:
1184	     GL_RGBA/GL_UNSIGNED_BYTE, and some implementation-specific
1185	     internal preferred combination.  I don't know what that is, so I'm
1186	     allowing any valid combination for now; the underlying support
1187	     should fail when necessary.-->
1188	<desc name="format">
1189		<value name="GL_ALPHA"/>
1190		<desc name="type" error="GL_INVALID_OPERATION">
1191			<value name="GL_UNSIGNED_BYTE"/>
1192		</desc>
1193	</desc>
1194
1195	<desc name="format">
1196		<value name="GL_RGB"/>
1197		<desc name="type" error="GL_INVALID_OPERATION">
1198			<value name="GL_UNSIGNED_BYTE"/>
1199			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
1200		</desc>
1201	</desc>
1202
1203	<desc name="format">
1204		<value name="GL_RGBA"/>
1205		<desc name="type" error="GL_INVALID_OPERATION">
1206			<value name="GL_UNSIGNED_BYTE"/>
1207			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
1208			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
1209		</desc>
1210	</desc>
1211
1212	<desc name="format">
1213		<value name="GL_LUMINANCE"/>
1214		<desc name="type" error="GL_INVALID_OPERATION">
1215			<value name="GL_UNSIGNED_BYTE"/>
1216		</desc>
1217	</desc>
1218
1219	<desc name="format">
1220		<value name="GL_LUMINANCE_ALPHA"/>
1221		<desc name="type" error="GL_INVALID_OPERATION">
1222			<value name="GL_UNSIGNED_BYTE"/>
1223		</desc>
1224	</desc>
1225
1226	<desc name="format" category="EXT_read_format_bgra">
1227		<value name="GL_BGRA_EXT"/>
1228
1229		<desc name="type" error="GL_INVALID_OPERATION">
1230			<value name="GL_UNSIGNED_BYTE"/>
1231			<value name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
1232			<value name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
1233		</desc>
1234	</desc>
1235</template>
1236
1237<template name="GetClipPlane" direction="get">
1238	<proto>
1239		<return type="void"/>
1240		<param name="plane" type="GLenum"/>
1241		<vector name="equation" type="GLtype *" size="4"/>
1242	</proto>
1243</template>
1244
1245<template name="GetError" direction="get">
1246	<proto>
1247		<return type="GLenum"/>
1248	</proto>
1249</template>
1250
1251<!-- template for GetFloatv, GetIntegerv, GetBoolean, and GetFixedv -->
1252<template name="GetState" direction="get">
1253	<proto>
1254		<return type="void"/>
1255		<param name="pname" type="GLenum"/>
1256		<vector name="params" type="GLtype *" size="dynamic"/>
1257	</proto>
1258	<!-- param checking is done in mesa -->
1259</template>
1260
1261<template name="GetLight" direction="get">
1262	<proto>
1263		<return type="void"/>
1264		<param name="light" type="GLenum"/>
1265		<param name="pname" type="GLenum"/>
1266		<vector name="params" type="GLtype *" size="dynamic"/>
1267	</proto>
1268
1269	<desc name="light">
1270		<range base="GL_LIGHT" from="0" to="7"/>
1271	</desc>
1272
1273	<desc name="pname">
1274		<value name="GL_AMBIENT"/>
1275		<value name="GL_DIFFUSE"/>
1276		<value name="GL_SPECULAR"/>
1277		<value name="GL_POSITION"/>
1278
1279		<desc name="params" vector_size="4"/>
1280	</desc>
1281
1282	<desc name="pname">
1283		<value name="GL_SPOT_DIRECTION"/>
1284
1285		<desc name="params" vector_size="3"/>
1286	</desc>
1287
1288	<desc name="pname">
1289		<value name="GL_SPOT_EXPONENT"/>
1290		<value name="GL_SPOT_CUTOFF"/>
1291		<value name="GL_CONSTANT_ATTENUATION"/>
1292		<value name="GL_LINEAR_ATTENUATION"/>
1293		<value name="GL_QUADRATIC_ATTENUATION"/>
1294
1295		<desc name="params" vector_size="1"/>
1296	</desc>
1297</template>
1298
1299<template name="GetMaterial" direction="get">
1300	<proto>
1301		<return type="void"/>
1302		<param name="face" type="GLenum"/>
1303		<param name="pname" type="GLenum"/>
1304		<vector name="params" type="GLtype *" size="dynamic">
1305			<param name="param" type="GLtype"/>
1306		</vector>
1307	</proto>
1308
1309	<desc name="face">
1310		<value name="GL_FRONT"/>
1311		<value name="GL_BACK"/>
1312	</desc>
1313
1314	<desc name="pname">
1315		<value name="GL_SHININESS"/>
1316		<desc name="params" vector_size="1"/>
1317	</desc>
1318
1319	<desc name="pname">
1320		<value name="GL_AMBIENT"/>
1321		<value name="GL_DIFFUSE"/>
1322		<value name="GL_AMBIENT_AND_DIFFUSE"/>
1323		<value name="GL_SPECULAR"/>
1324		<value name="GL_EMISSION"/>
1325
1326		<desc name="params" vector_size="4"/>
1327	</desc>
1328</template>
1329
1330<template name="GetString" direction="get">
1331	<proto>
1332		<return type="const GLubyte *"/>
1333		<param name="name" type="GLenum"/>
1334	</proto>
1335
1336	<desc name="name">
1337		<value name="GL_VENDOR"/>
1338		<value name="GL_RENDERER"/>
1339		<value name="GL_VERSION"/>
1340		<value name="GL_EXTENSIONS"/>
1341		<value name="GL_SHADING_LANGUAGE_VERSION" category="GLES2.0"/>
1342	</desc>
1343</template>
1344
1345<template name="GetTexEnv" direction="get">
1346	<proto>
1347		<return type="void"/>
1348		<param name="target" type="GLenum"/>
1349		<param name="pname" type="GLenum"/>
1350		<vector name="params" type="GLtype *" size="dynamic"/>
1351	</proto>
1352
1353	<desc name="target" category="OES_point_sprite">
1354		<value name="GL_POINT_SPRITE_OES"/>
1355		<desc name="pname">
1356			<value name="GL_COORD_REPLACE_OES"/>
1357		</desc>
1358	</desc>
1359
1360	<desc name="pname" category="OES_point_sprite">
1361		<value name="GL_COORD_REPLACE_OES"/>
1362		<desc name="params" vector_size="1" convert="false"/>
1363	</desc>
1364
1365	<desc name="target" category="EXT_texture_lod_bias">
1366		<value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
1367
1368		<desc name="pname">
1369			<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
1370		</desc>
1371	</desc>
1372
1373	<desc name="pname" category="EXT_texture_lod_bias">
1374		<value name="GL_TEXTURE_LOD_BIAS_EXT"/>
1375		<desc name="params" vector_size="1"/>
1376	</desc>
1377
1378	<desc name="target">
1379		<value name="GL_TEXTURE_ENV"/>
1380
1381		<desc name="pname">
1382			<value name="GL_TEXTURE_ENV_COLOR"/>
1383			<value name="GL_RGB_SCALE"/>
1384			<value name="GL_ALPHA_SCALE"/>
1385			<value name="GL_TEXTURE_ENV_MODE"/>
1386			<value name="GL_COMBINE_RGB"/>
1387			<value name="GL_COMBINE_ALPHA"/>
1388			<value name="GL_SRC0_RGB"/>
1389			<value name="GL_SRC1_RGB"/>
1390			<value name="GL_SRC2_RGB"/>
1391			<value name="GL_SRC0_ALPHA"/>
1392			<value name="GL_SRC1_ALPHA"/>
1393			<value name="GL_SRC2_ALPHA"/>
1394			<value name="GL_OPERAND0_RGB"/>
1395			<value name="GL_OPERAND1_RGB"/>
1396			<value name="GL_OPERAND2_RGB"/>
1397			<value name="GL_OPERAND0_ALPHA"/>
1398			<value name="GL_OPERAND1_ALPHA"/>
1399			<value name="GL_OPERAND2_ALPHA"/>
1400		</desc>
1401	</desc>
1402
1403	<desc name="pname">
1404		<value name="GL_TEXTURE_ENV_COLOR"/>
1405		<desc name="params" vector_size="4"/>
1406	</desc>
1407
1408	<desc name="pname">
1409		<value name="GL_RGB_SCALE"/>
1410		<value name="GL_ALPHA_SCALE"/>
1411
1412		<desc name="params" vector_size="1"/>
1413	</desc>
1414
1415	<desc name="pname">
1416		<value name="GL_TEXTURE_ENV_MODE"/>
1417		<value name="GL_COMBINE_RGB"/>
1418		<value name="GL_COMBINE_ALPHA"/>
1419		<value name="GL_SRC0_RGB"/>
1420		<value name="GL_SRC1_RGB"/>
1421		<value name="GL_SRC2_RGB"/>
1422		<value name="GL_SRC0_ALPHA"/>
1423		<value name="GL_SRC1_ALPHA"/>
1424		<value name="GL_SRC2_ALPHA"/>
1425		<value name="GL_OPERAND0_RGB"/>
1426		<value name="GL_OPERAND1_RGB"/>
1427		<value name="GL_OPERAND2_RGB"/>
1428		<value name="GL_OPERAND0_ALPHA"/>
1429		<value name="GL_OPERAND1_ALPHA"/>
1430		<value name="GL_OPERAND2_ALPHA"/>
1431
1432		<desc name="params" vector_size="1" convert="false"/>
1433	</desc>
1434</template>
1435
1436<template name="GetTexGen" direction="get">
1437	<proto>
1438		<return type="void"/>
1439		<param name="coord" type="GLenum"/>
1440		<param name="pname" type="GLenum"/>
1441		<vector name="params" type="GLtype *" size="dynamic"/>
1442	</proto>
1443
1444	<desc name="coord">
1445		<value name="GL_TEXTURE_GEN_STR_OES"/>
1446	</desc>
1447	<desc name="pname">
1448		<value name="GL_TEXTURE_GEN_MODE_OES"/>
1449		<desc name="params" vector_size="1" convert="false"/>
1450	</desc>
1451</template>
1452
1453<template name="GetTexParameter" direction="get">
1454	<proto>
1455		<return type="void"/>
1456		<param name="target" type="GLenum"/>
1457		<param name="pname" type="GLenum"/>
1458		<vector name="params" type="GLtype *" size="dynamic"/>
1459	</proto>
1460
1461	<desc name="target">
1462		<value name="GL_TEXTURE_2D"/>
1463		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
1464		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
1465		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
1466		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
1467	</desc>
1468
1469	<desc name="pname">
1470		<value name="GL_TEXTURE_WRAP_S"/>
1471		<value name="GL_TEXTURE_WRAP_T"/>
1472		<value name="GL_TEXTURE_WRAP_R_OES" category="OES_texture_3D"/>
1473		<value name="GL_TEXTURE_MIN_FILTER"/>
1474		<value name="GL_TEXTURE_MAG_FILTER"/>
1475		<value name="GL_GENERATE_MIPMAP" category="GLES1.1"/>
1476
1477		<desc name="params" vector_size="1" convert="false"/>
1478	</desc>
1479
1480	<desc name="pname" category="OES_draw_texture">
1481		<value name="GL_TEXTURE_CROP_RECT_OES"/>
1482		<desc name="params" vector_size="4"/>
1483	</desc>
1484</template>
1485
1486<template name="IsEnabled" direction="get">
1487	<proto>
1488		<return type="GLboolean"/>
1489		<param name="cap" type="GLenum"/>
1490	</proto>
1491
1492	<desc name="cap" category="GLES1.1">
1493		<value name="GL_NORMALIZE"/>
1494		<value name="GL_RESCALE_NORMAL"/>
1495
1496		<range base="GL_CLIP_PLANE" from="0" to="5"/>
1497		<value name="GL_CLIP_PLANE0+6"/>
1498		<value name="GL_CLIP_PLANE0+7"/>
1499
1500		<value name="GL_FOG"/>
1501		<value name="GL_LIGHTING"/>
1502		<value name="GL_COLOR_MATERIAL"/>
1503
1504		<range base="GL_LIGHT" from="0" to="7"/>
1505
1506		<value name="GL_POINT_SMOOTH"/>
1507		<value name="GL_LINE_SMOOTH"/>
1508		<value name="GL_CULL_FACE"/>
1509		<value name="GL_POLYGON_OFFSET_FILL"/>
1510		<value name="GL_MULTISAMPLE"/>
1511		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
1512		<value name="GL_SAMPLE_ALPHA_TO_ONE"/>
1513		<value name="GL_SAMPLE_COVERAGE"/>
1514		<value name="GL_TEXTURE_2D"/>
1515		<value name="GL_SCISSOR_TEST"/>
1516		<value name="GL_ALPHA_TEST"/>
1517		<value name="GL_STENCIL_TEST"/>
1518		<value name="GL_DEPTH_TEST"/>
1519		<value name="GL_BLEND"/>
1520		<value name="GL_DITHER"/>
1521		<value name="GL_COLOR_LOGIC_OP"/>
1522
1523		<value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
1524		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
1525		<value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
1526
1527		<value name="GL_VERTEX_ARRAY"/>
1528		<value name="GL_NORMAL_ARRAY"/>
1529		<value name="GL_COLOR_ARRAY"/>
1530		<value name="GL_TEXTURE_COORD_ARRAY"/>
1531		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1532		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1533		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1534		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
1535	</desc>
1536
1537	<desc name="cap" category="GLES2.0">
1538		<value name="GL_CULL_FACE"/>
1539		<value name="GL_SCISSOR_TEST"/>
1540		<value name="GL_POLYGON_OFFSET_FILL"/>
1541		<value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
1542		<value name="GL_SAMPLE_COVERAGE"/>
1543		<value name="GL_STENCIL_TEST"/>
1544		<value name="GL_DEPTH_TEST"/>
1545		<value name="GL_DITHER"/>
1546		<value name="GL_BLEND"/>
1547	</desc>
1548</template>
1549
1550<template name="DepthRange">
1551	<proto>
1552		<return type="void"/>
1553		<param name="zNear" type="GLtype"/>
1554		<param name="zFar" type="GLtype"/>
1555	</proto>
1556</template>
1557
1558<template name="Frustum">
1559	<proto>
1560		<return type="void"/>
1561		<param name="left" type="GLtype"/>
1562		<param name="right" type="GLtype"/>
1563		<param name="bottom" type="GLtype"/>
1564		<param name="top" type="GLtype"/>
1565		<param name="zNear" type="GLtype"/>
1566		<param name="zFar" type="GLtype"/>
1567	</proto>
1568</template>
1569
1570<template name="LoadIdentity">
1571	<proto>
1572		<return type="void"/>
1573	</proto>
1574</template>
1575
1576<template name="LoadMatrix">
1577	<proto>
1578		<return type="void"/>
1579		<vector name="m" type="const GLtype *" size="16"/>
1580	</proto>
1581</template>
1582
1583<template name="MatrixMode">
1584	<proto>
1585		<return type="void"/>
1586		<param name="mode" type="GLenum"/>
1587	</proto>
1588
1589	<desc name="mode">
1590		<value name="GL_MODELVIEW"/>
1591		<value name="GL_PROJECTION"/>
1592		<value name="GL_TEXTURE"/>
1593		<value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
1594	</desc>
1595</template>
1596
1597<template name="MultMatrix">
1598	<proto>
1599		<return type="void"/>
1600		<vector name="m" type="const GLtype *" size="16"/>
1601	</proto>
1602</template>
1603
1604<template name="Ortho">
1605	<proto>
1606		<return type="void"/>
1607		<param name="left" type="GLtype"/>
1608		<param name="right" type="GLtype"/>
1609		<param name="bottom" type="GLtype"/>
1610		<param name="top" type="GLtype"/>
1611		<param name="zNear" type="GLtype"/>
1612		<param name="zFar" type="GLtype"/>
1613	</proto>
1614</template>
1615
1616<template name="PopMatrix">
1617	<proto>
1618		<return type="void"/>
1619	</proto>
1620</template>
1621
1622<template name="PushMatrix">
1623	<proto>
1624		<return type="void"/>
1625	</proto>
1626</template>
1627
1628<template name="Rotate">
1629	<proto>
1630		<return type="void"/>
1631		<param name="angle" type="GLtype"/>
1632		<param name="x" type="GLtype"/>
1633		<param name="y" type="GLtype"/>
1634		<param name="z" type="GLtype"/>
1635	</proto>
1636</template>
1637
1638<template name="Scale">
1639	<proto>
1640		<return type="void"/>
1641		<param name="x" type="GLtype"/>
1642		<param name="y" type="GLtype"/>
1643		<param name="z" type="GLtype"/>
1644	</proto>
1645</template>
1646
1647<template name="Translate">
1648	<proto>
1649		<return type="void"/>
1650		<param name="x" type="GLtype"/>
1651		<param name="y" type="GLtype"/>
1652		<param name="z" type="GLtype"/>
1653	</proto>
1654</template>
1655
1656<template name="Viewport">
1657	<proto>
1658		<return type="void"/>
1659		<param name="x" type="GLint"/>
1660		<param name="y" type="GLint"/>
1661		<param name="width" type="GLsizei"/>
1662		<param name="height" type="GLsizei"/>
1663	</proto>
1664</template>
1665
1666<template name="ColorPointer">
1667	<proto>
1668		<return type="void"/>
1669		<param name="size" type="GLint"/>
1670		<param name="type" type="GLenum"/>
1671		<param name="stride" type="GLsizei"/>
1672		<param name="pointer" type="const GLvoid *"/>
1673	</proto>
1674
1675	<desc name="size" error="GL_INVALID_VALUE">
1676		<value name="4"/>
1677	</desc>
1678
1679	<desc name="type">
1680		<value name="GL_UNSIGNED_BYTE"/>
1681		<value name="GL_FLOAT"/>
1682		<value name="GL_FIXED"/>
1683		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1684	</desc>
1685</template>
1686
1687<template name="DisableClientState">
1688	<proto>
1689		<return type="void"/>
1690		<param name="array" type="GLenum"/>
1691	</proto>
1692
1693	<desc name="array">
1694		<value name="GL_VERTEX_ARRAY"/>
1695		<value name="GL_NORMAL_ARRAY"/>
1696		<value name="GL_COLOR_ARRAY"/>
1697		<value name="GL_TEXTURE_COORD_ARRAY"/>
1698		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1699		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1700		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1701	</desc>
1702</template>
1703
1704<template name="DrawArrays">
1705	<proto>
1706		<return type="void"/>
1707		<param name="mode" type="GLenum"/>
1708		<param name="first" type="GLint"/>
1709		<param name="count" type="GLsizei"/>
1710	</proto>
1711
1712	<desc name="mode">
1713		<value name="GL_POINTS"/>
1714		<value name="GL_LINES"/>
1715		<value name="GL_LINE_LOOP"/>
1716		<value name="GL_LINE_STRIP"/>
1717		<value name="GL_TRIANGLES"/>
1718		<value name="GL_TRIANGLE_STRIP"/>
1719		<value name="GL_TRIANGLE_FAN"/>
1720	</desc>
1721</template>
1722
1723<template name="DrawElements">
1724	<proto>
1725		<return type="void"/>
1726		<param name="mode" type="GLenum"/>
1727		<param name="count" type="GLsizei"/>
1728		<param name="type" type="GLenum"/>
1729		<param name="indices" type="const GLvoid *"/>
1730	</proto>
1731
1732	<desc name="mode">
1733		<value name="GL_POINTS"/>
1734		<value name="GL_LINES"/>
1735		<value name="GL_LINE_LOOP"/>
1736		<value name="GL_LINE_STRIP"/>
1737		<value name="GL_TRIANGLES"/>
1738		<value name="GL_TRIANGLE_STRIP"/>
1739		<value name="GL_TRIANGLE_FAN"/>
1740	</desc>
1741
1742	<desc name="type">
1743		<value name="GL_UNSIGNED_BYTE"/>
1744		<value name="GL_UNSIGNED_SHORT"/>
1745		<value name="GL_UNSIGNED_INT" category="OES_element_index_uint"/>
1746	</desc>
1747</template>
1748
1749<template name="EnableClientState">
1750	<proto>
1751		<return type="void"/>
1752		<param name="array" type="GLenum"/>
1753	</proto>
1754
1755	<desc name="array">
1756		<value name="GL_VERTEX_ARRAY"/>
1757		<value name="GL_NORMAL_ARRAY"/>
1758		<value name="GL_COLOR_ARRAY"/>
1759		<value name="GL_TEXTURE_COORD_ARRAY"/>
1760		<value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
1761		<value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
1762		<value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
1763	</desc>
1764</template>
1765
1766<template name="GetPointer" direction="get">
1767	<proto>
1768		<return type="void"/>
1769		<param name="pname" type="GLenum"/>
1770		<vector name="params" type="GLvoid **" size="dynamic"/>
1771	</proto>
1772
1773	<desc name="pname">
1774		<value name="GL_VERTEX_ARRAY_POINTER"/>
1775		<value name="GL_NORMAL_ARRAY_POINTER"/>
1776		<value name="GL_COLOR_ARRAY_POINTER"/>
1777		<value name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
1778		<value name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1779		<value name="GL_WEIGHT_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
1780		<value name="GL_POINT_SIZE_ARRAY_POINTER_OES" category="OES_point_size_array"/>
1781	</desc>
1782</template>
1783
1784<template name="Normal">
1785	<proto>
1786		<return type="void"/>
1787		<vector name="v" type="const GLtype *" size="3">
1788			<param name="nx" type="GLtype"/>
1789			<param name="ny" type="GLtype"/>
1790			<param name="nz" type="GLtype"/>
1791		</vector>
1792	</proto>
1793</template>
1794
1795<template name="NormalPointer">
1796	<proto>
1797		<return type="void"/>
1798		<param name="type" type="GLenum"/>
1799		<param name="stride" type="GLsizei"/>
1800		<param name="pointer" type="const GLvoid *"/>
1801	</proto>
1802
1803	<desc name="type">
1804		<value name="GL_BYTE"/>
1805		<value name="GL_SHORT"/>
1806		<value name="GL_FLOAT"/>
1807		<value name="GL_FIXED"/>
1808		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1809	</desc>
1810</template>
1811
1812<template name="TexCoordPointer">
1813	<proto>
1814		<return type="void"/>
1815		<param name="size" type="GLint"/>
1816		<param name="type" type="GLenum"/>
1817		<param name="stride" type="GLsizei"/>
1818		<param name="pointer" type="const GLvoid *"/>
1819	</proto>
1820
1821	<desc name="size" error="GL_INVALID_VALUE">
1822		<value name="2"/>
1823		<value name="3"/>
1824		<value name="4"/>
1825	</desc>
1826
1827	<desc name="type">
1828		<value name="GL_BYTE"/>
1829		<value name="GL_SHORT"/>
1830		<value name="GL_FLOAT"/>
1831		<value name="GL_FIXED"/>
1832		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1833	</desc>
1834</template>
1835
1836<template name="VertexPointer">
1837	<proto>
1838		<return type="void"/>
1839		<param name="size" type="GLint"/>
1840		<param name="type" type="GLenum"/>
1841		<param name="stride" type="GLsizei"/>
1842		<param name="pointer" type="const GLvoid *"/>
1843	</proto>
1844
1845	<desc name="size" error="GL_INVALID_VALUE">
1846		<value name="2"/>
1847		<value name="3"/>
1848		<value name="4"/>
1849	</desc>
1850
1851	<desc name="type">
1852		<value name="GL_BYTE"/>
1853		<value name="GL_SHORT"/>
1854		<value name="GL_FLOAT"/>
1855		<value name="GL_FIXED"/>
1856		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1857	</desc>
1858</template>
1859
1860<template name="PolygonOffset">
1861	<proto>
1862		<return type="void"/>
1863		<param name="factor" type="GLtype"/>
1864		<param name="units" type="GLtype"/>
1865	</proto>
1866</template>
1867
1868<template name="CopyTexImage2D">
1869	<proto>
1870		<return type="void"/>
1871		<param name="target" type="GLenum"/>
1872		<param name="level" type="GLint"/>
1873		<param name="internalFormat" type="GLenum"/>
1874		<param name="x" type="GLint"/>
1875		<param name="y" type="GLint"/>
1876		<param name="width" type="GLsizei"/>
1877		<param name="height" type="GLsizei"/>
1878		<param name="border" type="GLint"/>
1879	</proto>
1880
1881	<desc name="target">
1882		<value name="GL_TEXTURE_2D"/>
1883		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
1884		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
1885		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
1886		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
1887		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
1888		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
1889		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
1890		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
1891		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
1892		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
1893		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
1894		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
1895	</desc>
1896
1897	<desc name="internalFormat" error="GL_INVALID_VALUE">
1898		<value name="GL_ALPHA"/>
1899		<value name="GL_RGB"/>
1900		<value name="GL_RGBA"/>
1901		<value name="GL_LUMINANCE"/>
1902		<value name="GL_LUMINANCE_ALPHA"/>
1903	</desc>
1904
1905	<desc name="border" error="GL_INVALID_VALUE">
1906		<value name="0"/>
1907	</desc>
1908</template>
1909
1910<template name="CopyTexSubImage2D">
1911	<proto>
1912		<return type="void"/>
1913		<param name="target" type="GLenum"/>
1914		<param name="level" type="GLint"/>
1915		<param name="xoffset" type="GLint"/>
1916		<param name="yoffset" type="GLint"/>
1917		<param name="x" type="GLint"/>
1918		<param name="y" type="GLint"/>
1919		<param name="width" type="GLsizei"/>
1920		<param name="height" type="GLsizei"/>
1921	</proto>
1922
1923	<desc name="target">
1924		<value name="GL_TEXTURE_2D"/>
1925		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
1926		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
1927		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
1928		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
1929		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
1930		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
1931		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
1932		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
1933		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
1934		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
1935		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
1936		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
1937	</desc>
1938</template>
1939
1940<template name="TexSubImage2D">
1941	<proto>
1942		<return type="void"/>
1943		<param name="target" type="GLenum"/>
1944		<param name="level" type="GLint"/>
1945		<param name="xoffset" type="GLint"/>
1946		<param name="yoffset" type="GLint"/>
1947		<param name="width" type="GLsizei"/>
1948		<param name="height" type="GLsizei"/>
1949		<param name="format" type="GLenum"/>
1950		<param name="type" type="GLenum"/>
1951		<param name="pixels" type="const GLvoid *"/>
1952	</proto>
1953
1954	<desc name="target">
1955		<value name="GL_TEXTURE_2D"/>
1956		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
1957		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
1958		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
1959		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
1960		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
1961		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
1962		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
1963		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
1964		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
1965		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
1966		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
1967		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
1968	</desc>
1969
1970	<desc name="format">
1971		<value name="GL_ALPHA"/>
1972
1973		<desc name="type" error="GL_INVALID_OPERATION">
1974			<value name="GL_UNSIGNED_BYTE"/>
1975			<value name="GL_FLOAT" category="OES_texture_float"/>
1976			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1977		</desc>
1978	</desc>
1979
1980	<desc name="format">
1981		<value name="GL_RGB"/>
1982
1983		<desc name="type" error="GL_INVALID_OPERATION">
1984			<value name="GL_UNSIGNED_BYTE"/>
1985			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
1986			<value name="GL_FLOAT" category="OES_texture_float"/>
1987			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1988		</desc>
1989	</desc>
1990
1991	<desc name="format">
1992		<value name="GL_RGBA"/>
1993
1994		<desc name="type" error="GL_INVALID_OPERATION">
1995			<value name="GL_UNSIGNED_BYTE"/>
1996			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
1997			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
1998			<value name="GL_FLOAT" category="OES_texture_float"/>
1999			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2000			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
2001		</desc>
2002	</desc>
2003
2004	<desc name="format">
2005		<value name="GL_LUMINANCE"/>
2006
2007		<desc name="type" error="GL_INVALID_OPERATION">
2008			<value name="GL_UNSIGNED_BYTE"/>
2009			<value name="GL_FLOAT" category="OES_texture_float"/>
2010			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2011		</desc>
2012	</desc>
2013
2014	<desc name="format">
2015		<value name="GL_LUMINANCE_ALPHA"/>
2016
2017		<desc name="type" error="GL_INVALID_OPERATION">
2018			<value name="GL_UNSIGNED_BYTE"/>
2019			<value name="GL_FLOAT" category="OES_texture_float"/>
2020			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2021		</desc>
2022	</desc>
2023
2024	<desc name="format" category="OES_depth_texture">
2025		<value name="GL_DEPTH_COMPONENT"/>
2026
2027		<desc name="type" error="GL_INVALID_OPERATION">
2028			<value name="GL_UNSIGNED_SHORT"/>
2029			<value name="GL_UNSIGNED_INT"/>
2030		</desc>
2031	</desc>
2032
2033	<desc name="format" category="OES_packed_depth_stencil">
2034		<value name="GL_DEPTH_STENCIL_OES"/>
2035
2036		<desc name="type" error="GL_INVALID_OPERATION">
2037			<value name="GL_UNSIGNED_INT_24_8_OES"/>
2038		</desc>
2039	</desc>
2040
2041	<desc name="format" category="EXT_texture_format_BGRA8888">
2042		<value name="GL_BGRA_EXT"/>
2043
2044		<desc name="type" error="GL_INVALID_OPERATION">
2045			<value name="GL_UNSIGNED_BYTE"/>
2046		</desc>
2047	</desc>
2048</template>
2049
2050<template name="BindTexture">
2051	<proto>
2052		<return type="void"/>
2053		<param name="target" type="GLenum"/>
2054		<param name="texture" type="GLuint"/>
2055	</proto>
2056
2057	<desc name="target">
2058		<value name="GL_TEXTURE_2D"/>
2059		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
2060		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
2061		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
2062		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
2063	</desc>
2064</template>
2065
2066<template name="DeleteTextures">
2067	<proto>
2068		<return type="void"/>
2069		<param name="n" type="GLsizei"/>
2070		<param name="textures" type="const GLuint *"/>
2071	</proto>
2072</template>
2073
2074<template name="GenTextures" direction="get">
2075	<proto>
2076		<return type="void"/>
2077		<param name="n" type="GLsizei"/>
2078		<param name="textures" type="GLuint *"/>
2079	</proto>
2080</template>
2081
2082<template name="IsTexture" direction="get">
2083	<proto>
2084		<return type="GLboolean"/>
2085		<param name="texture" type="GLuint"/>
2086	</proto>
2087</template>
2088
2089<template name="BlendColor">
2090	<proto>
2091		<return type="void"/>
2092		<param name="red" type="GLtype"/>
2093		<param name="green" type="GLtype"/>
2094		<param name="blue" type="GLtype"/>
2095		<param name="alpha" type="GLtype"/>
2096	</proto>
2097</template>
2098
2099<template name="BlendEquation">
2100	<proto>
2101		<return type="void"/>
2102		<param name="mode" type="GLenum"/>
2103	</proto>
2104</template>
2105
2106<template name="BlendEquationSeparate">
2107	<proto>
2108		<return type="void"/>
2109		<param name="modeRGB" type="GLenum"/>
2110		<param name="modeAlpha" type="GLenum"/>
2111	</proto>
2112</template>
2113
2114<template name="TexImage3D">
2115	<proto>
2116		<return type="void"/>
2117		<param name="target" type="GLenum"/>
2118		<param name="level" type="GLint"/>
2119		<param name="internalFormat" type="GLenum"/>
2120		<param name="width" type="GLsizei"/>
2121		<param name="height" type="GLsizei"/>
2122		<param name="depth" type="GLsizei"/>
2123		<param name="border" type="GLint"/>
2124		<param name="format" type="GLenum"/>
2125		<param name="type" type="GLenum"/>
2126		<param name="pixels" type="const GLvoid *"/>
2127	</proto>
2128
2129	<desc name="target">
2130		<value name="GL_TEXTURE_3D_OES"/>
2131	</desc>
2132
2133	<desc name="internalFormat">
2134		<value name="GL_ALPHA"/>
2135		<value name="GL_RGB"/>
2136		<value name="GL_RGBA"/>
2137		<value name="GL_LUMINANCE"/>
2138		<value name="GL_LUMINANCE_ALPHA"/>
2139	</desc>
2140
2141	<desc name="format">
2142		<value name="GL_ALPHA"/>
2143
2144		<desc name="type" error="GL_INVALID_OPERATION">
2145			<value name="GL_UNSIGNED_BYTE"/>
2146			<value name="GL_FLOAT" category="OES_texture_float"/>
2147			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2148		</desc>
2149	</desc>
2150
2151	<desc name="format">
2152		<value name="GL_RGB"/>
2153
2154		<desc name="type" error="GL_INVALID_OPERATION">
2155			<value name="GL_UNSIGNED_BYTE"/>
2156			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
2157			<value name="GL_FLOAT" category="OES_texture_float"/>
2158			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2159		</desc>
2160	</desc>
2161
2162	<desc name="format">
2163		<value name="GL_RGBA"/>
2164
2165		<desc name="type" error="GL_INVALID_OPERATION">
2166			<value name="GL_UNSIGNED_BYTE"/>
2167			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
2168			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
2169			<value name="GL_FLOAT" category="OES_texture_float"/>
2170			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2171			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
2172		</desc>
2173	</desc>
2174
2175	<desc name="format">
2176		<value name="GL_LUMINANCE"/>
2177
2178		<desc name="type" error="GL_INVALID_OPERATION">
2179			<value name="GL_UNSIGNED_BYTE"/>
2180			<value name="GL_FLOAT" category="OES_texture_float"/>
2181			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2182		</desc>
2183	</desc>
2184
2185	<desc name="format">
2186		<value name="GL_LUMINANCE_ALPHA"/>
2187
2188		<desc name="type" error="GL_INVALID_OPERATION">
2189			<value name="GL_UNSIGNED_BYTE"/>
2190			<value name="GL_FLOAT" category="OES_texture_float"/>
2191			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2192		</desc>
2193	</desc>
2194</template>
2195
2196<template name="TexSubImage3D">
2197	<proto>
2198		<return type="void"/>
2199		<param name="target" type="GLenum"/>
2200		<param name="level" type="GLint"/>
2201		<param name="xoffset" type="GLint"/>
2202		<param name="yoffset" type="GLint"/>
2203		<param name="zoffset" type="GLint"/>
2204		<param name="width" type="GLsizei"/>
2205		<param name="height" type="GLsizei"/>
2206		<param name="depth" type="GLsizei"/>
2207		<param name="format" type="GLenum"/>
2208		<param name="type" type="GLenum"/>
2209		<param name="pixels" type="const GLvoid *"/>
2210	</proto>
2211
2212	<desc name="target">
2213		<value name="GL_TEXTURE_3D_OES"/>
2214	</desc>
2215
2216	<desc name="format">
2217		<value name="GL_ALPHA"/>
2218
2219		<desc name="type" error="GL_INVALID_OPERATION">
2220			<value name="GL_UNSIGNED_BYTE"/>
2221			<value name="GL_FLOAT" category="OES_texture_float"/>
2222			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2223		</desc>
2224	</desc>
2225
2226	<desc name="format">
2227		<value name="GL_RGB"/>
2228
2229		<desc name="type" error="GL_INVALID_OPERATION">
2230			<value name="GL_UNSIGNED_BYTE"/>
2231			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
2232			<value name="GL_FLOAT" category="OES_texture_float"/>
2233			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2234		</desc>
2235	</desc>
2236
2237	<desc name="format">
2238		<value name="GL_RGBA"/>
2239
2240		<desc name="type" error="GL_INVALID_OPERATION">
2241			<value name="GL_UNSIGNED_BYTE"/>
2242			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
2243			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
2244			<value name="GL_FLOAT" category="OES_texture_float"/>
2245			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2246			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
2247		</desc>
2248	</desc>
2249
2250	<desc name="format">
2251		<value name="GL_LUMINANCE"/>
2252
2253		<desc name="type" error="GL_INVALID_OPERATION">
2254			<value name="GL_UNSIGNED_BYTE"/>
2255			<value name="GL_FLOAT" category="OES_texture_float"/>
2256			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2257		</desc>
2258	</desc>
2259
2260	<desc name="format">
2261		<value name="GL_LUMINANCE_ALPHA"/>
2262
2263		<desc name="type" error="GL_INVALID_OPERATION">
2264			<value name="GL_UNSIGNED_BYTE"/>
2265			<value name="GL_FLOAT" category="OES_texture_float"/>
2266			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
2267		</desc>
2268	</desc>
2269</template>
2270
2271<template name="CopyTexSubImage3D">
2272	<proto>
2273		<return type="void"/>
2274		<param name="target" type="GLenum"/>
2275		<param name="level" type="GLint"/>
2276		<param name="xoffset" type="GLint"/>
2277		<param name="yoffset" type="GLint"/>
2278		<param name="zoffset" type="GLint"/>
2279		<param name="x" type="GLint"/>
2280		<param name="y" type="GLint"/>
2281		<param name="width" type="GLsizei"/>
2282		<param name="height" type="GLsizei"/>
2283	</proto>
2284
2285	<desc name="target">
2286		<value name="GL_TEXTURE_3D_OES"/>
2287	</desc>
2288</template>
2289
2290<template name="MultiTexCoord">
2291	<proto>
2292		<return type="void"/>
2293		<param name="texture" type="GLenum"/>
2294		<vector name="v" type="const GLtype *" size="dynamic">
2295			<param name="s" type="GLtype"/>
2296			<param name="t" type="GLtype"/>
2297			<param name="r" type="GLtype"/>
2298			<param name="q" type="GLtype"/>
2299		</vector>
2300	</proto>
2301</template>
2302
2303<template name="CompressedTexImage3D">
2304	<proto>
2305		<return type="void"/>
2306		<param name="target" type="GLenum"/>
2307		<param name="level" type="GLint"/>
2308		<param name="internalFormat" type="GLenum"/>
2309		<param name="width" type="GLsizei"/>
2310		<param name="height" type="GLsizei"/>
2311		<param name="depth" type="GLsizei"/>
2312		<param name="border" type="GLint"/>
2313		<param name="imagesize" type="GLsizei"/>
2314		<param name="data" type="const GLvoid *"/>
2315	</proto>
2316
2317	<desc name="target">
2318		<value name="GL_TEXTURE_3D_OES"/>
2319	</desc>
2320
2321	<desc name="internalFormat">
2322		<value name="GL_3DC_X_AMD" category="AMD_compressed_3DC_texture"/>
2323		<value name="GL_3DC_XY_AMD" category="AMD_compressed_3DC_texture"/>
2324		<value name="GL_ATC_RGB_AMD" category="AMD_compressed_ATC_texture"/>
2325		<value name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2326		<value name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2327	</desc>
2328</template>
2329
2330<template name="CompressedTexSubImage3D">
2331	<proto>
2332		<return type="void"/>
2333		<param name="target" type="GLenum"/>
2334		<param name="level" type="GLint"/>
2335		<param name="xoffset" type="GLint"/>
2336		<param name="yoffset" type="GLint"/>
2337		<param name="zoffset" type="GLint"/>
2338		<param name="width" type="GLsizei"/>
2339		<param name="height" type="GLsizei"/>
2340		<param name="depth" type="GLsizei"/>
2341		<param name="format" type="GLenum"/>
2342		<param name="imagesize" type="GLsizei"/>
2343		<param name="data" type="const GLvoid *"/>
2344	</proto>
2345
2346	<desc name="target">
2347		<value name="GL_TEXTURE_3D_OES"/>
2348	</desc>
2349</template>
2350
2351<template name="ActiveTexture">
2352	<proto>
2353		<return type="void"/>
2354		<param name="texture" type="GLenum"/>
2355	</proto>
2356</template>
2357
2358<template name="ClientActiveTexture">
2359	<proto>
2360		<return type="void"/>
2361		<param name="texture" type="GLenum"/>
2362	</proto>
2363</template>
2364
2365<template name="SampleCoverage">
2366	<proto>
2367		<return type="void"/>
2368		<param name="value" type="GLtype"/>
2369		<param name="invert" type="GLboolean"/>
2370	</proto>
2371</template>
2372
2373<template name="CompressedTexImage2D">
2374	<proto>
2375		<return type="void"/>
2376		<param name="target" type="GLenum"/>
2377		<param name="level" type="GLint"/>
2378		<param name="internalFormat" type="GLenum"/>
2379		<param name="width" type="GLsizei"/>
2380		<param name="height" type="GLsizei"/>
2381		<param name="border" type="GLint"/>
2382		<param name="imageSize" type="GLsizei"/>
2383		<param name="data" type="const GLvoid *"/>
2384	</proto>
2385
2386	<desc name="target">
2387		<value name="GL_TEXTURE_2D"/>
2388		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2389		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2390		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2391		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2392		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2393		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2394		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2395		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2396		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2397		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2398		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2399		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2400	</desc>
2401
2402	<desc name="internalFormat">
2403		<value name="GL_ETC1_RGB8_OES" category="OES_compressed_ETC1_RGB8_texture"/>
2404
2405		<value name="GL_PALETTE4_RGB8_OES" category="OES_compressed_paletted_texture"/>
2406		<value name="GL_PALETTE4_RGBA8_OES" category="OES_compressed_paletted_texture"/>
2407		<value name="GL_PALETTE4_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
2408		<value name="GL_PALETTE4_RGBA4_OES" category="OES_compressed_paletted_texture"/>
2409		<value name="GL_PALETTE4_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
2410		<value name="GL_PALETTE8_RGB8_OES" category="OES_compressed_paletted_texture"/>
2411		<value name="GL_PALETTE8_RGBA8_OES" category="OES_compressed_paletted_texture"/>
2412		<value name="GL_PALETTE8_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
2413		<value name="GL_PALETTE8_RGBA4_OES" category="OES_compressed_paletted_texture"/>
2414		<value name="GL_PALETTE8_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
2415
2416		<value name="GL_3DC_X_AMD" category="AMD_compressed_3DC_texture"/>
2417		<value name="GL_3DC_XY_AMD" category="AMD_compressed_3DC_texture"/>
2418
2419		<value name="GL_ATC_RGB_AMD" category="AMD_compressed_ATC_texture"/>
2420		<value name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2421		<value name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
2422
2423		<value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2424		<value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2425	</desc>
2426
2427	<desc name="border" error="GL_INVALID_VALUE">
2428		<value name="0"/>
2429	</desc>
2430</template>
2431
2432<template name="CompressedTexSubImage2D">
2433	<proto>
2434		<return type="void"/>
2435		<param name="target" type="GLenum"/>
2436		<param name="level" type="GLint"/>
2437		<param name="xoffset" type="GLint"/>
2438		<param name="yoffset" type="GLint"/>
2439		<param name="width" type="GLsizei"/>
2440		<param name="height" type="GLsizei"/>
2441		<param name="format" type="GLenum"/>
2442		<param name="imageSize" type="GLsizei"/>
2443		<param name="data" type="const GLvoid *"/>
2444	</proto>
2445
2446	<desc name="target">
2447		<value name="GL_TEXTURE_2D"/>
2448		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2449		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2450		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2451		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2452		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2453		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2454		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2455		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2456		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2457		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2458		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2459		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2460	</desc>
2461
2462	<desc name="format">
2463		<value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2464		<value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
2465	</desc>
2466</template>
2467
2468<template name="BlendFuncSeparate">
2469	<proto>
2470		<return type="void"/>
2471		<param name="srcRGB" type="GLenum"/>
2472		<param name="dstRGB" type="GLenum"/>
2473		<param name="srcAlpha" type="GLenum"/>
2474		<param name="dstAlpha" type="GLenum"/>
2475	</proto>
2476
2477	<desc name="srcRGB">
2478		<value name="GL_ZERO"/>
2479		<value name="GL_ONE"/>
2480		<value name="GL_SRC_COLOR"/>
2481		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2482		<value name="GL_SRC_ALPHA"/>
2483		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2484		<value name="GL_DST_ALPHA"/>
2485		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2486		<value name="GL_DST_COLOR"/>
2487		<value name="GL_ONE_MINUS_DST_COLOR"/>
2488		<value name="GL_SRC_ALPHA_SATURATE"/>
2489
2490		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2491		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2492		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2493		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2494	</desc>
2495
2496	<desc name="dstRGB">
2497		<value name="GL_ZERO"/>
2498		<value name="GL_ONE"/>
2499		<value name="GL_SRC_COLOR"/>
2500		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2501		<value name="GL_SRC_ALPHA"/>
2502		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2503		<value name="GL_DST_ALPHA"/>
2504		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2505		<value name="GL_DST_COLOR"/>
2506		<value name="GL_ONE_MINUS_DST_COLOR"/>
2507
2508		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2509		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2510		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2511		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2512	</desc>
2513
2514	<desc name="srcAlpha">
2515		<value name="GL_ZERO"/>
2516		<value name="GL_ONE"/>
2517		<value name="GL_SRC_COLOR"/>
2518		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2519		<value name="GL_SRC_ALPHA"/>
2520		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2521		<value name="GL_DST_ALPHA"/>
2522		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2523		<value name="GL_DST_COLOR"/>
2524		<value name="GL_ONE_MINUS_DST_COLOR"/>
2525		<value name="GL_SRC_ALPHA_SATURATE"/>
2526
2527		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2528		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2529		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2530		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2531	</desc>
2532
2533	<desc name="dstAlpha">
2534		<value name="GL_ZERO"/>
2535		<value name="GL_ONE"/>
2536		<value name="GL_SRC_COLOR"/>
2537		<value name="GL_ONE_MINUS_SRC_COLOR"/>
2538		<value name="GL_SRC_ALPHA"/>
2539		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
2540		<value name="GL_DST_ALPHA"/>
2541		<value name="GL_ONE_MINUS_DST_ALPHA"/>
2542		<value name="GL_DST_COLOR"/>
2543		<value name="GL_ONE_MINUS_DST_COLOR"/>
2544
2545		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
2546		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
2547		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
2548		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
2549	</desc>
2550</template>
2551
2552<template name="PointParameter">
2553	<proto>
2554		<return type="void"/>
2555		<param name="pname" type="GLenum"/>
2556		<vector name="params" type="const GLtype *" size="dynamic">
2557			<param name="param" type="GLtype"/>
2558		</vector>
2559	</proto>
2560
2561	<desc name="pname">
2562		<value name="GL_POINT_SIZE_MIN"/>
2563		<value name="GL_POINT_SIZE_MAX"/>
2564		<value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
2565
2566		<desc name="params" vector_size="1"/>
2567	</desc>
2568
2569	<desc name="pname">
2570		<value name="GL_POINT_DISTANCE_ATTENUATION"/>
2571		<desc name="params" vector_size="3"/>
2572	</desc>
2573</template>
2574
2575<template name="VertexAttrib">
2576	<proto>
2577		<return type="void"/>
2578		<param name="index" type="GLuint"/>
2579		<vector name="v" type="const GLtype *" size="dynamic">
2580			<param name="x" type="GLtype"/>
2581			<param name="y" type="GLtype"/>
2582			<param name="z" type="GLtype"/>
2583			<param name="w" type="GLtype"/>
2584		</vector>
2585	</proto>
2586</template>
2587
2588<template name="VertexAttribPointer">
2589	<proto>
2590		<return type="void"/>
2591		<param name="index" type="GLuint"/>
2592		<param name="size" type="GLint"/>
2593		<param name="type" type="GLenum"/>
2594		<param name="normalized" type="GLboolean"/>
2595		<param name="stride" type="GLsizei"/>
2596		<param name="pointer" type="const GLvoid *"/>
2597	</proto>
2598
2599	<desc name="size" error="GL_INVALID_VALUE">
2600		<value name="1"/>
2601		<value name="2"/>
2602		<value name="3"/>
2603		<value name="4"/>
2604	</desc>
2605
2606	<desc name="type" error="GL_INVALID_VALUE">
2607		<value name="GL_BYTE"/>
2608		<value name="GL_UNSIGNED_BYTE"/>
2609		<value name="GL_SHORT"/>
2610		<value name="GL_UNSIGNED_SHORT"/>
2611		<value name="GL_FLOAT"/>
2612		<value name="GL_FIXED"/>
2613		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
2614		<value name="GL_UNSIGNED_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
2615		<value name="GL_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
2616	</desc>
2617
2618	<desc name="type" category="OES_vertex_type_10_10_10_2">
2619		<value name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
2620		<value name="GL_INT_10_10_10_2_OES"/>
2621
2622		<desc name="size">
2623			<value name="3"/>
2624			<value name="4"/>
2625		</desc>
2626	</desc>
2627</template>
2628
2629<template name="EnableVertexAttribArray">
2630	<proto>
2631		<return type="void"/>
2632		<param name="index" type="GLuint"/>
2633	</proto>
2634</template>
2635
2636<template name="DisableVertexAttribArray">
2637	<proto>
2638		<return type="void"/>
2639		<param name="index" type="GLuint"/>
2640	</proto>
2641</template>
2642
2643<template name="IsProgram" direction="get">
2644	<proto>
2645		<return type="GLboolean"/>
2646		<param name="program" type="GLuint"/>
2647	</proto>
2648</template>
2649
2650<template name="GetProgram" direction="get">
2651	<proto>
2652		<return type="void"/>
2653		<param name="program" type="GLuint"/>
2654		<param name="pname" type="GLenum"/>
2655		<vector name="params" type="GLtype *" size="dynamic"/>
2656	</proto>
2657
2658	<desc name="pname">
2659		<value name="GL_DELETE_STATUS"/>
2660		<value name="GL_LINK_STATUS"/>
2661		<value name="GL_VALIDATE_STATUS"/>
2662		<value name="GL_INFO_LOG_LENGTH"/>
2663		<value name="GL_ATTACHED_SHADERS"/>
2664		<value name="GL_ACTIVE_ATTRIBUTES"/>
2665		<value name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
2666		<value name="GL_ACTIVE_UNIFORMS"/>
2667		<value name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
2668		<value name="GL_PROGRAM_BINARY_LENGTH_OES" category="OES_get_program_binary"/>
2669
2670		<desc name="params" convert="false"/>
2671	</desc>
2672</template>
2673
2674<template name="GetVertexAttrib" direction="get">
2675	<proto>
2676		<return type="void"/>
2677		<param name="index" type="GLuint"/>
2678		<param name="pname" type="GLenum"/>
2679		<vector name="params" type="GLtype *" size="dynamic"/>
2680	</proto>
2681
2682	<desc name="pname">
2683		<value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
2684		<value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
2685		<value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
2686		<value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
2687		<value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
2688		<value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
2689
2690		<desc name="params" vector_size="1" convert="false"/>
2691	</desc>
2692
2693	<desc name="pname">
2694		<value name="GL_CURRENT_VERTEX_ATTRIB"/>
2695		<desc name="params" vector_size="16?" convert="false"/>
2696	</desc>
2697</template>
2698
2699<template name="GetVertexAttribPointer" direction="get">
2700	<proto>
2701		<return type="void"/>
2702		<param name="index" type="GLuint"/>
2703		<param name="pname" type="GLenum"/>
2704		<vector name="pointer" type="GLvoid **" size="dynamic"/>
2705	</proto>
2706
2707	<desc name="pname">
2708		<value name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
2709	</desc>
2710</template>
2711
2712<template name="GetBufferPointer" direction="get">
2713	<proto>
2714		<return type="void"/>
2715		<param name="target" type="GLenum"/>
2716		<param name="pname" type="GLenum"/>
2717		<vector name="params" type="GLvoid **" size="dynamic"/>
2718	</proto>
2719
2720	<desc name="target">
2721		<value name="GL_ARRAY_BUFFER"/>
2722		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2723	</desc>
2724
2725	<desc name="pname">
2726		<value name="GL_BUFFER_MAP_POINTER_OES"/>
2727	</desc>
2728</template>
2729
2730<template name="MapBuffer" direction="get">
2731	<proto>
2732		<return type="void *"/>
2733		<param name="target" type="GLenum"/>
2734		<param name="access" type="GLenum"/>
2735	</proto>
2736
2737	<desc name="target">
2738		<value name="GL_ARRAY_BUFFER"/>
2739		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2740	</desc>
2741
2742	<desc name="access">
2743		<value name="GL_WRITE_ONLY_OES"/>
2744	</desc>
2745</template>
2746
2747<template name="UnmapBuffer" direction="get">
2748	<proto>
2749		<return type="GLboolean"/>
2750		<param name="target" type="GLenum"/>
2751	</proto>
2752
2753	<desc name="target">
2754		<value name="GL_ARRAY_BUFFER"/>
2755		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2756	</desc>
2757</template>
2758
2759<template name="BindBuffer">
2760	<proto>
2761		<return type="void"/>
2762		<param name="target" type="GLenum"/>
2763		<param name="buffer" type="GLuint"/>
2764	</proto>
2765
2766	<desc name="target">
2767		<value name="GL_ARRAY_BUFFER"/>
2768		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2769	</desc>
2770</template>
2771
2772<template name="BufferData">
2773	<proto>
2774		<return type="void"/>
2775		<param name="target" type="GLenum"/>
2776		<param name="size" type="GLsizeiptr"/>
2777		<param name="data" type="const GLvoid *"/>
2778		<param name="usage" type="GLenum"/>
2779	</proto>
2780
2781	<desc name="target">
2782		<value name="GL_ARRAY_BUFFER"/>
2783		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2784	</desc>
2785
2786	<desc name="usage">
2787		<value name="GL_STATIC_DRAW"/>
2788		<value name="GL_DYNAMIC_DRAW"/>
2789		<value name="GL_STREAM_DRAW" category="GLES2.0"/>
2790	</desc>
2791</template>
2792
2793<template name="BufferSubData">
2794	<proto>
2795		<return type="void"/>
2796		<param name="target" type="GLenum"/>
2797		<param name="offset" type="GLintptr"/>
2798		<param name="size" type="GLsizeiptr"/>
2799		<param name="data" type="const GLvoid *"/>
2800	</proto>
2801
2802	<desc name="target">
2803		<value name="GL_ARRAY_BUFFER"/>
2804		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2805	</desc>
2806</template>
2807
2808<template name="DeleteBuffers">
2809	<proto>
2810		<return type="void"/>
2811		<param name="n" type="GLsizei"/>
2812		<param name="buffer" type="const GLuint *"/>
2813	</proto>
2814</template>
2815
2816<template name="GenBuffers" direction="get">
2817	<proto>
2818		<return type="void"/>
2819		<param name="n" type="GLsizei"/>
2820		<param name="buffer" type="GLuint *"/>
2821	</proto>
2822</template>
2823
2824<template name="GetBufferParameter" direction="get">
2825	<proto>
2826		<return type="void"/>
2827		<param name="target" type="GLenum"/>
2828		<param name="pname" type="GLenum"/>
2829		<vector name="params" type="GLtype *" size="dynamic"/>
2830	</proto>
2831
2832	<desc name="target">
2833		<value name="GL_ARRAY_BUFFER"/>
2834		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2835	</desc>
2836
2837	<desc name="pname">
2838		<value name="GL_BUFFER_SIZE"/>
2839		<value name="GL_BUFFER_USAGE"/>
2840		<value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
2841		<value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
2842	</desc>
2843</template>
2844
2845<template name="IsBuffer" direction="get">
2846	<proto>
2847		<return type="GLboolean"/>
2848		<param name="buffer" type="GLuint"/>
2849	</proto>
2850</template>
2851
2852<template name="CreateShader">
2853	<proto>
2854		<return type="GLuint"/>
2855		<param name="type" type="GLenum"/>
2856	</proto>
2857
2858	<desc name="type">
2859		<value name="GL_VERTEX_SHADER"/>
2860		<value name="GL_FRAGMENT_SHADER"/>
2861	</desc>
2862</template>
2863
2864<template name="ShaderSource">
2865	<proto>
2866		<return type="void"/>
2867		<param name="shader" type="GLuint"/>
2868		<param name="count" type="GLsizei"/>
2869		<param name="string" type="const GLchar * const *"/>
2870		<param name="length" type="const int *"/>
2871	</proto>
2872</template>
2873
2874<template name="CompileShader">
2875	<proto>
2876		<return type="void"/>
2877		<param name="shader" type="GLuint"/>
2878	</proto>
2879</template>
2880
2881<template name="ReleaseShaderCompiler">
2882	<proto>
2883		<return type="void"/>
2884	</proto>
2885</template>
2886
2887<template name="DeleteShader">
2888	<proto>
2889		<return type="void"/>
2890		<param name="shader" type="GLuint"/>
2891	</proto>
2892</template>
2893
2894<template name="ShaderBinary">
2895	<proto>
2896		<return type="void"/>
2897		<param name="n" type="GLsizei"/>
2898		<param name="shaders" type="const GLuint *"/>
2899		<param name="binaryformat" type="GLenum"/>
2900		<param name="binary" type="const GLvoid *"/>
2901		<param name="length" type="GLsizei"/>
2902	</proto>
2903</template>
2904
2905<template name="CreateProgram">
2906	<proto>
2907		<return type="GLuint"/>
2908	</proto>
2909</template>
2910
2911<template name="AttachShader">
2912	<proto>
2913		<return type="void"/>
2914		<param name="program" type="GLuint"/>
2915		<param name="shader" type="GLuint"/>
2916	</proto>
2917</template>
2918
2919<template name="DetachShader">
2920	<proto>
2921		<return type="void"/>
2922		<param name="program" type="GLuint"/>
2923		<param name="shader" type="GLuint"/>
2924	</proto>
2925</template>
2926
2927<template name="LinkProgram">
2928	<proto>
2929		<return type="void"/>
2930		<param name="program" type="GLuint"/>
2931	</proto>
2932</template>
2933
2934<template name="UseProgram">
2935	<proto>
2936		<return type="void"/>
2937		<param name="program" type="GLuint"/>
2938	</proto>
2939</template>
2940
2941<template name="DeleteProgram">
2942	<proto>
2943		<return type="void"/>
2944		<param name="program" type="GLuint"/>
2945	</proto>
2946</template>
2947
2948<template name="GetActiveAttrib" direction="get">
2949	<proto>
2950		<return type="void"/>
2951		<param name="program" type="GLuint"/>
2952		<param name="index" type="GLuint"/>
2953		<param name="bufSize" type="GLsizei"/>
2954		<param name="length" type="GLsizei *"/>
2955		<param name="size" type="GLint *"/>
2956		<param name="type" type="GLenum *"/>
2957		<param name="name" type="GLchar *"/>
2958	</proto>
2959</template>
2960
2961<template name="GetAttribLocation" direction="get">
2962	<proto>
2963		<return type="GLint"/>
2964		<param name="program" type="GLuint"/>
2965		<param name="name" type="const char *"/>
2966	</proto>
2967</template>
2968
2969<template name="BindAttribLocation">
2970	<proto>
2971		<return type="void"/>
2972		<param name="program" type="GLuint"/>
2973		<param name="index" type="GLuint"/>
2974		<param name="name" type="const char *"/>
2975	</proto>
2976</template>
2977
2978<template name="GetUniformLocation" direction="get">
2979	<proto>
2980		<return type="GLint"/>
2981		<param name="program" type="GLuint"/>
2982		<param name="name" type="const char *"/>
2983	</proto>
2984</template>
2985
2986<template name="GetActiveUniform" direction="get">
2987	<proto>
2988		<return type="void"/>
2989		<param name="program" type="GLuint"/>
2990		<param name="index" type="GLuint"/>
2991		<param name="bufSize" type="GLsizei"/>
2992		<param name="length" type="GLsizei *"/>
2993		<param name="size" type="GLint *"/>
2994		<param name="type" type="GLenum *"/>
2995		<param name="name" type="GLchar *"/>
2996	</proto>
2997</template>
2998
2999<template name="Uniform">
3000	<proto>
3001		<return type="void"/>
3002		<param name="location" type="GLint"/>
3003		<param name="count" type="GLsizei" hide_if_expanded="true"/>
3004		<vector name="values" type="const GLtype *" size="dynamic">
3005			<param name="v0" type="GLtype"/>
3006			<param name="v1" type="GLtype"/>
3007			<param name="v2" type="GLtype"/>
3008			<param name="v3" type="GLtype"/>
3009		</vector>
3010	</proto>
3011</template>
3012
3013<template name="UniformMatrix">
3014	<proto>
3015		<return type="void"/>
3016		<param name="location" type="GLint"/>
3017		<param name="count" type="GLsizei"/>
3018		<param name="transpose" type="GLboolean"/>
3019		<vector name="value" type="const GLtype *" size="dynamic"/>
3020	</proto>
3021</template>
3022
3023<template name="ValidateProgram">
3024	<proto>
3025		<return type="void"/>
3026		<param name="program" type="GLuint"/>
3027	</proto>
3028</template>
3029
3030<template name="GenerateMipmap">
3031	<proto>
3032		<return type="void"/>
3033		<param name="target" type="GLenum"/>
3034	</proto>
3035
3036	<desc name="target">
3037		<value name="GL_TEXTURE_2D"/>
3038		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
3039		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
3040		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
3041	</desc>
3042</template>
3043
3044<template name="BindFramebuffer">
3045	<proto>
3046		<return type="void"/>
3047		<param name="target" type="GLenum"/>
3048		<param name="framebuffer" type="GLuint"/>
3049	</proto>
3050</template>
3051
3052<template name="DeleteFramebuffers">
3053	<proto>
3054		<return type="void"/>
3055		<param name="n" type="GLsizei"/>
3056		<param name="framebuffers" type="const GLuint *"/>
3057	</proto>
3058</template>
3059
3060<template name="GenFramebuffers">
3061	<proto>
3062		<return type="void"/>
3063		<param name="n" type="GLsizei"/>
3064		<param name="ids" type="GLuint *"/>
3065	</proto>
3066</template>
3067
3068<template name="BindRenderbuffer">
3069	<proto>
3070		<return type="void"/>
3071		<param name="target" type="GLenum"/>
3072		<param name="renderbuffer" type="GLuint"/>
3073	</proto>
3074</template>
3075
3076<template name="DeleteRenderbuffers">
3077	<proto>
3078		<return type="void"/>
3079		<param name="n" type="GLsizei"/>
3080		<param name="renderbuffers" type="const GLuint *"/>
3081	</proto>
3082</template>
3083
3084<template name="GenRenderbuffers">
3085	<proto>
3086		<return type="void"/>
3087		<param name="n" type="GLsizei"/>
3088		<param name="renderbuffers" type="GLuint *"/>
3089	</proto>
3090</template>
3091
3092<template name="RenderbufferStorage">
3093	<proto>
3094		<return type="void"/>
3095		<param name="target" type="GLenum"/>
3096		<param name="internalFormat" type="GLenum"/>
3097		<param name="width" type="GLsizei"/>
3098		<param name="height" type="GLsizei"/>
3099	</proto>
3100
3101	<desc name="internalFormat">
3102		<value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
3103		<value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
3104		<value name="GL_RGB5_A1_OES" category="OES_framebuffer_object"/>
3105		<value name="GL_RGB565_OES" category="OES_framebuffer_object"/>
3106		<value name="GL_STENCIL_INDEX8_OES" category="OES_stencil8"/>
3107
3108		<value name="GL_DEPTH_COMPONENT16" category="GLES2.0"/>
3109		<value name="GL_RGBA4" category="GLES2.0"/>
3110		<value name="GL_RGB5_A1" category="GLES2.0"/>
3111		<value name="GL_RGB565" category="GLES2.0"/>
3112		<value name="GL_STENCIL_INDEX8" category="GLES2.0"/>
3113
3114		<value name="GL_DEPTH_COMPONENT24_OES" category="OES_depth24"/>
3115		<value name="GL_DEPTH_COMPONENT32_OES" category="OES_depth32"/>
3116		<value name="GL_RGB8_OES" category="OES_rgb8_rgba8"/>
3117		<value name="GL_RGBA8_OES" category="OES_rgb8_rgba8"/>
3118		<value name="GL_STENCIL_INDEX1_OES" category="OES_stencil1"/>
3119		<value name="GL_STENCIL_INDEX4_OES" category="OES_stencil4"/>
3120		<value name="GL_DEPTH24_STENCIL8_OES" category="OES_packed_depth_stencil"/>
3121	</desc>
3122</template>
3123
3124<template name="FramebufferRenderbuffer">
3125	<proto>
3126		<return type="void"/>
3127		<param name="target" type="GLenum"/>
3128		<param name="attachment" type="GLenum"/>
3129		<param name="renderbuffertarget" type="GLenum"/>
3130		<param name="renderbuffer" type="GLuint"/>
3131	</proto>
3132</template>
3133
3134<template name="FramebufferTexture2D">
3135	<proto>
3136		<return type="void"/>
3137		<param name="target" type="GLenum"/>
3138		<param name="attachment" type="GLenum"/>
3139		<param name="textarget" type="GLenum"/>
3140		<param name="texture" type="GLuint"/>
3141		<param name="level" type="GLint"/>
3142	</proto>
3143
3144	<desc name="textarget" error="GL_INVALID_OPERATION">
3145		<value name="GL_TEXTURE_2D"/>
3146		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
3147		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
3148		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
3149		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
3150		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
3151		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
3152		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
3153		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
3154		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
3155		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
3156		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
3157		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
3158	</desc>
3159	<!-- According to the base specification, "level" must be 0.  But
3160	     extension GL_OES_fbo_render_mipmap lifts that restriction,
3161	     so no restriction is placed here. -->
3162</template>
3163
3164<template name="FramebufferTexture3D">
3165	<proto>
3166		<return type="void"/>
3167		<param name="target" type="GLenum"/>
3168		<param name="attachment" type="GLenum"/>
3169		<param name="textarget" type="GLenum"/>
3170		<param name="texture" type="GLuint"/>
3171		<param name="level" type="GLint"/>
3172		<param name="zoffset" type="GLint"/>
3173	</proto>
3174
3175	<desc name="textarget" error="GL_INVALID_OPERATION">
3176		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
3177	</desc>
3178</template>
3179
3180<template name="CheckFramebufferStatus" direction="get">
3181	<proto>
3182		<return type="GLenum"/>
3183		<param name="target" type="GLenum"/>
3184	</proto>
3185</template>
3186
3187<template name="GetFramebufferAttachmentParameter" direction="get">
3188	<proto>
3189		<return type="void"/>
3190		<param name="target" type="GLenum"/>
3191		<param name="attachment" type="GLenum"/>
3192		<param name="pname" type="GLenum"/>
3193		<vector name="params" type="GLtype *" size="dynamic"/>
3194	</proto>
3195
3196	<desc name="pname">
3197		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
3198		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
3199		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" category="OES_framebuffer_object"/>
3200		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" category="OES_framebuffer_object"/>
3201
3202		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" category="GLES2.0"/>
3203		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" category="GLES2.0"/>
3204		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" category="GLES2.0"/>
3205		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" category="GLES2.0"/>
3206		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" category="OES_texture_3D"/>
3207
3208		<desc name="params" vector_size="1" convert="false"/>
3209	</desc>
3210</template>
3211
3212<template name="GetRenderbufferParameter" direction="get">
3213	<proto>
3214		<return type="void"/>
3215		<param name="target" type="GLenum"/>
3216		<param name="pname" type="GLenum"/>
3217		<vector name="params" type="GLtype *" size="dynamic"/>
3218	</proto>
3219
3220	<desc name="pname" category="OES_framebuffer_object">
3221		<value name="GL_RENDERBUFFER_WIDTH_OES"/>
3222		<value name="GL_RENDERBUFFER_HEIGHT_OES"/>
3223		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
3224		<value name="GL_RENDERBUFFER_RED_SIZE_OES"/>
3225		<value name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
3226		<value name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
3227		<value name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
3228		<value name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
3229		<value name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
3230
3231		<desc name="params" vector_size="1" convert="false"/>
3232	</desc>
3233
3234	<desc name="pname" category="GLES2.0">
3235		<value name="GL_RENDERBUFFER_WIDTH"/>
3236		<value name="GL_RENDERBUFFER_HEIGHT"/>
3237		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
3238		<value name="GL_RENDERBUFFER_RED_SIZE"/>
3239		<value name="GL_RENDERBUFFER_GREEN_SIZE"/>
3240		<value name="GL_RENDERBUFFER_BLUE_SIZE"/>
3241		<value name="GL_RENDERBUFFER_ALPHA_SIZE"/>
3242		<value name="GL_RENDERBUFFER_DEPTH_SIZE"/>
3243		<value name="GL_RENDERBUFFER_STENCIL_SIZE"/>
3244
3245		<desc name="params" vector_size="1" convert="false"/>
3246	</desc>
3247</template>
3248
3249<template name="IsRenderbuffer" direction="get">
3250	<proto>
3251		<return type="GLboolean"/>
3252		<param name="renderbuffer" type="GLuint"/>
3253	</proto>
3254</template>
3255
3256<template name="IsFramebuffer" direction="get">
3257	<proto>
3258		<return type="GLboolean"/>
3259		<param name="framebuffer" type="GLuint"/>
3260	</proto>
3261</template>
3262
3263<template name="IsShader" direction="get">
3264	<proto>
3265		<return type="GLboolean"/>
3266		<param name="shader" type="GLuint"/>
3267	</proto>
3268</template>
3269
3270<template name="GetShader" direction="get">
3271	<proto>
3272		<return type="void"/>
3273		<param name="shader" type="GLuint"/>
3274		<param name="pname" type="GLenum"/>
3275		<vector name="params" type="GLtype *" size="dynamic"/>
3276	</proto>
3277
3278	<desc name="pname">
3279		<value name="GL_SHADER_TYPE"/>
3280		<value name="GL_COMPILE_STATUS"/>
3281		<value name="GL_DELETE_STATUS"/>
3282		<value name="GL_INFO_LOG_LENGTH"/>
3283		<value name="GL_SHADER_SOURCE_LENGTH"/>
3284	</desc>
3285</template>
3286
3287<template name="GetAttachedShaders" direction="get">
3288	<proto>
3289		<return type="void"/>
3290		<param name="program" type="GLuint"/>
3291		<param name="maxCount" type="GLsizei"/>
3292		<param name="count" type="GLsizei *"/>
3293		<param name="shaders" type="GLuint *"/>
3294	</proto>
3295</template>
3296
3297<template name="GetShaderInfoLog" direction="get">
3298	<proto>
3299		<return type="void"/>
3300		<param name="shader" type="GLuint"/>
3301		<param name="bufSize" type="GLsizei"/>
3302		<param name="length" type="GLsizei *"/>
3303		<param name="infoLog" type="GLchar *"/>
3304	</proto>
3305</template>
3306
3307<template name="GetProgramInfoLog" direction="get">
3308	<proto>
3309		<return type="void"/>
3310		<param name="program" type="GLuint"/>
3311		<param name="bufSize" type="GLsizei"/>
3312		<param name="length" type="GLsizei *"/>
3313		<param name="infoLog" type="GLchar *"/>
3314	</proto>
3315</template>
3316
3317<template name="GetShaderSource" direction="get">
3318	<proto>
3319		<return type="void"/>
3320		<param name="shader" type="GLuint"/>
3321		<param name="bufSize" type="GLsizei"/>
3322		<param name="length" type="GLsizei *"/>
3323		<param name="source" type="GLchar *"/>
3324	</proto>
3325</template>
3326
3327<template name="GetShaderPrecisionFormat" direction="get">
3328	<proto>
3329		<return type="void"/>
3330		<param name="shadertype" type="GLenum"/>
3331		<param name="precisiontype" type="GLenum"/>
3332		<param name="range" type="GLint *"/>
3333		<param name="precision" type="GLint *"/>
3334	</proto>
3335
3336	<desc name="shadertype">
3337		<value name="GL_VERTEX_SHADER"/>
3338		<value name="GL_FRAGMENT_SHADER"/>
3339	</desc>
3340
3341	<desc name="precisiontype">
3342		<value name="GL_LOW_FLOAT"/>
3343		<value name="GL_MEDIUM_FLOAT"/>
3344		<value name="GL_HIGH_FLOAT"/>
3345		<value name="GL_LOW_INT"/>
3346		<value name="GL_MEDIUM_INT"/>
3347		<value name="GL_HIGH_INT"/>
3348	</desc>
3349</template>
3350
3351<template name="GetUniform" direction="get">
3352	<proto>
3353		<return type="void"/>
3354		<param name="program" type="GLuint"/>
3355		<param name="location" type="GLint"/>
3356		<vector name="params" type="GLtype *" size="dynamic"/>
3357	</proto>
3358</template>
3359
3360<template name="QueryMatrix" direction="get">
3361	<proto>
3362		<return type="GLbitfield"/>
3363		<vector name="mantissa" type="GLtype *" size="16"/>
3364		<vector name="exponent" type="GLint *" size="16"/>
3365	</proto>
3366</template>
3367
3368<template name="DrawTex">
3369	<proto>
3370		<return type="void"/>
3371		<vector name="coords" type="const GLtype *" size="5">
3372			<param name="x" type="GLtype"/>
3373			<param name="y" type="GLtype"/>
3374			<param name="z" type="GLtype"/>
3375			<param name="w" type="GLtype"/>
3376			<param name="h" type="GLtype"/>
3377		</vector>
3378	</proto>
3379</template>
3380
3381<template name="MultiDrawArrays">
3382	<proto>
3383		<return type="void"/>
3384		<param name="mode" type="GLenum"/>
3385		<param name="first" type="const GLint *"/>
3386		<param name="count" type="const GLsizei *"/>
3387		<param name="primcount" type="GLsizei"/>
3388	</proto>
3389
3390	<desc name="mode">
3391		<value name="GL_POINTS"/>
3392		<value name="GL_LINES"/>
3393		<value name="GL_LINE_LOOP"/>
3394		<value name="GL_LINE_STRIP"/>
3395		<value name="GL_TRIANGLES"/>
3396		<value name="GL_TRIANGLE_STRIP"/>
3397		<value name="GL_TRIANGLE_FAN"/>
3398	</desc>
3399</template>
3400
3401<template name="MultiDrawElements">
3402	<proto>
3403		<return type="void"/>
3404		<param name="mode" type="GLenum"/>
3405		<param name="count" type="const GLsizei *"/>
3406		<param name="type" type="GLenum"/>
3407		<param name="indices" type="const GLvoid **"/>
3408		<param name="primcount" type="GLsizei"/>
3409	</proto>
3410
3411	<desc name="mode">
3412		<value name="GL_POINTS"/>
3413		<value name="GL_LINES"/>
3414		<value name="GL_LINE_LOOP"/>
3415		<value name="GL_LINE_STRIP"/>
3416		<value name="GL_TRIANGLES"/>
3417		<value name="GL_TRIANGLE_STRIP"/>
3418		<value name="GL_TRIANGLE_FAN"/>
3419	</desc>
3420
3421	<desc name="type">
3422		<value name="GL_UNSIGNED_BYTE"/>
3423		<value name="GL_UNSIGNED_SHORT"/>
3424		<value name="GL_UNSIGNED_INT" category="OES_element_index_uint"/>
3425	</desc>
3426</template>
3427
3428<template name="EGLImageTargetTexture2D">
3429	<proto>
3430		<return type="void"/>
3431		<param name="target" type="GLenum"/>
3432		<param name="image" type="GLeglImageOES"/>
3433	</proto>
3434
3435	<desc name="target">
3436		<value name="GL_TEXTURE_2D"/>
3437		<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
3438	</desc>
3439</template>
3440
3441<template name="EGLImageTargetRenderbufferStorage">
3442	<proto>
3443		<return type="void"/>
3444		<param name="target" type="GLenum"/>
3445		<param name="image" type="GLeglImageOES"/>
3446	</proto>
3447</template>
3448
3449<template name="DrawBuffers">
3450	<proto>
3451		<return type="void"/>
3452		<param name="n" type="GLsizei"/>
3453		<param name="bufs" type="const GLenum *"/>
3454	</proto>
3455</template>
3456
3457<template name="ReadBuffer">
3458	<proto>
3459		<return type="void"/>
3460		<param name="mode" type="GLenum"/>
3461	</proto>
3462</template>
3463
3464<api name="mesa" implementation="true">
3465	<category name="MESA"/>
3466
3467	<function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3468	<function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
3469	<function name="CullFace" template="CullFace"/>
3470
3471	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
3472	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
3473
3474	<function name="FrontFace" template="FrontFace"/>
3475	<function name="Hint" template="Hint"/>
3476
3477	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
3478	<function name="Lightfv" template="Light" gltype="GLfloat"/>
3479
3480	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
3481	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
3482
3483	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3484
3485	<function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
3486	<function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
3487
3488	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
3489	<function name="PointSizePointer" template="PointSizePointer"/>
3490
3491	<function name="Scissor" template="Scissor"/>
3492	<function name="ShadeModel" template="ShadeModel"/>
3493
3494	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3495	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3496	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3497	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3498
3499	<function name="TexImage2D" template="TexImage2D"/>
3500
3501	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
3502	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
3503	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
3504	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
3505
3506	<function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
3507	<function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
3508
3509	<function name="Clear" template="Clear"/>
3510	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3511	<function name="ClearStencil" template="ClearStencil"/>
3512	<function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
3513	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3514
3515	<function name="StencilMask" template="StencilMask"/>
3516	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
3517	<function name="ColorMask" template="ColorMask"/>
3518	<function name="DepthMask" template="DepthMask"/>
3519	<function name="Disable" template="Disable"/>
3520	<function name="Enable" template="Enable"/>
3521	<function name="Finish" template="Finish"/>
3522	<function name="Flush" template="Flush"/>
3523
3524	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
3525
3526	<function name="BlendFunc" template="BlendFunc"/>
3527	<function name="LogicOp" template="LogicOp"/>
3528	<function name="StencilFunc" template="StencilFunc"/>
3529	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
3530	<function name="StencilOp" template="StencilOp"/>
3531	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
3532	<function name="DepthFunc" template="DepthFunc"/>
3533	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3534
3535	<function name="ReadPixels" template="ReadPixels"/>
3536	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3537	<function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
3538	<function name="GetError" template="GetError"/>
3539	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3540	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
3541	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3542
3543	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
3544	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
3545	<function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
3546
3547	<function name="GetString" template="GetString"/>
3548
3549	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
3550	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
3551	<function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
3552	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3553	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3554
3555	<function name="IsEnabled" template="IsEnabled"/>
3556
3557	<function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
3558	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3559	<function name="Frustum" template="Frustum" gltype="GLdouble"/>
3560
3561	<function name="LoadIdentity" template="LoadIdentity"/>
3562	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
3563	<function name="MatrixMode" template="MatrixMode"/>
3564
3565	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
3566	<function name="Ortho" template="Ortho" gltype="GLdouble"/>
3567	<function name="PopMatrix" template="PopMatrix"/>
3568	<function name="PushMatrix" template="PushMatrix"/>
3569
3570	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
3571	<function name="Scalef" template="Scale" gltype="GLfloat"/>
3572	<function name="Translatef" template="Translate" gltype="GLfloat"/>
3573
3574	<function name="Viewport" template="Viewport"/>
3575
3576	<function name="ColorPointer" template="ColorPointer"/>
3577	<function name="DisableClientState" template="DisableClientState"/>
3578	<function name="DrawArrays" template="DrawArrays"/>
3579	<function name="DrawElements" template="DrawElements"/>
3580	<function name="EnableClientState" template="EnableClientState"/>
3581
3582	<function name="GetPointerv" template="GetPointer"/>
3583	<function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
3584	<function name="NormalPointer" template="NormalPointer"/>
3585	<function name="TexCoordPointer" template="TexCoordPointer"/>
3586	<function name="VertexPointer" template="VertexPointer"/>
3587
3588	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3589	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3590	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3591	<function name="TexSubImage2D" template="TexSubImage2D"/>
3592
3593	<function name="BindTexture" template="BindTexture"/>
3594	<function name="DeleteTextures" template="DeleteTextures"/>
3595	<function name="GenTextures" template="GenTextures"/>
3596	<function name="IsTexture" template="IsTexture"/>
3597
3598	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
3599	<function name="BlendEquation" template="BlendEquation"/>
3600	<function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
3601
3602	<function name="TexImage3D" template="TexImage3D"/>
3603	<function name="TexSubImage3D" template="TexSubImage3D"/>
3604	<function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
3605
3606	<function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
3607	<function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
3608
3609	<function name="ActiveTextureARB" template="ActiveTexture"/>
3610	<function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
3611
3612	<function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3613
3614	<function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
3615
3616	<function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
3617	<function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
3618
3619	<function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
3620
3621	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3622	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3623
3624	<function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3625	<function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3626	<function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3627	<function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3628	<function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
3629	<function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
3630	<function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
3631	<function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
3632
3633	<function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
3634	<function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
3635	<function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
3636
3637	<function name="IsProgram" template="IsProgram"/>
3638	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
3639
3640	<function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
3641	<function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
3642	<function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
3643
3644	<function name="GetBufferPointervARB" template="GetBufferPointer"/>
3645	<function name="MapBufferARB" template="MapBuffer"/>
3646	<function name="UnmapBufferARB" template="UnmapBuffer"/>
3647	<function name="BindBufferARB" template="BindBuffer"/>
3648	<function name="BufferDataARB" template="BufferData"/>
3649	<function name="BufferSubDataARB" template="BufferSubData"/>
3650	<function name="DeleteBuffersARB" template="DeleteBuffers"/>
3651	<function name="GenBuffersARB" template="GenBuffers"/>
3652	<function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
3653	<function name="IsBufferARB" template="IsBuffer"/>
3654
3655	<function name="CreateShader" template="CreateShader"/>
3656	<function name="ShaderSourceARB" template="ShaderSource"/>
3657	<function name="CompileShaderARB" template="CompileShader"/>
3658	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
3659	<function name="DeleteShader" template="DeleteShader"/>
3660	<function name="ShaderBinary" template="ShaderBinary"/>
3661	<function name="CreateProgram" template="CreateProgram"/>
3662	<function name="AttachShader" template="AttachShader"/>
3663	<function name="DetachShader" template="DetachShader"/>
3664	<function name="LinkProgramARB" template="LinkProgram"/>
3665	<function name="UseProgramObjectARB" template="UseProgram"/>
3666	<function name="DeleteProgram" template="DeleteProgram"/>
3667
3668	<function name="GetActiveAttribARB" template="GetActiveAttrib"/>
3669	<function name="GetAttribLocationARB" template="GetAttribLocation"/>
3670	<function name="BindAttribLocationARB" template="BindAttribLocation"/>
3671	<function name="GetUniformLocationARB" template="GetUniformLocation"/>
3672	<function name="GetActiveUniformARB" template="GetActiveUniform"/>
3673
3674	<function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3675	<function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3676	<function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3677	<function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3678	<function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
3679	<function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
3680	<function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
3681	<function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
3682	<function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
3683	<function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
3684	<function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
3685	<function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
3686	<function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
3687	<function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
3688	<function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
3689	<function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
3690
3691	<function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
3692	<function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
3693	<function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
3694
3695	<function name="ValidateProgramARB" template="ValidateProgram"/>
3696
3697	<function name="GenerateMipmapEXT" template="GenerateMipmap"/>
3698	<function name="BindFramebufferEXT" template="BindFramebuffer"/>
3699	<function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
3700	<function name="GenFramebuffersEXT" template="GenFramebuffers"/>
3701	<function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
3702	<function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
3703	<function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
3704	<function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
3705	<function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
3706	<function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
3707	<function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
3708	<function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
3709	<function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3710	<function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
3711	<function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
3712	<function name="IsFramebufferEXT" template="IsFramebuffer"/>
3713
3714	<function name="IsShader" template="IsShader"/>
3715	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3716	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3717	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3718	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3719	<function name="GetShaderSourceARB" template="GetShaderSource"/>
3720	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3721	<function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
3722	<function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
3723
3724	<function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3725	<function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
3726	<function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
3727	<function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
3728	<function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3729	<function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
3730
3731        <!-- EXT_multi_draw_arrays -->
3732        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3733        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3734
3735        <!-- OES_EGL_image -->
3736        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3737        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3738
3739	<function name="DrawBuffersARB" template="DrawBuffers"/>
3740
3741	<function name="ReadBuffer" template="ReadBuffer"/>
3742
3743</api>
3744
3745<api name="GLES1.1">
3746	<category name="GLES1.1"/>
3747
3748	<category name="OES_byte_coordinates"/>
3749	<category name="OES_fixed_point"/>
3750	<category name="OES_single_precision"/>
3751	<category name="OES_matrix_get"/>
3752	<category name="OES_read_format"/>
3753	<category name="OES_compressed_paletted_texture"/>
3754	<category name="OES_compressed_ETC1_RGB8_texture"/>
3755	<category name="OES_point_size_array"/>
3756	<category name="OES_point_sprite"/>
3757	<category name="OES_query_matrix"/>
3758	<category name="OES_draw_texture"/>
3759	<category name="OES_blend_equation_separate"/>
3760	<category name="OES_blend_func_separate"/>
3761	<category name="OES_blend_subtract"/>
3762	<category name="OES_stencil_wrap"/>
3763	<category name="OES_texture_cube_map"/>
3764	<category name="OES_texture_env_crossbar"/>
3765	<category name="OES_texture_mirrored_repeat"/>
3766	<category name="OES_framebuffer_object"/>
3767	<category name="OES_depth24"/>
3768	<category name="OES_depth32"/>
3769	<category name="OES_fbo_render_mipmap"/>
3770	<category name="OES_rgb8_rgba8"/>
3771	<category name="OES_stencil1"/>
3772	<category name="OES_stencil4"/>
3773	<category name="OES_stencil8"/>
3774	<category name="OES_element_index_uint"/>
3775	<category name="OES_mapbuffer"/>
3776	<category name="EXT_texture_filter_anisotropic"/>
3777	<category name="EXT_texture_format_BGRA8888"/>
3778	<category name="EXT_read_format_bgra"/>
3779
3780	<category name="ARB_texture_non_power_of_two"/>
3781	<!-- disabled due to missing enums
3782	<category name="EXT_texture_compression_dxt1"/>
3783	-->
3784	<category name="EXT_texture_lod_bias"/>
3785	<category name="EXT_blend_minmax"/>
3786	<category name="EXT_multi_draw_arrays"/>
3787	<category name="OES_EGL_image"/>
3788	<category name="OES_EGL_image_external"/>
3789
3790	<category name="OES_matrix_palette"/>
3791
3792	<function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3793	<function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
3794	<function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3795
3796	<function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
3797	<function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
3798
3799	<function name="CullFace" template="CullFace"/>
3800
3801	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
3802	<function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
3803	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
3804	<function name="Fogxv" template="Fog" gltype="GLfixed"/>
3805
3806	<function name="FrontFace" template="FrontFace"/>
3807	<function name="Hint" template="Hint"/>
3808
3809	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
3810	<function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
3811	<function name="Lightfv" template="Light" gltype="GLfloat"/>
3812	<function name="Lightxv" template="Light" gltype="GLfixed"/>
3813
3814	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
3815	<function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
3816	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
3817	<function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
3818
3819	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3820	<function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
3821
3822	<function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
3823	<function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
3824	<function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
3825	<function name="Materialxv" template="Material" gltype="GLfixed"/>
3826
3827	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
3828	<function name="PointSizex" template="PointSize" gltype="GLfixed"/>
3829	<function name="PointSizePointerOES" template="PointSizePointer"/>
3830
3831	<function name="Scissor" template="Scissor"/>
3832	<function name="ShadeModel" template="ShadeModel"/>
3833
3834	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3835	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3836	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3837	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3838	<function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
3839	<function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
3840
3841	<function name="TexImage2D" template="TexImage2D"/>
3842
3843	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
3844	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
3845	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
3846	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
3847	<function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
3848	<function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
3849
3850	<function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
3851	<function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
3852	<function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
3853	<function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
3854	<function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
3855	<function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
3856
3857	<function name="Clear" template="Clear"/>
3858	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3859	<function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
3860
3861	<function name="ClearStencil" template="ClearStencil"/>
3862	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3863	<function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
3864
3865	<function name="StencilMask" template="StencilMask"/>
3866	<function name="ColorMask" template="ColorMask"/>
3867	<function name="DepthMask" template="DepthMask"/>
3868
3869	<function name="Disable" template="Disable"/>
3870	<function name="Enable" template="Enable"/>
3871	<function name="Finish" template="Finish"/>
3872	<function name="Flush" template="Flush"/>
3873
3874	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
3875	<function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
3876
3877	<function name="BlendFunc" template="BlendFunc"/>
3878	<function name="LogicOp" template="LogicOp"/>
3879	<function name="StencilFunc" template="StencilFunc"/>
3880
3881	<function name="StencilOp" template="StencilOp"/>
3882	<function name="DepthFunc" template="DepthFunc"/>
3883
3884	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3885	<function name="ReadPixels" template="ReadPixels"/>
3886
3887	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3888
3889	<function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
3890	<function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
3891
3892	<function name="GetError" template="GetError"/>
3893	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3894	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
3895	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3896
3897	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
3898	<function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
3899
3900	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
3901	<function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
3902
3903	<function name="GetString" template="GetString"/>
3904
3905	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
3906	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
3907	<function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
3908
3909	<function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
3910	<function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
3911	<function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
3912
3913	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3914	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3915	<function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
3916
3917	<function name="IsEnabled" template="IsEnabled"/>
3918
3919	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3920	<function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
3921
3922	<function name="Frustumf" template="Frustum" gltype="GLfloat"/>
3923	<function name="Frustumx" template="Frustum" gltype="GLfixed"/>
3924
3925	<function name="LoadIdentity" template="LoadIdentity"/>
3926	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
3927	<function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
3928	<function name="MatrixMode" template="MatrixMode"/>
3929
3930	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
3931	<function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
3932	<function name="Orthof" template="Ortho" gltype="GLfloat"/>
3933	<function name="Orthox" template="Ortho" gltype="GLfixed"/>
3934
3935	<function name="PopMatrix" template="PopMatrix"/>
3936	<function name="PushMatrix" template="PushMatrix"/>
3937
3938	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
3939	<function name="Rotatex" template="Rotate" gltype="GLfixed"/>
3940	<function name="Scalef" template="Scale" gltype="GLfloat"/>
3941	<function name="Scalex" template="Scale" gltype="GLfixed"/>
3942	<function name="Translatef" template="Translate" gltype="GLfloat"/>
3943	<function name="Translatex" template="Translate" gltype="GLfixed"/>
3944
3945	<function name="Viewport" template="Viewport"/>
3946	<function name="ColorPointer" template="ColorPointer"/>
3947	<function name="DisableClientState" template="DisableClientState"/>
3948	<function name="DrawArrays" template="DrawArrays"/>
3949	<function name="DrawElements" template="DrawElements"/>
3950	<function name="EnableClientState" template="EnableClientState"/>
3951
3952	<function name="GetPointerv" template="GetPointer"/>
3953
3954	<function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
3955	<function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
3956	<function name="NormalPointer" template="NormalPointer"/>
3957	<function name="TexCoordPointer" template="TexCoordPointer"/>
3958	<function name="VertexPointer" template="VertexPointer"/>
3959
3960	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3961	<function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
3962
3963	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3964	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3965
3966	<function name="TexSubImage2D" template="TexSubImage2D"/>
3967
3968	<function name="BindTexture" template="BindTexture"/>
3969	<function name="DeleteTextures" template="DeleteTextures"/>
3970	<function name="GenTextures" template="GenTextures"/>
3971	<function name="IsTexture" template="IsTexture"/>
3972
3973	<function name="BlendEquationOES" template="BlendEquation"/>
3974	<function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
3975
3976	<function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3977
3978	<function name="ActiveTexture" template="ActiveTexture"/>
3979	<function name="ClientActiveTexture" template="ClientActiveTexture"/>
3980
3981	<function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3982
3983	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3984	<function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
3985
3986	<!-- CompressedTexImage2D calls out to two different functions based on
3987	     whether the image is a paletted image or not -->
3988	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3989	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3990
3991	<function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
3992
3993	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3994	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3995	<function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
3996	<function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
3997
3998	<!-- OES_mapbuffer -->
3999	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
4000	<function name="MapBufferOES" template="MapBuffer"/>
4001	<function name="UnmapBufferOES" template="UnmapBuffer"/>
4002
4003	<function name="BindBuffer" template="BindBuffer"/>
4004	<function name="BufferData" template="BufferData"/>
4005	<function name="BufferSubData" template="BufferSubData"/>
4006	<function name="DeleteBuffers" template="DeleteBuffers"/>
4007	<function name="GenBuffers" template="GenBuffers"/>
4008	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
4009	<function name="IsBuffer" template="IsBuffer"/>
4010
4011	<!-- OES_framebuffer_object -->
4012	<function name="GenerateMipmapOES" template="GenerateMipmap"/>
4013	<function name="BindFramebufferOES" template="BindFramebuffer"/>
4014	<function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
4015	<function name="GenFramebuffersOES" template="GenFramebuffers"/>
4016	<function name="BindRenderbufferOES" template="BindRenderbuffer"/>
4017	<function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
4018	<function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
4019	<function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
4020	<function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
4021	<function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
4022	<function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
4023	<function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
4024	<function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
4025	<function name="IsRenderbufferOES" template="IsRenderbuffer"/>
4026	<function name="IsFramebufferOES" template="IsFramebuffer"/>
4027
4028	<!-- OES_query_matrix -->
4029	<!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
4030	     form; it has its own code for this -->
4031	<function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
4032
4033	<!-- OES_draw_texture -->
4034	<function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
4035	<function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
4036	<function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
4037	<function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
4038	<function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
4039	<function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
4040	<function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
4041	<function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
4042
4043        <!-- EXT_multi_draw_arrays -->
4044        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
4045        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
4046
4047        <!-- OES_EGL_image -->
4048        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
4049        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
4050</api>
4051
4052<api name="GLES2.0">
4053	<category name="GLES2.0"/>
4054
4055	<category name="OES_compressed_paletted_texture"/>
4056	<category name="OES_compressed_ETC1_RGB8_texture"/>
4057	<category name="OES_depth24"/>
4058	<category name="OES_depth32"/>
4059	<category name="OES_fbo_render_mipmap"/>
4060	<category name="OES_rgb8_rgba8"/>
4061	<category name="OES_stencil1"/>
4062	<category name="OES_stencil4"/>
4063	<category name="OES_element_index_uint"/>
4064	<category name="OES_mapbuffer"/>
4065	<category name="OES_texture_3D"/>
4066	<category name="OES_texture_npot"/>
4067	<category name="EXT_texture_filter_anisotropic"/>
4068	<category name="EXT_texture_type_2_10_10_10_REV"/>
4069	<category name="OES_depth_texture"/>
4070	<category name="OES_packed_depth_stencil"/>
4071	<category name="OES_standard_derivatives"/>
4072	<category name="EXT_texture_format_BGRA8888"/>
4073	<category name="EXT_texture_rg"/>
4074	<category name="EXT_read_format_bgra"/>
4075
4076	<category name="EXT_texture_compression_dxt1"/>
4077	<category name="EXT_blend_minmax"/>
4078	<category name="EXT_multi_draw_arrays"/>
4079	<category name="OES_EGL_image"/>
4080	<category name="OES_EGL_image_external"/>
4081        <category name="EXT_unpack_subimage"/>
4082
4083	<category name="NV_draw_buffers"/>
4084	<category name="NV_read_buffer"/>
4085
4086	<function name="DrawBuffersNV" template="DrawBuffers"/>
4087	<function name="ReadBufferNV" template="ReadBuffer"/> 
4088
4089	<function name="CullFace" template="CullFace"/>
4090
4091	<function name="FrontFace" template="FrontFace"/>
4092	<function name="Hint" template="Hint"/>
4093
4094	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
4095
4096	<function name="Scissor" template="Scissor"/>
4097
4098	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
4099	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
4100	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
4101	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
4102
4103	<function name="TexImage2D" template="TexImage2D"/>
4104
4105	<function name="Clear" template="Clear"/>
4106	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
4107	<function name="ClearStencil" template="ClearStencil"/>
4108	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
4109
4110	<function name="StencilMask" template="StencilMask"/>
4111	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
4112	<function name="ColorMask" template="ColorMask"/>
4113	<function name="DepthMask" template="DepthMask"/>
4114	<function name="Disable" template="Disable"/>
4115	<function name="Enable" template="Enable"/>
4116	<function name="Finish" template="Finish"/>
4117	<function name="Flush" template="Flush"/>
4118
4119	<function name="BlendFunc" template="BlendFunc"/>
4120
4121	<function name="StencilFunc" template="StencilFunc"/>
4122	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
4123	<function name="StencilOp" template="StencilOp"/>
4124	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
4125
4126	<function name="DepthFunc" template="DepthFunc"/>
4127
4128	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
4129	<function name="ReadPixels" template="ReadPixels"/>
4130
4131	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
4132	<function name="GetError" template="GetError"/>
4133	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
4134	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
4135
4136	<function name="GetString" template="GetString"/>
4137
4138	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
4139	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
4140
4141	<function name="IsEnabled" template="IsEnabled"/>
4142
4143	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
4144
4145	<function name="Viewport" template="Viewport"/>
4146
4147	<function name="DrawArrays" template="DrawArrays"/>
4148	<function name="DrawElements" template="DrawElements"/>
4149
4150	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
4151	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
4152	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
4153	<function name="TexSubImage2D" template="TexSubImage2D"/>
4154
4155	<function name="BindTexture" template="BindTexture"/>
4156	<function name="DeleteTextures" template="DeleteTextures"/>
4157	<function name="GenTextures" template="GenTextures"/>
4158	<function name="IsTexture" template="IsTexture"/>
4159
4160	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
4161	<function name="BlendEquation" template="BlendEquation"/>
4162	<function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
4163
4164	<function name="TexImage3DOES" template="TexImage3D"/>
4165	<function name="TexSubImage3DOES" template="TexSubImage3D"/>
4166	<function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
4167
4168	<function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
4169	<function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
4170
4171	<function name="ActiveTexture" template="ActiveTexture"/>
4172
4173	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
4174
4175	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
4176	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
4177
4178	<function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
4179
4180	<function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
4181	<function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
4182	<function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
4183	<function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
4184	<function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
4185	<function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
4186	<function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
4187	<function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
4188
4189	<function name="VertexAttribPointer" template="VertexAttribPointer"/>
4190
4191	<function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
4192	<function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
4193
4194	<function name="IsProgram" template="IsProgram"/>
4195	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
4196
4197	<function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
4198	<function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
4199	<function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
4200
4201	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
4202	<function name="MapBufferOES" template="MapBuffer"/>
4203	<function name="UnmapBufferOES" template="UnmapBuffer"/>
4204	<function name="BindBuffer" template="BindBuffer"/>
4205	<function name="BufferData" template="BufferData"/>
4206	<function name="BufferSubData" template="BufferSubData"/>
4207	<function name="DeleteBuffers" template="DeleteBuffers"/>
4208	<function name="GenBuffers" template="GenBuffers"/>
4209	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
4210	<function name="IsBuffer" template="IsBuffer"/>
4211
4212	<function name="CreateShader" template="CreateShader"/>
4213	<function name="ShaderSource" template="ShaderSource"/>
4214	<function name="CompileShader" template="CompileShader"/>
4215	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
4216	<function name="DeleteShader" template="DeleteShader"/>
4217	<function name="ShaderBinary" template="ShaderBinary"/>
4218	<function name="CreateProgram" template="CreateProgram"/>
4219	<function name="AttachShader" template="AttachShader"/>
4220	<function name="DetachShader" template="DetachShader"/>
4221	<function name="LinkProgram" template="LinkProgram"/>
4222	<function name="UseProgram" template="UseProgram"/>
4223	<function name="DeleteProgram" template="DeleteProgram"/>
4224
4225	<function name="GetActiveAttrib" template="GetActiveAttrib"/>
4226	<function name="GetAttribLocation" template="GetAttribLocation"/>
4227	<function name="BindAttribLocation" template="BindAttribLocation"/>
4228	<function name="GetUniformLocation" template="GetUniformLocation"/>
4229	<function name="GetActiveUniform" template="GetActiveUniform"/>
4230
4231	<function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
4232	<function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
4233	<function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
4234	<function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
4235	<function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
4236	<function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
4237	<function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
4238	<function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
4239
4240	<function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
4241	<function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
4242	<function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
4243	<function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
4244	<function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
4245	<function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
4246	<function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
4247	<function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
4248
4249	<function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
4250	<function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
4251	<function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
4252
4253	<function name="ValidateProgram" template="ValidateProgram"/>
4254
4255	<function name="GenerateMipmap" template="GenerateMipmap"/>
4256	<function name="BindFramebuffer" template="BindFramebuffer"/>
4257	<function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
4258	<function name="GenFramebuffers" template="GenFramebuffers"/>
4259	<function name="BindRenderbuffer" template="BindRenderbuffer"/>
4260	<function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
4261	<function name="GenRenderbuffers" template="GenRenderbuffers"/>
4262	<function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
4263	<function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
4264	<function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
4265	<function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
4266	<function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
4267	<function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
4268	<function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
4269	<function name="IsRenderbuffer" template="IsRenderbuffer"/>
4270	<function name="IsFramebuffer" template="IsFramebuffer"/>
4271
4272	<function name="IsShader" template="IsShader"/>
4273	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
4274	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
4275	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
4276	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
4277	<function name="GetShaderSource" template="GetShaderSource"/>
4278	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
4279	<function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
4280	<function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
4281
4282        <!-- EXT_multi_draw_arrays -->
4283        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
4284        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
4285
4286        <!-- OES_EGL_image -->
4287        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
4288        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
4289</api>
4290
4291</apispec>
4292