diff --git a/src/Config.cpp b/src/Config.cpp index d209b1bb..bb3da5f3 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -176,6 +176,8 @@ const char* Config::hotkeyIniName(u32 _idx) return "hkHdTexToggle"; case Config::HotKey::hkTexCoordBounds: return "hkTexCoordBounds"; + case Config::HotKey::hkNativeResTexrects: + return "hkNativeResTexrects"; case Config::HotKey::hkVsync: return "hkVsync"; case Config::HotKey::hkFBEmulation: diff --git a/src/Config.h b/src/Config.h index fb4c42fa..30e7b1b3 100644 --- a/src/Config.h +++ b/src/Config.h @@ -221,6 +221,7 @@ struct Config hkHdTexReload, hkHdTexToggle, hkTexCoordBounds, + hkNativeResTexrects, hkVsync, hkFBEmulation, hkN64DepthCompare, diff --git a/src/GLideNUI/ConfigDialog.cpp b/src/GLideNUI/ConfigDialog.cpp index 230f08d6..ed46908f 100644 --- a/src/GLideNUI/ConfigDialog.cpp +++ b/src/GLideNUI/ConfigDialog.cpp @@ -82,6 +82,8 @@ QString ConfigDialog::_hotkeyDescription(quint32 _idx) const return tr("Toggle HD textures"); case Config::HotKey::hkTexCoordBounds: return tr("Toggle texcoords bounds"); + case Config::HotKey::hkNativeResTexrects: + return tr("Toggle 2D texrects in native resolution"); case Config::HotKey::hkVsync: return tr("Toggle VSync"); case Config::HotKey::hkFBEmulation: diff --git a/src/VI.cpp b/src/VI.cpp index cb3597a2..b3b88ad9 100644 --- a/src/VI.cpp +++ b/src/VI.cpp @@ -138,6 +138,20 @@ static void checkHotkeys() config.graphics2D.enableTexCoordBounds = !config.graphics2D.enableTexCoordBounds; } + if (osal_is_key_pressed(config.hotkeys.keys[Config::hkNativeResTexrects], 0x0001)) { + static u32 s_nativeResTexrects = Config::NativeResTexrectsMode::ntOptimized; + if (config.graphics2D.enableNativeResTexrects != Config::NativeResTexrectsMode::ntDisable) { + s_nativeResTexrects = config.graphics2D.enableNativeResTexrects; + config.graphics2D.enableNativeResTexrects = Config::NativeResTexrectsMode::ntDisable; + } + else + config.graphics2D.enableNativeResTexrects = s_nativeResTexrects; + if (config.graphics2D.enableNativeResTexrects == Config::NativeResTexrectsMode::ntDisable) + dwnd().getDrawer().showMessage("Disable 2D texrects in native resolution\n", Milliseconds(1000)); + else + dwnd().getDrawer().showMessage("Enable 2D texrects in native resolution\n", Milliseconds(1000)); + } + if (osal_is_key_pressed(config.hotkeys.keys[Config::hkVsync], 0x0001)) { config.video.verticalSync = !config.video.verticalSync; dwnd().stop(); diff --git a/src/mupenplus/Config_mupenplus.cpp b/src/mupenplus/Config_mupenplus.cpp index 16e313ff..29f6df49 100644 --- a/src/mupenplus/Config_mupenplus.cpp +++ b/src/mupenplus/Config_mupenplus.cpp @@ -31,6 +31,8 @@ const char* _hotkeyDescription(u32 _idx) return "Hotkey: toggle HD textures"; case Config::HotKey::hkTexCoordBounds: return "Hotkey: toggle texcoords bounds"; + case Config::HotKey::hkNativeResTexrects: + return "Hotkey: toggle 2D texrects in native resolution"; case Config::HotKey::hkVsync: return "Hotkey: toggle VSync"; case Config::HotKey::hkFBEmulation: