#313 Add partial support for American Girls Dress Designer (Fullscreen only, no upscaling)

This commit is contained in:
FunkyFr3sh 2024-05-22 23:51:48 +02:00
parent 504c2eb1c5
commit 0cf0533654
4 changed files with 27 additions and 3 deletions

View file

@ -17,6 +17,7 @@ void util_toggle_maximize();
void util_toggle_fullscreen();
BOOL util_unadjust_window_rect(LPRECT prc, DWORD dwStyle, BOOL fMenu, DWORD dwExStyle);
void util_set_window_rect(int x, int y, int width, int height, UINT flags);
BOOL CALLBACK util_enum_thread_wnd_proc(HWND hwnd, LPARAM lParam);
BOOL CALLBACK util_enum_child_proc(HWND hwnd, LPARAM lParam);
BOOL util_detect_low_res_screen();

View file

@ -387,6 +387,10 @@ static void cfg_create_ini()
"guard_lines=300\n"
"minfps=-2\n"
"\n"
"; American Girls Dress Designer\n"
"[Dress Designer]\n"
"fake_mode=640x480x32\n"
"\n"
"; Age of Wonders 2\n"
"[AoW2]\n"
"resolutions=2\n"

View file

@ -1166,12 +1166,23 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
{
dbg_dump_scl_flags(dwFlags);
if (hwnd == NULL)
if (!hwnd)
{
return DD_OK;
if (!g_ddraw.hwnd && g_config.fake_mode[0])
{
EnumThreadWindows(GetCurrentThreadId(), (WNDENUMPROC)util_enum_thread_wnd_proc, 0);
hwnd = g_ddraw.hwnd;
if (!hwnd)
return DD_OK;
}
else
{
return DD_OK;
}
}
if (g_ddraw.hwnd == NULL)
if (!g_ddraw.hwnd)
{
g_ddraw.hwnd = hwnd;
}

View file

@ -551,6 +551,14 @@ void util_set_window_rect(int x, int y, int width, int height, UINT flags)
}
}
BOOL CALLBACK util_enum_thread_wnd_proc(HWND hwnd, LPARAM lParam)
{
if (!g_ddraw.hwnd)
g_ddraw.hwnd = hwnd;
return FALSE;
}
BOOL CALLBACK util_enum_child_proc(HWND hwnd, LPARAM lparam)
{
IDirectDrawSurfaceImpl* this = (IDirectDrawSurfaceImpl*)lparam;