53c926737db35872dd187f5d7652647db13fc192
[free-sw/xcb/proto] / src / glx.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright (C) 2005 Jeremy Kolb.
4 All Rights Reserved.
5
6 Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in all
14 copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
23 Except as contained in this notice, the names of the authors or their
24 institutions shall not be used in advertising or otherwise to promote the
25 sale, use or other dealings in this Software without prior written
26 authorization from the authors.
27 -->
28
29 <!--
30 Note that on X.org servers before 6.9 (and probably others as well) the length
31 field in the reply is computed incorrectly for GetFBConfigs and
32 VendorPrivateWithReply vendor_code 0x10004 (GetFBConfigsSGIX). For these
33 requests the reply structure begins:
34         <pad bytes="1" />
35         <field type="CARD32" name="numVisuals" />
36         <field type="CARD32" name="numProps" />
37 The correct value for the length field is
38         numVisuals * numProps * 2
39 but on broken servers the "* 2" was missing. A workaround that is correct for
40 all implementations is to rewrite the length field on receipt on the client
41 side, using the expression above.
42
43 The patch that fixed this server bug in X.org CVS is here:
44         http://cvs.freedesktop.org/xorg/xserver/xorg/GL/glx/glxcmds.c?r1=1.6&r2=1.7
45 -->
46
47 <xcb header="glx" extension-xname="GLX" extension-name="Glx"
48     major-version="1" minor-version="3">
49         <!-- target support: 1.3 -->
50
51         <import>xproto</import>
52
53         <xidtype name="PIXMAP" />
54         <xidtype name="CONTEXT" />
55         <xidtype name="PBUFFER" />
56         <xidtype name="WINDOW" />
57         <xidtype name="FBCONFIG" />
58
59         <xidunion name="DRAWABLE">
60             <type>xproto:WINDOW</type>
61             <type>PBUFFER</type>
62             <type>glx:PIXMAP</type>
63             <type>glx:WINDOW</type>
64         </xidunion>
65
66         <typedef oldname="float" newname="FLOAT32" />
67         <typedef oldname="double" newname="FLOAT64" />
68         <typedef oldname="CARD32" newname="BOOL32" />
69         <typedef oldname="CARD32" newname="CONTEXT_TAG" />
70             
71         <!-- Errors -->
72         <error name="Generic" number="-1"> <!-- FIXME: fake number -->
73                 <field type="CARD32" name="bad_value" />
74                 <field type="CARD16" name="minor_opcode" />
75                 <field type="CARD8" name="major_opcode" />
76                 <pad bytes="21" />
77         </error>
78
79         <errorcopy name="BadContext" number="0" ref="Generic" />
80         <errorcopy name="BadContextState" number="1" ref="Generic" />
81         <errorcopy name="BadDrawable" number="2" ref="Generic" />
82         <errorcopy name="BadPixmap" number="3" ref="Generic" />
83         <errorcopy name="BadContextTag" number="4" ref="Generic" />
84         <errorcopy name="BadCurrentWindow" number="5" ref="Generic" />
85         <errorcopy name="BadRenderRequest" number="6" ref="Generic" />
86         <errorcopy name="BadLargeRequest" number="7" ref="Generic" />
87         <errorcopy name="UnsupportedPrivateRequest" number="8" ref="Generic" />
88         <errorcopy name="BadFBConfig" number="9" ref="Generic" />
89         <errorcopy name="BadPbuffer" number="10" ref="Generic" />
90         <errorcopy name="BadCurrentDrawable" number="11" ref="Generic" />
91         <errorcopy name="BadWindow" number="12" ref="Generic" />
92         <errorcopy name="GLXBadProfileARB" number="13" ref="Generic" />
93
94         <!-- Events -->
95         <event name="PbufferClobber" number="0">
96                 <pad bytes="1" />
97                 <field type="CARD16" name="event_type" />
98                 <field type="CARD16" name="draw_type" />
99                 <field type="glx:DRAWABLE" name="drawable" />
100                 <field type="CARD32" name="b_mask" />
101                 <field type="CARD16" name="aux_buffer" />
102                 <field type="CARD16" name="x" />
103                 <field type="CARD16" name="y" />
104                 <field type="CARD16" name="width" />
105                 <field type="CARD16" name="height" />
106                 <field type="CARD16" name="count" />
107                 <pad bytes="4" />
108         </event>
109
110         <!-- enums for PbufferClobber event/draw type -->
111         <enum name="PBCET">
112                 <item name="Damaged">
113                         <value>32791</value>
114                 </item>
115                 <item name="Saved">
116                         <value>32792</value>
117                 </item>
118         </enum>
119
120         <enum name="PBCDT">
121                 <item name="Window">
122                         <value>32793</value>
123                 </item>
124                 <item name="Pbuffer">
125                         <value>32794</value>
126                 </item>
127         </enum>
128
129         <!-- Requests -->
130         <request name="Render" opcode="1" combine-adjacent="true">
131                 <field type="CONTEXT_TAG" name="context_tag" />
132                 <list type="BYTE" name="data" />
133         </request>
134
135         <request name="RenderLarge" opcode="2">
136                 <field type="CONTEXT_TAG" name="context_tag" />
137                 <field type="CARD16" name="request_num" />
138                 <field type="CARD16" name="request_total" />
139                 <field type="CARD32" name="data_len" />
140                 <list type="BYTE" name="data">
141                     <fieldref>data_len</fieldref>
142                 </list>
143         </request>
144
145         <request name="CreateContext" opcode="3">
146                 <field type="glx:CONTEXT" name="context" />
147                 <field type="VISUALID" name="visual" />
148                 <field type="CARD32" name="screen" />
149                 <field type="glx:CONTEXT" name="share_list" />
150                 <field type="BOOL" name="is_direct" />
151                 <pad bytes="3" />
152         </request>
153
154         <request name="DestroyContext" opcode="4">
155                 <field type="glx:CONTEXT" name="context" />
156         </request>
157
158         <request name="MakeCurrent" opcode="5">
159                 <field type="glx:DRAWABLE" name="drawable" />
160                 <field type="glx:CONTEXT" name="context" />
161                 <field type="CONTEXT_TAG" name="old_context_tag" />
162                 <reply>
163                         <pad bytes="1" />
164                         <field type="CONTEXT_TAG" name="context_tag" />
165                         <pad bytes="20" />
166                 </reply>
167         </request>
168
169         <request name="IsDirect" opcode="6">
170                 <field type="glx:CONTEXT" name="context" />
171                 <reply>
172                         <pad bytes="1" />
173                         <field type="BOOL" name="is_direct" />
174                         <pad bytes="23" />
175                 </reply>
176         </request>
177
178         <request name="QueryVersion" opcode="7">
179                 <field type="CARD32" name="major_version" />
180                 <field type="CARD32" name="minor_version" />
181                 <reply>
182                         <pad bytes="1" />
183                         <field type="CARD32" name="major_version" />
184                         <field type="CARD32" name="minor_version" />
185                         <pad bytes="16" />
186                 </reply>
187         </request>
188
189         <request name="WaitGL" opcode="8">
190                 <field type="CONTEXT_TAG" name="context_tag" />
191         </request>
192
193         <request name="WaitX" opcode="9">
194                 <field type="CONTEXT_TAG" name="context_tag" />
195         </request>
196
197         <request name="CopyContext" opcode="10">
198                 <field type="glx:CONTEXT" name="src" />
199                 <field type="glx:CONTEXT" name="dest" />
200                 <field type="CARD32" name="mask" />
201                 <field type="CONTEXT_TAG" name="src_context_tag" />
202         </request>
203
204         <!-- Enum for CopyContext: mask -->
205         <enum name="GC">
206                 <item name="GL_CURRENT_BIT"><bit>0</bit></item>
207                 <item name="GL_POINT_BIT"><bit>1</bit></item>
208                 <item name="GL_LINE_BIT"><bit>2</bit></item>
209                 <item name="GL_POLYGON_BIT"><bit>3</bit></item>
210                 <item name="GL_POLYGON_STIPPLE_BIT"><bit>4</bit></item>
211                 <item name="GL_PIXEL_MODE_BIT"><bit>5</bit></item>
212                 <item name="GL_LIGHTING_BIT"><bit>6</bit></item>
213                 <item name="GL_FOG_BIT"><bit>7</bit></item>
214                 <item name="GL_DEPTH_BUFFER_BIT"><bit>8</bit></item>
215                 <item name="GL_ACCUM_BUFFER_BIT"><bit>9</bit></item>
216                 <item name="GL_STENCIL_BUFFER_BIT"><bit>10</bit></item>
217                 <item name="GL_VIEWPORT_BIT"><bit>11</bit></item>
218                 <item name="GL_TRANSFORM_BIT"><bit>12</bit></item>
219                 <item name="GL_ENABLE_BIT"><bit>13</bit></item>
220                 <item name="GL_COLOR_BUFFER_BIT"><bit>14</bit></item>
221                 <item name="GL_HINT_BIT"><bit>15</bit></item>
222                 <item name="GL_EVAL_BIT"><bit>16</bit></item>
223                 <item name="GL_LIST_BIT"><bit>17</bit></item>
224                 <item name="GL_TEXTURE_BIT"><bit>18</bit></item>
225                 <item name="GL_SCISSOR_BIT"><bit>19</bit></item>
226                 <item name="GL_ALL_ATTRIB_BITS"><value>16777215<!--0x000ffffff--></value></item>
227         </enum>
228
229         <request name="SwapBuffers" opcode="11">
230                 <field type="CONTEXT_TAG" name="context_tag" />
231                 <field type="glx:DRAWABLE" name="drawable" />
232         </request>
233
234         <request name="UseXFont" opcode="12">
235                 <field type="CONTEXT_TAG" name="context_tag" />
236                 <field type="FONT" name="font" />
237                 <field type="CARD32" name="first" />
238                 <field type="CARD32" name="count" />
239                 <field type="CARD32" name="list_base" />
240         </request>
241
242         <request name="CreateGLXPixmap" opcode="13">
243                 <field type="CARD32" name="screen" />
244                 <field type="VISUALID" name="visual" />
245                 <field type="xproto:PIXMAP" name="pixmap" />
246                 <field type="glx:PIXMAP" name="glx_pixmap" />
247         </request>
248
249         
250         <request name="GetVisualConfigs" opcode="14">
251                 <field type="CARD32" name="screen" />
252                 <reply>
253                         <pad bytes="1" />
254                         <field type="CARD32" name="num_visuals" />
255                         <field type="CARD32" name="num_properties" />
256                         <pad bytes="16" />
257                         <list type="CARD32" name="property_list">
258                                 <fieldref>length</fieldref>
259                         </list>
260                 </reply>
261         </request>
262
263         <request name="DestroyGLXPixmap" opcode="15">
264                 <field type="glx:PIXMAP" name="glx_pixmap" />
265         </request>
266
267         <!--
268         Context tag is not in the proto, should be part of the list of bytes
269         but every VendorPrivate and VendorPrivateWithReply request uses them
270         so it is safe to put them in.  That's how Mesa does it.
271         -->
272         <request name="VendorPrivate" opcode="16">
273                 <field type="CARD32" name="vendor_code" />
274                 <field type="CONTEXT_TAG" name="context_tag" />
275                 <list type="BYTE" name="data" />
276         </request>
277
278         <request name="VendorPrivateWithReply" opcode="17">
279                 <field type="CARD32" name="vendor_code" />
280                 <field type="CONTEXT_TAG" name="context_tag" />
281                 <list type="BYTE" name="data" />
282                 <reply>
283                         <pad bytes="1" />
284                         <field type="CARD32" name="retval" />
285                         <list type="BYTE" name="data1">
286                                 <value>24</value>
287                         </list>
288                         <list type="BYTE" name="data2">
289                                 <op op="*">
290                                         <fieldref>length</fieldref>
291                                         <value>4</value>
292                                 </op>
293                         </list>
294                 </reply>
295         </request>
296
297         <request name="QueryExtensionsString" opcode="18">
298                 <field type="CARD32" name="screen" />
299                 <reply>
300                         <pad bytes="1" />
301                         <pad bytes="4" />
302                         <field type="CARD32" name="n" />
303                         <pad bytes="16" />
304                 </reply>
305         </request>
306
307         <request name="QueryServerString" opcode="19">
308                 <field type="CARD32" name="screen" />
309                 <field type="CARD32" name="name" />
310                 <reply>
311                         <pad bytes="1" />
312                         <pad bytes="4" />
313                         <field type="CARD32" name="str_len" />
314                         <pad bytes="16" />
315                         <list type="char" name="string">
316                                 <fieldref>str_len</fieldref>
317                         </list>
318                 </reply>
319         </request>
320
321         <request name="ClientInfo" opcode="20">
322                 <field type="CARD32" name="major_version" />
323                 <field type="CARD32" name="minor_version" />
324                 <field type="CARD32" name="str_len" />
325                 <list type="char" name="string">
326                         <fieldref>str_len</fieldref>
327                 </list>
328         </request>
329
330         <!-- Start of GLX 1.3 Requests -->
331
332         <request name="GetFBConfigs" opcode="21">
333                 <field type="CARD32" name="screen" />
334                 <reply>
335                         <pad bytes="1" />
336                         <field type="CARD32" name="num_FB_configs" />
337                         <field type="CARD32" name="num_properties" />
338                         <pad bytes="16" />
339                         <!--
340                         <valueparam value-mask-type="CARD32"
341                                 value-mask-name="value_mask"
342                                 value-list-name="value_list" />
343                             -->
344                         <list type="CARD32" name="property_list">
345                                 <fieldref>length</fieldref>
346                         </list>
347                 </reply>
348         </request>
349
350         <request name="CreatePixmap" opcode="22">
351                 <field type="CARD32" name="screen" />
352                 <field type="FBCONFIG" name="fbconfig" />
353                 <field type="xproto:PIXMAP" name="pixmap" />
354                 <field type="glx:PIXMAP" name="glx_pixmap" />
355                 <field type="CARD32" name="num_attribs" />  
356                 <list type="CARD32" name="attribs">
357                         <op op="*">
358                                 <fieldref>num_attribs</fieldref>
359                                 <value>2</value>
360                         </op>
361                 </list>
362         </request>
363
364         <request name="DestroyPixmap" opcode="23">
365                 <field type="glx:PIXMAP" name="glx_pixmap" />
366         </request>
367
368         <request name="CreateNewContext" opcode="24">
369                 <field type="glx:CONTEXT" name="context" />
370                 <field type="FBCONFIG" name="fbconfig" />
371                 <field type="CARD32" name="screen" />
372                 <field type="CARD32" name="render_type" />
373                 <field type="glx:CONTEXT" name="share_list" />
374                 <field type="BOOL" name="is_direct" />
375                 <pad bytes="3" />
376         </request>
377
378         <request name="QueryContext" opcode="25">
379                 <field type="glx:CONTEXT" name="context" />
380                 <reply>
381                         <pad bytes="1" />
382                         <field type="CARD32" name="num_attribs"/>
383                         <pad bytes="20" />
384                         <list type="CARD32" name="attribs">
385                                 <op op="*">
386                                         <fieldref>num_attribs</fieldref>
387                                         <value>2</value>
388                                 </op>
389                         </list>
390                 </reply>
391         </request>
392
393         <request name="MakeContextCurrent" opcode="26">
394                 <field type="CONTEXT_TAG" name="old_context_tag" />
395                 <field type="glx:DRAWABLE" name="drawable" />
396                 <field type="glx:DRAWABLE" name="read_drawable" />
397                 <field type="glx:CONTEXT" name="context" />
398                 <reply>
399                         <pad bytes="1" />
400                         <field type="CONTEXT_TAG" name="context_tag" />
401                         <pad bytes="20" />
402                 </reply>
403         </request>
404
405         <request name="CreatePbuffer" opcode="27">
406                 <field type="CARD32" name="screen" />
407                 <field type="FBCONFIG" name="fbconfig" />
408                 <field type="PBUFFER" name="pbuffer" />
409                 <field type="CARD32" name="num_attribs" />
410                 <list type="CARD32" name="attribs">
411                         <op op="*">
412                                 <fieldref>num_attribs</fieldref>
413                                 <value>2</value>
414                         </op>
415                 </list>
416         </request>
417
418         <request name="DestroyPbuffer" opcode="28">
419                 <field type="PBUFFER" name="pbuffer" />
420         </request>
421
422         <request name="GetDrawableAttributes" opcode="29">
423                 <field type="glx:DRAWABLE" name="drawable" />
424                 <reply>
425                         <pad bytes="1" />
426                         <field type="CARD32" name="num_attribs" />
427                         <pad bytes="20" />
428                         <list type="CARD32" name="attribs">
429                                 <op op="*">
430                                         <fieldref>num_attribs</fieldref>
431                                         <value>2</value>
432                                 </op>
433                         </list>
434                 </reply>
435         </request>
436
437         <request name="ChangeDrawableAttributes" opcode="30">
438                 <field type="glx:DRAWABLE" name="drawable" />
439                 <field type="CARD32" name="num_attribs" />
440                 <list type="CARD32" name="attribs">
441                         <op op="*">
442                                 <fieldref>num_attribs</fieldref>
443                                 <value>2</value>
444                         </op>
445                 </list>
446         </request>
447
448         <request name="CreateWindow" opcode="31">
449                 <field type="CARD32" name="screen" />
450                 <field type="FBCONFIG" name="fbconfig" />
451                 <field type="xproto:WINDOW" name="window" />
452                 <field type="glx:WINDOW" name="glx_window" />
453                 <field type="CARD32" name="num_attribs" />
454                 <list type="CARD32" name="attribs">
455                         <op op="*">
456                                 <fieldref>num_attribs</fieldref>
457                                 <value>2</value>
458                         </op>
459                 </list>
460         </request>
461
462         <request name="DeleteWindow" opcode="32">
463                 <field type="glx:WINDOW" name="glxwindow" />
464         </request>
465
466         <!-- Start of GLX_ARB_create_context and GLX_ARB_create_context_profile
467              requests. -->
468         <request name="SetClientInfoARB" opcode="33">
469                 <field type="CARD32" name="major_version" />
470                 <field type="CARD32" name="minor_version" />
471                 <field type="CARD32" name="num_versions" />
472                 <field type="CARD32" name="gl_str_len" />
473                 <field type="CARD32" name="glx_str_len" />
474                 <list type="CARD32" name="gl_versions">
475                         <op op="*">
476                                 <fieldref>num_versions</fieldref>
477                                 <value>2</value>
478                         </op>
479                 </list>
480                 <list type="char" name="gl_extension_string">
481                         <fieldref>gl_str_len</fieldref>
482                 </list>
483                 <list type="char" name="glx_extension_string">
484                         <fieldref>glx_str_len</fieldref>
485                 </list>
486         </request>
487
488         <request name="CreateContextAttribsARB" opcode="34">
489                 <field type="glx:CONTEXT" name="context" />
490                 <field type="FBCONFIG" name="fbconfig" />
491                 <field type="CARD32" name="screen" />
492                 <field type="glx:CONTEXT" name="share_list" />
493                 <field type="BOOL" name="is_direct" />
494                 <pad bytes="3" />
495                 <field type="CARD32" name="num_attribs" />
496                 <list type="CARD32" name="attribs">
497                         <op op="*">
498                                 <fieldref>num_attribs</fieldref>
499                                 <value>2</value>
500                         </op>
501                 </list>
502         </request>
503
504         <request name="SetClientInfo2ARB" opcode="35">
505                 <field type="CARD32" name="major_version" />
506                 <field type="CARD32" name="minor_version" />
507                 <field type="CARD32" name="num_versions" />
508                 <field type="CARD32" name="gl_str_len" />
509                 <field type="CARD32" name="glx_str_len" />
510                 <list type="CARD32" name="gl_versions">
511                         <op op="*">
512                                 <fieldref>num_versions</fieldref>
513                                 <value>3</value>
514                         </op>
515                 </list>
516                 <list type="char" name="gl_extension_string">
517                         <fieldref>gl_str_len</fieldref>
518                 </list>
519                 <list type="char" name="glx_extension_string">
520                         <fieldref>glx_str_len</fieldref>
521                 </list>
522         </request>
523
524         <!-- Requests for GL Non-rendering Commands (single ops) -->
525
526         <request name="NewList" opcode="101">
527                 <field type="CONTEXT_TAG" name="context_tag" />
528                 <field type="CARD32" name="list" />
529                 <field type="CARD32" name="mode" />
530         </request>
531
532         <request name="EndList" opcode="102">
533                 <field type="CONTEXT_TAG" name="context_tag" />
534         </request>
535
536         <request name="DeleteLists" opcode="103">
537                 <field type="CONTEXT_TAG" name="context_tag" />
538                 <field type="CARD32" name="list" />
539                 <field type="INT32" name="range" />
540         </request>
541
542         <request name="GenLists" opcode="104">
543                 <field type="CONTEXT_TAG" name="context_tag" />
544                 <field type="INT32" name="range" />
545                 <reply>
546                         <pad bytes="1" />
547                         <field type="CARD32" name="ret_val" />
548                 </reply>
549         </request>
550
551         <request name="FeedbackBuffer" opcode="105">
552                 <field type="CONTEXT_TAG" name="context_tag" />
553                 <field type="INT32" name="size" />
554                 <field type="INT32" name="type" />
555         </request>
556
557         <request name="SelectBuffer" opcode="106">
558                 <field type="CONTEXT_TAG" name="context_tag" />
559                 <field type="INT32" name="size" />
560                 <!-- the reply is actually returned in the data
561                 of the next RenderMode request -->
562         </request>
563
564
565         <request name="RenderMode" opcode="107">
566                 <field type="CONTEXT_TAG" name="context_tag" />
567                 <field type="CARD32" name="mode" />
568                 <!--
569                 This reply is only if RM was previously feedback/selection.
570                 If it was in feedback mode then data is FLOAT32.
571                 If previously in render mode there is no reply.
572                 -->
573                 <reply>
574                         <pad bytes="1" />
575                         <field type="CARD32" name="ret_val" />
576                         <field type="CARD32" name="n" />
577                         <field type="CARD32" name="new_mode" />
578                         <pad bytes="12" />
579                         <list type="CARD32" name="data">
580                                 <fieldref>n</fieldref>
581                         </list>
582                 </reply>
583         </request>
584
585         <enum name="RM">
586                 <item name="GL_RENDER"><value>7168</value></item>
587                 <item name="GL_FEEDBACK"><value>7169</value></item>
588                 <item name="GL_SELECT"><value>7170</value></item>
589         </enum>
590
591         <request name="Finish" opcode="108">
592                 <field type="CONTEXT_TAG" name="context_tag" />
593                 <reply>
594                         <pad bytes="1" />
595                 </reply>
596         </request>
597
598         <request name="PixelStoref" opcode="109">
599                 <field type="CONTEXT_TAG" name="context_tag" />
600                 <field type="CARD32" name="pname" />
601                 <field type="FLOAT32" name="datum" />
602         </request>
603
604         <request name="PixelStorei" opcode="110">
605                 <field type="CONTEXT_TAG" name="context_tag" />
606                 <field type="CARD32" name="pname" />
607                 <field type="INT32" name="datum" />
608         </request>
609
610         <request name="ReadPixels" opcode="111">
611                 <field type="CONTEXT_TAG" name="context_tag" />
612                 <field type="INT32" name="x" />
613                 <field type="INT32" name="y" />
614                 <field type="INT32" name="width" />
615                 <field type="INT32" name="height" />
616                 <field type="CARD32" name="format" />
617                 <field type="CARD32" name="type" />
618                 <field type="BOOL" name="swap_bytes" />
619                 <field type="BOOL" name="lsb_first" />
620                 <reply>
621                         <pad bytes="1" />
622                         <pad bytes="24" />
623                         <list type="BYTE" name="data">
624                                 <op op="*">
625                                         <fieldref>length</fieldref>
626                                         <value>4</value>
627                                 </op>
628                         </list>
629                 </reply>
630         </request>
631                 
632         <!-- FIXME:
633         All the Get* functions can return different stuff for replies.
634         Hopefully xcb will support multiple reply structures at some point
635         but for now... grrrr
636         Starts on page 58/180
637         -->
638         <request name="GetBooleanv" opcode="112">
639                 <field type="CONTEXT_TAG" name="context_tag" />
640                 <field type="INT32" name="pname" />
641                 <reply>
642                         <pad bytes="1" />
643                         <pad bytes="4" />
644                         <field type="CARD32" name="n" />
645                         <field type="BOOL" name="datum" />
646                         <pad bytes="15" />
647                         <list type="BOOL" name="data">
648                                 <fieldref>n</fieldref>
649                         </list>
650                 </reply>
651         </request>
652
653         <request name="GetClipPlane" opcode="113">
654                 <field type="CONTEXT_TAG" name="context_tag" />
655                 <field type="INT32" name="plane" />
656                 <reply>
657                         <pad bytes="1" />
658                         <pad bytes="24" />
659                         <list type="FLOAT64" name="data">
660                                 <op op="/">
661                                         <fieldref>length</fieldref>
662                                         <value>2</value>
663                                 </op>
664                         </list>
665                 </reply>
666         </request>
667
668         <request name="GetDoublev" opcode="114">
669                 <field type="CONTEXT_TAG" name="context_tag" />
670                 <field type="CARD32" name="pname" />
671                 <reply>
672                         <pad bytes="1" />
673                         <pad bytes="4" />
674                         <field type="CARD32" name="n" />
675                         <field type="FLOAT64" name="datum" />
676                         <pad bytes="8" />
677                         <list type="FLOAT64" name="data">
678                                 <fieldref>n</fieldref>
679                         </list>
680                 </reply>
681         </request>
682
683         <request name="GetError" opcode="115">
684                 <field type="CONTEXT_TAG" name="context_tag" />
685                 <reply>
686                         <pad bytes="1" />
687                         <field type="INT32" name="error" />
688                 </reply>
689         </request>
690
691         <request name="GetFloatv" opcode="116">
692                 <field type="CONTEXT_TAG" name="context_tag" />
693                 <field type="CARD32" name="pname" />
694                 <reply>
695                         <pad bytes="1" />
696                         <pad bytes="4" />
697                         <field type="CARD32" name="n" />
698                         <field type="FLOAT32" name="datum" />
699                         <pad bytes="12" />
700                         <list type="FLOAT32" name="data">
701                                 <fieldref>n</fieldref>
702                         </list>
703                 </reply>
704         </request>
705
706         <request name="GetIntegerv" opcode="117">
707                 <field type="CONTEXT_TAG" name="context_tag" />
708                 <field type="CARD32" name="pname" />
709                 <reply>
710                         <pad bytes="1" />
711                         <pad bytes="4" />
712                         <field type="CARD32" name="n" />
713                         <field type="INT32" name="datum" />
714                         <pad bytes="12" />
715                         <list type="INT32" name="data">
716                                 <fieldref>n</fieldref>
717                         </list>
718                 </reply>
719         </request>
720
721         <request name="GetLightfv" opcode="118">
722                 <field type="CONTEXT_TAG" name="context_tag" />
723                 <field type="CARD32" name="light" />
724                 <field type="CARD32" name="pname" />
725                 <reply>
726                         <pad bytes="1" />
727                         <pad bytes="4" />
728                         <field type="CARD32" name="n" />
729                         <field type="FLOAT32" name="datum" />
730                         <pad bytes="12" />
731                         <list type="FLOAT32" name="data">
732                                 <fieldref>n</fieldref>
733                         </list>
734                 </reply>
735         </request>
736
737         <request name="GetLightiv" opcode="119">
738                 <field type="CONTEXT_TAG" name="context_tag" />
739                 <field type="CARD32" name="light" />
740                 <field type="CARD32" name="pname" />
741                 <reply>
742                         <pad bytes="1" />
743                         <pad bytes="4" />
744                         <field type="CARD32" name="n" />
745                         <field type="INT32" name="datum" />
746                         <pad bytes="12" />
747                         <list type="INT32" name="data">
748                                 <fieldref>n</fieldref>
749                         </list>
750                 </reply>
751         </request>
752
753         <request name="GetMapdv" opcode="120">
754                 <field type="CONTEXT_TAG" name="context_tag" />
755                 <field type="CARD32" name="target" />
756                 <field type="CARD32" name="query" />
757                 <reply>
758                         <pad bytes="1" />
759                         <pad bytes="4" />
760                         <field type="CARD32" name="n" />
761                         <field type="FLOAT64" name="datum" />
762                         <pad bytes="8" />
763                         <list type="FLOAT64" name="data">
764                                 <fieldref>n</fieldref>
765                         </list>
766                 </reply>
767         </request>
768
769         <request name="GetMapfv" opcode="121">
770                 <field type="CONTEXT_TAG" name="context_tag" />
771                 <field type="CARD32" name="target" />
772                 <field type="CARD32" name="query" />
773                 <reply>
774                         <pad bytes="1" />
775                         <pad bytes="4" />
776                         <field type="CARD32" name="n" />
777                         <field type="FLOAT32" name="datum" />
778                         <pad bytes="12" />
779                         <list type="FLOAT32" name="data">
780                                 <fieldref>n</fieldref>
781                         </list>
782                 </reply>
783         </request>
784
785         <request name="GetMapiv" opcode="122">
786                 <field type="CONTEXT_TAG" name="context_tag" />
787                 <field type="CARD32" name="target" />
788                 <field type="CARD32" name="query" />
789                 <reply>
790                         <pad bytes="1" />
791                         <pad bytes="4" />
792                         <field type="CARD32" name="n" />
793                         <field type="INT32" name="datum" />
794                         <pad bytes="12" />
795                         <list type="INT32" name="data">
796                                 <fieldref>n</fieldref>
797                         </list>
798                 </reply>
799         </request>
800
801         <request name="GetMaterialfv" opcode="123">
802                 <field type="CONTEXT_TAG" name="context_tag" />
803                 <field type="CARD32" name="face" />
804                 <field type="CARD32" name="pname" />
805                 <reply>
806                         <pad bytes="1" />
807                         <pad bytes="4" />
808                         <field type="CARD32" name="n" />
809                         <field type="FLOAT32" name="datum" />
810                         <pad bytes="12" />
811                         <list type="FLOAT32" name="data">
812                                 <fieldref>n</fieldref>
813                         </list>
814                 </reply>
815         </request>
816
817         <request name="GetMaterialiv" opcode="124">
818                 <field type="CONTEXT_TAG" name="context_tag" />
819                 <field type="CARD32" name="face" />
820                 <field type="CARD32" name="pname" />
821                 <reply>
822                         <pad bytes="1" />
823                         <pad bytes="4" />
824                         <field type="CARD32" name="n" />
825                         <field type="INT32" name="datum" />
826                         <pad bytes="12" />
827                         <list type="INT32" name="data">
828                                 <fieldref>n</fieldref>
829                         </list>
830                 </reply>
831         </request>
832
833         <request name="GetPixelMapfv" opcode="125">
834                 <field type="CONTEXT_TAG" name="context_tag" />
835                 <field type="CARD32" name="map" />
836                 <reply>
837                         <pad bytes="1" />
838                         <pad bytes="4" />
839                         <field type="CARD32" name="n" />
840                         <field type="FLOAT32" name="datum" />
841                         <pad bytes="12" />
842                         <list type="FLOAT32" name="data">
843                                 <fieldref>n</fieldref>
844                         </list>
845                 </reply>
846         </request>
847
848         <request name="GetPixelMapuiv" opcode="126">
849                 <field type="CONTEXT_TAG" name="context_tag" />
850                 <field type="CARD32" name="map" />
851                 <reply>
852                         <pad bytes="1" />
853                         <pad bytes="4" />
854                         <field type="CARD32" name="n" />
855                         <field type="CARD32" name="datum" />
856                         <pad bytes="12" />
857                         <list type="CARD32" name="data">
858                                 <fieldref>n</fieldref>
859                         </list>
860                 </reply>
861         </request>
862
863         <request name="GetPixelMapusv" opcode="127">
864                 <field type="CONTEXT_TAG" name="context_tag" />
865                 <field type="CARD32" name="map" />
866                 <reply>
867                         <pad bytes="1" />
868                         <pad bytes="4" />
869                         <field type="CARD32" name="n" />
870                         <field type="CARD16" name="datum" />
871                         <pad bytes="16" />
872                         <list type="CARD16" name="data">
873                                 <fieldref>n</fieldref>
874                         </list>
875                 </reply>
876         </request>
877
878         <request name="GetPolygonStipple" opcode="128">
879                 <field type="CONTEXT_TAG" name="context_tag" />
880                 <field type="BOOL" name="lsb_first" />
881                 <reply>
882                         <pad bytes="1" />
883                         <pad bytes="24" />
884                         <list type="BYTE" name="data">
885                                 <op op="*">
886                                         <fieldref>length</fieldref>
887                                         <value>4</value>
888                                 </op>
889                         </list>
890                 </reply>
891         </request>
892
893
894         <request name="GetString" opcode="129">
895                 <field type="CONTEXT_TAG" name="context_tag" />
896                 <field type="CARD32" name="name" />
897                 <reply>
898                         <pad bytes="1" />
899                         <pad bytes="4" />
900                         <field type="CARD32" name="n" />
901                         <pad bytes="16" />
902                         <list type="char" name="string">
903                                 <fieldref>n</fieldref>
904                         </list>
905                 </reply>
906         </request>
907
908         <request name="GetTexEnvfv" opcode="130">
909                 <field type="CONTEXT_TAG" name="context_tag" />
910                 <field type="CARD32" name="target" />
911                 <field type="CARD32" name="pname" />
912                 <reply>
913                         <pad bytes="1" />
914                         <pad bytes="4" />
915                         <field type="CARD32" name="n" />
916                         <field type="FLOAT32" name="datum" />
917                         <pad bytes="12" />
918                         <list type="FLOAT32" name="data">
919                                 <fieldref>n</fieldref>
920                         </list>
921                 </reply>
922         </request>
923
924         <request name="GetTexEnviv" opcode="131">
925                 <field type="CONTEXT_TAG" name="context_tag" />
926                 <field type="CARD32" name="target" />
927                 <field type="CARD32" name="pname" />
928                 <reply>
929                         <pad bytes="1" />
930                         <pad bytes="4" />
931                         <field type="CARD32" name="n" />
932                         <field type="INT32" name="datum" />
933                         <pad bytes="12" />
934                         <list type="INT32" name="data">
935                                 <fieldref>n</fieldref>
936                         </list>
937                 </reply>
938         </request>
939
940         <request name="GetTexGendv" opcode="132">
941                 <field type="CONTEXT_TAG" name="context_tag" />
942                 <field type="CARD32" name="coord" />
943                 <field type="CARD32" name="pname" />
944                 <reply>
945                         <pad bytes="1" />
946                         <pad bytes="4" />
947                         <field type="CARD32" name="n" />
948                         <field type="FLOAT64" name="datum" />
949                         <pad bytes="8" />
950                         <list type="FLOAT64" name="data">
951                                 <fieldref>n</fieldref>
952                         </list>
953                 </reply>
954         </request>
955
956         <request name="GetTexGenfv" opcode="133">
957                 <field type="CONTEXT_TAG" name="context_tag" />
958                 <field type="CARD32" name="coord" />
959                 <field type="CARD32" name="pname" />
960                 <reply>
961                         <pad bytes="1" />
962                         <pad bytes="4" />
963                         <field type="CARD32" name="n" />
964                         <field type="FLOAT32" name="datum" />
965                         <pad bytes="12" />
966                         <list type="FLOAT32" name="data">
967                                 <fieldref>n</fieldref>
968                         </list>
969                 </reply>
970         </request>
971
972         <request name="GetTexGeniv" opcode="134">
973                 <field type="CONTEXT_TAG" name="context_tag" />
974                 <field type="CARD32" name="coord" />
975                 <field type="CARD32" name="pname" />
976                 <reply>
977                         <pad bytes="1" />
978                         <pad bytes="4" />
979                         <field type="CARD32" name="n" />
980                         <field type="INT32" name="datum" />
981                         <pad bytes="12" />
982                         <list type="INT32" name="data">
983                                 <fieldref>n</fieldref>
984                         </list>
985                 </reply>
986         </request>
987
988         <request name="GetTexImage" opcode="135">
989                 <field type="CONTEXT_TAG" name="context_tag" />
990                 <field type="CARD32" name="target" />
991                 <field type="INT32" name="level" />
992                 <field type="CARD32" name="format" />
993                 <field type="CARD32" name="type" />
994                 <field type="BOOL" name="swap_bytes" />
995                 <reply>
996                         <pad bytes="1" />
997                         <pad bytes="8" />
998                         <field type="INT32" name="width" />
999                         <field type="INT32" name="height" />
1000                         <field type="INT32" name="depth" />
1001                         <pad bytes="4" />
1002                         <list type="BYTE" name="data">
1003                                 <op op="*">
1004                                         <fieldref>length</fieldref>
1005                                         <value>4</value>
1006                                 </op>
1007                         </list>
1008                 </reply>
1009         </request>
1010             
1011
1012         <request name="GetTexParameterfv" opcode="136">
1013                 <field type="CONTEXT_TAG" name="context_tag" />
1014                 <field type="CARD32" name="target" />
1015                 <field type="CARD32" name="pname" />
1016                 <reply>
1017                         <pad bytes="1" />
1018                         <pad bytes="4" />
1019                         <field type="CARD32" name="n" />
1020                         <field type="FLOAT32" name="datum" />
1021                         <pad bytes="12" />
1022                         <list type="FLOAT32" name="data">
1023                                 <fieldref>n</fieldref>
1024                         </list>
1025                 </reply>
1026         </request>
1027
1028         <request name="GetTexParameteriv" opcode="137">
1029                 <field type="CONTEXT_TAG" name="context_tag" />
1030                 <field type="CARD32" name="target" />
1031                 <field type="CARD32" name="pname" />
1032                 <reply>
1033                         <pad bytes="1" />
1034                         <pad bytes="4" />
1035                         <field type="CARD32" name="n" />
1036                         <field type="INT32" name="datum" />
1037                         <pad bytes="12" />
1038                         <list type="INT32" name="data">
1039                                 <fieldref>n</fieldref>
1040                         </list>
1041                 </reply>
1042         </request>
1043
1044         <request name="GetTexLevelParameterfv" opcode="138">
1045                 <field type="CONTEXT_TAG" name="context_tag" />
1046                 <field type="CARD32" name="target" />
1047                 <field type="INT32" name="level" />
1048                 <field type="CARD32" name="pname" />
1049                 <reply>
1050                         <pad bytes="1" />
1051                         <pad bytes="4" />
1052                         <field type="CARD32" name="n" />
1053                         <field type="FLOAT32" name="datum" />
1054                         <pad bytes="12" />
1055                         <list type="FLOAT32" name="data">
1056                                 <fieldref>n</fieldref>
1057                         </list>
1058                 </reply>
1059         </request>
1060
1061         <request name="GetTexLevelParameteriv" opcode="139">
1062                 <field type="CONTEXT_TAG" name="context_tag" />
1063                 <field type="CARD32" name="target" />
1064                 <field type="INT32" name="level" />
1065                 <field type="CARD32" name="pname" />
1066                 <reply>
1067                         <pad bytes="1" />
1068                         <pad bytes="4" />
1069                         <field type="CARD32" name="n" />
1070                         <field type="INT32" name="datum" />
1071                         <pad bytes="12" />
1072                         <list type="INT32" name="data">
1073                                 <fieldref>n</fieldref>
1074                         </list>
1075                 </reply>
1076         </request>
1077
1078         <request name="IsList" opcode="141" >
1079                 <field type="CONTEXT_TAG" name="context_tag" />
1080                 <field type="CARD32" name="list" />
1081                 <reply>
1082                         <pad bytes="1" />
1083                         <field type="BOOL32" name="ret_val" />
1084                 </reply>
1085         </request>
1086
1087         <request name="Flush" opcode="142">
1088                 <field type="CONTEXT_TAG" name="context_tag" />
1089         </request>
1090
1091         <request name="AreTexturesResident" opcode="143">
1092                 <field type="CONTEXT_TAG" name="context_tag" />
1093                 <field type="INT32" name="n" />
1094                 <list type="CARD32" name="textures">
1095                     <fieldref>n</fieldref>
1096                 </list>
1097                 <reply>
1098                         <pad bytes="1" />
1099                         <field type="BOOL32" name="ret_val" />
1100                         <pad bytes="20" />
1101                         <list type="BOOL" name="data">
1102                                 <op op="*">
1103                                         <fieldref>length</fieldref>
1104                                         <value>4</value>
1105                                 </op>
1106                         </list>
1107                 </reply>
1108         </request>
1109
1110         <request name="DeleteTextures" opcode="144">
1111                 <field type="CONTEXT_TAG" name="context_tag" />
1112                 <field type="INT32" name="n" />
1113                 <list type="CARD32" name="textures">
1114                         <fieldref>n</fieldref>
1115                 </list>
1116         </request>
1117
1118         <request name="GenTextures" opcode="145">
1119                 <field type="CONTEXT_TAG" name="context_tag" />
1120                 <field type="INT32" name="n" />
1121                 <reply>
1122                         <pad bytes="1" />
1123                         <pad bytes="24" />
1124                         <list type="CARD32" name="data">
1125                                 <fieldref>length</fieldref>
1126                         </list>
1127                 </reply>
1128         </request>
1129
1130         <request name="IsTexture" opcode="146">
1131                 <field type="CONTEXT_TAG" name="context_tag" />
1132                 <field type="CARD32" name="texture" />
1133                 <reply>
1134                         <pad bytes="1" />
1135                         <field type="BOOL32" name="ret_val" />
1136                 </reply>
1137         </request>
1138
1139         <request name="GetColorTable" opcode="147">
1140                 <field type="CONTEXT_TAG" name="context_tag" />
1141                 <field type="CARD32" name="target" />
1142                 <field type="CARD32" name="format" />
1143                 <field type="CARD32" name="type" />
1144                 <field type="BOOL" name="swap_bytes" />
1145                 <reply>
1146                         <pad bytes="1" />
1147                         <pad bytes="8" />
1148                         <field type="INT32" name="width" />
1149                         <pad bytes="12" />
1150                         <list type="BYTE" name="data">
1151                                 <op op="*">
1152                                         <fieldref>length</fieldref>
1153                                         <value>4</value>
1154                                 </op>
1155                         </list>
1156                 </reply>
1157         </request>
1158         
1159         <request name="GetColorTableParameterfv" opcode="148">
1160                 <field type="CONTEXT_TAG" name="context_tag" />
1161                 <field type="CARD32" name="target" />
1162                 <field type="CARD32" name="pname" />
1163                 <reply>
1164                         <pad bytes="1" />
1165                         <pad bytes="4" />
1166                         <field type="CARD32" name="n" />
1167                         <field type="FLOAT32" name="datum" />
1168                         <pad bytes="12" />
1169                         <list type="FLOAT32" name="data">
1170                                 <fieldref>n</fieldref>
1171                         </list>
1172                 </reply>
1173         </request>
1174
1175         <request name="GetColorTableParameteriv" opcode="149">
1176                 <field type="CONTEXT_TAG" name="context_tag" />
1177                 <field type="CARD32" name="target" />
1178                 <field type="CARD32" name="pname" />
1179                 <reply>
1180                         <pad bytes="1" />
1181                         <pad bytes="4" />
1182                         <field type="CARD32" name="n" />
1183                         <field type="INT32" name="datum" />
1184                         <pad bytes="12" />
1185                         <list type="INT32" name="data">
1186                                 <fieldref>n</fieldref>
1187                         </list>
1188                 </reply>
1189         </request>
1190
1191         <request name="GetConvolutionFilter" opcode="150">
1192                 <field type="CONTEXT_TAG" name="context_tag" />
1193                 <field type="CARD32" name="target" />
1194                 <field type="CARD32" name="format" />
1195                 <field type="CARD32" name="type" />
1196                 <field type="BOOL" name="swap_bytes" />
1197                 <reply>
1198                         <pad bytes="1" />
1199                         <pad bytes="8" />
1200                         <field type="INT32" name="width" />
1201                         <field type="INT32" name="height" />
1202                         <pad bytes="8" />
1203                         <list type="BYTE" name="data">
1204                                 <op op="*">
1205                                         <fieldref>length</fieldref>
1206                                         <value>4</value>
1207                                 </op>
1208                         </list>
1209                 </reply>
1210         </request>
1211
1212
1213         <request name="GetConvolutionParameterfv" opcode="151">
1214                 <field type="CONTEXT_TAG" name="context_tag" />
1215                 <field type="CARD32" name="target" />
1216                 <field type="CARD32" name="pname" />
1217                 <reply>
1218                         <pad bytes="1" />
1219                         <pad bytes="4" />
1220                         <field type="CARD32" name="n" />
1221                         <field type="FLOAT32" name="datum" />
1222                         <pad bytes="12" />
1223                         <list type="FLOAT32" name="data">
1224                                 <fieldref>n</fieldref>
1225                         </list>
1226                 </reply>
1227         </request>
1228
1229         <request name="GetConvolutionParameteriv" opcode="152">
1230                 <field type="CONTEXT_TAG" name="context_tag" />
1231                 <field type="CARD32" name="target" />
1232                 <field type="CARD32" name="pname" />
1233                 <reply>
1234                         <pad bytes="1" />
1235                         <pad bytes="4" />
1236                         <field type="CARD32" name="n" />
1237                         <field type="INT32" name="datum" />
1238                         <pad bytes="12" />
1239                         <list type="INT32" name="data">
1240                                 <fieldref>n</fieldref>
1241                         </list>
1242                 </reply>
1243         </request>
1244
1245         <request name="GetSeparableFilter" opcode="153">
1246                 <field type="CONTEXT_TAG" name="context_tag" />
1247                 <field type="CARD32" name="target" />
1248                 <field type="CARD32" name="format" />
1249                 <field type="CARD32" name="type" />
1250                 <field type="BOOL" name="swap_bytes" />
1251                 <reply>
1252                         <pad bytes="1" />
1253                         <pad bytes="8" />
1254                         <field type="INT32" name="row_w" />
1255                         <field type="INT32" name="col_h" />
1256                         <pad bytes="8" />
1257                         <list type="BYTE" name="rows_and_cols">
1258                                 <op op="*">
1259                                         <fieldref>length</fieldref>
1260                                         <value>4</value>
1261                                 </op>
1262                         </list>
1263                 </reply>
1264         </request>
1265
1266         <request name="GetHistogram" opcode="154">
1267                 <field type="CONTEXT_TAG" name="context_tag" />
1268                 <field type="CARD32" name="target" />
1269                 <field type="CARD32" name="format" />
1270                 <field type="CARD32" name="type" />
1271                 <field type="BOOL" name="swap_bytes" />
1272                 <field type="BOOL" name="reset" />
1273                 <reply>
1274                         <pad bytes="1" />
1275                         <pad bytes="8" />
1276                         <field type="INT32" name="width" />
1277                         <pad bytes="12" />
1278                         <list type="BYTE" name="data">
1279                                 <op op="*">
1280                                         <fieldref>length</fieldref>
1281                                         <value>4</value>
1282                                 </op>
1283                         </list>
1284                 </reply>
1285         </request>
1286
1287
1288         <request name="GetHistogramParameterfv" opcode="155">
1289                 <field type="CONTEXT_TAG" name="context_tag" />
1290                 <field type="CARD32" name="target" />
1291                 <field type="CARD32" name="pname" />
1292                 <reply>
1293                         <pad bytes="1" />
1294                         <pad bytes="4" />
1295                         <field type="CARD32" name="n" />
1296                         <field type="FLOAT32" name="datum" />
1297                         <pad bytes="12" />
1298                         <list type="FLOAT32" name="data">
1299                                 <fieldref>n</fieldref>
1300                         </list>
1301                 </reply>
1302         </request>
1303
1304         <request name="GetHistogramParameteriv" opcode="156">
1305                 <field type="CONTEXT_TAG" name="context_tag" />
1306                 <field type="CARD32" name="target" />
1307                 <field type="CARD32" name="pname" />
1308                 <reply>
1309                         <pad bytes="1" />
1310                         <pad bytes="4" />
1311                         <field type="CARD32" name="n" />
1312                         <field type="INT32" name="datum" />
1313                         <pad bytes="12" />
1314                         <list type="INT32" name="data">
1315                                 <fieldref>n</fieldref>
1316                         </list>
1317                 </reply>
1318         </request>
1319
1320         <request name="GetMinmax" opcode="157">
1321                 <field type="CONTEXT_TAG" name="context_tag" />
1322                 <field type="CARD32" name="target" />
1323                 <field type="CARD32" name="format" />
1324                 <field type="CARD32" name="type" />
1325                 <field type="BOOL" name="swap_bytes" />
1326                 <field type="BOOL" name="reset" />
1327                 <reply>
1328                         <pad bytes="1" />
1329                         <pad bytes="24" />
1330                         <list type="BYTE" name="data">
1331                                 <op op="*">
1332                                         <fieldref>length</fieldref>
1333                                         <value>4</value>
1334                                 </op>
1335                         </list>
1336                 </reply>
1337         </request>
1338
1339         <request name="GetMinmaxParameterfv" opcode="158">
1340                 <field type="CONTEXT_TAG" name="context_tag" />
1341                 <field type="CARD32" name="target" />
1342                 <field type="CARD32" name="pname" />
1343                 <reply>
1344                         <pad bytes="1" />
1345                         <pad bytes="4" />
1346                         <field type="CARD32" name="n" />
1347                         <field type="FLOAT32" name="datum" />
1348                         <pad bytes="12" />
1349                         <list type="FLOAT32" name="data">
1350                                 <fieldref>n</fieldref>
1351                         </list>
1352                 </reply>
1353         </request>
1354
1355         <request name="GetMinmaxParameteriv" opcode="159">
1356                 <field type="CONTEXT_TAG" name="context_tag" />
1357                 <field type="CARD32" name="target" />
1358                 <field type="CARD32" name="pname" />
1359                 <reply>
1360                         <pad bytes="1" />
1361                         <pad bytes="4" />
1362                         <field type="CARD32" name="n" />
1363                         <field type="INT32" name="datum" />
1364                         <pad bytes="12" />
1365                         <list type="INT32" name="data">
1366                                 <fieldref>n</fieldref>
1367                         </list>
1368                 </reply>
1369         </request>
1370
1371         <!--
1372         GLX Extensions
1373         
1374         * XXX: So far only define non-rendering commands.
1375         * Only those extensions that affect the GLX wire protocol are listed.
1376         -->
1377
1378         <!--
1379         GL_ARB_texture_compression
1380         http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_compression.txt
1381         -->
1382         <request name="GetCompressedTexImageARB" opcode="160">
1383                 <field type="CONTEXT_TAG" name="context_tag" />
1384                 <field type="CARD32" name="target" />
1385                 <field type="INT32" name="level" />
1386                 <reply>
1387                         <pad bytes="1" />
1388                         <pad bytes="8" />
1389                         <field type="INT32" name="size" />
1390                         <pad bytes="12" />
1391                         <list type="BYTE" name="data">
1392                                 <op op="*">
1393                                         <fieldref>length</fieldref>
1394                                         <value>4</value>
1395                                 </op>
1396                         </list>
1397                 </reply>
1398         </request>
1399
1400         
1401         <!--
1402         GL_ARB_occlusion_query
1403         http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
1404         -->
1405
1406         <request name="DeleteQueriesARB" opcode="161">
1407                 <field type="CONTEXT_TAG" name="context_tag" />
1408                 <field type="INT32" name="n" />
1409                 <list type="CARD32" name="ids">
1410                         <fieldref>n</fieldref>
1411                 </list>
1412         </request>
1413
1414         <request name="GenQueriesARB" opcode="162">
1415                 <field type="CONTEXT_TAG" name="context_tag" />
1416                 <field type="INT32" name="n" />
1417                 <reply>
1418                         <pad bytes="1" />
1419                         <pad bytes="24" />
1420                         <list type="CARD32" name="data">
1421                                 <fieldref>length</fieldref>
1422                         </list>
1423                 </reply>
1424         </request>
1425         
1426         <request name="IsQueryARB" opcode="163">
1427                 <field type="CONTEXT_TAG" name="context_tag" />
1428                 <field type="CARD32" name="id" />
1429                 <reply>
1430                         <pad bytes="1" />
1431                         <field type="BOOL32" name="ret_val" />
1432                 </reply>
1433         </request>
1434         
1435         <request name="GetQueryivARB" opcode="164">
1436                 <field type="CONTEXT_TAG" name="context_tag" />
1437                 <field type="CARD32" name="target" />
1438                 <field type="CARD32" name="pname" />
1439                 <reply>
1440                         <pad bytes="1" />
1441                         <pad bytes="4" />
1442                         <field type="CARD32" name="n" />
1443                         <field type="INT32" name="datum" />
1444                         <pad bytes="12" />
1445                         <list type="INT32" name="data">
1446                                 <fieldref>n</fieldref>
1447                         </list>
1448                 </reply>
1449         </request>
1450         
1451         <request name="GetQueryObjectivARB" opcode="165">
1452                 <field type="CONTEXT_TAG" name="context_tag" />
1453                 <field type="CARD32" name="id" />
1454                 <field type="CARD32" name="pname" />
1455                 <reply>
1456                         <pad bytes="1" />
1457                         <pad bytes="4" />
1458                         <field type="CARD32" name="n" />
1459                         <field type="INT32" name="datum" />
1460                         <pad bytes="12" />
1461                         <list type="INT32" name="data">
1462                                 <fieldref>n</fieldref>
1463                         </list>
1464                 </reply>
1465         </request>
1466         
1467         <request name="GetQueryObjectuivARB" opcode="166">
1468                 <field type="CONTEXT_TAG" name="context_tag" />
1469                 <field type="CARD32" name="id" />
1470                 <field type="CARD32" name="pname" />
1471                 <reply>
1472                         <pad bytes="1" />
1473                         <pad bytes="4" />
1474                         <field type="CARD32" name="n" />
1475                         <field type="CARD32" name="datum" />
1476                         <pad bytes="12" />
1477                         <list type="CARD32" name="data">
1478                                 <fieldref>n</fieldref>
1479                         </list>
1480                 </reply>
1481         </request>
1482         
1483         <!--
1484         GL_ARB_vertex_program
1485         http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_program.txt
1486         XXX: Need to write up vops
1487         --> 
1488
1489         <!--
1490         GL_ARB_fragment_program
1491         http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt
1492         XXX: Need to write up vops
1493         -->
1494         
1495         <!--
1496         GL_SGIS_texture_filter4
1497         http://oss.sgi.com/projects/ogl-sample/registry/SGIS/texture_filter4.txt
1498         XXX: Need to write up vops
1499         -->
1500
1501         <!--
1502         GL_EXT_histogram
1503         http://oss.sgi.com/projects/ogl-sample/registry/EXT/histogram.txt
1504         XXX: Need to write up vops
1505         -->
1506
1507         <!--
1508         GL_EXT_convolution
1509         http://oss.sgi.com/projects/ogl-sample/registry/EXT/convolution.txt
1510         XXX: Need to write up vops
1511         -->
1512
1513         <!--
1514         GL_SGI_color_table
1515         http://oss.sgi.com/projects/ogl-sample/registry/SGI/color_table.txt
1516         XXX: Need to write up vops
1517         -->
1518
1519         <!--
1520         GL_EXT_texture_object
1521         http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_object.txt
1522         XXX: Need to write up vops
1523         -->
1524
1525         <!--
1526         GL_SGIS_detail_texture
1527         http://oss.sgi.com/projects/ogl-sample/registry/SGIS/detail_texture.txt
1528         XXX: Need to write up vops
1529         -->
1530
1531         <!--
1532         GL_SGIS_sharpen_texture
1533         http://oss.sgi.com/projects/ogl-sample/registry/SGIS/sharpen_texture.txt
1534         XXX: Need to write up vops
1535         -->
1536
1537         <!--
1538         GL_SGI_make_current_read
1539         http://oss.sgi.com/projects/ogl-sample/registry/SGI/make_current_read.txt
1540         XXX: Need to write up vops
1541         -->
1542
1543         <!--
1544         GL_EXT_import_context
1545         http://oss.sgi.com/projects/ogl-sample/registry/EXT/import_context.txt
1546         XXX: Need to write up vops
1547         -->
1548
1549         <!--
1550         GL_SGIX_fbconfig
1551         http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt
1552         XXX: Need to write up vops
1553         -->
1554
1555         <!--
1556         GL_SGIX_pbuffer
1557         http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt
1558         XXX: Need to write up vops
1559         -->
1560
1561         <!--
1562         GL_EXT_pixel_transform
1563         http://oss.sgi.com/projects/ogl-sample/registry/EXT/pixel_transform.txt
1564         XXX: Need to write up vops
1565         -->
1566         
1567         <!--
1568         GL_NV_register_combiners
1569         http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners.txt
1570         XXX: Need to write up vops
1571         -->
1572
1573         <!--
1574         GL_NV_fence
1575         http://oss.sgi.com/projects/ogl-sample/registry/NV/fence.txt
1576         XXX: Need to write up vops
1577         -->
1578
1579         <!--
1580         GL_NV_register_combiners2
1581         http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners2.txt
1582         XXX: Need to write up vops
1583         -->
1584
1585         <!--
1586         GL_NV_vertex_program
1587         http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
1588         XXX: Need to write up vops
1589         -->
1590
1591         <!--
1592         GL_NV_vertex_program
1593         http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
1594         XXX: Need to write up vops
1595         -->
1596
1597         <!--
1598         GL_NV_occlusion_query
1599         http://oss.sgi.com/projects/ogl-sample/registry/NV/occlusion_query.txt
1600         XXX: Need to write up vops
1601         -->
1602
1603         <!--
1604         GL_NV_fragment_program
1605         http://oss.sgi.com/projects/ogl-sample/registry/NV/fragment_program.txt
1606         XXX: Need to write up vops
1607         -->
1608
1609         <!--
1610         GL_OES_single_precision
1611         http://oss.sgi.com/projects/ogl-sample/registry/OES/single_precision.txt
1612         XXX: Need to write up vops
1613         -->
1614         
1615 </xcb>