├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── SharedResource.cpp ├── SharedResource.png ├── SharedResource.sln ├── SharedResource.vcxproj ├── include └── GL │ ├── glew.h │ ├── glxew.h │ └── wglew.h └── lib └── glew32s.lib /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Dean Attali 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sharing Resources Between DirectX and OpenGL 2 | 3 | [http://halogenica.net/sharing-resources-between-directx-and-opengl/](http://halogenica.net/sharing-resources-between-directx-and-opengl/) 4 | 5 | ![Shared Resource Screenshot](https://github.com/halogenica/WGL_NV_DX/blob/master/SharedResource.png) 6 | 7 | ## Description 8 | 9 | This demo illustrates how to use the WGL_NV_DX_Interop extension to efficiently share a resource between DirectX and OpenGL rendering APIs. The intent is to provide common variations of the implementation, as well as a way to enable a performance comparison between CPU and GPU resource copies. 10 | 11 | ## Installation 12 | 13 | This demo requires the DirectX SDK to be installed, and may require the Windows SDK to be installed as well. 14 | 15 | ## Compatibility 16 | 17 | Since the time the original article was written, it seems that either the Nvidia driver or modern Nvidia cards, as well as the most recent Intel graphics (Skylake) no longer supports this extension, resulting in failures ranging from black screens to driver crashes. I haven't tested on the most recent AMD cards. I was able to verify that with slightly older Intel hardware (Haswell, HD 4200 - HD 5200) that this extension works across Windows 7, Windows 8.1, and Windows 10. I had previously tested with older AMD hardware (HD 6950) and older Nvidia hardware (GTX 570) which both worked with the texture and offscreen plain methods on Windows 7. 18 | 19 | ## License 20 | 21 | MIT Licensed, see [LICENSE](https://github.com/halogenica/WGL_NV_DX/blob/master/LICENSE). 22 | -------------------------------------------------------------------------------- /SharedResource.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "glew.h" 7 | #include "wglew.h" 8 | 9 | #define SCREEN_WIDTH 300 10 | #define SCREEN_HEIGHT 300 11 | #define CUSTOMFVF (D3DFVF_XYZ | D3DFVF_DIFFUSE) 12 | #define KEYDOWN(vk) (GetAsyncKeyState(vk) & 0x8000) 13 | 14 | // Must choose a sharing mechanism below 15 | #define SHARE_TEXTURE 0 // Shared surface is created as a texture (IDirect3DTexture9) 16 | #define SHARE_OFFSCREEN_PLAIN 1 // Shared surface is created as an off-screen plain (IDirect3DSurface9) 17 | #define SHARE_RENDER_TARGET 0 // Shared surface is created as an off-screen plain then set to current RT. 18 | 19 | // By default, do not perform a copy 20 | #define DO_CPU_COPY 0 // Intermediate copy to system memory, for CPU utilization comparison. Don't actually do this. 21 | #define DO_GPU_COPY 1 // Intermediate copy to video memory, useful for surface format conversions. Should be avoided. 22 | 23 | // globals 24 | LPDIRECT3D9EX g_pD3d = NULL; 25 | LPDIRECT3DDEVICE9EX g_pDevice = NULL; 26 | LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; 27 | 28 | struct CUSTOMVERTEX {float x, y, z; 29 | DWORD color; 30 | float u, v;}; 31 | 32 | IDirect3DSurface9* g_pSurfaceRenderTarget = NULL; 33 | IDirect3DSurface9* g_pSharedSurface = NULL; 34 | HANDLE g_hSharedSurface = NULL; 35 | IDirect3DTexture9* g_pSharedTexture = NULL; 36 | HANDLE g_hSharedTexture = NULL; 37 | IDirect3DSurface9* g_pSysmemSurface = NULL; 38 | 39 | HDC g_hDCGL = NULL; 40 | HANDLE g_hDX9Device = NULL; 41 | HANDLE g_hGLSharedTexture = NULL; 42 | GLuint g_GLTexture = NULL; 43 | 44 | // prototypes 45 | void InitDX(HWND hWndDX); 46 | void InitGL(HWND hWndGL); 47 | void RenderDX(void); 48 | void RenderGL(void); 49 | void Destroy(void); 50 | LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); 51 | 52 | 53 | // functions 54 | int WINAPI WinMain(HINSTANCE hInstance, 55 | HINSTANCE hPrevInstance, 56 | LPSTR lpCmdLine, 57 | int nCmdShow) 58 | { 59 | HWND hWndDX; 60 | HWND hWndGL; 61 | WNDCLASSEX wc; 62 | 63 | ZeroMemory(&wc, sizeof(WNDCLASSEX)); 64 | 65 | wc.cbSize = sizeof(WNDCLASSEX); 66 | wc.style = CS_HREDRAW | CS_VREDRAW; 67 | wc.lpfnWndProc = WindowProc; 68 | wc.hInstance = hInstance; 69 | wc.hCursor = LoadCursor(NULL, IDC_ARROW); 70 | wc.lpszClassName = L"WindowClass"; 71 | 72 | RegisterClassEx(&wc); 73 | 74 | hWndDX = CreateWindowEx(NULL, L"WindowClass", L"DX - Shared Resource", 75 | WS_OVERLAPPEDWINDOW, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 76 | NULL, NULL, hInstance, NULL); 77 | hWndGL = CreateWindowEx(NULL, L"WindowClass", L"GL - Shared Resource", 78 | WS_OVERLAPPEDWINDOW, SCREEN_WIDTH+20, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 79 | NULL, NULL, hInstance, NULL); 80 | int mode, argc; 81 | char * argv; 82 | argv = (char *)CommandLineToArgvW((LPCWSTR)lpCmdLine, &argc); 83 | mode = atoi((const char*)lpCmdLine); 84 | 85 | ShowWindow(hWndDX, nCmdShow); 86 | ShowWindow(hWndGL, nCmdShow); 87 | 88 | InitDX(hWndDX); 89 | InitGL(hWndGL); 90 | 91 | MSG msg; 92 | 93 | while(TRUE) 94 | { 95 | if (KEYDOWN(VK_ESCAPE)) 96 | { 97 | SendMessage(hWndDX, WM_CLOSE, 0, 0); 98 | SendMessage(hWndGL, WM_CLOSE, 0, 0); 99 | PostQuitMessage(0); 100 | } 101 | 102 | while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) 103 | { 104 | TranslateMessage(&msg); 105 | DispatchMessage(&msg); 106 | } 107 | 108 | if (msg.message == WM_QUIT) 109 | { 110 | break; 111 | } 112 | 113 | RenderDX(); 114 | RenderGL(); 115 | } 116 | 117 | Destroy(); 118 | 119 | return msg.wParam; 120 | } 121 | 122 | 123 | LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 124 | { 125 | if (message == WM_DESTROY) 126 | { 127 | PostQuitMessage(0); 128 | return 0; 129 | } 130 | 131 | return DefWindowProc (hWnd, message, wParam, lParam); 132 | } 133 | 134 | 135 | void InitDX(HWND hWndDX) 136 | { 137 | 138 | D3DPRESENT_PARAMETERS d3dpp; 139 | 140 | ZeroMemory(&d3dpp, sizeof(d3dpp)); 141 | d3dpp.Windowed = TRUE; 142 | d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; 143 | d3dpp.hDeviceWindow = hWndDX; 144 | d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8; 145 | d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; 146 | 147 | HRESULT hr = S_OK; 148 | 149 | // A D3D9EX device is required to create the g_hSharedSurface 150 | Direct3DCreate9Ex(D3D_SDK_VERSION, &g_pD3d); 151 | 152 | // The interop definition states D3DCREATE_MULTITHREADED is required, but it may vary by vendor 153 | hr = g_pD3d->CreateDeviceEx(D3DADAPTER_DEFAULT, 154 | D3DDEVTYPE_HAL, 155 | hWndDX, 156 | D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, 157 | &d3dpp, 158 | NULL, 159 | &g_pDevice); 160 | 161 | hr = g_pDevice->GetRenderTarget(0, &g_pSurfaceRenderTarget); 162 | D3DSURFACE_DESC rtDesc; 163 | g_pSurfaceRenderTarget->GetDesc(&rtDesc); 164 | 165 | #if SHARE_TEXTURE 166 | // g_pSharedTexture should be able to be opened in OGL via the WGL_NV_DX_interop extension 167 | // Vendor support for various textures/surfaces may vary 168 | hr = g_pDevice->CreateTexture(rtDesc.Width, 169 | rtDesc.Height, 170 | 1, 171 | 0, 172 | rtDesc.Format, 173 | D3DPOOL_DEFAULT, 174 | &g_pSharedTexture, 175 | &g_hSharedTexture); 176 | 177 | // We want access to the underlying surface of this texture 178 | if (g_pSharedTexture) 179 | { 180 | hr = g_pSharedTexture->GetSurfaceLevel(0, &g_pSharedSurface); 181 | } 182 | #elif SHARE_OFFSCREEN_PLAIN 183 | // g_pSharedSurface should be able to be opened in OGL via the WGL_NV_DX_interop extension 184 | // Vendor support for various textures/surfaces may vary 185 | hr = g_pDevice->CreateOffscreenPlainSurface(rtDesc.Width, 186 | rtDesc.Height, 187 | rtDesc.Format, 188 | D3DPOOL_DEFAULT, 189 | &g_pSharedSurface, 190 | &g_hSharedSurface); 191 | #elif SHARE_RENDER_TARGET 192 | // g_pSharedSurface should be able to be opened in OGL via the WGL_NV_DX_interop extension 193 | // Vendor support for various textures/surfaces may vary 194 | hr = g_pDevice->CreateRenderTarget(rtDesc.Width, 195 | rtDesc.Height, 196 | rtDesc.Format, 197 | rtDesc.MultiSampleType, 198 | rtDesc.MultiSampleQuality, 199 | FALSE, 200 | &g_pSharedSurface, 201 | &g_hSharedSurface); 202 | 203 | // Replace the default render target with the new render target backed by a shared surface 204 | if (g_pSurfaceRenderTarget) 205 | g_pSurfaceRenderTarget->Release(); 206 | 207 | hr = g_pDevice->SetRenderTarget(0, g_pSharedSurface); 208 | hr = g_pDevice->GetRenderTarget(0, &g_pSurfaceRenderTarget); 209 | #else 210 | assert(!"Must choose at least one sharing mechanism!"); 211 | #endif 212 | 213 | #if DO_CPU_COPY 214 | // create an intermediate copy in system memory, for performance comparison 215 | hr = g_pDevice->CreateOffscreenPlainSurface(rtDesc.Width, 216 | rtDesc.Height, 217 | rtDesc.Format, 218 | D3DPOOL_SYSTEMMEM, 219 | &g_pSysmemSurface, 220 | NULL); 221 | #endif 222 | 223 | hr = g_pDevice->SetRenderState(D3DRS_LIGHTING, FALSE); 224 | hr = g_pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); 225 | 226 | 227 | CUSTOMVERTEX vertices[] = 228 | { 229 | { 2.0f, -2.0f, 0.0f, D3DCOLOR_XRGB(0, 0, 255)}, 230 | { 0.0f, 2.0f, 0.0f, D3DCOLOR_XRGB(0, 255, 0)}, 231 | { -2.0f, -2.0f, 0.0f, D3DCOLOR_XRGB(255, 0, 0)}, 232 | }; 233 | 234 | hr = g_pDevice->CreateVertexBuffer(9*sizeof(CUSTOMVERTEX), 235 | 0, 236 | CUSTOMFVF, 237 | D3DPOOL_DEFAULT, 238 | &g_pVB, 239 | NULL); 240 | 241 | VOID* pVoid; 242 | hr = g_pVB->Lock(0, 0, (void**)&pVoid, 0); 243 | memcpy(pVoid, vertices, sizeof(vertices)); 244 | hr = g_pVB->Unlock(); 245 | } 246 | 247 | 248 | void InitGL(HWND hWndGL) 249 | { 250 | static PIXELFORMATDESCRIPTOR pfd= 251 | { 252 | sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor 253 | 1, // Version Number 254 | PFD_DRAW_TO_WINDOW | // Format Must Support Window 255 | PFD_SUPPORT_OPENGL | // Format Must Support OpenGL 256 | PFD_DOUBLEBUFFER, // Must Support Double Buffering 257 | PFD_TYPE_RGBA, // Request An RGBA Format 258 | 32, // Select Our Color Depth 259 | 0, 0, 0, 0, 0, 0, // Color Bits Ignored 260 | 0, // No Alpha Buffer 261 | 0, // Shift Bit Ignored 262 | 0, // No Accumulation Buffer 263 | 0, 0, 0, 0, // Accumulation Bits Ignored 264 | 16, // 16Bit Z-Buffer (Depth Buffer) 265 | 0, // No Stencil Buffer 266 | 0, // No Auxiliary Buffer 267 | PFD_MAIN_PLANE, // Main Drawing Layer 268 | 0, // Reserved 269 | 0, 0, 0 // Layer Masks Ignored 270 | }; 271 | 272 | g_hDCGL = GetDC(hWndGL); 273 | GLuint PixelFormat = ChoosePixelFormat(g_hDCGL, &pfd); 274 | SetPixelFormat(g_hDCGL, PixelFormat, &pfd); 275 | HGLRC hRC = wglCreateContext(g_hDCGL); 276 | wglMakeCurrent(g_hDCGL, hRC); 277 | 278 | GLenum x = glewInit(); 279 | 280 | // Register the shared DX texture with OGL 281 | if (WGLEW_NV_DX_interop) 282 | { 283 | // Acquire a handle to the D3D device for use in OGL 284 | g_hDX9Device = wglDXOpenDeviceNV(g_pDevice); 285 | 286 | if (g_hDX9Device) 287 | { 288 | glGenTextures(1, &g_GLTexture); 289 | 290 | #if SHARE_TEXTURE 291 | // This registers a resource that was created as shared in DX with its shared handle 292 | bool success = wglDXSetResourceShareHandleNV(g_pSharedTexture, g_hSharedTexture); 293 | 294 | // g_hGLSharedTexture is the shared texture data, now identified by the g_GLTexture name 295 | g_hGLSharedTexture = wglDXRegisterObjectNV(g_hDX9Device, 296 | g_pSharedTexture, 297 | g_GLTexture, 298 | GL_TEXTURE_2D, 299 | WGL_ACCESS_READ_ONLY_NV); 300 | #else 301 | // This registers a resource that was created as shared in DX with its shared handle 302 | bool success = wglDXSetResourceShareHandleNV(g_pSharedSurface, g_hSharedSurface); 303 | 304 | // g_hGLSharedTexture is the shared texture data, now identified by the g_GLTexture name 305 | g_hGLSharedTexture = wglDXRegisterObjectNV(g_hDX9Device, 306 | g_pSharedSurface, 307 | g_GLTexture, 308 | GL_TEXTURE_2D, 309 | WGL_ACCESS_READ_ONLY_NV); 310 | #endif 311 | } 312 | } 313 | 314 | glViewport(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); 315 | glMatrixMode(GL_PROJECTION); 316 | glLoadIdentity(); 317 | glOrtho(0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, -1, 1); 318 | glDisable(GL_DEPTH_TEST); 319 | glMatrixMode(GL_MODELVIEW); 320 | glLoadIdentity(); 321 | } 322 | 323 | 324 | void RenderDX(void) 325 | { 326 | // Set up transformations 327 | D3DXMATRIX matView; 328 | D3DXMatrixLookAtLH(&matView, 329 | &D3DXVECTOR3 (0.0f, 0.0f, -10.0f), 330 | &D3DXVECTOR3 (0.0f, 0.0f, 0.0f), 331 | &D3DXVECTOR3 (0.0f, 1.0f, 0.0f)); 332 | g_pDevice->SetTransform(D3DTS_VIEW, &matView); 333 | 334 | D3DXMATRIX matProjection; 335 | D3DXMatrixPerspectiveFovLH(&matProjection, 336 | D3DXToRadian(45), 337 | (FLOAT)SCREEN_WIDTH / (FLOAT)SCREEN_HEIGHT, 338 | 1.0f, 339 | 25.0f); 340 | g_pDevice->SetTransform(D3DTS_PROJECTION, &matProjection); 341 | 342 | D3DXMATRIX matTranslate; 343 | D3DXMatrixTranslation(&matTranslate, 0.0f, 0.0f, 0.0f); 344 | 345 | D3DXMATRIX matRotate; 346 | static float rot = 0; 347 | rot+=0.01; 348 | D3DXMatrixRotationZ(&matRotate, rot); 349 | 350 | D3DXMATRIX matTransform = matRotate * matTranslate; 351 | 352 | HRESULT hr = S_OK; 353 | hr = g_pDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(40, 40, 60), 1.0f, 0); 354 | 355 | // Draw a spinning triangle 356 | hr = g_pDevice->BeginScene(); 357 | 358 | hr = g_pDevice->SetStreamSource(0, g_pVB, 0, sizeof(CUSTOMVERTEX)); 359 | hr = g_pDevice->SetFVF(CUSTOMFVF); 360 | hr = g_pDevice->SetTransform(D3DTS_WORLD, &matTransform); 361 | hr = g_pDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1); 362 | 363 | // Copy the render target to the shared surface 364 | #if DO_CPU_COPY 365 | // GPU to CPU copy 366 | hr = g_pDevice->GetRenderTargetData(g_pSurfaceRenderTarget, g_pSysmemSurface); 367 | // CPU to GPU copy 368 | hr = g_pDevice->UpdateSurface(g_pSysmemSurface, NULL, g_pSharedSurface, NULL); 369 | #elif DO_GPU_COPY && (SHARE_TEXTURE || SHARE_OFFSCREEN_PLAIN) 370 | // StretchRect between two D3DPOOL_DEFAULT surfaces will be a GPU Blt. 371 | // Note that GetRenderTargetData() cannot be used because it is intended to copy from GPU to CPU. 372 | hr = g_pDevice->StretchRect(g_pSurfaceRenderTarget, NULL, g_pSharedSurface, NULL, D3DTEXF_NONE); 373 | #elif DO_GPU_COPY && (SHARE_RENDER_TARGET) 374 | assert(!"Can't do GPU copy to/from same surface (if sharing RT)"); 375 | #elif (SHARE_TEXTURE || SHARE_OFFSCREEN_PLAIN) 376 | assert(!"Must perform a copy if not sharing render target directly"); 377 | #endif 378 | hr = g_pDevice->EndScene(); 379 | 380 | hr = g_pDevice->Present(NULL, NULL, NULL, NULL); 381 | } 382 | 383 | 384 | void RenderGL(void) 385 | { 386 | glClearColor(0.0, 0.0, 0.0, 1.0); 387 | glClear(GL_COLOR_BUFFER_BIT); 388 | 389 | // Lock the shared surface 390 | wglDXLockObjectsNV(g_hDX9Device, 1, &g_hGLSharedTexture); 391 | 392 | glEnable(GL_TEXTURE_2D); 393 | glBindTexture(GL_TEXTURE_2D, g_GLTexture); 394 | 395 | glPushMatrix(); 396 | glBegin(GL_QUADS); 397 | 398 | glTexCoord2d(0.0, 0.0); glVertex2f( 0.0f, 0.f); 399 | glTexCoord2d(0.0, 1.0); glVertex2f( 0.0f, SCREEN_HEIGHT); 400 | glTexCoord2d(1.0, 1.0); glVertex2f( SCREEN_WIDTH, SCREEN_HEIGHT); 401 | glTexCoord2d(1.0, 0.0); glVertex2f( SCREEN_WIDTH, 0.0f); 402 | 403 | glEnd(); 404 | glPopMatrix(); 405 | 406 | SwapBuffers(g_hDCGL); 407 | 408 | // Unlock the shared surface 409 | wglDXUnlockObjectsNV(g_hDX9Device, 1, &g_hGLSharedTexture); 410 | } 411 | 412 | 413 | void Destroy(void) 414 | { 415 | if (WGLEW_NV_DX_interop) 416 | { 417 | if (g_hGLSharedTexture) 418 | wglDXUnregisterObjectNV(g_hDX9Device, g_hGLSharedTexture); 419 | if (g_hDX9Device) 420 | wglDXCloseDeviceNV(g_hDX9Device); 421 | } 422 | 423 | if (g_pSysmemSurface) 424 | g_pSysmemSurface->Release(); 425 | if (g_pSharedSurface) 426 | g_pSharedSurface->Release(); 427 | if (g_pSharedTexture) 428 | g_pSharedTexture->Release(); 429 | if (g_pSurfaceRenderTarget) 430 | g_pSurfaceRenderTarget->Release(); 431 | if (g_pVB) 432 | g_pVB->Release(); 433 | if (g_pDevice) 434 | g_pDevice->Release(); 435 | if (g_pD3d) 436 | g_pD3d->Release(); 437 | } 438 | -------------------------------------------------------------------------------- /SharedResource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/halogenica/WGL_NV_DX/a917f0756870bdb8b7c5dc59bfa2980360c95144/SharedResource.png -------------------------------------------------------------------------------- /SharedResource.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 14 3 | VisualStudioVersion = 14.0.23107.0 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SharedResource", "SharedResource.vcxproj", "{D3D09002-96D0-4629-88B8-122C0256058C}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Win32 = Debug|Win32 10 | Release|Win32 = Release|Win32 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {D3D09002-96D0-4629-88B8-122C0256058C}.Debug|Win32.ActiveCfg = Debug|Win32 14 | {D3D09002-96D0-4629-88B8-122C0256058C}.Debug|Win32.Build.0 = Debug|Win32 15 | {D3D09002-96D0-4629-88B8-122C0256058C}.Release|Win32.ActiveCfg = Release|Win32 16 | {D3D09002-96D0-4629-88B8-122C0256058C}.Release|Win32.Build.0 = Release|Win32 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /SharedResource.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Profile 14 | Win32 15 | 16 | 17 | Profile 18 | x64 19 | 20 | 21 | Release 22 | Win32 23 | 24 | 25 | Release 26 | x64 27 | 28 | 29 | 30 | SharedResource 31 | {D3D09002-96D0-4629-88B8-122C0256058C} 32 | SharedResource 33 | Win32Proj 34 | 35 | 36 | 37 | Application 38 | Unicode 39 | v140 40 | 41 | 42 | Application 43 | Unicode 44 | v140 45 | 46 | 47 | Application 48 | true 49 | Unicode 50 | v140 51 | 52 | 53 | Application 54 | true 55 | Unicode 56 | v140 57 | 58 | 59 | Application 60 | true 61 | Unicode 62 | v140 63 | 64 | 65 | Application 66 | true 67 | Unicode 68 | v140 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | true 93 | true 94 | $(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath) 95 | $(DXSDK_DIR)Include;$(IncludePath) 96 | $(DXSDK_DIR)Lib\x86;$(LibraryPath) 97 | 98 | 99 | true 100 | true 101 | $(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath) 102 | $(DXSDK_DIR)Include;$(IncludePath) 103 | $(DXSDK_DIR)Lib\x64;$(LibraryPath) 104 | 105 | 106 | false 107 | true 108 | $(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath) 109 | $(DXSDK_DIR)Include;$(IncludePath) 110 | $(DXSDK_DIR)Lib\x86;$(LibraryPath) 111 | 112 | 113 | false 114 | true 115 | $(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath) 116 | $(DXSDK_DIR)Include;$(IncludePath) 117 | $(DXSDK_DIR)Lib\x64;$(LibraryPath) 118 | 119 | 120 | false 121 | true 122 | $(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath) 123 | $(DXSDK_DIR)Include;$(IncludePath) 124 | $(DXSDK_DIR)Lib\x86;$(LibraryPath) 125 | 126 | 127 | false 128 | true 129 | $(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath) 130 | $(DXSDK_DIR)Include;$(IncludePath) 131 | $(DXSDK_DIR)Lib\x64;$(LibraryPath) 132 | 133 | 134 | 135 | Level4 136 | Disabled 137 | MultiThreadedDebug 138 | false 139 | true 140 | Fast 141 | StreamingSIMDExtensions2 142 | Sync 143 | DXUT\Core;DXUT\Optional;.\include\GL;%(AdditionalIncludeDirectories) 144 | %(AdditionalOptions) 145 | WIN32;GLEW_STATIC;_DEBUG;DEBUG;PROFILE;_WINDOWS;%(PreprocessorDefinitions) 146 | EditAndContinue 147 | EnableFastChecks 148 | 149 | 150 | %(AdditionalOptions) 151 | d3d9.lib;opengl32.lib;glu32.lib;glew32s.lib;d3dx10d.lib;d3dx9d.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) 152 | Windows 153 | true 154 | false 155 | true 156 | true 157 | MachineX86 158 | AsInvoker 159 | %(DelayLoadDLLs) 160 | .\lib;%(AdditionalLibraryDirectories) 161 | 162 | 163 | true 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | Level4 177 | Disabled 178 | MultiThreadedDebugDLL 179 | false 180 | true 181 | Fast 182 | Sync 183 | DXUT\Core;DXUT\Optional;.\include\GL;%(AdditionalIncludeDirectories) 184 | %(AdditionalOptions) 185 | WIN32;GLEW_STATIC;_DEBUG;DEBUG;PROFILE;_WINDOWS;%(PreprocessorDefinitions) 186 | EnableFastChecks 187 | 188 | 189 | %(AdditionalOptions) 190 | d3d9.lib;opengl32.lib;glu32.lib;glew32s.lib;d3dx10d.lib;d3dx9d.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) 191 | Windows 192 | true 193 | false 194 | true 195 | true 196 | MachineX64 197 | AsInvoker 198 | %(DelayLoadDLLs) 199 | .\lib;%(AdditionalLibraryDirectories) 200 | 201 | 202 | true 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | Level4 216 | MaxSpeed 217 | MultiThreaded 218 | false 219 | true 220 | true 221 | Fast 222 | StreamingSIMDExtensions2 223 | Sync 224 | DXUT\Core;DXUT\Optional;.\include\GL;%(AdditionalIncludeDirectories) 225 | %(AdditionalOptions) 226 | WIN32;GLEW_STATIC;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 227 | 228 | 229 | %(AdditionalOptions) 230 | d3d9.lib;opengl32.lib;glu32.lib;glew32s.lib;d3dx10.lib;d3dx9.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) 231 | true 232 | Windows 233 | true 234 | true 235 | false 236 | true 237 | true 238 | MachineX86 239 | AsInvoker 240 | %(DelayLoadDLLs) 241 | .\lib;%(AdditionalLibraryDirectories) 242 | 243 | 244 | true 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | Level4 258 | MaxSpeed 259 | MultiThreadedDLL 260 | false 261 | true 262 | true 263 | Fast 264 | Sync 265 | DXUT\Core;DXUT\Optional;.\include\GL;%(AdditionalIncludeDirectories) 266 | %(AdditionalOptions) 267 | WIN32;GLEW_STATIC;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 268 | 269 | 270 | %(AdditionalOptions) 271 | d3d9.lib;opengl32.lib;glu64.lib;glew64s.lib;d3dx10.lib;d3dx9.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl64.lib;%(AdditionalDependencies) 272 | true 273 | Windows 274 | true 275 | true 276 | false 277 | true 278 | true 279 | MachineX64 280 | AsInvoker 281 | %(DelayLoadDLLs) 282 | .\lib;%(AdditionalLibraryDirectories) 283 | 284 | 285 | true 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | Level4 299 | MaxSpeed 300 | MultiThreadedDLL 301 | false 302 | true 303 | true 304 | Fast 305 | StreamingSIMDExtensions2 306 | Sync 307 | DXUT\Core;DXUT\Optional;.\include\GL;%(AdditionalIncludeDirectories) 308 | %(AdditionalOptions) 309 | WIN32;GLEW_STATIC;NDEBUG;PROFILE;_WINDOWS;%(PreprocessorDefinitions) 310 | 311 | 312 | %(AdditionalOptions) 313 | d3d9.lib;opengl32.lib;glu32.lib;glew32s.lib;d3dx10.lib;d3dx9.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) 314 | true 315 | Windows 316 | true 317 | true 318 | false 319 | true 320 | true 321 | MachineX86 322 | AsInvoker 323 | %(DelayLoadDLLs) 324 | .\lib;%(AdditionalLibraryDirectories) 325 | 326 | 327 | true 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | Level4 341 | MaxSpeed 342 | MultiThreadedDLL 343 | false 344 | true 345 | true 346 | Fast 347 | Sync 348 | DXUT\Core;DXUT\Optional;.\include\GL;%(AdditionalIncludeDirectories) 349 | %(AdditionalOptions) 350 | WIN32;GLEW_STATIC;NDEBUG;PROFILE;_WINDOWS;%(PreprocessorDefinitions) 351 | 352 | 353 | %(AdditionalOptions) 354 | d3d9.lib;opengl32.lib;glu32.lib;glew32s.lib;d3dx10.lib;d3dx9.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) 355 | true 356 | Windows 357 | true 358 | true 359 | false 360 | true 361 | true 362 | MachineX64 363 | AsInvoker 364 | %(DelayLoadDLLs) 365 | .\lib;%(AdditionalLibraryDirectories) 366 | 367 | 368 | true 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | -------------------------------------------------------------------------------- /include/GL/glxew.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** The OpenGL Extension Wrangler Library 3 | ** Copyright (C) 2002-2008, Milan Ikits 4 | ** Copyright (C) 2002-2008, Marcelo E. Magallon 5 | ** Copyright (C) 2002, Lev Povalahev 6 | ** All rights reserved. 7 | ** 8 | ** Redistribution and use in source and binary forms, with or without 9 | ** modification, are permitted provided that the following conditions are met: 10 | ** 11 | ** * Redistributions of source code must retain the above copyright notice, 12 | ** this list of conditions and the following disclaimer. 13 | ** * Redistributions in binary form must reproduce the above copyright notice, 14 | ** this list of conditions and the following disclaimer in the documentation 15 | ** and/or other materials provided with the distribution. 16 | ** * The name of the author may be used to endorse or promote products 17 | ** derived from this software without specific prior written permission. 18 | ** 19 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23 | ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 | ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 | ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 | ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 | ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 | ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 29 | ** THE POSSIBILITY OF SUCH DAMAGE. 30 | */ 31 | 32 | /* 33 | * Mesa 3-D graphics library 34 | * Version: 7.0 35 | * 36 | * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. 37 | * 38 | * Permission is hereby granted, free of charge, to any person obtaining a 39 | * copy of this software and associated documentation files (the "Software"), 40 | * to deal in the Software without restriction, including without limitation 41 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, 42 | * and/or sell copies of the Software, and to permit persons to whom the 43 | * Software is furnished to do so, subject to the following conditions: 44 | * 45 | * The above copyright notice and this permission notice shall be included 46 | * in all copies or substantial portions of the Software. 47 | * 48 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 49 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 50 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 51 | * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 52 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 53 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 54 | */ 55 | 56 | /* 57 | ** Copyright (c) 2007 The Khronos Group Inc. 58 | ** 59 | ** Permission is hereby granted, free of charge, to any person obtaining a 60 | ** copy of this software and/or associated documentation files (the 61 | ** "Materials"), to deal in the Materials without restriction, including 62 | ** without limitation the rights to use, copy, modify, merge, publish, 63 | ** distribute, sublicense, and/or sell copies of the Materials, and to 64 | ** permit persons to whom the Materials are furnished to do so, subject to 65 | ** the following conditions: 66 | ** 67 | ** The above copyright notice and this permission notice shall be included 68 | ** in all copies or substantial portions of the Materials. 69 | ** 70 | ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 71 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 72 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 73 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 74 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 75 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 76 | ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 77 | */ 78 | 79 | #ifndef __glxew_h__ 80 | #define __glxew_h__ 81 | #define __GLXEW_H__ 82 | 83 | #ifdef __glxext_h_ 84 | #error glxext.h included before glxew.h 85 | #endif 86 | 87 | #if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) 88 | #error glx.h included before glxew.h 89 | #endif 90 | 91 | #define __glxext_h_ 92 | 93 | #define GLX_H 94 | #define __GLX_glx_h__ 95 | #define __glx_h__ 96 | 97 | #include 98 | #include 99 | #include 100 | #include 101 | 102 | #ifdef __cplusplus 103 | extern "C" { 104 | #endif 105 | 106 | /* ---------------------------- GLX_VERSION_1_0 --------------------------- */ 107 | 108 | #ifndef GLX_VERSION_1_0 109 | #define GLX_VERSION_1_0 1 110 | 111 | #define GLX_USE_GL 1 112 | #define GLX_BUFFER_SIZE 2 113 | #define GLX_LEVEL 3 114 | #define GLX_RGBA 4 115 | #define GLX_DOUBLEBUFFER 5 116 | #define GLX_STEREO 6 117 | #define GLX_AUX_BUFFERS 7 118 | #define GLX_RED_SIZE 8 119 | #define GLX_GREEN_SIZE 9 120 | #define GLX_BLUE_SIZE 10 121 | #define GLX_ALPHA_SIZE 11 122 | #define GLX_DEPTH_SIZE 12 123 | #define GLX_STENCIL_SIZE 13 124 | #define GLX_ACCUM_RED_SIZE 14 125 | #define GLX_ACCUM_GREEN_SIZE 15 126 | #define GLX_ACCUM_BLUE_SIZE 16 127 | #define GLX_ACCUM_ALPHA_SIZE 17 128 | #define GLX_BAD_SCREEN 1 129 | #define GLX_BAD_ATTRIBUTE 2 130 | #define GLX_NO_EXTENSION 3 131 | #define GLX_BAD_VISUAL 4 132 | #define GLX_BAD_CONTEXT 5 133 | #define GLX_BAD_VALUE 6 134 | #define GLX_BAD_ENUM 7 135 | 136 | typedef XID GLXDrawable; 137 | typedef XID GLXPixmap; 138 | #ifdef __sun 139 | typedef struct __glXContextRec *GLXContext; 140 | #else 141 | typedef struct __GLXcontextRec *GLXContext; 142 | #endif 143 | 144 | typedef unsigned int GLXVideoDeviceNV; 145 | 146 | extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); 147 | extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); 148 | extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); 149 | extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); 150 | extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); 151 | extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); 152 | extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); 153 | extern void glXDestroyContext (Display *dpy, GLXContext ctx); 154 | extern Bool glXIsDirect (Display *dpy, GLXContext ctx); 155 | extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); 156 | extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); 157 | extern GLXContext glXGetCurrentContext (void); 158 | extern GLXDrawable glXGetCurrentDrawable (void); 159 | extern void glXWaitGL (void); 160 | extern void glXWaitX (void); 161 | extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); 162 | extern void glXUseXFont (Font font, int first, int count, int listBase); 163 | 164 | #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) 165 | 166 | #endif /* GLX_VERSION_1_0 */ 167 | 168 | /* ---------------------------- GLX_VERSION_1_1 --------------------------- */ 169 | 170 | #ifndef GLX_VERSION_1_1 171 | #define GLX_VERSION_1_1 172 | 173 | #define GLX_VENDOR 0x1 174 | #define GLX_VERSION 0x2 175 | #define GLX_EXTENSIONS 0x3 176 | 177 | extern const char* glXQueryExtensionsString (Display *dpy, int screen); 178 | extern const char* glXGetClientString (Display *dpy, int name); 179 | extern const char* glXQueryServerString (Display *dpy, int screen, int name); 180 | 181 | #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) 182 | 183 | #endif /* GLX_VERSION_1_1 */ 184 | 185 | /* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ 186 | 187 | #ifndef GLX_VERSION_1_2 188 | #define GLX_VERSION_1_2 1 189 | 190 | typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); 191 | 192 | #define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) 193 | 194 | #define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) 195 | 196 | #endif /* GLX_VERSION_1_2 */ 197 | 198 | /* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ 199 | 200 | #ifndef GLX_VERSION_1_3 201 | #define GLX_VERSION_1_3 1 202 | 203 | #define GLX_RGBA_BIT 0x00000001 204 | #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 205 | #define GLX_WINDOW_BIT 0x00000001 206 | #define GLX_COLOR_INDEX_BIT 0x00000002 207 | #define GLX_PIXMAP_BIT 0x00000002 208 | #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 209 | #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 210 | #define GLX_PBUFFER_BIT 0x00000004 211 | #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 212 | #define GLX_AUX_BUFFERS_BIT 0x00000010 213 | #define GLX_CONFIG_CAVEAT 0x20 214 | #define GLX_DEPTH_BUFFER_BIT 0x00000020 215 | #define GLX_X_VISUAL_TYPE 0x22 216 | #define GLX_TRANSPARENT_TYPE 0x23 217 | #define GLX_TRANSPARENT_INDEX_VALUE 0x24 218 | #define GLX_TRANSPARENT_RED_VALUE 0x25 219 | #define GLX_TRANSPARENT_GREEN_VALUE 0x26 220 | #define GLX_TRANSPARENT_BLUE_VALUE 0x27 221 | #define GLX_TRANSPARENT_ALPHA_VALUE 0x28 222 | #define GLX_STENCIL_BUFFER_BIT 0x00000040 223 | #define GLX_ACCUM_BUFFER_BIT 0x00000080 224 | #define GLX_NONE 0x8000 225 | #define GLX_SLOW_CONFIG 0x8001 226 | #define GLX_TRUE_COLOR 0x8002 227 | #define GLX_DIRECT_COLOR 0x8003 228 | #define GLX_PSEUDO_COLOR 0x8004 229 | #define GLX_STATIC_COLOR 0x8005 230 | #define GLX_GRAY_SCALE 0x8006 231 | #define GLX_STATIC_GRAY 0x8007 232 | #define GLX_TRANSPARENT_RGB 0x8008 233 | #define GLX_TRANSPARENT_INDEX 0x8009 234 | #define GLX_VISUAL_ID 0x800B 235 | #define GLX_SCREEN 0x800C 236 | #define GLX_NON_CONFORMANT_CONFIG 0x800D 237 | #define GLX_DRAWABLE_TYPE 0x8010 238 | #define GLX_RENDER_TYPE 0x8011 239 | #define GLX_X_RENDERABLE 0x8012 240 | #define GLX_FBCONFIG_ID 0x8013 241 | #define GLX_RGBA_TYPE 0x8014 242 | #define GLX_COLOR_INDEX_TYPE 0x8015 243 | #define GLX_MAX_PBUFFER_WIDTH 0x8016 244 | #define GLX_MAX_PBUFFER_HEIGHT 0x8017 245 | #define GLX_MAX_PBUFFER_PIXELS 0x8018 246 | #define GLX_PRESERVED_CONTENTS 0x801B 247 | #define GLX_LARGEST_PBUFFER 0x801C 248 | #define GLX_WIDTH 0x801D 249 | #define GLX_HEIGHT 0x801E 250 | #define GLX_EVENT_MASK 0x801F 251 | #define GLX_DAMAGED 0x8020 252 | #define GLX_SAVED 0x8021 253 | #define GLX_WINDOW 0x8022 254 | #define GLX_PBUFFER 0x8023 255 | #define GLX_PBUFFER_HEIGHT 0x8040 256 | #define GLX_PBUFFER_WIDTH 0x8041 257 | #define GLX_PBUFFER_CLOBBER_MASK 0x08000000 258 | #define GLX_DONT_CARE 0xFFFFFFFF 259 | 260 | typedef XID GLXFBConfigID; 261 | typedef XID GLXPbuffer; 262 | typedef XID GLXWindow; 263 | typedef struct __GLXFBConfigRec *GLXFBConfig; 264 | 265 | typedef struct { 266 | int event_type; 267 | int draw_type; 268 | unsigned long serial; 269 | Bool send_event; 270 | Display *display; 271 | GLXDrawable drawable; 272 | unsigned int buffer_mask; 273 | unsigned int aux_buffer; 274 | int x, y; 275 | int width, height; 276 | int count; 277 | } GLXPbufferClobberEvent; 278 | typedef union __GLXEvent { 279 | GLXPbufferClobberEvent glxpbufferclobber; 280 | long pad[24]; 281 | } GLXEvent; 282 | 283 | typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); 284 | typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); 285 | typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); 286 | typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); 287 | typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); 288 | typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); 289 | typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); 290 | typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); 291 | typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); 292 | typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); 293 | typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); 294 | typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); 295 | typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); 296 | typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 297 | typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); 298 | typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); 299 | typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); 300 | 301 | #define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) 302 | #define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) 303 | #define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) 304 | #define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) 305 | #define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) 306 | #define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) 307 | #define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) 308 | #define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) 309 | #define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) 310 | #define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) 311 | #define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) 312 | #define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) 313 | #define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) 314 | #define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) 315 | #define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) 316 | #define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) 317 | #define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) 318 | 319 | #define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) 320 | 321 | #endif /* GLX_VERSION_1_3 */ 322 | 323 | /* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ 324 | 325 | #ifndef GLX_VERSION_1_4 326 | #define GLX_VERSION_1_4 1 327 | 328 | #define GLX_SAMPLE_BUFFERS 100000 329 | #define GLX_SAMPLES 100001 330 | 331 | extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); 332 | 333 | #define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) 334 | 335 | #endif /* GLX_VERSION_1_4 */ 336 | 337 | /* -------------------------- GLX_3DFX_multisample ------------------------- */ 338 | 339 | #ifndef GLX_3DFX_multisample 340 | #define GLX_3DFX_multisample 1 341 | 342 | #define GLX_SAMPLE_BUFFERS_3DFX 0x8050 343 | #define GLX_SAMPLES_3DFX 0x8051 344 | 345 | #define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) 346 | 347 | #endif /* GLX_3DFX_multisample */ 348 | 349 | /* ------------------------ GLX_AMD_gpu_association ------------------------ */ 350 | 351 | #ifndef GLX_AMD_gpu_association 352 | #define GLX_AMD_gpu_association 1 353 | 354 | #define GLX_GPU_VENDOR_AMD 0x1F00 355 | #define GLX_GPU_RENDERER_STRING_AMD 0x1F01 356 | #define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 357 | #define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 358 | #define GLX_GPU_RAM_AMD 0x21A3 359 | #define GLX_GPU_CLOCK_AMD 0x21A4 360 | #define GLX_GPU_NUM_PIPES_AMD 0x21A5 361 | #define GLX_GPU_NUM_SIMD_AMD 0x21A6 362 | #define GLX_GPU_NUM_RB_AMD 0x21A7 363 | #define GLX_GPU_NUM_SPI_AMD 0x21A8 364 | 365 | #define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) 366 | 367 | #endif /* GLX_AMD_gpu_association */ 368 | 369 | /* ------------------------- GLX_ARB_create_context ------------------------ */ 370 | 371 | #ifndef GLX_ARB_create_context 372 | #define GLX_ARB_create_context 1 373 | 374 | #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 375 | #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 376 | #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 377 | #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 378 | #define GLX_CONTEXT_FLAGS_ARB 0x2094 379 | 380 | typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); 381 | 382 | #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) 383 | 384 | #define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) 385 | 386 | #endif /* GLX_ARB_create_context */ 387 | 388 | /* --------------------- GLX_ARB_create_context_profile -------------------- */ 389 | 390 | #ifndef GLX_ARB_create_context_profile 391 | #define GLX_ARB_create_context_profile 1 392 | 393 | #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 394 | #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 395 | #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 396 | 397 | #define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) 398 | 399 | #endif /* GLX_ARB_create_context_profile */ 400 | 401 | /* ------------------- GLX_ARB_create_context_robustness ------------------- */ 402 | 403 | #ifndef GLX_ARB_create_context_robustness 404 | #define GLX_ARB_create_context_robustness 1 405 | 406 | #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 407 | #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 408 | #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 409 | #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 410 | 411 | #define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) 412 | 413 | #endif /* GLX_ARB_create_context_robustness */ 414 | 415 | /* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ 416 | 417 | #ifndef GLX_ARB_fbconfig_float 418 | #define GLX_ARB_fbconfig_float 1 419 | 420 | #define GLX_RGBA_FLOAT_BIT 0x00000004 421 | #define GLX_RGBA_FLOAT_TYPE 0x20B9 422 | 423 | #define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) 424 | 425 | #endif /* GLX_ARB_fbconfig_float */ 426 | 427 | /* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ 428 | 429 | #ifndef GLX_ARB_framebuffer_sRGB 430 | #define GLX_ARB_framebuffer_sRGB 1 431 | 432 | #define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 433 | 434 | #define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) 435 | 436 | #endif /* GLX_ARB_framebuffer_sRGB */ 437 | 438 | /* ------------------------ GLX_ARB_get_proc_address ----------------------- */ 439 | 440 | #ifndef GLX_ARB_get_proc_address 441 | #define GLX_ARB_get_proc_address 1 442 | 443 | extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); 444 | 445 | #define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) 446 | 447 | #endif /* GLX_ARB_get_proc_address */ 448 | 449 | /* -------------------------- GLX_ARB_multisample -------------------------- */ 450 | 451 | #ifndef GLX_ARB_multisample 452 | #define GLX_ARB_multisample 1 453 | 454 | #define GLX_SAMPLE_BUFFERS_ARB 100000 455 | #define GLX_SAMPLES_ARB 100001 456 | 457 | #define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) 458 | 459 | #endif /* GLX_ARB_multisample */ 460 | 461 | /* ---------------- GLX_ARB_robustness_application_isolation --------------- */ 462 | 463 | #ifndef GLX_ARB_robustness_application_isolation 464 | #define GLX_ARB_robustness_application_isolation 1 465 | 466 | #define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 467 | 468 | #define GLXEW_ARB_robustness_application_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_application_isolation) 469 | 470 | #endif /* GLX_ARB_robustness_application_isolation */ 471 | 472 | /* ---------------- GLX_ARB_robustness_share_group_isolation --------------- */ 473 | 474 | #ifndef GLX_ARB_robustness_share_group_isolation 475 | #define GLX_ARB_robustness_share_group_isolation 1 476 | 477 | #define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 478 | 479 | #define GLXEW_ARB_robustness_share_group_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_share_group_isolation) 480 | 481 | #endif /* GLX_ARB_robustness_share_group_isolation */ 482 | 483 | /* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ 484 | 485 | #ifndef GLX_ARB_vertex_buffer_object 486 | #define GLX_ARB_vertex_buffer_object 1 487 | 488 | #define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 489 | 490 | #define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) 491 | 492 | #endif /* GLX_ARB_vertex_buffer_object */ 493 | 494 | /* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ 495 | 496 | #ifndef GLX_ATI_pixel_format_float 497 | #define GLX_ATI_pixel_format_float 1 498 | 499 | #define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 500 | 501 | #define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) 502 | 503 | #endif /* GLX_ATI_pixel_format_float */ 504 | 505 | /* ------------------------- GLX_ATI_render_texture ------------------------ */ 506 | 507 | #ifndef GLX_ATI_render_texture 508 | #define GLX_ATI_render_texture 1 509 | 510 | #define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 511 | #define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 512 | #define GLX_TEXTURE_FORMAT_ATI 0x9802 513 | #define GLX_TEXTURE_TARGET_ATI 0x9803 514 | #define GLX_MIPMAP_TEXTURE_ATI 0x9804 515 | #define GLX_TEXTURE_RGB_ATI 0x9805 516 | #define GLX_TEXTURE_RGBA_ATI 0x9806 517 | #define GLX_NO_TEXTURE_ATI 0x9807 518 | #define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 519 | #define GLX_TEXTURE_1D_ATI 0x9809 520 | #define GLX_TEXTURE_2D_ATI 0x980A 521 | #define GLX_MIPMAP_LEVEL_ATI 0x980B 522 | #define GLX_CUBE_MAP_FACE_ATI 0x980C 523 | #define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D 524 | #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E 525 | #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F 526 | #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 527 | #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 528 | #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 529 | #define GLX_FRONT_LEFT_ATI 0x9813 530 | #define GLX_FRONT_RIGHT_ATI 0x9814 531 | #define GLX_BACK_LEFT_ATI 0x9815 532 | #define GLX_BACK_RIGHT_ATI 0x9816 533 | #define GLX_AUX0_ATI 0x9817 534 | #define GLX_AUX1_ATI 0x9818 535 | #define GLX_AUX2_ATI 0x9819 536 | #define GLX_AUX3_ATI 0x981A 537 | #define GLX_AUX4_ATI 0x981B 538 | #define GLX_AUX5_ATI 0x981C 539 | #define GLX_AUX6_ATI 0x981D 540 | #define GLX_AUX7_ATI 0x981E 541 | #define GLX_AUX8_ATI 0x981F 542 | #define GLX_AUX9_ATI 0x9820 543 | #define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 544 | #define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 545 | 546 | typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); 547 | typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); 548 | typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); 549 | 550 | #define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) 551 | #define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) 552 | #define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) 553 | 554 | #define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) 555 | 556 | #endif /* GLX_ATI_render_texture */ 557 | 558 | /* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ 559 | 560 | #ifndef GLX_EXT_create_context_es2_profile 561 | #define GLX_EXT_create_context_es2_profile 1 562 | 563 | #define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 564 | 565 | #define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) 566 | 567 | #endif /* GLX_EXT_create_context_es2_profile */ 568 | 569 | /* ------------------- GLX_EXT_create_context_es_profile ------------------- */ 570 | 571 | #ifndef GLX_EXT_create_context_es_profile 572 | #define GLX_EXT_create_context_es_profile 1 573 | 574 | #define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 575 | 576 | #define GLXEW_EXT_create_context_es_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es_profile) 577 | 578 | #endif /* GLX_EXT_create_context_es_profile */ 579 | 580 | /* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ 581 | 582 | #ifndef GLX_EXT_fbconfig_packed_float 583 | #define GLX_EXT_fbconfig_packed_float 1 584 | 585 | #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 586 | #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 587 | 588 | #define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) 589 | 590 | #endif /* GLX_EXT_fbconfig_packed_float */ 591 | 592 | /* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ 593 | 594 | #ifndef GLX_EXT_framebuffer_sRGB 595 | #define GLX_EXT_framebuffer_sRGB 1 596 | 597 | #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 598 | 599 | #define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) 600 | 601 | #endif /* GLX_EXT_framebuffer_sRGB */ 602 | 603 | /* ------------------------- GLX_EXT_import_context ------------------------ */ 604 | 605 | #ifndef GLX_EXT_import_context 606 | #define GLX_EXT_import_context 1 607 | 608 | #define GLX_SHARE_CONTEXT_EXT 0x800A 609 | #define GLX_VISUAL_ID_EXT 0x800B 610 | #define GLX_SCREEN_EXT 0x800C 611 | 612 | typedef XID GLXContextID; 613 | 614 | typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); 615 | typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); 616 | typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); 617 | typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); 618 | 619 | #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) 620 | #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) 621 | #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) 622 | #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) 623 | 624 | #define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) 625 | 626 | #endif /* GLX_EXT_import_context */ 627 | 628 | /* -------------------------- GLX_EXT_scene_marker ------------------------- */ 629 | 630 | #ifndef GLX_EXT_scene_marker 631 | #define GLX_EXT_scene_marker 1 632 | 633 | #define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) 634 | 635 | #endif /* GLX_EXT_scene_marker */ 636 | 637 | /* -------------------------- GLX_EXT_swap_control ------------------------- */ 638 | 639 | #ifndef GLX_EXT_swap_control 640 | #define GLX_EXT_swap_control 1 641 | 642 | #define GLX_SWAP_INTERVAL_EXT 0x20F1 643 | #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 644 | 645 | typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); 646 | 647 | #define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) 648 | 649 | #define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) 650 | 651 | #endif /* GLX_EXT_swap_control */ 652 | 653 | /* ----------------------- GLX_EXT_swap_control_tear ----------------------- */ 654 | 655 | #ifndef GLX_EXT_swap_control_tear 656 | #define GLX_EXT_swap_control_tear 1 657 | 658 | #define GLX_LATE_SWAPS_TEAR_EXT 0x20F3 659 | 660 | #define GLXEW_EXT_swap_control_tear GLXEW_GET_VAR(__GLXEW_EXT_swap_control_tear) 661 | 662 | #endif /* GLX_EXT_swap_control_tear */ 663 | 664 | /* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ 665 | 666 | #ifndef GLX_EXT_texture_from_pixmap 667 | #define GLX_EXT_texture_from_pixmap 1 668 | 669 | #define GLX_TEXTURE_1D_BIT_EXT 0x00000001 670 | #define GLX_TEXTURE_2D_BIT_EXT 0x00000002 671 | #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 672 | #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 673 | #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 674 | #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 675 | #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 676 | #define GLX_Y_INVERTED_EXT 0x20D4 677 | #define GLX_TEXTURE_FORMAT_EXT 0x20D5 678 | #define GLX_TEXTURE_TARGET_EXT 0x20D6 679 | #define GLX_MIPMAP_TEXTURE_EXT 0x20D7 680 | #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 681 | #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 682 | #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA 683 | #define GLX_TEXTURE_1D_EXT 0x20DB 684 | #define GLX_TEXTURE_2D_EXT 0x20DC 685 | #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD 686 | #define GLX_FRONT_LEFT_EXT 0x20DE 687 | #define GLX_FRONT_RIGHT_EXT 0x20DF 688 | #define GLX_BACK_LEFT_EXT 0x20E0 689 | #define GLX_BACK_RIGHT_EXT 0x20E1 690 | #define GLX_AUX0_EXT 0x20E2 691 | #define GLX_AUX1_EXT 0x20E3 692 | #define GLX_AUX2_EXT 0x20E4 693 | #define GLX_AUX3_EXT 0x20E5 694 | #define GLX_AUX4_EXT 0x20E6 695 | #define GLX_AUX5_EXT 0x20E7 696 | #define GLX_AUX6_EXT 0x20E8 697 | #define GLX_AUX7_EXT 0x20E9 698 | #define GLX_AUX8_EXT 0x20EA 699 | #define GLX_AUX9_EXT 0x20EB 700 | 701 | typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); 702 | typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); 703 | 704 | #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) 705 | #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) 706 | 707 | #define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) 708 | 709 | #endif /* GLX_EXT_texture_from_pixmap */ 710 | 711 | /* -------------------------- GLX_EXT_visual_info -------------------------- */ 712 | 713 | #ifndef GLX_EXT_visual_info 714 | #define GLX_EXT_visual_info 1 715 | 716 | #define GLX_X_VISUAL_TYPE_EXT 0x22 717 | #define GLX_TRANSPARENT_TYPE_EXT 0x23 718 | #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 719 | #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 720 | #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 721 | #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 722 | #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 723 | #define GLX_NONE_EXT 0x8000 724 | #define GLX_TRUE_COLOR_EXT 0x8002 725 | #define GLX_DIRECT_COLOR_EXT 0x8003 726 | #define GLX_PSEUDO_COLOR_EXT 0x8004 727 | #define GLX_STATIC_COLOR_EXT 0x8005 728 | #define GLX_GRAY_SCALE_EXT 0x8006 729 | #define GLX_STATIC_GRAY_EXT 0x8007 730 | #define GLX_TRANSPARENT_RGB_EXT 0x8008 731 | #define GLX_TRANSPARENT_INDEX_EXT 0x8009 732 | 733 | #define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) 734 | 735 | #endif /* GLX_EXT_visual_info */ 736 | 737 | /* ------------------------- GLX_EXT_visual_rating ------------------------- */ 738 | 739 | #ifndef GLX_EXT_visual_rating 740 | #define GLX_EXT_visual_rating 1 741 | 742 | #define GLX_VISUAL_CAVEAT_EXT 0x20 743 | #define GLX_SLOW_VISUAL_EXT 0x8001 744 | #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D 745 | 746 | #define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) 747 | 748 | #endif /* GLX_EXT_visual_rating */ 749 | 750 | /* -------------------------- GLX_INTEL_swap_event ------------------------- */ 751 | 752 | #ifndef GLX_INTEL_swap_event 753 | #define GLX_INTEL_swap_event 1 754 | 755 | #define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 756 | #define GLX_COPY_COMPLETE_INTEL 0x8181 757 | #define GLX_FLIP_COMPLETE_INTEL 0x8182 758 | #define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 759 | 760 | #define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) 761 | 762 | #endif /* GLX_INTEL_swap_event */ 763 | 764 | /* -------------------------- GLX_MESA_agp_offset -------------------------- */ 765 | 766 | #ifndef GLX_MESA_agp_offset 767 | #define GLX_MESA_agp_offset 1 768 | 769 | typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); 770 | 771 | #define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) 772 | 773 | #define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) 774 | 775 | #endif /* GLX_MESA_agp_offset */ 776 | 777 | /* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ 778 | 779 | #ifndef GLX_MESA_copy_sub_buffer 780 | #define GLX_MESA_copy_sub_buffer 1 781 | 782 | typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); 783 | 784 | #define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) 785 | 786 | #define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) 787 | 788 | #endif /* GLX_MESA_copy_sub_buffer */ 789 | 790 | /* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ 791 | 792 | #ifndef GLX_MESA_pixmap_colormap 793 | #define GLX_MESA_pixmap_colormap 1 794 | 795 | typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); 796 | 797 | #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) 798 | 799 | #define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) 800 | 801 | #endif /* GLX_MESA_pixmap_colormap */ 802 | 803 | /* ------------------------ GLX_MESA_release_buffers ----------------------- */ 804 | 805 | #ifndef GLX_MESA_release_buffers 806 | #define GLX_MESA_release_buffers 1 807 | 808 | typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); 809 | 810 | #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) 811 | 812 | #define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) 813 | 814 | #endif /* GLX_MESA_release_buffers */ 815 | 816 | /* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ 817 | 818 | #ifndef GLX_MESA_set_3dfx_mode 819 | #define GLX_MESA_set_3dfx_mode 1 820 | 821 | #define GLX_3DFX_WINDOW_MODE_MESA 0x1 822 | #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 823 | 824 | typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); 825 | 826 | #define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) 827 | 828 | #define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) 829 | 830 | #endif /* GLX_MESA_set_3dfx_mode */ 831 | 832 | /* ------------------------- GLX_MESA_swap_control ------------------------- */ 833 | 834 | #ifndef GLX_MESA_swap_control 835 | #define GLX_MESA_swap_control 1 836 | 837 | typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); 838 | typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); 839 | 840 | #define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) 841 | #define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) 842 | 843 | #define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) 844 | 845 | #endif /* GLX_MESA_swap_control */ 846 | 847 | /* --------------------------- GLX_NV_copy_image --------------------------- */ 848 | 849 | #ifndef GLX_NV_copy_image 850 | #define GLX_NV_copy_image 1 851 | 852 | typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); 853 | 854 | #define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) 855 | 856 | #define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) 857 | 858 | #endif /* GLX_NV_copy_image */ 859 | 860 | /* -------------------------- GLX_NV_float_buffer -------------------------- */ 861 | 862 | #ifndef GLX_NV_float_buffer 863 | #define GLX_NV_float_buffer 1 864 | 865 | #define GLX_FLOAT_COMPONENTS_NV 0x20B0 866 | 867 | #define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) 868 | 869 | #endif /* GLX_NV_float_buffer */ 870 | 871 | /* ---------------------- GLX_NV_multisample_coverage ---------------------- */ 872 | 873 | #ifndef GLX_NV_multisample_coverage 874 | #define GLX_NV_multisample_coverage 1 875 | 876 | #define GLX_COLOR_SAMPLES_NV 0x20B3 877 | #define GLX_COVERAGE_SAMPLES_NV 100001 878 | 879 | #define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) 880 | 881 | #endif /* GLX_NV_multisample_coverage */ 882 | 883 | /* -------------------------- GLX_NV_present_video ------------------------- */ 884 | 885 | #ifndef GLX_NV_present_video 886 | #define GLX_NV_present_video 1 887 | 888 | #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 889 | 890 | typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); 891 | typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); 892 | 893 | #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) 894 | #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) 895 | 896 | #define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) 897 | 898 | #endif /* GLX_NV_present_video */ 899 | 900 | /* --------------------------- GLX_NV_swap_group --------------------------- */ 901 | 902 | #ifndef GLX_NV_swap_group 903 | #define GLX_NV_swap_group 1 904 | 905 | typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); 906 | typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); 907 | typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); 908 | typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); 909 | typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); 910 | typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); 911 | 912 | #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) 913 | #define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) 914 | #define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) 915 | #define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) 916 | #define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) 917 | #define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) 918 | 919 | #define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) 920 | 921 | #endif /* GLX_NV_swap_group */ 922 | 923 | /* ----------------------- GLX_NV_vertex_array_range ----------------------- */ 924 | 925 | #ifndef GLX_NV_vertex_array_range 926 | #define GLX_NV_vertex_array_range 1 927 | 928 | typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); 929 | typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); 930 | 931 | #define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) 932 | #define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) 933 | 934 | #define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) 935 | 936 | #endif /* GLX_NV_vertex_array_range */ 937 | 938 | /* -------------------------- GLX_NV_video_capture ------------------------- */ 939 | 940 | #ifndef GLX_NV_video_capture 941 | #define GLX_NV_video_capture 1 942 | 943 | #define GLX_DEVICE_ID_NV 0x20CD 944 | #define GLX_UNIQUE_ID_NV 0x20CE 945 | #define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF 946 | 947 | typedef XID GLXVideoCaptureDeviceNV; 948 | 949 | typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); 950 | typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); 951 | typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); 952 | typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); 953 | typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); 954 | 955 | #define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) 956 | #define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) 957 | #define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) 958 | #define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) 959 | #define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) 960 | 961 | #define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) 962 | 963 | #endif /* GLX_NV_video_capture */ 964 | 965 | /* ---------------------------- GLX_NV_video_out --------------------------- */ 966 | 967 | #ifndef GLX_NV_video_out 968 | #define GLX_NV_video_out 1 969 | 970 | #define GLX_VIDEO_OUT_COLOR_NV 0x20C3 971 | #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 972 | #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 973 | #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 974 | #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 975 | #define GLX_VIDEO_OUT_FRAME_NV 0x20C8 976 | #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 977 | #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA 978 | #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB 979 | #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC 980 | 981 | typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); 982 | typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); 983 | typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); 984 | typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); 985 | typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); 986 | typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); 987 | 988 | #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) 989 | #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) 990 | #define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) 991 | #define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) 992 | #define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) 993 | #define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) 994 | 995 | #define GLXEW_NV_video_out GLXEW_GET_VAR(__GLXEW_NV_video_out) 996 | 997 | #endif /* GLX_NV_video_out */ 998 | 999 | /* -------------------------- GLX_OML_swap_method -------------------------- */ 1000 | 1001 | #ifndef GLX_OML_swap_method 1002 | #define GLX_OML_swap_method 1 1003 | 1004 | #define GLX_SWAP_METHOD_OML 0x8060 1005 | #define GLX_SWAP_EXCHANGE_OML 0x8061 1006 | #define GLX_SWAP_COPY_OML 0x8062 1007 | #define GLX_SWAP_UNDEFINED_OML 0x8063 1008 | 1009 | #define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) 1010 | 1011 | #endif /* GLX_OML_swap_method */ 1012 | 1013 | /* -------------------------- GLX_OML_sync_control ------------------------- */ 1014 | 1015 | #ifndef GLX_OML_sync_control 1016 | #define GLX_OML_sync_control 1 1017 | 1018 | typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); 1019 | typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); 1020 | typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); 1021 | typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); 1022 | typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); 1023 | 1024 | #define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) 1025 | #define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) 1026 | #define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) 1027 | #define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) 1028 | #define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) 1029 | 1030 | #define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) 1031 | 1032 | #endif /* GLX_OML_sync_control */ 1033 | 1034 | /* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ 1035 | 1036 | #ifndef GLX_SGIS_blended_overlay 1037 | #define GLX_SGIS_blended_overlay 1 1038 | 1039 | #define GLX_BLENDED_RGBA_SGIS 0x8025 1040 | 1041 | #define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) 1042 | 1043 | #endif /* GLX_SGIS_blended_overlay */ 1044 | 1045 | /* -------------------------- GLX_SGIS_color_range ------------------------- */ 1046 | 1047 | #ifndef GLX_SGIS_color_range 1048 | #define GLX_SGIS_color_range 1 1049 | 1050 | #define GLX_MIN_RED_SGIS 0 1051 | #define GLX_MAX_GREEN_SGIS 0 1052 | #define GLX_MIN_BLUE_SGIS 0 1053 | #define GLX_MAX_ALPHA_SGIS 0 1054 | #define GLX_MIN_GREEN_SGIS 0 1055 | #define GLX_MIN_ALPHA_SGIS 0 1056 | #define GLX_MAX_RED_SGIS 0 1057 | #define GLX_EXTENDED_RANGE_SGIS 0 1058 | #define GLX_MAX_BLUE_SGIS 0 1059 | 1060 | #define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) 1061 | 1062 | #endif /* GLX_SGIS_color_range */ 1063 | 1064 | /* -------------------------- GLX_SGIS_multisample ------------------------- */ 1065 | 1066 | #ifndef GLX_SGIS_multisample 1067 | #define GLX_SGIS_multisample 1 1068 | 1069 | #define GLX_SAMPLE_BUFFERS_SGIS 100000 1070 | #define GLX_SAMPLES_SGIS 100001 1071 | 1072 | #define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) 1073 | 1074 | #endif /* GLX_SGIS_multisample */ 1075 | 1076 | /* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ 1077 | 1078 | #ifndef GLX_SGIS_shared_multisample 1079 | #define GLX_SGIS_shared_multisample 1 1080 | 1081 | #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 1082 | #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 1083 | 1084 | #define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) 1085 | 1086 | #endif /* GLX_SGIS_shared_multisample */ 1087 | 1088 | /* --------------------------- GLX_SGIX_fbconfig --------------------------- */ 1089 | 1090 | #ifndef GLX_SGIX_fbconfig 1091 | #define GLX_SGIX_fbconfig 1 1092 | 1093 | #define GLX_WINDOW_BIT_SGIX 0x00000001 1094 | #define GLX_RGBA_BIT_SGIX 0x00000001 1095 | #define GLX_PIXMAP_BIT_SGIX 0x00000002 1096 | #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 1097 | #define GLX_SCREEN_EXT 0x800C 1098 | #define GLX_DRAWABLE_TYPE_SGIX 0x8010 1099 | #define GLX_RENDER_TYPE_SGIX 0x8011 1100 | #define GLX_X_RENDERABLE_SGIX 0x8012 1101 | #define GLX_FBCONFIG_ID_SGIX 0x8013 1102 | #define GLX_RGBA_TYPE_SGIX 0x8014 1103 | #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 1104 | 1105 | typedef XID GLXFBConfigIDSGIX; 1106 | typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; 1107 | 1108 | typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); 1109 | typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); 1110 | typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); 1111 | typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); 1112 | typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); 1113 | typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); 1114 | 1115 | #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) 1116 | #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) 1117 | #define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) 1118 | #define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) 1119 | #define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) 1120 | #define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) 1121 | 1122 | #define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) 1123 | 1124 | #endif /* GLX_SGIX_fbconfig */ 1125 | 1126 | /* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ 1127 | 1128 | #ifndef GLX_SGIX_hyperpipe 1129 | #define GLX_SGIX_hyperpipe 1 1130 | 1131 | #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 1132 | #define GLX_PIPE_RECT_SGIX 0x00000001 1133 | #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 1134 | #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 1135 | #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 1136 | #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 1137 | #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 1138 | #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 1139 | #define GLX_BAD_HYPERPIPE_SGIX 92 1140 | #define GLX_HYPERPIPE_ID_SGIX 0x8030 1141 | 1142 | typedef struct { 1143 | char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 1144 | int networkId; 1145 | } GLXHyperpipeNetworkSGIX; 1146 | typedef struct { 1147 | char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 1148 | int XOrigin; 1149 | int YOrigin; 1150 | int maxHeight; 1151 | int maxWidth; 1152 | } GLXPipeRectLimits; 1153 | typedef struct { 1154 | char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 1155 | int channel; 1156 | unsigned int participationType; 1157 | int timeSlice; 1158 | } GLXHyperpipeConfigSGIX; 1159 | typedef struct { 1160 | char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 1161 | int srcXOrigin; 1162 | int srcYOrigin; 1163 | int srcWidth; 1164 | int srcHeight; 1165 | int destXOrigin; 1166 | int destYOrigin; 1167 | int destWidth; 1168 | int destHeight; 1169 | } GLXPipeRect; 1170 | 1171 | typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); 1172 | typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); 1173 | typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); 1174 | typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); 1175 | typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); 1176 | typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); 1177 | typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); 1178 | typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); 1179 | 1180 | #define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) 1181 | #define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) 1182 | #define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) 1183 | #define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) 1184 | #define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) 1185 | #define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) 1186 | #define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) 1187 | #define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) 1188 | 1189 | #define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) 1190 | 1191 | #endif /* GLX_SGIX_hyperpipe */ 1192 | 1193 | /* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ 1194 | 1195 | #ifndef GLX_SGIX_pbuffer 1196 | #define GLX_SGIX_pbuffer 1 1197 | 1198 | #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 1199 | #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 1200 | #define GLX_PBUFFER_BIT_SGIX 0x00000004 1201 | #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 1202 | #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 1203 | #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 1204 | #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 1205 | #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 1206 | #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 1207 | #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 1208 | #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 1209 | #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 1210 | #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 1211 | #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 1212 | #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A 1213 | #define GLX_PRESERVED_CONTENTS_SGIX 0x801B 1214 | #define GLX_LARGEST_PBUFFER_SGIX 0x801C 1215 | #define GLX_WIDTH_SGIX 0x801D 1216 | #define GLX_HEIGHT_SGIX 0x801E 1217 | #define GLX_EVENT_MASK_SGIX 0x801F 1218 | #define GLX_DAMAGED_SGIX 0x8020 1219 | #define GLX_SAVED_SGIX 0x8021 1220 | #define GLX_WINDOW_SGIX 0x8022 1221 | #define GLX_PBUFFER_SGIX 0x8023 1222 | #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 1223 | 1224 | typedef XID GLXPbufferSGIX; 1225 | typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; 1226 | 1227 | typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); 1228 | typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); 1229 | typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); 1230 | typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); 1231 | typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); 1232 | 1233 | #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) 1234 | #define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) 1235 | #define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) 1236 | #define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) 1237 | #define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) 1238 | 1239 | #define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) 1240 | 1241 | #endif /* GLX_SGIX_pbuffer */ 1242 | 1243 | /* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ 1244 | 1245 | #ifndef GLX_SGIX_swap_barrier 1246 | #define GLX_SGIX_swap_barrier 1 1247 | 1248 | typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); 1249 | typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); 1250 | 1251 | #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) 1252 | #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) 1253 | 1254 | #define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) 1255 | 1256 | #endif /* GLX_SGIX_swap_barrier */ 1257 | 1258 | /* -------------------------- GLX_SGIX_swap_group -------------------------- */ 1259 | 1260 | #ifndef GLX_SGIX_swap_group 1261 | #define GLX_SGIX_swap_group 1 1262 | 1263 | typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); 1264 | 1265 | #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) 1266 | 1267 | #define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) 1268 | 1269 | #endif /* GLX_SGIX_swap_group */ 1270 | 1271 | /* ------------------------- GLX_SGIX_video_resize ------------------------- */ 1272 | 1273 | #ifndef GLX_SGIX_video_resize 1274 | #define GLX_SGIX_video_resize 1 1275 | 1276 | #define GLX_SYNC_FRAME_SGIX 0x00000000 1277 | #define GLX_SYNC_SWAP_SGIX 0x00000001 1278 | 1279 | typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); 1280 | typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); 1281 | typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); 1282 | typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); 1283 | typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); 1284 | 1285 | #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) 1286 | #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) 1287 | #define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) 1288 | #define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) 1289 | #define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) 1290 | 1291 | #define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) 1292 | 1293 | #endif /* GLX_SGIX_video_resize */ 1294 | 1295 | /* ---------------------- GLX_SGIX_visual_select_group --------------------- */ 1296 | 1297 | #ifndef GLX_SGIX_visual_select_group 1298 | #define GLX_SGIX_visual_select_group 1 1299 | 1300 | #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 1301 | 1302 | #define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) 1303 | 1304 | #endif /* GLX_SGIX_visual_select_group */ 1305 | 1306 | /* ---------------------------- GLX_SGI_cushion ---------------------------- */ 1307 | 1308 | #ifndef GLX_SGI_cushion 1309 | #define GLX_SGI_cushion 1 1310 | 1311 | typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); 1312 | 1313 | #define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) 1314 | 1315 | #define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) 1316 | 1317 | #endif /* GLX_SGI_cushion */ 1318 | 1319 | /* ----------------------- GLX_SGI_make_current_read ----------------------- */ 1320 | 1321 | #ifndef GLX_SGI_make_current_read 1322 | #define GLX_SGI_make_current_read 1 1323 | 1324 | typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); 1325 | typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 1326 | 1327 | #define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) 1328 | #define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) 1329 | 1330 | #define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) 1331 | 1332 | #endif /* GLX_SGI_make_current_read */ 1333 | 1334 | /* -------------------------- GLX_SGI_swap_control ------------------------- */ 1335 | 1336 | #ifndef GLX_SGI_swap_control 1337 | #define GLX_SGI_swap_control 1 1338 | 1339 | typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); 1340 | 1341 | #define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) 1342 | 1343 | #define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) 1344 | 1345 | #endif /* GLX_SGI_swap_control */ 1346 | 1347 | /* --------------------------- GLX_SGI_video_sync -------------------------- */ 1348 | 1349 | #ifndef GLX_SGI_video_sync 1350 | #define GLX_SGI_video_sync 1 1351 | 1352 | typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); 1353 | typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); 1354 | 1355 | #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) 1356 | #define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) 1357 | 1358 | #define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) 1359 | 1360 | #endif /* GLX_SGI_video_sync */ 1361 | 1362 | /* --------------------- GLX_SUN_get_transparent_index --------------------- */ 1363 | 1364 | #ifndef GLX_SUN_get_transparent_index 1365 | #define GLX_SUN_get_transparent_index 1 1366 | 1367 | typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); 1368 | 1369 | #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) 1370 | 1371 | #define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) 1372 | 1373 | #endif /* GLX_SUN_get_transparent_index */ 1374 | 1375 | /* -------------------------- GLX_SUN_video_resize ------------------------- */ 1376 | 1377 | #ifndef GLX_SUN_video_resize 1378 | #define GLX_SUN_video_resize 1 1379 | 1380 | #define GLX_VIDEO_RESIZE_SUN 0x8171 1381 | #define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD 1382 | 1383 | typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); 1384 | typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); 1385 | 1386 | #define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) 1387 | #define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) 1388 | 1389 | #define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) 1390 | 1391 | #endif /* GLX_SUN_video_resize */ 1392 | 1393 | /* ------------------------------------------------------------------------- */ 1394 | 1395 | #ifdef GLEW_MX 1396 | #define GLXEW_FUN_EXPORT 1397 | #define GLXEW_VAR_EXPORT 1398 | #else 1399 | #define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT 1400 | #define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT 1401 | #endif /* GLEW_MX */ 1402 | 1403 | GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; 1404 | 1405 | GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; 1406 | GLXEW_FUN_EXPORT PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; 1407 | GLXEW_FUN_EXPORT PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; 1408 | GLXEW_FUN_EXPORT PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; 1409 | GLXEW_FUN_EXPORT PFNGLXCREATEWINDOWPROC __glewXCreateWindow; 1410 | GLXEW_FUN_EXPORT PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; 1411 | GLXEW_FUN_EXPORT PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; 1412 | GLXEW_FUN_EXPORT PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; 1413 | GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; 1414 | GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; 1415 | GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; 1416 | GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; 1417 | GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; 1418 | GLXEW_FUN_EXPORT PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; 1419 | GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTPROC __glewXQueryContext; 1420 | GLXEW_FUN_EXPORT PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; 1421 | GLXEW_FUN_EXPORT PFNGLXSELECTEVENTPROC __glewXSelectEvent; 1422 | 1423 | GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; 1424 | 1425 | GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; 1426 | GLXEW_FUN_EXPORT PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; 1427 | GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; 1428 | 1429 | GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; 1430 | GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; 1431 | GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; 1432 | GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; 1433 | 1434 | GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; 1435 | 1436 | GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; 1437 | GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; 1438 | 1439 | GLXEW_FUN_EXPORT PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; 1440 | 1441 | GLXEW_FUN_EXPORT PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; 1442 | 1443 | GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; 1444 | 1445 | GLXEW_FUN_EXPORT PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; 1446 | 1447 | GLXEW_FUN_EXPORT PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; 1448 | 1449 | GLXEW_FUN_EXPORT PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; 1450 | GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; 1451 | 1452 | GLXEW_FUN_EXPORT PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; 1453 | 1454 | GLXEW_FUN_EXPORT PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; 1455 | GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; 1456 | 1457 | GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; 1458 | GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; 1459 | GLXEW_FUN_EXPORT PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; 1460 | GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; 1461 | GLXEW_FUN_EXPORT PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; 1462 | GLXEW_FUN_EXPORT PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; 1463 | 1464 | GLXEW_FUN_EXPORT PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; 1465 | GLXEW_FUN_EXPORT PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; 1466 | 1467 | GLXEW_FUN_EXPORT PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; 1468 | GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; 1469 | GLXEW_FUN_EXPORT PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; 1470 | GLXEW_FUN_EXPORT PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; 1471 | GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; 1472 | 1473 | GLXEW_FUN_EXPORT PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; 1474 | GLXEW_FUN_EXPORT PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; 1475 | GLXEW_FUN_EXPORT PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; 1476 | GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; 1477 | GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; 1478 | GLXEW_FUN_EXPORT PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; 1479 | 1480 | GLXEW_FUN_EXPORT PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; 1481 | GLXEW_FUN_EXPORT PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; 1482 | GLXEW_FUN_EXPORT PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; 1483 | GLXEW_FUN_EXPORT PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; 1484 | GLXEW_FUN_EXPORT PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; 1485 | 1486 | GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; 1487 | GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; 1488 | GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; 1489 | GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; 1490 | GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; 1491 | GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; 1492 | 1493 | GLXEW_FUN_EXPORT PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; 1494 | GLXEW_FUN_EXPORT PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; 1495 | GLXEW_FUN_EXPORT PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; 1496 | GLXEW_FUN_EXPORT PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; 1497 | GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; 1498 | GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; 1499 | GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; 1500 | GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; 1501 | 1502 | GLXEW_FUN_EXPORT PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; 1503 | GLXEW_FUN_EXPORT PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; 1504 | GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; 1505 | GLXEW_FUN_EXPORT PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; 1506 | GLXEW_FUN_EXPORT PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; 1507 | 1508 | GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; 1509 | GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; 1510 | 1511 | GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; 1512 | 1513 | GLXEW_FUN_EXPORT PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; 1514 | GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; 1515 | GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; 1516 | GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; 1517 | GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; 1518 | 1519 | GLXEW_FUN_EXPORT PFNGLXCUSHIONSGIPROC __glewXCushionSGI; 1520 | 1521 | GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; 1522 | GLXEW_FUN_EXPORT PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; 1523 | 1524 | GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; 1525 | 1526 | GLXEW_FUN_EXPORT PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; 1527 | GLXEW_FUN_EXPORT PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; 1528 | 1529 | GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; 1530 | 1531 | GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; 1532 | GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; 1533 | 1534 | #if defined(GLEW_MX) 1535 | struct GLXEWContextStruct 1536 | { 1537 | #endif /* GLEW_MX */ 1538 | 1539 | GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; 1540 | GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; 1541 | GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; 1542 | GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3; 1543 | GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4; 1544 | GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; 1545 | GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; 1546 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; 1547 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; 1548 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; 1549 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; 1550 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; 1551 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address; 1552 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample; 1553 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation; 1554 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation; 1555 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; 1556 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; 1557 | GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; 1558 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; 1559 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; 1560 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; 1561 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; 1562 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; 1563 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; 1564 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; 1565 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear; 1566 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; 1567 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info; 1568 | GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating; 1569 | GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event; 1570 | GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset; 1571 | GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; 1572 | GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; 1573 | GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers; 1574 | GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; 1575 | GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control; 1576 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; 1577 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; 1578 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; 1579 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; 1580 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; 1581 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; 1582 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; 1583 | GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out; 1584 | GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method; 1585 | GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control; 1586 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; 1587 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range; 1588 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample; 1589 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; 1590 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig; 1591 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; 1592 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer; 1593 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; 1594 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group; 1595 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize; 1596 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; 1597 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion; 1598 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read; 1599 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; 1600 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; 1601 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; 1602 | GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; 1603 | 1604 | #ifdef GLEW_MX 1605 | }; /* GLXEWContextStruct */ 1606 | #endif /* GLEW_MX */ 1607 | 1608 | /* ------------------------------------------------------------------------ */ 1609 | 1610 | #ifdef GLEW_MX 1611 | 1612 | typedef struct GLXEWContextStruct GLXEWContext; 1613 | GLEWAPI GLenum GLEWAPIENTRY glxewContextInit (GLXEWContext *ctx); 1614 | GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx, const char *name); 1615 | 1616 | #define glxewInit() glxewContextInit(glxewGetContext()) 1617 | #define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) 1618 | 1619 | #define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) 1620 | #define GLXEW_GET_FUN(x) x 1621 | 1622 | #else /* GLEW_MX */ 1623 | 1624 | #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) 1625 | #define GLXEW_GET_FUN(x) x 1626 | 1627 | GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); 1628 | 1629 | #endif /* GLEW_MX */ 1630 | 1631 | GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); 1632 | 1633 | #ifdef __cplusplus 1634 | } 1635 | #endif 1636 | 1637 | #endif /* __glxew_h__ */ 1638 | -------------------------------------------------------------------------------- /include/GL/wglew.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** The OpenGL Extension Wrangler Library 3 | ** Copyright (C) 2002-2008, Milan Ikits 4 | ** Copyright (C) 2002-2008, Marcelo E. Magallon 5 | ** Copyright (C) 2002, Lev Povalahev 6 | ** All rights reserved. 7 | ** 8 | ** Redistribution and use in source and binary forms, with or without 9 | ** modification, are permitted provided that the following conditions are met: 10 | ** 11 | ** * Redistributions of source code must retain the above copyright notice, 12 | ** this list of conditions and the following disclaimer. 13 | ** * Redistributions in binary form must reproduce the above copyright notice, 14 | ** this list of conditions and the following disclaimer in the documentation 15 | ** and/or other materials provided with the distribution. 16 | ** * The name of the author may be used to endorse or promote products 17 | ** derived from this software without specific prior written permission. 18 | ** 19 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23 | ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 | ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 | ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 | ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 | ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 | ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 29 | ** THE POSSIBILITY OF SUCH DAMAGE. 30 | */ 31 | 32 | /* 33 | ** Copyright (c) 2007 The Khronos Group Inc. 34 | ** 35 | ** Permission is hereby granted, free of charge, to any person obtaining a 36 | ** copy of this software and/or associated documentation files (the 37 | ** "Materials"), to deal in the Materials without restriction, including 38 | ** without limitation the rights to use, copy, modify, merge, publish, 39 | ** distribute, sublicense, and/or sell copies of the Materials, and to 40 | ** permit persons to whom the Materials are furnished to do so, subject to 41 | ** the following conditions: 42 | ** 43 | ** The above copyright notice and this permission notice shall be included 44 | ** in all copies or substantial portions of the Materials. 45 | ** 46 | ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 47 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 48 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 49 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 50 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 51 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 52 | ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 53 | */ 54 | 55 | #ifndef __wglew_h__ 56 | #define __wglew_h__ 57 | #define __WGLEW_H__ 58 | 59 | #ifdef __wglext_h_ 60 | #error wglext.h included before wglew.h 61 | #endif 62 | 63 | #define __wglext_h_ 64 | 65 | #if !defined(WINAPI) 66 | # ifndef WIN32_LEAN_AND_MEAN 67 | # define WIN32_LEAN_AND_MEAN 1 68 | # endif 69 | #include 70 | # undef WIN32_LEAN_AND_MEAN 71 | #endif 72 | 73 | /* 74 | * GLEW_STATIC needs to be set when using the static version. 75 | * GLEW_BUILD is set when building the DLL version. 76 | */ 77 | #ifdef GLEW_STATIC 78 | # define GLEWAPI extern 79 | #else 80 | # ifdef GLEW_BUILD 81 | # define GLEWAPI extern __declspec(dllexport) 82 | # else 83 | # define GLEWAPI extern __declspec(dllimport) 84 | # endif 85 | #endif 86 | 87 | #ifdef __cplusplus 88 | extern "C" { 89 | #endif 90 | 91 | /* -------------------------- WGL_3DFX_multisample ------------------------- */ 92 | 93 | #ifndef WGL_3DFX_multisample 94 | #define WGL_3DFX_multisample 1 95 | 96 | #define WGL_SAMPLE_BUFFERS_3DFX 0x2060 97 | #define WGL_SAMPLES_3DFX 0x2061 98 | 99 | #define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) 100 | 101 | #endif /* WGL_3DFX_multisample */ 102 | 103 | /* ------------------------- WGL_3DL_stereo_control ------------------------ */ 104 | 105 | #ifndef WGL_3DL_stereo_control 106 | #define WGL_3DL_stereo_control 1 107 | 108 | #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 109 | #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 110 | #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 111 | #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 112 | 113 | typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); 114 | 115 | #define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) 116 | 117 | #define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) 118 | 119 | #endif /* WGL_3DL_stereo_control */ 120 | 121 | /* ------------------------ WGL_AMD_gpu_association ------------------------ */ 122 | 123 | #ifndef WGL_AMD_gpu_association 124 | #define WGL_AMD_gpu_association 1 125 | 126 | #define WGL_GPU_VENDOR_AMD 0x1F00 127 | #define WGL_GPU_RENDERER_STRING_AMD 0x1F01 128 | #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 129 | #define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 130 | #define WGL_GPU_RAM_AMD 0x21A3 131 | #define WGL_GPU_CLOCK_AMD 0x21A4 132 | #define WGL_GPU_NUM_PIPES_AMD 0x21A5 133 | #define WGL_GPU_NUM_SIMD_AMD 0x21A6 134 | #define WGL_GPU_NUM_RB_AMD 0x21A7 135 | #define WGL_GPU_NUM_SPI_AMD 0x21A8 136 | 137 | 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); 138 | typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); 139 | typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); 140 | typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); 141 | typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); 142 | typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); 143 | typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); 144 | typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); 145 | typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); 146 | 147 | #define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) 148 | #define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) 149 | #define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) 150 | #define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) 151 | #define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) 152 | #define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) 153 | #define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) 154 | #define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) 155 | #define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) 156 | 157 | #define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) 158 | 159 | #endif /* WGL_AMD_gpu_association */ 160 | 161 | /* ------------------------- WGL_ARB_buffer_region ------------------------- */ 162 | 163 | #ifndef WGL_ARB_buffer_region 164 | #define WGL_ARB_buffer_region 1 165 | 166 | #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 167 | #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 168 | #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 169 | #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 170 | 171 | typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); 172 | typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); 173 | typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); 174 | typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); 175 | 176 | #define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) 177 | #define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) 178 | #define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) 179 | #define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) 180 | 181 | #define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) 182 | 183 | #endif /* WGL_ARB_buffer_region */ 184 | 185 | /* ------------------------- WGL_ARB_create_context ------------------------ */ 186 | 187 | #ifndef WGL_ARB_create_context 188 | #define WGL_ARB_create_context 1 189 | 190 | #define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 191 | #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 192 | #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 193 | #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 194 | #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 195 | #define WGL_CONTEXT_FLAGS_ARB 0x2094 196 | #define ERROR_INVALID_VERSION_ARB 0x2095 197 | #define ERROR_INVALID_PROFILE_ARB 0x2096 198 | 199 | typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); 200 | 201 | #define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) 202 | 203 | #define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) 204 | 205 | #endif /* WGL_ARB_create_context */ 206 | 207 | /* --------------------- WGL_ARB_create_context_profile -------------------- */ 208 | 209 | #ifndef WGL_ARB_create_context_profile 210 | #define WGL_ARB_create_context_profile 1 211 | 212 | #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 213 | #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 214 | #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 215 | 216 | #define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) 217 | 218 | #endif /* WGL_ARB_create_context_profile */ 219 | 220 | /* ------------------- WGL_ARB_create_context_robustness ------------------- */ 221 | 222 | #ifndef WGL_ARB_create_context_robustness 223 | #define WGL_ARB_create_context_robustness 1 224 | 225 | #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 226 | #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 227 | #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 228 | #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 229 | 230 | #define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) 231 | 232 | #endif /* WGL_ARB_create_context_robustness */ 233 | 234 | /* ----------------------- WGL_ARB_extensions_string ----------------------- */ 235 | 236 | #ifndef WGL_ARB_extensions_string 237 | #define WGL_ARB_extensions_string 1 238 | 239 | typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); 240 | 241 | #define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) 242 | 243 | #define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) 244 | 245 | #endif /* WGL_ARB_extensions_string */ 246 | 247 | /* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ 248 | 249 | #ifndef WGL_ARB_framebuffer_sRGB 250 | #define WGL_ARB_framebuffer_sRGB 1 251 | 252 | #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 253 | 254 | #define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) 255 | 256 | #endif /* WGL_ARB_framebuffer_sRGB */ 257 | 258 | /* ----------------------- WGL_ARB_make_current_read ----------------------- */ 259 | 260 | #ifndef WGL_ARB_make_current_read 261 | #define WGL_ARB_make_current_read 1 262 | 263 | #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 264 | #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 265 | 266 | typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); 267 | typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 268 | 269 | #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) 270 | #define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) 271 | 272 | #define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) 273 | 274 | #endif /* WGL_ARB_make_current_read */ 275 | 276 | /* -------------------------- WGL_ARB_multisample -------------------------- */ 277 | 278 | #ifndef WGL_ARB_multisample 279 | #define WGL_ARB_multisample 1 280 | 281 | #define WGL_SAMPLE_BUFFERS_ARB 0x2041 282 | #define WGL_SAMPLES_ARB 0x2042 283 | 284 | #define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) 285 | 286 | #endif /* WGL_ARB_multisample */ 287 | 288 | /* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ 289 | 290 | #ifndef WGL_ARB_pbuffer 291 | #define WGL_ARB_pbuffer 1 292 | 293 | #define WGL_DRAW_TO_PBUFFER_ARB 0x202D 294 | #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E 295 | #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F 296 | #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 297 | #define WGL_PBUFFER_LARGEST_ARB 0x2033 298 | #define WGL_PBUFFER_WIDTH_ARB 0x2034 299 | #define WGL_PBUFFER_HEIGHT_ARB 0x2035 300 | #define WGL_PBUFFER_LOST_ARB 0x2036 301 | 302 | DECLARE_HANDLE(HPBUFFERARB); 303 | 304 | typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); 305 | typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); 306 | typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); 307 | typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); 308 | typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); 309 | 310 | #define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) 311 | #define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) 312 | #define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) 313 | #define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) 314 | #define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) 315 | 316 | #define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) 317 | 318 | #endif /* WGL_ARB_pbuffer */ 319 | 320 | /* -------------------------- WGL_ARB_pixel_format ------------------------- */ 321 | 322 | #ifndef WGL_ARB_pixel_format 323 | #define WGL_ARB_pixel_format 1 324 | 325 | #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 326 | #define WGL_DRAW_TO_WINDOW_ARB 0x2001 327 | #define WGL_DRAW_TO_BITMAP_ARB 0x2002 328 | #define WGL_ACCELERATION_ARB 0x2003 329 | #define WGL_NEED_PALETTE_ARB 0x2004 330 | #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 331 | #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 332 | #define WGL_SWAP_METHOD_ARB 0x2007 333 | #define WGL_NUMBER_OVERLAYS_ARB 0x2008 334 | #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 335 | #define WGL_TRANSPARENT_ARB 0x200A 336 | #define WGL_SHARE_DEPTH_ARB 0x200C 337 | #define WGL_SHARE_STENCIL_ARB 0x200D 338 | #define WGL_SHARE_ACCUM_ARB 0x200E 339 | #define WGL_SUPPORT_GDI_ARB 0x200F 340 | #define WGL_SUPPORT_OPENGL_ARB 0x2010 341 | #define WGL_DOUBLE_BUFFER_ARB 0x2011 342 | #define WGL_STEREO_ARB 0x2012 343 | #define WGL_PIXEL_TYPE_ARB 0x2013 344 | #define WGL_COLOR_BITS_ARB 0x2014 345 | #define WGL_RED_BITS_ARB 0x2015 346 | #define WGL_RED_SHIFT_ARB 0x2016 347 | #define WGL_GREEN_BITS_ARB 0x2017 348 | #define WGL_GREEN_SHIFT_ARB 0x2018 349 | #define WGL_BLUE_BITS_ARB 0x2019 350 | #define WGL_BLUE_SHIFT_ARB 0x201A 351 | #define WGL_ALPHA_BITS_ARB 0x201B 352 | #define WGL_ALPHA_SHIFT_ARB 0x201C 353 | #define WGL_ACCUM_BITS_ARB 0x201D 354 | #define WGL_ACCUM_RED_BITS_ARB 0x201E 355 | #define WGL_ACCUM_GREEN_BITS_ARB 0x201F 356 | #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 357 | #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 358 | #define WGL_DEPTH_BITS_ARB 0x2022 359 | #define WGL_STENCIL_BITS_ARB 0x2023 360 | #define WGL_AUX_BUFFERS_ARB 0x2024 361 | #define WGL_NO_ACCELERATION_ARB 0x2025 362 | #define WGL_GENERIC_ACCELERATION_ARB 0x2026 363 | #define WGL_FULL_ACCELERATION_ARB 0x2027 364 | #define WGL_SWAP_EXCHANGE_ARB 0x2028 365 | #define WGL_SWAP_COPY_ARB 0x2029 366 | #define WGL_SWAP_UNDEFINED_ARB 0x202A 367 | #define WGL_TYPE_RGBA_ARB 0x202B 368 | #define WGL_TYPE_COLORINDEX_ARB 0x202C 369 | #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 370 | #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 371 | #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 372 | #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A 373 | #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B 374 | 375 | typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 376 | typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); 377 | typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); 378 | 379 | #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) 380 | #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) 381 | #define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) 382 | 383 | #define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) 384 | 385 | #endif /* WGL_ARB_pixel_format */ 386 | 387 | /* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ 388 | 389 | #ifndef WGL_ARB_pixel_format_float 390 | #define WGL_ARB_pixel_format_float 1 391 | 392 | #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 393 | 394 | #define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) 395 | 396 | #endif /* WGL_ARB_pixel_format_float */ 397 | 398 | /* ------------------------- WGL_ARB_render_texture ------------------------ */ 399 | 400 | #ifndef WGL_ARB_render_texture 401 | #define WGL_ARB_render_texture 1 402 | 403 | #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 404 | #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 405 | #define WGL_TEXTURE_FORMAT_ARB 0x2072 406 | #define WGL_TEXTURE_TARGET_ARB 0x2073 407 | #define WGL_MIPMAP_TEXTURE_ARB 0x2074 408 | #define WGL_TEXTURE_RGB_ARB 0x2075 409 | #define WGL_TEXTURE_RGBA_ARB 0x2076 410 | #define WGL_NO_TEXTURE_ARB 0x2077 411 | #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 412 | #define WGL_TEXTURE_1D_ARB 0x2079 413 | #define WGL_TEXTURE_2D_ARB 0x207A 414 | #define WGL_MIPMAP_LEVEL_ARB 0x207B 415 | #define WGL_CUBE_MAP_FACE_ARB 0x207C 416 | #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D 417 | #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E 418 | #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F 419 | #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 420 | #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 421 | #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 422 | #define WGL_FRONT_LEFT_ARB 0x2083 423 | #define WGL_FRONT_RIGHT_ARB 0x2084 424 | #define WGL_BACK_LEFT_ARB 0x2085 425 | #define WGL_BACK_RIGHT_ARB 0x2086 426 | #define WGL_AUX0_ARB 0x2087 427 | #define WGL_AUX1_ARB 0x2088 428 | #define WGL_AUX2_ARB 0x2089 429 | #define WGL_AUX3_ARB 0x208A 430 | #define WGL_AUX4_ARB 0x208B 431 | #define WGL_AUX5_ARB 0x208C 432 | #define WGL_AUX6_ARB 0x208D 433 | #define WGL_AUX7_ARB 0x208E 434 | #define WGL_AUX8_ARB 0x208F 435 | #define WGL_AUX9_ARB 0x2090 436 | 437 | typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 438 | typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); 439 | typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); 440 | 441 | #define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) 442 | #define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) 443 | #define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) 444 | 445 | #define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) 446 | 447 | #endif /* WGL_ARB_render_texture */ 448 | 449 | /* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ 450 | 451 | #ifndef WGL_ATI_pixel_format_float 452 | #define WGL_ATI_pixel_format_float 1 453 | 454 | #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 455 | #define GL_RGBA_FLOAT_MODE_ATI 0x8820 456 | #define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 457 | 458 | #define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) 459 | 460 | #endif /* WGL_ATI_pixel_format_float */ 461 | 462 | /* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ 463 | 464 | #ifndef WGL_ATI_render_texture_rectangle 465 | #define WGL_ATI_render_texture_rectangle 1 466 | 467 | #define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 468 | 469 | #define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) 470 | 471 | #endif /* WGL_ATI_render_texture_rectangle */ 472 | 473 | /* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ 474 | 475 | #ifndef WGL_EXT_create_context_es2_profile 476 | #define WGL_EXT_create_context_es2_profile 1 477 | 478 | #define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 479 | 480 | #define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) 481 | 482 | #endif /* WGL_EXT_create_context_es2_profile */ 483 | 484 | /* ------------------- WGL_EXT_create_context_es_profile ------------------- */ 485 | 486 | #ifndef WGL_EXT_create_context_es_profile 487 | #define WGL_EXT_create_context_es_profile 1 488 | 489 | #define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 490 | 491 | #define WGLEW_EXT_create_context_es_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es_profile) 492 | 493 | #endif /* WGL_EXT_create_context_es_profile */ 494 | 495 | /* -------------------------- WGL_EXT_depth_float -------------------------- */ 496 | 497 | #ifndef WGL_EXT_depth_float 498 | #define WGL_EXT_depth_float 1 499 | 500 | #define WGL_DEPTH_FLOAT_EXT 0x2040 501 | 502 | #define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) 503 | 504 | #endif /* WGL_EXT_depth_float */ 505 | 506 | /* ---------------------- WGL_EXT_display_color_table ---------------------- */ 507 | 508 | #ifndef WGL_EXT_display_color_table 509 | #define WGL_EXT_display_color_table 1 510 | 511 | typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); 512 | typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); 513 | typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); 514 | typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); 515 | 516 | #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) 517 | #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) 518 | #define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) 519 | #define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) 520 | 521 | #define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) 522 | 523 | #endif /* WGL_EXT_display_color_table */ 524 | 525 | /* ----------------------- WGL_EXT_extensions_string ----------------------- */ 526 | 527 | #ifndef WGL_EXT_extensions_string 528 | #define WGL_EXT_extensions_string 1 529 | 530 | typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); 531 | 532 | #define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) 533 | 534 | #define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) 535 | 536 | #endif /* WGL_EXT_extensions_string */ 537 | 538 | /* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ 539 | 540 | #ifndef WGL_EXT_framebuffer_sRGB 541 | #define WGL_EXT_framebuffer_sRGB 1 542 | 543 | #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 544 | 545 | #define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) 546 | 547 | #endif /* WGL_EXT_framebuffer_sRGB */ 548 | 549 | /* ----------------------- WGL_EXT_make_current_read ----------------------- */ 550 | 551 | #ifndef WGL_EXT_make_current_read 552 | #define WGL_EXT_make_current_read 1 553 | 554 | #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 555 | 556 | typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); 557 | typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 558 | 559 | #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) 560 | #define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) 561 | 562 | #define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) 563 | 564 | #endif /* WGL_EXT_make_current_read */ 565 | 566 | /* -------------------------- WGL_EXT_multisample -------------------------- */ 567 | 568 | #ifndef WGL_EXT_multisample 569 | #define WGL_EXT_multisample 1 570 | 571 | #define WGL_SAMPLE_BUFFERS_EXT 0x2041 572 | #define WGL_SAMPLES_EXT 0x2042 573 | 574 | #define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) 575 | 576 | #endif /* WGL_EXT_multisample */ 577 | 578 | /* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ 579 | 580 | #ifndef WGL_EXT_pbuffer 581 | #define WGL_EXT_pbuffer 1 582 | 583 | #define WGL_DRAW_TO_PBUFFER_EXT 0x202D 584 | #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E 585 | #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F 586 | #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 587 | #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 588 | #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 589 | #define WGL_PBUFFER_LARGEST_EXT 0x2033 590 | #define WGL_PBUFFER_WIDTH_EXT 0x2034 591 | #define WGL_PBUFFER_HEIGHT_EXT 0x2035 592 | 593 | DECLARE_HANDLE(HPBUFFEREXT); 594 | 595 | typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); 596 | typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); 597 | typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); 598 | typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); 599 | typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); 600 | 601 | #define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) 602 | #define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) 603 | #define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) 604 | #define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) 605 | #define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) 606 | 607 | #define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) 608 | 609 | #endif /* WGL_EXT_pbuffer */ 610 | 611 | /* -------------------------- WGL_EXT_pixel_format ------------------------- */ 612 | 613 | #ifndef WGL_EXT_pixel_format 614 | #define WGL_EXT_pixel_format 1 615 | 616 | #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 617 | #define WGL_DRAW_TO_WINDOW_EXT 0x2001 618 | #define WGL_DRAW_TO_BITMAP_EXT 0x2002 619 | #define WGL_ACCELERATION_EXT 0x2003 620 | #define WGL_NEED_PALETTE_EXT 0x2004 621 | #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 622 | #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 623 | #define WGL_SWAP_METHOD_EXT 0x2007 624 | #define WGL_NUMBER_OVERLAYS_EXT 0x2008 625 | #define WGL_NUMBER_UNDERLAYS_EXT 0x2009 626 | #define WGL_TRANSPARENT_EXT 0x200A 627 | #define WGL_TRANSPARENT_VALUE_EXT 0x200B 628 | #define WGL_SHARE_DEPTH_EXT 0x200C 629 | #define WGL_SHARE_STENCIL_EXT 0x200D 630 | #define WGL_SHARE_ACCUM_EXT 0x200E 631 | #define WGL_SUPPORT_GDI_EXT 0x200F 632 | #define WGL_SUPPORT_OPENGL_EXT 0x2010 633 | #define WGL_DOUBLE_BUFFER_EXT 0x2011 634 | #define WGL_STEREO_EXT 0x2012 635 | #define WGL_PIXEL_TYPE_EXT 0x2013 636 | #define WGL_COLOR_BITS_EXT 0x2014 637 | #define WGL_RED_BITS_EXT 0x2015 638 | #define WGL_RED_SHIFT_EXT 0x2016 639 | #define WGL_GREEN_BITS_EXT 0x2017 640 | #define WGL_GREEN_SHIFT_EXT 0x2018 641 | #define WGL_BLUE_BITS_EXT 0x2019 642 | #define WGL_BLUE_SHIFT_EXT 0x201A 643 | #define WGL_ALPHA_BITS_EXT 0x201B 644 | #define WGL_ALPHA_SHIFT_EXT 0x201C 645 | #define WGL_ACCUM_BITS_EXT 0x201D 646 | #define WGL_ACCUM_RED_BITS_EXT 0x201E 647 | #define WGL_ACCUM_GREEN_BITS_EXT 0x201F 648 | #define WGL_ACCUM_BLUE_BITS_EXT 0x2020 649 | #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 650 | #define WGL_DEPTH_BITS_EXT 0x2022 651 | #define WGL_STENCIL_BITS_EXT 0x2023 652 | #define WGL_AUX_BUFFERS_EXT 0x2024 653 | #define WGL_NO_ACCELERATION_EXT 0x2025 654 | #define WGL_GENERIC_ACCELERATION_EXT 0x2026 655 | #define WGL_FULL_ACCELERATION_EXT 0x2027 656 | #define WGL_SWAP_EXCHANGE_EXT 0x2028 657 | #define WGL_SWAP_COPY_EXT 0x2029 658 | #define WGL_SWAP_UNDEFINED_EXT 0x202A 659 | #define WGL_TYPE_RGBA_EXT 0x202B 660 | #define WGL_TYPE_COLORINDEX_EXT 0x202C 661 | 662 | typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); 663 | typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); 664 | typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); 665 | 666 | #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) 667 | #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) 668 | #define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) 669 | 670 | #define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) 671 | 672 | #endif /* WGL_EXT_pixel_format */ 673 | 674 | /* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ 675 | 676 | #ifndef WGL_EXT_pixel_format_packed_float 677 | #define WGL_EXT_pixel_format_packed_float 1 678 | 679 | #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 680 | 681 | #define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) 682 | 683 | #endif /* WGL_EXT_pixel_format_packed_float */ 684 | 685 | /* -------------------------- WGL_EXT_swap_control ------------------------- */ 686 | 687 | #ifndef WGL_EXT_swap_control 688 | #define WGL_EXT_swap_control 1 689 | 690 | typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); 691 | typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); 692 | 693 | #define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) 694 | #define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) 695 | 696 | #define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) 697 | 698 | #endif /* WGL_EXT_swap_control */ 699 | 700 | /* ----------------------- WGL_EXT_swap_control_tear ----------------------- */ 701 | 702 | #ifndef WGL_EXT_swap_control_tear 703 | #define WGL_EXT_swap_control_tear 1 704 | 705 | #define WGLEW_EXT_swap_control_tear WGLEW_GET_VAR(__WGLEW_EXT_swap_control_tear) 706 | 707 | #endif /* WGL_EXT_swap_control_tear */ 708 | 709 | /* --------------------- WGL_I3D_digital_video_control --------------------- */ 710 | 711 | #ifndef WGL_I3D_digital_video_control 712 | #define WGL_I3D_digital_video_control 1 713 | 714 | #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 715 | #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 716 | #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 717 | #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 718 | 719 | typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); 720 | typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); 721 | 722 | #define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) 723 | #define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) 724 | 725 | #define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) 726 | 727 | #endif /* WGL_I3D_digital_video_control */ 728 | 729 | /* ----------------------------- WGL_I3D_gamma ----------------------------- */ 730 | 731 | #ifndef WGL_I3D_gamma 732 | #define WGL_I3D_gamma 1 733 | 734 | #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E 735 | #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F 736 | 737 | typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); 738 | typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); 739 | typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); 740 | typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); 741 | 742 | #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) 743 | #define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) 744 | #define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) 745 | #define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) 746 | 747 | #define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) 748 | 749 | #endif /* WGL_I3D_gamma */ 750 | 751 | /* ---------------------------- WGL_I3D_genlock ---------------------------- */ 752 | 753 | #ifndef WGL_I3D_genlock 754 | #define WGL_I3D_genlock 1 755 | 756 | #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 757 | #define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 758 | #define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 759 | #define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 760 | #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 761 | #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 762 | #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A 763 | #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B 764 | #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C 765 | 766 | typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); 767 | typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); 768 | typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); 769 | typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); 770 | typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); 771 | typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); 772 | typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); 773 | typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); 774 | typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); 775 | typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); 776 | typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); 777 | typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); 778 | 779 | #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) 780 | #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) 781 | #define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) 782 | #define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) 783 | #define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) 784 | #define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) 785 | #define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) 786 | #define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) 787 | #define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) 788 | #define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) 789 | #define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) 790 | #define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) 791 | 792 | #define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) 793 | 794 | #endif /* WGL_I3D_genlock */ 795 | 796 | /* -------------------------- WGL_I3D_image_buffer ------------------------- */ 797 | 798 | #ifndef WGL_I3D_image_buffer 799 | #define WGL_I3D_image_buffer 1 800 | 801 | #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 802 | #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 803 | 804 | typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); 805 | typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); 806 | typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); 807 | typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); 808 | 809 | #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) 810 | #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) 811 | #define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) 812 | #define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) 813 | 814 | #define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) 815 | 816 | #endif /* WGL_I3D_image_buffer */ 817 | 818 | /* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ 819 | 820 | #ifndef WGL_I3D_swap_frame_lock 821 | #define WGL_I3D_swap_frame_lock 1 822 | 823 | typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); 824 | typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); 825 | typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); 826 | typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); 827 | 828 | #define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) 829 | #define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) 830 | #define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) 831 | #define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) 832 | 833 | #define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) 834 | 835 | #endif /* WGL_I3D_swap_frame_lock */ 836 | 837 | /* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ 838 | 839 | #ifndef WGL_I3D_swap_frame_usage 840 | #define WGL_I3D_swap_frame_usage 1 841 | 842 | typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); 843 | typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); 844 | typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); 845 | typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); 846 | 847 | #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) 848 | #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) 849 | #define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) 850 | #define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) 851 | 852 | #define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) 853 | 854 | #endif /* WGL_I3D_swap_frame_usage */ 855 | 856 | /* --------------------------- WGL_NV_DX_interop --------------------------- */ 857 | 858 | #ifndef WGL_NV_DX_interop 859 | #define WGL_NV_DX_interop 1 860 | 861 | #define WGL_ACCESS_READ_ONLY_NV 0x0000 862 | #define WGL_ACCESS_READ_WRITE_NV 0x0001 863 | #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 864 | 865 | typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); 866 | typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); 867 | typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); 868 | typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); 869 | typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); 870 | typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); 871 | typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); 872 | typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); 873 | 874 | #define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) 875 | #define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) 876 | #define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) 877 | #define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) 878 | #define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) 879 | #define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) 880 | #define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) 881 | #define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) 882 | 883 | #define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) 884 | 885 | #endif /* WGL_NV_DX_interop */ 886 | 887 | /* --------------------------- WGL_NV_DX_interop2 -------------------------- */ 888 | 889 | #ifndef WGL_NV_DX_interop2 890 | #define WGL_NV_DX_interop2 1 891 | 892 | #define WGLEW_NV_DX_interop2 WGLEW_GET_VAR(__WGLEW_NV_DX_interop2) 893 | 894 | #endif /* WGL_NV_DX_interop2 */ 895 | 896 | /* --------------------------- WGL_NV_copy_image --------------------------- */ 897 | 898 | #ifndef WGL_NV_copy_image 899 | #define WGL_NV_copy_image 1 900 | 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); 902 | 903 | #define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) 904 | 905 | #define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) 906 | 907 | #endif /* WGL_NV_copy_image */ 908 | 909 | /* -------------------------- WGL_NV_float_buffer -------------------------- */ 910 | 911 | #ifndef WGL_NV_float_buffer 912 | #define WGL_NV_float_buffer 1 913 | 914 | #define WGL_FLOAT_COMPONENTS_NV 0x20B0 915 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 916 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 917 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 918 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 919 | #define WGL_TEXTURE_FLOAT_R_NV 0x20B5 920 | #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 921 | #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 922 | #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 923 | 924 | #define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) 925 | 926 | #endif /* WGL_NV_float_buffer */ 927 | 928 | /* -------------------------- WGL_NV_gpu_affinity -------------------------- */ 929 | 930 | #ifndef WGL_NV_gpu_affinity 931 | #define WGL_NV_gpu_affinity 1 932 | 933 | #define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 934 | #define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 935 | 936 | DECLARE_HANDLE(HGPUNV); 937 | typedef struct _GPU_DEVICE { 938 | DWORD cb; 939 | CHAR DeviceName[32]; 940 | CHAR DeviceString[128]; 941 | DWORD Flags; 942 | RECT rcVirtualScreen; 943 | } GPU_DEVICE, *PGPU_DEVICE; 944 | 945 | typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); 946 | typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); 947 | typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); 948 | typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); 949 | typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); 950 | 951 | #define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) 952 | #define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) 953 | #define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) 954 | #define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) 955 | #define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) 956 | 957 | #define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) 958 | 959 | #endif /* WGL_NV_gpu_affinity */ 960 | 961 | /* ---------------------- WGL_NV_multisample_coverage ---------------------- */ 962 | 963 | #ifndef WGL_NV_multisample_coverage 964 | #define WGL_NV_multisample_coverage 1 965 | 966 | #define WGL_COVERAGE_SAMPLES_NV 0x2042 967 | #define WGL_COLOR_SAMPLES_NV 0x20B9 968 | 969 | #define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) 970 | 971 | #endif /* WGL_NV_multisample_coverage */ 972 | 973 | /* -------------------------- WGL_NV_present_video ------------------------- */ 974 | 975 | #ifndef WGL_NV_present_video 976 | #define WGL_NV_present_video 1 977 | 978 | #define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 979 | 980 | DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); 981 | 982 | typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); 983 | typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); 984 | typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); 985 | 986 | #define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) 987 | #define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) 988 | #define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) 989 | 990 | #define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) 991 | 992 | #endif /* WGL_NV_present_video */ 993 | 994 | /* ---------------------- WGL_NV_render_depth_texture ---------------------- */ 995 | 996 | #ifndef WGL_NV_render_depth_texture 997 | #define WGL_NV_render_depth_texture 1 998 | 999 | #define WGL_NO_TEXTURE_ARB 0x2077 1000 | #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 1001 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 1002 | #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 1003 | #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 1004 | #define WGL_DEPTH_COMPONENT_NV 0x20A7 1005 | 1006 | #define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) 1007 | 1008 | #endif /* WGL_NV_render_depth_texture */ 1009 | 1010 | /* -------------------- WGL_NV_render_texture_rectangle -------------------- */ 1011 | 1012 | #ifndef WGL_NV_render_texture_rectangle 1013 | #define WGL_NV_render_texture_rectangle 1 1014 | 1015 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 1016 | #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 1017 | #define WGL_TEXTURE_RECTANGLE_NV 0x20A2 1018 | 1019 | #define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) 1020 | 1021 | #endif /* WGL_NV_render_texture_rectangle */ 1022 | 1023 | /* --------------------------- WGL_NV_swap_group --------------------------- */ 1024 | 1025 | #ifndef WGL_NV_swap_group 1026 | #define WGL_NV_swap_group 1 1027 | 1028 | typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); 1029 | typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); 1030 | typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); 1031 | typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); 1032 | typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); 1033 | typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); 1034 | 1035 | #define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) 1036 | #define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) 1037 | #define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) 1038 | #define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) 1039 | #define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) 1040 | #define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) 1041 | 1042 | #define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) 1043 | 1044 | #endif /* WGL_NV_swap_group */ 1045 | 1046 | /* ----------------------- WGL_NV_vertex_array_range ----------------------- */ 1047 | 1048 | #ifndef WGL_NV_vertex_array_range 1049 | #define WGL_NV_vertex_array_range 1 1050 | 1051 | typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); 1052 | typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); 1053 | 1054 | #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) 1055 | #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) 1056 | 1057 | #define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) 1058 | 1059 | #endif /* WGL_NV_vertex_array_range */ 1060 | 1061 | /* -------------------------- WGL_NV_video_capture ------------------------- */ 1062 | 1063 | #ifndef WGL_NV_video_capture 1064 | #define WGL_NV_video_capture 1 1065 | 1066 | #define WGL_UNIQUE_ID_NV 0x20CE 1067 | #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF 1068 | 1069 | DECLARE_HANDLE(HVIDEOINPUTDEVICENV); 1070 | 1071 | typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); 1072 | typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); 1073 | typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); 1074 | typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); 1075 | typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); 1076 | 1077 | #define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) 1078 | #define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) 1079 | #define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) 1080 | #define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) 1081 | #define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) 1082 | 1083 | #define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) 1084 | 1085 | #endif /* WGL_NV_video_capture */ 1086 | 1087 | /* -------------------------- WGL_NV_video_output -------------------------- */ 1088 | 1089 | #ifndef WGL_NV_video_output 1090 | #define WGL_NV_video_output 1 1091 | 1092 | #define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 1093 | #define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 1094 | #define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 1095 | #define WGL_VIDEO_OUT_COLOR_NV 0x20C3 1096 | #define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 1097 | #define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 1098 | #define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 1099 | #define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 1100 | #define WGL_VIDEO_OUT_FRAME 0x20C8 1101 | #define WGL_VIDEO_OUT_FIELD_1 0x20C9 1102 | #define WGL_VIDEO_OUT_FIELD_2 0x20CA 1103 | #define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB 1104 | #define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC 1105 | 1106 | DECLARE_HANDLE(HPVIDEODEV); 1107 | 1108 | typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); 1109 | typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); 1110 | typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); 1111 | typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); 1112 | typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); 1113 | typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); 1114 | 1115 | #define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) 1116 | #define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) 1117 | #define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) 1118 | #define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) 1119 | #define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) 1120 | #define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) 1121 | 1122 | #define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) 1123 | 1124 | #endif /* WGL_NV_video_output */ 1125 | 1126 | /* -------------------------- WGL_OML_sync_control ------------------------- */ 1127 | 1128 | #ifndef WGL_OML_sync_control 1129 | #define WGL_OML_sync_control 1 1130 | 1131 | typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); 1132 | typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); 1133 | typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); 1134 | typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); 1135 | typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); 1136 | typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); 1137 | 1138 | #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) 1139 | #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) 1140 | #define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) 1141 | #define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) 1142 | #define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) 1143 | #define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) 1144 | 1145 | #define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) 1146 | 1147 | #endif /* WGL_OML_sync_control */ 1148 | 1149 | /* ------------------------------------------------------------------------- */ 1150 | 1151 | #ifdef GLEW_MX 1152 | #define WGLEW_FUN_EXPORT 1153 | #define WGLEW_VAR_EXPORT 1154 | #else 1155 | #define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT 1156 | #define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT 1157 | #endif /* GLEW_MX */ 1158 | 1159 | #ifdef GLEW_MX 1160 | struct WGLEWContextStruct 1161 | { 1162 | #endif /* GLEW_MX */ 1163 | 1164 | WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; 1165 | 1166 | WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; 1167 | WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; 1168 | WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; 1169 | WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; 1170 | WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; 1171 | WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; 1172 | WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; 1173 | WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; 1174 | WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; 1175 | 1176 | WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; 1177 | WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; 1178 | WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; 1179 | WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; 1180 | 1181 | WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; 1182 | 1183 | WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; 1184 | 1185 | WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; 1186 | WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; 1187 | 1188 | WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; 1189 | WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; 1190 | WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; 1191 | WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; 1192 | WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; 1193 | 1194 | WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; 1195 | WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; 1196 | WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; 1197 | 1198 | WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; 1199 | WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; 1200 | WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; 1201 | 1202 | WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; 1203 | WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; 1204 | WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; 1205 | WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; 1206 | 1207 | WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; 1208 | 1209 | WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; 1210 | WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; 1211 | 1212 | WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; 1213 | WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; 1214 | WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; 1215 | WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; 1216 | WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; 1217 | 1218 | WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; 1219 | WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; 1220 | WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; 1221 | 1222 | WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; 1223 | WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; 1224 | 1225 | WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; 1226 | WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; 1227 | 1228 | WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; 1229 | WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; 1230 | WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; 1231 | WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; 1232 | 1233 | WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; 1234 | WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; 1235 | WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; 1236 | WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; 1237 | WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; 1238 | WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; 1239 | WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; 1240 | WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; 1241 | WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; 1242 | WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; 1243 | WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; 1244 | WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; 1245 | 1246 | WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; 1247 | WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; 1248 | WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; 1249 | WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; 1250 | 1251 | WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; 1252 | WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; 1253 | WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; 1254 | WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; 1255 | 1256 | WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; 1257 | WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; 1258 | WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; 1259 | WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; 1260 | 1261 | WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; 1262 | WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; 1263 | WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; 1264 | WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; 1265 | WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; 1266 | WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; 1267 | WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; 1268 | WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; 1269 | 1270 | WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; 1271 | 1272 | WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; 1273 | WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; 1274 | WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; 1275 | WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; 1276 | WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; 1277 | 1278 | WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; 1279 | WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; 1280 | WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; 1281 | 1282 | WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; 1283 | WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; 1284 | WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; 1285 | WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; 1286 | WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; 1287 | WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; 1288 | 1289 | WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; 1290 | WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; 1291 | 1292 | WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; 1293 | WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; 1294 | WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; 1295 | WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; 1296 | WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; 1297 | 1298 | WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; 1299 | WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; 1300 | WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; 1301 | WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; 1302 | WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; 1303 | WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; 1304 | 1305 | WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; 1306 | WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; 1307 | WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; 1308 | WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; 1309 | WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; 1310 | WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; 1311 | WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample; 1312 | WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control; 1313 | WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; 1314 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; 1315 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; 1316 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; 1317 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; 1318 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; 1319 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; 1320 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read; 1321 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample; 1322 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer; 1323 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format; 1324 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; 1325 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture; 1326 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; 1327 | WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; 1328 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; 1329 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; 1330 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; 1331 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table; 1332 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string; 1333 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; 1334 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read; 1335 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample; 1336 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer; 1337 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format; 1338 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; 1339 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control; 1340 | WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear; 1341 | WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control; 1342 | WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma; 1343 | WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock; 1344 | WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer; 1345 | WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; 1346 | WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; 1347 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop; 1348 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2; 1349 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; 1350 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; 1351 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; 1352 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; 1353 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; 1354 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; 1355 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; 1356 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group; 1357 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; 1358 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; 1359 | WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; 1360 | WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; 1361 | 1362 | #ifdef GLEW_MX 1363 | }; /* WGLEWContextStruct */ 1364 | #endif /* GLEW_MX */ 1365 | 1366 | /* ------------------------------------------------------------------------- */ 1367 | 1368 | #ifdef GLEW_MX 1369 | 1370 | typedef struct WGLEWContextStruct WGLEWContext; 1371 | GLEWAPI GLenum GLEWAPIENTRY wglewContextInit (WGLEWContext *ctx); 1372 | GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx, const char *name); 1373 | 1374 | #define wglewInit() wglewContextInit(wglewGetContext()) 1375 | #define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) 1376 | 1377 | #define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) 1378 | #define WGLEW_GET_FUN(x) wglewGetContext()->x 1379 | 1380 | #else /* GLEW_MX */ 1381 | 1382 | #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) 1383 | #define WGLEW_GET_FUN(x) x 1384 | 1385 | GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); 1386 | 1387 | #endif /* GLEW_MX */ 1388 | 1389 | GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); 1390 | 1391 | #ifdef __cplusplus 1392 | } 1393 | #endif 1394 | 1395 | #undef GLEWAPI 1396 | 1397 | #endif /* __wglew_h__ */ 1398 | -------------------------------------------------------------------------------- /lib/glew32s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/halogenica/WGL_NV_DX/a917f0756870bdb8b7c5dc59bfa2980360c95144/lib/glew32s.lib --------------------------------------------------------------------------------