1 | #include <windows.h> |
---|
2 | |
---|
3 | #include "Daodan.h" |
---|
4 | #include "Daodan_Win32.h" |
---|
5 | |
---|
6 | #include "Oni.h" |
---|
7 | |
---|
8 | short ONICALL DDrPlatform_Initialize(ONtPlatformData *PlatformData) |
---|
9 | { |
---|
10 | WNDCLASSEX WndClass; |
---|
11 | RECT Rect; |
---|
12 | const int Width = 640, Height = 480; |
---|
13 | |
---|
14 | PlatformData->Instance = g_Instance; |
---|
15 | |
---|
16 | WndClass.cbSize = sizeof(WndClass); |
---|
17 | WndClass.style = WS_OVERLAPPED | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | CS_VREDRAW | CS_HREDRAW | CS_OWNDC; |
---|
18 | WndClass.cbClsExtra = 0; |
---|
19 | WndClass.cbWndExtra = 0; |
---|
20 | WndClass.hInstance = PlatformData->Instance; |
---|
21 | WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); |
---|
22 | WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); |
---|
23 | WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); |
---|
24 | WndClass.hbrBackground = GetStockObject(BLACK_BRUSH); |
---|
25 | WndClass.lpszMenuName = NULL; |
---|
26 | WndClass.lpszClassName = "ONI "; |
---|
27 | WndClass.lpfnWndProc = ONrPlatform_WindowProc; |
---|
28 | |
---|
29 | RegisterClassEx(&WndClass); |
---|
30 | |
---|
31 | Rect.left = (GetSystemMetrics(SM_CXSCREEN) / 2) - (Width / 2); |
---|
32 | Rect.top = (GetSystemMetrics(SM_CYSCREEN) / 2) - (Height / 2); |
---|
33 | Rect.right = Rect.left + Width; |
---|
34 | Rect.bottom = Rect.top + Height; |
---|
35 | AdjustWindowRect(&Rect, WndClass.style, FALSE); |
---|
36 | |
---|
37 | PlatformData->Window = CreateWindowEx(0, "ONI ", "ONI ", WS_POPUP, Rect.left, Rect.top, Rect.right - Rect.left, Rect.bottom - Rect.top, NULL, NULL, PlatformData->Instance, NULL); |
---|
38 | ShowWindow(PlatformData->Window, SW_SHOWNORMAL); |
---|
39 | UpdateWindow(PlatformData->Window); |
---|
40 | |
---|
41 | ShowCursor(FALSE); |
---|
42 | |
---|
43 | return 0; |
---|
44 | } |
---|