@@ -7,7 +7,10 @@ WindowWin32* s_mainWindow = NULL;
7
7
8
8
LRESULT WINAPI WindowCallback ( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
9
9
{
10
- if (s_mainWindow == NULL ) return DefWindowProc ( hWnd, msg, wParam, lParam );
10
+ if (s_mainWindow == NULL || !s_mainWindow->parent ().initialized ()) return DefWindowProc ( hWnd, msg, wParam, lParam );
11
+
12
+ auto &parent = s_mainWindow->parent ();
13
+
11
14
switch ( msg )
12
15
{
13
16
case WM_SYSCOMMAND:
@@ -33,52 +36,49 @@ LRESULT WINAPI WindowCallback( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam
33
36
break ;
34
37
default :
35
38
UINT keyIndex = (UINT)wParam;
36
- s_mainWindow-> parent () .callback ().keyDown (s_mainWindow-> parent () .data (), (UINT)wParam);
37
- if (keyIndex < InputState::keyCount) s_mainWindow-> parent () .data ().input .keys [keyIndex] = true ;
39
+ parent.callback ().keyDown (parent.data (), (UINT)wParam);
40
+ if (keyIndex < InputState::keyCount) parent.data ().input .keys [keyIndex] = true ;
38
41
break ;
39
42
}
40
43
break ;
41
44
42
45
case WM_KEYUP:
43
- UINT keyIndex = (UINT)wParam;
44
- if (keyIndex < InputState::keyCount) s_mainWindow->parent ().data ().input .keys [keyIndex] = false ;
46
+ {
47
+ UINT keyIndex = (UINT)wParam;
48
+ if (keyIndex < InputState::keyCount) parent.data ().input .keys [keyIndex] = false ;
49
+ }
45
50
break ;
46
51
47
- /* case WM_LBUTTONDOWN:
48
- g_WndProcContext->SetMouseState(MouseButtonLeft, true);
52
+ case WM_SIZE:
53
+ parent.callback ().resize (parent.data ());
54
+ break ;
55
+
56
+ case WM_LBUTTONDOWN:
57
+ parent.data ().input .mouse .buttons [MouseButtonLeft] = true ;
49
58
break ;
50
59
51
60
case WM_LBUTTONUP:
52
- g_WndProcContext->SetMouseState( MouseButtonLeft, false) ;
61
+ parent. data (). input . mouse . buttons [ MouseButtonLeft] = false ;
53
62
break ;
54
63
55
64
case WM_RBUTTONDOWN:
56
- g_WndProcContext->SetMouseState( MouseButtonRight, true) ;
65
+ parent. data (). input . mouse . buttons [ MouseButtonRight] = true ;
57
66
break ;
58
67
59
68
case WM_RBUTTONUP:
60
- g_WndProcContext->SetMouseState(MouseButtonRight, false);
61
- break;
62
-
63
- case WM_MBUTTONDOWN:
64
- g_WndProcContext->SetMouseState(MouseButtonMiddle, true);
65
- break;
66
-
67
- case WM_MBUTTONUP:
68
- g_WndProcContext->SetMouseState(MouseButtonMiddle, false);
69
+ parent.data ().input .mouse .buttons [MouseButtonRight] = false ;
69
70
break ;
70
71
71
72
case WM_MOUSEMOVE:
72
73
{
73
- POINTS P = MAKEPOINTS(lParam);
74
- Vec2i NewPos(P.x, P.y);
75
- g_WndProcContext->UpdateMousePos(NewPos);
74
+ POINTS p = MAKEPOINTS (lParam);
75
+ parent.data ().input .mouse .pos = vec2i (p.x , p.y );
76
76
}
77
77
break ;
78
78
79
79
case WM_MOUSEWHEEL:
80
- g_WndProcContext->UpdateWheelState( GET_WHEEL_DELTA_WPARAM(wParam) );
81
- break;*/
80
+ parent. data (). input . mouse . mouseWheel += GET_WHEEL_DELTA_WPARAM (wParam);
81
+ break ;
82
82
}
83
83
84
84
return DefWindowProc ( hWnd, msg, wParam, lParam );
0 commit comments