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