|  | @ -1136,17 +1136,17 @@ Image GetClipboardImage(void) | 
														
													
														
															
																|  |  | // Show mouse cursor |  |  | // Show mouse cursor | 
														
													
														
															
																|  |  | void ShowCursor(void) |  |  | void ShowCursor(void) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | CORE.Input.Mouse.cursorHidden = false; |  |  |  | 
														
													
														
															
																|  |  | SetCursor(LoadCursorW(NULL, (LPCWSTR)IDC_ARROW)); |  |  | SetCursor(LoadCursorW(NULL, (LPCWSTR)IDC_ARROW)); | 
														
													
														
															
																|  |  |  |  |  | CORE.Input.Mouse.cursorHidden = false; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // Hides mouse cursor |  |  | // Hides mouse cursor | 
														
													
														
															
																|  |  | void HideCursor(void) |  |  | void HideCursor(void) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | // NOTE: we use SetCursor instead of ShowCursor because it makes it easy |  |  |  | 
														
													
														
															
																|  |  | // to only hide the cursor while it's inside the client area |  |  |  | 
														
													
														
															
																|  |  | CORE.Input.Mouse.cursorHidden = true; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // NOTE: We use SetCursor() instead of ShowCursor() because | 
														
													
														
															
																|  |  |  |  |  | // it makes it easy to only hide the cursor while it's inside the client area | 
														
													
														
															
																|  |  | SetCursor(NULL); |  |  | SetCursor(NULL); | 
														
													
														
															
																|  |  |  |  |  | CORE.Input.Mouse.cursorHidden = true; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // Enables cursor (unlock cursor) |  |  | // Enables cursor (unlock cursor) | 
														
													
												
													
														
															
																|  | @ -1346,7 +1346,7 @@ void PollInputEvents(void) | 
														
													
														
															
																|  |  | //---------------------------------------------------------------------------------- |  |  | //---------------------------------------------------------------------------------- | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // Initialize modern OpenGL context |  |  | // Initialize modern OpenGL context | 
														
													
														
															
																|  |  | // NOTE: We need to create a dummy context first to query requried extensions |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // NOTE: We need to create a dummy context first to query required extensions | 
														
													
														
															
																|  |  | HGLRC InitOpenGL(HWND hwnd, HDC hdc) |  |  | HGLRC InitOpenGL(HWND hwnd, HDC hdc) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | // First, create a dummy context to get WGL extensions |  |  | // First, create a dummy context to get WGL extensions | 
														
													
												
													
														
															
																|  | @ -1621,8 +1621,7 @@ int InitPlatform(void) | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | CORE.Window.ready = true; |  |  | CORE.Window.ready = true; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // TODO: Should this function be called before or after drawing context is created? --> After swInit() called! |  |  |  | 
														
													
														
															
																|  |  | //UpdateWindowSize(UPDATE_WINDOW_FIRST, platform.hwnd, platform.appScreenWidth, platform.appScreenHeight, platform.desiredFlags); |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // Update flags (in case of deferred state change required) | 
														
													
														
															
																|  |  | UpdateFlags(platform.hwnd, platform.desiredFlags, platform.appScreenWidth, platform.appScreenHeight); |  |  | UpdateFlags(platform.hwnd, platform.desiredFlags, platform.appScreenWidth, platform.appScreenHeight); | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | CORE.Window.render.width = CORE.Window.screen.width; |  |  | CORE.Window.render.width = CORE.Window.screen.width; | 
														
													
												
													
														
															
																|  | @ -1887,6 +1886,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lpara | 
														
													
														
															
																|  |  | } break; |  |  | } break; | 
														
													
														
															
																|  |  | case WM_SETCURSOR: |  |  | case WM_SETCURSOR: | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  |  |  |  | // Called when mouse moves, enters/leaves window... | 
														
													
														
															
																|  |  | if (LOWORD(lparam) == HTCLIENT) |  |  | if (LOWORD(lparam) == HTCLIENT) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | SetCursor(CORE.Input.Mouse.cursorHidden? NULL : LoadCursorW(NULL, (LPCWSTR)IDC_ARROW)); |  |  | SetCursor(CORE.Input.Mouse.cursorHidden? NULL : LoadCursorW(NULL, (LPCWSTR)IDC_ARROW)); | 
														
													
												
													
														
															
																|  | @ -1972,6 +1972,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lpara | 
														
													
														
															
																|  |  | return result; |  |  | return result; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // Handle keyboard input event | 
														
													
														
															
																|  |  | static void HandleKey(WPARAM wparam, LPARAM lparam, char state) |  |  | static void HandleKey(WPARAM wparam, LPARAM lparam, char state) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | KeyboardKey key = GetKeyFromWparam(wparam); |  |  | KeyboardKey key = GetKeyFromWparam(wparam); | 
														
													
												
													
														
															
																|  | @ -1991,12 +1992,15 @@ static void HandleKey(WPARAM wparam, LPARAM lparam, char state) | 
														
													
														
															
																|  |  | // TODO: Add key to the queue as well? |  |  | // TODO: Add key to the queue as well? | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // Handle mouse button input event | 
														
													
														
															
																|  |  | static void HandleMouseButton(int button, char state) |  |  | static void HandleMouseButton(int button, char state) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  |  |  |  | // Register current mouse button state | 
														
													
														
															
																|  |  | CORE.Input.Mouse.currentButtonState[button] = state; |  |  | CORE.Input.Mouse.currentButtonState[button] = state; | 
														
													
														
															
																|  |  | CORE.Input.Touch.currentTouchState[button] = state; |  |  | CORE.Input.Touch.currentTouchState[button] = state; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // Handle raw input event | 
														
													
														
															
																|  |  | static void HandleRawInput(LPARAM lparam) |  |  | static void HandleRawInput(LPARAM lparam) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | RAWINPUT input = { 0 }; |  |  | RAWINPUT input = { 0 }; | 
														
													
												
													
														
															
																|  | @ -2020,6 +2024,7 @@ static void HandleRawInput(LPARAM lparam) | 
														
													
														
															
																|  |  | //if (CORE.Input.Mouse.currentPosition.y != 0) abort(); |  |  | //if (CORE.Input.Mouse.currentPosition.y != 0) abort(); | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // Handle window resizing event | 
														
													
														
															
																|  |  | static void HandleWindowResize(HWND hwnd, int *width, int *height) |  |  | static void HandleWindowResize(HWND hwnd, int *width, int *height) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | if (CORE.Window.flags & FLAG_WINDOW_MINIMIZED) return; |  |  | if (CORE.Window.flags & FLAG_WINDOW_MINIMIZED) return; | 
														
													
												
													
														
															
																|  | @ -2051,10 +2056,8 @@ static void HandleWindowResize(HWND hwnd, int *width, int *height) | 
														
													
														
															
																|  |  | *height = screenHeight; |  |  | *height = screenHeight; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | CORE.Window.screenScale = MatrixScale( |  |  |  | 
														
													
														
															
																|  |  | (float)CORE.Window.render.width/CORE.Window.screen.width, |  |  |  | 
														
													
														
															
																|  |  | (float)CORE.Window.render.height/CORE.Window.screen.height, |  |  |  | 
														
													
														
															
																|  |  | 1.0f); |  |  |  | 
														
													
														
															
																|  |  |  |  |  | CORE.Window.screenScale = MatrixScale( (float)CORE.Window.render.width/CORE.Window.screen.width, | 
														
													
														
															
																|  |  |  |  |  | (float)CORE.Window.render.height/CORE.Window.screen.height, 1.0f); | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // Update window style |  |  | // Update window style | 
														
													
												
													
														
															
																|  |  |