tests: Make sure only one thread prints traces at a time.
[wine.git] / dlls / opengl32 / winegl.xml
blob7918c3ff8946e2136881bf220ea6c981bb26e519
1 <?xml version="1.0" encoding="UTF-8"?>
2 <registry>
3     <comment>
4 This stores various extensions NOT part of the GL extension registry but still
5 implemented by most OpenGL libraries out there.
7 Copyright 2000 Lionel Ulmer
8 Copyright 2017 Alexandre Julliard
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 2.1 of the License, or (at your option) any later version.
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 Lesser General Public License for more details.
20 You should have received a copy of the GNU Lesser General Public
21 License along with this library; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23     </comment>
25     <types>
26         <!-- Override some types for Win32 API -->
27         <type>typedef INT_PTR <name>GLintptr</name>;</type>
28         <type>typedef INT_PTR <name>GLsizeiptr</name>;</type>
29         <type>typedef INT64 <name>GLint64</name>;</type>
30         <type>typedef UINT64 <name>GLuint64</name>;</type>
31         <type>typedef INT_PTR <name>GLintptrARB</name>;</type>
32         <type>typedef INT_PTR <name>GLsizeiptrARB</name>;</type>
33         <type>typedef INT64 <name>GLint64EXT</name>;</type>
34         <type>typedef UINT64 <name>GLuint64EXT</name>;</type>
35         <type>typedef unsigned int <name>GLhandleARB</name>;</type>
36         <type>typedef void *<name>GLDEBUGPROC</name>;</type>
37         <type>typedef void *<name>GLDEBUGPROCAMD</name>;</type>
38         <type>typedef void *<name>GLDEBUGPROCARB</name>;</type>
39         <type>typedef void *<name>GLDEBUGPROCKHR</name>;</type>
40         <type>typedef void *<name>GLVULKANPROCNV</name>;</type>
41     </types>
43     <commands namespace="GL">
44         <command>
45             <proto>GLint <name>glDebugEntry</name></proto>
46             <param><ptype>GLint</ptype> <name>unknown1</name></param>
47             <param><ptype>GLint</ptype> <name>unknown2</name></param>
48         </command>
49         <command>
50             <proto>GLuint <name>glBufferRegionEnabled</name></proto>
51         </command>
52         <command>
53             <proto>void <name>glDeleteBufferRegion</name></proto>
54             <param><ptype>GLenum</ptype> <name>region</name></param>
55         </command>
56         <command>
57             <proto>void <name>glDrawBufferRegion</name></proto>
58             <param><ptype>GLenum</ptype> <name>region</name></param>
59             <param><ptype>GLint</ptype> <name>x</name></param>
60             <param><ptype>GLint</ptype> <name>y</name></param>
61             <param><ptype>GLsizei</ptype> <name>width</name></param>
62             <param><ptype>GLsizei</ptype> <name>height</name></param>
63             <param><ptype>GLint</ptype> <name>xDest</name></param>
64             <param><ptype>GLint</ptype> <name>yDest</name></param>
65         </command>
66         <command>
67             <proto>GLuint <name>glNewBufferRegion</name></proto>
68             <param><ptype>GLenum</ptype> <name>type</name></param>
69         </command>
70         <command>
71             <proto>void <name>glReadBufferRegion</name></proto>
72             <param><ptype>GLenum</ptype> <name>region</name></param>
73             <param><ptype>GLint</ptype> <name>x</name></param>
74             <param><ptype>GLint</ptype> <name>y</name></param>
75             <param><ptype>GLsizei</ptype> <name>width</name></param>
76             <param><ptype>GLsizei</ptype> <name>height</name></param>
77         </command>
78         <command>
79             <proto>void <name>glMTexCoord2fSGIS</name></proto>
80             <param><ptype>GLenum</ptype> <name>target</name></param>
81             <param><ptype>GLfloat</ptype> <name>s</name></param>
82             <param><ptype>GLfloat</ptype> <name>t</name></param>
83         </command>
84         <command>
85             <proto>void <name>glMTexCoord2fvSGIS</name></proto>
86             <param><ptype>GLenum</ptype> <name>target</name></param>
87             <param><ptype>GLfloat *</ptype> <name>v</name></param>
88         </command>
89         <command>
90             <proto>void <name>glMultiTexCoord1dSGIS</name></proto>
91             <param><ptype>GLenum</ptype> <name>target</name></param>
92             <param><ptype>GLdouble</ptype> <name>s</name></param>
93         </command>
94         <command>
95             <proto>void <name>glMultiTexCoord1dvSGIS</name></proto>
96             <param><ptype>GLenum</ptype> <name>target</name></param>
97             <param><ptype>GLdouble *</ptype> <name>v</name></param>
98         </command>
99         <command>
100             <proto>void <name>glMultiTexCoord1fSGIS</name></proto>
101             <param><ptype>GLenum</ptype> <name>target</name></param>
102             <param><ptype>GLfloat</ptype> <name>s</name></param>
103         </command>
104         <command>
105             <proto>void <name>glMultiTexCoord1fvSGIS</name></proto>
106             <param><ptype>GLenum</ptype> <name>target</name></param>
107             <param><ptype>const GLfloat *</ptype> <name>v</name></param>
108         </command>
109         <command>
110             <proto>void <name>glMultiTexCoord1iSGIS</name></proto>
111             <param><ptype>GLenum</ptype> <name>target</name></param>
112             <param><ptype>GLint</ptype> <name>s</name></param>
113         </command>
114         <command>
115             <proto>void <name>glMultiTexCoord1ivSGIS</name></proto>
116             <param><ptype>GLenum</ptype> <name>target</name></param>
117             <param><ptype>GLint *</ptype> <name>v</name></param>
118         </command>
119         <command>
120             <proto>void <name>glMultiTexCoord1sSGIS</name></proto>
121             <param><ptype>GLenum</ptype> <name>target</name></param>
122             <param><ptype>GLshort</ptype> <name>s</name></param>
123         </command>
124         <command>
125             <proto>void <name>glMultiTexCoord1svSGIS</name></proto>
126             <param><ptype>GLenum</ptype> <name>target</name></param>
127             <param><ptype>GLshort *</ptype> <name>v</name></param>
128         </command>
129         <command>
130             <proto>void <name>glMultiTexCoord2dSGIS</name></proto>
131             <param><ptype>GLenum</ptype> <name>target</name></param>
132             <param><ptype>GLdouble</ptype> <name>s</name></param>
133             <param><ptype>GLdouble</ptype> <name>t</name></param>
134         </command>
135         <command>
136             <proto>void <name>glMultiTexCoord2dvSGIS</name></proto>
137             <param><ptype>GLenum</ptype> <name>target</name></param>
138             <param><ptype>GLdouble *</ptype> <name>v</name></param>
139         </command>
140         <command>
141             <proto>void <name>glMultiTexCoord2fSGIS</name></proto>
142             <param><ptype>GLenum</ptype> <name>target</name></param>
143             <param><ptype>GLfloat</ptype> <name>s</name></param>
144             <param><ptype>GLfloat</ptype> <name>t</name></param>
145         </command>
146         <command>
147             <proto>void <name>glMultiTexCoord2fvSGIS</name></proto>
148             <param><ptype>GLenum</ptype> <name>target</name></param>
149             <param><ptype>GLfloat *</ptype> <name>v</name></param>
150         </command>
151         <command>
152             <proto>void <name>glMultiTexCoord2iSGIS</name></proto>
153             <param><ptype>GLenum</ptype> <name>target</name></param>
154             <param><ptype>GLint</ptype> <name>s</name></param>
155             <param><ptype>GLint</ptype> <name>t</name></param>
156         </command>
157         <command>
158             <proto>void <name>glMultiTexCoord2ivSGIS</name></proto>
159             <param><ptype>GLenum</ptype> <name>target</name></param>
160             <param><ptype>GLint *</ptype> <name>v</name></param>
161         </command>
162         <command>
163             <proto>void <name>glMultiTexCoord2sSGIS</name></proto>
164             <param><ptype>GLenum</ptype> <name>target</name></param>
165             <param><ptype>GLshort</ptype> <name>s</name></param>
166             <param><ptype>GLshort</ptype> <name>t</name></param>
167         </command>
168         <command>
169             <proto>void <name>glMultiTexCoord2svSGIS</name></proto>
170             <param><ptype>GLenum</ptype> <name>target</name></param>
171             <param><ptype>GLshort *</ptype> <name>v</name></param>
172         </command>
173         <command>
174             <proto>void <name>glMultiTexCoord3dSGIS</name></proto>
175             <param><ptype>GLenum</ptype> <name>target</name></param>
176             <param><ptype>GLdouble</ptype> <name>s</name></param>
177             <param><ptype>GLdouble</ptype> <name>t</name></param>
178             <param><ptype>GLdouble</ptype> <name>r</name></param>
179         </command>
180         <command>
181             <proto>void <name>glMultiTexCoord3dvSGIS</name></proto>
182             <param><ptype>GLenum</ptype> <name>target</name></param>
183             <param><ptype>GLdouble *</ptype> <name>v</name></param>
184         </command>
185         <command>
186             <proto>void <name>glMultiTexCoord3fSGIS</name></proto>
187             <param><ptype>GLenum</ptype> <name>target</name></param>
188             <param><ptype>GLfloat</ptype> <name>s</name></param>
189             <param><ptype>GLfloat</ptype> <name>t</name></param>
190             <param><ptype>GLfloat</ptype> <name>r</name></param>
191         </command>
192         <command>
193             <proto>void <name>glMultiTexCoord3fvSGIS</name></proto>
194             <param><ptype>GLenum</ptype> <name>target</name></param>
195             <param><ptype>GLfloat *</ptype> <name>v</name></param>
196         </command>
197         <command>
198             <proto>void <name>glMultiTexCoord3iSGIS</name></proto>
199             <param><ptype>GLenum</ptype> <name>target</name></param>
200             <param><ptype>GLint</ptype> <name>s</name></param>
201             <param><ptype>GLint</ptype> <name>t</name></param>
202             <param><ptype>GLint</ptype> <name>r</name></param>
203         </command>
204         <command>
205             <proto>void <name>glMultiTexCoord3ivSGIS</name></proto>
206             <param><ptype>GLenum</ptype> <name>target</name></param>
207             <param><ptype>GLint *</ptype> <name>v</name></param>
208         </command>
209         <command>
210             <proto>void <name>glMultiTexCoord3sSGIS</name></proto>
211             <param><ptype>GLenum</ptype> <name>target</name></param>
212             <param><ptype>GLshort</ptype> <name>s</name></param>
213             <param><ptype>GLshort</ptype> <name>t</name></param>
214             <param><ptype>GLshort</ptype> <name>r</name></param>
215         </command>
216         <command>
217             <proto>void <name>glMultiTexCoord3svSGIS</name></proto>
218             <param><ptype>GLenum</ptype> <name>target</name></param>
219             <param><ptype>GLshort *</ptype> <name>v</name></param>
220         </command>
221         <command>
222             <proto>void <name>glMultiTexCoord4dSGIS</name></proto>
223             <param><ptype>GLenum</ptype> <name>target</name></param>
224             <param><ptype>GLdouble</ptype> <name>s</name></param>
225             <param><ptype>GLdouble</ptype> <name>t</name></param>
226             <param><ptype>GLdouble</ptype> <name>r</name></param>
227             <param><ptype>GLdouble</ptype> <name>q</name></param>
228         </command>
229         <command>
230             <proto>void <name>glMultiTexCoord4dvSGIS</name></proto>
231             <param><ptype>GLenum</ptype> <name>target</name></param>
232             <param><ptype>GLdouble *</ptype> <name>v</name></param>
233         </command>
234         <command>
235             <proto>void <name>glMultiTexCoord4fSGIS</name></proto>
236             <param><ptype>GLenum</ptype> <name>target</name></param>
237             <param><ptype>GLfloat</ptype> <name>s</name></param>
238             <param><ptype>GLfloat</ptype> <name>t</name></param>
239             <param><ptype>GLfloat</ptype> <name>r</name></param>
240             <param><ptype>GLfloat</ptype> <name>q</name></param>
241         </command>
242         <command>
243             <proto>void <name>glMultiTexCoord4fvSGIS</name></proto>
244             <param><ptype>GLenum</ptype> <name>target</name></param>
245             <param><ptype>GLfloat *</ptype> <name>v</name></param>
246         </command>
247         <command>
248             <proto>void <name>glMultiTexCoord4iSGIS</name></proto>
249             <param><ptype>GLenum</ptype> <name>target</name></param>
250             <param><ptype>GLint</ptype> <name>s</name></param>
251             <param><ptype>GLint</ptype> <name>t</name></param>
252             <param><ptype>GLint</ptype> <name>r</name></param>
253             <param><ptype>GLint</ptype> <name>q</name></param>
254         </command>
255         <command>
256             <proto>void <name>glMultiTexCoord4ivSGIS</name></proto>
257             <param><ptype>GLenum</ptype> <name>target</name></param>
258             <param><ptype>GLint *</ptype> <name>v</name></param>
259         </command>
260         <command>
261             <proto>void <name>glMultiTexCoord4sSGIS</name></proto>
262             <param><ptype>GLenum</ptype> <name>target</name></param>
263             <param><ptype>GLshort</ptype> <name>s</name></param>
264             <param><ptype>GLshort</ptype> <name>t</name></param>
265             <param><ptype>GLshort</ptype> <name>r</name></param>
266             <param><ptype>GLshort</ptype> <name>q</name></param>
267         </command>
268         <command>
269             <proto>void <name>glMultiTexCoord4svSGIS</name></proto>
270             <param><ptype>GLenum</ptype> <name>target</name></param>
271             <param><ptype>GLshort *</ptype> <name>v</name></param>
272         </command>
273         <command>
274             <proto>void <name>glMultiTexCoordPointerSGIS</name></proto>
275             <param><ptype>GLenum</ptype> <name>target</name></param>
276             <param><ptype>GLint</ptype> <name>size</name></param>
277             <param><ptype>GLenum</ptype> <name>type</name></param>
278             <param><ptype>GLsizei</ptype> <name>stride</name></param>
279             <param><ptype>GLvoid *</ptype> <name>pointer</name></param>
280         </command>
281         <command>
282             <proto>void <name>glSelectTextureSGIS</name></proto>
283             <param><ptype>GLenum</ptype> <name>target</name></param>
284         </command>
285         <command>
286             <proto>void <name>glSelectTextureCoordSetSGIS</name></proto>
287             <param><ptype>GLenum</ptype> <name>target</name></param>
288         </command>
289         <command>
290             <proto>void <name>glDeleteObjectBufferATI</name></proto>
291             <param><ptype>GLuint</ptype> <name>buffer</name></param>
292         </command>
293     </commands>
295     <commands namespace="WGL">
296         <command>
297             <proto>int <name>wglDescribePixelFormat</name></proto>
298             <param><ptype>HDC</ptype> <name>hdc</name></param>
299             <param>int <name>ipfd</name></param>
300             <param><ptype>UINT</ptype> <name>cjpfd</name></param>
301             <!-- pixel format is wrongly specified 'const' in wgl.xml -->
302             <param><ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
303         </command>
304         <command>
305             <proto>BOOL <name>wglSetPixelFormatWINE</name></proto>
306             <param><ptype>HDC</ptype> <name>hdc</name></param>
307             <param>int <name>format</name></param>
308         </command>
309         <command>
310             <proto>BOOL <name>wglQueryCurrentRendererIntegerWINE</name></proto>
311             <param><ptype>GLenum</ptype> <name>attribute</name></param>
312             <param><ptype>GLuint</ptype> *<name>value</name></param>
313         </command>
314         <command>
315             <proto>const GLchar *<name>wglQueryCurrentRendererStringWINE</name></proto>
316             <param><ptype>GLenum</ptype> <name>attribute</name></param>
317         </command>
318         <command>
319             <proto>BOOL <name>wglQueryRendererIntegerWINE</name></proto>
320             <param><ptype>HDC</ptype> <name>dc</name></param>
321             <param><ptype>GLint</ptype> <name>renderer</name></param>
322             <param><ptype>GLenum</ptype> <name>attribute</name></param>
323             <param><ptype>GLuint</ptype> *<name>value</name></param>
324         </command>
325         <command>
326             <proto>const GLchar *<name>wglQueryRendererStringWINE</name></proto>
327             <param><ptype>HDC</ptype> <name>dc</name></param>
328             <param><ptype>GLint</ptype> <name>renderer</name></param>
329             <param><ptype>GLenum</ptype> <name>attribute</name></param>
330         </command>
331     </commands>
333     <feature api="gl" name="GL_VERSION_1_0" number="1.0">
334         <require>
335             <command name="glDebugEntry"/>
336         </require>
337     </feature>
339     <feature api="wgl" name="WGL_VERSION_1_0" number="1.0">
340         <require>
341             <command name="wglDescribePixelFormat"/>
342         </require>
343     </feature>
345     <enums namespace="WGL" group="RendererWINE">
346         <enum value="0x8183" name="WGL_RENDERER_VENDOR_ID_WINE"/>
347         <enum value="0x8184" name="WGL_RENDERER_DEVICE_ID_WINE"/>
348         <enum value="0x8185" name="WGL_RENDERER_VERSION_WINE"/>
349         <enum value="0x8186" name="WGL_RENDERER_ACCELERATED_WINE"/>
350         <enum value="0x8187" name="WGL_RENDERER_VIDEO_MEMORY_WINE"/>
351         <enum value="0x8188" name="WGL_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_WINE"/>
352         <enum value="0x8189" name="WGL_RENDERER_PREFERRED_PROFILE_WINE"/>
353         <enum value="0x818A" name="WGL_RENDERER_OPENGL_CORE_PROFILE_VERSION_WINE"/>
354         <enum value="0x818B" name="WGL_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_WINE"/>
355         <enum value="0x818C" name="WGL_RENDERER_OPENGL_ES_PROFILE_VERSION_WINE"/>
356         <enum value="0x818D" name="WGL_RENDERER_OPENGL_ES2_PROFILE_VERSION_WINE"/>
357         <enum value="0x818E" name="WGL_RENDERER_ID_WINE"/>
358     </enums>
360     <extensions>
361         <extension name="GL_KTX_buffer_region" supported="gl">
362             <require>
363                 <command name="glBufferRegionEnabled"/>
364                 <command name="glDeleteBufferRegion"/>
365                 <command name="glDrawBufferRegion"/>
366                 <command name="glNewBufferRegion"/>
367                 <command name="glReadBufferRegion"/>
368             </require>
369         </extension>
370         <extension name="GL_SGIS_multitexture" supported="gl">
371             <require>
372                 <command name="glMTexCoord2fSGIS"/>
373                 <command name="glMTexCoord2fvSGIS"/>
374                 <command name="glMultiTexCoord1dSGIS"/>
375                 <command name="glMultiTexCoord1dvSGIS"/>
376                 <command name="glMultiTexCoord1fSGIS"/>
377                 <command name="glMultiTexCoord1fvSGIS"/>
378                 <command name="glMultiTexCoord1iSGIS"/>
379                 <command name="glMultiTexCoord1ivSGIS"/>
380                 <command name="glMultiTexCoord1sSGIS"/>
381                 <command name="glMultiTexCoord1svSGIS"/>
382                 <command name="glMultiTexCoord2dSGIS"/>
383                 <command name="glMultiTexCoord2dvSGIS"/>
384                 <command name="glMultiTexCoord2fSGIS"/>
385                 <command name="glMultiTexCoord2fvSGIS"/>
386                 <command name="glMultiTexCoord2iSGIS"/>
387                 <command name="glMultiTexCoord2ivSGIS"/>
388                 <command name="glMultiTexCoord2sSGIS"/>
389                 <command name="glMultiTexCoord2svSGIS"/>
390                 <command name="glMultiTexCoord3dSGIS"/>
391                 <command name="glMultiTexCoord3dvSGIS"/>
392                 <command name="glMultiTexCoord3fSGIS"/>
393                 <command name="glMultiTexCoord3fvSGIS"/>
394                 <command name="glMultiTexCoord3iSGIS"/>
395                 <command name="glMultiTexCoord3ivSGIS"/>
396                 <command name="glMultiTexCoord3sSGIS"/>
397                 <command name="glMultiTexCoord3svSGIS"/>
398                 <command name="glMultiTexCoord4dSGIS"/>
399                 <command name="glMultiTexCoord4dvSGIS"/>
400                 <command name="glMultiTexCoord4fSGIS"/>
401                 <command name="glMultiTexCoord4fvSGIS"/>
402                 <command name="glMultiTexCoord4iSGIS"/>
403                 <command name="glMultiTexCoord4ivSGIS"/>
404                 <command name="glMultiTexCoord4sSGIS"/>
405                 <command name="glMultiTexCoord4svSGIS"/>
406                 <command name="glMultiTexCoordPointerSGIS"/>
407                 <command name="glSelectTextureCoordSetSGIS"/>
408                 <command name="glSelectTextureSGIS"/>
409             </require>
410         </extension>
411         <extension name="GL_ATI_vertex_array_object" supported="gl">
412             <require>
413                 <command name="glDeleteObjectBufferATI"/>
414             </require>
415         </extension>
416         <extension name="WGL_WINE_pixel_format_passthrough" supported="wgl">
417             <require>
418                 <command name="wglSetPixelFormatWINE"/>
419             </require>
420         </extension>
421         <extension name="WGL_WINE_query_renderer" supported="wgl">
422             <require>
423                 <enum name="WGL_RENDERER_ACCELERATED_WINE"/>
424                 <enum name="WGL_RENDERER_DEVICE_ID_WINE"/>
425                 <enum name="WGL_RENDERER_ID_WINE"/>
426                 <enum name="WGL_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_WINE"/>
427                 <enum name="WGL_RENDERER_OPENGL_CORE_PROFILE_VERSION_WINE"/>
428                 <enum name="WGL_RENDERER_OPENGL_ES2_PROFILE_VERSION_WINE"/>
429                 <enum name="WGL_RENDERER_OPENGL_ES_PROFILE_VERSION_WINE"/>
430                 <enum name="WGL_RENDERER_PREFERRED_PROFILE_WINE"/>
431                 <enum name="WGL_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_WINE"/>
432                 <enum name="WGL_RENDERER_VENDOR_ID_WINE"/>
433                 <enum name="WGL_RENDERER_VERSION_WINE"/>
434                 <enum name="WGL_RENDERER_VIDEO_MEMORY_WINE"/>
435                 <command name="wglQueryCurrentRendererIntegerWINE"/>
436                 <command name="wglQueryCurrentRendererStringWINE"/>
437                 <command name="wglQueryRendererIntegerWINE"/>
438                 <command name="wglQueryRendererStringWINE"/>
439             </require>
440         </extension>
441     </extensions>
442 </registry>