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