initial commit
[safbench] / wglext.h
1 #ifndef __wgl_wglext_h_
2 #define __wgl_wglext_h_ 1
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 /*
9 ** Copyright 2013-2020 The Khronos Group Inc.
10 ** SPDX-License-Identifier: MIT
11 **
12 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
13 ** API Registry. The current version of the Registry, generator scripts
14 ** used to make the header, and the header can be found at
15 **   https://github.com/KhronosGroup/OpenGL-Registry
16 */
17
18 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
19 #define WIN32_LEAN_AND_MEAN 1
20 #include <windows.h>
21 #endif
22
23 #define WGL_WGLEXT_VERSION 20231018
24
25 /* Generated C header for:
26  * API: wgl
27  * Versions considered: .*
28  * Versions emitted: _nomatch_^
29  * Default extensions included: wgl
30  * Additional extensions included: _nomatch_^
31  * Extensions removed: _nomatch_^
32  */
33
34 #ifndef WGL_ARB_buffer_region
35 #define WGL_ARB_buffer_region 1
36 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB    0x00000001
37 #define WGL_BACK_COLOR_BUFFER_BIT_ARB     0x00000002
38 #define WGL_DEPTH_BUFFER_BIT_ARB          0x00000004
39 #define WGL_STENCIL_BUFFER_BIT_ARB        0x00000008
40 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
41 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
42 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
43 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
44 #ifdef WGL_WGLEXT_PROTOTYPES
45 HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType);
46 VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion);
47 BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height);
48 BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
49 #endif
50 #endif /* WGL_ARB_buffer_region */
51
52 #ifndef WGL_ARB_context_flush_control
53 #define WGL_ARB_context_flush_control 1
54 #define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB  0x2097
55 #define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
56 #define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
57 #endif /* WGL_ARB_context_flush_control */
58
59 #ifndef WGL_ARB_create_context
60 #define WGL_ARB_create_context 1
61 #define WGL_CONTEXT_DEBUG_BIT_ARB         0x00000001
62 #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
63 #define WGL_CONTEXT_MAJOR_VERSION_ARB     0x2091
64 #define WGL_CONTEXT_MINOR_VERSION_ARB     0x2092
65 #define WGL_CONTEXT_LAYER_PLANE_ARB       0x2093
66 #define WGL_CONTEXT_FLAGS_ARB             0x2094
67 #define ERROR_INVALID_VERSION_ARB         0x2095
68 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
69 #ifdef WGL_WGLEXT_PROTOTYPES
70 HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList);
71 #endif
72 #endif /* WGL_ARB_create_context */
73
74 #ifndef WGL_ARB_create_context_no_error
75 #define WGL_ARB_create_context_no_error 1
76 #define WGL_CONTEXT_OPENGL_NO_ERROR_ARB   0x31B3
77 #endif /* WGL_ARB_create_context_no_error */
78
79 #ifndef WGL_ARB_create_context_profile
80 #define WGL_ARB_create_context_profile 1
81 #define WGL_CONTEXT_PROFILE_MASK_ARB      0x9126
82 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB  0x00000001
83 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
84 #define ERROR_INVALID_PROFILE_ARB         0x2096
85 #endif /* WGL_ARB_create_context_profile */
86
87 #ifndef WGL_ARB_create_context_robustness
88 #define WGL_ARB_create_context_robustness 1
89 #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
90 #define WGL_LOSE_CONTEXT_ON_RESET_ARB     0x8252
91 #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
92 #define WGL_NO_RESET_NOTIFICATION_ARB     0x8261
93 #endif /* WGL_ARB_create_context_robustness */
94
95 #ifndef WGL_ARB_extensions_string
96 #define WGL_ARB_extensions_string 1
97 typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
98 #ifdef WGL_WGLEXT_PROTOTYPES
99 const char *WINAPI wglGetExtensionsStringARB (HDC hdc);
100 #endif
101 #endif /* WGL_ARB_extensions_string */
102
103 #ifndef WGL_ARB_framebuffer_sRGB
104 #define WGL_ARB_framebuffer_sRGB 1
105 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB  0x20A9
106 #endif /* WGL_ARB_framebuffer_sRGB */
107
108 #ifndef WGL_ARB_make_current_read
109 #define WGL_ARB_make_current_read 1
110 #define ERROR_INVALID_PIXEL_TYPE_ARB      0x2043
111 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
112 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
113 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
114 #ifdef WGL_WGLEXT_PROTOTYPES
115 BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
116 HDC WINAPI wglGetCurrentReadDCARB (void);
117 #endif
118 #endif /* WGL_ARB_make_current_read */
119
120 #ifndef WGL_ARB_multisample
121 #define WGL_ARB_multisample 1
122 #define WGL_SAMPLE_BUFFERS_ARB            0x2041
123 #define WGL_SAMPLES_ARB                   0x2042
124 #endif /* WGL_ARB_multisample */
125
126 #ifndef WGL_ARB_pbuffer
127 #define WGL_ARB_pbuffer 1
128 DECLARE_HANDLE(HPBUFFERARB);
129 #define WGL_DRAW_TO_PBUFFER_ARB           0x202D
130 #define WGL_MAX_PBUFFER_PIXELS_ARB        0x202E
131 #define WGL_MAX_PBUFFER_WIDTH_ARB         0x202F
132 #define WGL_MAX_PBUFFER_HEIGHT_ARB        0x2030
133 #define WGL_PBUFFER_LARGEST_ARB           0x2033
134 #define WGL_PBUFFER_WIDTH_ARB             0x2034
135 #define WGL_PBUFFER_HEIGHT_ARB            0x2035
136 #define WGL_PBUFFER_LOST_ARB              0x2036
137 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
138 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
139 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
140 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
141 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
142 #ifdef WGL_WGLEXT_PROTOTYPES
143 HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
144 HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer);
145 int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC);
146 BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer);
147 BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
148 #endif
149 #endif /* WGL_ARB_pbuffer */
150
151 #ifndef WGL_ARB_pixel_format
152 #define WGL_ARB_pixel_format 1
153 #define WGL_NUMBER_PIXEL_FORMATS_ARB      0x2000
154 #define WGL_DRAW_TO_WINDOW_ARB            0x2001
155 #define WGL_DRAW_TO_BITMAP_ARB            0x2002
156 #define WGL_ACCELERATION_ARB              0x2003
157 #define WGL_NEED_PALETTE_ARB              0x2004
158 #define WGL_NEED_SYSTEM_PALETTE_ARB       0x2005
159 #define WGL_SWAP_LAYER_BUFFERS_ARB        0x2006
160 #define WGL_SWAP_METHOD_ARB               0x2007
161 #define WGL_NUMBER_OVERLAYS_ARB           0x2008
162 #define WGL_NUMBER_UNDERLAYS_ARB          0x2009
163 #define WGL_TRANSPARENT_ARB               0x200A
164 #define WGL_TRANSPARENT_RED_VALUE_ARB     0x2037
165 #define WGL_TRANSPARENT_GREEN_VALUE_ARB   0x2038
166 #define WGL_TRANSPARENT_BLUE_VALUE_ARB    0x2039
167 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB   0x203A
168 #define WGL_TRANSPARENT_INDEX_VALUE_ARB   0x203B
169 #define WGL_SHARE_DEPTH_ARB               0x200C
170 #define WGL_SHARE_STENCIL_ARB             0x200D
171 #define WGL_SHARE_ACCUM_ARB               0x200E
172 #define WGL_SUPPORT_GDI_ARB               0x200F
173 #define WGL_SUPPORT_OPENGL_ARB            0x2010
174 #define WGL_DOUBLE_BUFFER_ARB             0x2011
175 #define WGL_STEREO_ARB                    0x2012
176 #define WGL_PIXEL_TYPE_ARB                0x2013
177 #define WGL_COLOR_BITS_ARB                0x2014
178 #define WGL_RED_BITS_ARB                  0x2015
179 #define WGL_RED_SHIFT_ARB                 0x2016
180 #define WGL_GREEN_BITS_ARB                0x2017
181 #define WGL_GREEN_SHIFT_ARB               0x2018
182 #define WGL_BLUE_BITS_ARB                 0x2019
183 #define WGL_BLUE_SHIFT_ARB                0x201A
184 #define WGL_ALPHA_BITS_ARB                0x201B
185 #define WGL_ALPHA_SHIFT_ARB               0x201C
186 #define WGL_ACCUM_BITS_ARB                0x201D
187 #define WGL_ACCUM_RED_BITS_ARB            0x201E
188 #define WGL_ACCUM_GREEN_BITS_ARB          0x201F
189 #define WGL_ACCUM_BLUE_BITS_ARB           0x2020
190 #define WGL_ACCUM_ALPHA_BITS_ARB          0x2021
191 #define WGL_DEPTH_BITS_ARB                0x2022
192 #define WGL_STENCIL_BITS_ARB              0x2023
193 #define WGL_AUX_BUFFERS_ARB               0x2024
194 #define WGL_NO_ACCELERATION_ARB           0x2025
195 #define WGL_GENERIC_ACCELERATION_ARB      0x2026
196 #define WGL_FULL_ACCELERATION_ARB         0x2027
197 #define WGL_SWAP_EXCHANGE_ARB             0x2028
198 #define WGL_SWAP_COPY_ARB                 0x2029
199 #define WGL_SWAP_UNDEFINED_ARB            0x202A
200 #define WGL_TYPE_RGBA_ARB                 0x202B
201 #define WGL_TYPE_COLORINDEX_ARB           0x202C
202 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
203 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
204 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
205 #ifdef WGL_WGLEXT_PROTOTYPES
206 BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
207 BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
208 BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
209 #endif
210 #endif /* WGL_ARB_pixel_format */
211
212 #ifndef WGL_ARB_pixel_format_float
213 #define WGL_ARB_pixel_format_float 1
214 #define WGL_TYPE_RGBA_FLOAT_ARB           0x21A0
215 #endif /* WGL_ARB_pixel_format_float */
216
217 #ifndef WGL_ARB_render_texture
218 #define WGL_ARB_render_texture 1
219 #define WGL_BIND_TO_TEXTURE_RGB_ARB       0x2070
220 #define WGL_BIND_TO_TEXTURE_RGBA_ARB      0x2071
221 #define WGL_TEXTURE_FORMAT_ARB            0x2072
222 #define WGL_TEXTURE_TARGET_ARB            0x2073
223 #define WGL_MIPMAP_TEXTURE_ARB            0x2074
224 #define WGL_TEXTURE_RGB_ARB               0x2075
225 #define WGL_TEXTURE_RGBA_ARB              0x2076
226 #define WGL_NO_TEXTURE_ARB                0x2077
227 #define WGL_TEXTURE_CUBE_MAP_ARB          0x2078
228 #define WGL_TEXTURE_1D_ARB                0x2079
229 #define WGL_TEXTURE_2D_ARB                0x207A
230 #define WGL_MIPMAP_LEVEL_ARB              0x207B
231 #define WGL_CUBE_MAP_FACE_ARB             0x207C
232 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
233 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
234 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
235 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
236 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
237 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
238 #define WGL_FRONT_LEFT_ARB                0x2083
239 #define WGL_FRONT_RIGHT_ARB               0x2084
240 #define WGL_BACK_LEFT_ARB                 0x2085
241 #define WGL_BACK_RIGHT_ARB                0x2086
242 #define WGL_AUX0_ARB                      0x2087
243 #define WGL_AUX1_ARB                      0x2088
244 #define WGL_AUX2_ARB                      0x2089
245 #define WGL_AUX3_ARB                      0x208A
246 #define WGL_AUX4_ARB                      0x208B
247 #define WGL_AUX5_ARB                      0x208C
248 #define WGL_AUX6_ARB                      0x208D
249 #define WGL_AUX7_ARB                      0x208E
250 #define WGL_AUX8_ARB                      0x208F
251 #define WGL_AUX9_ARB                      0x2090
252 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
253 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
254 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
255 #ifdef WGL_WGLEXT_PROTOTYPES
256 BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
257 BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
258 BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
259 #endif
260 #endif /* WGL_ARB_render_texture */
261
262 #ifndef WGL_ARB_robustness_application_isolation
263 #define WGL_ARB_robustness_application_isolation 1
264 #define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
265 #endif /* WGL_ARB_robustness_application_isolation */
266
267 #ifndef WGL_ARB_robustness_share_group_isolation
268 #define WGL_ARB_robustness_share_group_isolation 1
269 #endif /* WGL_ARB_robustness_share_group_isolation */
270
271 #ifndef WGL_3DFX_multisample
272 #define WGL_3DFX_multisample 1
273 #define WGL_SAMPLE_BUFFERS_3DFX           0x2060
274 #define WGL_SAMPLES_3DFX                  0x2061
275 #endif /* WGL_3DFX_multisample */
276
277 #ifndef WGL_3DL_stereo_control
278 #define WGL_3DL_stereo_control 1
279 #define WGL_STEREO_EMITTER_ENABLE_3DL     0x2055
280 #define WGL_STEREO_EMITTER_DISABLE_3DL    0x2056
281 #define WGL_STEREO_POLARITY_NORMAL_3DL    0x2057
282 #define WGL_STEREO_POLARITY_INVERT_3DL    0x2058
283 typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
284 #ifdef WGL_WGLEXT_PROTOTYPES
285 BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState);
286 #endif
287 #endif /* WGL_3DL_stereo_control */
288
289 #ifndef WGL_AMD_gpu_association
290 #define WGL_AMD_gpu_association 1
291 #define WGL_GPU_VENDOR_AMD                0x1F00
292 #define WGL_GPU_RENDERER_STRING_AMD       0x1F01
293 #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
294 #define WGL_GPU_FASTEST_TARGET_GPUS_AMD   0x21A2
295 #define WGL_GPU_RAM_AMD                   0x21A3
296 #define WGL_GPU_CLOCK_AMD                 0x21A4
297 #define WGL_GPU_NUM_PIPES_AMD             0x21A5
298 #define WGL_GPU_NUM_SIMD_AMD              0x21A6
299 #define WGL_GPU_NUM_RB_AMD                0x21A7
300 #define WGL_GPU_NUM_SPI_AMD               0x21A8
301 typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids);
302 typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void *data);
303 typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
304 typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
305 typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList);
306 typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
307 typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
308 typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
309 typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
310 #ifdef WGL_WGLEXT_PROTOTYPES
311 UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids);
312 INT WINAPI wglGetGPUInfoAMD (UINT id, INT property, GLenum dataType, UINT size, void *data);
313 UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc);
314 HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id);
315 HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList);
316 BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc);
317 BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc);
318 HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void);
319 VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
320 #endif
321 #endif /* WGL_AMD_gpu_association */
322
323 #ifndef WGL_ATI_pixel_format_float
324 #define WGL_ATI_pixel_format_float 1
325 #define WGL_TYPE_RGBA_FLOAT_ATI           0x21A0
326 #endif /* WGL_ATI_pixel_format_float */
327
328 #ifndef WGL_ATI_render_texture_rectangle
329 #define WGL_ATI_render_texture_rectangle 1
330 #define WGL_TEXTURE_RECTANGLE_ATI         0x21A5
331 #endif /* WGL_ATI_render_texture_rectangle */
332
333 #ifndef WGL_EXT_colorspace
334 #define WGL_EXT_colorspace 1
335 #define WGL_COLORSPACE_EXT                0x309D
336 #define WGL_COLORSPACE_SRGB_EXT           0x3089
337 #define WGL_COLORSPACE_LINEAR_EXT         0x308A
338 #endif /* WGL_EXT_colorspace */
339
340 #ifndef WGL_EXT_create_context_es2_profile
341 #define WGL_EXT_create_context_es2_profile 1
342 #define WGL_CONTEXT_ES2_PROFILE_BIT_EXT   0x00000004
343 #endif /* WGL_EXT_create_context_es2_profile */
344
345 #ifndef WGL_EXT_create_context_es_profile
346 #define WGL_EXT_create_context_es_profile 1
347 #define WGL_CONTEXT_ES_PROFILE_BIT_EXT    0x00000004
348 #endif /* WGL_EXT_create_context_es_profile */
349
350 #ifndef WGL_EXT_depth_float
351 #define WGL_EXT_depth_float 1
352 #define WGL_DEPTH_FLOAT_EXT               0x2040
353 #endif /* WGL_EXT_depth_float */
354
355 #ifndef WGL_EXT_display_color_table
356 #define WGL_EXT_display_color_table 1
357 typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
358 typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length);
359 typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
360 typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
361 #ifdef WGL_WGLEXT_PROTOTYPES
362 GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id);
363 GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length);
364 GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id);
365 VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id);
366 #endif
367 #endif /* WGL_EXT_display_color_table */
368
369 #ifndef WGL_EXT_extensions_string
370 #define WGL_EXT_extensions_string 1
371 typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
372 #ifdef WGL_WGLEXT_PROTOTYPES
373 const char *WINAPI wglGetExtensionsStringEXT (void);
374 #endif
375 #endif /* WGL_EXT_extensions_string */
376
377 #ifndef WGL_EXT_framebuffer_sRGB
378 #define WGL_EXT_framebuffer_sRGB 1
379 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT  0x20A9
380 #endif /* WGL_EXT_framebuffer_sRGB */
381
382 #ifndef WGL_EXT_make_current_read
383 #define WGL_EXT_make_current_read 1
384 #define ERROR_INVALID_PIXEL_TYPE_EXT      0x2043
385 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
386 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
387 #ifdef WGL_WGLEXT_PROTOTYPES
388 BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
389 HDC WINAPI wglGetCurrentReadDCEXT (void);
390 #endif
391 #endif /* WGL_EXT_make_current_read */
392
393 #ifndef WGL_EXT_multisample
394 #define WGL_EXT_multisample 1
395 #define WGL_SAMPLE_BUFFERS_EXT            0x2041
396 #define WGL_SAMPLES_EXT                   0x2042
397 #endif /* WGL_EXT_multisample */
398
399 #ifndef WGL_EXT_pbuffer
400 #define WGL_EXT_pbuffer 1
401 DECLARE_HANDLE(HPBUFFEREXT);
402 #define WGL_DRAW_TO_PBUFFER_EXT           0x202D
403 #define WGL_MAX_PBUFFER_PIXELS_EXT        0x202E
404 #define WGL_MAX_PBUFFER_WIDTH_EXT         0x202F
405 #define WGL_MAX_PBUFFER_HEIGHT_EXT        0x2030
406 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT     0x2031
407 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT    0x2032
408 #define WGL_PBUFFER_LARGEST_EXT           0x2033
409 #define WGL_PBUFFER_WIDTH_EXT             0x2034
410 #define WGL_PBUFFER_HEIGHT_EXT            0x2035
411 typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
412 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
413 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
414 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
415 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
416 #ifdef WGL_WGLEXT_PROTOTYPES
417 HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
418 HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer);
419 int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC);
420 BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer);
421 BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
422 #endif
423 #endif /* WGL_EXT_pbuffer */
424
425 #ifndef WGL_EXT_pixel_format
426 #define WGL_EXT_pixel_format 1
427 #define WGL_NUMBER_PIXEL_FORMATS_EXT      0x2000
428 #define WGL_DRAW_TO_WINDOW_EXT            0x2001
429 #define WGL_DRAW_TO_BITMAP_EXT            0x2002
430 #define WGL_ACCELERATION_EXT              0x2003
431 #define WGL_NEED_PALETTE_EXT              0x2004
432 #define WGL_NEED_SYSTEM_PALETTE_EXT       0x2005
433 #define WGL_SWAP_LAYER_BUFFERS_EXT        0x2006
434 #define WGL_SWAP_METHOD_EXT               0x2007
435 #define WGL_NUMBER_OVERLAYS_EXT           0x2008
436 #define WGL_NUMBER_UNDERLAYS_EXT          0x2009
437 #define WGL_TRANSPARENT_EXT               0x200A
438 #define WGL_TRANSPARENT_VALUE_EXT         0x200B
439 #define WGL_SHARE_DEPTH_EXT               0x200C
440 #define WGL_SHARE_STENCIL_EXT             0x200D
441 #define WGL_SHARE_ACCUM_EXT               0x200E
442 #define WGL_SUPPORT_GDI_EXT               0x200F
443 #define WGL_SUPPORT_OPENGL_EXT            0x2010
444 #define WGL_DOUBLE_BUFFER_EXT             0x2011
445 #define WGL_STEREO_EXT                    0x2012
446 #define WGL_PIXEL_TYPE_EXT                0x2013
447 #define WGL_COLOR_BITS_EXT                0x2014
448 #define WGL_RED_BITS_EXT                  0x2015
449 #define WGL_RED_SHIFT_EXT                 0x2016
450 #define WGL_GREEN_BITS_EXT                0x2017
451 #define WGL_GREEN_SHIFT_EXT               0x2018
452 #define WGL_BLUE_BITS_EXT                 0x2019
453 #define WGL_BLUE_SHIFT_EXT                0x201A
454 #define WGL_ALPHA_BITS_EXT                0x201B
455 #define WGL_ALPHA_SHIFT_EXT               0x201C
456 #define WGL_ACCUM_BITS_EXT                0x201D
457 #define WGL_ACCUM_RED_BITS_EXT            0x201E
458 #define WGL_ACCUM_GREEN_BITS_EXT          0x201F
459 #define WGL_ACCUM_BLUE_BITS_EXT           0x2020
460 #define WGL_ACCUM_ALPHA_BITS_EXT          0x2021
461 #define WGL_DEPTH_BITS_EXT                0x2022
462 #define WGL_STENCIL_BITS_EXT              0x2023
463 #define WGL_AUX_BUFFERS_EXT               0x2024
464 #define WGL_NO_ACCELERATION_EXT           0x2025
465 #define WGL_GENERIC_ACCELERATION_EXT      0x2026
466 #define WGL_FULL_ACCELERATION_EXT         0x2027
467 #define WGL_SWAP_EXCHANGE_EXT             0x2028
468 #define WGL_SWAP_COPY_EXT                 0x2029
469 #define WGL_SWAP_UNDEFINED_EXT            0x202A
470 #define WGL_TYPE_RGBA_EXT                 0x202B
471 #define WGL_TYPE_COLORINDEX_EXT           0x202C
472 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
473 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
474 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
475 #ifdef WGL_WGLEXT_PROTOTYPES
476 BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
477 BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
478 BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
479 #endif
480 #endif /* WGL_EXT_pixel_format */
481
482 #ifndef WGL_EXT_pixel_format_packed_float
483 #define WGL_EXT_pixel_format_packed_float 1
484 #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT  0x20A8
485 #endif /* WGL_EXT_pixel_format_packed_float */
486
487 #ifndef WGL_EXT_swap_control
488 #define WGL_EXT_swap_control 1
489 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
490 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
491 #ifdef WGL_WGLEXT_PROTOTYPES
492 BOOL WINAPI wglSwapIntervalEXT (int interval);
493 int WINAPI wglGetSwapIntervalEXT (void);
494 #endif
495 #endif /* WGL_EXT_swap_control */
496
497 #ifndef WGL_EXT_swap_control_tear
498 #define WGL_EXT_swap_control_tear 1
499 #endif /* WGL_EXT_swap_control_tear */
500
501 #ifndef WGL_I3D_digital_video_control
502 #define WGL_I3D_digital_video_control 1
503 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
504 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
505 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
506 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
507 typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
508 typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
509 #ifdef WGL_WGLEXT_PROTOTYPES
510 BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue);
511 BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue);
512 #endif
513 #endif /* WGL_I3D_digital_video_control */
514
515 #ifndef WGL_I3D_gamma
516 #define WGL_I3D_gamma 1
517 #define WGL_GAMMA_TABLE_SIZE_I3D          0x204E
518 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D     0x204F
519 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
520 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
521 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
522 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
523 #ifdef WGL_WGLEXT_PROTOTYPES
524 BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue);
525 BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue);
526 BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
527 BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
528 #endif
529 #endif /* WGL_I3D_gamma */
530
531 #ifndef WGL_I3D_genlock
532 #define WGL_I3D_genlock 1
533 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D  0x2044
534 #define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
535 #define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
536 #define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
537 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
538 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
539 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
540 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
541 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D  0x204C
542 typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
543 typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
544 typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag);
545 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
546 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource);
547 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
548 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge);
549 typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
550 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate);
551 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
552 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay);
553 typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
554 #ifdef WGL_WGLEXT_PROTOTYPES
555 BOOL WINAPI wglEnableGenlockI3D (HDC hDC);
556 BOOL WINAPI wglDisableGenlockI3D (HDC hDC);
557 BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag);
558 BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource);
559 BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource);
560 BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge);
561 BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge);
562 BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate);
563 BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate);
564 BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay);
565 BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay);
566 BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
567 #endif
568 #endif /* WGL_I3D_genlock */
569
570 #ifndef WGL_I3D_image_buffer
571 #define WGL_I3D_image_buffer 1
572 #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D   0x00000001
573 #define WGL_IMAGE_BUFFER_LOCK_I3D         0x00000002
574 typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
575 typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
576 typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
577 typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count);
578 #ifdef WGL_WGLEXT_PROTOTYPES
579 LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags);
580 BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress);
581 BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
582 BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count);
583 #endif
584 #endif /* WGL_I3D_image_buffer */
585
586 #ifndef WGL_I3D_swap_frame_lock
587 #define WGL_I3D_swap_frame_lock 1
588 typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
589 typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
590 typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
591 typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
592 #ifdef WGL_WGLEXT_PROTOTYPES
593 BOOL WINAPI wglEnableFrameLockI3D (void);
594 BOOL WINAPI wglDisableFrameLockI3D (void);
595 BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag);
596 BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag);
597 #endif
598 #endif /* WGL_I3D_swap_frame_lock */
599
600 #ifndef WGL_I3D_swap_frame_usage
601 #define WGL_I3D_swap_frame_usage 1
602 typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage);
603 typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
604 typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
605 typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
606 #ifdef WGL_WGLEXT_PROTOTYPES
607 BOOL WINAPI wglGetFrameUsageI3D (float *pUsage);
608 BOOL WINAPI wglBeginFrameTrackingI3D (void);
609 BOOL WINAPI wglEndFrameTrackingI3D (void);
610 BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
611 #endif
612 #endif /* WGL_I3D_swap_frame_usage */
613
614 #ifndef WGL_NV_DX_interop
615 #define WGL_NV_DX_interop 1
616 #define WGL_ACCESS_READ_ONLY_NV           0x00000000
617 #define WGL_ACCESS_READ_WRITE_NV          0x00000001
618 #define WGL_ACCESS_WRITE_DISCARD_NV       0x00000002
619 typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle);
620 typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice);
621 typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
622 typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
623 typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
624 typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
625 typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
626 typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
627 #ifdef WGL_WGLEXT_PROTOTYPES
628 BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle);
629 HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice);
630 BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice);
631 HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
632 BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject);
633 BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access);
634 BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
635 BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
636 #endif
637 #endif /* WGL_NV_DX_interop */
638
639 #ifndef WGL_NV_DX_interop2
640 #define WGL_NV_DX_interop2 1
641 #endif /* WGL_NV_DX_interop2 */
642
643 #ifndef WGL_NV_copy_image
644 #define WGL_NV_copy_image 1
645 typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
646 #ifdef WGL_WGLEXT_PROTOTYPES
647 BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
648 #endif
649 #endif /* WGL_NV_copy_image */
650
651 #ifndef WGL_NV_delay_before_swap
652 #define WGL_NV_delay_before_swap 1
653 typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds);
654 #ifdef WGL_WGLEXT_PROTOTYPES
655 BOOL WINAPI wglDelayBeforeSwapNV (HDC hDC, GLfloat seconds);
656 #endif
657 #endif /* WGL_NV_delay_before_swap */
658
659 #ifndef WGL_NV_float_buffer
660 #define WGL_NV_float_buffer 1
661 #define WGL_FLOAT_COMPONENTS_NV           0x20B0
662 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
663 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
664 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
665 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
666 #define WGL_TEXTURE_FLOAT_R_NV            0x20B5
667 #define WGL_TEXTURE_FLOAT_RG_NV           0x20B6
668 #define WGL_TEXTURE_FLOAT_RGB_NV          0x20B7
669 #define WGL_TEXTURE_FLOAT_RGBA_NV         0x20B8
670 #endif /* WGL_NV_float_buffer */
671
672 #ifndef WGL_NV_gpu_affinity
673 #define WGL_NV_gpu_affinity 1
674 DECLARE_HANDLE(HGPUNV);
675 struct _GPU_DEVICE {
676     DWORD  cb;
677     CHAR   DeviceName[32];
678     CHAR   DeviceString[128];
679     DWORD  Flags;
680     RECT   rcVirtualScreen;
681 };
682 typedef struct _GPU_DEVICE *PGPU_DEVICE;
683 #define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
684 #define ERROR_MISSING_AFFINITY_MASK_NV    0x20D1
685 typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
686 typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
687 typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
688 typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
689 typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
690 #ifdef WGL_WGLEXT_PROTOTYPES
691 BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu);
692 BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
693 HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList);
694 BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
695 BOOL WINAPI wglDeleteDCNV (HDC hdc);
696 #endif
697 #endif /* WGL_NV_gpu_affinity */
698
699 #ifndef WGL_NV_multigpu_context
700 #define WGL_NV_multigpu_context 1
701 #define WGL_CONTEXT_MULTIGPU_ATTRIB_NV    0x20AA
702 #define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
703 #define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
704 #define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
705 #define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
706 #endif /* WGL_NV_multigpu_context */
707
708 #ifndef WGL_NV_multisample_coverage
709 #define WGL_NV_multisample_coverage 1
710 #define WGL_COVERAGE_SAMPLES_NV           0x2042
711 #define WGL_COLOR_SAMPLES_NV              0x20B9
712 #endif /* WGL_NV_multisample_coverage */
713
714 #ifndef WGL_NV_present_video
715 #define WGL_NV_present_video 1
716 DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
717 #define WGL_NUM_VIDEO_SLOTS_NV            0x20F0
718 typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV *phDeviceList);
719 typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
720 typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
721 #ifdef WGL_WGLEXT_PROTOTYPES
722 int WINAPI wglEnumerateVideoDevicesNV (HDC hDc, HVIDEOOUTPUTDEVICENV *phDeviceList);
723 BOOL WINAPI wglBindVideoDeviceNV (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
724 BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue);
725 #endif
726 #endif /* WGL_NV_present_video */
727
728 #ifndef WGL_NV_render_depth_texture
729 #define WGL_NV_render_depth_texture 1
730 #define WGL_BIND_TO_TEXTURE_DEPTH_NV      0x20A3
731 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
732 #define WGL_DEPTH_TEXTURE_FORMAT_NV       0x20A5
733 #define WGL_TEXTURE_DEPTH_COMPONENT_NV    0x20A6
734 #define WGL_DEPTH_COMPONENT_NV            0x20A7
735 #endif /* WGL_NV_render_depth_texture */
736
737 #ifndef WGL_NV_render_texture_rectangle
738 #define WGL_NV_render_texture_rectangle 1
739 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
740 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
741 #define WGL_TEXTURE_RECTANGLE_NV          0x20A2
742 #endif /* WGL_NV_render_texture_rectangle */
743
744 #ifndef WGL_NV_swap_group
745 #define WGL_NV_swap_group 1
746 typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
747 typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
748 typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
749 typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
750 typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
751 typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
752 #ifdef WGL_WGLEXT_PROTOTYPES
753 BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group);
754 BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier);
755 BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier);
756 BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
757 BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count);
758 BOOL WINAPI wglResetFrameCountNV (HDC hDC);
759 #endif
760 #endif /* WGL_NV_swap_group */
761
762 #ifndef WGL_NV_vertex_array_range
763 #define WGL_NV_vertex_array_range 1
764 typedef void *(WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
765 typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
766 #ifdef WGL_WGLEXT_PROTOTYPES
767 void *WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
768 void WINAPI wglFreeMemoryNV (void *pointer);
769 #endif
770 #endif /* WGL_NV_vertex_array_range */
771
772 #ifndef WGL_NV_video_capture
773 #define WGL_NV_video_capture 1
774 DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
775 #define WGL_UNIQUE_ID_NV                  0x20CE
776 #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV    0x20CF
777 typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
778 typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
779 typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
780 typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
781 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
782 #ifdef WGL_WGLEXT_PROTOTYPES
783 BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
784 UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
785 BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
786 BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
787 BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
788 #endif
789 #endif /* WGL_NV_video_capture */
790
791 #ifndef WGL_NV_video_output
792 #define WGL_NV_video_output 1
793 DECLARE_HANDLE(HPVIDEODEV);
794 #define WGL_BIND_TO_VIDEO_RGB_NV          0x20C0
795 #define WGL_BIND_TO_VIDEO_RGBA_NV         0x20C1
796 #define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
797 #define WGL_VIDEO_OUT_COLOR_NV            0x20C3
798 #define WGL_VIDEO_OUT_ALPHA_NV            0x20C4
799 #define WGL_VIDEO_OUT_DEPTH_NV            0x20C5
800 #define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV  0x20C6
801 #define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV  0x20C7
802 #define WGL_VIDEO_OUT_FRAME               0x20C8
803 #define WGL_VIDEO_OUT_FIELD_1             0x20C9
804 #define WGL_VIDEO_OUT_FIELD_2             0x20CA
805 #define WGL_VIDEO_OUT_STACKED_FIELDS_1_2  0x20CB
806 #define WGL_VIDEO_OUT_STACKED_FIELDS_2_1  0x20CC
807 typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
808 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
809 typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
810 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
811 typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
812 typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
813 #ifdef WGL_WGLEXT_PROTOTYPES
814 BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
815 BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice);
816 BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
817 BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer);
818 BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
819 BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
820 #endif
821 #endif /* WGL_NV_video_output */
822
823 #ifndef WGL_OML_sync_control
824 #define WGL_OML_sync_control 1
825 typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
826 typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
827 typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
828 typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
829 typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
830 typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
831 #ifdef WGL_WGLEXT_PROTOTYPES
832 BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
833 BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator);
834 INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
835 INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
836 BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
837 BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
838 #endif
839 #endif /* WGL_OML_sync_control */
840
841 #ifdef __cplusplus
842 }
843 #endif
844
845 #endif