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