Make a couple minor corrections to gl_API.xml. Fixes the name of an
[mesa.git] / src / mesa / glapi / gl_API.dtd
1 <!ELEMENT OpenGLAPI (category+)>
2 <!ELEMENT category (type*, enum*, function*)*>
3 <!ELEMENT type EMPTY>
4 <!ELEMENT enum (size*)>
5 <!ELEMENT size EMPTY>
6 <!ELEMENT function (param*, return?, glx?)*>
7 <!ELEMENT param EMPTY>
8 <!ELEMENT return EMPTY>
9 <!ELEMENT glx EMPTY>
10
11 <!ATTLIST category name NMTOKEN #REQUIRED
12 number NMTOKEN #IMPLIED>
13 <!ATTLIST type name NMTOKEN #REQUIRED
14 size NMTOKEN #REQUIRED
15 glx_name NMTOKEN #IMPLIED>
16 <!ATTLIST enum name NMTOKEN #REQUIRED
17 count CDATA #IMPLIED
18 value NMTOKEN #REQUIRED>
19 <!ATTLIST function name NMTOKEN #REQUIRED
20 alias NMTOKEN #IMPLIED
21 offset CDATA #IMPLIED
22 vectorequiv NMTOKEN #IMPLIED>
23 <!ATTLIST size name NMTOKEN #REQUIRED
24 count NMTOKEN #IMPLIED
25 mode (get | set) "set">
26 <!ATTLIST param name NMTOKEN #REQUIRED
27 type CDATA #REQUIRED
28 count NMTOKEN #IMPLIED
29 counter (true | false) "false"
30 count_scale NMTOKEN "1"
31 output (true | false) "false"
32 img_width NMTOKEN #IMPLIED
33 img_height NMTOKEN #IMPLIED
34 img_depth NMTOKEN #IMPLIED
35 img_extent NMTOKEN #IMPLIED
36 img_xoff NMTOKEN #IMPLIED
37 img_yoff NMTOKEN #IMPLIED
38 img_zoff NMTOKEN #IMPLIED
39 img_woff NMTOKEN #IMPLIED
40 img_format NMTOKEN #IMPLIED
41 img_type NMTOKEN #IMPLIED
42 img_target NMTOKEN #IMPLIED
43 img_send_null (true | false) "false"
44 img_null_flag (true | false) "false"
45 img_pad_dimensions (true | false) "false"
46 variable_param NMTOKENS #IMPLIED>
47 <!ATTLIST return type CDATA "void">
48 <!ATTLIST glx rop NMTOKEN #IMPLIED
49 sop NMTOKEN #IMPLIED
50 vendorpriv NMTOKEN #IMPLIED
51 large (true | false) "false"
52 doubles_in_order (true | false) "false"
53 always_array (true | false) "false"
54 handcode (true | false | client | server) "false"
55 img_reset NMTOKEN #IMPLIED
56 dimensions_in_reply (true | false) "false"
57 ignore (true | false) "false">
58
59 <!--
60 The various attributes for param and glx have the meanings listed below.
61 When adding new functions, please annote them correctly. In most cases this
62 will just mean adding a '<glx ignore="true"/>' tag.
63
64 param:
65 name - name of the parameter
66 type - fully qualified type (e.g., with "const", etc.)
67 count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
68 the parameter or literal that represents the count. For functions
69 like glVertex3fv it will be a litteral, for others it will be one of
70 the parameters.
71 counter - this parameter is a counter that will be referenced by the
72 'count' attribute in another parameter.
73 count_scale - literal value scale factor for the 'count' attribute.
74 See ProgramParameters4dvNV for an example.
75 output - this parameter is used to store the output of the function.
76 variable_param - name of parameter used to determine the number of
77 elements referenced by this parameter. This should be the name of a
78 single enum parameter. Most of the gl*Parameter[if]v functions use
79 this. Additionally, the enums that can be passed should be properly
80 annotated.
81 img_width / img_height / img_depth / img_extent - name of parameters
82 (or hardcoded integer) used for the dimensions of pixel data.
83 img_xoff / img_yoff / img_zoff / img_woff - name of parameters used
84 for x, y, z, and w offsets of pixel data.
85 img_format - name of parameter used as the pixel data format.
86 img_type - name of parameter used as the pixel data type.
87 img_target - name of parameter used as a texture target. Non-texture
88 pixel data should hardcode 0.
89 img_send_null - boolean flag to determine if blank pixel data should
90 be sent when a NULL pointer is passed. This is only used by
91 TexImage1D and TexImage2D.
92 img_null_flag - boolean flag to determine if an extra flag is used to
93 determine if a NULL pixel pointer was passed. This is used by
94 TexSubImage1D, TexSubImage2D, TexImage3D and others.
95 img_pad_dimensions - boolean flag to determine if dimension data and
96 offset data should be padded to the next even number of dimensions.
97 For example, this will insert an empty "height" field after the
98 "width" field in the protocol for TexImage1D.
99
100 glx:
101 rop - Opcode value for "render" commands
102 sop - Opcode value for "single" commands
103 vendorpriv - Opcode value for vendor private (or vendor private with
104 reply) commands
105 large - set to "true" of the render command can use RenderLarge protocol.
106 doubles_in_order - older commands always put GLdouble data at the
107 start of the render packet. Newer commands (e.g.,
108 ProgramEnvParameter4dvARB) put the in the order that they appear
109 in the parameter list.
110 always_array - some single commands take reply data as an array or as
111 return value data (e.g., glGetLightfv). Other single commands take
112 reply data only as an array (e.g., glGetClipPlane).
113 handcode - some functions are just too complicated to generate
114 (e.g., glSeperableFilter2D) or operate only on client-side data
115 (e.g., glVertexPointer) and must be handcoded.
116 ignore - some functions have an entry in the dispatch table, but aren't
117 suitable for protocol implementation (e.g., glLockArraysEXT). This
118 also applies to functions that don't have any GLX protocol specified
119 (e.g., glGetFogFuncSGIS).
120 -->