~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/mapi/glapi/gen/gl_API.dtd

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!ELEMENT OpenGLAPI (category?, xi:include?, OpenGLAPI?)+>
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
 
<!ELEMENT xi:include (xi:fallback)?>
12
 
<!ATTLIST xi:include
13
 
          xmlns:xi  CDATA #FIXED "http://www.w3.org/2001/XInclude"
14
 
          href       CDATA #REQUIRED
15
 
          parse      (xml|text) "xml"
16
 
          encoding   CDATA #IMPLIED>
17
 
<!ELEMENT xi:fallback ANY>
18
 
<!ATTLIST xi:fallback
19
 
          xmlns:xi   CDATA #FIXED "http://www.w3.org/2001/XInclude">
20
 
 
21
 
 
22
 
<!ATTLIST category name                NMTOKEN #REQUIRED
23
 
                   number              NMTOKEN #IMPLIED
24
 
                   window_system       NMTOKEN #IMPLIED>
25
 
<!ATTLIST type     name                NMTOKEN #REQUIRED
26
 
                   size                NMTOKEN #REQUIRED
27
 
                   float               (true | false) "false"
28
 
                   unsigned            (true | false) "false"
29
 
                   pointer             (true | false) "false"
30
 
                   glx_name            NMTOKEN #IMPLIED>
31
 
<!ATTLIST enum     name                NMTOKEN #REQUIRED
32
 
                   count               CDATA   #IMPLIED
33
 
                   value               NMTOKEN #REQUIRED>
34
 
<!ATTLIST function name                NMTOKEN #REQUIRED
35
 
                   alias               NMTOKEN #IMPLIED
36
 
                   vectorequiv         NMTOKEN #IMPLIED
37
 
                   es1                 CDATA   "none"
38
 
                   es2                 CDATA   "none"
39
 
                   deprecated          CDATA   "none"
40
 
                   exec                NMTOKEN #IMPLIED
41
 
                   desktop             (true | false) "true"
42
 
                   marshal             NMTOKEN #IMPLIED
43
 
                   marshal_sync        CDATA #IMPLIED>
44
 
                   marshal_count       CDATA #IMPLIED>
45
 
                   marshal_call_before CDATA #IMPLIED>
46
 
                   marshal_call_after  CDATA #IMPLIED>
47
 
<!ATTLIST size     name                NMTOKEN #REQUIRED
48
 
                   count               NMTOKEN #IMPLIED
49
 
                   mode                (get | set) "set">
50
 
<!ATTLIST param    name                NMTOKEN #REQUIRED
51
 
                   type                CDATA   #REQUIRED
52
 
                   client_only         (true | false) "false"
53
 
                   count               NMTOKEN #IMPLIED
54
 
                   counter             (true | false) "false"
55
 
                   count_scale         NMTOKEN "1"
56
 
                   output              (true | false) "false"
57
 
                   padding             (true | false) "false"
58
 
                   img_width           NMTOKEN #IMPLIED
59
 
                   img_height          NMTOKEN #IMPLIED
60
 
                   img_depth           NMTOKEN #IMPLIED
61
 
                   img_extent          NMTOKEN #IMPLIED
62
 
                   img_xoff            NMTOKEN #IMPLIED
63
 
                   img_yoff            NMTOKEN #IMPLIED
64
 
                   img_zoff            NMTOKEN #IMPLIED
65
 
                   img_woff            NMTOKEN #IMPLIED
66
 
                   img_format          NMTOKEN #IMPLIED
67
 
                   img_type            NMTOKEN #IMPLIED
68
 
                   img_target          NMTOKEN #IMPLIED
69
 
                   img_send_null       (true | false) "false"
70
 
                   img_null_flag       (true | false) "false"
71
 
                   img_pad_dimensions  (true | false) "false"
72
 
                   variable_param      NMTOKENS #IMPLIED>
73
 
<!ATTLIST return   type                CDATA   "void">
74
 
<!ATTLIST glx      rop                 NMTOKEN #IMPLIED
75
 
                   sop                 NMTOKEN #IMPLIED
76
 
                   vendorpriv          NMTOKEN #IMPLIED
77
 
                   large               (true | false) "false"
78
 
                   doubles_in_order    (true | false) "false"
79
 
                   always_array        (true | false) "false"
80
 
                   handcode            (true | false | client | server) "false"
81
 
                   img_reset           NMTOKEN #IMPLIED
82
 
                   dimensions_in_reply (true | false) "false"
83
 
                   ignore              (true | false) "false">
84
 
 
85
 
