APIspec.xml revision 409620e47748479aaef593dc9bec0d6dd520e14a
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
1422	<desc name="internalFormat" error="GL_INVALID_VALUE">
1423		<value name="GL_ALPHA"/>
1424		<value name="GL_RGB"/>
1425		<value name="GL_RGBA"/>
1426		<value name="GL_LUMINANCE"/>
1427		<value name="GL_LUMINANCE_ALPHA"/>
1428	</desc>
1429</template>
1430
1431<template name="CopyTexSubImage2D">
1432	<proto>
1433		<return type="void"/>
1434		<param name="target" type="GLenum"/>
1435		<param name="level" type="GLint"/>
1436		<param name="xoffset" type="GLint"/>
1437		<param name="yoffset" type="GLint"/>
1438		<param name="x" type="GLint"/>
1439		<param name="y" type="GLint"/>
1440		<param name="width" type="GLsizei"/>
1441		<param name="height" type="GLsizei"/>
1442	</proto>
1443</template>
1444
1445<template name="TexSubImage2D">
1446	<proto>
1447		<return type="void"/>
1448		<param name="target" type="GLenum"/>
1449		<param name="level" type="GLint"/>
1450		<param name="xoffset" type="GLint"/>
1451		<param name="yoffset" type="GLint"/>
1452		<param name="width" type="GLsizei"/>
1453		<param name="height" type="GLsizei"/>
1454		<param name="format" type="GLenum"/>
1455		<param name="type" type="GLenum"/>
1456		<param name="pixels" type="const GLvoid *"/>
1457	</proto>
1458
1459	<desc name="format">
1460		<value name="GL_ALPHA"/>
1461
1462		<desc name="type" error="GL_INVALID_OPERATION">
1463			<value name="GL_UNSIGNED_BYTE"/>
1464			<value name="GL_FLOAT" category="OES_texture_float"/>
1465			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1466		</desc>
1467	</desc>
1468
1469	<desc name="format">
1470		<value name="GL_RGB"/>
1471
1472		<desc name="type" error="GL_INVALID_OPERATION">
1473			<value name="GL_UNSIGNED_BYTE"/>
1474			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
1475			<value name="GL_FLOAT" category="OES_texture_float"/>
1476			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1477		</desc>
1478	</desc>
1479
1480	<desc name="format">
1481		<value name="GL_RGBA"/>
1482
1483		<desc name="type" error="GL_INVALID_OPERATION">
1484			<value name="GL_UNSIGNED_BYTE"/>
1485			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
1486			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
1487			<value name="GL_FLOAT" category="OES_texture_float"/>
1488			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1489			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
1490		</desc>
1491	</desc>
1492
1493	<desc name="format">
1494		<value name="GL_LUMINANCE"/>
1495
1496		<desc name="type" error="GL_INVALID_OPERATION">
1497			<value name="GL_UNSIGNED_BYTE"/>
1498			<value name="GL_FLOAT" category="OES_texture_float"/>
1499			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1500		</desc>
1501	</desc>
1502
1503	<desc name="format">
1504		<value name="GL_LUMINANCE_ALPHA"/>
1505
1506		<desc name="type" error="GL_INVALID_OPERATION">
1507			<value name="GL_UNSIGNED_BYTE"/>
1508			<value name="GL_FLOAT" category="OES_texture_float"/>
1509			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1510		</desc>
1511	</desc>
1512
1513	<desc name="format" category="OES_depth_texture">
1514		<value name="GL_DEPTH_COMPONENT"/>
1515
1516		<desc name="type" error="GL_INVALID_OPERATION">
1517			<value name="GL_UNSIGNED_SHORT"/>
1518			<value name="GL_UNSIGNED_INT"/>
1519		</desc>
1520	</desc>
1521
1522	<desc name="format" category="OES_packed_depth_stencil">
1523		<value name="GL_DEPTH_STENCIL_OES"/>
1524
1525		<desc name="type" error="GL_INVALID_OPERATION">
1526			<value name="GL_UNSIGNED_INT_24_8_OES"/>
1527		</desc>
1528	</desc>
1529
1530	<desc name="format" category="EXT_texture_format_BGRA8888">
1531		<value name="GL_BGRA_EXT"/>
1532
1533		<desc name="type" error="GL_INVALID_OPERATION">
1534			<value name="GL_UNSIGNED_BYTE"/>
1535		</desc>
1536	</desc>
1537</template>
1538
1539<template name="BindTexture">
1540	<proto>
1541		<return type="void"/>
1542		<param name="target" type="GLenum"/>
1543		<param name="texture" type="GLuint"/>
1544	</proto>
1545</template>
1546
1547<template name="DeleteTextures">
1548	<proto>
1549		<return type="void"/>
1550		<param name="n" type="GLsizei"/>
1551		<param name="textures" type="const GLuint *"/>
1552	</proto>
1553</template>
1554
1555<template name="GenTextures" direction="get">
1556	<proto>
1557		<return type="void"/>
1558		<param name="n" type="GLsizei"/>
1559		<param name="textures" type="GLuint *"/>
1560	</proto>
1561</template>
1562
1563<template name="IsTexture" direction="get">
1564	<proto>
1565		<return type="GLboolean"/>
1566		<param name="texture" type="GLuint"/>
1567	</proto>
1568</template>
1569
1570<template name="BlendColor">
1571	<proto>
1572		<return type="void"/>
1573		<param name="red" type="GLtype"/>
1574		<param name="green" type="GLtype"/>
1575		<param name="blue" type="GLtype"/>
1576		<param name="alpha" type="GLtype"/>
1577	</proto>
1578</template>
1579
1580<template name="BlendEquation">
1581	<proto>
1582		<return type="void"/>
1583		<param name="mode" type="GLenum"/>
1584	</proto>
1585</template>
1586
1587<template name="BlendEquationSeparate">
1588	<proto>
1589		<return type="void"/>
1590		<param name="modeRGB" type="GLenum"/>
1591		<param name="modeAlpha" type="GLenum"/>
1592	</proto>
1593</template>
1594
1595<template name="TexImage3D">
1596	<proto>
1597		<return type="void"/>
1598		<param name="target" type="GLenum"/>
1599		<param name="level" type="GLint"/>
1600		<param name="internalFormat" type="GLenum"/>
1601		<param name="width" type="GLsizei"/>
1602		<param name="height" type="GLsizei"/>
1603		<param name="depth" type="GLsizei"/>
1604		<param name="border" type="GLint"/>
1605		<param name="format" type="GLenum"/>
1606		<param name="type" type="GLenum"/>
1607		<param name="pixels" type="const GLvoid *"/>
1608	</proto>
1609
1610</template>
1611
1612<template name="TexSubImage3D">
1613	<proto>
1614		<return type="void"/>
1615		<param name="target" type="GLenum"/>
1616		<param name="level" type="GLint"/>
1617		<param name="xoffset" type="GLint"/>
1618		<param name="yoffset" type="GLint"/>
1619		<param name="zoffset" type="GLint"/>
1620		<param name="width" type="GLsizei"/>
1621		<param name="height" type="GLsizei"/>
1622		<param name="depth" type="GLsizei"/>
1623		<param name="format" type="GLenum"/>
1624		<param name="type" type="GLenum"/>
1625		<param name="pixels" type="const GLvoid *"/>
1626	</proto>
1627
1628	<desc name="format">
1629		<value name="GL_ALPHA"/>
1630
1631		<desc name="type" error="GL_INVALID_OPERATION">
1632			<value name="GL_UNSIGNED_BYTE"/>
1633			<value name="GL_FLOAT" category="OES_texture_float"/>
1634			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1635		</desc>
1636	</desc>
1637
1638	<desc name="format">
1639		<value name="GL_RGB"/>
1640
1641		<desc name="type" error="GL_INVALID_OPERATION">
1642			<value name="GL_UNSIGNED_BYTE"/>
1643			<value name="GL_UNSIGNED_SHORT_5_6_5"/>
1644			<value name="GL_FLOAT" category="OES_texture_float"/>
1645			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1646		</desc>
1647	</desc>
1648
1649	<desc name="format">
1650		<value name="GL_RGBA"/>
1651
1652		<desc name="type" error="GL_INVALID_OPERATION">
1653			<value name="GL_UNSIGNED_BYTE"/>
1654			<value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
1655			<value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
1656			<value name="GL_FLOAT" category="OES_texture_float"/>
1657			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1658			<value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
1659		</desc>
1660	</desc>
1661
1662	<desc name="format">
1663		<value name="GL_LUMINANCE"/>
1664
1665		<desc name="type" error="GL_INVALID_OPERATION">
1666			<value name="GL_UNSIGNED_BYTE"/>
1667			<value name="GL_FLOAT" category="OES_texture_float"/>
1668			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1669		</desc>
1670	</desc>
1671
1672	<desc name="format">
1673		<value name="GL_LUMINANCE_ALPHA"/>
1674
1675		<desc name="type" error="GL_INVALID_OPERATION">
1676			<value name="GL_UNSIGNED_BYTE"/>
1677			<value name="GL_FLOAT" category="OES_texture_float"/>
1678			<value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
1679		</desc>
1680	</desc>
1681</template>
1682
1683<template name="CopyTexSubImage3D">
1684	<proto>
1685		<return type="void"/>
1686		<param name="target" type="GLenum"/>
1687		<param name="level" type="GLint"/>
1688		<param name="xoffset" type="GLint"/>
1689		<param name="yoffset" type="GLint"/>
1690		<param name="zoffset" type="GLint"/>
1691		<param name="x" type="GLint"/>
1692		<param name="y" type="GLint"/>
1693		<param name="width" type="GLsizei"/>
1694		<param name="height" type="GLsizei"/>
1695	</proto>
1696</template>
1697
1698<template name="MultiTexCoord">
1699	<proto>
1700		<return type="void"/>
1701		<param name="texture" type="GLenum"/>
1702		<vector name="v" type="const GLtype *" size="dynamic">
1703			<param name="s" type="GLtype"/>
1704			<param name="t" type="GLtype"/>
1705			<param name="r" type="GLtype"/>
1706			<param name="q" type="GLtype"/>
1707		</vector>
1708	</proto>
1709</template>
1710
1711<template name="CompressedTexImage3D">
1712	<proto>
1713		<return type="void"/>
1714		<param name="target" type="GLenum"/>
1715		<param name="level" type="GLint"/>
1716		<param name="internalFormat" type="GLenum"/>
1717		<param name="width" type="GLsizei"/>
1718		<param name="height" type="GLsizei"/>
1719		<param name="depth" type="GLsizei"/>
1720		<param name="border" type="GLint"/>
1721		<param name="imagesize" type="GLsizei"/>
1722		<param name="data" type="const GLvoid *"/>
1723	</proto>
1724</template>
1725
1726<template name="CompressedTexSubImage3D">
1727	<proto>
1728		<return type="void"/>
1729		<param name="target" type="GLenum"/>
1730		<param name="level" type="GLint"/>
1731		<param name="xoffset" type="GLint"/>
1732		<param name="yoffset" type="GLint"/>
1733		<param name="zoffset" type="GLint"/>
1734		<param name="width" type="GLsizei"/>
1735		<param name="height" type="GLsizei"/>
1736		<param name="depth" type="GLsizei"/>
1737		<param name="format" type="GLenum"/>
1738		<param name="imagesize" type="GLsizei"/>
1739		<param name="data" type="const GLvoid *"/>
1740	</proto>
1741</template>
1742
1743<template name="ActiveTexture">
1744	<proto>
1745		<return type="void"/>
1746		<param name="texture" type="GLenum"/>
1747	</proto>
1748</template>
1749
1750<template name="ClientActiveTexture">
1751	<proto>
1752		<return type="void"/>
1753		<param name="texture" type="GLenum"/>
1754	</proto>
1755</template>
1756
1757<template name="SampleCoverage">
1758	<proto>
1759		<return type="void"/>
1760		<param name="value" type="GLtype"/>
1761		<param name="invert" type="GLboolean"/>
1762	</proto>
1763</template>
1764
1765<template name="CompressedTexImage2D">
1766	<proto>
1767		<return type="void"/>
1768		<param name="target" type="GLenum"/>
1769		<param name="level" type="GLint"/>
1770		<param name="internalFormat" type="GLenum"/>
1771		<param name="width" type="GLsizei"/>
1772		<param name="height" type="GLsizei"/>
1773		<param name="border" type="GLint"/>
1774		<param name="imageSize" type="GLsizei"/>
1775		<param name="data" type="const GLvoid *"/>
1776	</proto>
1777
1778	<desc name="internalFormat">
1779		<value name="GL_ETC1_RGB8_OES" category="OES_compressed_ETC1_RGB8_texture"/>
1780
1781		<value name="GL_PALETTE4_RGB8_OES" category="OES_compressed_paletted_texture"/>
1782		<value name="GL_PALETTE4_RGBA8_OES" category="OES_compressed_paletted_texture"/>
1783		<value name="GL_PALETTE4_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
1784		<value name="GL_PALETTE4_RGBA4_OES" category="OES_compressed_paletted_texture"/>
1785		<value name="GL_PALETTE4_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
1786		<value name="GL_PALETTE8_RGB8_OES" category="OES_compressed_paletted_texture"/>
1787		<value name="GL_PALETTE8_RGBA8_OES" category="OES_compressed_paletted_texture"/>
1788		<value name="GL_PALETTE8_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
1789		<value name="GL_PALETTE8_RGBA4_OES" category="OES_compressed_paletted_texture"/>
1790		<value name="GL_PALETTE8_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
1791
1792		<value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
1793		<value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
1794	</desc>
1795</template>
1796
1797<template name="CompressedTexSubImage2D">
1798	<proto>
1799		<return type="void"/>
1800		<param name="target" type="GLenum"/>
1801		<param name="level" type="GLint"/>
1802		<param name="xoffset" type="GLint"/>
1803		<param name="yoffset" type="GLint"/>
1804		<param name="width" type="GLsizei"/>
1805		<param name="height" type="GLsizei"/>
1806		<param name="format" type="GLenum"/>
1807		<param name="imageSize" type="GLsizei"/>
1808		<param name="data" type="const GLvoid *"/>
1809	</proto>
1810
1811	<desc name="format">
1812		<value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
1813		<value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
1814	</desc>
1815</template>
1816
1817<template name="BlendFuncSeparate">
1818	<proto>
1819		<return type="void"/>
1820		<param name="srcRGB" type="GLenum"/>
1821		<param name="dstRGB" type="GLenum"/>
1822		<param name="srcAlpha" type="GLenum"/>
1823		<param name="dstAlpha" type="GLenum"/>
1824	</proto>
1825
1826	<desc name="srcRGB">
1827		<value name="GL_ZERO"/>
1828		<value name="GL_ONE"/>
1829		<value name="GL_SRC_COLOR"/>
1830		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1831		<value name="GL_SRC_ALPHA"/>
1832		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1833		<value name="GL_DST_ALPHA"/>
1834		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1835		<value name="GL_DST_COLOR"/>
1836		<value name="GL_ONE_MINUS_DST_COLOR"/>
1837		<value name="GL_SRC_ALPHA_SATURATE"/>
1838
1839		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1840		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1841		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1842		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1843	</desc>
1844
1845	<desc name="dstRGB">
1846		<value name="GL_ZERO"/>
1847		<value name="GL_ONE"/>
1848		<value name="GL_SRC_COLOR"/>
1849		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1850		<value name="GL_SRC_ALPHA"/>
1851		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1852		<value name="GL_DST_ALPHA"/>
1853		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1854		<value name="GL_DST_COLOR"/>
1855		<value name="GL_ONE_MINUS_DST_COLOR"/>
1856
1857		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1858		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1859		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1860		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1861	</desc>
1862
1863	<desc name="srcAlpha">
1864		<value name="GL_ZERO"/>
1865		<value name="GL_ONE"/>
1866		<value name="GL_SRC_COLOR"/>
1867		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1868		<value name="GL_SRC_ALPHA"/>
1869		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1870		<value name="GL_DST_ALPHA"/>
1871		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1872		<value name="GL_DST_COLOR"/>
1873		<value name="GL_ONE_MINUS_DST_COLOR"/>
1874		<value name="GL_SRC_ALPHA_SATURATE"/>
1875
1876		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1877		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1878		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1879		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1880	</desc>
1881
1882	<desc name="dstAlpha">
1883		<value name="GL_ZERO"/>
1884		<value name="GL_ONE"/>
1885		<value name="GL_SRC_COLOR"/>
1886		<value name="GL_ONE_MINUS_SRC_COLOR"/>
1887		<value name="GL_SRC_ALPHA"/>
1888		<value name="GL_ONE_MINUS_SRC_ALPHA"/>
1889		<value name="GL_DST_ALPHA"/>
1890		<value name="GL_ONE_MINUS_DST_ALPHA"/>
1891		<value name="GL_DST_COLOR"/>
1892		<value name="GL_ONE_MINUS_DST_COLOR"/>
1893
1894		<value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
1895		<value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
1896		<value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
1897		<value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
1898	</desc>
1899</template>
1900
1901<template name="PointParameter">
1902	<proto>
1903		<return type="void"/>
1904		<param name="pname" type="GLenum"/>
1905		<vector name="params" type="const GLtype *" size="dynamic">
1906			<param name="param" type="GLtype"/>
1907		</vector>
1908	</proto>
1909
1910	<desc name="pname">
1911		<value name="GL_POINT_SIZE_MIN"/>
1912		<value name="GL_POINT_SIZE_MAX"/>
1913		<value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
1914
1915		<desc name="params" vector_size="1"/>
1916	</desc>
1917
1918	<desc name="pname">
1919		<value name="GL_POINT_DISTANCE_ATTENUATION"/>
1920		<desc name="params" vector_size="3"/>
1921	</desc>
1922</template>
1923
1924<template name="VertexAttrib">
1925	<proto>
1926		<return type="void"/>
1927		<param name="index" type="GLuint"/>
1928		<vector name="v" type="const GLtype *" size="dynamic">
1929			<param name="x" type="GLtype"/>
1930			<param name="y" type="GLtype"/>
1931			<param name="z" type="GLtype"/>
1932			<param name="w" type="GLtype"/>
1933		</vector>
1934	</proto>
1935</template>
1936
1937<template name="VertexAttribPointer">
1938	<proto>
1939		<return type="void"/>
1940		<param name="index" type="GLuint"/>
1941		<param name="size" type="GLint"/>
1942		<param name="type" type="GLenum"/>
1943		<param name="normalized" type="GLboolean"/>
1944		<param name="stride" type="GLsizei"/>
1945		<param name="pointer" type="const GLvoid *"/>
1946	</proto>
1947
1948	<desc name="size" error="GL_INVALID_VALUE">
1949		<value name="1"/>
1950		<value name="2"/>
1951		<value name="3"/>
1952		<value name="4"/>
1953	</desc>
1954
1955	<desc name="type" error="GL_INVALID_VALUE">
1956		<value name="GL_BYTE"/>
1957		<value name="GL_UNSIGNED_BYTE"/>
1958		<value name="GL_SHORT"/>
1959		<value name="GL_UNSIGNED_SHORT"/>
1960		<value name="GL_FLOAT"/>
1961		<value name="GL_FIXED"/>
1962		<value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
1963		<value name="GL_UNSIGNED_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
1964		<value name="GL_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
1965	</desc>
1966
1967	<desc name="type" category="OES_vertex_type_10_10_10_2">
1968		<value name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
1969		<value name="GL_INT_10_10_10_2_OES"/>
1970
1971		<desc name="size">
1972			<value name="3"/>
1973			<value name="4"/>
1974		</desc>
1975	</desc>
1976</template>
1977
1978<template name="EnableVertexAttribArray">
1979	<proto>
1980		<return type="void"/>
1981		<param name="index" type="GLuint"/>
1982	</proto>
1983</template>
1984
1985<template name="DisableVertexAttribArray">
1986	<proto>
1987		<return type="void"/>
1988		<param name="index" type="GLuint"/>
1989	</proto>
1990</template>
1991
1992<template name="IsProgram" direction="get">
1993	<proto>
1994		<return type="GLboolean"/>
1995		<param name="program" type="GLuint"/>
1996	</proto>
1997</template>
1998
1999<template name="GetProgram" direction="get">
2000	<proto>
2001		<return type="void"/>
2002		<param name="program" type="GLuint"/>
2003		<param name="pname" type="GLenum"/>
2004		<vector name="params" type="GLtype *" size="dynamic"/>
2005	</proto>
2006
2007	<desc name="pname">
2008		<value name="GL_DELETE_STATUS"/>
2009		<value name="GL_LINK_STATUS"/>
2010		<value name="GL_VALIDATE_STATUS"/>
2011		<value name="GL_INFO_LOG_LENGTH"/>
2012		<value name="GL_ATTACHED_SHADERS"/>
2013		<value name="GL_ACTIVE_ATTRIBUTES"/>
2014		<value name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
2015		<value name="GL_ACTIVE_UNIFORMS"/>
2016		<value name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
2017		<value name="GL_PROGRAM_BINARY_LENGTH_OES" category="OES_get_program_binary"/>
2018
2019		<desc name="params" convert="false"/>
2020	</desc>
2021</template>
2022
2023<template name="GetVertexAttrib" direction="get">
2024	<proto>
2025		<return type="void"/>
2026		<param name="index" type="GLuint"/>
2027		<param name="pname" type="GLenum"/>
2028		<vector name="params" type="GLtype *" size="dynamic"/>
2029	</proto>
2030
2031	<desc name="pname">
2032		<value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
2033		<value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
2034		<value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
2035		<value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
2036		<value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
2037		<value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
2038
2039		<desc name="params" vector_size="1" convert="false"/>
2040	</desc>
2041
2042	<desc name="pname">
2043		<value name="GL_CURRENT_VERTEX_ATTRIB"/>
2044		<desc name="params" vector_size="16?" convert="false"/>
2045	</desc>
2046</template>
2047
2048<template name="GetVertexAttribPointer" direction="get">
2049	<proto>
2050		<return type="void"/>
2051		<param name="index" type="GLuint"/>
2052		<param name="pname" type="GLenum"/>
2053		<vector name="pointer" type="GLvoid **" size="dynamic"/>
2054	</proto>
2055</template>
2056
2057<template name="GetBufferPointer" direction="get">
2058	<proto>
2059		<return type="void"/>
2060		<param name="target" type="GLenum"/>
2061		<param name="pname" type="GLenum"/>
2062		<vector name="params" type="GLvoid **" size="dynamic"/>
2063	</proto>
2064
2065	<desc name="target">
2066		<value name="GL_ARRAY_BUFFER"/>
2067		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2068	</desc>
2069</template>
2070
2071<template name="MapBuffer" direction="get">
2072	<proto>
2073		<return type="void *"/>
2074		<param name="target" type="GLenum"/>
2075		<param name="access" type="GLenum"/>
2076	</proto>
2077
2078	<desc name="target">
2079		<value name="GL_ARRAY_BUFFER"/>
2080		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2081	</desc>
2082
2083	<desc name="access">
2084		<value name="GL_WRITE_ONLY_OES"/>
2085	</desc>
2086</template>
2087
2088<template name="UnmapBuffer" direction="get">
2089	<proto>
2090		<return type="GLboolean"/>
2091		<param name="target" type="GLenum"/>
2092	</proto>
2093
2094	<desc name="target">
2095		<value name="GL_ARRAY_BUFFER"/>
2096		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2097	</desc>
2098</template>
2099
2100<template name="BindBuffer">
2101	<proto>
2102		<return type="void"/>
2103		<param name="target" type="GLenum"/>
2104		<param name="buffer" type="GLuint"/>
2105	</proto>
2106
2107	<desc name="target">
2108		<value name="GL_ARRAY_BUFFER"/>
2109		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2110	</desc>
2111</template>
2112
2113<template name="BufferData">
2114	<proto>
2115		<return type="void"/>
2116		<param name="target" type="GLenum"/>
2117		<param name="size" type="GLsizeiptr"/>
2118		<param name="data" type="const GLvoid *"/>
2119		<param name="usage" type="GLenum"/>
2120	</proto>
2121
2122	<desc name="target">
2123		<value name="GL_ARRAY_BUFFER"/>
2124		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2125	</desc>
2126
2127	<desc name="usage">
2128		<value name="GL_STATIC_DRAW"/>
2129		<value name="GL_DYNAMIC_DRAW"/>
2130		<value name="GL_STREAM_DRAW" category="GLES2.0"/>
2131	</desc>
2132</template>
2133
2134<template name="BufferSubData">
2135	<proto>
2136		<return type="void"/>
2137		<param name="target" type="GLenum"/>
2138		<param name="offset" type="GLintptr"/>
2139		<param name="size" type="GLsizeiptr"/>
2140		<param name="data" type="const GLvoid *"/>
2141	</proto>
2142
2143	<desc name="target">
2144		<value name="GL_ARRAY_BUFFER"/>
2145		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2146	</desc>
2147</template>
2148
2149<template name="DeleteBuffers">
2150	<proto>
2151		<return type="void"/>
2152		<param name="n" type="GLsizei"/>
2153		<param name="buffer" type="const GLuint *"/>
2154	</proto>
2155</template>
2156
2157<template name="GenBuffers" direction="get">
2158	<proto>
2159		<return type="void"/>
2160		<param name="n" type="GLsizei"/>
2161		<param name="buffer" type="GLuint *"/>
2162	</proto>
2163</template>
2164
2165<template name="GetBufferParameter" direction="get">
2166	<proto>
2167		<return type="void"/>
2168		<param name="target" type="GLenum"/>
2169		<param name="pname" type="GLenum"/>
2170		<vector name="params" type="GLtype *" size="dynamic"/>
2171	</proto>
2172
2173	<desc name="target">
2174		<value name="GL_ARRAY_BUFFER"/>
2175		<value name="GL_ELEMENT_ARRAY_BUFFER"/>
2176	</desc>
2177
2178	<desc name="pname">
2179		<value name="GL_BUFFER_SIZE"/>
2180		<value name="GL_BUFFER_USAGE"/>
2181		<value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
2182		<value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
2183	</desc>
2184</template>
2185
2186<template name="IsBuffer" direction="get">
2187	<proto>
2188		<return type="GLboolean"/>
2189		<param name="buffer" type="GLuint"/>
2190	</proto>
2191</template>
2192
2193<template name="CreateShader">
2194	<proto>
2195		<return type="GLuint"/>
2196		<param name="type" type="GLenum"/>
2197	</proto>
2198
2199	<desc name="type">
2200		<value name="GL_VERTEX_SHADER"/>
2201		<value name="GL_FRAGMENT_SHADER"/>
2202	</desc>
2203</template>
2204
2205<template name="ShaderSource">
2206	<proto>
2207		<return type="void"/>
2208		<param name="shader" type="GLuint"/>
2209		<param name="count" type="GLsizei"/>
2210		<param name="string" type="const GLchar * const *"/>
2211		<param name="length" type="const int *"/>
2212	</proto>
2213</template>
2214
2215<template name="CompileShader">
2216	<proto>
2217		<return type="void"/>
2218		<param name="shader" type="GLuint"/>
2219	</proto>
2220</template>
2221
2222<template name="ReleaseShaderCompiler">
2223	<proto>
2224		<return type="void"/>
2225	</proto>
2226</template>
2227
2228<template name="DeleteShader">
2229	<proto>
2230		<return type="void"/>
2231		<param name="shader" type="GLuint"/>
2232	</proto>
2233</template>
2234
2235<template name="ShaderBinary">
2236	<proto>
2237		<return type="void"/>
2238		<param name="n" type="GLsizei"/>
2239		<param name="shaders" type="const GLuint *"/>
2240		<param name="binaryformat" type="GLenum"/>
2241		<param name="binary" type="const GLvoid *"/>
2242		<param name="length" type="GLsizei"/>
2243	</proto>
2244</template>
2245
2246<template name="CreateProgram">
2247	<proto>
2248		<return type="GLuint"/>
2249	</proto>
2250</template>
2251
2252<template name="AttachShader">
2253	<proto>
2254		<return type="void"/>
2255		<param name="program" type="GLuint"/>
2256		<param name="shader" type="GLuint"/>
2257	</proto>
2258</template>
2259
2260<template name="DetachShader">
2261	<proto>
2262		<return type="void"/>
2263		<param name="program" type="GLuint"/>
2264		<param name="shader" type="GLuint"/>
2265	</proto>
2266</template>
2267
2268<template name="LinkProgram">
2269	<proto>
2270		<return type="void"/>
2271		<param name="program" type="GLuint"/>
2272	</proto>
2273</template>
2274
2275<template name="UseProgram">
2276	<proto>
2277		<return type="void"/>
2278		<param name="program" type="GLuint"/>
2279	</proto>
2280</template>
2281
2282<template name="DeleteProgram">
2283	<proto>
2284		<return type="void"/>
2285		<param name="program" type="GLuint"/>
2286	</proto>
2287</template>
2288
2289<template name="GetActiveAttrib" direction="get">
2290	<proto>
2291		<return type="void"/>
2292		<param name="program" type="GLuint"/>
2293		<param name="index" type="GLuint"/>
2294		<param name="bufSize" type="GLsizei"/>
2295		<param name="length" type="GLsizei *"/>
2296		<param name="size" type="GLint *"/>
2297		<param name="type" type="GLenum *"/>
2298		<param name="name" type="GLchar *"/>
2299	</proto>
2300</template>
2301
2302<template name="GetAttribLocation" direction="get">
2303	<proto>
2304		<return type="GLint"/>
2305		<param name="program" type="GLuint"/>
2306		<param name="name" type="const char *"/>
2307	</proto>
2308</template>
2309
2310<template name="BindAttribLocation">
2311	<proto>
2312		<return type="void"/>
2313		<param name="program" type="GLuint"/>
2314		<param name="index" type="GLuint"/>
2315		<param name="name" type="const char *"/>
2316	</proto>
2317</template>
2318
2319<template name="GetUniformLocation" direction="get">
2320	<proto>
2321		<return type="GLint"/>
2322		<param name="program" type="GLuint"/>
2323		<param name="name" type="const char *"/>
2324	</proto>
2325</template>
2326
2327<template name="GetActiveUniform" direction="get">
2328	<proto>
2329		<return type="void"/>
2330		<param name="program" type="GLuint"/>
2331		<param name="index" type="GLuint"/>
2332		<param name="bufSize" type="GLsizei"/>
2333		<param name="length" type="GLsizei *"/>
2334		<param name="size" type="GLint *"/>
2335		<param name="type" type="GLenum *"/>
2336		<param name="name" type="GLchar *"/>
2337	</proto>
2338</template>
2339
2340<template name="Uniform">
2341	<proto>
2342		<return type="void"/>
2343		<param name="location" type="GLint"/>
2344		<param name="count" type="GLsizei" hide_if_expanded="true"/>
2345		<vector name="values" type="const GLtype *" size="dynamic">
2346			<param name="v0" type="GLtype"/>
2347			<param name="v1" type="GLtype"/>
2348			<param name="v2" type="GLtype"/>
2349			<param name="v3" type="GLtype"/>
2350		</vector>
2351	</proto>
2352</template>
2353
2354<template name="UniformMatrix">
2355	<proto>
2356		<return type="void"/>
2357		<param name="location" type="GLint"/>
2358		<param name="count" type="GLsizei"/>
2359		<param name="transpose" type="GLboolean"/>
2360		<vector name="value" type="const GLtype *" size="dynamic"/>
2361	</proto>
2362</template>
2363
2364<template name="ValidateProgram">
2365	<proto>
2366		<return type="void"/>
2367		<param name="program" type="GLuint"/>
2368	</proto>
2369</template>
2370
2371<template name="GenerateMipmap">
2372	<proto>
2373		<return type="void"/>
2374		<param name="target" type="GLenum"/>
2375	</proto>
2376
2377	<desc name="target">
2378		<value name="GL_TEXTURE_2D"/>
2379		<value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
2380		<value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
2381		<value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
2382	</desc>
2383</template>
2384
2385<template name="BindFramebuffer">
2386	<proto>
2387		<return type="void"/>
2388		<param name="target" type="GLenum"/>
2389		<param name="framebuffer" type="GLuint"/>
2390	</proto>
2391</template>
2392
2393<template name="DeleteFramebuffers">
2394	<proto>
2395		<return type="void"/>
2396		<param name="n" type="GLsizei"/>
2397		<param name="framebuffers" type="const GLuint *"/>
2398	</proto>
2399</template>
2400
2401<template name="GenFramebuffers">
2402	<proto>
2403		<return type="void"/>
2404		<param name="n" type="GLsizei"/>
2405		<param name="ids" type="GLuint *"/>
2406	</proto>
2407</template>
2408
2409<template name="BindRenderbuffer">
2410	<proto>
2411		<return type="void"/>
2412		<param name="target" type="GLenum"/>
2413		<param name="renderbuffer" type="GLuint"/>
2414	</proto>
2415</template>
2416
2417<template name="DeleteRenderbuffers">
2418	<proto>
2419		<return type="void"/>
2420		<param name="n" type="GLsizei"/>
2421		<param name="renderbuffers" type="const GLuint *"/>
2422	</proto>
2423</template>
2424
2425<template name="GenRenderbuffers">
2426	<proto>
2427		<return type="void"/>
2428		<param name="n" type="GLsizei"/>
2429		<param name="renderbuffers" type="GLuint *"/>
2430	</proto>
2431</template>
2432
2433<template name="RenderbufferStorage">
2434	<proto>
2435		<return type="void"/>
2436		<param name="target" type="GLenum"/>
2437		<param name="internalFormat" type="GLenum"/>
2438		<param name="width" type="GLsizei"/>
2439		<param name="height" type="GLsizei"/>
2440	</proto>
2441
2442	<desc name="internalFormat">
2443		<value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
2444		<value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
2445		<value name="GL_RGB5_A1_OES" category="OES_framebuffer_object"/>
2446		<value name="GL_RGB565_OES" category="OES_framebuffer_object"/>
2447		<value name="GL_STENCIL_INDEX8_OES" category="OES_stencil8"/>
2448
2449		<value name="GL_DEPTH_COMPONENT16" category="GLES2.0"/>
2450		<value name="GL_RGBA4" category="GLES2.0"/>
2451		<value name="GL_RGB5_A1" category="GLES2.0"/>
2452		<value name="GL_RGB565" category="GLES2.0"/>
2453		<value name="GL_STENCIL_INDEX8" category="GLES2.0"/>
2454
2455		<value name="GL_DEPTH_COMPONENT24_OES" category="OES_depth24"/>
2456		<value name="GL_DEPTH_COMPONENT32_OES" category="OES_depth32"/>
2457		<value name="GL_RGB8_OES" category="OES_rgb8_rgba8"/>
2458		<value name="GL_RGBA8_OES" category="OES_rgb8_rgba8"/>
2459		<value name="GL_STENCIL_INDEX1_OES" category="OES_stencil1"/>
2460		<value name="GL_STENCIL_INDEX4_OES" category="OES_stencil4"/>
2461		<value name="GL_DEPTH24_STENCIL8_OES" category="OES_packed_depth_stencil"/>
2462	</desc>
2463</template>
2464
2465<template name="FramebufferRenderbuffer">
2466	<proto>
2467		<return type="void"/>
2468		<param name="target" type="GLenum"/>
2469		<param name="attachment" type="GLenum"/>
2470		<param name="renderbuffertarget" type="GLenum"/>
2471		<param name="renderbuffer" type="GLuint"/>
2472	</proto>
2473</template>
2474
2475<template name="FramebufferTexture2D">
2476	<proto>
2477		<return type="void"/>
2478		<param name="target" type="GLenum"/>
2479		<param name="attachment" type="GLenum"/>
2480		<param name="textarget" type="GLenum"/>
2481		<param name="texture" type="GLuint"/>
2482		<param name="level" type="GLint"/>
2483	</proto>
2484
2485	<desc name="textarget" error="GL_INVALID_OPERATION">
2486		<value name="GL_TEXTURE_2D"/>
2487		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
2488		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
2489		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
2490		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
2491		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
2492		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
2493		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
2494		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
2495		<value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
2496		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
2497		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
2498		<value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
2499	</desc>
2500	<!-- According to the base specification, "level" must be 0.  But
2501	     extension GL_OES_fbo_render_mipmap lifts that restriction,
2502	     so no restriction is placed here. -->
2503</template>
2504
2505<template name="FramebufferTexture3D">
2506	<proto>
2507		<return type="void"/>
2508		<param name="target" type="GLenum"/>
2509		<param name="attachment" type="GLenum"/>
2510		<param name="textarget" type="GLenum"/>
2511		<param name="texture" type="GLuint"/>
2512		<param name="level" type="GLint"/>
2513		<param name="zoffset" type="GLint"/>
2514	</proto>
2515</template>
2516
2517<template name="CheckFramebufferStatus" direction="get">
2518	<proto>
2519		<return type="GLenum"/>
2520		<param name="target" type="GLenum"/>
2521	</proto>
2522</template>
2523
2524<template name="GetFramebufferAttachmentParameter" direction="get">
2525	<proto>
2526		<return type="void"/>
2527		<param name="target" type="GLenum"/>
2528		<param name="attachment" type="GLenum"/>
2529		<param name="pname" type="GLenum"/>
2530		<vector name="params" type="GLtype *" size="dynamic"/>
2531	</proto>
2532
2533	<desc name="pname">
2534		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
2535		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
2536		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" category="OES_framebuffer_object"/>
2537		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" category="OES_framebuffer_object"/>
2538
2539		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" category="GLES2.0"/>
2540		<value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" category="GLES2.0"/>
2541		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" category="GLES2.0"/>
2542		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" category="GLES2.0"/>
2543		<value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" category="OES_texture_3D"/>
2544
2545		<desc name="params" vector_size="1" convert="false"/>
2546	</desc>
2547</template>
2548
2549<template name="GetRenderbufferParameter" direction="get">
2550	<proto>
2551		<return type="void"/>
2552		<param name="target" type="GLenum"/>
2553		<param name="pname" type="GLenum"/>
2554		<vector name="params" type="GLtype *" size="dynamic"/>
2555	</proto>
2556
2557	<desc name="pname" category="OES_framebuffer_object">
2558		<value name="GL_RENDERBUFFER_WIDTH_OES"/>
2559		<value name="GL_RENDERBUFFER_HEIGHT_OES"/>
2560		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
2561		<value name="GL_RENDERBUFFER_RED_SIZE_OES"/>
2562		<value name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
2563		<value name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
2564		<value name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
2565		<value name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
2566		<value name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
2567
2568		<desc name="params" vector_size="1" convert="false"/>
2569	</desc>
2570
2571	<desc name="pname" category="GLES2.0">
2572		<value name="GL_RENDERBUFFER_WIDTH"/>
2573		<value name="GL_RENDERBUFFER_HEIGHT"/>
2574		<value name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
2575		<value name="GL_RENDERBUFFER_RED_SIZE"/>
2576		<value name="GL_RENDERBUFFER_GREEN_SIZE"/>
2577		<value name="GL_RENDERBUFFER_BLUE_SIZE"/>
2578		<value name="GL_RENDERBUFFER_ALPHA_SIZE"/>
2579		<value name="GL_RENDERBUFFER_DEPTH_SIZE"/>
2580		<value name="GL_RENDERBUFFER_STENCIL_SIZE"/>
2581
2582		<desc name="params" vector_size="1" convert="false"/>
2583	</desc>
2584</template>
2585
2586<template name="IsRenderbuffer" direction="get">
2587	<proto>
2588		<return type="GLboolean"/>
2589		<param name="renderbuffer" type="GLuint"/>
2590	</proto>
2591</template>
2592
2593<template name="IsFramebuffer" direction="get">
2594	<proto>
2595		<return type="GLboolean"/>
2596		<param name="framebuffer" type="GLuint"/>
2597	</proto>
2598</template>
2599
2600<template name="IsShader" direction="get">
2601	<proto>
2602		<return type="GLboolean"/>
2603		<param name="shader" type="GLuint"/>
2604	</proto>
2605</template>
2606
2607<template name="GetShader" direction="get">
2608	<proto>
2609		<return type="void"/>
2610		<param name="shader" type="GLuint"/>
2611		<param name="pname" type="GLenum"/>
2612		<vector name="params" type="GLtype *" size="dynamic"/>
2613	</proto>
2614</template>
2615
2616<template name="GetAttachedShaders" direction="get">
2617	<proto>
2618		<return type="void"/>
2619		<param name="program" type="GLuint"/>
2620		<param name="maxCount" type="GLsizei"/>
2621		<param name="count" type="GLsizei *"/>
2622		<param name="shaders" type="GLuint *"/>
2623	</proto>
2624</template>
2625
2626<template name="GetShaderInfoLog" direction="get">
2627	<proto>
2628		<return type="void"/>
2629		<param name="shader" type="GLuint"/>
2630		<param name="bufSize" type="GLsizei"/>
2631		<param name="length" type="GLsizei *"/>
2632		<param name="infoLog" type="GLchar *"/>
2633	</proto>
2634</template>
2635
2636<template name="GetProgramInfoLog" direction="get">
2637	<proto>
2638		<return type="void"/>
2639		<param name="program" type="GLuint"/>
2640		<param name="bufSize" type="GLsizei"/>
2641		<param name="length" type="GLsizei *"/>
2642		<param name="infoLog" type="GLchar *"/>
2643	</proto>
2644</template>
2645
2646<template name="GetShaderSource" direction="get">
2647	<proto>
2648		<return type="void"/>
2649		<param name="shader" type="GLuint"/>
2650		<param name="bufSize" type="GLsizei"/>
2651		<param name="length" type="GLsizei *"/>
2652		<param name="source" type="GLchar *"/>
2653	</proto>
2654</template>
2655
2656<template name="GetShaderPrecisionFormat" direction="get">
2657	<proto>
2658		<return type="void"/>
2659		<param name="shadertype" type="GLenum"/>
2660		<param name="precisiontype" type="GLenum"/>
2661		<param name="range" type="GLint *"/>
2662		<param name="precision" type="GLint *"/>
2663	</proto>
2664</template>
2665
2666<template name="GetUniform" direction="get">
2667	<proto>
2668		<return type="void"/>
2669		<param name="program" type="GLuint"/>
2670		<param name="location" type="GLint"/>
2671		<vector name="params" type="GLtype *" size="dynamic"/>
2672	</proto>
2673</template>
2674
2675<template name="QueryMatrix" direction="get">
2676	<proto>
2677		<return type="GLbitfield"/>
2678		<vector name="mantissa" type="GLtype *" size="16"/>
2679		<vector name="exponent" type="GLint *" size="16"/>
2680	</proto>
2681</template>
2682
2683<template name="DrawTex">
2684	<proto>
2685		<return type="void"/>
2686		<vector name="coords" type="const GLtype *" size="5">
2687			<param name="x" type="GLtype"/>
2688			<param name="y" type="GLtype"/>
2689			<param name="z" type="GLtype"/>
2690			<param name="w" type="GLtype"/>
2691			<param name="h" type="GLtype"/>
2692		</vector>
2693	</proto>
2694</template>
2695
2696<template name="MultiDrawArrays">
2697	<proto>
2698		<return type="void"/>
2699		<param name="mode" type="GLenum"/>
2700		<param name="first" type="const GLint *"/>
2701		<param name="count" type="const GLsizei *"/>
2702		<param name="primcount" type="GLsizei"/>
2703	</proto>
2704
2705	<desc name="mode">
2706		<value name="GL_POINTS"/>
2707		<value name="GL_LINES"/>
2708		<value name="GL_LINE_LOOP"/>
2709		<value name="GL_LINE_STRIP"/>
2710		<value name="GL_TRIANGLES"/>
2711		<value name="GL_TRIANGLE_STRIP"/>
2712		<value name="GL_TRIANGLE_FAN"/>
2713	</desc>
2714</template>
2715
2716<template name="MultiDrawElements">
2717	<proto>
2718		<return type="void"/>
2719		<param name="mode" type="GLenum"/>
2720		<param name="count" type="const GLsizei *"/>
2721		<param name="type" type="GLenum"/>
2722		<param name="indices" type="const GLvoid **"/>
2723		<param name="primcount" type="GLsizei"/>
2724	</proto>
2725
2726	<desc name="mode">
2727		<value name="GL_POINTS"/>
2728		<value name="GL_LINES"/>
2729		<value name="GL_LINE_LOOP"/>
2730		<value name="GL_LINE_STRIP"/>
2731		<value name="GL_TRIANGLES"/>
2732		<value name="GL_TRIANGLE_STRIP"/>
2733		<value name="GL_TRIANGLE_FAN"/>
2734	</desc>
2735</template>
2736
2737<template name="EGLImageTargetTexture2D">
2738	<proto>
2739		<return type="void"/>
2740		<param name="target" type="GLenum"/>
2741		<param name="image" type="GLeglImageOES"/>
2742	</proto>
2743</template>
2744
2745<template name="EGLImageTargetRenderbufferStorage">
2746	<proto>
2747		<return type="void"/>
2748		<param name="target" type="GLenum"/>
2749		<param name="image" type="GLeglImageOES"/>
2750	</proto>
2751</template>
2752
2753<template name="DrawBuffers">
2754	<proto>
2755		<return type="void"/>
2756		<param name="n" type="GLsizei"/>
2757		<param name="bufs" type="const GLenum *"/>
2758	</proto>
2759</template>
2760
2761<template name="ReadBuffer">
2762	<proto>
2763		<return type="void"/>
2764		<param name="mode" type="GLenum"/>
2765	</proto>
2766</template>
2767
2768<api name="mesa" implementation="true">
2769	<category name="MESA"/>
2770
2771	<function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2772	<function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
2773	<function name="CullFace" template="CullFace"/>
2774
2775	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
2776	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
2777
2778	<function name="FrontFace" template="FrontFace"/>
2779	<function name="Hint" template="Hint"/>
2780
2781	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
2782	<function name="Lightfv" template="Light" gltype="GLfloat"/>
2783
2784	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
2785	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
2786
2787	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
2788
2789	<function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
2790	<function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
2791
2792	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
2793	<function name="PointSizePointer" template="PointSizePointer"/>
2794
2795	<function name="Scissor" template="Scissor"/>
2796	<function name="ShadeModel" template="ShadeModel"/>
2797
2798	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
2799	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
2800	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
2801	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
2802
2803	<function name="TexImage2D" template="TexImage2D"/>
2804
2805	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
2806	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
2807	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
2808	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
2809
2810	<function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
2811	<function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
2812
2813	<function name="Clear" template="Clear"/>
2814	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
2815	<function name="ClearStencil" template="ClearStencil"/>
2816	<function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
2817	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
2818
2819	<function name="StencilMask" template="StencilMask"/>
2820	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
2821	<function name="ColorMask" template="ColorMask"/>
2822	<function name="DepthMask" template="DepthMask"/>
2823	<function name="Disable" template="Disable"/>
2824	<function name="Enable" template="Enable"/>
2825	<function name="Finish" template="Finish"/>
2826	<function name="Flush" template="Flush"/>
2827
2828	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
2829
2830	<function name="BlendFunc" template="BlendFunc"/>
2831	<function name="LogicOp" template="LogicOp"/>
2832	<function name="StencilFunc" template="StencilFunc"/>
2833	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
2834	<function name="StencilOp" template="StencilOp"/>
2835	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
2836	<function name="DepthFunc" template="DepthFunc"/>
2837	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
2838
2839	<function name="ReadPixels" template="ReadPixels"/>
2840	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
2841	<function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
2842	<function name="GetError" template="GetError"/>
2843	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
2844	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
2845	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
2846
2847	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
2848	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
2849	<function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
2850
2851	<function name="GetString" template="GetString"/>
2852
2853	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
2854	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
2855	<function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
2856	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
2857	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
2858
2859	<function name="IsEnabled" template="IsEnabled"/>
2860
2861	<function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
2862	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
2863	<function name="Frustum" template="Frustum" gltype="GLdouble"/>
2864
2865	<function name="LoadIdentity" template="LoadIdentity"/>
2866	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
2867	<function name="MatrixMode" template="MatrixMode"/>
2868
2869	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
2870	<function name="Ortho" template="Ortho" gltype="GLdouble"/>
2871	<function name="PopMatrix" template="PopMatrix"/>
2872	<function name="PushMatrix" template="PushMatrix"/>
2873
2874	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
2875	<function name="Scalef" template="Scale" gltype="GLfloat"/>
2876	<function name="Translatef" template="Translate" gltype="GLfloat"/>
2877
2878	<function name="Viewport" template="Viewport"/>
2879
2880	<function name="ColorPointer" template="ColorPointer"/>
2881	<function name="DisableClientState" template="DisableClientState"/>
2882	<function name="DrawArrays" template="DrawArrays"/>
2883	<function name="DrawElements" template="DrawElements"/>
2884	<function name="EnableClientState" template="EnableClientState"/>
2885
2886	<function name="GetPointerv" template="GetPointer"/>
2887	<function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
2888	<function name="NormalPointer" template="NormalPointer"/>
2889	<function name="TexCoordPointer" template="TexCoordPointer"/>
2890	<function name="VertexPointer" template="VertexPointer"/>
2891
2892	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
2893	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
2894	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
2895	<function name="TexSubImage2D" template="TexSubImage2D"/>
2896
2897	<function name="BindTexture" template="BindTexture"/>
2898	<function name="DeleteTextures" template="DeleteTextures"/>
2899	<function name="GenTextures" template="GenTextures"/>
2900	<function name="IsTexture" template="IsTexture"/>
2901
2902	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
2903	<function name="BlendEquation" template="BlendEquation"/>
2904	<function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
2905
2906	<function name="TexImage3D" template="TexImage3D"/>
2907	<function name="TexSubImage3D" template="TexSubImage3D"/>
2908	<function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
2909
2910	<function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
2911	<function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
2912
2913	<function name="ActiveTextureARB" template="ActiveTexture"/>
2914	<function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
2915
2916	<function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2917
2918	<function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
2919
2920	<function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
2921	<function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
2922
2923	<function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
2924
2925	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
2926	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
2927
2928	<function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2929	<function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2930	<function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2931	<function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2932	<function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
2933	<function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
2934	<function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
2935	<function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
2936
2937	<function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
2938	<function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
2939	<function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
2940
2941	<function name="IsProgram" template="IsProgram"/>
2942	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
2943
2944	<function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
2945	<function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
2946	<function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
2947
2948	<function name="GetBufferPointervARB" template="GetBufferPointer"/>
2949	<function name="MapBufferARB" template="MapBuffer"/>
2950	<function name="UnmapBufferARB" template="UnmapBuffer"/>
2951	<function name="BindBufferARB" template="BindBuffer"/>
2952	<function name="BufferDataARB" template="BufferData"/>
2953	<function name="BufferSubDataARB" template="BufferSubData"/>
2954	<function name="DeleteBuffersARB" template="DeleteBuffers"/>
2955	<function name="GenBuffersARB" template="GenBuffers"/>
2956	<function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
2957	<function name="IsBufferARB" template="IsBuffer"/>
2958
2959	<function name="CreateShader" template="CreateShader"/>
2960	<function name="ShaderSourceARB" template="ShaderSource"/>
2961	<function name="CompileShaderARB" template="CompileShader"/>
2962	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
2963	<function name="DeleteShader" template="DeleteShader"/>
2964	<function name="ShaderBinary" template="ShaderBinary"/>
2965	<function name="CreateProgram" template="CreateProgram"/>
2966	<function name="AttachShader" template="AttachShader"/>
2967	<function name="DetachShader" template="DetachShader"/>
2968	<function name="LinkProgramARB" template="LinkProgram"/>
2969	<function name="UseProgramObjectARB" template="UseProgram"/>
2970	<function name="DeleteProgram" template="DeleteProgram"/>
2971
2972	<function name="GetActiveAttribARB" template="GetActiveAttrib"/>
2973	<function name="GetAttribLocationARB" template="GetAttribLocation"/>
2974	<function name="BindAttribLocationARB" template="BindAttribLocation"/>
2975	<function name="GetUniformLocationARB" template="GetUniformLocation"/>
2976	<function name="GetActiveUniformARB" template="GetActiveUniform"/>
2977
2978	<function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
2979	<function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
2980	<function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
2981	<function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
2982	<function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
2983	<function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
2984	<function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
2985	<function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
2986	<function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
2987	<function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
2988	<function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
2989	<function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
2990	<function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
2991	<function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
2992	<function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
2993	<function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
2994
2995	<function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
2996	<function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
2997	<function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
2998
2999	<function name="ValidateProgramARB" template="ValidateProgram"/>
3000
3001	<function name="GenerateMipmapEXT" template="GenerateMipmap"/>
3002	<function name="BindFramebufferEXT" template="BindFramebuffer"/>
3003	<function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
3004	<function name="GenFramebuffersEXT" template="GenFramebuffers"/>
3005	<function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
3006	<function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
3007	<function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
3008	<function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
3009	<function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
3010	<function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
3011	<function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
3012	<function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
3013	<function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3014	<function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
3015	<function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
3016	<function name="IsFramebufferEXT" template="IsFramebuffer"/>
3017
3018	<function name="IsShader" template="IsShader"/>
3019	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3020	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3021	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3022	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3023	<function name="GetShaderSourceARB" template="GetShaderSource"/>
3024	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3025	<function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
3026	<function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
3027
3028	<function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3029	<function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
3030	<function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
3031	<function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
3032	<function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3033	<function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
3034
3035        <!-- EXT_multi_draw_arrays -->
3036        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3037        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3038
3039        <!-- OES_EGL_image -->
3040        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3041        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3042
3043	<function name="DrawBuffersARB" template="DrawBuffers"/>
3044
3045	<function name="ReadBuffer" template="ReadBuffer"/>
3046
3047</api>
3048
3049<api name="GLES1.1">
3050	<category name="GLES1.1"/>
3051
3052	<category name="OES_byte_coordinates"/>
3053	<category name="OES_fixed_point"/>
3054	<category name="OES_single_precision"/>
3055	<category name="OES_matrix_get"/>
3056	<category name="OES_read_format"/>
3057	<category name="OES_compressed_paletted_texture"/>
3058	<category name="OES_compressed_ETC1_RGB8_texture"/>
3059	<category name="OES_point_size_array"/>
3060	<category name="OES_point_sprite"/>
3061	<category name="OES_query_matrix"/>
3062	<category name="OES_draw_texture"/>
3063	<category name="OES_blend_equation_separate"/>
3064	<category name="OES_blend_func_separate"/>
3065	<category name="OES_blend_subtract"/>
3066	<category name="OES_stencil_wrap"/>
3067	<category name="OES_texture_cube_map"/>
3068	<category name="OES_texture_env_crossbar"/>
3069	<category name="OES_texture_mirrored_repeat"/>
3070	<category name="OES_framebuffer_object"/>
3071	<category name="OES_depth24"/>
3072	<category name="OES_depth32"/>
3073	<category name="OES_fbo_render_mipmap"/>
3074	<category name="OES_rgb8_rgba8"/>
3075	<category name="OES_stencil1"/>
3076	<category name="OES_stencil4"/>
3077	<category name="OES_stencil8"/>
3078	<category name="OES_element_index_uint"/>
3079	<category name="OES_mapbuffer"/>
3080	<category name="EXT_texture_filter_anisotropic"/>
3081	<category name="EXT_texture_format_BGRA8888"/>
3082	<category name="EXT_read_format_bgra"/>
3083
3084	<category name="ARB_texture_non_power_of_two"/>
3085	<!-- disabled due to missing enums
3086	<category name="EXT_texture_compression_dxt1"/>
3087	-->
3088	<category name="EXT_texture_lod_bias"/>
3089	<category name="EXT_blend_minmax"/>
3090	<category name="EXT_multi_draw_arrays"/>
3091	<category name="OES_EGL_image"/>
3092	<category name="OES_EGL_image_external"/>
3093
3094	<category name="OES_matrix_palette"/>
3095
3096	<function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3097	<function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
3098	<function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3099
3100	<function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
3101	<function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
3102
3103	<function name="CullFace" template="CullFace"/>
3104
3105	<function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
3106	<function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
3107	<function name="Fogfv" template="Fog" gltype="GLfloat"/>
3108	<function name="Fogxv" template="Fog" gltype="GLfixed"/>
3109
3110	<function name="FrontFace" template="FrontFace"/>
3111	<function name="Hint" template="Hint"/>
3112
3113	<function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
3114	<function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
3115	<function name="Lightfv" template="Light" gltype="GLfloat"/>
3116	<function name="Lightxv" template="Light" gltype="GLfixed"/>
3117
3118	<function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
3119	<function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
3120	<function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
3121	<function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
3122
3123	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3124	<function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
3125
3126	<function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
3127	<function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
3128	<function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
3129	<function name="Materialxv" template="Material" gltype="GLfixed"/>
3130
3131	<function name="PointSize" template="PointSize" gltype="GLfloat"/>
3132	<function name="PointSizex" template="PointSize" gltype="GLfixed"/>
3133	<function name="PointSizePointerOES" template="PointSizePointer"/>
3134
3135	<function name="Scissor" template="Scissor"/>
3136	<function name="ShadeModel" template="ShadeModel"/>
3137
3138	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3139	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3140	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3141	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3142	<function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
3143	<function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
3144
3145	<function name="TexImage2D" template="TexImage2D"/>
3146
3147	<function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
3148	<function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
3149	<function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
3150	<function name="TexEnviv" template="TexEnv" gltype="GLint"/>
3151	<function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
3152	<function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
3153
3154	<function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
3155	<function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
3156	<function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
3157	<function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
3158	<function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
3159	<function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
3160
3161	<function name="Clear" template="Clear"/>
3162	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3163	<function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
3164
3165	<function name="ClearStencil" template="ClearStencil"/>
3166	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3167	<function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
3168
3169	<function name="StencilMask" template="StencilMask"/>
3170	<function name="ColorMask" template="ColorMask"/>
3171	<function name="DepthMask" template="DepthMask"/>
3172
3173	<function name="Disable" template="Disable"/>
3174	<function name="Enable" template="Enable"/>
3175	<function name="Finish" template="Finish"/>
3176	<function name="Flush" template="Flush"/>
3177
3178	<function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
3179	<function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
3180
3181	<function name="BlendFunc" template="BlendFunc"/>
3182	<function name="LogicOp" template="LogicOp"/>
3183	<function name="StencilFunc" template="StencilFunc"/>
3184
3185	<function name="StencilOp" template="StencilOp"/>
3186	<function name="DepthFunc" template="DepthFunc"/>
3187
3188	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3189	<function name="ReadPixels" template="ReadPixels"/>
3190
3191	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3192
3193	<function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
3194	<function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
3195
3196	<function name="GetError" template="GetError"/>
3197	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3198	<function name="GetFixedv" template="GetState" gltype="GLfixed"/>
3199	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3200
3201	<function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
3202	<function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
3203
3204	<function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
3205	<function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
3206
3207	<function name="GetString" template="GetString"/>
3208
3209	<function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
3210	<function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
3211	<function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
3212
3213	<function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
3214	<function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
3215	<function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
3216
3217	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3218	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3219	<function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
3220
3221	<function name="IsEnabled" template="IsEnabled"/>
3222
3223	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3224	<function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
3225
3226	<function name="Frustumf" template="Frustum" gltype="GLfloat"/>
3227	<function name="Frustumx" template="Frustum" gltype="GLfixed"/>
3228
3229	<function name="LoadIdentity" template="LoadIdentity"/>
3230	<function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
3231	<function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
3232	<function name="MatrixMode" template="MatrixMode"/>
3233
3234	<function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
3235	<function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
3236	<function name="Orthof" template="Ortho" gltype="GLfloat"/>
3237	<function name="Orthox" template="Ortho" gltype="GLfixed"/>
3238
3239	<function name="PopMatrix" template="PopMatrix"/>
3240	<function name="PushMatrix" template="PushMatrix"/>
3241
3242	<function name="Rotatef" template="Rotate" gltype="GLfloat"/>
3243	<function name="Rotatex" template="Rotate" gltype="GLfixed"/>
3244	<function name="Scalef" template="Scale" gltype="GLfloat"/>
3245	<function name="Scalex" template="Scale" gltype="GLfixed"/>
3246	<function name="Translatef" template="Translate" gltype="GLfloat"/>
3247	<function name="Translatex" template="Translate" gltype="GLfixed"/>
3248
3249	<function name="Viewport" template="Viewport"/>
3250	<function name="ColorPointer" template="ColorPointer"/>
3251	<function name="DisableClientState" template="DisableClientState"/>
3252	<function name="DrawArrays" template="DrawArrays"/>
3253	<function name="DrawElements" template="DrawElements"/>
3254	<function name="EnableClientState" template="EnableClientState"/>
3255
3256	<function name="GetPointerv" template="GetPointer"/>
3257
3258	<function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
3259	<function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
3260	<function name="NormalPointer" template="NormalPointer"/>
3261	<function name="TexCoordPointer" template="TexCoordPointer"/>
3262	<function name="VertexPointer" template="VertexPointer"/>
3263
3264	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3265	<function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
3266
3267	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3268	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3269
3270	<function name="TexSubImage2D" template="TexSubImage2D"/>
3271
3272	<function name="BindTexture" template="BindTexture"/>
3273	<function name="DeleteTextures" template="DeleteTextures"/>
3274	<function name="GenTextures" template="GenTextures"/>
3275	<function name="IsTexture" template="IsTexture"/>
3276
3277	<function name="BlendEquationOES" template="BlendEquation"/>
3278	<function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
3279
3280	<function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
3281
3282	<function name="ActiveTexture" template="ActiveTexture"/>
3283	<function name="ClientActiveTexture" template="ClientActiveTexture"/>
3284
3285	<function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3286
3287	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3288	<function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
3289
3290	<!-- CompressedTexImage2D calls out to two different functions based on
3291	     whether the image is a paletted image or not -->
3292	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3293	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3294
3295	<function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
3296
3297	<function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
3298	<function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
3299	<function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
3300	<function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
3301
3302	<!-- OES_mapbuffer -->
3303	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3304	<function name="MapBufferOES" template="MapBuffer"/>
3305	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3306
3307	<function name="BindBuffer" template="BindBuffer"/>
3308	<function name="BufferData" template="BufferData"/>
3309	<function name="BufferSubData" template="BufferSubData"/>
3310	<function name="DeleteBuffers" template="DeleteBuffers"/>
3311	<function name="GenBuffers" template="GenBuffers"/>
3312	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3313	<function name="IsBuffer" template="IsBuffer"/>
3314
3315	<!-- OES_framebuffer_object -->
3316	<function name="GenerateMipmapOES" template="GenerateMipmap"/>
3317	<function name="BindFramebufferOES" template="BindFramebuffer"/>
3318	<function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
3319	<function name="GenFramebuffersOES" template="GenFramebuffers"/>
3320	<function name="BindRenderbufferOES" template="BindRenderbuffer"/>
3321	<function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
3322	<function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
3323	<function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
3324	<function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
3325	<function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
3326	<function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
3327	<function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3328	<function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
3329	<function name="IsRenderbufferOES" template="IsRenderbuffer"/>
3330	<function name="IsFramebufferOES" template="IsFramebuffer"/>
3331
3332	<!-- OES_query_matrix -->
3333	<!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
3334	     form; it has its own code for this -->
3335	<function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
3336
3337	<!-- OES_draw_texture -->
3338	<function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
3339	<function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
3340	<function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
3341	<function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
3342	<function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
3343	<function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
3344	<function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
3345	<function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
3346
3347        <!-- EXT_multi_draw_arrays -->
3348        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3349        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3350
3351        <!-- OES_EGL_image -->
3352        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3353        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3354</api>
3355
3356<api name="GLES2.0">
3357	<category name="GLES2.0"/>
3358
3359	<category name="OES_compressed_paletted_texture"/>
3360	<category name="OES_compressed_ETC1_RGB8_texture"/>
3361	<category name="OES_depth24"/>
3362	<category name="OES_depth32"/>
3363	<category name="OES_fbo_render_mipmap"/>
3364	<category name="OES_rgb8_rgba8"/>
3365	<category name="OES_stencil1"/>
3366	<category name="OES_stencil4"/>
3367	<category name="OES_element_index_uint"/>
3368	<category name="OES_mapbuffer"/>
3369	<category name="OES_texture_3D"/>
3370	<category name="OES_texture_npot"/>
3371	<category name="EXT_texture_filter_anisotropic"/>
3372	<category name="EXT_texture_type_2_10_10_10_REV"/>
3373	<category name="OES_depth_texture"/>
3374	<category name="OES_packed_depth_stencil"/>
3375	<category name="OES_standard_derivatives"/>
3376	<category name="EXT_texture_format_BGRA8888"/>
3377	<category name="EXT_texture_rg"/>
3378	<category name="EXT_read_format_bgra"/>
3379
3380	<category name="EXT_texture_compression_dxt1"/>
3381	<category name="EXT_blend_minmax"/>
3382	<category name="EXT_multi_draw_arrays"/>
3383	<category name="OES_EGL_image"/>
3384	<category name="OES_EGL_image_external"/>
3385        <category name="EXT_unpack_subimage"/>
3386
3387	<category name="NV_draw_buffers"/>
3388	<category name="NV_read_buffer"/>
3389
3390	<function name="DrawBuffersNV" template="DrawBuffers"/>
3391	<function name="ReadBufferNV" template="ReadBuffer"/> 
3392
3393	<function name="CullFace" template="CullFace"/>
3394
3395	<function name="FrontFace" template="FrontFace"/>
3396	<function name="Hint" template="Hint"/>
3397
3398	<function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
3399
3400	<function name="Scissor" template="Scissor"/>
3401
3402	<function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
3403	<function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
3404	<function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
3405	<function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
3406
3407	<function name="TexImage2D" template="TexImage2D"/>
3408
3409	<function name="Clear" template="Clear"/>
3410	<function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
3411	<function name="ClearStencil" template="ClearStencil"/>
3412	<function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
3413
3414	<function name="StencilMask" template="StencilMask"/>
3415	<function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
3416	<function name="ColorMask" template="ColorMask"/>
3417	<function name="DepthMask" template="DepthMask"/>
3418	<function name="Disable" template="Disable"/>
3419	<function name="Enable" template="Enable"/>
3420	<function name="Finish" template="Finish"/>
3421	<function name="Flush" template="Flush"/>
3422
3423	<function name="BlendFunc" template="BlendFunc"/>
3424
3425	<function name="StencilFunc" template="StencilFunc"/>
3426	<function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
3427	<function name="StencilOp" template="StencilOp"/>
3428	<function name="StencilOpSeparate" template="StencilOpSeparate"/>
3429
3430	<function name="DepthFunc" template="DepthFunc"/>
3431
3432	<function name="PixelStorei" template="PixelStore" gltype="GLint"/>
3433	<function name="ReadPixels" template="ReadPixels"/>
3434
3435	<function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
3436	<function name="GetError" template="GetError"/>
3437	<function name="GetFloatv" template="GetState" gltype="GLfloat"/>
3438	<function name="GetIntegerv" template="GetState" gltype="GLint"/>
3439
3440	<function name="GetString" template="GetString"/>
3441
3442	<function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
3443	<function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
3444
3445	<function name="IsEnabled" template="IsEnabled"/>
3446
3447	<function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
3448
3449	<function name="Viewport" template="Viewport"/>
3450
3451	<function name="DrawArrays" template="DrawArrays"/>
3452	<function name="DrawElements" template="DrawElements"/>
3453
3454	<function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
3455	<function name="CopyTexImage2D" template="CopyTexImage2D"/>
3456	<function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
3457	<function name="TexSubImage2D" template="TexSubImage2D"/>
3458
3459	<function name="BindTexture" template="BindTexture"/>
3460	<function name="DeleteTextures" template="DeleteTextures"/>
3461	<function name="GenTextures" template="GenTextures"/>
3462	<function name="IsTexture" template="IsTexture"/>
3463
3464	<function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
3465	<function name="BlendEquation" template="BlendEquation"/>
3466	<function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
3467
3468	<function name="TexImage3DOES" template="TexImage3D"/>
3469	<function name="TexSubImage3DOES" template="TexSubImage3D"/>
3470	<function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
3471
3472	<function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
3473	<function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
3474
3475	<function name="ActiveTexture" template="ActiveTexture"/>
3476
3477	<function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
3478
3479	<function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
3480	<function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
3481
3482	<function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
3483
3484	<function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3485	<function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3486	<function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3487	<function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3488	<function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
3489	<function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
3490	<function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
3491	<function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
3492
3493	<function name="VertexAttribPointer" template="VertexAttribPointer"/>
3494
3495	<function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
3496	<function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
3497
3498	<function name="IsProgram" template="IsProgram"/>
3499	<function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
3500
3501	<function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
3502	<function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
3503	<function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
3504
3505	<function name="GetBufferPointervOES" template="GetBufferPointer"/>
3506	<function name="MapBufferOES" template="MapBuffer"/>
3507	<function name="UnmapBufferOES" template="UnmapBuffer"/>
3508	<function name="BindBuffer" template="BindBuffer"/>
3509	<function name="BufferData" template="BufferData"/>
3510	<function name="BufferSubData" template="BufferSubData"/>
3511	<function name="DeleteBuffers" template="DeleteBuffers"/>
3512	<function name="GenBuffers" template="GenBuffers"/>
3513	<function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
3514	<function name="IsBuffer" template="IsBuffer"/>
3515
3516	<function name="CreateShader" template="CreateShader"/>
3517	<function name="ShaderSource" template="ShaderSource"/>
3518	<function name="CompileShader" template="CompileShader"/>
3519	<function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
3520	<function name="DeleteShader" template="DeleteShader"/>
3521	<function name="ShaderBinary" template="ShaderBinary"/>
3522	<function name="CreateProgram" template="CreateProgram"/>
3523	<function name="AttachShader" template="AttachShader"/>
3524	<function name="DetachShader" template="DetachShader"/>
3525	<function name="LinkProgram" template="LinkProgram"/>
3526	<function name="UseProgram" template="UseProgram"/>
3527	<function name="DeleteProgram" template="DeleteProgram"/>
3528
3529	<function name="GetActiveAttrib" template="GetActiveAttrib"/>
3530	<function name="GetAttribLocation" template="GetAttribLocation"/>
3531	<function name="BindAttribLocation" template="BindAttribLocation"/>
3532	<function name="GetUniformLocation" template="GetUniformLocation"/>
3533	<function name="GetActiveUniform" template="GetActiveUniform"/>
3534
3535	<function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
3536	<function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
3537	<function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
3538	<function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
3539	<function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
3540	<function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
3541	<function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
3542	<function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
3543
3544	<function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
3545	<function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
3546	<function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
3547	<function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
3548	<function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
3549	<function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
3550	<function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
3551	<function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
3552
3553	<function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
3554	<function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
3555	<function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
3556
3557	<function name="ValidateProgram" template="ValidateProgram"/>
3558
3559	<function name="GenerateMipmap" template="GenerateMipmap"/>
3560	<function name="BindFramebuffer" template="BindFramebuffer"/>
3561	<function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
3562	<function name="GenFramebuffers" template="GenFramebuffers"/>
3563	<function name="BindRenderbuffer" template="BindRenderbuffer"/>
3564	<function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
3565	<function name="GenRenderbuffers" template="GenRenderbuffers"/>
3566	<function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
3567	<function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
3568	<function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
3569	<function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
3570	<function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
3571	<function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
3572	<function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
3573	<function name="IsRenderbuffer" template="IsRenderbuffer"/>
3574	<function name="IsFramebuffer" template="IsFramebuffer"/>
3575
3576	<function name="IsShader" template="IsShader"/>
3577	<function name="GetShaderiv" template="GetShader" gltype="GLint"/>
3578	<function name="GetAttachedShaders" template="GetAttachedShaders"/>
3579	<function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
3580	<function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
3581	<function name="GetShaderSource" template="GetShaderSource"/>
3582	<function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
3583	<function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
3584	<function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
3585
3586        <!-- EXT_multi_draw_arrays -->
3587        <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
3588        <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
3589
3590        <!-- OES_EGL_image -->
3591        <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
3592        <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
3593</api>
3594
3595</apispec>
3596