authorgravatar for jakubshark@gmail.comJakub <jakubshark@gmail.com> 2020-04-14 09:07:57-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-04-14 16:20:48-04:00
log1e23a3cd9162df098a302f22d70f2ac50b5eae21
treee249c3d87bcdd7b5cd1a839468c3e9d9262a90bd
parent022a71ca7d68d970418a93a5c5b3bec9e1fdf9f2

Added gdi32.zig and More user32 definitions


4 files changed, 184 insertions(+), 1 deletions(-)

lib/std/os/windows.zig+1
...@@ -19,6 +19,7 @@ pub const psapi = @import("windows/psapi.zig");...@@ -19,6 +19,7 @@ pub const psapi = @import("windows/psapi.zig");
19pub const shell32 = @import("windows/shell32.zig");19pub const shell32 = @import("windows/shell32.zig");
20pub const user32 = @import("windows/user32.zig");20pub const user32 = @import("windows/user32.zig");
21pub const ws2_32 = @import("windows/ws2_32.zig");21pub const ws2_32 = @import("windows/ws2_32.zig");
22pub const gdi32 = @import("windows/gdi32.zig");
2223
23pub usingnamespace @import("windows/bits.zig");24pub usingnamespace @import("windows/bits.zig");
2425
lib/std/os/windows/bits.zig+2
...@@ -34,6 +34,8 @@ pub const HINSTANCE = *@OpaqueType();...@@ -34,6 +34,8 @@ pub const HINSTANCE = *@OpaqueType();
34pub const HMENU = *@OpaqueType();34pub const HMENU = *@OpaqueType();
35pub const HMODULE = *@OpaqueType();35pub const HMODULE = *@OpaqueType();
36pub const HWND = *@OpaqueType();36pub const HWND = *@OpaqueType();
37pub const HDC = *@OpaqueType();
38pub const HGLRC = *@OpaqueType();
37pub const FARPROC = *@OpaqueType();39pub const FARPROC = *@OpaqueType();
38pub const INT = c_int;40pub const INT = c_int;
39pub const LPBYTE = *BYTE;41pub const LPBYTE = *BYTE;
lib/std/os/windows/gdi32.zig created+45
...@@ -0,0 +1,45 @@
1usingnamespace @import("bits.zig");
2
3pub const PIXELFORMATDESCRIPTOR = extern struct {
4 nSize: WORD = @sizeOf(PIXELFORMATDESCRIPTOR),
5 nVersion: WORD,
6 dwFlags: DWORD,
7 iPixelType: BYTE,
8 cColorBits: BYTE,
9 cRedBits: BYTE,
10 cRedShift: BYTE,
11 cGreenBits: BYTE,
12 cGreenShift: BYTE,
13 cBlueBits: BYTE,
14 cBlueShift: BYTE,
15 cAlphaBits: BYTE,
16 cAlphaShift: BYTE,
17 cAccumBits: BYTE,
18 cAccumRedBits: BYTE,
19 cAccumGreenBits: BYTE,
20 cAccumBlueBits: BYTE,
21 cAccumAlphaBits: BYTE,
22 cDepthBits: BYTE,
23 cStencilBits: BYTE,
24 cAuxBuffers: BYTE,
25 iLayerType: BYTE,
26 bReserved: BYTE,
27 dwLayerMask: DWORD,
28 dwVisibleMask: DWORD,
29 dwDamageMask: DWORD,
30};
31
32pub extern "gdi32" fn SetPixelFormat(
33 hdc: ?HDC,
34 format: i32,
35 ppfd: ?*const PIXELFORMATDESCRIPTOR,
36) callconv(.Stdcall) bool;
37
38pub extern "gdi32" fn ChoosePixelFormat(
39 hdc: ?HDC,
40 ppfd: ?*const PIXELFORMATDESCRIPTOR,
41) callconv(.Stdcall) i32;
42
43pub extern "gdi32" fn SwapBuffers(hdc: ?HDC) callconv(.Stdcall) bool;
44pub extern "gdi32" fn wglCreateContext(hdc: ?HDC) callconv(.Stdcall) ?HGLRC;
45pub extern "gdi32" fn wglMakeCurrent(hdc: ?HDC, hglrc: ?HGLRC) callconv(.Stdcall) bool;
\ No newline at end of file
lib/std/os/windows/user32.zig+136-1
...@@ -1,5 +1,104 @@...@@ -1,5 +1,104 @@
1usingnamespace @import("bits.zig");1usingnamespace @import("bits.zig");
22
3// PM
4pub const PM_REMOVE = 0x0001;
5pub const PM_NOREMOVE = 0x0000;
6pub const PM_NOYIELD = 0x0002;
7
8// WM
9pub const WM_NULL = 0x0000;
10pub const WM_CREATE = 0x0001;
11pub const WM_DESTROY = 0x0002;
12pub const WM_MOVE = 0x0003;
13pub const WM_SIZE = 0x0005;
14
15pub const WM_ACTIVATE = 0x0006;
16pub const WM_PAINT = 0x000F;
17pub const WM_CLOSE = 0x0010;
18pub const WM_QUIT = 0x0012;
19pub const WM_SETFOCUS = 0x0007;
20
21pub const WM_KILLFOCUS = 0x0008;
22pub const WM_ENABLE = 0x000A;
23pub const WM_SETREDRAW = 0x000B;
24
25pub const WM_SYSCOLORCHANGE = 0x0015;
26pub const WM_SHOWWINDOW = 0x0018;
27
28pub const WM_WINDOWPOSCHANGING = 0x0046;
29pub const WM_WINDOWPOSCHANGED = 0x0047;
30pub const WM_POWER = 0x0048;
31
32pub const WM_CONTEXTMENU = 0x007B;
33pub const WM_STYLECHANGING = 0x007C;
34pub const WM_STYLECHANGED = 0x007D;
35pub const WM_DISPLAYCHANGE = 0x007E;
36pub const WM_GETICON = 0x007F;
37pub const WM_SETICON = 0x0080;
38
39pub const WM_INPUT_DEVICE_CHANGE = 0x00fe;
40pub const WM_INPUT = 0x00FF;
41pub const WM_KEYFIRST = 0x0100;
42pub const WM_KEYDOWN = 0x0100;
43pub const WM_KEYUP = 0x0101;
44pub const WM_CHAR = 0x0102;
45pub const WM_DEADCHAR = 0x0103;
46pub const WM_SYSKEYDOWN = 0x0104;
47pub const WM_SYSKEYUP = 0x0105;
48pub const WM_SYSCHAR = 0x0106;
49pub const WM_SYSDEADCHAR = 0x0107;
50pub const WM_UNICHAR = 0x0109;
51pub const WM_KEYLAST = 0x0109;
52
53pub const WM_COMMAND = 0x0111;
54pub const WM_SYSCOMMAND = 0x0112;
55pub const WM_TIMER = 0x0113;
56
57pub const WM_MOUSEFIRST = 0x0200;
58pub const WM_MOUSEMOVE = 0x0200;
59pub const WM_LBUTTONDOWN = 0x0201;
60pub const WM_LBUTTONUP = 0x0202;
61pub const WM_LBUTTONDBLCLK = 0x0203;
62pub const WM_RBUTTONDOWN = 0x0204;
63pub const WM_RBUTTONUP = 0x0205;
64pub const WM_RBUTTONDBLCLK = 0x0206;
65pub const WM_MBUTTONDOWN = 0x0207;
66pub const WM_MBUTTONUP = 0x0208;
67pub const WM_MBUTTONDBLCLK = 0x0209;
68pub const WM_MOUSEWHEEL = 0x020A;
69pub const WM_XBUTTONDOWN = 0x020B;
70pub const WM_XBUTTONUP = 0x020C;
71pub const WM_XBUTTONDBLCLK = 0x020D;
72
73// WA
74pub const WA_INACTIVE = 0;
75pub const WA_ACTIVE = 0x0006;
76pub const WM_ACTIVATE = 0x0006;
77
78// WS
79pub const WS_OVERLAPPED = 0x00000000;
80pub const WS_CAPTION = 0x00C00000;
81pub const WS_SYSMENU = 0x00080000;
82pub const WS_THICKFRAME = 0x00040000;
83pub const WS_MINIMIZEBOX = 0x00020000;
84pub const WS_MAXIMIZEBOX = 0x00010000;
85
86// PFD
87pub const PFD_DRAW_TO_WINDOW = 0x00000004;
88pub const PFD_SUPPORT_OPENGL = 0x00000020;
89pub const PFD_DOUBLEBUFFER = 0x00000001;
90pub const PFD_MAIN_PLANE = 0;
91pub const PFD_TYPE_RGBA = 0;
92
93// CS
94pub const CS_HREDRAW = 0x0002;
95pub const CS_VREDRAW = 0x0001;
96pub const CS_OWNDC = 0x0020;
97
98// SW
99pub const SW_HIDE = 0;
100pub const SW_SHOW = 5;
101
3pub const WNDPROC = fn (HWND, UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;102pub const WNDPROC = fn (HWND, UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
4103
5pub const WNDCLASSEXA = extern struct {104pub const WNDCLASSEXA = extern struct {
...@@ -17,6 +116,20 @@ pub const WNDCLASSEXA = extern struct {...@@ -17,6 +116,20 @@ pub const WNDCLASSEXA = extern struct {
17 hIconSm: ?HICON,116 hIconSm: ?HICON,
18};117};
19118
119pub const POINT = extern struct {
120 x: c_long, y: c_long
121};
122
123pub const MSG = extern struct {
124 hWnd: ?HWND,
125 message: UINT,
126 wParam: WPARAM,
127 lParam: LPARAM,
128 time: DWORD,
129 pt: POINT,
130 lPrivate: DWORD,
131};
132
20pub extern "user32" fn CreateWindowExA(133pub extern "user32" fn CreateWindowExA(
21 dwExStyle: DWORD,134 dwExStyle: DWORD,
22 lpClassName: LPCSTR,135 lpClassName: LPCSTR,
...@@ -32,6 +145,28 @@ pub extern "user32" fn CreateWindowExA(...@@ -32,6 +145,28 @@ pub extern "user32" fn CreateWindowExA(
32 lpParam: ?LPVOID,145 lpParam: ?LPVOID,
33) callconv(.Stdcall) ?HWND;146) callconv(.Stdcall) ?HWND;
34147
148pub extern "user32" fn RegisterClassExA(*const WNDCLASSEXA) callconv(.Stdcall) c_ushort;
35pub extern "user32" fn DefWindowProcA(HWND, Msg: UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;149pub extern "user32" fn DefWindowProcA(HWND, Msg: UINT, WPARAM, LPARAM) callconv(.Stdcall) LRESULT;
150pub extern "user32" fn GetModuleHandleA(lpModuleName: ?LPCSTR) callconv(.Stdcall) HMODULE;
151pub extern "user32" fn ShowWindow(hWnd: ?HWND, nCmdShow: i32) callconv(.Stdcall) bool;
152pub extern "user32" fn UpdateWindow(hWnd: ?HWND) callconv(.Stdcall) bool;
153pub extern "user32" fn GetDC(hWnd: ?HWND) callconv(.Stdcall) ?HDC;
36154
37pub extern "user32" fn RegisterClassExA(*const WNDCLASSEXA) callconv(.Stdcall) c_ushort;155pub extern "user32" fn PeekMessageA(
156 lpMsg: ?*MSG,
157 hWnd: ?HWND,
158 wMsgFilterMin: UINT,
159 wMsgFilterMax: UINT,
160 wRemoveMsg: UINT,
161) callconv(.Stdcall) bool;
162
163pub extern "user32" fn GetMessageA(
164 lpMsg: ?*MSG,
165 hWnd: ?HWND,
166 wMsgFilterMin: UINT,
167 wMsgFilterMax: UINT,
168) callconv(.Stdcall) bool;
169
170pub extern "user32" fn TranslateMessage(lpMsg: *const MSG) callconv(.Stdcall) bool;
171pub extern "user32" fn DispatchMessageA(lpMsg: *const MSG) callconv(.Stdcall) LRESULT;
172pub extern "user32" fn PostQuitMessage(nExitCode: i32) callconv(.Stdcall) void;
\ No newline at end of file