9 ** Copyright (c) 2007-2012 The Khronos Group Inc.
11 ** Permission is hereby granted, free of charge, to any person obtaining a
12 ** copy of this software and/or associated documentation files (the
13 ** "Materials"), to deal in the Materials without restriction, including
14 ** without limitation the rights to use, copy, modify, merge, publish,
15 ** distribute, sublicense, and/or sell copies of the Materials, and to
16 ** permit persons to whom the Materials are furnished to do so, subject to
17 ** the following conditions:
19 ** The above copyright notice and this permission notice shall be included
20 ** in all copies or substantial portions of the Materials.
22 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
26 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
31 /* Function declaration macros - to move into glplatform.h */
33 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
34 #define WIN32_LEAN_AND_MEAN 1
42 #define APIENTRYP APIENTRY *
48 /*************************************************************/
50 /* Header file version number */
51 /* wglext.h last updated 2012/01/04 */
52 /* Current version at http://www.opengl.org/registry/ */
53 #define WGL_WGLEXT_VERSION 24
55 #ifndef WGL_ARB_buffer_region
56 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
57 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
58 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
59 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
62 #ifndef WGL_ARB_multisample
63 #define WGL_SAMPLE_BUFFERS_ARB 0x2041
64 #define WGL_SAMPLES_ARB 0x2042
67 #ifndef WGL_ARB_extensions_string
70 #ifndef WGL_ARB_pixel_format
71 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
72 #define WGL_DRAW_TO_WINDOW_ARB 0x2001
73 #define WGL_DRAW_TO_BITMAP_ARB 0x2002
74 #define WGL_ACCELERATION_ARB 0x2003
75 #define WGL_NEED_PALETTE_ARB 0x2004
76 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
77 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
78 #define WGL_SWAP_METHOD_ARB 0x2007
79 #define WGL_NUMBER_OVERLAYS_ARB 0x2008
80 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
81 #define WGL_TRANSPARENT_ARB 0x200A
82 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
83 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
84 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
85 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
86 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
87 #define WGL_SHARE_DEPTH_ARB 0x200C
88 #define WGL_SHARE_STENCIL_ARB 0x200D
89 #define WGL_SHARE_ACCUM_ARB 0x200E
90 #define WGL_SUPPORT_GDI_ARB 0x200F
91 #define WGL_SUPPORT_OPENGL_ARB 0x2010
92 #define WGL_DOUBLE_BUFFER_ARB 0x2011
93 #define WGL_STEREO_ARB 0x2012
94 #define WGL_PIXEL_TYPE_ARB 0x2013
95 #define WGL_COLOR_BITS_ARB 0x2014
96 #define WGL_RED_BITS_ARB 0x2015
97 #define WGL_RED_SHIFT_ARB 0x2016
98 #define WGL_GREEN_BITS_ARB 0x2017
99 #define WGL_GREEN_SHIFT_ARB 0x2018
100 #define WGL_BLUE_BITS_ARB 0x2019
101 #define WGL_BLUE_SHIFT_ARB 0x201A
102 #define WGL_ALPHA_BITS_ARB 0x201B
103 #define WGL_ALPHA_SHIFT_ARB 0x201C
104 #define WGL_ACCUM_BITS_ARB 0x201D
105 #define WGL_ACCUM_RED_BITS_ARB 0x201E
106 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
107 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
108 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
109 #define WGL_DEPTH_BITS_ARB 0x2022
110 #define WGL_STENCIL_BITS_ARB 0x2023
111 #define WGL_AUX_BUFFERS_ARB 0x2024
112 #define WGL_NO_ACCELERATION_ARB 0x2025
113 #define WGL_GENERIC_ACCELERATION_ARB 0x2026
114 #define WGL_FULL_ACCELERATION_ARB 0x2027
115 #define WGL_SWAP_EXCHANGE_ARB 0x2028
116 #define WGL_SWAP_COPY_ARB 0x2029
117 #define WGL_SWAP_UNDEFINED_ARB 0x202A
118 #define WGL_TYPE_RGBA_ARB 0x202B
119 #define WGL_TYPE_COLORINDEX_ARB 0x202C
122 #ifndef WGL_ARB_make_current_read
123 #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
124 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
127 #ifndef WGL_ARB_pbuffer
128 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D
129 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
130 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
131 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
132 #define WGL_PBUFFER_LARGEST_ARB 0x2033
133 #define WGL_PBUFFER_WIDTH_ARB 0x2034
134 #define WGL_PBUFFER_HEIGHT_ARB 0x2035
135 #define WGL_PBUFFER_LOST_ARB 0x2036
138 #ifndef WGL_ARB_render_texture
139 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
140 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
141 #define WGL_TEXTURE_FORMAT_ARB 0x2072
142 #define WGL_TEXTURE_TARGET_ARB 0x2073
143 #define WGL_MIPMAP_TEXTURE_ARB 0x2074
144 #define WGL_TEXTURE_RGB_ARB 0x2075
145 #define WGL_TEXTURE_RGBA_ARB 0x2076
146 #define WGL_NO_TEXTURE_ARB 0x2077
147 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
148 #define WGL_TEXTURE_1D_ARB 0x2079
149 #define WGL_TEXTURE_2D_ARB 0x207A
150 #define WGL_MIPMAP_LEVEL_ARB 0x207B
151 #define WGL_CUBE_MAP_FACE_ARB 0x207C
152 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
153 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
154 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
155 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
156 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
157 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
158 #define WGL_FRONT_LEFT_ARB 0x2083
159 #define WGL_FRONT_RIGHT_ARB 0x2084
160 #define WGL_BACK_LEFT_ARB 0x2085
161 #define WGL_BACK_RIGHT_ARB 0x2086
162 #define WGL_AUX0_ARB 0x2087
163 #define WGL_AUX1_ARB 0x2088
164 #define WGL_AUX2_ARB 0x2089
165 #define WGL_AUX3_ARB 0x208A
166 #define WGL_AUX4_ARB 0x208B
167 #define WGL_AUX5_ARB 0x208C
168 #define WGL_AUX6_ARB 0x208D
169 #define WGL_AUX7_ARB 0x208E
170 #define WGL_AUX8_ARB 0x208F
171 #define WGL_AUX9_ARB 0x2090
174 #ifndef WGL_ARB_pixel_format_float
175 #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
178 #ifndef WGL_ARB_framebuffer_sRGB
179 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
182 #ifndef WGL_ARB_create_context
183 #define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
184 #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
185 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
186 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
187 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
188 #define WGL_CONTEXT_FLAGS_ARB 0x2094
189 #define ERROR_INVALID_VERSION_ARB 0x2095
192 #ifndef WGL_ARB_create_context_profile
193 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
194 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
195 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
196 #define ERROR_INVALID_PROFILE_ARB 0x2096
199 #ifndef WGL_ARB_create_context_robustness
200 #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
201 #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
202 #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
203 #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
206 #ifndef WGL_EXT_make_current_read
207 #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
210 #ifndef WGL_EXT_pixel_format
211 #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
212 #define WGL_DRAW_TO_WINDOW_EXT 0x2001
213 #define WGL_DRAW_TO_BITMAP_EXT 0x2002
214 #define WGL_ACCELERATION_EXT 0x2003
215 #define WGL_NEED_PALETTE_EXT 0x2004
216 #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
217 #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
218 #define WGL_SWAP_METHOD_EXT 0x2007
219 #define WGL_NUMBER_OVERLAYS_EXT 0x2008
220 #define WGL_NUMBER_UNDERLAYS_EXT 0x2009
221 #define WGL_TRANSPARENT_EXT 0x200A
222 #define WGL_TRANSPARENT_VALUE_EXT 0x200B
223 #define WGL_SHARE_DEPTH_EXT 0x200C
224 #define WGL_SHARE_STENCIL_EXT 0x200D
225 #define WGL_SHARE_ACCUM_EXT 0x200E
226 #define WGL_SUPPORT_GDI_EXT 0x200F
227 #define WGL_SUPPORT_OPENGL_EXT 0x2010
228 #define WGL_DOUBLE_BUFFER_EXT 0x2011
229 #define WGL_STEREO_EXT 0x2012
230 #define WGL_PIXEL_TYPE_EXT 0x2013
231 #define WGL_COLOR_BITS_EXT 0x2014
232 #define WGL_RED_BITS_EXT 0x2015
233 #define WGL_RED_SHIFT_EXT 0x2016
234 #define WGL_GREEN_BITS_EXT 0x2017
235 #define WGL_GREEN_SHIFT_EXT 0x2018
236 #define WGL_BLUE_BITS_EXT 0x2019
237 #define WGL_BLUE_SHIFT_EXT 0x201A
238 #define WGL_ALPHA_BITS_EXT 0x201B
239 #define WGL_ALPHA_SHIFT_EXT 0x201C
240 #define WGL_ACCUM_BITS_EXT 0x201D
241 #define WGL_ACCUM_RED_BITS_EXT 0x201E
242 #define WGL_ACCUM_GREEN_BITS_EXT 0x201F
243 #define WGL_ACCUM_BLUE_BITS_EXT 0x2020
244 #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
245 #define WGL_DEPTH_BITS_EXT 0x2022
246 #define WGL_STENCIL_BITS_EXT 0x2023
247 #define WGL_AUX_BUFFERS_EXT 0x2024
248 #define WGL_NO_ACCELERATION_EXT 0x2025
249 #define WGL_GENERIC_ACCELERATION_EXT 0x2026
250 #define WGL_FULL_ACCELERATION_EXT 0x2027
251 #define WGL_SWAP_EXCHANGE_EXT 0x2028
252 #define WGL_SWAP_COPY_EXT 0x2029
253 #define WGL_SWAP_UNDEFINED_EXT 0x202A
254 #define WGL_TYPE_RGBA_EXT 0x202B
255 #define WGL_TYPE_COLORINDEX_EXT 0x202C
258 #ifndef WGL_EXT_pbuffer
259 #define WGL_DRAW_TO_PBUFFER_EXT 0x202D
260 #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
261 #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
262 #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
263 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
264 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
265 #define WGL_PBUFFER_LARGEST_EXT 0x2033
266 #define WGL_PBUFFER_WIDTH_EXT 0x2034
267 #define WGL_PBUFFER_HEIGHT_EXT 0x2035
270 #ifndef WGL_EXT_depth_float
271 #define WGL_DEPTH_FLOAT_EXT 0x2040
274 #ifndef WGL_3DFX_multisample
275 #define WGL_SAMPLE_BUFFERS_3DFX 0x2060
276 #define WGL_SAMPLES_3DFX 0x2061
279 #ifndef WGL_EXT_multisample
280 #define WGL_SAMPLE_BUFFERS_EXT 0x2041
281 #define WGL_SAMPLES_EXT 0x2042
284 #ifndef WGL_I3D_digital_video_control
285 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
286 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
287 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
288 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
291 #ifndef WGL_I3D_gamma
292 #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
293 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
296 #ifndef WGL_I3D_genlock
297 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
298 #define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045
299 #define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046
300 #define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047
301 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
302 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
303 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
304 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
305 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
308 #ifndef WGL_I3D_image_buffer
309 #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
310 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
313 #ifndef WGL_I3D_swap_frame_lock
316 #ifndef WGL_NV_render_depth_texture
317 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
318 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
319 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
320 #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
321 #define WGL_DEPTH_COMPONENT_NV 0x20A7
324 #ifndef WGL_NV_render_texture_rectangle
325 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
326 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
327 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2
330 #ifndef WGL_ATI_pixel_format_float
331 #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
334 #ifndef WGL_NV_float_buffer
335 #define WGL_FLOAT_COMPONENTS_NV 0x20B0
336 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
337 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
338 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
339 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
340 #define WGL_TEXTURE_FLOAT_R_NV 0x20B5
341 #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
342 #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
343 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
346 #ifndef WGL_3DL_stereo_control
347 #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
348 #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
349 #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
350 #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
353 #ifndef WGL_EXT_pixel_format_packed_float
354 #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
357 #ifndef WGL_EXT_framebuffer_sRGB
358 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
361 #ifndef WGL_NV_present_video
362 #define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
365 #ifndef WGL_NV_video_out
366 #define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
367 #define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
368 #define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
369 #define WGL_VIDEO_OUT_COLOR_NV 0x20C3
370 #define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
371 #define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
372 #define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
373 #define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
374 #define WGL_VIDEO_OUT_FRAME 0x20C8
375 #define WGL_VIDEO_OUT_FIELD_1 0x20C9
376 #define WGL_VIDEO_OUT_FIELD_2 0x20CA
377 #define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
378 #define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
381 #ifndef WGL_NV_swap_group
384 #ifndef WGL_NV_gpu_affinity
385 #define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
386 #define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
389 #ifndef WGL_AMD_gpu_association
390 #define WGL_GPU_VENDOR_AMD 0x1F00
391 #define WGL_GPU_RENDERER_STRING_AMD 0x1F01
392 #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
393 #define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
394 #define WGL_GPU_RAM_AMD 0x21A3
395 #define WGL_GPU_CLOCK_AMD 0x21A4
396 #define WGL_GPU_NUM_PIPES_AMD 0x21A5
397 #define WGL_GPU_NUM_SIMD_AMD 0x21A6
398 #define WGL_GPU_NUM_RB_AMD 0x21A7
399 #define WGL_GPU_NUM_SPI_AMD 0x21A8
402 #ifndef WGL_NV_video_capture
403 #define WGL_UNIQUE_ID_NV 0x20CE
404 #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
407 #ifndef WGL_NV_copy_image
410 #ifndef WGL_NV_multisample_coverage
411 #define WGL_COVERAGE_SAMPLES_NV 0x2042
412 #define WGL_COLOR_SAMPLES_NV 0x20B9
415 #ifndef WGL_EXT_create_context_es2_profile
416 #define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
419 #ifndef WGL_NV_DX_interop
420 #define WGL_ACCESS_READ_ONLY_NV 0x00000000
421 #define WGL_ACCESS_READ_WRITE_NV 0x00000001
422 #define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
425 #ifndef WGL_NV_DX_interop2
428 #ifndef WGL_EXT_swap_control_tear
432 /*************************************************************/
434 #ifndef WGL_ARB_pbuffer
435 DECLARE_HANDLE(HPBUFFERARB
);
437 #ifndef WGL_EXT_pbuffer
438 DECLARE_HANDLE(HPBUFFEREXT
);
440 #ifndef WGL_NV_present_video
441 DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV
);
443 #ifndef WGL_NV_video_output
444 DECLARE_HANDLE(HPVIDEODEV
);
446 #ifndef WGL_NV_gpu_affinity
447 DECLARE_HANDLE(HPGPUNV
);
448 DECLARE_HANDLE(HGPUNV
);
450 typedef struct _GPU_DEVICE
{
453 CHAR DeviceString
[128];
455 RECT rcVirtualScreen
;
456 } GPU_DEVICE
, *PGPU_DEVICE
;
458 #ifndef WGL_NV_video_capture
459 DECLARE_HANDLE(HVIDEOINPUTDEVICENV
);
462 #ifndef WGL_ARB_buffer_region
463 #define WGL_ARB_buffer_region 1
464 #ifdef WGL_WGLEXT_PROTOTYPES
465 extern HANDLE WINAPI
wglCreateBufferRegionARB (HDC hDC
, int iLayerPlane
, UINT uType
);
466 extern VOID WINAPI
wglDeleteBufferRegionARB (HANDLE hRegion
);
467 extern BOOL WINAPI
wglSaveBufferRegionARB (HANDLE hRegion
, int x
, int y
, int width
, int height
);
468 extern BOOL WINAPI
wglRestoreBufferRegionARB (HANDLE hRegion
, int x
, int y
, int width
, int height
, int xSrc
, int ySrc
);
469 #endif /* WGL_WGLEXT_PROTOTYPES */
470 typedef HANDLE (WINAPI
* PFNWGLCREATEBUFFERREGIONARBPROC
) (HDC hDC
, int iLayerPlane
, UINT uType
);
471 typedef VOID (WINAPI
* PFNWGLDELETEBUFFERREGIONARBPROC
) (HANDLE hRegion
);
472 typedef BOOL (WINAPI
* PFNWGLSAVEBUFFERREGIONARBPROC
) (HANDLE hRegion
, int x
, int y
, int width
, int height
);
473 typedef BOOL (WINAPI
* PFNWGLRESTOREBUFFERREGIONARBPROC
) (HANDLE hRegion
, int x
, int y
, int width
, int height
, int xSrc
, int ySrc
);
476 #ifndef WGL_ARB_multisample
477 #define WGL_ARB_multisample 1
480 #ifndef WGL_ARB_extensions_string
481 #define WGL_ARB_extensions_string 1
482 #ifdef WGL_WGLEXT_PROTOTYPES
483 extern const char * WINAPI
wglGetExtensionsStringARB (HDC hdc
);
484 #endif /* WGL_WGLEXT_PROTOTYPES */
485 typedef const char * (WINAPI
* PFNWGLGETEXTENSIONSSTRINGARBPROC
) (HDC hdc
);
488 #ifndef WGL_ARB_pixel_format
489 #define WGL_ARB_pixel_format 1
490 #ifdef WGL_WGLEXT_PROTOTYPES
491 extern BOOL WINAPI
wglGetPixelFormatAttribivARB (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, const int *piAttributes
, int *piValues
);
492 extern BOOL WINAPI
wglGetPixelFormatAttribfvARB (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, const int *piAttributes
, FLOAT
*pfValues
);
493 extern BOOL WINAPI
wglChoosePixelFormatARB (HDC hdc
, const int *piAttribIList
, const FLOAT
*pfAttribFList
, UINT nMaxFormats
, int *piFormats
, UINT
*nNumFormats
);
494 #endif /* WGL_WGLEXT_PROTOTYPES */
495 typedef BOOL (WINAPI
* PFNWGLGETPIXELFORMATATTRIBIVARBPROC
) (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, const int *piAttributes
, int *piValues
);
496 typedef BOOL (WINAPI
* PFNWGLGETPIXELFORMATATTRIBFVARBPROC
) (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, const int *piAttributes
, FLOAT
*pfValues
);
497 typedef BOOL (WINAPI
* PFNWGLCHOOSEPIXELFORMATARBPROC
) (HDC hdc
, const int *piAttribIList
, const FLOAT
*pfAttribFList
, UINT nMaxFormats
, int *piFormats
, UINT
*nNumFormats
);
500 #ifndef WGL_ARB_make_current_read
501 #define WGL_ARB_make_current_read 1
502 #ifdef WGL_WGLEXT_PROTOTYPES
503 extern BOOL WINAPI
wglMakeContextCurrentARB (HDC hDrawDC
, HDC hReadDC
, HGLRC hglrc
);
504 extern HDC WINAPI
wglGetCurrentReadDCARB (void);
505 #endif /* WGL_WGLEXT_PROTOTYPES */
506 typedef BOOL (WINAPI
* PFNWGLMAKECONTEXTCURRENTARBPROC
) (HDC hDrawDC
, HDC hReadDC
, HGLRC hglrc
);
507 typedef HDC (WINAPI
* PFNWGLGETCURRENTREADDCARBPROC
) (void);
510 #ifndef WGL_ARB_pbuffer
511 #define WGL_ARB_pbuffer 1
512 #ifdef WGL_WGLEXT_PROTOTYPES
513 extern HPBUFFERARB WINAPI
wglCreatePbufferARB (HDC hDC
, int iPixelFormat
, int iWidth
, int iHeight
, const int *piAttribList
);
514 extern HDC WINAPI
wglGetPbufferDCARB (HPBUFFERARB hPbuffer
);
515 extern int WINAPI
wglReleasePbufferDCARB (HPBUFFERARB hPbuffer
, HDC hDC
);
516 extern BOOL WINAPI
wglDestroyPbufferARB (HPBUFFERARB hPbuffer
);
517 extern BOOL WINAPI
wglQueryPbufferARB (HPBUFFERARB hPbuffer
, int iAttribute
, int *piValue
);
518 #endif /* WGL_WGLEXT_PROTOTYPES */
519 typedef HPBUFFERARB (WINAPI
* PFNWGLCREATEPBUFFERARBPROC
) (HDC hDC
, int iPixelFormat
, int iWidth
, int iHeight
, const int *piAttribList
);
520 typedef HDC (WINAPI
* PFNWGLGETPBUFFERDCARBPROC
) (HPBUFFERARB hPbuffer
);
521 typedef int (WINAPI
* PFNWGLRELEASEPBUFFERDCARBPROC
) (HPBUFFERARB hPbuffer
, HDC hDC
);
522 typedef BOOL (WINAPI
* PFNWGLDESTROYPBUFFERARBPROC
) (HPBUFFERARB hPbuffer
);
523 typedef BOOL (WINAPI
* PFNWGLQUERYPBUFFERARBPROC
) (HPBUFFERARB hPbuffer
, int iAttribute
, int *piValue
);
526 #ifndef WGL_ARB_render_texture
527 #define WGL_ARB_render_texture 1
528 #ifdef WGL_WGLEXT_PROTOTYPES
529 extern BOOL WINAPI
wglBindTexImageARB (HPBUFFERARB hPbuffer
, int iBuffer
);
530 extern BOOL WINAPI
wglReleaseTexImageARB (HPBUFFERARB hPbuffer
, int iBuffer
);
531 extern BOOL WINAPI
wglSetPbufferAttribARB (HPBUFFERARB hPbuffer
, const int *piAttribList
);
532 #endif /* WGL_WGLEXT_PROTOTYPES */
533 typedef BOOL (WINAPI
* PFNWGLBINDTEXIMAGEARBPROC
) (HPBUFFERARB hPbuffer
, int iBuffer
);
534 typedef BOOL (WINAPI
* PFNWGLRELEASETEXIMAGEARBPROC
) (HPBUFFERARB hPbuffer
, int iBuffer
);
535 typedef BOOL (WINAPI
* PFNWGLSETPBUFFERATTRIBARBPROC
) (HPBUFFERARB hPbuffer
, const int *piAttribList
);
538 #ifndef WGL_ARB_pixel_format_float
539 #define WGL_ARB_pixel_format_float 1
542 #ifndef WGL_ARB_framebuffer_sRGB
543 #define WGL_ARB_framebuffer_sRGB 1
546 #ifndef WGL_ARB_create_context
547 #define WGL_ARB_create_context 1
548 #ifdef WGL_WGLEXT_PROTOTYPES
549 extern HGLRC WINAPI
wglCreateContextAttribsARB (HDC hDC
, HGLRC hShareContext
, const int *attribList
);
550 #endif /* WGL_WGLEXT_PROTOTYPES */
551 typedef HGLRC (WINAPI
* PFNWGLCREATECONTEXTATTRIBSARBPROC
) (HDC hDC
, HGLRC hShareContext
, const int *attribList
);
554 #ifndef WGL_ARB_create_context_profile
555 #define WGL_ARB_create_context_profile 1
558 #ifndef WGL_ARB_create_context_robustness
559 #define WGL_ARB_create_context_robustness 1
562 #ifndef WGL_EXT_display_color_table
563 #define WGL_EXT_display_color_table 1
564 #ifdef WGL_WGLEXT_PROTOTYPES
565 extern GLboolean WINAPI
wglCreateDisplayColorTableEXT (GLushort id
);
566 extern GLboolean WINAPI
wglLoadDisplayColorTableEXT (const GLushort
*table
, GLuint length
);
567 extern GLboolean WINAPI
wglBindDisplayColorTableEXT (GLushort id
);
568 extern VOID WINAPI
wglDestroyDisplayColorTableEXT (GLushort id
);
569 #endif /* WGL_WGLEXT_PROTOTYPES */
570 typedef GLboolean (WINAPI
* PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC
) (GLushort id
);
571 typedef GLboolean (WINAPI
* PFNWGLLOADDISPLAYCOLORTABLEEXTPROC
) (const GLushort
*table
, GLuint length
);
572 typedef GLboolean (WINAPI
* PFNWGLBINDDISPLAYCOLORTABLEEXTPROC
) (GLushort id
);
573 typedef VOID (WINAPI
* PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC
) (GLushort id
);
576 #ifndef WGL_EXT_extensions_string
577 #define WGL_EXT_extensions_string 1
578 #ifdef WGL_WGLEXT_PROTOTYPES
579 extern const char * WINAPI
wglGetExtensionsStringEXT (void);
580 #endif /* WGL_WGLEXT_PROTOTYPES */
581 typedef const char * (WINAPI
* PFNWGLGETEXTENSIONSSTRINGEXTPROC
) (void);
584 #ifndef WGL_EXT_make_current_read
585 #define WGL_EXT_make_current_read 1
586 #ifdef WGL_WGLEXT_PROTOTYPES
587 extern BOOL WINAPI
wglMakeContextCurrentEXT (HDC hDrawDC
, HDC hReadDC
, HGLRC hglrc
);
588 extern HDC WINAPI
wglGetCurrentReadDCEXT (void);
589 #endif /* WGL_WGLEXT_PROTOTYPES */
590 typedef BOOL (WINAPI
* PFNWGLMAKECONTEXTCURRENTEXTPROC
) (HDC hDrawDC
, HDC hReadDC
, HGLRC hglrc
);
591 typedef HDC (WINAPI
* PFNWGLGETCURRENTREADDCEXTPROC
) (void);
594 #ifndef WGL_EXT_pbuffer
595 #define WGL_EXT_pbuffer 1
596 #ifdef WGL_WGLEXT_PROTOTYPES
597 extern HPBUFFEREXT WINAPI
wglCreatePbufferEXT (HDC hDC
, int iPixelFormat
, int iWidth
, int iHeight
, const int *piAttribList
);
598 extern HDC WINAPI
wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer
);
599 extern int WINAPI
wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer
, HDC hDC
);
600 extern BOOL WINAPI
wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer
);
601 extern BOOL WINAPI
wglQueryPbufferEXT (HPBUFFEREXT hPbuffer
, int iAttribute
, int *piValue
);
602 #endif /* WGL_WGLEXT_PROTOTYPES */
603 typedef HPBUFFEREXT (WINAPI
* PFNWGLCREATEPBUFFEREXTPROC
) (HDC hDC
, int iPixelFormat
, int iWidth
, int iHeight
, const int *piAttribList
);
604 typedef HDC (WINAPI
* PFNWGLGETPBUFFERDCEXTPROC
) (HPBUFFEREXT hPbuffer
);
605 typedef int (WINAPI
* PFNWGLRELEASEPBUFFERDCEXTPROC
) (HPBUFFEREXT hPbuffer
, HDC hDC
);
606 typedef BOOL (WINAPI
* PFNWGLDESTROYPBUFFEREXTPROC
) (HPBUFFEREXT hPbuffer
);
607 typedef BOOL (WINAPI
* PFNWGLQUERYPBUFFEREXTPROC
) (HPBUFFEREXT hPbuffer
, int iAttribute
, int *piValue
);
610 #ifndef WGL_EXT_pixel_format
611 #define WGL_EXT_pixel_format 1
612 #ifdef WGL_WGLEXT_PROTOTYPES
613 extern BOOL WINAPI
wglGetPixelFormatAttribivEXT (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, int *piAttributes
, int *piValues
);
614 extern BOOL WINAPI
wglGetPixelFormatAttribfvEXT (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, int *piAttributes
, FLOAT
*pfValues
);
615 extern BOOL WINAPI
wglChoosePixelFormatEXT (HDC hdc
, const int *piAttribIList
, const FLOAT
*pfAttribFList
, UINT nMaxFormats
, int *piFormats
, UINT
*nNumFormats
);
616 #endif /* WGL_WGLEXT_PROTOTYPES */
617 typedef BOOL (WINAPI
* PFNWGLGETPIXELFORMATATTRIBIVEXTPROC
) (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, int *piAttributes
, int *piValues
);
618 typedef BOOL (WINAPI
* PFNWGLGETPIXELFORMATATTRIBFVEXTPROC
) (HDC hdc
, int iPixelFormat
, int iLayerPlane
, UINT nAttributes
, int *piAttributes
, FLOAT
*pfValues
);
619 typedef BOOL (WINAPI
* PFNWGLCHOOSEPIXELFORMATEXTPROC
) (HDC hdc
, const int *piAttribIList
, const FLOAT
*pfAttribFList
, UINT nMaxFormats
, int *piFormats
, UINT
*nNumFormats
);
622 #ifndef WGL_EXT_swap_control
623 #define WGL_EXT_swap_control 1
624 #ifdef WGL_WGLEXT_PROTOTYPES
625 extern BOOL WINAPI
wglSwapIntervalEXT (int interval
);
626 extern int WINAPI
wglGetSwapIntervalEXT (void);
627 #endif /* WGL_WGLEXT_PROTOTYPES */
628 typedef BOOL (WINAPI
* PFNWGLSWAPINTERVALEXTPROC
) (int interval
);
629 typedef int (WINAPI
* PFNWGLGETSWAPINTERVALEXTPROC
) (void);
632 #ifndef WGL_EXT_depth_float
633 #define WGL_EXT_depth_float 1
636 #ifndef WGL_NV_vertex_array_range
637 #define WGL_NV_vertex_array_range 1
638 #ifdef WGL_WGLEXT_PROTOTYPES
639 extern void* WINAPI
wglAllocateMemoryNV (GLsizei size
, GLfloat readfreq
, GLfloat writefreq
, GLfloat priority
);
640 extern void WINAPI
wglFreeMemoryNV (void *pointer
);
641 #endif /* WGL_WGLEXT_PROTOTYPES */
642 typedef void* (WINAPI
* PFNWGLALLOCATEMEMORYNVPROC
) (GLsizei size
, GLfloat readfreq
, GLfloat writefreq
, GLfloat priority
);
643 typedef void (WINAPI
* PFNWGLFREEMEMORYNVPROC
) (void *pointer
);
646 #ifndef WGL_3DFX_multisample
647 #define WGL_3DFX_multisample 1
650 #ifndef WGL_EXT_multisample
651 #define WGL_EXT_multisample 1
654 #ifndef WGL_OML_sync_control
655 #define WGL_OML_sync_control 1
656 #ifdef WGL_WGLEXT_PROTOTYPES
657 extern BOOL WINAPI
wglGetSyncValuesOML (HDC hdc
, INT64
*ust
, INT64
*msc
, INT64
*sbc
);
658 extern BOOL WINAPI
wglGetMscRateOML (HDC hdc
, INT32
*numerator
, INT32
*denominator
);
659 extern INT64 WINAPI
wglSwapBuffersMscOML (HDC hdc
, INT64 target_msc
, INT64 divisor
, INT64 remainder
);
660 extern INT64 WINAPI
wglSwapLayerBuffersMscOML (HDC hdc
, int fuPlanes
, INT64 target_msc
, INT64 divisor
, INT64 remainder
);
661 extern BOOL WINAPI
wglWaitForMscOML (HDC hdc
, INT64 target_msc
, INT64 divisor
, INT64 remainder
, INT64
*ust
, INT64
*msc
, INT64
*sbc
);
662 extern BOOL WINAPI
wglWaitForSbcOML (HDC hdc
, INT64 target_sbc
, INT64
*ust
, INT64
*msc
, INT64
*sbc
);
663 #endif /* WGL_WGLEXT_PROTOTYPES */
664 typedef BOOL (WINAPI
* PFNWGLGETSYNCVALUESOMLPROC
) (HDC hdc
, INT64
*ust
, INT64
*msc
, INT64
*sbc
);
665 typedef BOOL (WINAPI
* PFNWGLGETMSCRATEOMLPROC
) (HDC hdc
, INT32
*numerator
, INT32
*denominator
);
666 typedef INT64 (WINAPI
* PFNWGLSWAPBUFFERSMSCOMLPROC
) (HDC hdc
, INT64 target_msc
, INT64 divisor
, INT64 remainder
);
667 typedef INT64 (WINAPI
* PFNWGLSWAPLAYERBUFFERSMSCOMLPROC
) (HDC hdc
, int fuPlanes
, INT64 target_msc
, INT64 divisor
, INT64 remainder
);
668 typedef BOOL (WINAPI
* PFNWGLWAITFORMSCOMLPROC
) (HDC hdc
, INT64 target_msc
, INT64 divisor
, INT64 remainder
, INT64
*ust
, INT64
*msc
, INT64
*sbc
);
669 typedef BOOL (WINAPI
* PFNWGLWAITFORSBCOMLPROC
) (HDC hdc
, INT64 target_sbc
, INT64
*ust
, INT64
*msc
, INT64
*sbc
);
672 #ifndef WGL_I3D_digital_video_control
673 #define WGL_I3D_digital_video_control 1
674 #ifdef WGL_WGLEXT_PROTOTYPES
675 extern BOOL WINAPI
wglGetDigitalVideoParametersI3D (HDC hDC
, int iAttribute
, int *piValue
);
676 extern BOOL WINAPI
wglSetDigitalVideoParametersI3D (HDC hDC
, int iAttribute
, const int *piValue
);
677 #endif /* WGL_WGLEXT_PROTOTYPES */
678 typedef BOOL (WINAPI
* PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC
) (HDC hDC
, int iAttribute
, int *piValue
);
679 typedef BOOL (WINAPI
* PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC
) (HDC hDC
, int iAttribute
, const int *piValue
);
682 #ifndef WGL_I3D_gamma
683 #define WGL_I3D_gamma 1
684 #ifdef WGL_WGLEXT_PROTOTYPES
685 extern BOOL WINAPI
wglGetGammaTableParametersI3D (HDC hDC
, int iAttribute
, int *piValue
);
686 extern BOOL WINAPI
wglSetGammaTableParametersI3D (HDC hDC
, int iAttribute
, const int *piValue
);
687 extern BOOL WINAPI
wglGetGammaTableI3D (HDC hDC
, int iEntries
, USHORT
*puRed
, USHORT
*puGreen
, USHORT
*puBlue
);
688 extern BOOL WINAPI
wglSetGammaTableI3D (HDC hDC
, int iEntries
, const USHORT
*puRed
, const USHORT
*puGreen
, const USHORT
*puBlue
);
689 #endif /* WGL_WGLEXT_PROTOTYPES */
690 typedef BOOL (WINAPI
* PFNWGLGETGAMMATABLEPARAMETERSI3DPROC
) (HDC hDC
, int iAttribute
, int *piValue
);
691 typedef BOOL (WINAPI
* PFNWGLSETGAMMATABLEPARAMETERSI3DPROC
) (HDC hDC
, int iAttribute
, const int *piValue
);
692 typedef BOOL (WINAPI
* PFNWGLGETGAMMATABLEI3DPROC
) (HDC hDC
, int iEntries
, USHORT
*puRed
, USHORT
*puGreen
, USHORT
*puBlue
);
693 typedef BOOL (WINAPI
* PFNWGLSETGAMMATABLEI3DPROC
) (HDC hDC
, int iEntries
, const USHORT
*puRed
, const USHORT
*puGreen
, const USHORT
*puBlue
);
696 #ifndef WGL_I3D_genlock
697 #define WGL_I3D_genlock 1
698 #ifdef WGL_WGLEXT_PROTOTYPES
699 extern BOOL WINAPI
wglEnableGenlockI3D (HDC hDC
);
700 extern BOOL WINAPI
wglDisableGenlockI3D (HDC hDC
);
701 extern BOOL WINAPI
wglIsEnabledGenlockI3D (HDC hDC
, BOOL
*pFlag
);
702 extern BOOL WINAPI
wglGenlockSourceI3D (HDC hDC
, UINT uSource
);
703 extern BOOL WINAPI
wglGetGenlockSourceI3D (HDC hDC
, UINT
*uSource
);
704 extern BOOL WINAPI
wglGenlockSourceEdgeI3D (HDC hDC
, UINT uEdge
);
705 extern BOOL WINAPI
wglGetGenlockSourceEdgeI3D (HDC hDC
, UINT
*uEdge
);
706 extern BOOL WINAPI
wglGenlockSampleRateI3D (HDC hDC
, UINT uRate
);
707 extern BOOL WINAPI
wglGetGenlockSampleRateI3D (HDC hDC
, UINT
*uRate
);
708 extern BOOL WINAPI
wglGenlockSourceDelayI3D (HDC hDC
, UINT uDelay
);
709 extern BOOL WINAPI
wglGetGenlockSourceDelayI3D (HDC hDC
, UINT
*uDelay
);
710 extern BOOL WINAPI
wglQueryGenlockMaxSourceDelayI3D (HDC hDC
, UINT
*uMaxLineDelay
, UINT
*uMaxPixelDelay
);
711 #endif /* WGL_WGLEXT_PROTOTYPES */
712 typedef BOOL (WINAPI
* PFNWGLENABLEGENLOCKI3DPROC
) (HDC hDC
);
713 typedef BOOL (WINAPI
* PFNWGLDISABLEGENLOCKI3DPROC
) (HDC hDC
);
714 typedef BOOL (WINAPI
* PFNWGLISENABLEDGENLOCKI3DPROC
) (HDC hDC
, BOOL
*pFlag
);
715 typedef BOOL (WINAPI
* PFNWGLGENLOCKSOURCEI3DPROC
) (HDC hDC
, UINT uSource
);
716 typedef BOOL (WINAPI
* PFNWGLGETGENLOCKSOURCEI3DPROC
) (HDC hDC
, UINT
*uSource
);
717 typedef BOOL (WINAPI
* PFNWGLGENLOCKSOURCEEDGEI3DPROC
) (HDC hDC
, UINT uEdge
);
718 typedef BOOL (WINAPI
* PFNWGLGETGENLOCKSOURCEEDGEI3DPROC
) (HDC hDC
, UINT
*uEdge
);
719 typedef BOOL (WINAPI
* PFNWGLGENLOCKSAMPLERATEI3DPROC
) (HDC hDC
, UINT uRate
);
720 typedef BOOL (WINAPI
* PFNWGLGETGENLOCKSAMPLERATEI3DPROC
) (HDC hDC
, UINT
*uRate
);
721 typedef BOOL (WINAPI
* PFNWGLGENLOCKSOURCEDELAYI3DPROC
) (HDC hDC
, UINT uDelay
);
722 typedef BOOL (WINAPI
* PFNWGLGETGENLOCKSOURCEDELAYI3DPROC
) (HDC hDC
, UINT
*uDelay
);
723 typedef BOOL (WINAPI
* PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC
) (HDC hDC
, UINT
*uMaxLineDelay
, UINT
*uMaxPixelDelay
);
726 #ifndef WGL_I3D_image_buffer
727 #define WGL_I3D_image_buffer 1
728 #ifdef WGL_WGLEXT_PROTOTYPES
729 extern LPVOID WINAPI
wglCreateImageBufferI3D (HDC hDC
, DWORD dwSize
, UINT uFlags
);
730 extern BOOL WINAPI
wglDestroyImageBufferI3D (HDC hDC
, LPVOID pAddress
);
731 extern BOOL WINAPI
wglAssociateImageBufferEventsI3D (HDC hDC
, const HANDLE
*pEvent
, const LPVOID
*pAddress
, const DWORD
*pSize
, UINT count
);
732 extern BOOL WINAPI
wglReleaseImageBufferEventsI3D (HDC hDC
, const LPVOID
*pAddress
, UINT count
);
733 #endif /* WGL_WGLEXT_PROTOTYPES */
734 typedef LPVOID (WINAPI
* PFNWGLCREATEIMAGEBUFFERI3DPROC
) (HDC hDC
, DWORD dwSize
, UINT uFlags
);
735 typedef BOOL (WINAPI
* PFNWGLDESTROYIMAGEBUFFERI3DPROC
) (HDC hDC
, LPVOID pAddress
);
736 typedef BOOL (WINAPI
* PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC
) (HDC hDC
, const HANDLE
*pEvent
, const LPVOID
*pAddress
, const DWORD
*pSize
, UINT count
);
737 typedef BOOL (WINAPI
* PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC
) (HDC hDC
, const LPVOID
*pAddress
, UINT count
);
740 #ifndef WGL_I3D_swap_frame_lock
741 #define WGL_I3D_swap_frame_lock 1
742 #ifdef WGL_WGLEXT_PROTOTYPES
743 extern BOOL WINAPI
wglEnableFrameLockI3D (void);
744 extern BOOL WINAPI
wglDisableFrameLockI3D (void);
745 extern BOOL WINAPI
wglIsEnabledFrameLockI3D (BOOL
*pFlag
);
746 extern BOOL WINAPI
wglQueryFrameLockMasterI3D (BOOL
*pFlag
);
747 #endif /* WGL_WGLEXT_PROTOTYPES */
748 typedef BOOL (WINAPI
* PFNWGLENABLEFRAMELOCKI3DPROC
) (void);
749 typedef BOOL (WINAPI
* PFNWGLDISABLEFRAMELOCKI3DPROC
) (void);
750 typedef BOOL (WINAPI
* PFNWGLISENABLEDFRAMELOCKI3DPROC
) (BOOL
*pFlag
);
751 typedef BOOL (WINAPI
* PFNWGLQUERYFRAMELOCKMASTERI3DPROC
) (BOOL
*pFlag
);
754 #ifndef WGL_I3D_swap_frame_usage
755 #define WGL_I3D_swap_frame_usage 1
756 #ifdef WGL_WGLEXT_PROTOTYPES
757 extern BOOL WINAPI
wglGetFrameUsageI3D (float *pUsage
);
758 extern BOOL WINAPI
wglBeginFrameTrackingI3D (void);
759 extern BOOL WINAPI
wglEndFrameTrackingI3D (void);
760 extern BOOL WINAPI
wglQueryFrameTrackingI3D (DWORD
*pFrameCount
, DWORD
*pMissedFrames
, float *pLastMissedUsage
);
761 #endif /* WGL_WGLEXT_PROTOTYPES */
762 typedef BOOL (WINAPI
* PFNWGLGETFRAMEUSAGEI3DPROC
) (float *pUsage
);
763 typedef BOOL (WINAPI
* PFNWGLBEGINFRAMETRACKINGI3DPROC
) (void);
764 typedef BOOL (WINAPI
* PFNWGLENDFRAMETRACKINGI3DPROC
) (void);
765 typedef BOOL (WINAPI
* PFNWGLQUERYFRAMETRACKINGI3DPROC
) (DWORD
*pFrameCount
, DWORD
*pMissedFrames
, float *pLastMissedUsage
);
768 #ifndef WGL_ATI_pixel_format_float
769 #define WGL_ATI_pixel_format_float 1
772 #ifndef WGL_NV_float_buffer
773 #define WGL_NV_float_buffer 1
776 #ifndef WGL_3DL_stereo_control
777 #define WGL_3DL_stereo_control 1
778 #ifdef WGL_WGLEXT_PROTOTYPES
779 extern BOOL WINAPI
wglSetStereoEmitterState3DL (HDC hDC
, UINT uState
);
780 #endif /* WGL_WGLEXT_PROTOTYPES */
781 typedef BOOL (WINAPI
* PFNWGLSETSTEREOEMITTERSTATE3DLPROC
) (HDC hDC
, UINT uState
);
784 #ifndef WGL_EXT_pixel_format_packed_float
785 #define WGL_EXT_pixel_format_packed_float 1
788 #ifndef WGL_EXT_framebuffer_sRGB
789 #define WGL_EXT_framebuffer_sRGB 1
792 #ifndef WGL_NV_present_video
793 #define WGL_NV_present_video 1
794 #ifdef WGL_WGLEXT_PROTOTYPES
795 extern int WINAPI
wglEnumerateVideoDevicesNV (HDC hDC
, HVIDEOOUTPUTDEVICENV
*phDeviceList
);
796 extern BOOL WINAPI
wglBindVideoDeviceNV (HDC hDC
, unsigned int uVideoSlot
, HVIDEOOUTPUTDEVICENV hVideoDevice
, const int *piAttribList
);
797 extern BOOL WINAPI
wglQueryCurrentContextNV (int iAttribute
, int *piValue
);
798 #endif /* WGL_WGLEXT_PROTOTYPES */
799 typedef int (WINAPI
* PFNWGLENUMERATEVIDEODEVICESNVPROC
) (HDC hDC
, HVIDEOOUTPUTDEVICENV
*phDeviceList
);
800 typedef BOOL (WINAPI
* PFNWGLBINDVIDEODEVICENVPROC
) (HDC hDC
, unsigned int uVideoSlot
, HVIDEOOUTPUTDEVICENV hVideoDevice
, const int *piAttribList
);
801 typedef BOOL (WINAPI
* PFNWGLQUERYCURRENTCONTEXTNVPROC
) (int iAttribute
, int *piValue
);
804 #ifndef WGL_NV_video_output
805 #define WGL_NV_video_output 1
806 #ifdef WGL_WGLEXT_PROTOTYPES
807 extern BOOL WINAPI
wglGetVideoDeviceNV (HDC hDC
, int numDevices
, HPVIDEODEV
*hVideoDevice
);
808 extern BOOL WINAPI
wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice
);
809 extern BOOL WINAPI
wglBindVideoImageNV (HPVIDEODEV hVideoDevice
, HPBUFFERARB hPbuffer
, int iVideoBuffer
);
810 extern BOOL WINAPI
wglReleaseVideoImageNV (HPBUFFERARB hPbuffer
, int iVideoBuffer
);
811 extern BOOL WINAPI
wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer
, int iBufferType
, unsigned long *pulCounterPbuffer
, BOOL bBlock
);
812 extern BOOL WINAPI
wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice
, unsigned long *pulCounterOutputPbuffer
, unsigned long *pulCounterOutputVideo
);
813 #endif /* WGL_WGLEXT_PROTOTYPES */
814 typedef BOOL (WINAPI
* PFNWGLGETVIDEODEVICENVPROC
) (HDC hDC
, int numDevices
, HPVIDEODEV
*hVideoDevice
);
815 typedef BOOL (WINAPI
* PFNWGLRELEASEVIDEODEVICENVPROC
) (HPVIDEODEV hVideoDevice
);
816 typedef BOOL (WINAPI
* PFNWGLBINDVIDEOIMAGENVPROC
) (HPVIDEODEV hVideoDevice
, HPBUFFERARB hPbuffer
, int iVideoBuffer
);
817 typedef BOOL (WINAPI
* PFNWGLRELEASEVIDEOIMAGENVPROC
) (HPBUFFERARB hPbuffer
, int iVideoBuffer
);
818 typedef BOOL (WINAPI
* PFNWGLSENDPBUFFERTOVIDEONVPROC
) (HPBUFFERARB hPbuffer
, int iBufferType
, unsigned long *pulCounterPbuffer
, BOOL bBlock
);
819 typedef BOOL (WINAPI
* PFNWGLGETVIDEOINFONVPROC
) (HPVIDEODEV hpVideoDevice
, unsigned long *pulCounterOutputPbuffer
, unsigned long *pulCounterOutputVideo
);
822 #ifndef WGL_NV_swap_group
823 #define WGL_NV_swap_group 1
824 #ifdef WGL_WGLEXT_PROTOTYPES
825 extern BOOL WINAPI
wglJoinSwapGroupNV (HDC hDC
, GLuint group
);
826 extern BOOL WINAPI
wglBindSwapBarrierNV (GLuint group
, GLuint barrier
);
827 extern BOOL WINAPI
wglQuerySwapGroupNV (HDC hDC
, GLuint
*group
, GLuint
*barrier
);
828 extern BOOL WINAPI
wglQueryMaxSwapGroupsNV (HDC hDC
, GLuint
*maxGroups
, GLuint
*maxBarriers
);
829 extern BOOL WINAPI
wglQueryFrameCountNV (HDC hDC
, GLuint
*count
);
830 extern BOOL WINAPI
wglResetFrameCountNV (HDC hDC
);
831 #endif /* WGL_WGLEXT_PROTOTYPES */
832 typedef BOOL (WINAPI
* PFNWGLJOINSWAPGROUPNVPROC
) (HDC hDC
, GLuint group
);
833 typedef BOOL (WINAPI
* PFNWGLBINDSWAPBARRIERNVPROC
) (GLuint group
, GLuint barrier
);
834 typedef BOOL (WINAPI
* PFNWGLQUERYSWAPGROUPNVPROC
) (HDC hDC
, GLuint
*group
, GLuint
*barrier
);
835 typedef BOOL (WINAPI
* PFNWGLQUERYMAXSWAPGROUPSNVPROC
) (HDC hDC
, GLuint
*maxGroups
, GLuint
*maxBarriers
);
836 typedef BOOL (WINAPI
* PFNWGLQUERYFRAMECOUNTNVPROC
) (HDC hDC
, GLuint
*count
);
837 typedef BOOL (WINAPI
* PFNWGLRESETFRAMECOUNTNVPROC
) (HDC hDC
);
840 #ifndef WGL_NV_gpu_affinity
841 #define WGL_NV_gpu_affinity 1
842 #ifdef WGL_WGLEXT_PROTOTYPES
843 extern BOOL WINAPI
wglEnumGpusNV (UINT iGpuIndex
, HGPUNV
*phGpu
);
844 extern BOOL WINAPI
wglEnumGpuDevicesNV (HGPUNV hGpu
, UINT iDeviceIndex
, PGPU_DEVICE lpGpuDevice
);
845 extern HDC WINAPI
wglCreateAffinityDCNV (const HGPUNV
*phGpuList
);
846 extern BOOL WINAPI
wglEnumGpusFromAffinityDCNV (HDC hAffinityDC
, UINT iGpuIndex
, HGPUNV
*hGpu
);
847 extern BOOL WINAPI
wglDeleteDCNV (HDC hdc
);
848 #endif /* WGL_WGLEXT_PROTOTYPES */
849 typedef BOOL (WINAPI
* PFNWGLENUMGPUSNVPROC
) (UINT iGpuIndex
, HGPUNV
*phGpu
);
850 typedef BOOL (WINAPI
* PFNWGLENUMGPUDEVICESNVPROC
) (HGPUNV hGpu
, UINT iDeviceIndex
, PGPU_DEVICE lpGpuDevice
);
851 typedef HDC (WINAPI
* PFNWGLCREATEAFFINITYDCNVPROC
) (const HGPUNV
*phGpuList
);
852 typedef BOOL (WINAPI
* PFNWGLENUMGPUSFROMAFFINITYDCNVPROC
) (HDC hAffinityDC
, UINT iGpuIndex
, HGPUNV
*hGpu
);
853 typedef BOOL (WINAPI
* PFNWGLDELETEDCNVPROC
) (HDC hdc
);
856 #ifndef WGL_AMD_gpu_association
857 #define WGL_AMD_gpu_association 1
858 #ifdef WGL_WGLEXT_PROTOTYPES
859 extern UINT WINAPI
wglGetGPUIDsAMD (UINT maxCount
, UINT
*ids
);
860 extern INT WINAPI
wglGetGPUInfoAMD (UINT id
, int property
, GLenum dataType
, UINT size
, void *data
);
861 extern UINT WINAPI
wglGetContextGPUIDAMD (HGLRC hglrc
);
862 extern HGLRC WINAPI
wglCreateAssociatedContextAMD (UINT id
);
863 extern HGLRC WINAPI
wglCreateAssociatedContextAttribsAMD (UINT id
, HGLRC hShareContext
, const int *attribList
);
864 extern BOOL WINAPI
wglDeleteAssociatedContextAMD (HGLRC hglrc
);
865 extern BOOL WINAPI
wglMakeAssociatedContextCurrentAMD (HGLRC hglrc
);
866 extern HGLRC WINAPI
wglGetCurrentAssociatedContextAMD (void);
867 extern 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
);
868 #endif /* WGL_WGLEXT_PROTOTYPES */
869 typedef UINT (WINAPI
* PFNWGLGETGPUIDSAMDPROC
) (UINT maxCount
, UINT
*ids
);
870 typedef INT (WINAPI
* PFNWGLGETGPUINFOAMDPROC
) (UINT id
, int property
, GLenum dataType
, UINT size
, void *data
);
871 typedef UINT (WINAPI
* PFNWGLGETCONTEXTGPUIDAMDPROC
) (HGLRC hglrc
);
872 typedef HGLRC (WINAPI
* PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC
) (UINT id
);
873 typedef HGLRC (WINAPI
* PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC
) (UINT id
, HGLRC hShareContext
, const int *attribList
);
874 typedef BOOL (WINAPI
* PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC
) (HGLRC hglrc
);
875 typedef BOOL (WINAPI
* PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC
) (HGLRC hglrc
);
876 typedef HGLRC (WINAPI
* PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC
) (void);
877 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
);
880 #ifndef WGL_NV_video_capture
881 #define WGL_NV_video_capture 1
882 #ifdef WGL_WGLEXT_PROTOTYPES
883 extern BOOL WINAPI
wglBindVideoCaptureDeviceNV (UINT uVideoSlot
, HVIDEOINPUTDEVICENV hDevice
);
884 extern UINT WINAPI
wglEnumerateVideoCaptureDevicesNV (HDC hDc
, HVIDEOINPUTDEVICENV
*phDeviceList
);
885 extern BOOL WINAPI
wglLockVideoCaptureDeviceNV (HDC hDc
, HVIDEOINPUTDEVICENV hDevice
);
886 extern BOOL WINAPI
wglQueryVideoCaptureDeviceNV (HDC hDc
, HVIDEOINPUTDEVICENV hDevice
, int iAttribute
, int *piValue
);
887 extern BOOL WINAPI
wglReleaseVideoCaptureDeviceNV (HDC hDc
, HVIDEOINPUTDEVICENV hDevice
);
888 #endif /* WGL_WGLEXT_PROTOTYPES */
889 typedef BOOL (WINAPI
* PFNWGLBINDVIDEOCAPTUREDEVICENVPROC
) (UINT uVideoSlot
, HVIDEOINPUTDEVICENV hDevice
);
890 typedef UINT (WINAPI
* PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC
) (HDC hDc
, HVIDEOINPUTDEVICENV
*phDeviceList
);
891 typedef BOOL (WINAPI
* PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC
) (HDC hDc
, HVIDEOINPUTDEVICENV hDevice
);
892 typedef BOOL (WINAPI
* PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC
) (HDC hDc
, HVIDEOINPUTDEVICENV hDevice
, int iAttribute
, int *piValue
);
893 typedef BOOL (WINAPI
* PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC
) (HDC hDc
, HVIDEOINPUTDEVICENV hDevice
);
896 #ifndef WGL_NV_copy_image
897 #define WGL_NV_copy_image 1
898 #ifdef WGL_WGLEXT_PROTOTYPES
899 extern 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
);
900 #endif /* WGL_WGLEXT_PROTOTYPES */
901 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
);
904 #ifndef WGL_NV_multisample_coverage
905 #define WGL_NV_multisample_coverage 1
908 #ifndef WGL_NV_DX_interop
909 #define WGL_NV_DX_interop 1
910 #ifdef WGL_WGLEXT_PROTOTYPES
911 extern BOOL WINAPI
wglDXSetResourceShareHandleNV (void *dxObject
, HANDLE shareHandle
);
912 extern HANDLE WINAPI
wglDXOpenDeviceNV (void *dxDevice
);
913 extern BOOL WINAPI
wglDXCloseDeviceNV (HANDLE hDevice
);
914 extern HANDLE WINAPI
wglDXRegisterObjectNV (HANDLE hDevice
, void *dxObject
, GLuint name
, GLenum type
, GLenum access
);
915 extern BOOL WINAPI
wglDXUnregisterObjectNV (HANDLE hDevice
, HANDLE hObject
);
916 extern BOOL WINAPI
wglDXObjectAccessNV (HANDLE hObject
, GLenum access
);
917 extern BOOL WINAPI
wglDXLockObjectsNV (HANDLE hDevice
, GLint count
, HANDLE
*hObjects
);
918 extern BOOL WINAPI
wglDXUnlockObjectsNV (HANDLE hDevice
, GLint count
, HANDLE
*hObjects
);
919 #endif /* WGL_WGLEXT_PROTOTYPES */
920 typedef BOOL (WINAPI
* PFNWGLDXSETRESOURCESHAREHANDLENVPROC
) (void *dxObject
, HANDLE shareHandle
);
921 typedef HANDLE (WINAPI
* PFNWGLDXOPENDEVICENVPROC
) (void *dxDevice
);
922 typedef BOOL (WINAPI
* PFNWGLDXCLOSEDEVICENVPROC
) (HANDLE hDevice
);
923 typedef HANDLE (WINAPI
* PFNWGLDXREGISTEROBJECTNVPROC
) (HANDLE hDevice
, void *dxObject
, GLuint name
, GLenum type
, GLenum access
);
924 typedef BOOL (WINAPI
* PFNWGLDXUNREGISTEROBJECTNVPROC
) (HANDLE hDevice
, HANDLE hObject
);
925 typedef BOOL (WINAPI
* PFNWGLDXOBJECTACCESSNVPROC
) (HANDLE hObject
, GLenum access
);
926 typedef BOOL (WINAPI
* PFNWGLDXLOCKOBJECTSNVPROC
) (HANDLE hDevice
, GLint count
, HANDLE
*hObjects
);
927 typedef BOOL (WINAPI
* PFNWGLDXUNLOCKOBJECTSNVPROC
) (HANDLE hDevice
, GLint count
, HANDLE
*hObjects
);
930 #ifndef WGL_NV_DX_interop2
931 #define WGL_NV_DX_interop2 1
934 #ifndef WGL_EXT_swap_control_tear
935 #define WGL_EXT_swap_control_tear 1