11 GHPL_WIN_DECLARE_HANDLE(
HMENU);
12 GHPL_WIN_DECLARE_HANDLE(
HCURSOR);
13 GHPL_WIN_DECLARE_HANDLE(
HBRUSH);
15 GHPL_WIN_DECLARE_HANDLE(
HGDIOBJ);
16 GHPL_WIN_DECLARE_HANDLE(
HGLRC);
17 GHPL_WIN_DECLARE_HANDLE(
HDC);
19 enum PFDPixelType : BYTE
22 PFD_TYPE_COLORINDEX_ = 1,
24 static_assert(
sizeof(PFDPixelType) ==
sizeof(BYTE) &&
alignof(PFDPixelType) ==
alignof(BYTE));
26 enum PFDLayerType : BYTE
29 PFD_OVERLAY_PLANE_ = 1,
30 PFD_UNDERLAY_PLANE_ = BYTE(-1),
32 static_assert(
sizeof(PFD_UNDERLAY_PLANE_) ==
sizeof(BYTE) &&
alignof(PFDLayerType) ==
alignof(BYTE));
36 PFD_DOUBLEBUFFER_ = 0x1,
38 PFD_DRAW_TO_WINDOW_ = 0x4,
39 PFD_DRAW_TO_BITMAP_ = 0x8,
40 PFD_SUPPORT_GDI_ = 0x10,
41 PFD_SUPPORT_OPENGL_ = 0x20,
42 PFD_GENERIC_FORMAT_ = 0x40,
43 PFD_NEED_PALETTE_ = 0x80,
44 PFD_NEED_SYSTEM_PALETTE_ = 0x100,
45 PFD_SWAP_EXCHANGE_ = 0x200,
46 PFD_SWAP_COPY_ = 0x400,
47 PFD_SWAP_LAYER_BUFFERS_ = 0x800,
48 PFD_GENERIC_ACCELERATED_ = 0x1000,
49 PFD_SUPPORT_DIRECTDRAW_ = 0x2000,
50 PFD_DIRECT3D_ACCELERATED_ = 0x4000,
51 PFD_SUPPORT_COMPOSITION_ = 0x8000,
52 PFD_DEPTH_DONTCARE_ = 0x20000000,
53 PFD_DOUBLEBUFFER_DONTCARE_ = 0x40000000,
54 PFD_STEREO_DONTCARE_ = 0x80000000,
57 typedef struct tagPIXELFORMATDESCRIPTOR {
61 PFDPixelType iPixelType;
79 PFDLayerType iLayerType;
84 } PIXELFORMATDESCRIPTOR, * LPPIXELFORMATDESCRIPTOR;
94 HOLLOW_BRUSH_ = NULL_BRUSH_,
99 ANSI_FIXED_FONT_ = 11,
102 DEVICE_DEFAULT_FONT_ = 14,
103 DEFAULT_PALETTE_ = 15,
104 SYSTEM_FIXED_FONT_ = 16,
105 DEFAULT_GUI_FONT_ = 17,
113 GHPL_WINAPI
int GHPL_APIENTRY ChoosePixelFormat(
HDC hdc,
const PIXELFORMATDESCRIPTOR*
ppfd);
114 GHPL_WINAPI BOOL GHPL_APIENTRY SetPixelFormat(
HDC hdc,
int iPixelFormat,
const PIXELFORMATDESCRIPTOR*
ppfd);
115 GHPL_WINAPI BOOL GHPL_APIENTRY SwapBuffers(
HDC hdc);
116 GHPL_WINAPI
int GHPL_APIENTRY GetPixelFormat(
HDC hdc);
119 GHPL_WINAPI
HGLRC GHPL_APIENTRY wglCreateContext(
HDC hdc);
120 GHPL_WINAPI
HGLRC GHPL_APIENTRY wglGetCurrentContext();
121 GHPL_WINAPI BOOL GHPL_APIENTRY wglDeleteContext(
HGLRC context);
122 GHPL_WINAPI
HDC GHPL_APIENTRY wglGetCurrentDC();
124 GHPL_WINAPI PROC GHPL_APIENTRY wglGetProcAddress(LPCSTR
lpszProc);
129 static constexpr intptr_t DPI_AWARENESS_CONTEXT_UNAWARE = (-1);
130 static constexpr intptr_t DPI_AWARENESS_CONTEXT_SYSTEM_AWARE = (-2);
131 static constexpr intptr_t DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = (-3);
132 static constexpr intptr_t DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 = (-4);
133 static constexpr intptr_t DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED = (-5);
135 GHPL_WINAPI
int GHPL_APIENTRY SetProcessDpiAwarenessContext(
intptr_t value);
136 GHPL_WINAPI UINT GHPL_APIENTRY GetDpiForSystem(
VOID);
137 GHPL_WINAPI UINT GHPL_APIENTRY GetDpiForWindow(
HWND hwnd);
constexpr auto bit_count
Equal to the number of bits in the type.
void VOID
typedef char TCHAR, * PTCHAR; typedef const TCHAR* LPCTSTR;