mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
(D3D) Start fleshing out WinProc
This commit is contained in:
parent
49f8df1f01
commit
f76d9f255a
@ -73,18 +73,21 @@ static void d3d_resize(void *data, unsigned new_width, unsigned new_height)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_WINDOW
|
#ifdef HAVE_WINDOW
|
||||||
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message,
|
LRESULT CALLBACK WindowProc(HWND hwnd, UINT message,
|
||||||
WPARAM wParam, LPARAM lParam)
|
WPARAM wparam, LPARAM lparam)
|
||||||
{
|
{
|
||||||
driver_t *driver = driver_get_ptr();
|
driver_t *driver = driver_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
switch (message)
|
switch (message)
|
||||||
{
|
{
|
||||||
case WM_CREATE:
|
case WM_SYSCOMMAND:
|
||||||
|
/* Prevent screensavers, etc, while running. */
|
||||||
|
switch (wparam)
|
||||||
{
|
{
|
||||||
LPCREATESTRUCT p_cs = (LPCREATESTRUCT)lParam;
|
case SC_SCREENSAVE:
|
||||||
curD3D = (d3d_video_t*)p_cs->lpCreateParams;
|
case SC_MONITORPOWER:
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_CHAR:
|
case WM_CHAR:
|
||||||
@ -92,15 +95,27 @@ LRESULT CALLBACK WindowProc(HWND hWnd, UINT message,
|
|||||||
case WM_KEYUP:
|
case WM_KEYUP:
|
||||||
case WM_SYSKEYUP:
|
case WM_SYSKEYUP:
|
||||||
case WM_SYSKEYDOWN:
|
case WM_SYSKEYDOWN:
|
||||||
return win32_handle_keyboard_event(hWnd, message, wParam, lParam);
|
return win32_handle_keyboard_event(hwnd, message, wparam, lparam);
|
||||||
|
|
||||||
|
case WM_CREATE:
|
||||||
|
{
|
||||||
|
LPCREATESTRUCT p_cs = (LPCREATESTRUCT)lparam;
|
||||||
|
curD3D = (d3d_video_t*)p_cs->lpCreateParams;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WM_CLOSE:
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
|
case WM_QUIT:
|
||||||
d3d_quit = true;
|
d3d_quit = true;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
|
/* Do not send resize message if we minimize. */
|
||||||
|
if (wparam != SIZE_MAXHIDE && wparam != SIZE_MINIMIZED)
|
||||||
{
|
{
|
||||||
unsigned new_width = LOWORD(lParam);
|
unsigned new_width = LOWORD(lparam);
|
||||||
unsigned new_height = HIWORD(lParam);
|
unsigned new_height = HIWORD(lparam);
|
||||||
|
|
||||||
if (new_width && new_height)
|
if (new_width && new_height)
|
||||||
d3d_resize(driver->video_data, new_width, new_height);
|
d3d_resize(driver->video_data, new_width, new_height);
|
||||||
@ -111,14 +126,14 @@ LRESULT CALLBACK WindowProc(HWND hWnd, UINT message,
|
|||||||
{
|
{
|
||||||
d3d_video_t *d3d = (d3d_video_t*)driver->video_data;
|
d3d_video_t *d3d = (d3d_video_t*)driver->video_data;
|
||||||
HWND d3dr = d3d->hWnd;
|
HWND d3dr = d3d->hWnd;
|
||||||
LRESULT ret = win32_menu_loop(d3dr, wParam);
|
LRESULT ret = win32_menu_loop(d3dr, wparam);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dinput_handle_message(dinput, message, wParam, lParam))
|
if (dinput_handle_message(dinput, message, wparam, lparam))
|
||||||
return 0;
|
return 0;
|
||||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
return DefWindowProc(hwnd, message, wparam, lparam);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user