1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

Suppress the DXPrimaryEmulation -DisableMaxWindowedMode shim

This commit is contained in:
narzoul 2023-07-13 20:56:51 +02:00
parent dbb2a0c4f1
commit 4a40d97fe9

View File

@ -35,6 +35,8 @@ HRESULT WINAPI SetAppCompatData(DWORD, DWORD);
namespace
{
const DWORD DISABLE_MAX_WINDOWED_MODE = 12;
template <typename Result, typename... Params>
using FuncPtr = Result(WINAPI*)(Params...);
@ -162,6 +164,16 @@ namespace
LOG_INFO << "Environment variable " << var << " = \"" << Dll::getEnvVar(var) << '"';
}
HRESULT WINAPI setAppCompatData(DWORD param1, DWORD param2)
{
LOG_FUNC("SetAppCompatData", param1, param2);
if (DISABLE_MAX_WINDOWED_MODE == param1)
{
return LOG_RESULT(S_OK);
}
return LOG_RESULT(CALL_ORIG_PROC(SetAppCompatData)(param1, param2));
}
void setDpiAwareness()
{
auto dpiAwareness = Config::dpiAwareness.get();
@ -294,6 +306,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
Dll::g_jmpTargetProcs = Dll::g_origProcs;
VISIT_PUBLIC_DDRAW_PROCS(HOOK_DDRAW_PROC);
Compat::hookFunction(reinterpret_cast<void*&>(Dll::g_origProcs.SetAppCompatData),
static_cast<decltype(&SetAppCompatData)>(&setAppCompatData), "SetAppCompatData");
Input::installHooks();
Win32::MemoryManagement::installHooks();
@ -310,8 +324,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
if (Config::Settings::FullscreenMode::EXCLUSIVE == Config::fullscreenMode.get())
{
const DWORD disableMaxWindowedMode = 12;
CALL_ORIG_PROC(SetAppCompatData)(disableMaxWindowedMode, 0);
CALL_ORIG_PROC(SetAppCompatData)(DISABLE_MAX_WINDOWED_MODE, 1);
}
if (Config::Settings::DesktopResolution::DESKTOP != Config::desktopResolution.get())