diff --git a/src/spice2x/cfg/screen_resize.cpp b/src/spice2x/cfg/screen_resize.cpp index c1102aa..2654a20 100644 --- a/src/spice2x/cfg/screen_resize.cpp +++ b/src/spice2x/cfg/screen_resize.cpp @@ -1,9 +1,11 @@ #include "screen_resize.h" +#include "avs/game.h" #include "external/rapidjson/document.h" #include "external/rapidjson/pointer.h" #include "external/rapidjson/prettywriter.h" #include "misc/eamuse.h" +#include "util/deferlog.h" #include "util/utils.h" #include "util/fileutils.h" #include "hooks/graphics/graphics.h" @@ -78,6 +80,21 @@ namespace cfg { root); load_bool_value(doc, root + "enable_screen_resize", this->enable_screen_resize); + if (this->enable_screen_resize) { + if (avs::game::is_model("KFC")) { + log_warning( + "ScreenResize", + "Image Resize feature enabled for SDVX; enabling this is known to significantly " + "lower framerate for songs with Live2D!"); + deferredlogs::defer_error_messages({ + "Image Resize + SDVX Live2D performance warning", + " Enabling Image Resize feature is known to have significant impact", + " on Live2D performance; you should disable it"}); + } else { + log_misc("ScreenResize", "enabled by config file"); + } + } + load_bool_value(doc, root + "enable_linear_filter", this->enable_linear_filter); for (size_t i = 0; i < std::size(this->scene_settings); i++) { auto& scene = this->scene_settings[i]; diff --git a/src/spice2x/launcher/options.cpp b/src/spice2x/launcher/options.cpp index 563cd3e..c530833 100644 --- a/src/spice2x/launcher/options.cpp +++ b/src/spice2x/launcher/options.cpp @@ -242,14 +242,16 @@ static const std::vector OPTION_DEFINITIONS = { }, { // FullscreenOrientationFlip - .title = "Full Screen Orientation Swap", + .title = "Full Screen Orientation Swap (EXPERIMENTAL)", .name = "forceresswap", .desc = "Allows you to play portrait games in in landscape (and vice versa) by transposing resolution and applying image scaling.\n\n" "Works great for some games, but can COMPLETELY BREAK other games - YMMV!\n\n" "Strongly consider combining this with -forceres option to render at monitor native resolution\n\n" - "WARNING: for SDVX, this messes with camera angle for note lanes, causing it to be zoomed out!", + "WARNING: for SDVX, this messes with camera angle for note lanes, causing it to be zoomed out, and causes performance issues " + "with Live2D!", .type = OptionType::Bool, + .hidden = true, .category = "Graphics (Full Screen)" }, { diff --git a/src/spice2x/overlay/windows/screen_resize.cpp b/src/spice2x/overlay/windows/screen_resize.cpp index 56643da..8b03994 100644 --- a/src/spice2x/overlay/windows/screen_resize.cpp +++ b/src/spice2x/overlay/windows/screen_resize.cpp @@ -100,6 +100,17 @@ namespace overlay::windows { } void ScreenResize::build_fullscreen_config() { + + if (avs::game::is_model("KFC")) { + ImGui::TextColored(ImVec4(1, 0.5f, 0.5f, 1.f), + "Warning: Enabling Image Resize will significantly\n" + "lower framerate for songs with Live2D!"); + } else { + ImGui::TextColored(ImVec4(1, 0.5f, 0.5f, 1.f), + "Warning: Some games are known to have significant\n" + "performance issues when Image Resize is enabled."); + } + // enable checkbox ImGui::Checkbox("Enable", &cfg::SCREENRESIZE->enable_screen_resize); ImGui::SameLine(); @@ -176,7 +187,6 @@ namespace overlay::windows { return; } - ImGui::TextUnformatted("Warning: may cause some games to crash."); ImGui::BeginDisabled(graphics_window_change_crashes_game()); if (ImGui::Combo( "Window Style",