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