<!--
86
 
The various attributes for param and glx have the meanings listed below.
87
 
When adding new functions, please annote them correctly.  In most cases this
88
 
will just mean adding a '<glx ignore="true"/>' tag.
89
 
 
90
 
param:
91
 
     name - name of the parameter
92
 
     type - fully qualified type (e.g., with "const", etc.)
93
 
     client_only - boolean flag set on parameters which are interpreted only
94
 
         by the client and are not present in the protocol encoding (e.g.,
95
 
         the stride parameters to Map1f, etc.)
96
 
     count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
97
 
         the parameter or literal that represents the count.  For functions
98
 
         like glVertex3fv it will be a literal, for others it will be one of
99
 
         the parameters.
100
 
     counter - this parameter is a counter that will be referenced by the
101
 
         'count' attribute in another parameter.
102
 
     count_scale - literal value scale factor for the 'count' attribute.
103
 
         See ProgramParameters4dvNV for an example.
104
 
     output - this parameter is used to store the output of the function.
105
 
     variable_param - name of parameter used to determine the number of
106
 
         elements referenced by this parameter.  This should be the name of a
107
 
         single enum parameter.  Most of the gl*Parameter[if]v functions use
108
 
         this.  Additionally, the enums that can be passed should be properly
109
 
         annotated.
110
 
     img_width / img_height / img_depth / img_extent - name of parameters
111
 
         (or hardcoded integer) used for the dimensions of pixel data.
112
 
     img_xoff / img_yoff / img_zoff / img_woff - name of parameters used
113
 
         for x, y, z, and w offsets of pixel data.
114
 
     img_format - name of parameter used as the pixel data format.
115
 
     img_type - name of parameter used as the pixel data type.
116
 
     img_target - name of parameter used as a texture target.  Non-texture
117
 
        pixel data should hardcode 0.
118
 
     img_send_null - boolean flag to determine if blank pixel data should
119
 
        be sent when a NULL pointer is passed.  This is only used by
120
 
        TexImage1D and TexImage2D.
121
 
     img_null_flag - boolean flag to determine if an extra flag is used to
122
 
        determine if a NULL pixel pointer was passed.  This is used by
123
 
        TexSubImage1D, TexSubImage2D, TexImage3D and others.
124
 
     img_pad_dimensions - boolean flag to determine if dimension data and
125
 
        offset data should be padded to the next even number of dimensions.
126
 
        For example, this will insert an empty "height" field after the
127
 
        "width" field in the protocol for TexImage1D.
128
 
     marshal - One of "sync", "async", or "custom", defaulting to
129
 
        async unless one of the arguments is something we know we can't
130
 
        codegen for.  If "sync", we finish any queued glthread work and call
131
 
        the Mesa implementation directly.  If "async", we queue the function
132
 
        call to be performed by glthread.  If "custom", the prototype will be
133
 
        generated but a custom implementation will be present in marshal.c.
134
 
     marshal_sync - an expression that, if it evaluates true, causes glthread
135
 
        to sync and execute the call directly.
136
 
     marshal_count - same as count, but variable_param is ignored. Used by
137
 
        glthread.
138
 
     marshal_call_before - insert the string at the beginning of the marshal
139
 
        function
140
 
     marshal_call_after - insert the string at the end of the marshal function
141
 
 
142
 
glx:
143
 
     rop - Opcode value for "render" commands
144
 
     sop - Opcode value for "single" commands
145
 
     vendorpriv - Opcode value for vendor private (or vendor private with
146
 
         reply) commands
147
 
     large - set to "true" of the render command can use RenderLarge protocol.
148
 
     doubles_in_order - older commands always put GLdouble data at the
149
 
         start of the render packet.  Newer commands (e.g., 
150
 
         ProgramEnvParameter4dvARB) put the in the order that they appear
151
 
         in the parameter list.
152
 
     always_array - some single commands take reply data as an array or as
153
 
         return value data (e.g., glGetLightfv).  Other single commands take
154
 
         reply data only as an array (e.g., glGetClipPlane).
155
 
     handcode - some functions are just too complicated to generate 
156
 
         (e.g., glSeperableFilter2D) or operate only on client-side data
157
 
         (e.g., glVertexPointer) and must be handcoded.
158
 
     ignore - some functions have an entry in the dispatch table, but aren't
159
 
         suitable for protocol implementation (e.g., glLockArraysEXT).  This
160
 
         also applies to functions that don't have any GLX protocol specified
161
 
         (e.g., glGetFogFuncSGIS).
162
 
-->