Serenity Operating System
1{
2 "ActiveTexture": {
3 "arguments": [
4 {"type": "GLenum", "name": "texture"}
5 ],
6 "variants": {
7 "api_suffixes": ["", "ARB"]
8 }
9 },
10 "AlphaFunc": {
11 "arguments": [
12 {"type": "GLenum", "name": "func"},
13 {"type": "GLclampf", "name": "ref"}
14 ]
15 },
16 "ArrayElement": {
17 "arguments": [
18 {"type": "GLint", "name": "i"}
19 ]
20 },
21 "AttachShader": {
22 "arguments": [
23 {"type": "GLuint", "name": "program"},
24 {"type": "GLuint", "name": "shader"}
25 ]
26 },
27 "Begin": {
28 "arguments": [
29 {"type": "GLenum", "name": "mode"}
30 ]
31 },
32 "BindBuffer": {
33 "arguments": [
34 {"type": "GLenum", "name": "target"},
35 {"type": "GLuint", "name": "buffer"}
36 ]
37 },
38 "BindTexture": {
39 "arguments": [
40 {"type": "GLenum", "name": "target"},
41 {"type": "GLuint", "name": "texture"}
42 ]
43 },
44 "Bitmap": {
45 "arguments": [
46 {"type": "GLsizei", "name": ["width", "height"]},
47 {"type": "GLfloat", "name": ["xorig", "yorig", "xmove", "ymove"]},
48 {"type": "GLubyte const*", "name": "bitmap"}
49 ]
50 },
51 "BlendFunc": {
52 "arguments": [
53 {"type": "GLenum", "name": ["sfactor", "dfactor"]}
54 ]
55 },
56 "BufferData": {
57 "arguments": [
58 {"type": "GLenum", "name": "target"},
59 {"type": "GLsizeiptr", "name": "size"},
60 {"type": "void const*", "name": "data"},
61 {"type": "GLenum", "name": "usage"}
62 ]
63 },
64 "BufferSubData": {
65 "arguments": [
66 {"type": "GLenum", "name": "target"},
67 {"type": "GLintptr", "name": "offset"},
68 {"type": "GLsizeiptr", "name": "size"},
69 {"type": "void const*", "name": "data"}
70 ]
71 },
72 "CallList": {
73 "arguments": [
74 {"type": "GLuint", "name": "list"}
75 ]
76 },
77 "CallLists": {
78 "arguments": [
79 {"type": "GLsizei", "name": "n"},
80 {"type": "GLenum", "name": "type"},
81 {"type": "void const*", "name": "lists"}
82 ]
83 },
84 "Clear": {
85 "arguments": [
86 {"type": "GLbitfield", "name": "mask"}
87 ]
88 },
89 "ClearColor": {
90 "arguments": [
91 {"type": "GLclampf", "name": ["red", "green", "blue", "alpha"]}
92 ]
93 },
94 "ClearDepth": {
95 "arguments": [
96 {"type": "GLdouble", "name": "depth", "cast_to": "GLfloat"}
97 ]
98 },
99 "ClearDepthf": {
100 "arguments": [
101 {"type": "GLfloat", "name": "depth"}
102 ],
103 "implementation": "clear_depth"
104 },
105 "ClearStencil": {
106 "arguments": [
107 {"type": "GLint", "name": "s"}
108 ]
109 },
110 "ClientActiveTexture": {
111 "arguments": [
112 {"type": "GLenum", "name": "target"}
113 ],
114 "variants": {
115 "api_suffixes": ["", "ARB"]
116 }
117 },
118 "ClipPlane": {
119 "arguments": [
120 {"type": "GLenum", "name": "plane"},
121 {"type": "GLdouble const*", "name": "equation"}
122 ]
123 },
124 "Color": {
125 "arguments": [
126 {"name": ["red", "green", "blue", "alpha"], "cast_to": "GLfloat"}
127 ],
128 "variants": {
129 "argument_counts": [3, 4],
130 "argument_defaults": ["0.f", "0.f", "0.f", "1.f"],
131 "convert_range": true,
132 "pointer_argument": "v",
133 "types": {
134 "b": {},
135 "bv": {},
136 "d": {},
137 "dv": {},
138 "f": {},
139 "fv": {},
140 "i": {},
141 "iv": {},
142 "s": {},
143 "sv": {},
144 "ub": {},
145 "ubv": {},
146 "ui": {},
147 "uiv": {},
148 "us": {},
149 "usv": {}
150 }
151 }
152 },
153 "ColorMask": {
154 "arguments": [
155 {"type": "GLboolean", "name": ["red", "green", "blue", "alpha"]}
156 ]
157 },
158 "ColorMaterial": {
159 "arguments": [
160 {"type": "GLenum", "name": "face"},
161 {"type": "GLenum", "name": "mode"}
162 ]
163 },
164 "ColorPointer": {
165 "arguments": [
166 {"type": "GLint", "name": "size"},
167 {"type": "GLenum", "name": "type"},
168 {"type": "GLsizei", "name": "stride"},
169 {"type": "void const*", "name": "pointer"}
170 ]
171 },
172 "CompileShader": {
173 "arguments": [
174 {"type": "GLuint", "name": "shader"}
175 ]
176 },
177 "CopyTexImage2D": {
178 "arguments": [
179 {"type": "GLenum", "name": "target"},
180 {"type": "GLint", "name": "level"},
181 {"type": "GLenum", "name": "internalformat"},
182 {"type": "GLint", "name": ["x", "y"]},
183 {"type": "GLsizei", "name": ["width", "height"]},
184 {"type": "GLint", "name": "border"}
185 ],
186 "implementation": "copy_tex_image_2d"
187 },
188 "CopyTexSubImage2D": {
189 "arguments": [
190 {"type": "GLenum", "name": "target"},
191 {"type": "GLint", "name": ["level", "xoffset", "yoffset", "x", "y"]},
192 {"type": "GLsizei", "name": ["width", "height"]}
193 ],
194 "implementation": "copy_tex_sub_image_2d"
195 },
196 "CreateProgram": {
197 "return_type": "GLuint"
198 },
199 "CreateShader": {
200 "arguments": [
201 {"type": "GLenum", "name": "shader_type"}
202 ],
203 "return_type": "GLuint"
204 },
205 "CullFace": {
206 "arguments": [
207 {"type": "GLenum", "name": "mode"}
208 ]
209 },
210 "DeleteBuffers": {
211 "arguments": [
212 {"type": "GLsizei", "name": "n"},
213 {"type": "GLuint const*", "name": "buffers"}
214 ]
215 },
216 "DeleteLists": {
217 "arguments": [
218 {"type": "GLuint", "name": "list"},
219 {"type": "GLsizei", "name": "range"}
220 ]
221 },
222 "DeleteProgram": {
223 "arguments": [
224 {"type": "GLuint", "name": "program"}
225 ]
226 },
227 "DeleteShader": {
228 "arguments": [
229 {"type": "GLuint", "name": "shader"}
230 ]
231 },
232 "DeleteTextures": {
233 "arguments": [
234 {"type": "GLsizei", "name": "n"},
235 {"type": "GLuint const*", "name": "textures"}
236 ]
237 },
238 "DepthFunc": {
239 "arguments": [
240 {"type": "GLenum", "name": "func"}
241 ]
242 },
243 "DepthMask": {
244 "arguments": [
245 {"type": "GLboolean", "name": "flag"}
246 ]
247 },
248 "DepthRange": {
249 "arguments": [
250 {"type": "GLdouble", "name": ["nearVal", "farVal"]}
251 ]
252 },
253 "DepthRangef": {
254 "arguments": [
255 {"type": "GLfloat", "name": ["nearVal", "farVal"], "cast_to": "GLdouble"}
256 ],
257 "implementation": "depth_range"
258 },
259 "Disable": {
260 "arguments": [
261 {"type": "GLenum", "name": "cap"}
262 ]
263 },
264 "DisableClientState": {
265 "arguments": [
266 {"type": "GLenum", "name": "cap"}
267 ]
268 },
269 "DrawArrays": {
270 "arguments": [
271 {"type": "GLenum", "name": "mode"},
272 {"type": "GLint", "name": "first"},
273 {"type": "GLsizei", "name": "count"}
274 ]
275 },
276 "DrawBuffer": {
277 "arguments": [
278 {"type": "GLenum", "name": "buffer"}
279 ]
280 },
281 "DrawElements": {
282 "arguments": [
283 {"type": "GLenum", "name": "mode"},
284 {"type": "GLsizei", "name": "count"},
285 {"type": "GLenum", "name": "type"},
286 {"type": "void const*", "name": "indices"}
287 ]
288 },
289 "DrawPixels": {
290 "arguments": [
291 {"type": "GLsizei", "name": ["width", "height"]},
292 {"type": "GLenum", "name": ["format", "type"]},
293 {"type": "void const*", "name": "data"}
294 ]
295 },
296 "Enable": {
297 "arguments": [
298 {"type": "GLenum", "name": "cap"}
299 ]
300 },
301 "EnableClientState": {
302 "arguments": [
303 {"type": "GLenum", "name": "cap"}
304 ]
305 },
306 "End": {},
307 "EndList": {},
308 "EvalCoord": {
309 "arguments": [
310 {"name": ["u", "v"]}
311 ],
312 "unimplemented": true,
313 "variants": {
314 "argument_counts": [1, 2],
315 "argument_defaults": ["0.", "0."],
316 "pointer_argument": "u",
317 "types": {
318 "d": {},
319 "dv": {},
320 "f": {},
321 "fv": {}
322 }
323 }
324 },
325 "EvalMesh1": {
326 "arguments": [
327 {"type": "GLenum", "name": "mode"},
328 {"type": "GLint", "name": ["i1", "i2"]}
329 ],
330 "unimplemented": true
331 },
332 "EvalMesh2": {
333 "arguments": [
334 {"type": "GLenum", "name": "mode"},
335 {"type": "GLint", "name": ["i1", "i2", "j1", "j2"]}
336 ],
337 "unimplemented": true
338 },
339 "EvalPoint": {
340 "arguments": [
341 {"name": ["i", "j"]}
342 ],
343 "unimplemented": true,
344 "variants": {
345 "argument_counts": [1, 2],
346 "argument_defaults": ["0", "0"],
347 "types": {
348 "i": {}
349 }
350 }
351 },
352 "Finish": {},
353 "Flush": {},
354 "Fog": {
355 "arguments": [
356 {"type": "GLenum", "name": "pname"},
357 {"name": "param"}
358 ],
359 "variants": {
360 "argument_counts": [1],
361 "pointer_argument": "params",
362 "types": {
363 "f": {"implementation": "fogf"},
364 "fv": {"implementation": "fogfv"},
365 "i": {"implementation": "fogi"},
366 "iv": {"unimplemented": true}
367 }
368 }
369 },
370 "FrontFace": {
371 "arguments": [
372 {"type": "GLenum", "name": "mode"}
373 ]
374 },
375 "Frustum": {
376 "arguments": [
377 {"type": "GLdouble", "name": ["left", "right", "bottom", "top", "nearVal", "farVal"]}
378 ]
379 },
380 "GenBuffers": {
381 "arguments": [
382 {"type": "GLsizei", "name": "n"},
383 {"type": "GLuint*", "name": "buffers"}
384 ]
385 },
386 "GenLists": {
387 "arguments": [
388 {"type": "GLsizei", "name": "range"}
389 ],
390 "return_type": "GLuint"
391 },
392 "GenTextures": {
393 "arguments": [
394 {"type": "GLsizei", "name": "n"},
395 {"type": "GLuint*", "name": "textures"}
396 ]
397 },
398 "GetBooleanv": {
399 "arguments": [
400 {"type": "GLenum", "name": "pname"},
401 {"type": "GLboolean*", "name": "data"}
402 ]
403 },
404 "GetClipPlane": {
405 "arguments": [
406 {"type": "GLenum", "name": "plane"},
407 {"type": "GLdouble*", "name": "equation"}
408 ]
409 },
410 "GetDoublev": {
411 "arguments": [
412 {"type": "GLenum", "name": "pname"},
413 {"type": "GLdouble*", "name": "data"}
414 ]
415 },
416 "GetError": {
417 "return_type": "GLenum"
418 },
419 "GetFloatv": {
420 "arguments": [
421 {"type": "GLenum", "name": "pname"},
422 {"type": "GLfloat*", "name": "data"}
423 ]
424 },
425 "GetIntegerv": {
426 "arguments": [
427 {"type": "GLenum", "name": "pname"},
428 {"type": "GLint*", "name": "data"}
429 ]
430 },
431 "GetLight": {
432 "arguments": [
433 {"type": "GLenum", "name": "light"},
434 {"type": "GLenum", "name": "pname"},
435 {"name": "params"},
436 {"type": "GLenum", "expression": "@variant_gl_type@"}
437 ],
438 "variants": {
439 "argument_counts": [1],
440 "pointer_argument": "params",
441 "types": {
442 "fv!": {},
443 "iv!": {}
444 }
445 }
446 },
447 "GetMaterial": {
448 "arguments": [
449 {"type": "GLenum", "name": "face"},
450 {"type": "GLenum", "name": "pname"},
451 {"name": "params"},
452 {"type": "GLenum", "expression": "@variant_gl_type@"}
453 ],
454 "variants": {
455 "argument_counts": [1],
456 "pointer_argument": "params",
457 "types": {
458 "fv!": {},
459 "iv!": {}
460 }
461 }
462 },
463 "GetProgramiv": {
464 "arguments": [
465 {"type": "GLuint", "name": "program"},
466 {"type": "GLenum", "name": "pname"},
467 {"type": "GLint*", "name": "params"}
468 ],
469 "implementation": "get_program"
470 },
471 "GetShaderiv": {
472 "arguments": [
473 {"type": "GLuint", "name": "shader"},
474 {"type": "GLenum", "name": "pname"},
475 {"type": "GLint*", "name": "params"}
476 ],
477 "implementation": "get_shader"
478 },
479 "GetString": {
480 "arguments": [
481 {"type": "GLenum", "name": "name"}
482 ],
483 "return_type": "GLubyte const*"
484 },
485 "GetTexImage": {
486 "arguments": [
487 {"type": "GLenum", "name": "target"},
488 {"type": "GLint", "name": "level"},
489 {"type": "GLenum", "name": ["format", "type"]},
490 {"type": "void*", "name": "pixels"}
491 ]
492 },
493 "GetTexLevelParameter": {
494 "arguments": [
495 {"type": "GLenum", "name": "target"},
496 {"type": "GLint", "name": "level"},
497 {"type": "GLenum", "name": "pname"},
498 {"name": "params"}
499 ],
500 "variants": {
501 "argument_counts": [1],
502 "pointer_argument": "params",
503 "types": {
504 "fv!": {"unimplemented": true},
505 "iv!": {"implementation": "get_tex_parameter_integerv"}
506 }
507 }
508 },
509 "Hint": {
510 "arguments": [
511 {"type": "GLenum", "name": "target"},
512 {"type": "GLenum", "name": "mode"}
513 ]
514 },
515 "IsEnabled": {
516 "arguments": [
517 {"type": "GLenum", "name": "cap"}
518 ],
519 "return_type": "GLboolean"
520 },
521 "IsList": {
522 "arguments": [
523 {"type": "GLuint", "name": "list"}
524 ],
525 "return_type": "GLboolean"
526 },
527 "IsTexture": {
528 "arguments": [
529 {"type": "GLuint", "name": "texture"}
530 ],
531 "return_type": "GLboolean"
532 },
533 "Light": {
534 "arguments": [
535 {"type": "GLenum", "name": "light"},
536 {"type": "GLenum", "name": "pname"},
537 {"name": "param", "cast_to": "GLfloat"}
538 ],
539 "variants": {
540 "argument_counts": [1],
541 "pointer_argument": "params",
542 "types": {
543 "f": {},
544 "fv": {"implementation": "lightfv"},
545 "i": {},
546 "iv": {"implementation": "lightiv"},
547 "x": {},
548 "xv": {"implementation": "lightiv"}
549 }
550 },
551 "implementation": "lightf"
552 },
553 "LightModel": {
554 "arguments": [
555 {"type": "GLenum", "name": "pname"},
556 {"name": "param"},
557 {"type": "GLenum", "expression": "@variant_gl_type@"}
558 ],
559 "implementation": "light_modelv",
560 "variants": {
561 "argument_counts": [1],
562 "pointer_argument": "params",
563 "types": {
564 "fv": {},
565 "iv": {}
566 }
567 }
568 },
569 "LightModelf": {
570 "arguments": [
571 {"type": "GLenum", "name": "pname"},
572 {"type": "GLfloat", "name": "x"},
573 {"name": ["y", "z", "w"], "expression": "0.f"}
574 ],
575 "implementation": "light_model"
576 },
577 "LightModeli": {
578 "arguments": [
579 {"type": "GLenum", "name": "pname"},
580 {"type": "GLint", "name": "x", "cast_to": "GLfloat"},
581 {"name": ["y", "z", "w"], "expression": "0.f"}
582 ],
583 "implementation": "light_model"
584 },
585 "LineWidth": {
586 "arguments": [
587 {"type": "GLfloat", "name": "width"}
588 ]
589 },
590 "LinkProgram": {
591 "arguments": [
592 {"type": "GLuint", "name": "program"}
593 ]
594 },
595 "ListBase": {
596 "arguments": [
597 {"type": "GLuint", "name": "base"}
598 ]
599 },
600 "LoadIdentity": {},
601 "LoadMatrixd": {
602 "arguments": [
603 {"type": "GLdouble const*", "name": "m", "expression": "GL::transpose_input_matrix(@argument_name@)"}
604 ],
605 "implementation": "load_matrix"
606 },
607 "LoadMatrixf": {
608 "arguments": [
609 {"type": "GLfloat const*", "name": "m", "expression": "GL::transpose_input_matrix(@argument_name@)"}
610 ],
611 "implementation": "load_matrix"
612 },
613 "Map1d": {
614 "arguments": [
615 {"type": "GLenum", "name": "target"},
616 {"type": "GLdouble","name": ["u1", "u2"]},
617 {"type": "GLint", "name": ["stride", "order"]},
618 {"type": "GLdouble const*", "name": "points"}
619 ],
620 "unimplemented": true
621 },
622 "Map1f": {
623 "arguments": [
624 {"type": "GLenum", "name": "target"},
625 {"type": "GLfloat","name": ["u1", "u2"]},
626 {"type": "GLint", "name": ["stride", "order"]},
627 {"type": "GLfloat const*", "name": "points"}
628 ],
629 "unimplemented": true
630 },
631 "Map2d": {
632 "arguments": [
633 {"type": "GLenum", "name": "target"},
634 {"type": "GLdouble","name": ["u1", "u2"]},
635 {"type": "GLint", "name": ["ustride", "uorder"]},
636 {"type": "GLdouble","name": ["v1", "v2"]},
637 {"type": "GLint", "name": ["vstride", "vorder"]},
638 {"type": "GLdouble const*", "name": "points"}
639 ],
640 "unimplemented": true
641 },
642 "Map2f": {
643 "arguments": [
644 {"type": "GLenum", "name": "target"},
645 {"type": "GLfloat","name": ["u1", "u2"]},
646 {"type": "GLint", "name": ["ustride", "uorder"]},
647 {"type": "GLfloat","name": ["v1", "v2"]},
648 {"type": "GLint", "name": ["vstride", "vorder"]},
649 {"type": "GLfloat const*", "name": "points"}
650 ],
651 "unimplemented": true
652 },
653 "MapGrid1": {
654 "arguments": [
655 {"type": "GLint", "name": "un"},
656 {"name": ["u1", "u2"]}
657 ],
658 "unimplemented": true,
659 "variants": {
660 "types": {
661 "d": {},
662 "f": {}
663 }
664 }
665 },
666 "MapGrid2": {
667 "arguments": [
668 {"type": "GLint", "name": "un"},
669 {"name": ["u1", "u2"]},
670 {"type": "GLint", "name": "vn"},
671 {"name": ["v1", "v2"]}
672 ],
673 "unimplemented": true,
674 "variants": {
675 "types": {
676 "d": {},
677 "f": {}
678 }
679 }
680 },
681 "Material": {
682 "arguments": [
683 {"type": "GLenum", "name": "face"},
684 {"type": "GLenum", "name": "pname"},
685 {"name": "param", "cast_to": "GLfloat"}
686 ],
687 "implementation": "materialf",
688 "variants": {
689 "argument_counts": [1],
690 "pointer_argument": "params",
691 "types": {
692 "f": {},
693 "fv": {
694 "implementation": "materialfv"
695 },
696 "i": {},
697 "iv": {
698 "implementation": "materialiv"
699 }
700 }
701 }
702 },
703 "MatrixMode": {
704 "arguments": [
705 {"type": "GLenum", "name": "mode"}
706 ]
707 },
708 "MultiTexCoord": {
709 "arguments": [
710 {"type": "GLenum", "name": "target"},
711 {"name": ["s", "t", "r", "q"], "cast_to": "GLfloat"}
712 ],
713 "variants": {
714 "api_suffixes": ["", "ARB"],
715 "argument_counts": [1, 2, 3, 4],
716 "argument_defaults": ["0.f", "0.f", "0.f", "1.f"],
717 "pointer_argument": "v",
718 "types": {
719 "d": {},
720 "dv": {},
721 "f": {},
722 "fv": {},
723 "i": {},
724 "iv": {},
725 "s": {},
726 "sv": {}
727 }
728 }
729 },
730 "MultMatrixd": {
731 "arguments": [
732 {"type": "GLdouble const*", "name": "m", "expression": "GL::transpose_input_matrix(@argument_name@)"}
733 ],
734 "implementation": "mult_matrix"
735 },
736 "MultMatrixf": {
737 "arguments": [
738 {"type": "GLfloat const*", "name": "m", "expression": "GL::transpose_input_matrix(@argument_name@)"}
739 ],
740 "implementation": "mult_matrix"
741 },
742 "NewList": {
743 "arguments": [
744 {"type": "GLuint", "name": "list"},
745 {"type": "GLenum", "name": "mode"}
746 ]
747 },
748 "Normal3": {
749 "arguments": [
750 {"name": ["nx", "ny", "nz"], "cast_to": "GLfloat"}
751 ],
752 "implementation": "normal",
753 "variants": {
754 "convert_range": true,
755 "pointer_argument": "v",
756 "types": {
757 "b": {},
758 "bv": {},
759 "d": {},
760 "dv": {},
761 "f": {},
762 "fv": {},
763 "i": {},
764 "iv": {},
765 "s": {},
766 "sv": {}
767 }
768 }
769 },
770 "NormalPointer": {
771 "arguments": [
772 {"type": "GLenum", "name": "type"},
773 {"type": "GLsizei", "name": "stride"},
774 {"type": "void const*", "name": "pointer"}
775 ]
776 },
777 "Ortho": {
778 "arguments": [
779 {"type": "GLdouble", "name": ["left", "right", "bottom", "top", "nearVal", "farVal"]}
780 ]
781 },
782 "PixelStore": {
783 "arguments": [
784 {"type": "GLenum", "name": "pname"},
785 {"name": "param", "cast_to": "GLint"}
786 ],
787 "implementation": "pixel_storei",
788 "variants": {
789 "types": {
790 "f": {},
791 "i": {}
792 }
793 }
794 },
795 "PointSize": {
796 "arguments": [
797 {"type": "GLfloat", "name": "size"}
798 ]
799 },
800 "PolygonMode": {
801 "arguments": [
802 {"type": "GLenum", "name": ["face", "mode"]}
803 ]
804 },
805 "PolygonOffset": {
806 "arguments": [
807 {"type": "GLfloat", "name": ["factor", "units"]}
808 ]
809 },
810 "PopAttrib": {},
811 "PopMatrix": {},
812 "PushAttrib": {
813 "arguments": [
814 {"type": "GLbitfield", "name": "mask"}
815 ]
816 },
817 "PushMatrix": {},
818 "RasterPos": {
819 "arguments": [
820 {"name": ["x", "y", "z", "w"], "cast_to": "GLfloat"}
821 ],
822 "variants": {
823 "argument_counts": [2, 3, 4],
824 "argument_defaults": ["0.f", "0.f", "0.f", "1.f"],
825 "pointer_argument": "v",
826 "types": {
827 "d": {},
828 "dv": {},
829 "f": {},
830 "fv": {},
831 "i": {},
832 "iv": {},
833 "s": {},
834 "sv": {}
835 }
836 }
837 },
838 "ReadBuffer": {
839 "arguments": [
840 {"type": "GLenum", "name": "mode"}
841 ]
842 },
843 "ReadPixels": {
844 "arguments": [
845 {"type": "GLint", "name": "x"},
846 {"type": "GLint", "name": "y"},
847 {"type": "GLsizei", "name": "width"},
848 {"type": "GLsizei", "name": "height"},
849 {"type": "GLenum", "name": "format"},
850 {"type": "GLenum", "name": "type"},
851 {"type": "void*", "name": "data"}
852 ]
853 },
854 "Rect": {
855 "arguments": [
856 {"name": ["x1", "y1", "x2", "y2"], "cast_to": "GLdouble"}
857 ],
858 "variants": {
859 "types": {
860 "d": {},
861 "f": {},
862 "i": {},
863 "s": {}
864 }
865 }
866 },
867 "Rotate": {
868 "arguments": [
869 {"name": ["angle", "x", "y", "z"], "cast_to": "GLfloat"}
870 ],
871 "variants": {
872 "types": {
873 "d": {},
874 "f": {}
875 }
876 }
877 },
878 "Scale": {
879 "arguments": [
880 {"name": ["x", "y", "z"], "cast_to": "GLfloat"}
881 ],
882 "variants": {
883 "types": {
884 "d": {},
885 "f": {}
886 }
887 }
888 },
889 "Scissor": {
890 "arguments": [
891 {"type": "GLint", "name": ["x", "y"]},
892 {"type": "GLsizei", "name": ["width", "height"]}
893 ]
894 },
895 "ShadeModel": {
896 "arguments": [
897 {"type": "GLenum", "name": "mode"}
898 ]
899 },
900 "ShaderSource": {
901 "arguments": [
902 {"type": "GLuint", "name": "shader"},
903 {"type": "GLsizei", "name": "count"},
904 {"type": "GLchar const**", "name": "string"},
905 {"type": "GLint const*", "name": "length"}
906 ]
907 },
908 "StencilFunc": {
909 "arguments": [
910 {"expression": "GL_FRONT_AND_BACK"},
911 {"type": "GLenum", "name": "func"},
912 {"type": "GLint", "name": "ref"},
913 {"type": "GLuint", "name": "mask"}
914 ],
915 "implementation": "stencil_func_separate"
916 },
917 "StencilFuncSeparate": {
918 "arguments": [
919 {"type": "GLenum", "name": ["face", "func"]},
920 {"type": "GLint", "name": "ref"},
921 {"type": "GLuint", "name": "mask"}
922 ]
923 },
924 "StencilMask": {
925 "arguments": [
926 {"expression": "GL_FRONT_AND_BACK"},
927 {"type": "GLuint", "name": "mask"}
928 ],
929 "implementation": "stencil_mask_separate"
930 },
931 "StencilMaskSeparate": {
932 "arguments": [
933 {"type": "GLenum", "name": "face"},
934 {"type": "GLuint", "name": "mask"}
935 ]
936 },
937 "StencilOp": {
938 "arguments": [
939 {"expression": "GL_FRONT_AND_BACK"},
940 {"type": "GLenum", "name": ["sfail", "dpfail", "dppass"]}
941 ],
942 "implementation": "stencil_op_separate"
943 },
944 "StencilOpSeparate": {
945 "arguments": [
946 {"type": "GLenum", "name": ["face", "sfail", "dpfail", "dppass"]}
947 ]
948 },
949 "TexCoord": {
950 "arguments": [
951 {"name": ["s", "t", "r", "q"], "cast_to": "GLfloat"}
952 ],
953 "variants": {
954 "argument_counts": [1, 2, 3, 4],
955 "argument_defaults": ["0.f", "0.f", "0.f", "1.f"],
956 "pointer_argument": "v",
957 "types": {
958 "d": {},
959 "dv": {},
960 "f": {},
961 "fv": {},
962 "i": {},
963 "iv": {},
964 "s": {},
965 "sv": {}
966 }
967 }
968 },
969 "TexCoordPointer": {
970 "arguments": [
971 {"type": "GLint", "name": "size"},
972 {"type": "GLenum", "name": "type"},
973 {"type": "GLsizei", "name": "stride"},
974 {"type": "void const*", "name": "pointer"}
975 ]
976 },
977 "TexEnv": {
978 "arguments": [
979 {"type": "GLenum", "name": "target"},
980 {"type": "GLenum", "name": "pname"},
981 {"name": "param"},
982 {"type": "GLenum", "expression": "@variant_gl_type@"}
983 ],
984 "implementation": "tex_envv",
985 "variants": {
986 "argument_counts": [1],
987 "pointer_argument": "params",
988 "types": {
989 "fv": {},
990 "iv": {}
991 }
992 }
993 },
994 "TexEnvf": {
995 "arguments": [
996 {"type": "GLenum", "name": "target"},
997 {"type": "GLenum", "name": "pname"},
998 {"type": "GLfloat", "name": "x", "expression": "{@argument_name@, 0.f, 0.f, 0.f}"}
999 ],
1000 "implementation": "tex_env"
1001 },
1002 "TexEnvi": {
1003 "arguments": [
1004 {"type": "GLenum", "name": "target"},
1005 {"type": "GLenum", "name": "pname"},
1006 {"type": "GLint", "name": "x", "expression": "{static_cast<float>(@argument_name@), 0.f, 0.f, 0.f}"}
1007 ],
1008 "implementation": "tex_env"
1009 },
1010 "TexGen": {
1011 "arguments": [
1012 {"type": "GLenum", "name": "coord"},
1013 {"type": "GLenum", "name": "pname"},
1014 {"name": "param", "cast_to": "GLint"}
1015 ],
1016 "variants": {
1017 "argument_counts": [1],
1018 "pointer_argument": "params",
1019 "types": {
1020 "d": {},
1021 "dv": {"unimplemented": true},
1022 "f": {},
1023 "fv": {"implementation": "tex_gen_floatv"},
1024 "i": {},
1025 "iv": {"unimplemented": true}
1026 }
1027 }
1028 },
1029 "TexImage1D": {
1030 "arguments": [
1031 {"type": "GLenum", "name": "target"},
1032 {"type": "GLint", "name": "level"},
1033 {"type": "GLint", "name": "internalFormat"},
1034 {"type": "GLsizei", "name": "width"},
1035 {"type": "GLint", "name": "border"},
1036 {"type": "GLenum", "name": "format"},
1037 {"type": "GLenum", "name": "type"},
1038 {"type": "void const*", "name": "data"}
1039 ],
1040 "unimplemented": true
1041 },
1042 "TexImage2D": {
1043 "arguments": [
1044 {"type": "GLenum", "name": "target"},
1045 {"type": "GLint", "name": "level"},
1046 {"type": "GLint", "name": "internalFormat"},
1047 {"type": "GLsizei", "name": "width"},
1048 {"type": "GLsizei", "name": "height"},
1049 {"type": "GLint", "name": "border"},
1050 {"type": "GLenum", "name": "format"},
1051 {"type": "GLenum", "name": "type"},
1052 {"type": "void const*", "name": "data"}
1053 ],
1054 "implementation": "tex_image_2d"
1055 },
1056 "TexImage3D": {
1057 "arguments": [
1058 {"type": "GLenum", "name": "target"},
1059 {"type": "GLint", "name": "level"},
1060 {"type": "GLint", "name": "internalFormat"},
1061 {"type": "GLsizei", "name": "width"},
1062 {"type": "GLsizei", "name": "height"},
1063 {"type": "GLsizei", "name": "depth"},
1064 {"type": "GLint", "name": "border"},
1065 {"type": "GLenum", "name": "format"},
1066 {"type": "GLenum", "name": "type"},
1067 {"type": "void const*", "name": "data"}
1068 ],
1069 "unimplemented": true
1070 },
1071 "TexParameter": {
1072 "arguments": [
1073 {"type": "GLenum", "name": "target"},
1074 {"type": "GLenum", "name": "pname"},
1075 {"name": "param"}
1076 ],
1077 "variants": {
1078 "pointer_argument": "params",
1079 "types": {
1080 "f": {},
1081 "fv": {"unimplemented": true},
1082 "i": {},
1083 "iv": {"unimplemented": true}
1084 }
1085 }
1086 },
1087 "TexSubImage1D": {
1088 "arguments": [
1089 {"type": "GLenum", "name": "target"},
1090 {"type": "GLint", "name": "level"},
1091 {"type": "GLint", "name": "xoffset"},
1092 {"type": "GLsizei", "name": "width"},
1093 {"type": "GLenum", "name": "format"},
1094 {"type": "GLenum", "name": "type"},
1095 {"type": "void const*", "name": "pixels"}
1096 ],
1097 "unimplemented": true
1098 },
1099 "TexSubImage2D": {
1100 "arguments": [
1101 {"type": "GLenum", "name": "target"},
1102 {"type": "GLint", "name": "level"},
1103 {"type": "GLint", "name": "xoffset"},
1104 {"type": "GLint", "name": "yoffset"},
1105 {"type": "GLsizei", "name": "width"},
1106 {"type": "GLsizei", "name": "height"},
1107 {"type": "GLenum", "name": "format"},
1108 {"type": "GLenum", "name": "type"},
1109 {"type": "void const*", "name": "pixels"}
1110 ],
1111 "implementation": "tex_sub_image_2d"
1112 },
1113 "TexSubImage3D": {
1114 "arguments": [
1115 {"type": "GLenum", "name": "target"},
1116 {"type": "GLint", "name": "level"},
1117 {"type": "GLint", "name": "xoffset"},
1118 {"type": "GLint", "name": "yoffset"},
1119 {"type": "GLint", "name": "zoffset"},
1120 {"type": "GLsizei", "name": "width"},
1121 {"type": "GLsizei", "name": "height"},
1122 {"type": "GLsizei", "name": "depth"},
1123 {"type": "GLenum", "name": "format"},
1124 {"type": "GLenum", "name": "type"},
1125 {"type": "void const*", "name": "pixels"}
1126 ],
1127 "unimplemented": true
1128 },
1129 "Translate": {
1130 "arguments": [
1131 {"name": ["x", "y", "z"], "cast_to": "GLfloat"}
1132 ],
1133 "variants": {
1134 "types": {
1135 "d": {},
1136 "f": {}
1137 }
1138 }
1139 },
1140 "UseProgram": {
1141 "arguments": [
1142 {"type": "GLuint", "name": "program"}
1143 ]
1144 },
1145 "Vertex": {
1146 "arguments": [
1147 {"name": ["x", "y", "z", "w"], "cast_to": "GLdouble"}
1148 ],
1149 "variants": {
1150 "argument_counts": [2, 3, 4],
1151 "argument_defaults": ["0.", "0.", "0.", "1."],
1152 "pointer_argument": "v",
1153 "types": {
1154 "d": {},
1155 "dv": {},
1156 "f": {},
1157 "fv": {},
1158 "i": {},
1159 "iv": {},
1160 "s": {},
1161 "sv": {}
1162 }
1163 }
1164 },
1165 "VertexPointer": {
1166 "arguments": [
1167 {"type": "GLint", "name": "size"},
1168 {"type": "GLenum", "name": "type"},
1169 {"type": "GLsizei", "name": "stride"},
1170 {"type": "void const*", "name": "pointer"}
1171 ]
1172 },
1173 "Viewport": {
1174 "arguments": [
1175 {"type": "GLint", "name": ["x", "y"]},
1176 {"type": "GLsizei", "name": ["width", "height"]}
1177 ]
1178 }
1179}