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