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