diff --git a/src/cascadia/TerminalControl/ControlCore.cpp b/src/cascadia/TerminalControl/ControlCore.cpp index 2ed9f2d7efe..60776282cd8 100644 --- a/src/cascadia/TerminalControl/ControlCore.cpp +++ b/src/cascadia/TerminalControl/ControlCore.cpp @@ -256,7 +256,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation return false; } - if (Feature_AtlasEngine::IsEnabled() && _settings->UseAtlasEngine()) + if (_settings->UseAtlasEngine()) { _renderEngine = std::make_unique<::Microsoft::Console::Render::AtlasEngine>(); } diff --git a/src/cascadia/TerminalControl/TermControl.cpp b/src/cascadia/TerminalControl/TermControl.cpp index b3e7fd1e26d..db46f122c29 100644 --- a/src/cascadia/TerminalControl/TermControl.cpp +++ b/src/cascadia/TerminalControl/TermControl.cpp @@ -2087,7 +2087,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation // GH#10211 - UNDER NO CIRCUMSTANCE should this fail. If it does, the // whole app will crash instantaneously on launch, which is no good. double scale; - if (Feature_AtlasEngine::IsEnabled() && settings.UseAtlasEngine()) + if (settings.UseAtlasEngine()) { auto engine = std::make_unique<::Microsoft::Console::Render::AtlasEngine>(); LOG_IF_FAILED(engine->UpdateDpi(dpi)); diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp index f733626b465..fadf3d0a6b6 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp @@ -293,11 +293,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation return _unfocusedAppearanceViewModel; } - bool ProfileViewModel::AtlasEngineAvailable() const noexcept - { - return Feature_AtlasEngine::IsEnabled(); - } - bool ProfileViewModel::VtPassthroughAvailable() const noexcept { return Feature_VtPassthroughMode::IsEnabled() && Feature_VtPassthroughModeSettingInUI::IsEnabled(); diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h index a4bc0f22bcb..1b61c7062c7 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h @@ -72,7 +72,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation bool ShowUnfocusedAppearance(); void CreateUnfocusedAppearance(); void DeleteUnfocusedAppearance(); - bool AtlasEngineAvailable() const noexcept; bool VtPassthroughAvailable() const noexcept; VIEW_MODEL_OBSERVABLE_PROPERTY(ProfileSubPage, CurrentPage); diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl index b05b76317a0..143fa3ca477 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl @@ -62,7 +62,6 @@ namespace Microsoft.Terminal.Settings.Editor Boolean EditableUnfocusedAppearance { get; }; Boolean ShowUnfocusedAppearance { get; }; AppearanceViewModel UnfocusedAppearance { get; }; - Boolean AtlasEngineAvailable { get; }; Boolean VtPassthroughAvailable { get; }; void CreateUnfocusedAppearance(); diff --git a/src/cascadia/TerminalSettingsEditor/Profiles_Advanced.xaml b/src/cascadia/TerminalSettingsEditor/Profiles_Advanced.xaml index 8b1cbea41bd..b17296fe0ae 100644 --- a/src/cascadia/TerminalSettingsEditor/Profiles_Advanced.xaml +++ b/src/cascadia/TerminalSettingsEditor/Profiles_Advanced.xaml @@ -122,8 +122,7 @@ + SettingOverrideSource="{x:Bind Profile.UseAtlasEngineOverrideSource, Mode=OneWay}"> diff --git a/src/cascadia/TerminalSettingsModel/MTSMSettings.h b/src/cascadia/TerminalSettingsModel/MTSMSettings.h index d95dbdfe43e..b6dcf7e37c6 100644 --- a/src/cascadia/TerminalSettingsModel/MTSMSettings.h +++ b/src/cascadia/TerminalSettingsModel/MTSMSettings.h @@ -77,7 +77,7 @@ Author(s): X(CloseOnExitMode, CloseOnExit, "closeOnExit", CloseOnExitMode::Automatic) \ X(hstring, TabTitle, "tabTitle") \ X(Model::BellStyle, BellStyle, "bellStyle", BellStyle::Audible) \ - X(bool, UseAtlasEngine, "experimental.useAtlasEngine", false) \ + X(bool, UseAtlasEngine, "experimental.useAtlasEngine", Feature_AtlasEngine::IsEnabled()) \ X(Windows::Foundation::Collections::IVector, BellSound, "bellSound", nullptr) \ X(bool, Elevate, "elevate", false) \ X(bool, VtPassthrough, "experimental.connection.passthroughMode", false) \ diff --git a/src/features.xml b/src/features.xml index 6e5dc85dfef..beab19b0f2d 100644 --- a/src/features.xml +++ b/src/features.xml @@ -34,6 +34,16 @@ WindowsInbox + + + Feature_ConhostAtlasEngine + Controls whether conhost supports the Atlas engine + AlwaysEnabled + + WindowsInbox + + + Feature_DxEngineShaderSupport Controls whether the DX engine is built with shader support. @@ -59,7 +69,7 @@ Feature_AtlasEngine - If enabled, AtlasEngine and the experimental.useAtlasEngine setting are compiled into the project + If enabled, AtlasEngine is used by default AlwaysEnabled Release diff --git a/src/interactivity/win32/window.cpp b/src/interactivity/win32/window.cpp index 7a8aad419a2..ca2300e4ced 100644 --- a/src/interactivity/win32/window.cpp +++ b/src/interactivity/win32/window.cpp @@ -26,7 +26,7 @@ #include "../../renderer/base/renderer.hpp" #include "../../renderer/gdi/gdirenderer.hpp" -#if TIL_FEATURE_ATLASENGINE_ENABLED +#if TIL_FEATURE_CONHOSTATLASENGINE_ENABLED #include "../../renderer/atlas/AtlasEngine.h" #endif #if TIL_FEATURE_CONHOSTDXENGINE_ENABLED @@ -74,7 +74,7 @@ Window::~Window() #if TIL_FEATURE_CONHOSTDXENGINE_ENABLED delete pDxEngine; #endif -#if TIL_FEATURE_ATLASENGINE_ENABLED +#if TIL_FEATURE_CONHOSTATLASENGINE_ENABLED delete pAtlasEngine; #endif #endif @@ -231,7 +231,7 @@ void Window::_UpdateSystemMetrics() const g.pRender->AddRenderEngine(pDxEngine); break; #endif -#if TIL_FEATURE_ATLASENGINE_ENABLED +#if TIL_FEATURE_CONHOSTATLASENGINE_ENABLED case UseDx::AtlasEngine: pAtlasEngine = new AtlasEngine(); g.pRender->AddRenderEngine(pAtlasEngine); @@ -344,14 +344,14 @@ void Window::_UpdateSystemMetrics() const } else #endif -#if TIL_FEATURE_ATLASENGINE_ENABLED +#if TIL_FEATURE_CONHOSTATLASENGINE_ENABLED if (pAtlasEngine) { status = NTSTATUS_FROM_WIN32(HRESULT_CODE((pAtlasEngine->SetHwnd(hWnd)))); } else -#endif { +#endif status = NTSTATUS_FROM_WIN32(HRESULT_CODE((pGdiEngine->SetHwnd(hWnd)))); } diff --git a/src/interactivity/win32/window.hpp b/src/interactivity/win32/window.hpp index ba00662cd1a..c7a53aa74cf 100644 --- a/src/interactivity/win32/window.hpp +++ b/src/interactivity/win32/window.hpp @@ -116,7 +116,7 @@ namespace Microsoft::Console::Interactivity::Win32 #if TIL_FEATURE_CONHOSTDXENGINE_ENABLED Render::DxEngine* pDxEngine = nullptr; #endif -#if TIL_FEATURE_ATLASENGINE_ENABLED +#if TIL_FEATURE_CONHOSTATLASENGINE_ENABLED Render::AtlasEngine* pAtlasEngine = nullptr; #endif