4f5e4231914b257001fe07634ee1a6efc6844b73
[free-sw/xcb/proto] / src / extensions / 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         <!-- target support: 1.3 -->
49
50         <xidtype name="PIXMAP" />
51         <xidtype name="CONTEXT" />
52         <xidtype name="PBUFFER" />
53         <xidtype name="WINDOW" />
54         <xidtype name="FBCONFIG" />
55         <xidtype name="DRAWABLE" />
56
57         <typedef oldname="float" newname="FLOAT32" />
58         <typedef oldname="double" newname="FLOAT64" />
59         <typedef oldname="CARD32" newname="BOOL32" />
60             
61         <!-- Errors -->
62         <error name="Generic">
63                 <field type="CARD32" name="bad_value" />
64                 <field type="CARD16" name="minor_opcode" />
65                 <field type="CARD8" name="major_opcode" />
66                 <pad bytes="21" />
67         </error>
68
69         <errorcopy name="BadContext" number="0" ref="Generic" />
70         <errorcopy name="BadContextState" number="1" ref="Generic" />
71         <errorcopy name="BadDrawable" number="2" ref="Generic" />
72         <errorcopy name="BadPixmap" number="3" ref="Generic" />
73         <errorcopy name="BadContextTag" number="4" ref="Generic" />
74         <errorcopy name="BadCurrentWindow" number="5" ref="Generic" />
75         <errorcopy name="BadRenderRequest" number="6" ref="Generic" />
76         <errorcopy name="BadLargeRequest" number="7" ref="Generic" />
77         <errorcopy name="UnsupportedPrivateRequest" number="8" ref="Generic" />
78         <errorcopy name="BadFBConfig" number="9" ref="Generic" />
79         <errorcopy name="BadPbuffer" number="10" ref="Generic" />
80         <errorcopy name="BadCurrentDrawable" number="11" ref="Generic" />
81         <errorcopy name="BadWindow" number="12" ref="Generic" />
82
83         <!-- Events -->
84         <event name="PbufferClobber" number="0">
85                 <field type="CARD16" name="event_type" />
86                 <field type="CARD16" name="draw_type" />
87                 <field type="glx:DRAWABLE" name="drawable" />
88                 <field type="CARD32" name="b_mask" />
89                 <field type="CARD16" name="aux_buffer" />
90                 <field type="CARD16" name="x" />
91                 <field type="CARD16" name="y" />
92                 <field type="CARD16" name="width" />
93                 <field type="CARD16" name="height" />
94                 <field type="CARD16" name="count" />
95                 <pad bytes="4" />
96         </event>
97
98         <!-- enums for PbufferClobber event/draw type -->
99         <enum name="PBCET">
100                 <item name="Damaged">
101                         <value>0x8017</value>
102                 </item>
103                 <item name="Saved">
104                         <value>0x8018</value>
105                 </item>
106         </enum>
107
108         <enum name="PBCDT">
109                 <item name="Window">
110                         <value>0x8019</value>
111                 </item>
112                 <item name="Pbuffer">
113                         <value>0x801A</value>
114                 </item>
115         </enum>
116
117         <!-- Requests -->
118         <request name="Render" opcode="1" combine-adjacent="true">
119                 <field type="CARD32" name="context_tag" />
120                 <list type="BYTE" name="data" />
121         </request>
122
123         <request name="RenderLarge" opcode="2">
124                 <field type="CARD32" name="context_tag" />
125                 <field type="CARD16" name="request_num" />
126                 <field type="CARD16" name="request_total" />
127                 <field type="CARD32" name="data_len" />
128                 <list type="BYTE" name="data">
129                     <fieldref>data_len</fieldref>
130                 </list>
131         </request>
132
133         <request name="CreateContext" opcode="3">
134                 <field type="glx:CONTEXT" name="context" />
135                 <field type="VISUALID" name="visual" />
136                 <field type="CARD32" name="screen" />
137                 <field type="CARD32" name="share_list" />
138                 <field type="BOOL" name="is_direct" />
139                 <pad bytes="3" />
140         </request>
141
142         <request name="DestroyContext" opcode="4">
143                 <field type="glx:CONTEXT" name="context" />
144         </request>
145
146         <request name="MakeCurrent" opcode="5">
147                 <field type="glx:DRAWABLE" name="drawable" />
148                 <field type="glx:CONTEXT" name="context" />
149                 <field type="CARD32" name="old_context_tag" />
150                 <reply>
151                         <pad bytes="1" />
152                         <field type="CARD32" name="context_tag" />
153                         <pad bytes="20" />
154                 </reply>
155         </request>
156
157         <request name="IsDirect" opcode="6">
158                 <field type="glx:CONTEXT" name="context" />
159                 <reply>
160                         <pad bytes="1" />
161                         <field type="BOOL" name="is_direct" />
162                         <pad bytes="23" />
163                 </reply>
164         </request>
165
166         <request name="QueryVersion" opcode="7">
167                 <field type="CARD32" name="major_version" />
168                 <field type="CARD32" name="minor_version" />
169                 <reply>
170                         <pad bytes="1" />
171                         <field type="CARD32" name="major_version" />
172                         <field type="CARD32" name="minor_version" />
173                         <pad bytes="16" />
174                 </reply>
175         </request>
176
177         <request name="WaitGL" opcode="8">
178                 <field type="CARD32" name="context_tag" />
179         </request>
180
181         <request name="WaitX" opcode="9">
182                 <field type="CARD32" name="context_tag" />
183         </request>
184
185         <request name="CopyContext" opcode="10">
186                 <field type="glx:CONTEXT" name="src" />
187                 <field type="glx:CONTEXT" name="dest" />
188                 <field type="CARD32" name="mask" />
189                 <field type="CARD32" name="src_context_tag" />
190         </request>
191
192         <!-- Enum for CopyContext: mask -->
193         <enum name="GC">
194                 <item name="_GL_CURRENT_BIT"><value>0x00000001</value></item>
195                 <item name="_GL_POINT_BIT"><value>0x00000002</value></item>
196                 <item name="_GL_LINE_BIT"><value>0x00000004</value></item>
197                 <item name="_GL_POLYGON_BIT"><value>0x00000008</value></item>
198                 <item name="_GL_POLYGON_STIPPLE_BIT"><value>0x00000010</value></item>
199                 <item name="_GL_PIXEL_MODE_BIT"><value>0x00000020</value></item>
200                 <item name="_GL_LIGHTING_BIT"><value>0x00000040</value></item>
201                 <item name="_GL_FOG_BIT"><value>0x00000080</value></item>
202                 <item name="_GL_DEPTH_BUFFER_BIT"><value>0x00000100</value></item>
203                 <item name="_GL_ACCUM_BUFFER_BIT"><value>0x00000200</value></item>
204                 <item name="_GL_STENCIL_BUFFER_BIT"><value>0x00000400</value></item>
205                 <item name="_GL_VIEWPORT_BIT"><value>0x00000800</value></item>
206                 <item name="_GL_TRANSFORM_BIT"><value>0x00001000</value></item>
207                 <item name="_GL_ENABLE_BIT"><value>0x00002000</value></item>
208                 <item name="_GL_COLOR_BUFFER_BIT"><value>0x00004000</value></item>
209                 <item name="_GL_HINT_BIT"><value>0x00008000</value></item>
210                 <item name="_GL_EVAL_BIT"><value>0x00010000</value></item>
211                 <item name="_GL_LIST_BIT"><value>0x00020000</value></item>
212                 <item name="_GL_TEXTURE_BIT"><value>0x00040000</value></item>
213                 <item name="_GL_SCISSOR_BIT"><value>0x00080000</value></item>
214                 <item name="_GL_ALL_ATTRIB_BITS"><value>0x000ffffff</value></item>
215         </enum>
216
217         <request name="SwapBuffers" opcode="11">
218                 <field type="CARD32" name="context_tag" />
219                 <field type="glx:DRAWABLE" name="drawable" />
220         </request>
221
222         <request name="UseXFont" opcode="12">
223                 <field type="CARD32" name="context_tag" />
224                 <field type="FONT" name="font" />
225                 <field type="CARD32" name="first" />
226                 <field type="CARD32" name="count" />
227                 <field type="CARD32" name="list_base" />
228         </request>
229
230         <request name="CreateGLXPixmap" opcode="13">
231                 <field type="CARD32" name="screen" />
232                 <field type="VISUALID" name="visual" />
233                 <field type="xcb_types:PIXMAP" name="pixmap" />
234                 <field type="glx:PIXMAP" name="glxpixmap" />
235         </request>
236
237         <request name="GetVisualConfigs" opcode="14">
238                 <field type="CARD32" name="screen" />
239                 <reply>
240                         <pad bytes="1" />
241                         <field type="CARD32" name="num_visuals" />
242                         <field type="CARD32" name="num_props" />
243                         <pad bytes="16" />
244                         <valueparam value-mask-type="CARD32"
245                                 value-mask-name="value_mask"
246                                 value-list-name="value_list" />
247                 </reply>
248         </request>
249
250         <request name="DestroyGLXPixmap" opcode="15">
251                 <field type="glx:PIXMAP" name="glxpixmap" />
252         </request>
253
254         <!--
255         Context tag is not in the proto, should be part of the list of bytes
256         but every VendorPrivate and VendorPrivateWithReply request uses them
257         so it is safe to put them in.  That's how Mesa does it.
258         -->
259         <request name="VendorPrivate" opcode="16">
260                 <field type="CARD32" name="vendor_code" />
261                 <field type="CARD32" name="context_tag" />
262                 <list type="BYTE" name="data" />
263         </request>
264
265         <request name="VendorPrivateWithReply" opcode="17">
266                 <field type="CARD32" name="vendor_code" />
267                 <field type="CARD32" name="context_tag" />
268                 <list type="BYTE" name="data" />
269                 <reply>
270                         <pad bytes="1" />
271                         <field type="CARD32" name="retval" />
272                         <list type="BYTE" name="data1">
273                                 <value>24</value>
274                         </list>
275                         <list type="BYTE" name="data2" />
276                 </reply>
277         </request>
278
279         <request name="QueryExtensionsString" opcode="18">
280                 <field type="CARD32" name="screen" />
281                 <reply>
282                         <pad bytes="1" />
283                         <pad bytes="4" />
284                         <field type="CARD32" name="n" />
285                         <pad bytes="16" />
286                 </reply>
287         </request>
288
289         <request name="QueryServerString" opcode="19">
290                 <field type="CARD32" name="screen" />
291                 <field type="CARD32" name="name" />
292                 <reply>
293                         <pad bytes="1" />
294                         <pad bytes="4" />
295                         <field type="CARD32" name="str_len" />
296                         <pad bytes="16" />
297                         <list type="CARD8" name="string">
298                                 <fieldref>str_len</fieldref>
299                         </list>
300                 </reply>
301         </request>
302
303         <request name="ClientInfo" opcode="20">
304                 <field type="CARD32" name="major_version" />
305                 <field type="CARD32" name="minor_version" />
306                 <field type="CARD32" name="str_len" />
307                 <list type="CARD8" name="string">
308                         <fieldref>str_len</fieldref>
309                 </list>
310         </request>
311
312         <!-- Start of GLX 1.3 Requests -->
313
314         <request name="GetFBConfigs" opcode="21">
315                 <field type="CARD32" name="screen" />
316                 <reply>
317                         <pad bytes="1" />
318                         <field type="CARD32" name="num_FB_configs" />
319                         <field type="CARD32" name="num_properties" />
320                         <pad bytes="16" />
321                         <valueparam value-mask-type="CARD32"
322                                 value-mask-name="value_mask"
323                                 value-list-name="value_list" />
324                 </reply>
325         </request>
326
327         <request name="CreatePixmap" opcode="22">
328                 <field type="CARD32" name="screen" />
329                 <field type="CARD32" name="fbconfig" />
330                 <field type="xcb_types:PIXMAP" name="pixmap" />
331                 <field type="glx:PIXMAP" name="glxpixmap" />
332                 <field type="CARD32" name="num_attribs" />  
333         </request>
334
335         <request name="DestroyPixmap" opcode="23">
336                 <field type="glx:PIXMAP" name="glxpixmap" />
337         </request>
338
339         <request name="CreateNewContext" opcode="24">
340                 <field type="glx:CONTEXT" name="context" />
341                 <field type="CARD32" name="fbconfig" />
342                 <field type="SCREEN" name="screen" />
343                 <field type="CARD32" name="render_type" />
344                 <field type="CARD32" name="share_list" />
345                 <field type="BOOL" name="is_direct" />
346                 <field type="CARD8" name="reserved1" />
347                 <field type="CARD16" name="reserved2" />
348         </request>
349
350         <request name="QueryContext" opcode="25">
351                 <field type="glx:CONTEXT" name="context" />
352                 <reply>
353                         <pad bytes="1" />
354                         <field type="CARD32" name="num_attributes"/>
355                         <pad bytes="20" />
356                         <valueparam value-mask-type="CARD32"
357                                 value-mask-name="value_mask"
358                                 value-list-name="value_list" />
359                 </reply>
360         </request>
361
362         <request name="MakeContextCurrent" opcode="26">
363                 <field type="CARD32" name="old_context_tag" />
364                 <field type="glx:DRAWABLE" name="drawable" />
365                 <field type="glx:DRAWABLE" name="read_drawable" />
366                 <field type="glx:CONTEXT" name="context" />
367                 <reply>
368                         <pad bytes="1" />
369                         <field type="CARD32" name="context_tag" />
370                         <pad bytes="20" />
371                 </reply>
372         </request>
373
374         <request name="CreatePbuffer" opcode="27">
375                 <field type="SCREEN" name="screen" />
376                 <field type="FBCONFIG" name="fbconfig" />
377                 <field type="PBUFFER" name="pbuffer" />
378                 <field type="CARD32" name="num_attribs" />
379                 <valueparam value-mask-type="CARD32"
380                         value-mask-name="value_mask"
381                         value-list-name="value_list" />
382         </request>
383
384         <request name="DestroyPbuffer" opcode="28">
385                 <field type="PBUFFER" name="pbuffer" />
386         </request>
387
388         <request name="GetDrawableAttributes" opcode="29">
389                 <field type="glx:DRAWABLE" name="drawable" />
390                 <reply>
391                         <pad bytes="1" />
392                         <field type="CARD32" name="num_attribs" />
393                         <pad bytes="20" />
394                         <valueparam value-mask-type="CARD32"
395                                 value-mask-name="value_mask"
396                                 value-list-name="value_list" />
397                 </reply>
398         </request>
399
400         <request name="ChangeDrawableAttributes" opcode="30">
401                 <field type="glx:DRAWABLE" name="drawable" />
402                 <field type="CARD32" name="num_attribs" />
403                 <valueparam value-mask-type="CARD32"
404                         value-mask-name="value_mask"
405                         value-list-name="value_list" />
406         </request>
407
408         <request name="CreateWindow" opcode="31">
409                 <field type="SCREEN" name="screen" />
410                 <field type="FBCONFIG" name="fbconfig" />
411                 <field type="xcb_types:WINDOW" name="window" />
412                 <field type="glx:WINDOW" name="glx_window" />
413                 <field type="CARD32" name="num_attribs" />
414                 <valueparam value-mask-type="CARD32"
415                         value-mask-name="value_mask"
416                         value-list-name="value_list" />
417         </request>
418
419         <request name="DeleteWindow" opcode="32">
420                 <field type="glx:WINDOW" name="glxwindow" />
421         </request>
422
423         <!-- Requests for GL Non-rendering Commands (single ops) -->
424
425         <request name="NewList" opcode="101">
426                 <field type="CARD32" name="context_tag" />
427                 <field type="CARD32" name="list" />
428                 <field type="CARD32" name="mode" />
429         </request>
430
431         <request name="EndList" opcode="102">
432                 <field type="CARD32" name="context_tag" />
433         </request>
434
435         <request name="DeleteLists" opcode="103">
436                 <field type="CARD32" name="context_tag" />
437                 <field type="CARD32" name="list" />
438                 <field type="INT32" name="range" />
439         </request>
440
441         <request name="GenLists" opcode="104">
442                 <field type="CARD32" name="context_tag" />
443                 <field type="INT32" name="range" />
444                 <reply>
445                         <pad bytes="1" />
446                         <field type="CARD32" name="ret_val" />
447                 </reply>
448         </request>
449
450         <request name="FeedbackBuffer" opcode="105">
451                 <field type="CARD32" name="context_tag" />
452                 <field type="INT32" name="size" />
453                 <field type="INT32" name="type" />
454         </request>
455
456         <request name="SelectBuffer" opcode="106">
457                 <field type="CARD32" name="context_tag" />
458                 <field type="INT32" name="size" />
459                 <!-- the reply is actually returned in the data
460                 of the next RenderMode request -->
461         </request>
462
463
464         <request name="RenderMode" opcode="107">
465                 <field type="CARD32" name="context_tag" />
466                 <field type="CARD32" name="mode" />
467                 <!--
468                 This reply is only if RM was previously feedback/selection.
469                 If it was in feedback mode then data is FLOAT32.
470                 If previously in render mode there is no reply.
471                 -->
472                 <reply>
473                         <pad bytes="1" />
474                         <field type="CARD32" name="ret_val" />
475                         <field type="CARD32" name="n" />
476                         <field type="CARD32" name="new_mode" />
477                         <pad bytes="12" />
478                         <list type="CARD32" name="data">
479                                 <fieldref>n</fieldref>
480                         </list>
481                 </reply>
482         </request>
483
484         <enum name="RM">
485                 <item name="_GL_RENDER"><value>0x1C00</value></item>
486                 <item name="_GL_FEEDBACK"><value>0x1C01</value></item>
487                 <item name="_GL_SELECT"><value>0x1C02</value></item>
488         </enum>
489
490         <request name="Finish" opcode="108">
491                 <field type="CARD32" name="context_tag" />
492                 <reply>
493                         <pad bytes="1" />
494                 </reply>
495         </request>
496
497         <request name="PixelStoref" opcode="109">
498                 <field type="CARD32" name="context_tag" />
499                 <field type="CARD32" name="pname" />
500                 <field type="FLOAT32" name="datum" />
501         </request>
502
503         <request name="PixelStorei" opcode="110">
504                 <field type="CARD32" name="context_tag" />
505                 <field type="CARD32" name="pname" />
506                 <field type="INT32" name="datum" />
507         </request>
508
509         <request name="ReadPixels" opcode="111">
510                 <field type="CARD32" name="context_tag" />
511                 <field type="INT32" name="x" />
512                 <field type="INT32" name="y" />
513                 <field type="INT32" name="width" />
514                 <field type="INT32" name="height" />
515                 <field type="CARD32" name="format" />
516                 <field type="CARD32" name="type" />
517                 <field type="BOOL" name="swap_bytes" />
518                 <field type="BOOL" name="lsb_first" />
519                 <reply>
520                         <pad bytes="1" />
521                         <pad bytes="24" />
522                         <list type="BYTE" name="data" />
523                 </reply>
524         </request>
525                 
526         <!-- FIXME:
527         All the Get* functions can return different stuff for replies.
528         Hopefully xcb will support multiple reply structures at some point
529         but for now... grrrr
530         Starts on page 58/180
531         -->
532         <request name="GetBooleanv" opcode="112">
533                 <field type="CARD32" name="context_tag" />
534                 <field type="INT32" name="pname" />
535                 <reply>
536                         <pad bytes="1" />
537                         <pad bytes="4" />
538                         <field type="CARD32" name="n" />
539                         <field type="BOOL" name="datum" />
540                         <pad bytes="15" />
541                         <list type="BOOL" name="data">
542                                 <fieldref>n</fieldref>
543                         </list>
544                 </reply>
545         </request>
546
547         <request name="GetClipPlane" opcode="113">
548                 <field type="CARD32" name="context_tag" />
549                 <field type="INT32" name="plane" />
550                 <reply>
551                         <pad bytes="1" />
552                         <pad bytes="24" />
553                         <list type="FLOAT64" name="data" />
554                 </reply>
555         </request>
556
557         <request name="GetDoublev" opcode="114">
558                 <field type="CARD32" name="context_tag" />
559                 <field type="CARD32" name="pname" />
560                 <reply>
561                         <pad bytes="1" />
562                         <pad bytes="4" />
563                         <field type="CARD32" name="n" />
564                         <field type="FLOAT64" name="datum" />
565                         <pad bytes="8" />
566                         <list type="FLOAT64" name="data">
567                                 <fieldref>n</fieldref>
568                         </list>
569                 </reply>
570         </request>
571
572         <request name="GetError" opcode="115">
573                 <field type="CARD32" name="context_tag" />
574                 <reply>
575                         <pad bytes="1" />
576                         <field type="INT32" name="error" />
577                 </reply>
578         </request>
579
580         <request name="GetFloatv" opcode="116">
581                 <field type="CARD32" name="context_tag" />
582                 <field type="CARD32" name="pname" />
583                 <reply>
584                         <pad bytes="1" />
585                         <pad bytes="4" />
586                         <field type="CARD32" name="n" />
587                         <field type="FLOAT32" name="datum" />
588                         <pad bytes="12" />
589                         <list type="FLOAT32" name="data">
590                                 <fieldref>n</fieldref>
591                         </list>
592                 </reply>
593         </request>
594
595         <request name="GetIntegerv" opcode="117">
596                 <field type="CARD32" name="context_tag" />
597                 <field type="CARD32" name="pname" />
598                 <reply>
599                         <pad bytes="1" />
600                         <pad bytes="4" />
601                         <field type="CARD32" name="n" />
602                         <field type="INT32" name="datum" />
603                         <pad bytes="12" />
604                         <list type="INT32" name="data">
605                                 <fieldref>n</fieldref>
606                         </list>
607                 </reply>
608         </request>
609
610         <request name="GetLightfv" opcode="118">
611                 <field type="CARD32" name="context_tag" />
612                 <field type="CARD32" name="light" />
613                 <field type="CARD32" name="pname" />
614                 <reply>
615                         <pad bytes="1" />
616                         <pad bytes="4" />
617                         <field type="CARD32" name="n" />
618                         <field type="FLOAT32" name="datum" />
619                         <pad bytes="12" />
620                         <list type="FLOAT32" name="data">
621                                 <fieldref>n</fieldref>
622                         </list>
623                 </reply>
624         </request>
625
626         <request name="GetLightiv" opcode="119">
627                 <field type="CARD32" name="context_tag" />
628                 <field type="CARD32" name="light" />
629                 <field type="CARD32" name="pname" />
630                 <reply>
631                         <pad bytes="1" />
632                         <pad bytes="4" />
633                         <field type="CARD32" name="n" />
634                         <field type="INT32" name="datum" />
635                         <pad bytes="12" />
636                         <list type="INT32" name="data">
637                                 <fieldref>n</fieldref>
638                         </list>
639                 </reply>
640         </request>
641
642         <request name="GetMapdv" opcode="120">
643                 <field type="CARD32" name="context_tag" />
644                 <field type="CARD32" name="target" />
645                 <field type="CARD32" name="query" />
646                 <reply>
647                         <pad bytes="1" />
648                         <pad bytes="4" />
649                         <field type="CARD32" name="n" />
650                         <field type="FLOAT64" name="datum" />
651                         <pad bytes="8" />
652                         <list type="FLOAT64" name="data">
653                                 <fieldref>n</fieldref>
654                         </list>
655                 </reply>
656         </request>
657
658         <request name="GetMapfv" opcode="121">
659                 <field type="CARD32" name="context_tag" />
660                 <field type="CARD32" name="target" />
661                 <field type="CARD32" name="query" />
662                 <reply>
663                         <pad bytes="1" />
664                         <pad bytes="4" />
665                         <field type="CARD32" name="n" />
666                         <field type="FLOAT32" name="datum" />
667                         <pad bytes="12" />
668                         <list type="FLOAT32" name="data">
669                                 <fieldref>n</fieldref>
670                         </list>
671                 </reply>
672         </request>
673
674         <request name="GetMapiv" opcode="122">
675                 <field type="CARD32" name="context_tag" />
676                 <field type="CARD32" name="target" />
677                 <field type="CARD32" name="query" />
678                 <reply>
679                         <pad bytes="1" />
680                         <pad bytes="4" />
681                         <field type="CARD32" name="n" />
682                         <field type="INT32" name="datum" />
683                         <pad bytes="12" />
684                         <list type="INT32" name="data">
685                                 <fieldref>n</fieldref>
686                         </list>
687                 </reply>
688         </request>
689
690         <request name="GetMaterialfv" opcode="123">
691                 <field type="CARD32" name="context_tag" />
692                 <field type="CARD32" name="face" />
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="GetMaterialiv" opcode="124">
707                 <field type="CARD32" name="context_tag" />
708                 <field type="CARD32" name="face" />
709                 <field type="CARD32" name="pname" />
710                 <reply>
711                         <pad bytes="1" />
712                         <pad bytes="4" />
713                         <field type="CARD32" name="n" />
714                         <field type="INT32" name="datum" />
715                         <pad bytes="12" />
716                         <list type="INT32" name="data">
717                                 <fieldref>n</fieldref>
718                         </list>
719                 </reply>
720         </request>
721
722         <request name="GetPixelMapfv" opcode="125">
723                 <field type="CARD32" name="context_tag" />
724                 <field type="CARD32" name="map" />
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="GetPixelMapuiv" opcode="126">
738                 <field type="CARD32" name="context_tag" />
739                 <field type="CARD32" name="map" />
740                 <reply>
741                         <pad bytes="1" />
742                         <pad bytes="4" />
743                         <field type="CARD32" name="n" />
744                         <field type="CARD32" name="datum" />
745                         <pad bytes="12" />
746                         <list type="CARD32" name="data">
747                                 <fieldref>n</fieldref>
748                         </list>
749                 </reply>
750         </request>
751
752         <request name="GetPixelMapusv" opcode="127">
753                 <field type="CARD32" name="context_tag" />
754                 <field type="CARD32" name="map" />
755                 <reply>
756                         <pad bytes="1" />
757                         <pad bytes="4" />
758                         <field type="CARD32" name="n" />
759                         <field type="CARD16" name="datum" />
760                         <pad bytes="16" />
761                         <list type="CARD16" name="data">
762                                 <fieldref>n</fieldref>
763                         </list>
764                 </reply>
765         </request>
766
767         <request name="GetPolygonStipple" opcode="128">
768                 <field type="CARD32" name="context_tag" />
769                 <field type="BOOL" name="lsb_first" />
770                 <reply>
771                         <pad bytes="1" />
772                         <pad bytes="24" />
773                         <list type="BYTE" name="data" />
774                 </reply>
775         </request>
776
777
778         <request name="GetString" opcode="129">
779                 <field type="CARD32" name="context_tag" />
780                 <field type="CARD32" name="name" />
781                 <reply>
782                         <pad bytes="1" />
783                         <pad bytes="4" />
784                         <field type="CARD32" name="n" />
785                         <pad bytes="16" />
786                         <list type="CARD8" name="string">
787                                 <fieldref>n</fieldref>
788                         </list>
789                 </reply>
790         </request>
791
792         <request name="GetTexEnvfv" opcode="130">
793                 <field type="CARD32" name="context_tag" />
794                 <field type="CARD32" name="target" />
795                 <field type="CARD32" name="pname" />
796                 <reply>
797                         <pad bytes="1" />
798                         <pad bytes="4" />
799                         <field type="CARD32" name="n" />
800                         <field type="FLOAT32" name="datum" />
801                         <pad bytes="12" />
802                         <list type="FLOAT32" name="data">
803                                 <fieldref>n</fieldref>
804                         </list>
805                 </reply>
806         </request>
807
808         <request name="GetTexEnviv" opcode="131">
809                 <field type="CARD32" name="context_tag" />
810                 <field type="CARD32" name="target" />
811                 <field type="CARD32" name="pname" />
812                 <reply>
813                         <pad bytes="1" />
814                         <pad bytes="4" />
815                         <field type="CARD32" name="n" />
816                         <field type="INT32" name="datum" />
817                         <pad bytes="12" />
818                         <list type="INT32" name="data">
819                                 <fieldref>n</fieldref>
820                         </list>
821                 </reply>
822         </request>
823
824         <request name="GetTexGendv" opcode="132">
825                 <field type="CARD32" name="context_tag" />
826                 <field type="CARD32" name="coord" />
827                 <field type="CARD32" name="pname" />
828                 <reply>
829                         <pad bytes="1" />
830                         <pad bytes="4" />
831                         <field type="CARD32" name="n" />
832                         <field type="FLOAT64" name="datum" />
833                         <pad bytes="8" />
834                         <list type="FLOAT64" name="data">
835                                 <fieldref>n</fieldref>
836                         </list>
837                 </reply>
838         </request>
839
840         <request name="GetTexGenfv" opcode="133">
841                 <field type="CARD32" name="context_tag" />
842                 <field type="CARD32" name="coord" />
843                 <field type="CARD32" name="pname" />
844                 <reply>
845                         <pad bytes="1" />
846                         <pad bytes="4" />
847                         <field type="CARD32" name="n" />
848                         <field type="FLOAT32" name="datum" />
849                         <pad bytes="12" />
850                         <list type="FLOAT32" name="data">
851                                 <fieldref>n</fieldref>
852                         </list>
853                 </reply>
854         </request>
855
856         <request name="GetTexGeniv" opcode="134">
857                 <field type="CARD32" name="context_tag" />
858                 <field type="CARD32" name="coord" />
859                 <field type="CARD32" name="pname" />
860                 <reply>
861                         <pad bytes="1" />
862                         <pad bytes="4" />
863                         <field type="CARD32" name="n" />
864                         <field type="INT32" name="datum" />
865                         <pad bytes="12" />
866                         <list type="INT32" name="data">
867                                 <fieldref>n</fieldref>
868                         </list>
869                 </reply>
870         </request>
871
872         <request name="GetTexImage" opcode="135">
873                 <field type="CARD32" name="context_tag" />
874                 <field type="CARD32" name="target" />
875                 <field type="INT32" name="level" />
876                 <field type="CARD32" name="format" />
877                 <field type="CARD32" name="type" />
878                 <field type="BOOL" name="swap_bytes" />
879                 <reply>
880                         <pad bytes="1" />
881                         <pad bytes="8" />
882                         <field type="INT32" name="width" />
883                         <field type="INT32" name="height" />
884                         <field type="INT32" name="depth" />
885                         <pad bytes="4" />
886                         <list type="BYTE" name="data" />
887                 </reply>
888         </request>
889             
890
891         <request name="GetTexParameterfv" opcode="136">
892                 <field type="CARD32" name="context_tag" />
893                 <field type="CARD32" name="target" />
894                 <field type="CARD32" name="pname" />
895                 <reply>
896                         <pad bytes="1" />
897                         <pad bytes="4" />
898                         <field type="CARD32" name="n" />
899                         <field type="FLOAT32" name="datum" />
900                         <pad bytes="12" />
901                         <list type="FLOAT32" name="data">
902                                 <fieldref>n</fieldref>
903                         </list>
904                 </reply>
905         </request>
906
907         <request name="GetTexParameteriv" opcode="137">
908                 <field type="CARD32" name="context_tag" />
909                 <field type="CARD32" name="target" />
910                 <field type="CARD32" name="pname" />
911                 <reply>
912                         <pad bytes="1" />
913                         <pad bytes="4" />
914                         <field type="CARD32" name="n" />
915                         <field type="INT32" name="datum" />
916                         <pad bytes="12" />
917                         <list type="INT32" name="data">
918                                 <fieldref>n</fieldref>
919                         </list>
920                 </reply>
921         </request>
922
923         <request name="GetTexLevelParameterfv" opcode="138">
924                 <field type="CARD32" name="context_tag" />
925                 <field type="CARD32" name="target" />
926                 <field type="INT32" name="level" />
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="FLOAT32" name="datum" />
933                         <pad bytes="12" />
934                         <list type="FLOAT32" name="data">
935                                 <fieldref>n</fieldref>
936                         </list>
937                 </reply>
938         </request>
939
940         <request name="GetTexLevelParameteriv" opcode="139">
941                 <field type="CARD32" name="context_tag" />
942                 <field type="CARD32" name="target" />
943                 <field type="INT32" name="level" />
944                 <field type="CARD32" name="pname" />
945                 <reply>
946                         <pad bytes="1" />
947                         <pad bytes="4" />
948                         <field type="CARD32" name="n" />
949                         <field type="INT32" name="datum" />
950                         <pad bytes="12" />
951                         <list type="INT32" name="data">
952                                 <fieldref>n</fieldref>
953                         </list>
954                 </reply>
955         </request>
956
957         <request name="IsList" opcode="141" >
958                 <field type="CARD32" name="context_tag" />
959                 <field type="CARD32" name="list" />
960                 <reply>
961                         <pad bytes="1" />
962                         <field type="BOOL32" name="ret_val" />
963                 </reply>
964         </request>
965
966         <request name="Flush" opcode="142">
967                 <field type="CARD32" name="context_tag" />
968         </request>
969
970         <request name="AreTexturesResident" opcode="143">
971                 <field type="CARD32" name="context_tag" />
972                 <field type="INT32" name="n" />
973                 <list type="CARD32" name="textures">
974                     <fieldref>n</fieldref>
975                 </list>
976                 <reply>
977                         <pad bytes="1" />
978                         <field type="BOOL32" name="ret_val" />
979                         <pad bytes="20" />
980                         <list type="BOOL" name="data" />
981                 </reply>
982         </request>
983
984         <request name="DeleteTextures" opcode="144">
985                 <field type="CARD32" name="context_tag" />
986                 <field type="INT32" name="n" />
987                 <list type="CARD32" name="textures">
988                         <fieldref>n</fieldref>
989                 </list>
990         </request>
991
992         <request name="GenTextures" opcode="145">
993                 <field type="CARD32" name="context_tag" />
994                 <field type="INT32" name="n" />
995                 <reply>
996                         <pad bytes="1" />
997                         <pad bytes="24" />
998                         <list type="CARD32" name="data" />
999                 </reply>
1000         </request>
1001
1002         <request name="IsTexture" opcode="146">
1003                 <field type="CARD32" name="context_tag" />
1004                 <field type="CARD32" name="texture" />
1005                 <reply>
1006                         <pad bytes="1" />
1007                         <field type="BOOL32" name="ret_val" />
1008                 </reply>
1009         </request>
1010
1011         <request name="GetColorTable" opcode="147">
1012                 <field type="CARD32" name="context_tag" />
1013                 <field type="CARD32" name="target" />
1014                 <field type="CARD32" name="format" />
1015                 <field type="CARD32" name="type" />
1016                 <field type="BOOL" name="swap_bytes" />
1017                 <reply>
1018                         <pad bytes="1" />
1019                         <pad bytes="8" />
1020                         <field type="INT32" name="width" />
1021                         <pad bytes="12" />
1022                         <list type="BYTE" name="data" />
1023                 </reply>
1024         </request>
1025         
1026         <request name="GetColorTableParameterfv" opcode="148">
1027                 <field type="CARD32" name="context_tag" />
1028                 <field type="CARD32" name="target" />
1029                 <field type="CARD32" name="pname" />
1030                 <reply>
1031                         <pad bytes="1" />
1032                         <pad bytes="4" />
1033                         <field type="CARD32" name="n" />
1034                         <field type="FLOAT32" name="datum" />
1035                         <pad bytes="12" />
1036                         <list type="FLOAT32" name="data">
1037                                 <fieldref>n</fieldref>
1038                         </list>
1039                 </reply>
1040         </request>
1041
1042         <request name="GetColorTableParameteriv" opcode="149">
1043                 <field type="CARD32" name="context_tag" />
1044                 <field type="CARD32" name="target" />
1045                 <field type="CARD32" name="pname" />
1046                 <reply>
1047                         <pad bytes="1" />
1048                         <pad bytes="4" />
1049                         <field type="CARD32" name="n" />
1050                         <field type="INT32" name="datum" />
1051                         <pad bytes="12" />
1052                         <list type="INT32" name="data">
1053                                 <fieldref>n</fieldref>
1054                         </list>
1055                 </reply>
1056         </request>
1057
1058         <request name="GetConvolutionFilter" opcode="150">
1059                 <field type="CARD32" name="context_tag" />
1060                 <field type="CARD32" name="target" />
1061                 <field type="CARD32" name="format" />
1062                 <field type="CARD32" name="type" />
1063                 <field type="BOOL" name="swap_bytes" />
1064                 <reply>
1065                         <pad bytes="1" />
1066                         <pad bytes="8" />
1067                         <field type="INT32" name="width" />
1068                         <field type="INT32" name="height" />
1069                         <pad bytes="8" />
1070                         <list type="BYTE" name="data" />
1071                 </reply>
1072         </request>
1073
1074
1075         <request name="GetConvolutionParameterfv" opcode="151">
1076                 <field type="CARD32" name="context_tag" />
1077                 <field type="CARD32" name="target" />
1078                 <field type="CARD32" name="pname" />
1079                 <reply>
1080                         <pad bytes="1" />
1081                         <pad bytes="4" />
1082                         <field type="CARD32" name="n" />
1083                         <field type="FLOAT32" name="datum" />
1084                         <pad bytes="12" />
1085                         <list type="FLOAT32" name="data">
1086                                 <fieldref>n</fieldref>
1087                         </list>
1088                 </reply>
1089         </request>
1090
1091         <request name="GetConvolutionParameteriv" opcode="152">
1092                 <field type="CARD32" name="context_tag" />
1093                 <field type="CARD32" name="target" />
1094                 <field type="CARD32" name="pname" />
1095                 <reply>
1096                         <pad bytes="1" />
1097                         <pad bytes="4" />
1098                         <field type="CARD32" name="n" />
1099                         <field type="INT32" name="datum" />
1100                         <pad bytes="12" />
1101                         <list type="INT32" name="data">
1102                                 <fieldref>n</fieldref>
1103                         </list>
1104                 </reply>
1105         </request>
1106
1107         <request name="GetSeparableFilter" opcode="153">
1108                 <field type="CARD32" name="context_tag" />
1109                 <field type="CARD32" name="target" />
1110                 <field type="CARD32" name="format" />
1111                 <field type="CARD32" name="type" />
1112                 <field type="BOOL" name="swap_bytes" />
1113                 <reply>
1114                         <pad bytes="1" />
1115                         <pad bytes="8" />
1116                         <field type="INT32" name="row_w" />
1117                         <field type="INT32" name="col_h" />
1118                         <pad bytes="8" />
1119                         <list type="BYTE" name="rows_and_cols" />
1120                 </reply>
1121         </request>
1122
1123         <request name="GetHistogram" opcode="154">
1124                 <field type="CARD32" name="context_tag" />
1125                 <field type="CARD32" name="target" />
1126                 <field type="CARD32" name="format" />
1127                 <field type="CARD32" name="type" />
1128                 <field type="BOOL" name="swap_bytes" />
1129                 <field type="BOOL" name="reset" />
1130                 <reply>
1131                         <pad bytes="1" />
1132                         <pad bytes="8" />
1133                         <field type="INT32" name="width" />
1134                         <pad bytes="12" />
1135                         <list type="BYTE" name="data" />
1136                 </reply>
1137         </request>
1138
1139
1140         <request name="GetHistogramParameterfv" opcode="155">
1141                 <field type="CARD32" name="context_tag" />
1142                 <field type="CARD32" name="target" />
1143                 <field type="CARD32" name="pname" />
1144                 <reply>
1145                         <pad bytes="1" />
1146                         <pad bytes="4" />
1147                         <field type="CARD32" name="n" />
1148                         <field type="FLOAT32" name="datum" />
1149                         <pad bytes="12" />
1150                         <list type="FLOAT32" name="data">
1151                                 <fieldref>n</fieldref>
1152                         </list>
1153                 </reply>
1154         </request>
1155
1156         <request name="GetHistogramParameteriv" opcode="156">
1157                 <field type="CARD32" name="context_tag" />
1158                 <field type="CARD32" name="target" />
1159                 <field type="CARD32" name="pname" />
1160                 <reply>
1161                         <pad bytes="1" />
1162                         <pad bytes="4" />
1163                         <field type="CARD32" name="n" />
1164                         <field type="INT32" name="datum" />
1165                         <pad bytes="12" />
1166                         <list type="INT32" name="data">
1167                                 <fieldref>n</fieldref>
1168                         </list>
1169                 </reply>
1170         </request>
1171
1172         <request name="GetMinmax" opcode="157">
1173                 <field type="CARD32" name="context_tag" />
1174                 <field type="CARD32" name="target" />
1175                 <field type="CARD32" name="format" />
1176                 <field type="CARD32" name="type" />
1177                 <field type="BOOL" name="swap_bytes" />
1178                 <field type="BOOL" name="reset" />
1179                 <reply>
1180                         <pad bytes="1" />
1181                         <pad bytes="24" />
1182                         <list type="BYTE" name="data" />
1183                 </reply>
1184         </request>
1185
1186         <request name="GetMinmaxParameterfv" opcode="158">
1187                 <field type="CARD32" name="context_tag" />
1188                 <field type="CARD32" name="target" />
1189                 <field type="CARD32" name="pname" />
1190                 <reply>
1191                         <pad bytes="1" />
1192                         <pad bytes="4" />
1193                         <field type="CARD32" name="n" />
1194                         <field type="FLOAT32" name="datum" />
1195                         <pad bytes="12" />
1196                         <list type="FLOAT32" name="data">
1197                                 <fieldref>n</fieldref>
1198                         </list>
1199                 </reply>
1200         </request>
1201
1202         <request name="GetMinmaxParameteriv" opcode="159">
1203                 <field type="CARD32" name="context_tag" />
1204                 <field type="CARD32" name="target" />
1205                 <field type="CARD32" name="pname" />
1206                 <reply>
1207                         <pad bytes="1" />
1208                         <pad bytes="4" />
1209                         <field type="CARD32" name="n" />
1210                         <field type="INT32" name="datum" />
1211                         <pad bytes="12" />
1212                         <list type="INT32" name="data">
1213                                 <fieldref>n</fieldref>
1214                         </list>
1215                 </reply>
1216         </request>
1217
1218         <!--
1219         GLX Extensions
1220         
1221         * XXX: So far only define non-rendering commands.
1222         * Only those extensions that affect the GLX wire protocol are listed.
1223         -->
1224
1225         <!--
1226         GL_ARB_texture_compression
1227         http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_compression.txt
1228         -->
1229         <request name="GetCompressedTexImageARB" opcode="160">
1230                 <field type="CARD32" name="context_tag" />
1231                 <field type="CARD32" name="target" />
1232                 <field type="INT32" name="level" />
1233                 <reply>
1234                         <pad bytes="1" />
1235                         <pad bytes="8" />
1236                         <field type="INT32" name="size" />
1237                         <pad bytes="12" />
1238                         <list type="BYTE" name="data" />
1239                 </reply>
1240         </request>
1241
1242         
1243         <!--
1244         GL_ARB_occlusion_query
1245         http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
1246         -->
1247
1248         <request name="DeleteQueriesARB" opcode="161">
1249                 <field type="CARD32" name="context_tag" />
1250                 <field type="INT32" name="n" />
1251                 <list type="CARD32" name="ids">
1252                         <fieldref>n</fieldref>
1253                 </list>
1254         </request>
1255
1256         <request name="GenQueriesARB" opcode="162">
1257                 <field type="CARD32" name="context_tag" />
1258                 <field type="INT32" name="n" />
1259                 <reply>
1260                         <pad bytes="1" />
1261                         <pad bytes="24" />
1262                         <list type="CARD32" name="data" />
1263                 </reply>
1264         </request>
1265         
1266         <request name="IsQueryARB" opcode="163">
1267                 <field type="CARD32" name="context_tag" />
1268                 <field type="CARD32" name="id" />
1269                 <reply>
1270                         <pad bytes="1" />
1271                         <field type="BOOL32" name="ret_val" />
1272                 </reply>
1273         </request>
1274         
1275         <request name="GetQueryivARB" opcode="164">
1276                 <field type="CARD32" name="context_tag" />
1277                 <field type="CARD32" name="target" />
1278                 <field type="CARD32" name="pname" />
1279                 <reply>
1280                         <pad bytes="1" />
1281                         <pad bytes="4" />
1282                         <field type="CARD32" name="n" />
1283                         <field type="INT32" name="datum" />
1284                         <pad bytes="12" />
1285                         <list type="INT32" name="data">
1286                                 <fieldref>n</fieldref>
1287                         </list>
1288                 </reply>
1289         </request>
1290         
1291         <request name="GetQueryObjectivARB" opcode="165">
1292                 <field type="CARD32" name="context_tag" />
1293                 <field type="CARD32" name="id" />
1294                 <field type="CARD32" name="pname" />
1295                 <reply>
1296                         <pad bytes="1" />
1297                         <pad bytes="4" />
1298                         <field type="CARD32" name="n" />
1299                         <field type="INT32" name="datum" />
1300                         <pad bytes="12" />
1301                         <list type="INT32" name="data">
1302                                 <fieldref>n</fieldref>
1303                         </list>
1304                 </reply>
1305         </request>
1306         
1307         <request name="GetQueryObjectuivARB" opcode="166">
1308                 <field type="CARD32" name="context_tag" />
1309                 <field type="CARD32" name="id" />
1310                 <field type="CARD32" name="pname" />
1311                 <reply>
1312                         <pad bytes="1" />
1313                         <pad bytes="4" />
1314                         <field type="CARD32" name="n" />
1315                         <field type="CARD32" name="datum" />
1316                         <pad bytes="12" />
1317                         <list type="CARD32" name="data">
1318                                 <fieldref>n</fieldref>
1319                         </list>
1320                 </reply>
1321         </request>
1322         
1323         <!--
1324         GL_ARB_vertex_program
1325         http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_program.txt
1326         XXX: Need to write up vops
1327         --> 
1328
1329         <!--
1330         GL_ARB_fragment_program
1331         http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt
1332         XXX: Need to write up vops
1333         -->
1334         
1335         <!--
1336         GL_SGIS_texture_filter4
1337         http://oss.sgi.com/projects/ogl-sample/registry/SGIS/texture_filter4.txt
1338         XXX: Need to write up vops
1339         -->
1340
1341         <!--
1342         GL_EXT_histogram
1343         http://oss.sgi.com/projects/ogl-sample/registry/EXT/histogram.txt
1344         XXX: Need to write up vops
1345         -->
1346
1347         <!--
1348         GL_EXT_convolution
1349         http://oss.sgi.com/projects/ogl-sample/registry/EXT/convolution.txt
1350         XXX: Need to write up vops
1351         -->
1352
1353         <!--
1354         GL_SGI_color_table
1355         http://oss.sgi.com/projects/ogl-sample/registry/SGI/color_table.txt
1356         XXX: Need to write up vops
1357         -->
1358
1359         <!--
1360         GL_EXT_texture_object
1361         http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_object.txt
1362         XXX: Need to write up vops
1363         -->
1364
1365         <!--
1366         GL_SGIS_detail_texture
1367         http://oss.sgi.com/projects/ogl-sample/registry/SGIS/detail_texture.txt
1368         XXX: Need to write up vops
1369         -->
1370
1371         <!--
1372         GL_SGIS_sharpen_texture
1373         http://oss.sgi.com/projects/ogl-sample/registry/SGIS/sharpen_texture.txt
1374         XXX: Need to write up vops
1375         -->
1376
1377         <!--
1378         GL_SGI_make_current_read
1379         http://oss.sgi.com/projects/ogl-sample/registry/SGI/make_current_read.txt
1380         XXX: Need to write up vops
1381         -->
1382
1383         <!--
1384         GL_EXT_import_context
1385         http://oss.sgi.com/projects/ogl-sample/registry/EXT/import_context.txt
1386         XXX: Need to write up vops
1387         -->
1388
1389         <!--
1390         GL_SGIX_fbconfig
1391         http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt
1392         XXX: Need to write up vops
1393         -->
1394
1395         <!--
1396         GL_SGIX_pbuffer
1397         http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt
1398         XXX: Need to write up vops
1399         -->
1400
1401         <!--
1402         GL_EXT_pixel_transform
1403         http://oss.sgi.com/projects/ogl-sample/registry/EXT/pixel_transform.txt
1404         XXX: Need to write up vops
1405         -->
1406         
1407         <!--
1408         GL_NV_register_combiners
1409         http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners.txt
1410         XXX: Need to write up vops
1411         -->
1412
1413         <!--
1414         GL_NV_fence
1415         http://oss.sgi.com/projects/ogl-sample/registry/NV/fence.txt
1416         XXX: Need to write up vops
1417         -->
1418
1419         <!--
1420         GL_NV_register_combiners2
1421         http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners2.txt
1422         XXX: Need to write up vops
1423         -->
1424
1425         <!--
1426         GL_NV_vertex_program
1427         http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
1428         XXX: Need to write up vops
1429         -->
1430
1431         <!--
1432         GL_NV_vertex_program
1433         http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
1434         XXX: Need to write up vops
1435         -->
1436
1437         <!--
1438         GL_NV_occlusion_query
1439         http://oss.sgi.com/projects/ogl-sample/registry/NV/occlusion_query.txt
1440         XXX: Need to write up vops
1441         -->
1442
1443         <!--
1444         GL_NV_fragment_program
1445         http://oss.sgi.com/projects/ogl-sample/registry/NV/fragment_program.txt
1446         XXX: Need to write up vops
1447         -->
1448
1449         <!--
1450         GL_OES_single_precision
1451         http://oss.sgi.com/projects/ogl-sample/registry/OES/single_precision.txt
1452         XXX: Need to write up vops
1453         -->
1454         
1455 </xcb>