1<!ELEMENT apispec (template|api)+>
2
3<!ELEMENT api (category*, function*)>
4<!ELEMENT category EMPTY>
5<!ELEMENT function EMPTY>
6
7<!ELEMENT template (proto, desc*)>
8<!ELEMENT proto (return, (param|vector)*)>
9<!ELEMENT return EMPTY>
10<!ELEMENT param EMPTY>
11<!ELEMENT vector (param*)>
12<!ELEMENT desc ((value|range)*, desc*)>
13<!ELEMENT value EMPTY>
14<!ELEMENT range EMPTY>
15
16<!ATTLIST api      name                NMTOKEN #REQUIRED
17                   implementation      (true | false) "false">
18<!ATTLIST category name                NMTOKEN #REQUIRED>
19<!ATTLIST function name                NMTOKEN #REQUIRED
20                   default_prefix      NMTOKEN "_mesa_"
21                   external            (true | false) "false"
22                   template            NMTOKEN #REQUIRED
23                   gltype              CDATA #IMPLIED
24                   vector_size         NMTOKEN #IMPLIED
25                   expand_vector       (true | false) "false"
26                   skip_desc           (true | false) "false">
27
28<!ATTLIST template name                NMTOKEN #REQUIRED
29                   direction           (set | get) "set">
30
31<!ATTLIST return   type                CDATA #REQUIRED>
32<!ATTLIST param    name                NMTOKEN #REQUIRED
33                   type                CDATA #REQUIRED
34                   hide_if_expanded    (true | false) "false"
35                   category            NMTOKEN #IMPLIED>
36<!ATTLIST vector   name                NMTOKEN #REQUIRED
37                   type                CDATA #REQUIRED
38                   size                NMTOKEN #REQUIRED
39                   category            NMTOKEN #IMPLIED>
40
41<!ATTLIST desc     name                NMTOKEN #REQUIRED
42                   vector_size         CDATA #IMPLIED
43                   convert             (true | false) #IMPLIED
44                   error               NMTOKEN "GL_INVALID_ENUM"
45                   category            NMTOKEN #IMPLIED>
46
47<!ATTLIST value    name                CDATA #REQUIRED
48                   category            NMTOKEN #IMPLIED>
49<!ATTLIST range    from                NMTOKEN #REQUIRED
50                   to                  NMTOKEN #REQUIRED
51                   base                NMTOKEN #IMPLIED
52                   category            NMTOKEN #IMPLIED>
53