mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 08:37:41 +00:00
Create win32_get_window
This commit is contained in:
parent
f9e4ec72c4
commit
922b679769
@ -685,3 +685,8 @@ bool win32_has_focus(void)
|
||||
|
||||
return GetFocus() == g_hwnd;
|
||||
}
|
||||
|
||||
HWND win32_get_window(void)
|
||||
{
|
||||
return g_hwnd;
|
||||
}
|
||||
|
@ -75,6 +75,8 @@ bool win32_get_metrics(void *data,
|
||||
|
||||
void win32_show_cursor(bool state);
|
||||
|
||||
HWND win32_get_window(void);
|
||||
|
||||
bool win32_has_focus(void);
|
||||
|
||||
void win32_check_window(bool *quit,
|
||||
|
@ -161,7 +161,7 @@ void d3d_make_d3dpp(void *data,
|
||||
#endif
|
||||
info->rgb32 ? D3DFMT_X8R8G8B8 : D3DFMT_LIN_R5G6B5;
|
||||
#else
|
||||
d3dpp->hDeviceWindow = g_hwnd;
|
||||
d3dpp->hDeviceWindow = win32_get_window();
|
||||
d3dpp->BackBufferFormat = !d3dpp->Windowed ? D3DFMT_X8R8G8B8 : D3DFMT_UNKNOWN;
|
||||
#endif
|
||||
|
||||
@ -247,7 +247,7 @@ static bool d3d_init_base(void *data, const video_info_t *info)
|
||||
if (FAILED(d3d->d3d_err = d3d->g_pD3D->CreateDevice(
|
||||
d3d->cur_mon_id,
|
||||
D3DDEVTYPE_HAL,
|
||||
g_hwnd,
|
||||
win32_get_window(),
|
||||
D3DCREATE_HARDWARE_VERTEXPROCESSING,
|
||||
&d3dpp,
|
||||
&d3d->dev)))
|
||||
@ -258,7 +258,7 @@ static bool d3d_init_base(void *data, const video_info_t *info)
|
||||
if (FAILED(d3d->d3d_err = d3d->g_pD3D->CreateDevice(
|
||||
d3d->cur_mon_id,
|
||||
D3DDEVTYPE_HAL,
|
||||
g_hwnd,
|
||||
win32_get_window(),
|
||||
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
|
||||
&d3dpp,
|
||||
&d3d->dev)))
|
||||
@ -647,20 +647,22 @@ static bool d3d_construct(d3d_video_t *d3d,
|
||||
|
||||
if (!info->fullscreen || windowed_full)
|
||||
{
|
||||
HWND window = win32_get_window();
|
||||
|
||||
if (!info->fullscreen && settings->ui.menubar_enable)
|
||||
{
|
||||
RECT rc_temp = {0, 0, (LONG)win_height, 0x7FFF};
|
||||
|
||||
SetMenu(g_hwnd, LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU)));
|
||||
SendMessage(g_hwnd, WM_NCCALCSIZE, FALSE, (LPARAM)&rc_temp);
|
||||
SetMenu(window, LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU)));
|
||||
SendMessage(window, WM_NCCALCSIZE, FALSE, (LPARAM)&rc_temp);
|
||||
g_resize_height = win_height += rc_temp.top + rect.top;
|
||||
SetWindowPos(g_hwnd, NULL, 0, 0, win_width, win_height, SWP_NOMOVE);
|
||||
SetWindowPos(window, NULL, 0, 0, win_width, win_height, SWP_NOMOVE);
|
||||
}
|
||||
|
||||
ShowWindow(g_hwnd, SW_RESTORE);
|
||||
UpdateWindow(g_hwnd);
|
||||
SetForegroundWindow(g_hwnd);
|
||||
SetFocus(g_hwnd);
|
||||
ShowWindow(window, SW_RESTORE);
|
||||
UpdateWindow(window);
|
||||
SetForegroundWindow(window);
|
||||
SetFocus(window);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -819,7 +821,8 @@ error:
|
||||
|
||||
static void d3d_free(void *data)
|
||||
{
|
||||
d3d_video_t *d3d = (d3d_video_t*)data;
|
||||
d3d_video_t *d3d = (d3d_video_t*)data;
|
||||
HWND window = win32_get_window();
|
||||
|
||||
if (!d3d)
|
||||
return;
|
||||
@ -844,7 +847,7 @@ static void d3d_free(void *data)
|
||||
d3d->g_pD3D->Release();
|
||||
|
||||
#ifdef HAVE_MONITOR
|
||||
win32_monitor_from_window(g_hwnd, true);
|
||||
win32_monitor_from_window(window, true);
|
||||
#endif
|
||||
|
||||
if (d3d)
|
||||
@ -1468,6 +1471,7 @@ static bool d3d_frame(void *data, const void *frame,
|
||||
LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)d3d->dev;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
HWND window = win32_get_window();
|
||||
const font_renderer_t *font_ctx = driver->font_osd_driver;
|
||||
|
||||
(void)i;
|
||||
@ -1482,7 +1486,7 @@ static bool d3d_frame(void *data, const void *frame,
|
||||
|
||||
#ifndef _XBOX
|
||||
/* We cannot recover in fullscreen. */
|
||||
if (d3d->needs_restore && IsIconic(g_hwnd))
|
||||
if (d3d->needs_restore && IsIconic(window))
|
||||
return true;
|
||||
#endif
|
||||
if (d3d->needs_restore && !d3d_restore(d3d))
|
||||
|
@ -84,14 +84,13 @@ static void gfx_ctx_d3d_update_title(void *data)
|
||||
char buf[128] = {0};
|
||||
char buffer_fps[128] = {0};
|
||||
settings_t *settings = config_get_ptr();
|
||||
HWND window = win32_get_window();
|
||||
|
||||
if (video_monitor_get_fps(buf, sizeof(buf),
|
||||
buffer_fps, sizeof(buffer_fps)))
|
||||
{
|
||||
#ifndef _XBOX
|
||||
d3d_video_t *d3d = (d3d_video_t*)data;
|
||||
|
||||
SetWindowText(g_hwnd, buf);
|
||||
SetWindowText(window, buf);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -266,12 +266,13 @@ static void gfx_ctx_wgl_update_window_title(void *data)
|
||||
char buf[128] = {0};
|
||||
char buf_fps[128] = {0};
|
||||
settings_t *settings = config_get_ptr();
|
||||
HWND window = win32_get_window();
|
||||
|
||||
(void)data;
|
||||
|
||||
if (video_monitor_get_fps(buf, sizeof(buf),
|
||||
buf_fps, sizeof(buf_fps)))
|
||||
SetWindowText(g_hwnd, buf);
|
||||
SetWindowText(window, buf);
|
||||
if (settings->fps_show)
|
||||
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||
}
|
||||
@ -279,8 +280,9 @@ static void gfx_ctx_wgl_update_window_title(void *data)
|
||||
static void gfx_ctx_wgl_get_video_size(void *data, unsigned *width, unsigned *height)
|
||||
{
|
||||
(void)data;
|
||||
HWND window = win32_get_window();
|
||||
|
||||
if (!g_hwnd)
|
||||
if (!window)
|
||||
{
|
||||
unsigned mon_id;
|
||||
RECT mon_rect;
|
||||
@ -342,6 +344,7 @@ error:
|
||||
static void gfx_ctx_wgl_destroy(void *data)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
HWND window = win32_get_window();
|
||||
|
||||
(void)data;
|
||||
|
||||
@ -360,15 +363,15 @@ static void gfx_ctx_wgl_destroy(void *data)
|
||||
}
|
||||
}
|
||||
|
||||
if (g_hwnd && g_hdc)
|
||||
if (window && g_hdc)
|
||||
{
|
||||
ReleaseDC(g_hwnd, g_hdc);
|
||||
ReleaseDC(window, g_hdc);
|
||||
g_hdc = NULL;
|
||||
}
|
||||
|
||||
if (g_hwnd)
|
||||
if (window)
|
||||
{
|
||||
win32_monitor_from_window(g_hwnd, true);
|
||||
win32_monitor_from_window(window, true);
|
||||
UnregisterClass("RetroArch", GetModuleHandle(NULL));
|
||||
g_hwnd = NULL;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user