From 7b1ba55e72cb8fa8ea27dfc059cdac7ed43a88ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 4 Feb 2026 00:00:38 +0100 Subject: [PATCH] Prevent touch controls from fading away while being held. Fixes #20531 --- Common/Common.vcxproj | 6 ---- Core/Core.vcxproj | 6 ---- GPU/GPU.vcxproj | 6 ---- UI/EmuScreen.cpp | 2 -- UI/GamepadEmu.cpp | 57 +++++++++++++++++++++++---------- UI/GamepadEmu.h | 26 +++++++++++---- UI/TouchControlLayoutScreen.cpp | 5 +-- UI/UI.vcxproj | 8 +---- Windows/PPSSPP.vcxproj | 6 ---- android/jni/Locals.mk | 2 +- ext/zlib/zlib.vcxproj | 6 ---- headless/Headless.vcxproj | 8 +---- unittest/UnitTests.vcxproj | 6 ---- 13 files changed, 65 insertions(+), 79 deletions(-) diff --git a/Common/Common.vcxproj b/Common/Common.vcxproj index a7e6188d4f..4c2587a40a 100644 --- a/Common/Common.vcxproj +++ b/Common/Common.vcxproj @@ -110,7 +110,6 @@ StreamingSIMDExtensions2 Precise true - false false ProgramDatabase stdcpp17 @@ -138,7 +137,6 @@ Precise false true - false false ProgramDatabase stdcpp17 @@ -166,7 +164,6 @@ Precise false true - false false ProgramDatabase stdcpp17 @@ -198,7 +195,6 @@ ../ext/OpenXR-SDK/include;../ext/glew;../ext/snappy;../ext/glslang;../ext/libpng17;../ext;../ext/zlib;..;../ext/zstd/lib Speed true - false MultiThreaded ProgramDatabase stdcpp17 @@ -233,7 +229,6 @@ Speed false true - false MultiThreaded true ProgramDatabase @@ -269,7 +264,6 @@ Speed false true - false MultiThreaded true ProgramDatabase diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj index 91d35383e7..68866c0808 100644 --- a/Core/Core.vcxproj +++ b/Core/Core.vcxproj @@ -114,7 +114,6 @@ Precise true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -142,7 +141,6 @@ false true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -170,7 +168,6 @@ false true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -202,7 +199,6 @@ Speed MultiThreaded true - false ProgramDatabase stdcpp17 @@ -236,7 +232,6 @@ false true RC_CLIENT_SUPPORTS_RAINTEGRATION;USING_WIN_UI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WITH_UPNP;WIN32;_ARCH_64=1;_M_X64=1;_LIB;NDEBUG;_UNICODE;UNICODE;MINIUPNP_STATICLIB;ARMIPS_USE_STD_FILESYSTEM;%(PreprocessorDefinitions) - false MultiThreaded true ProgramDatabase @@ -271,7 +266,6 @@ false true USING_WIN_UI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WITH_UPNP;WIN32;_ARCH_64=1;_LIB;NDEBUG;_UNICODE;UNICODE;ARMIPS_USE_STD_FILESYSTEM;%(PreprocessorDefinitions) - false MultiThreaded true ProgramDatabase diff --git a/GPU/GPU.vcxproj b/GPU/GPU.vcxproj index aab1d12f9c..96206312cf 100644 --- a/GPU/GPU.vcxproj +++ b/GPU/GPU.vcxproj @@ -132,7 +132,6 @@ Precise true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -151,7 +150,6 @@ false true false - false _CRTDBG_MAP_ALLOC;USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_M_X64=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions) MultiThreadedDebug Common/DbgNew.h @@ -172,7 +170,6 @@ false true false - false _CRTDBG_MAP_ALLOC;USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions) MultiThreadedDebug Common/DbgNew.h @@ -196,7 +193,6 @@ USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_32=1;_M_IX86=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions) Speed true - false MultiThreaded ProgramDatabase stdcpp17 @@ -220,7 +216,6 @@ Speed false true - false USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_M_X64=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions) MultiThreaded true @@ -246,7 +241,6 @@ Speed false true - false USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions) MultiThreaded true diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index fed06667c6..03dac76a74 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -1616,8 +1616,6 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { return flags; // shouldn't really happen but I've seen a suspicious stack trace.. } - GamepadUpdateOpacity(); - ProcessQueuedVKeys(); const bool skipBufferEffects = g_Config.bSkipBufferEffects; diff --git a/UI/GamepadEmu.cpp b/UI/GamepadEmu.cpp index 4623abf722..29eb80962e 100644 --- a/UI/GamepadEmu.cpp +++ b/UI/GamepadEmu.cpp @@ -207,7 +207,7 @@ bool PSPButton::Touch(const TouchInput &input) { return retval; } -bool CustomButton::IsDown() { +bool CustomButton::IsDown() const { return (toggle_ && on_) || (!toggle_ && pointerDownMask_ != 0); } @@ -281,7 +281,7 @@ void CustomButton::Update() { } } -bool PSPButton::IsDown() { +bool PSPButton::IsDown() const { return (__CtrlPeekButtonsVisual() & pspButtonBit_) != 0; } @@ -430,7 +430,7 @@ void PSPDpad::Draw(UIContext &dc) { } PSPStick::PSPStick(ImageID bgImg, const char *key, ImageID stickImg, ImageID stickDownImg, int stick, float scale, UI::LayoutParams *layoutParams) - : GamepadComponent(key, layoutParams), dragPointerId_(-1), bgImg_(bgImg), stickImageIndex_(stickImg), stickDownImg_(stickDownImg), stick_(stick), scale_(scale), centerX_(-1), centerY_(-1) { + : GamepadComponent(key, layoutParams), bgImg_(bgImg), stickImageIndex_(stickImg), stickDownImg_(stickDownImg), stick_(stick), scale_(scale) { stick_size_ = 50; } @@ -900,12 +900,18 @@ void InitPadLayout(TouchControlConfig *config, DeviceOrientation orientation, fl UI::ViewGroup *CreatePadLayout(const TouchControlConfig &config, float xres, float yres, bool *pause, ControlMapper *controlMapper) { using namespace UI; + return new GamepadEmuView(config, xres, yres, pause, controlMapper, new UI::LayoutParams(UI::FILL_PARENT, UI::FILL_PARENT)); +} - AnchorLayout *root = new AnchorLayout(new LayoutParams(FILL_PARENT, FILL_PARENT)); +GamepadEmuView::GamepadEmuView(const TouchControlConfig &config, float xres, float yres, bool *pause, ControlMapper *controlMapper, UI::LayoutParams *layoutParams) + : UI::AnchorLayout(layoutParams) +{ if (!g_Config.bShowTouchControls) { - return root; + return; } + using namespace UI; + struct ButtonOffset { float x; float y; @@ -930,26 +936,26 @@ UI::ViewGroup *CreatePadLayout(const TouchControlConfig &config, float xres, flo const ImageID stickImage = g_Config.iTouchButtonStyle ? ImageID("I_STICK_LINE") : ImageID("I_STICK"); const ImageID stickBg = g_Config.iTouchButtonStyle ? ImageID("I_STICK_BG_LINE") : ImageID("I_STICK_BG"); - auto addPSPButton = [=](int buttonBit, const char *key, ImageID bgImg, ImageID bgDownImg, ImageID img, const ConfigTouchPos &touch, ButtonOffset off = { 0, 0 }) -> PSPButton * { + auto addPSPButton = [this, buttonLayoutParams](int buttonBit, const char *key, ImageID bgImg, ImageID bgDownImg, ImageID img, const ConfigTouchPos &touch, ButtonOffset off = { 0, 0 }) -> PSPButton * { if (touch.show) { - return root->Add(new PSPButton(buttonBit, key, bgImg, bgDownImg, img, touch.scale, buttonLayoutParams(touch, off))); + return Add(new PSPButton(buttonBit, key, bgImg, bgDownImg, img, touch.scale, buttonLayoutParams(touch, off))); } return nullptr; }; - auto addBoolButton = [=](bool *value, const char *key, ImageID bgImg, ImageID bgDownImg, ImageID img, const ConfigTouchPos &touch) -> BoolButton * { + auto addBoolButton = [this, buttonLayoutParams](bool *value, const char *key, ImageID bgImg, ImageID bgDownImg, ImageID img, const ConfigTouchPos &touch) -> BoolButton * { if (touch.show) { - return root->Add(new BoolButton(value, key, bgImg, bgDownImg, img, touch.scale, buttonLayoutParams(touch))); + return Add(new BoolButton(value, key, bgImg, bgDownImg, img, touch.scale, buttonLayoutParams(touch))); } return nullptr; }; - auto addCustomButton = [=](const ConfigCustomButton& cfg, const char *key, const ConfigTouchPos &touch) -> CustomButton * { + auto addCustomButton = [this, buttonLayoutParams, controlMapper](const ConfigCustomButton& cfg, const char *key, const ConfigTouchPos &touch) -> CustomButton * { using namespace CustomKeyData; if (touch.show) { _dbg_assert_(cfg.shape < ARRAY_SIZE(customKeyShapes)); _dbg_assert_(cfg.image < ARRAY_SIZE(customKeyImages)); // Note: cfg.shape and cfg.image are bounds-checked elsewhere. - auto aux = root->Add(new CustomButton(cfg.key, key, cfg.toggle, cfg.repeat, controlMapper, + auto aux = Add(new CustomButton(cfg.key, key, cfg.toggle, cfg.repeat, controlMapper, g_Config.iTouchButtonStyle == 0 ? customKeyShapes[cfg.shape].i : customKeyShapes[cfg.shape].l, customKeyShapes[cfg.shape].i, customKeyImages[cfg.image].i, touch.scale, customKeyShapes[cfg.shape].d, buttonLayoutParams(touch))); aux->SetAngle(customKeyImages[cfg.image].r, customKeyShapes[cfg.shape].r); @@ -996,17 +1002,17 @@ UI::ViewGroup *CreatePadLayout(const TouchControlConfig &config, float xres, flo if (config.touchDpad.show) { const ImageID dirImage = g_Config.iTouchButtonStyle ? ImageID("I_DIR_LINE") : ImageID("I_DIR"); - root->Add(new PSPDpad(dirImage, "D-pad", ImageID("I_DIR"), ImageID("I_ARROW"), config.touchDpad.scale, config.fDpadSpacing, buttonLayoutParams(config.touchDpad))); + Add(new PSPDpad(dirImage, "D-pad", ImageID("I_DIR"), ImageID("I_ARROW"), config.touchDpad.scale, config.fDpadSpacing, buttonLayoutParams(config.touchDpad))); } if (config.touchAnalogStick.show) - root->Add(new PSPStick(stickBg, "Left analog stick", stickImage, ImageID("I_STICK"), 0, config.touchAnalogStick.scale, buttonLayoutParams(config.touchAnalogStick))); + Add(new PSPStick(stickBg, "Left analog stick", stickImage, ImageID("I_STICK"), 0, config.touchAnalogStick.scale, buttonLayoutParams(config.touchAnalogStick))); if (config.touchRightAnalogStick.show) { if (g_Config.bRightAnalogCustom) - root->Add(new PSPCustomStick(stickBg, "Right analog stick", stickImage, ImageID("I_STICK"), 1, config.touchRightAnalogStick.scale, buttonLayoutParams(config.touchRightAnalogStick))); + Add(new PSPCustomStick(stickBg, "Right analog stick", stickImage, ImageID("I_STICK"), 1, config.touchRightAnalogStick.scale, buttonLayoutParams(config.touchRightAnalogStick))); else - root->Add(new PSPStick(stickBg, "Right analog stick", stickImage, ImageID("I_STICK"), 1, config.touchRightAnalogStick.scale, buttonLayoutParams(config.touchRightAnalogStick))); + Add(new PSPStick(stickBg, "Right analog stick", stickImage, ImageID("I_STICK"), 1, config.touchRightAnalogStick.scale, buttonLayoutParams(config.touchRightAnalogStick))); } // Sanitize custom button images, while adding them. @@ -1024,10 +1030,27 @@ UI::ViewGroup *CreatePadLayout(const TouchControlConfig &config, float xres, flo } if (g_Config.bGestureControlEnabled) { - root->Add(new GestureGamepad(controlMapper)); + Add(new GestureGamepad(controlMapper)); + } +} + +void GamepadEmuView::Update() { + AnchorLayout::Update(); + GamepadUpdateOpacity(); + + bool anyDown = false; + for (auto view : views_) { + GamepadComponent *component = dynamic_cast(view); + if (component) { + if (component->IsDown()) { + anyDown = true; + } + } } - return root; + if (anyDown) { + g_lastTouch = time_now_d(); + } } bool GestureGamepad::Touch(const TouchInput &input) { diff --git a/UI/GamepadEmu.h b/UI/GamepadEmu.h index 5847c0eb7e..7a1f5bea97 100644 --- a/UI/GamepadEmu.h +++ b/UI/GamepadEmu.h @@ -26,6 +26,15 @@ #include "Core/HLE/sceCtrl.h" #include "UI/EmuScreen.h" +struct TouchControlConfig; +class ControlMapper; + +class GamepadEmuView : public UI::AnchorLayout { +public: + GamepadEmuView(const TouchControlConfig &config, float xres, float yres, bool *pause, ControlMapper *controlMapper, UI::LayoutParams *layoutParams); + void Update() override; +}; + class GamepadComponent : public UI::View { public: GamepadComponent(const char *key, UI::LayoutParams *layoutParams); @@ -34,6 +43,7 @@ public: return false; } std::string DescribeText() const override; + virtual bool IsDown() const = 0; protected: std::string key_; @@ -48,7 +58,7 @@ public: bool Touch(const TouchInput &input) override; void Draw(UIContext &dc) override; void GetContentDimensions(const UIContext &dc, float &w, float &h) const override; - virtual bool IsDown() { return pointerDownMask_ != 0; } + bool IsDown() const override { return pointerDownMask_ != 0; } // chainable MultiTouchButton *FlipImageH(bool flip) { flipImageH_ = flip; return this; } MultiTouchButton *SetAngle(float angle) { angle_ = angle; bgAngle_ = angle; return this; } @@ -77,7 +87,7 @@ public: : MultiTouchButton(key, bgImg, bgDownImg, img, scale, layoutParams), value_(value) { } bool Touch(const TouchInput &input) override; - bool IsDown() override { return *value_; } + bool IsDown() const override { return *value_; } UI::Event OnChange; @@ -91,7 +101,7 @@ public: : MultiTouchButton(key, bgImg, bgDownImg, img, scale, layoutParams), pspButtonBit_(pspButtonBit) { } bool Touch(const TouchInput &input) override; - bool IsDown() override; + bool IsDown() const override; private: int pspButtonBit_; @@ -104,6 +114,7 @@ public: bool Touch(const TouchInput &input) override; void Draw(UIContext &dc) override; void GetContentDimensions(const UIContext &dc, float &w, float &h) const override; + bool IsDown() const override { return down_ != 0; } private: void ProcessTouch(float x, float y, bool down); @@ -125,9 +136,10 @@ public: bool Touch(const TouchInput &input) override; void Draw(UIContext &dc) override; void GetContentDimensions(const UIContext &dc, float &w, float &h) const override; + bool IsDown() const override { return dragPointerId_ != -1; } protected: - int dragPointerId_; + int dragPointerId_ = -1; ImageID bgImg_; ImageID stickImageIndex_; ImageID stickDownImg_; @@ -136,8 +148,8 @@ protected: float stick_size_; float scale_; - float centerX_; - float centerY_; + float centerX_ = -1.0f; + float centerY_ = -1.0f; private: void ProcessTouch(float x, float y, bool down); @@ -173,7 +185,7 @@ public: } bool Touch(const TouchInput &input) override; void Update() override; - bool IsDown() override; + bool IsDown() const override; void GetContentDimensions(const UIContext &dc, float &w, float &h) const override; private: diff --git a/UI/TouchControlLayoutScreen.cpp b/UI/TouchControlLayoutScreen.cpp index 5050b5f307..c4d4a91bc9 100644 --- a/UI/TouchControlLayoutScreen.cpp +++ b/UI/TouchControlLayoutScreen.cpp @@ -49,9 +49,10 @@ public: scale_ = theScale_; } - bool IsDown() override { + bool IsDown() const override { // Don't want the button to enlarge and throw the user's perspective - // of button size off whack. + // of button size off whack. Also, the other purpose of IsDown is to prevent auto-hide, + // but it's not relevant here. return false; }; diff --git a/UI/UI.vcxproj b/UI/UI.vcxproj index 4b4294e814..e199b21376 100644 --- a/UI/UI.vcxproj +++ b/UI/UI.vcxproj @@ -228,7 +228,6 @@ ..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\include;../common;..;../ext/native;../ext/glew;../ext/snappy;../ext/zlib;../ext true false - false MultiThreadedDebug Common/DbgNew.h $(EXTERNAL_COMPILE_OPTIONS) @@ -249,7 +248,6 @@ ..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\include;../common;..;../ext/native;../ext/glew;../ext/snappy;../ext/zlib;../ext true false - false MultiThreadedDebug false Common/DbgNew.h @@ -271,7 +269,6 @@ ..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\aarch64\include;../common;..;../ext/native;../ext/glew;../ext/snappy;../ext/zlib;../ext true false - false MultiThreadedDebug false Common/DbgNew.h @@ -297,7 +294,6 @@ false Size true - false MultiThreaded $(EXTERNAL_COMPILE_OPTIONS) ProgramDatabase @@ -323,7 +319,6 @@ ..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\include;../common;..;../ext/native;../ext/glew;../ext/snappy;../ext/zlib;../ext false true - false MultiThreaded true $(EXTERNAL_COMPILE_OPTIONS) @@ -351,7 +346,6 @@ ..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\aarch64\include;../common;..;../ext/native;../ext/glew;../ext/snappy;../ext/zlib;../ext false true - false MultiThreaded true $(EXTERNAL_COMPILE_OPTIONS) @@ -370,4 +364,4 @@ - + \ No newline at end of file diff --git a/Windows/PPSSPP.vcxproj b/Windows/PPSSPP.vcxproj index 71d453a819..4d0ffa6c42 100644 --- a/Windows/PPSSPP.vcxproj +++ b/Windows/PPSSPP.vcxproj @@ -189,7 +189,6 @@ StreamingSIMDExtensions2 Precise true - false Disabled $(EXTERNAL_COMPILE_OPTIONS) stdcpp17 @@ -229,7 +228,6 @@ NotSet Precise true - false Disabled $(EXTERNAL_COMPILE_OPTIONS) stdcpp17 @@ -264,7 +262,6 @@ NotSet Precise true - false Disabled $(EXTERNAL_COMPILE_OPTIONS) stdcpp17 @@ -302,7 +299,6 @@ stdafx.h stdafx.h true - false $(EXTERNAL_COMPILE_OPTIONS) stdcpp17 @@ -351,7 +347,6 @@ ../ffmpeg/Windows/x86_64/include;../ext;../common;..;../ext/glew;../ext/zlib stdafx.h true - false $(EXTERNAL_COMPILE_OPTIONS) stdcpp17 @@ -394,7 +389,6 @@ ../ffmpeg/Windows/aarch64/include;../ext;../common;..;../ext/glew;../ext/zlib stdafx.h true - false $(EXTERNAL_COMPILE_OPTIONS) stdcpp17 diff --git a/android/jni/Locals.mk b/android/jni/Locals.mk index 0b757e492b..bba1fe0fd9 100644 --- a/android/jni/Locals.mk +++ b/android/jni/Locals.mk @@ -4,7 +4,7 @@ LOCAL_CFLAGS := -DUSE_FFMPEG -DWITH_UPNP -DUSING_GLES2 -DMOBILE_DEVICE -O3 -fsigned-char -Wall -Wno-multichar -Wno-unused-variable -fno-strict-aliasing -D__STDC_CONSTANT_MACROS -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS # yes, it's really CPPFLAGS for C++ # deprecated-register is generated by Android default code and causes noise. -LOCAL_CPPFLAGS := -fexceptions -std=c++17 -fno-rtti -Wno-reorder -Wno-deprecated-register -Wno-nullability-completeness +LOCAL_CPPFLAGS := -fexceptions -std=c++17 -Wno-reorder -Wno-deprecated-register -Wno-nullability-completeness LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/../../Common \ $(LOCAL_PATH)/../.. \ diff --git a/ext/zlib/zlib.vcxproj b/ext/zlib/zlib.vcxproj index 6dcf20d18c..dbd8459891 100644 --- a/ext/zlib/zlib.vcxproj +++ b/ext/zlib/zlib.vcxproj @@ -145,7 +145,6 @@ Default true false - false MultiThreadedDebug ../../Common/DbgNew.h ProgramDatabase @@ -167,7 +166,6 @@ Default true false - false MultiThreadedDebug ../../Common/DbgNew.h ProgramDatabase @@ -189,7 +187,6 @@ Default true false - false MultiThreadedDebug ../../Common/DbgNew.h ProgramDatabase @@ -214,7 +211,6 @@ Speed AnySuitable true - false MultiThreaded ProgramDatabase @@ -241,7 +237,6 @@ NotSet Precise true - false MultiThreaded ProgramDatabase true @@ -269,7 +264,6 @@ NotSet Precise true - false MultiThreaded ProgramDatabase true diff --git a/headless/Headless.vcxproj b/headless/Headless.vcxproj index 3487b84df5..1ff3a1f3ea 100644 --- a/headless/Headless.vcxproj +++ b/headless/Headless.vcxproj @@ -142,7 +142,6 @@ Precise true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -176,7 +175,6 @@ false true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -209,7 +207,6 @@ false true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -242,7 +239,6 @@ Precise Speed true - false MultiThreaded ProgramDatabase stdcpp17 @@ -280,7 +276,6 @@ Speed false true - false MultiThreaded true ProgramDatabase @@ -318,7 +313,6 @@ Speed false true - false MultiThreaded true ProgramDatabase @@ -415,4 +409,4 @@ - + \ No newline at end of file diff --git a/unittest/UnitTests.vcxproj b/unittest/UnitTests.vcxproj index 0e643f6475..3b2320af93 100644 --- a/unittest/UnitTests.vcxproj +++ b/unittest/UnitTests.vcxproj @@ -134,7 +134,6 @@ ../ffmpeg/Windows/x86/include;../ext;../common;..;../ext/glew;../ext/zlib true false - false MultiThreadedDebug Common/DbgNew.h ProgramDatabase @@ -157,7 +156,6 @@ ../ffmpeg/Windows/x86_64/include;../ext;../common;..;../ext/glew;../ext/zlib true false - false MultiThreadedDebug false Common/DbgNew.h @@ -181,7 +179,6 @@ ../ffmpeg/Windows/aarch64/include;../ext;../common;..;../ext/glew;../ext/zlib true false - false MultiThreadedDebug false Common/DbgNew.h @@ -209,7 +206,6 @@ false Size true - false MultiThreaded ProgramDatabase StreamingSIMDExtensions2 @@ -237,7 +233,6 @@ ../ffmpeg/Windows/x86_64/include;../ext;../common;..;../ext/glew;../ext/zlib false true - false MultiThreaded true Size @@ -267,7 +262,6 @@ ../ffmpeg/Windows/aarch64/include;../ext;../common;..;../ext/glew;../ext/zlib false true - false MultiThreaded true Size