23 #include <lunchbox/os.h> 24 #include <lunchbox/types.h> 38 # include <X11/Xlib.h> 40 # ifndef GLX_SAMPLE_BUFFERS 41 # define GLX_SAMPLE_BUFFERS 100000 44 # define GLX_SAMPLES 100001 50 # define _WIN32_WINNT 0x501 // XP 55 # ifdef __LP64__ // AGL is not supported in 64 bit 58 # define Cursor CGLCursor // avoid name clash with X11 'Cursor' 59 # include <ApplicationServices/ApplicationServices.h> 61 # include <Carbon/Carbon.h> 62 # define EQ_AGL_MENUBARHEIGHT 22 63 # ifdef check // undo global namespace pollution (AssertMacros.h) 72 # ifndef WGL_NV_gpu_affinity 73 # define WGL_NV_gpu_affinity 1 74 DECLARE_HANDLE(HGPUNV);
75 typedef struct _GPU_DEVICE {
78 CHAR DeviceString[128];
81 } GPU_DEVICE, *PGPU_DEVICE;
83 # ifdef WGL_WGLEXT_PROTOTYPES 84 extern BOOL WINAPI wglEnumGpusNV (UINT iIndex, HGPUNV *hGpu);
85 extern BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iIndex, PGPU_DEVICE pGpuDevice);
86 extern HDC WINAPI wglCreateAffinityDCNV (
const HGPUNV *pGpuList);
87 extern BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iIndex, HGPUNV *hGpu);
88 extern BOOL WINAPI wglDeleteDCNV (HDC hAffinityDC);
90 typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iIndex, HGPUNV *hGpu);
91 typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iIndex, PGPU_DEVICE pGpuDevice);
92 typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (
const HGPUNV *pGpuList);
93 typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iIndex, HGPUNV *hGpu);
94 typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hAffinityDC);
95 # endif // WGL_WGLEXT_PROTOTYPES 96 # endif // WGL_NV_gpu_affinity 98 #ifndef WGL_ARB_pbuffer 99 # define WGL_ARB_pbuffer 1 101 # define WGL_DRAW_TO_PBUFFER_ARB 0x202D 102 # define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E 103 # define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F 104 # define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 105 # define WGL_PBUFFER_LARGEST_ARB 0x2033 106 # define WGL_PBUFFER_WIDTH_ARB 0x2034 107 # define WGL_PBUFFER_HEIGHT_ARB 0x2035 108 # define WGL_PBUFFER_LOST_ARB 0x2036 110 DECLARE_HANDLE(HPBUFFERARB);
112 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC,
int iPixelFormat,
int iWidth,
int iHeight,
const int* piAttribList);
113 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
114 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
115 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer,
int iAttribute,
int* piValue);
116 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
118 # define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) 119 # define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) 120 # define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) 121 # define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) 122 # define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) 124 # define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) 132 typedef void* HPBUFFERARB;
134 # define PFNWGLDELETEDCNVPROC void* Includes OpenGL and GLEW headers.