1 /* GdkGLExt - OpenGL Extension to GDK
2  * Copyright (C) 2002-2004  Naofumi Yasufuku
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
17  */
18 
19 /*
20  * This is a generated file.  Please modify "gen-gdkglwglext-h.pl".
21  */
22 
23 #ifndef __GDK_GL_WGLEXT_H__
24 #define __GDK_GL_WGLEXT_H__
25 
26 #include <glib.h>
27 
28 #ifdef G_OS_WIN32
29 #define WIN32_LEAN_AND_MEAN 1
30 #include <windows.h>
31 #endif
32 
33 #include <GL/gl.h>
34 
35 #include <gdk/gdkgldefs.h>
36 #include <gdk/gdkglquery.h>
37 #include <gdk/gdkglconfig.h>
38 
39 #undef __wglext_h_
40 #undef WGL_WGLEXT_VERSION
41 #include <gdk/glext/wglext.h>
42 #include <gdk/glext/wglext-extra.h>
43 
44 G_BEGIN_DECLS
45 
46 /*
47  * WGL_ARB_buffer_region
48  */
49 
50 /* wglCreateBufferRegionARB */
51 typedef HANDLE (WINAPI * GdkGLProc_wglCreateBufferRegionARB) (HDC hDC, int iLayerPlane, UINT uType);
52 GdkGLProc    gdk_gl_get_wglCreateBufferRegionARB (void);
53 #define      gdk_gl_wglCreateBufferRegionARB(proc, hDC, iLayerPlane, uType) \
54   ( ((GdkGLProc_wglCreateBufferRegionARB) (proc)) (hDC, iLayerPlane, uType) )
55 
56 /* wglDeleteBufferRegionARB */
57 typedef VOID (WINAPI * GdkGLProc_wglDeleteBufferRegionARB) (HANDLE hRegion);
58 GdkGLProc    gdk_gl_get_wglDeleteBufferRegionARB (void);
59 #define      gdk_gl_wglDeleteBufferRegionARB(proc, hRegion) \
60   ( ((GdkGLProc_wglDeleteBufferRegionARB) (proc)) (hRegion) )
61 
62 /* wglSaveBufferRegionARB */
63 typedef BOOL (WINAPI * GdkGLProc_wglSaveBufferRegionARB) (HANDLE hRegion, int x, int y, int width, int height);
64 GdkGLProc    gdk_gl_get_wglSaveBufferRegionARB (void);
65 #define      gdk_gl_wglSaveBufferRegionARB(proc, hRegion, x, y, width, height) \
66   ( ((GdkGLProc_wglSaveBufferRegionARB) (proc)) (hRegion, x, y, width, height) )
67 
68 /* wglRestoreBufferRegionARB */
69 typedef BOOL (WINAPI * GdkGLProc_wglRestoreBufferRegionARB) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
70 GdkGLProc    gdk_gl_get_wglRestoreBufferRegionARB (void);
71 #define      gdk_gl_wglRestoreBufferRegionARB(proc, hRegion, x, y, width, height, xSrc, ySrc) \
72   ( ((GdkGLProc_wglRestoreBufferRegionARB) (proc)) (hRegion, x, y, width, height, xSrc, ySrc) )
73 
74 /* proc struct */
75 
76 typedef struct _GdkGL_WGL_ARB_buffer_region GdkGL_WGL_ARB_buffer_region;
77 
78 struct _GdkGL_WGL_ARB_buffer_region
79 {
80   GdkGLProc_wglCreateBufferRegionARB wglCreateBufferRegionARB;
81   GdkGLProc_wglDeleteBufferRegionARB wglDeleteBufferRegionARB;
82   GdkGLProc_wglSaveBufferRegionARB wglSaveBufferRegionARB;
83   GdkGLProc_wglRestoreBufferRegionARB wglRestoreBufferRegionARB;
84 };
85 
86 GdkGL_WGL_ARB_buffer_region *gdk_gl_get_WGL_ARB_buffer_region (GdkGLConfig *glconfig);
87 
88 /*
89  * WGL_ARB_extensions_string
90  */
91 
92 /* wglGetExtensionsStringARB */
93 typedef const char * (WINAPI * GdkGLProc_wglGetExtensionsStringARB) (HDC hdc);
94 GdkGLProc    gdk_gl_get_wglGetExtensionsStringARB (void);
95 #define      gdk_gl_wglGetExtensionsStringARB(proc, hdc) \
96   ( ((GdkGLProc_wglGetExtensionsStringARB) (proc)) (hdc) )
97 
98 /* proc struct */
99 
100 typedef struct _GdkGL_WGL_ARB_extensions_string GdkGL_WGL_ARB_extensions_string;
101 
102 struct _GdkGL_WGL_ARB_extensions_string
103 {
104   GdkGLProc_wglGetExtensionsStringARB wglGetExtensionsStringARB;
105 };
106 
107 GdkGL_WGL_ARB_extensions_string *gdk_gl_get_WGL_ARB_extensions_string (GdkGLConfig *glconfig);
108 
109 /*
110  * WGL_ARB_pixel_format
111  */
112 
113 /* wglGetPixelFormatAttribivARB */
114 typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribivARB) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
115 GdkGLProc    gdk_gl_get_wglGetPixelFormatAttribivARB (void);
116 #define      gdk_gl_wglGetPixelFormatAttribivARB(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) \
117   ( ((GdkGLProc_wglGetPixelFormatAttribivARB) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) )
118 
119 /* wglGetPixelFormatAttribfvARB */
120 typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribfvARB) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
121 GdkGLProc    gdk_gl_get_wglGetPixelFormatAttribfvARB (void);
122 #define      gdk_gl_wglGetPixelFormatAttribfvARB(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) \
123   ( ((GdkGLProc_wglGetPixelFormatAttribfvARB) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) )
124 
125 /* wglChoosePixelFormatARB */
126 typedef BOOL (WINAPI * GdkGLProc_wglChoosePixelFormatARB) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
127 GdkGLProc    gdk_gl_get_wglChoosePixelFormatARB (void);
128 #define      gdk_gl_wglChoosePixelFormatARB(proc, hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) \
129   ( ((GdkGLProc_wglChoosePixelFormatARB) (proc)) (hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) )
130 
131 /* proc struct */
132 
133 typedef struct _GdkGL_WGL_ARB_pixel_format GdkGL_WGL_ARB_pixel_format;
134 
135 struct _GdkGL_WGL_ARB_pixel_format
136 {
137   GdkGLProc_wglGetPixelFormatAttribivARB wglGetPixelFormatAttribivARB;
138   GdkGLProc_wglGetPixelFormatAttribfvARB wglGetPixelFormatAttribfvARB;
139   GdkGLProc_wglChoosePixelFormatARB wglChoosePixelFormatARB;
140 };
141 
142 GdkGL_WGL_ARB_pixel_format *gdk_gl_get_WGL_ARB_pixel_format (GdkGLConfig *glconfig);
143 
144 /*
145  * WGL_ARB_make_current_read
146  */
147 
148 /* wglMakeContextCurrentARB */
149 typedef BOOL (WINAPI * GdkGLProc_wglMakeContextCurrentARB) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
150 GdkGLProc    gdk_gl_get_wglMakeContextCurrentARB (void);
151 #define      gdk_gl_wglMakeContextCurrentARB(proc, hDrawDC, hReadDC, hglrc) \
152   ( ((GdkGLProc_wglMakeContextCurrentARB) (proc)) (hDrawDC, hReadDC, hglrc) )
153 
154 /* wglGetCurrentReadDCARB */
155 typedef HDC (WINAPI * GdkGLProc_wglGetCurrentReadDCARB) (void);
156 GdkGLProc    gdk_gl_get_wglGetCurrentReadDCARB (void);
157 #define      gdk_gl_wglGetCurrentReadDCARB(proc) \
158   ( ((GdkGLProc_wglGetCurrentReadDCARB) (proc)) () )
159 
160 /* proc struct */
161 
162 typedef struct _GdkGL_WGL_ARB_make_current_read GdkGL_WGL_ARB_make_current_read;
163 
164 struct _GdkGL_WGL_ARB_make_current_read
165 {
166   GdkGLProc_wglMakeContextCurrentARB wglMakeContextCurrentARB;
167   GdkGLProc_wglGetCurrentReadDCARB wglGetCurrentReadDCARB;
168 };
169 
170 GdkGL_WGL_ARB_make_current_read *gdk_gl_get_WGL_ARB_make_current_read (GdkGLConfig *glconfig);
171 
172 /*
173  * WGL_ARB_pbuffer
174  */
175 
176 /* wglCreatePbufferARB */
177 typedef HPBUFFERARB (WINAPI * GdkGLProc_wglCreatePbufferARB) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
178 GdkGLProc    gdk_gl_get_wglCreatePbufferARB (void);
179 #define      gdk_gl_wglCreatePbufferARB(proc, hDC, iPixelFormat, iWidth, iHeight, piAttribList) \
180   ( ((GdkGLProc_wglCreatePbufferARB) (proc)) (hDC, iPixelFormat, iWidth, iHeight, piAttribList) )
181 
182 /* wglGetPbufferDCARB */
183 typedef HDC (WINAPI * GdkGLProc_wglGetPbufferDCARB) (HPBUFFERARB hPbuffer);
184 GdkGLProc    gdk_gl_get_wglGetPbufferDCARB (void);
185 #define      gdk_gl_wglGetPbufferDCARB(proc, hPbuffer) \
186   ( ((GdkGLProc_wglGetPbufferDCARB) (proc)) (hPbuffer) )
187 
188 /* wglReleasePbufferDCARB */
189 typedef int (WINAPI * GdkGLProc_wglReleasePbufferDCARB) (HPBUFFERARB hPbuffer, HDC hDC);
190 GdkGLProc    gdk_gl_get_wglReleasePbufferDCARB (void);
191 #define      gdk_gl_wglReleasePbufferDCARB(proc, hPbuffer, hDC) \
192   ( ((GdkGLProc_wglReleasePbufferDCARB) (proc)) (hPbuffer, hDC) )
193 
194 /* wglDestroyPbufferARB */
195 typedef BOOL (WINAPI * GdkGLProc_wglDestroyPbufferARB) (HPBUFFERARB hPbuffer);
196 GdkGLProc    gdk_gl_get_wglDestroyPbufferARB (void);
197 #define      gdk_gl_wglDestroyPbufferARB(proc, hPbuffer) \
198   ( ((GdkGLProc_wglDestroyPbufferARB) (proc)) (hPbuffer) )
199 
200 /* wglQueryPbufferARB */
201 typedef BOOL (WINAPI * GdkGLProc_wglQueryPbufferARB) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
202 GdkGLProc    gdk_gl_get_wglQueryPbufferARB (void);
203 #define      gdk_gl_wglQueryPbufferARB(proc, hPbuffer, iAttribute, piValue) \
204   ( ((GdkGLProc_wglQueryPbufferARB) (proc)) (hPbuffer, iAttribute, piValue) )
205 
206 /* proc struct */
207 
208 typedef struct _GdkGL_WGL_ARB_pbuffer GdkGL_WGL_ARB_pbuffer;
209 
210 struct _GdkGL_WGL_ARB_pbuffer
211 {
212   GdkGLProc_wglCreatePbufferARB wglCreatePbufferARB;
213   GdkGLProc_wglGetPbufferDCARB wglGetPbufferDCARB;
214   GdkGLProc_wglReleasePbufferDCARB wglReleasePbufferDCARB;
215   GdkGLProc_wglDestroyPbufferARB wglDestroyPbufferARB;
216   GdkGLProc_wglQueryPbufferARB wglQueryPbufferARB;
217 };
218 
219 GdkGL_WGL_ARB_pbuffer *gdk_gl_get_WGL_ARB_pbuffer (GdkGLConfig *glconfig);
220 
221 /*
222  * WGL_ARB_render_texture
223  */
224 
225 /* wglBindTexImageARB */
226 typedef BOOL (WINAPI * GdkGLProc_wglBindTexImageARB) (HPBUFFERARB hPbuffer, int iBuffer);
227 GdkGLProc    gdk_gl_get_wglBindTexImageARB (void);
228 #define      gdk_gl_wglBindTexImageARB(proc, hPbuffer, iBuffer) \
229   ( ((GdkGLProc_wglBindTexImageARB) (proc)) (hPbuffer, iBuffer) )
230 
231 /* wglReleaseTexImageARB */
232 typedef BOOL (WINAPI * GdkGLProc_wglReleaseTexImageARB) (HPBUFFERARB hPbuffer, int iBuffer);
233 GdkGLProc    gdk_gl_get_wglReleaseTexImageARB (void);
234 #define      gdk_gl_wglReleaseTexImageARB(proc, hPbuffer, iBuffer) \
235   ( ((GdkGLProc_wglReleaseTexImageARB) (proc)) (hPbuffer, iBuffer) )
236 
237 /* wglSetPbufferAttribARB */
238 typedef BOOL (WINAPI * GdkGLProc_wglSetPbufferAttribARB) (HPBUFFERARB hPbuffer, const int *piAttribList);
239 GdkGLProc    gdk_gl_get_wglSetPbufferAttribARB (void);
240 #define      gdk_gl_wglSetPbufferAttribARB(proc, hPbuffer, piAttribList) \
241   ( ((GdkGLProc_wglSetPbufferAttribARB) (proc)) (hPbuffer, piAttribList) )
242 
243 /* proc struct */
244 
245 typedef struct _GdkGL_WGL_ARB_render_texture GdkGL_WGL_ARB_render_texture;
246 
247 struct _GdkGL_WGL_ARB_render_texture
248 {
249   GdkGLProc_wglBindTexImageARB wglBindTexImageARB;
250   GdkGLProc_wglReleaseTexImageARB wglReleaseTexImageARB;
251   GdkGLProc_wglSetPbufferAttribARB wglSetPbufferAttribARB;
252 };
253 
254 GdkGL_WGL_ARB_render_texture *gdk_gl_get_WGL_ARB_render_texture (GdkGLConfig *glconfig);
255 
256 /*
257  * WGL_EXT_display_color_table
258  */
259 
260 /* wglCreateDisplayColorTableEXT */
261 typedef GLboolean (WINAPI * GdkGLProc_wglCreateDisplayColorTableEXT) (GLushort id);
262 GdkGLProc    gdk_gl_get_wglCreateDisplayColorTableEXT (void);
263 #define      gdk_gl_wglCreateDisplayColorTableEXT(proc, id) \
264   ( ((GdkGLProc_wglCreateDisplayColorTableEXT) (proc)) (id) )
265 
266 /* wglLoadDisplayColorTableEXT */
267 typedef GLboolean (WINAPI * GdkGLProc_wglLoadDisplayColorTableEXT) (const GLushort *table, GLuint length);
268 GdkGLProc    gdk_gl_get_wglLoadDisplayColorTableEXT (void);
269 #define      gdk_gl_wglLoadDisplayColorTableEXT(proc, table, length) \
270   ( ((GdkGLProc_wglLoadDisplayColorTableEXT) (proc)) (table, length) )
271 
272 /* wglBindDisplayColorTableEXT */
273 typedef GLboolean (WINAPI * GdkGLProc_wglBindDisplayColorTableEXT) (GLushort id);
274 GdkGLProc    gdk_gl_get_wglBindDisplayColorTableEXT (void);
275 #define      gdk_gl_wglBindDisplayColorTableEXT(proc, id) \
276   ( ((GdkGLProc_wglBindDisplayColorTableEXT) (proc)) (id) )
277 
278 /* wglDestroyDisplayColorTableEXT */
279 typedef VOID (WINAPI * GdkGLProc_wglDestroyDisplayColorTableEXT) (GLushort id);
280 GdkGLProc    gdk_gl_get_wglDestroyDisplayColorTableEXT (void);
281 #define      gdk_gl_wglDestroyDisplayColorTableEXT(proc, id) \
282   ( ((GdkGLProc_wglDestroyDisplayColorTableEXT) (proc)) (id) )
283 
284 /* proc struct */
285 
286 typedef struct _GdkGL_WGL_EXT_display_color_table GdkGL_WGL_EXT_display_color_table;
287 
288 struct _GdkGL_WGL_EXT_display_color_table
289 {
290   GdkGLProc_wglCreateDisplayColorTableEXT wglCreateDisplayColorTableEXT;
291   GdkGLProc_wglLoadDisplayColorTableEXT wglLoadDisplayColorTableEXT;
292   GdkGLProc_wglBindDisplayColorTableEXT wglBindDisplayColorTableEXT;
293   GdkGLProc_wglDestroyDisplayColorTableEXT wglDestroyDisplayColorTableEXT;
294 };
295 
296 GdkGL_WGL_EXT_display_color_table *gdk_gl_get_WGL_EXT_display_color_table (GdkGLConfig *glconfig);
297 
298 /*
299  * WGL_EXT_extensions_string
300  */
301 
302 /* wglGetExtensionsStringEXT */
303 typedef const char * (WINAPI * GdkGLProc_wglGetExtensionsStringEXT) (void);
304 GdkGLProc    gdk_gl_get_wglGetExtensionsStringEXT (void);
305 #define      gdk_gl_wglGetExtensionsStringEXT(proc) \
306   ( ((GdkGLProc_wglGetExtensionsStringEXT) (proc)) () )
307 
308 /* proc struct */
309 
310 typedef struct _GdkGL_WGL_EXT_extensions_string GdkGL_WGL_EXT_extensions_string;
311 
312 struct _GdkGL_WGL_EXT_extensions_string
313 {
314   GdkGLProc_wglGetExtensionsStringEXT wglGetExtensionsStringEXT;
315 };
316 
317 GdkGL_WGL_EXT_extensions_string *gdk_gl_get_WGL_EXT_extensions_string (GdkGLConfig *glconfig);
318 
319 /*
320  * WGL_EXT_make_current_read
321  */
322 
323 /* wglMakeContextCurrentEXT */
324 typedef BOOL (WINAPI * GdkGLProc_wglMakeContextCurrentEXT) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
325 GdkGLProc    gdk_gl_get_wglMakeContextCurrentEXT (void);
326 #define      gdk_gl_wglMakeContextCurrentEXT(proc, hDrawDC, hReadDC, hglrc) \
327   ( ((GdkGLProc_wglMakeContextCurrentEXT) (proc)) (hDrawDC, hReadDC, hglrc) )
328 
329 /* wglGetCurrentReadDCEXT */
330 typedef HDC (WINAPI * GdkGLProc_wglGetCurrentReadDCEXT) (void);
331 GdkGLProc    gdk_gl_get_wglGetCurrentReadDCEXT (void);
332 #define      gdk_gl_wglGetCurrentReadDCEXT(proc) \
333   ( ((GdkGLProc_wglGetCurrentReadDCEXT) (proc)) () )
334 
335 /* proc struct */
336 
337 typedef struct _GdkGL_WGL_EXT_make_current_read GdkGL_WGL_EXT_make_current_read;
338 
339 struct _GdkGL_WGL_EXT_make_current_read
340 {
341   GdkGLProc_wglMakeContextCurrentEXT wglMakeContextCurrentEXT;
342   GdkGLProc_wglGetCurrentReadDCEXT wglGetCurrentReadDCEXT;
343 };
344 
345 GdkGL_WGL_EXT_make_current_read *gdk_gl_get_WGL_EXT_make_current_read (GdkGLConfig *glconfig);
346 
347 /*
348  * WGL_EXT_pbuffer
349  */
350 
351 /* wglCreatePbufferEXT */
352 typedef HPBUFFEREXT (WINAPI * GdkGLProc_wglCreatePbufferEXT) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
353 GdkGLProc    gdk_gl_get_wglCreatePbufferEXT (void);
354 #define      gdk_gl_wglCreatePbufferEXT(proc, hDC, iPixelFormat, iWidth, iHeight, piAttribList) \
355   ( ((GdkGLProc_wglCreatePbufferEXT) (proc)) (hDC, iPixelFormat, iWidth, iHeight, piAttribList) )
356 
357 /* wglGetPbufferDCEXT */
358 typedef HDC (WINAPI * GdkGLProc_wglGetPbufferDCEXT) (HPBUFFEREXT hPbuffer);
359 GdkGLProc    gdk_gl_get_wglGetPbufferDCEXT (void);
360 #define      gdk_gl_wglGetPbufferDCEXT(proc, hPbuffer) \
361   ( ((GdkGLProc_wglGetPbufferDCEXT) (proc)) (hPbuffer) )
362 
363 /* wglReleasePbufferDCEXT */
364 typedef int (WINAPI * GdkGLProc_wglReleasePbufferDCEXT) (HPBUFFEREXT hPbuffer, HDC hDC);
365 GdkGLProc    gdk_gl_get_wglReleasePbufferDCEXT (void);
366 #define      gdk_gl_wglReleasePbufferDCEXT(proc, hPbuffer, hDC) \
367   ( ((GdkGLProc_wglReleasePbufferDCEXT) (proc)) (hPbuffer, hDC) )
368 
369 /* wglDestroyPbufferEXT */
370 typedef BOOL (WINAPI * GdkGLProc_wglDestroyPbufferEXT) (HPBUFFEREXT hPbuffer);
371 GdkGLProc    gdk_gl_get_wglDestroyPbufferEXT (void);
372 #define      gdk_gl_wglDestroyPbufferEXT(proc, hPbuffer) \
373   ( ((GdkGLProc_wglDestroyPbufferEXT) (proc)) (hPbuffer) )
374 
375 /* wglQueryPbufferEXT */
376 typedef BOOL (WINAPI * GdkGLProc_wglQueryPbufferEXT) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
377 GdkGLProc    gdk_gl_get_wglQueryPbufferEXT (void);
378 #define      gdk_gl_wglQueryPbufferEXT(proc, hPbuffer, iAttribute, piValue) \
379   ( ((GdkGLProc_wglQueryPbufferEXT) (proc)) (hPbuffer, iAttribute, piValue) )
380 
381 /* proc struct */
382 
383 typedef struct _GdkGL_WGL_EXT_pbuffer GdkGL_WGL_EXT_pbuffer;
384 
385 struct _GdkGL_WGL_EXT_pbuffer
386 {
387   GdkGLProc_wglCreatePbufferEXT wglCreatePbufferEXT;
388   GdkGLProc_wglGetPbufferDCEXT wglGetPbufferDCEXT;
389   GdkGLProc_wglReleasePbufferDCEXT wglReleasePbufferDCEXT;
390   GdkGLProc_wglDestroyPbufferEXT wglDestroyPbufferEXT;
391   GdkGLProc_wglQueryPbufferEXT wglQueryPbufferEXT;
392 };
393 
394 GdkGL_WGL_EXT_pbuffer *gdk_gl_get_WGL_EXT_pbuffer (GdkGLConfig *glconfig);
395 
396 /*
397  * WGL_EXT_pixel_format
398  */
399 
400 /* wglGetPixelFormatAttribivEXT */
401 typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribivEXT) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
402 GdkGLProc    gdk_gl_get_wglGetPixelFormatAttribivEXT (void);
403 #define      gdk_gl_wglGetPixelFormatAttribivEXT(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) \
404   ( ((GdkGLProc_wglGetPixelFormatAttribivEXT) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) )
405 
406 /* wglGetPixelFormatAttribfvEXT */
407 typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribfvEXT) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
408 GdkGLProc    gdk_gl_get_wglGetPixelFormatAttribfvEXT (void);
409 #define      gdk_gl_wglGetPixelFormatAttribfvEXT(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) \
410   ( ((GdkGLProc_wglGetPixelFormatAttribfvEXT) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) )
411 
412 /* wglChoosePixelFormatEXT */
413 typedef BOOL (WINAPI * GdkGLProc_wglChoosePixelFormatEXT) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
414 GdkGLProc    gdk_gl_get_wglChoosePixelFormatEXT (void);
415 #define      gdk_gl_wglChoosePixelFormatEXT(proc, hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) \
416   ( ((GdkGLProc_wglChoosePixelFormatEXT) (proc)) (hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) )
417 
418 /* proc struct */
419 
420 typedef struct _GdkGL_WGL_EXT_pixel_format GdkGL_WGL_EXT_pixel_format;
421 
422 struct _GdkGL_WGL_EXT_pixel_format
423 {
424   GdkGLProc_wglGetPixelFormatAttribivEXT wglGetPixelFormatAttribivEXT;
425   GdkGLProc_wglGetPixelFormatAttribfvEXT wglGetPixelFormatAttribfvEXT;
426   GdkGLProc_wglChoosePixelFormatEXT wglChoosePixelFormatEXT;
427 };
428 
429 GdkGL_WGL_EXT_pixel_format *gdk_gl_get_WGL_EXT_pixel_format (GdkGLConfig *glconfig);
430 
431 /*
432  * WGL_EXT_swap_control
433  */
434 
435 /* wglSwapIntervalEXT */
436 typedef BOOL (WINAPI * GdkGLProc_wglSwapIntervalEXT) (int interval);
437 GdkGLProc    gdk_gl_get_wglSwapIntervalEXT (void);
438 #define      gdk_gl_wglSwapIntervalEXT(proc, interval) \
439   ( ((GdkGLProc_wglSwapIntervalEXT) (proc)) (interval) )
440 
441 /* wglGetSwapIntervalEXT */
442 typedef int (WINAPI * GdkGLProc_wglGetSwapIntervalEXT) (void);
443 GdkGLProc    gdk_gl_get_wglGetSwapIntervalEXT (void);
444 #define      gdk_gl_wglGetSwapIntervalEXT(proc) \
445   ( ((GdkGLProc_wglGetSwapIntervalEXT) (proc)) () )
446 
447 /* proc struct */
448 
449 typedef struct _GdkGL_WGL_EXT_swap_control GdkGL_WGL_EXT_swap_control;
450 
451 struct _GdkGL_WGL_EXT_swap_control
452 {
453   GdkGLProc_wglSwapIntervalEXT wglSwapIntervalEXT;
454   GdkGLProc_wglGetSwapIntervalEXT wglGetSwapIntervalEXT;
455 };
456 
457 GdkGL_WGL_EXT_swap_control *gdk_gl_get_WGL_EXT_swap_control (GdkGLConfig *glconfig);
458 
459 /*
460  * WGL_NV_vertex_array_range
461  */
462 
463 /* wglAllocateMemoryNV */
464 typedef void* (WINAPI * GdkGLProc_wglAllocateMemoryNV) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
465 GdkGLProc    gdk_gl_get_wglAllocateMemoryNV (void);
466 #define      gdk_gl_wglAllocateMemoryNV(proc, size, readfreq, writefreq, priority) \
467   ( ((GdkGLProc_wglAllocateMemoryNV) (proc)) (size, readfreq, writefreq, priority) )
468 
469 /* wglFreeMemoryNV */
470 typedef void (WINAPI * GdkGLProc_wglFreeMemoryNV) (void *pointer);
471 GdkGLProc    gdk_gl_get_wglFreeMemoryNV (void);
472 #define      gdk_gl_wglFreeMemoryNV(proc, pointer) \
473   ( ((GdkGLProc_wglFreeMemoryNV) (proc)) (pointer) )
474 
475 /* proc struct */
476 
477 typedef struct _GdkGL_WGL_NV_vertex_array_range GdkGL_WGL_NV_vertex_array_range;
478 
479 struct _GdkGL_WGL_NV_vertex_array_range
480 {
481   GdkGLProc_wglAllocateMemoryNV wglAllocateMemoryNV;
482   GdkGLProc_wglFreeMemoryNV wglFreeMemoryNV;
483 };
484 
485 GdkGL_WGL_NV_vertex_array_range *gdk_gl_get_WGL_NV_vertex_array_range (GdkGLConfig *glconfig);
486 
487 /*
488  * WGL_OML_sync_control
489  */
490 
491 /* wglGetSyncValuesOML */
492 typedef BOOL (WINAPI * GdkGLProc_wglGetSyncValuesOML) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
493 GdkGLProc    gdk_gl_get_wglGetSyncValuesOML (void);
494 #define      gdk_gl_wglGetSyncValuesOML(proc, hdc, ust, msc, sbc) \
495   ( ((GdkGLProc_wglGetSyncValuesOML) (proc)) (hdc, ust, msc, sbc) )
496 
497 /* wglGetMscRateOML */
498 typedef BOOL (WINAPI * GdkGLProc_wglGetMscRateOML) (HDC hdc, INT32 *numerator, INT32 *denominator);
499 GdkGLProc    gdk_gl_get_wglGetMscRateOML (void);
500 #define      gdk_gl_wglGetMscRateOML(proc, hdc, numerator, denominator) \
501   ( ((GdkGLProc_wglGetMscRateOML) (proc)) (hdc, numerator, denominator) )
502 
503 /* wglSwapBuffersMscOML */
504 typedef INT64 (WINAPI * GdkGLProc_wglSwapBuffersMscOML) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
505 GdkGLProc    gdk_gl_get_wglSwapBuffersMscOML (void);
506 #define      gdk_gl_wglSwapBuffersMscOML(proc, hdc, target_msc, divisor, remainder) \
507   ( ((GdkGLProc_wglSwapBuffersMscOML) (proc)) (hdc, target_msc, divisor, remainder) )
508 
509 /* wglSwapLayerBuffersMscOML */
510 typedef INT64 (WINAPI * GdkGLProc_wglSwapLayerBuffersMscOML) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
511 GdkGLProc    gdk_gl_get_wglSwapLayerBuffersMscOML (void);
512 #define      gdk_gl_wglSwapLayerBuffersMscOML(proc, hdc, fuPlanes, target_msc, divisor, remainder) \
513   ( ((GdkGLProc_wglSwapLayerBuffersMscOML) (proc)) (hdc, fuPlanes, target_msc, divisor, remainder) )
514 
515 /* wglWaitForMscOML */
516 typedef BOOL (WINAPI * GdkGLProc_wglWaitForMscOML) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
517 GdkGLProc    gdk_gl_get_wglWaitForMscOML (void);
518 #define      gdk_gl_wglWaitForMscOML(proc, hdc, target_msc, divisor, remainder, ust, msc, sbc) \
519   ( ((GdkGLProc_wglWaitForMscOML) (proc)) (hdc, target_msc, divisor, remainder, ust, msc, sbc) )
520 
521 /* wglWaitForSbcOML */
522 typedef BOOL (WINAPI * GdkGLProc_wglWaitForSbcOML) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
523 GdkGLProc    gdk_gl_get_wglWaitForSbcOML (void);
524 #define      gdk_gl_wglWaitForSbcOML(proc, hdc, target_sbc, ust, msc, sbc) \
525   ( ((GdkGLProc_wglWaitForSbcOML) (proc)) (hdc, target_sbc, ust, msc, sbc) )
526 
527 /* proc struct */
528 
529 typedef struct _GdkGL_WGL_OML_sync_control GdkGL_WGL_OML_sync_control;
530 
531 struct _GdkGL_WGL_OML_sync_control
532 {
533   GdkGLProc_wglGetSyncValuesOML wglGetSyncValuesOML;
534   GdkGLProc_wglGetMscRateOML wglGetMscRateOML;
535   GdkGLProc_wglSwapBuffersMscOML wglSwapBuffersMscOML;
536   GdkGLProc_wglSwapLayerBuffersMscOML wglSwapLayerBuffersMscOML;
537   GdkGLProc_wglWaitForMscOML wglWaitForMscOML;
538   GdkGLProc_wglWaitForSbcOML wglWaitForSbcOML;
539 };
540 
541 GdkGL_WGL_OML_sync_control *gdk_gl_get_WGL_OML_sync_control (GdkGLConfig *glconfig);
542 
543 /*
544  * WGL_I3D_digital_video_control
545  */
546 
547 /* wglGetDigitalVideoParametersI3D */
548 typedef BOOL (WINAPI * GdkGLProc_wglGetDigitalVideoParametersI3D) (HDC hDC, int iAttribute, int *piValue);
549 GdkGLProc    gdk_gl_get_wglGetDigitalVideoParametersI3D (void);
550 #define      gdk_gl_wglGetDigitalVideoParametersI3D(proc, hDC, iAttribute, piValue) \
551   ( ((GdkGLProc_wglGetDigitalVideoParametersI3D) (proc)) (hDC, iAttribute, piValue) )
552 
553 /* wglSetDigitalVideoParametersI3D */
554 typedef BOOL (WINAPI * GdkGLProc_wglSetDigitalVideoParametersI3D) (HDC hDC, int iAttribute, const int *piValue);
555 GdkGLProc    gdk_gl_get_wglSetDigitalVideoParametersI3D (void);
556 #define      gdk_gl_wglSetDigitalVideoParametersI3D(proc, hDC, iAttribute, piValue) \
557   ( ((GdkGLProc_wglSetDigitalVideoParametersI3D) (proc)) (hDC, iAttribute, piValue) )
558 
559 /* proc struct */
560 
561 typedef struct _GdkGL_WGL_I3D_digital_video_control GdkGL_WGL_I3D_digital_video_control;
562 
563 struct _GdkGL_WGL_I3D_digital_video_control
564 {
565   GdkGLProc_wglGetDigitalVideoParametersI3D wglGetDigitalVideoParametersI3D;
566   GdkGLProc_wglSetDigitalVideoParametersI3D wglSetDigitalVideoParametersI3D;
567 };
568 
569 GdkGL_WGL_I3D_digital_video_control *gdk_gl_get_WGL_I3D_digital_video_control (GdkGLConfig *glconfig);
570 
571 /*
572  * WGL_I3D_gamma
573  */
574 
575 /* wglGetGammaTableParametersI3D */
576 typedef BOOL (WINAPI * GdkGLProc_wglGetGammaTableParametersI3D) (HDC hDC, int iAttribute, int *piValue);
577 GdkGLProc    gdk_gl_get_wglGetGammaTableParametersI3D (void);
578 #define      gdk_gl_wglGetGammaTableParametersI3D(proc, hDC, iAttribute, piValue) \
579   ( ((GdkGLProc_wglGetGammaTableParametersI3D) (proc)) (hDC, iAttribute, piValue) )
580 
581 /* wglSetGammaTableParametersI3D */
582 typedef BOOL (WINAPI * GdkGLProc_wglSetGammaTableParametersI3D) (HDC hDC, int iAttribute, const int *piValue);
583 GdkGLProc    gdk_gl_get_wglSetGammaTableParametersI3D (void);
584 #define      gdk_gl_wglSetGammaTableParametersI3D(proc, hDC, iAttribute, piValue) \
585   ( ((GdkGLProc_wglSetGammaTableParametersI3D) (proc)) (hDC, iAttribute, piValue) )
586 
587 /* wglGetGammaTableI3D */
588 typedef BOOL (WINAPI * GdkGLProc_wglGetGammaTableI3D) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
589 GdkGLProc    gdk_gl_get_wglGetGammaTableI3D (void);
590 #define      gdk_gl_wglGetGammaTableI3D(proc, hDC, iEntries, puRed, puGreen, puBlue) \
591   ( ((GdkGLProc_wglGetGammaTableI3D) (proc)) (hDC, iEntries, puRed, puGreen, puBlue) )
592 
593 /* wglSetGammaTableI3D */
594 typedef BOOL (WINAPI * GdkGLProc_wglSetGammaTableI3D) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
595 GdkGLProc    gdk_gl_get_wglSetGammaTableI3D (void);
596 #define      gdk_gl_wglSetGammaTableI3D(proc, hDC, iEntries, puRed, puGreen, puBlue) \
597   ( ((GdkGLProc_wglSetGammaTableI3D) (proc)) (hDC, iEntries, puRed, puGreen, puBlue) )
598 
599 /* proc struct */
600 
601 typedef struct _GdkGL_WGL_I3D_gamma GdkGL_WGL_I3D_gamma;
602 
603 struct _GdkGL_WGL_I3D_gamma
604 {
605   GdkGLProc_wglGetGammaTableParametersI3D wglGetGammaTableParametersI3D;
606   GdkGLProc_wglSetGammaTableParametersI3D wglSetGammaTableParametersI3D;
607   GdkGLProc_wglGetGammaTableI3D wglGetGammaTableI3D;
608   GdkGLProc_wglSetGammaTableI3D wglSetGammaTableI3D;
609 };
610 
611 GdkGL_WGL_I3D_gamma *gdk_gl_get_WGL_I3D_gamma (GdkGLConfig *glconfig);
612 
613 /*
614  * WGL_I3D_genlock
615  */
616 
617 /* wglEnableGenlockI3D */
618 typedef BOOL (WINAPI * GdkGLProc_wglEnableGenlockI3D) (HDC hDC);
619 GdkGLProc    gdk_gl_get_wglEnableGenlockI3D (void);
620 #define      gdk_gl_wglEnableGenlockI3D(proc, hDC) \
621   ( ((GdkGLProc_wglEnableGenlockI3D) (proc)) (hDC) )
622 
623 /* wglDisableGenlockI3D */
624 typedef BOOL (WINAPI * GdkGLProc_wglDisableGenlockI3D) (HDC hDC);
625 GdkGLProc    gdk_gl_get_wglDisableGenlockI3D (void);
626 #define      gdk_gl_wglDisableGenlockI3D(proc, hDC) \
627   ( ((GdkGLProc_wglDisableGenlockI3D) (proc)) (hDC) )
628 
629 /* wglIsEnabledGenlockI3D */
630 typedef BOOL (WINAPI * GdkGLProc_wglIsEnabledGenlockI3D) (HDC hDC, BOOL *pFlag);
631 GdkGLProc    gdk_gl_get_wglIsEnabledGenlockI3D (void);
632 #define      gdk_gl_wglIsEnabledGenlockI3D(proc, hDC, pFlag) \
633   ( ((GdkGLProc_wglIsEnabledGenlockI3D) (proc)) (hDC, pFlag) )
634 
635 /* wglGenlockSourceI3D */
636 typedef BOOL (WINAPI * GdkGLProc_wglGenlockSourceI3D) (HDC hDC, UINT uSource);
637 GdkGLProc    gdk_gl_get_wglGenlockSourceI3D (void);
638 #define      gdk_gl_wglGenlockSourceI3D(proc, hDC, uSource) \
639   ( ((GdkGLProc_wglGenlockSourceI3D) (proc)) (hDC, uSource) )
640 
641 /* wglGetGenlockSourceI3D */
642 typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSourceI3D) (HDC hDC, UINT *uSource);
643 GdkGLProc    gdk_gl_get_wglGetGenlockSourceI3D (void);
644 #define      gdk_gl_wglGetGenlockSourceI3D(proc, hDC, uSource) \
645   ( ((GdkGLProc_wglGetGenlockSourceI3D) (proc)) (hDC, uSource) )
646 
647 /* wglGenlockSourceEdgeI3D */
648 typedef BOOL (WINAPI * GdkGLProc_wglGenlockSourceEdgeI3D) (HDC hDC, UINT uEdge);
649 GdkGLProc    gdk_gl_get_wglGenlockSourceEdgeI3D (void);
650 #define      gdk_gl_wglGenlockSourceEdgeI3D(proc, hDC, uEdge) \
651   ( ((GdkGLProc_wglGenlockSourceEdgeI3D) (proc)) (hDC, uEdge) )
652 
653 /* wglGetGenlockSourceEdgeI3D */
654 typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSourceEdgeI3D) (HDC hDC, UINT *uEdge);
655 GdkGLProc    gdk_gl_get_wglGetGenlockSourceEdgeI3D (void);
656 #define      gdk_gl_wglGetGenlockSourceEdgeI3D(proc, hDC, uEdge) \
657   ( ((GdkGLProc_wglGetGenlockSourceEdgeI3D) (proc)) (hDC, uEdge) )
658 
659 /* wglGenlockSampleRateI3D */
660 typedef BOOL (WINAPI * GdkGLProc_wglGenlockSampleRateI3D) (HDC hDC, UINT uRate);
661 GdkGLProc    gdk_gl_get_wglGenlockSampleRateI3D (void);
662 #define      gdk_gl_wglGenlockSampleRateI3D(proc, hDC, uRate) \
663   ( ((GdkGLProc_wglGenlockSampleRateI3D) (proc)) (hDC, uRate) )
664 
665 /* wglGetGenlockSampleRateI3D */
666 typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSampleRateI3D) (HDC hDC, UINT *uRate);
667 GdkGLProc    gdk_gl_get_wglGetGenlockSampleRateI3D (void);
668 #define      gdk_gl_wglGetGenlockSampleRateI3D(proc, hDC, uRate) \
669   ( ((GdkGLProc_wglGetGenlockSampleRateI3D) (proc)) (hDC, uRate) )
670 
671 /* wglGenlockSourceDelayI3D */
672 typedef BOOL (WINAPI * GdkGLProc_wglGenlockSourceDelayI3D) (HDC hDC, UINT uDelay);
673 GdkGLProc    gdk_gl_get_wglGenlockSourceDelayI3D (void);
674 #define      gdk_gl_wglGenlockSourceDelayI3D(proc, hDC, uDelay) \
675   ( ((GdkGLProc_wglGenlockSourceDelayI3D) (proc)) (hDC, uDelay) )
676 
677 /* wglGetGenlockSourceDelayI3D */
678 typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSourceDelayI3D) (HDC hDC, UINT *uDelay);
679 GdkGLProc    gdk_gl_get_wglGetGenlockSourceDelayI3D (void);
680 #define      gdk_gl_wglGetGenlockSourceDelayI3D(proc, hDC, uDelay) \
681   ( ((GdkGLProc_wglGetGenlockSourceDelayI3D) (proc)) (hDC, uDelay) )
682 
683 /* wglQueryGenlockMaxSourceDelayI3D */
684 typedef BOOL (WINAPI * GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
685 GdkGLProc    gdk_gl_get_wglQueryGenlockMaxSourceDelayI3D (void);
686 #define      gdk_gl_wglQueryGenlockMaxSourceDelayI3D(proc, hDC, uMaxLineDelay, uMaxPixelDelay) \
687   ( ((GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) (proc)) (hDC, uMaxLineDelay, uMaxPixelDelay) )
688 
689 /* proc struct */
690 
691 typedef struct _GdkGL_WGL_I3D_genlock GdkGL_WGL_I3D_genlock;
692 
693 struct _GdkGL_WGL_I3D_genlock
694 {
695   GdkGLProc_wglEnableGenlockI3D wglEnableGenlockI3D;
696   GdkGLProc_wglDisableGenlockI3D wglDisableGenlockI3D;
697   GdkGLProc_wglIsEnabledGenlockI3D wglIsEnabledGenlockI3D;
698   GdkGLProc_wglGenlockSourceI3D wglGenlockSourceI3D;
699   GdkGLProc_wglGetGenlockSourceI3D wglGetGenlockSourceI3D;
700   GdkGLProc_wglGenlockSourceEdgeI3D wglGenlockSourceEdgeI3D;
701   GdkGLProc_wglGetGenlockSourceEdgeI3D wglGetGenlockSourceEdgeI3D;
702   GdkGLProc_wglGenlockSampleRateI3D wglGenlockSampleRateI3D;
703   GdkGLProc_wglGetGenlockSampleRateI3D wglGetGenlockSampleRateI3D;
704   GdkGLProc_wglGenlockSourceDelayI3D wglGenlockSourceDelayI3D;
705   GdkGLProc_wglGetGenlockSourceDelayI3D wglGetGenlockSourceDelayI3D;
706   GdkGLProc_wglQueryGenlockMaxSourceDelayI3D wglQueryGenlockMaxSourceDelayI3D;
707 };
708 
709 GdkGL_WGL_I3D_genlock *gdk_gl_get_WGL_I3D_genlock (GdkGLConfig *glconfig);
710 
711 /*
712  * WGL_I3D_image_buffer
713  */
714 
715 /* wglCreateImageBufferI3D */
716 typedef LPVOID (WINAPI * GdkGLProc_wglCreateImageBufferI3D) (HDC hDC, DWORD dwSize, UINT uFlags);
717 GdkGLProc    gdk_gl_get_wglCreateImageBufferI3D (void);
718 #define      gdk_gl_wglCreateImageBufferI3D(proc, hDC, dwSize, uFlags) \
719   ( ((GdkGLProc_wglCreateImageBufferI3D) (proc)) (hDC, dwSize, uFlags) )
720 
721 /* wglDestroyImageBufferI3D */
722 typedef BOOL (WINAPI * GdkGLProc_wglDestroyImageBufferI3D) (HDC hDC, LPVOID pAddress);
723 GdkGLProc    gdk_gl_get_wglDestroyImageBufferI3D (void);
724 #define      gdk_gl_wglDestroyImageBufferI3D(proc, hDC, pAddress) \
725   ( ((GdkGLProc_wglDestroyImageBufferI3D) (proc)) (hDC, pAddress) )
726 
727 /* wglAssociateImageBufferEventsI3D */
728 typedef BOOL (WINAPI * GdkGLProc_wglAssociateImageBufferEventsI3D) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
729 GdkGLProc    gdk_gl_get_wglAssociateImageBufferEventsI3D (void);
730 #define      gdk_gl_wglAssociateImageBufferEventsI3D(proc, hDC, pEvent, pAddress, pSize, count) \
731   ( ((GdkGLProc_wglAssociateImageBufferEventsI3D) (proc)) (hDC, pEvent, pAddress, pSize, count) )
732 
733 /* wglReleaseImageBufferEventsI3D */
734 typedef BOOL (WINAPI * GdkGLProc_wglReleaseImageBufferEventsI3D) (HDC hDC, const LPVOID *pAddress, UINT count);
735 GdkGLProc    gdk_gl_get_wglReleaseImageBufferEventsI3D (void);
736 #define      gdk_gl_wglReleaseImageBufferEventsI3D(proc, hDC, pAddress, count) \
737   ( ((GdkGLProc_wglReleaseImageBufferEventsI3D) (proc)) (hDC, pAddress, count) )
738 
739 /* proc struct */
740 
741 typedef struct _GdkGL_WGL_I3D_image_buffer GdkGL_WGL_I3D_image_buffer;
742 
743 struct _GdkGL_WGL_I3D_image_buffer
744 {
745   GdkGLProc_wglCreateImageBufferI3D wglCreateImageBufferI3D;
746   GdkGLProc_wglDestroyImageBufferI3D wglDestroyImageBufferI3D;
747   GdkGLProc_wglAssociateImageBufferEventsI3D wglAssociateImageBufferEventsI3D;
748   GdkGLProc_wglReleaseImageBufferEventsI3D wglReleaseImageBufferEventsI3D;
749 };
750 
751 GdkGL_WGL_I3D_image_buffer *gdk_gl_get_WGL_I3D_image_buffer (GdkGLConfig *glconfig);
752 
753 /*
754  * WGL_I3D_swap_frame_lock
755  */
756 
757 /* wglEnableFrameLockI3D */
758 typedef BOOL (WINAPI * GdkGLProc_wglEnableFrameLockI3D) (void);
759 GdkGLProc    gdk_gl_get_wglEnableFrameLockI3D (void);
760 #define      gdk_gl_wglEnableFrameLockI3D(proc) \
761   ( ((GdkGLProc_wglEnableFrameLockI3D) (proc)) () )
762 
763 /* wglDisableFrameLockI3D */
764 typedef BOOL (WINAPI * GdkGLProc_wglDisableFrameLockI3D) (void);
765 GdkGLProc    gdk_gl_get_wglDisableFrameLockI3D (void);
766 #define      gdk_gl_wglDisableFrameLockI3D(proc) \
767   ( ((GdkGLProc_wglDisableFrameLockI3D) (proc)) () )
768 
769 /* wglIsEnabledFrameLockI3D */
770 typedef BOOL (WINAPI * GdkGLProc_wglIsEnabledFrameLockI3D) (BOOL *pFlag);
771 GdkGLProc    gdk_gl_get_wglIsEnabledFrameLockI3D (void);
772 #define      gdk_gl_wglIsEnabledFrameLockI3D(proc, pFlag) \
773   ( ((GdkGLProc_wglIsEnabledFrameLockI3D) (proc)) (pFlag) )
774 
775 /* wglQueryFrameLockMasterI3D */
776 typedef BOOL (WINAPI * GdkGLProc_wglQueryFrameLockMasterI3D) (BOOL *pFlag);
777 GdkGLProc    gdk_gl_get_wglQueryFrameLockMasterI3D (void);
778 #define      gdk_gl_wglQueryFrameLockMasterI3D(proc, pFlag) \
779   ( ((GdkGLProc_wglQueryFrameLockMasterI3D) (proc)) (pFlag) )
780 
781 /* proc struct */
782 
783 typedef struct _GdkGL_WGL_I3D_swap_frame_lock GdkGL_WGL_I3D_swap_frame_lock;
784 
785 struct _GdkGL_WGL_I3D_swap_frame_lock
786 {
787   GdkGLProc_wglEnableFrameLockI3D wglEnableFrameLockI3D;
788   GdkGLProc_wglDisableFrameLockI3D wglDisableFrameLockI3D;
789   GdkGLProc_wglIsEnabledFrameLockI3D wglIsEnabledFrameLockI3D;
790   GdkGLProc_wglQueryFrameLockMasterI3D wglQueryFrameLockMasterI3D;
791 };
792 
793 GdkGL_WGL_I3D_swap_frame_lock *gdk_gl_get_WGL_I3D_swap_frame_lock (GdkGLConfig *glconfig);
794 
795 /*
796  * WGL_I3D_swap_frame_usage
797  */
798 
799 /* wglGetFrameUsageI3D */
800 typedef BOOL (WINAPI * GdkGLProc_wglGetFrameUsageI3D) (float *pUsage);
801 GdkGLProc    gdk_gl_get_wglGetFrameUsageI3D (void);
802 #define      gdk_gl_wglGetFrameUsageI3D(proc, pUsage) \
803   ( ((GdkGLProc_wglGetFrameUsageI3D) (proc)) (pUsage) )
804 
805 /* wglBeginFrameTrackingI3D */
806 typedef BOOL (WINAPI * GdkGLProc_wglBeginFrameTrackingI3D) (void);
807 GdkGLProc    gdk_gl_get_wglBeginFrameTrackingI3D (void);
808 #define      gdk_gl_wglBeginFrameTrackingI3D(proc) \
809   ( ((GdkGLProc_wglBeginFrameTrackingI3D) (proc)) () )
810 
811 /* wglEndFrameTrackingI3D */
812 typedef BOOL (WINAPI * GdkGLProc_wglEndFrameTrackingI3D) (void);
813 GdkGLProc    gdk_gl_get_wglEndFrameTrackingI3D (void);
814 #define      gdk_gl_wglEndFrameTrackingI3D(proc) \
815   ( ((GdkGLProc_wglEndFrameTrackingI3D) (proc)) () )
816 
817 /* wglQueryFrameTrackingI3D */
818 typedef BOOL (WINAPI * GdkGLProc_wglQueryFrameTrackingI3D) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
819 GdkGLProc    gdk_gl_get_wglQueryFrameTrackingI3D (void);
820 #define      gdk_gl_wglQueryFrameTrackingI3D(proc, pFrameCount, pMissedFrames, pLastMissedUsage) \
821   ( ((GdkGLProc_wglQueryFrameTrackingI3D) (proc)) (pFrameCount, pMissedFrames, pLastMissedUsage) )
822 
823 /* proc struct */
824 
825 typedef struct _GdkGL_WGL_I3D_swap_frame_usage GdkGL_WGL_I3D_swap_frame_usage;
826 
827 struct _GdkGL_WGL_I3D_swap_frame_usage
828 {
829   GdkGLProc_wglGetFrameUsageI3D wglGetFrameUsageI3D;
830   GdkGLProc_wglBeginFrameTrackingI3D wglBeginFrameTrackingI3D;
831   GdkGLProc_wglEndFrameTrackingI3D wglEndFrameTrackingI3D;
832   GdkGLProc_wglQueryFrameTrackingI3D wglQueryFrameTrackingI3D;
833 };
834 
835 GdkGL_WGL_I3D_swap_frame_usage *gdk_gl_get_WGL_I3D_swap_frame_usage (GdkGLConfig *glconfig);
836 
837 G_END_DECLS
838 
839 #endif /* __GDK_GL_WGLEXT_H__ */
840