b140299e50
Co-authored-by: mrange <marten_range@hotmail.com> I loved the pixel shaders in #7058, but that PR needed a bit of polish to be ready for ingestion. This PR is almost _exactly_ that PR, with some small changes. * It adds a new pre-profile setting `"experimental.pixelShaderPath"`, which lets the user set a pixel shader to use with the Terminal. - CHANGED FROM #7058: It does _not_ add any built-in shaders. - CHANGED FROM #7058: it will _override_ `experimental.retroTerminalEffect` * It adds a bunch of sample shaders in `samples/shaders`. Included: - A NOP shader as a base to build from. - An "invert" shader that inverts the colors, as a simple example - An "grayscale" shader that converts all colors to grayscale, as a simple example - An "raster bars" shader that draws some colored bars on the screen with a drop shadow, as a more involved example - The original retro terminal effects, as a more involved example - It also includes a broken shader, as an example of what heppens when the shader fails to compile - CHANGED FROM #7058: It does _not_ add the "retroII" shader we were all worried about. * When a shader fails to be found or fails to compile, we'll display an error dialog to the user with a relevant error message. - CHANGED FROM #7058: Originally, #7058 would display "error bars" on the screen. I've removed that, and had the Terminal disable the shader entirely then. * Renames the `toggleRetroEffect` action to `toggleShaderEffect`. (`toggleRetroEffect` is now an alias to `toggleShaderEffect`). This action will turn the shader OR the retro effects on/off. `toggleShaderEffect` works the way you'd expect it to, but the mental math on _how_ is a little weird. The logic is basically: ``` useShader = shaderEffectsEnabled ? (pixelShaderProvided ? pixelShader : (retroEffectEnabled ? retroEffect : null ) ) : null ``` and `toggleShaderEffect` toggles `shaderEffectsEnabled`. * If you've got both a shader and retro enabled, `toggleShaderEffect` will toggle between the shader on/off. * If you've got a shader and retro disabled, `toggleShaderEffect` will toggle between the shader on/off. References #6191 References #7058 Closes #7013 Closes #3930 "Add setting to retro terminal shader to control blur radius, color" Closes #3929 "Add setting to retro terminal shader to enable drawing scanlines" - At this point, just roll your own version of the shader. |
||
---|---|---|
.. | ||
dll | ||
Resources/en-US | ||
ActionAndArgs.cpp | ||
ActionAndArgs.h | ||
ActionArgs.cpp | ||
ActionArgs.h | ||
ActionArgs.idl | ||
AzureCloudShellGenerator.cpp | ||
AzureCloudShellGenerator.h | ||
CascadiaSettings.cpp | ||
CascadiaSettings.h | ||
CascadiaSettings.idl | ||
CascadiaSettingsSerialization.cpp | ||
ColorScheme.cpp | ||
ColorScheme.h | ||
ColorScheme.idl | ||
Command.cpp | ||
Command.h | ||
Command.idl | ||
DefaultProfileUtils.cpp | ||
DefaultProfileUtils.h | ||
defaults-universal.json | ||
defaults.json | ||
EnumMappings.cpp | ||
EnumMappings.h | ||
EnumMappings.idl | ||
GlobalAppSettings.cpp | ||
GlobalAppSettings.h | ||
GlobalAppSettings.idl | ||
IconPathConverter.cpp | ||
IconPathConverter.h | ||
IconPathConverter.idl | ||
IDynamicProfileGenerator.h | ||
IInheritable.h | ||
init.cpp | ||
JsonUtils.h | ||
KeyChordSerialization.cpp | ||
KeyChordSerialization.h | ||
KeyChordSerialization.idl | ||
KeyMapping.cpp | ||
KeyMapping.h | ||
KeyMapping.idl | ||
KeyMappingSerialization.cpp | ||
LegacyProfileGeneratorNamespaces.h | ||
Microsoft.Terminal.Settings.ModelLib.vcxproj | ||
Microsoft.Terminal.Settings.ModelLib.vcxproj.filters | ||
packages.config | ||
pch.cpp | ||
pch.h | ||
PowershellCoreProfileGenerator.cpp | ||
PowershellCoreProfileGenerator.h | ||
Profile.cpp | ||
Profile.h | ||
Profile.idl | ||
SettingsTypes.h | ||
TerminalSettingsSerializationHelpers.h | ||
TerminalWarnings.h | ||
TerminalWarnings.idl | ||
userDefaults.json | ||
WslDistroGenerator.cpp | ||
WslDistroGenerator.h |