From f1dca283f84231cd3c09e426fa0a1810da89c42a Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 14 Dec 2019 01:33:32 +0800 Subject: [PATCH] add ColorComplementEffect --- .../HandyControl_Core_30.csproj | 3 ++ .../HandyControl_Net_40.csproj | 3 ++ .../HandyControl_Net_GE45.csproj | 3 ++ .../HandyControl_Shared.projitems | 1 + .../Media/Effects/ColorComplementEffect.cs | 34 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 1 + .../Effects/ColorComplementEffect.ps | Bin 0 -> 220 bytes 7 files changed, 45 insertions(+) create mode 100644 src/Shared/HandyControl_Shared/Media/Effects/ColorComplementEffect.cs create mode 100644 src/Shared/HandyControl_Shared/Resources/Effects/ColorComplementEffect.ps diff --git a/src/Core_30/HandyControl_Core_30/HandyControl_Core_30.csproj b/src/Core_30/HandyControl_Core_30/HandyControl_Core_30.csproj index 07314a19..ce527ed8 100644 --- a/src/Core_30/HandyControl_Core_30/HandyControl_Core_30.csproj +++ b/src/Core_30/HandyControl_Core_30/HandyControl_Core_30.csproj @@ -56,5 +56,8 @@ Resources\dropper.cur + + Resources\Effects\ColorComplementEffect.ps + \ No newline at end of file diff --git a/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj b/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj index 28017834..3017e107 100644 --- a/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj +++ b/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj @@ -108,6 +108,9 @@ Resources\dropper.cur + + Resources\Effects\ColorComplementEffect.ps + diff --git a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj index 49bc677b..5c685b76 100644 --- a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj +++ b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj @@ -179,6 +179,9 @@ Resources\dropper.cur + + Resources\Effects\ColorComplementEffect.ps + diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems index b01bf9b2..f5f1e48d 100644 --- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems +++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems @@ -58,6 +58,7 @@ + diff --git a/src/Shared/HandyControl_Shared/Media/Effects/ColorComplementEffect.cs b/src/Shared/HandyControl_Shared/Media/Effects/ColorComplementEffect.cs new file mode 100644 index 00000000..bae72b0d --- /dev/null +++ b/src/Shared/HandyControl_Shared/Media/Effects/ColorComplementEffect.cs @@ -0,0 +1,34 @@ +using System; +using System.Windows; +using System.Windows.Media; +using System.Windows.Media.Effects; + +namespace HandyControl.Media.Effects +{ + public class ColorComplementEffect : ShaderEffect + { + public static readonly DependencyProperty InputProperty = RegisterPixelShaderSamplerProperty("Input", typeof(ColorComplementEffect), 0); + + private static readonly PixelShader Shader; + + static ColorComplementEffect() + { + Shader = new PixelShader + { + UriSource = new Uri("pack://application:,,,/HandyControl;component/Resources/Effects/ColorComplementEffect.ps") + }; + } + + public ColorComplementEffect() + { + PixelShader = Shader; + UpdateShaderValue(InputProperty); + } + + public Brush Input + { + get => (Brush)GetValue(InputProperty); + set => SetValue(InputProperty, value); + } + } +} diff --git a/src/Shared/HandyControl_Shared/Properties/AssemblyInfo.cs b/src/Shared/HandyControl_Shared/Properties/AssemblyInfo.cs index 65c79a43..8b80dbb4 100644 --- a/src/Shared/HandyControl_Shared/Properties/AssemblyInfo.cs +++ b/src/Shared/HandyControl_Shared/Properties/AssemblyInfo.cs @@ -22,6 +22,7 @@ using System.Runtime.InteropServices; [assembly: XmlnsDefinition("https://handyorg.github.io/handycontrol", "HandyControl.Expression.Shapes")] [assembly: XmlnsDefinition("https://handyorg.github.io/handycontrol", "HandyControl.Expression.Media")] [assembly: XmlnsDefinition("https://handyorg.github.io/handycontrol", "HandyControl.Media.Animation")] +[assembly: XmlnsDefinition("https://handyorg.github.io/handycontrol", "HandyControl.Media.Effects")] [assembly: XmlnsDefinition("https://handyorg.github.io/handycontrol", "HandyControl.Data")] [assembly: XmlnsDefinition("https://handyorg.github.io/handycontrol", "HandyControl.Properties.Langs")] [assembly: XmlnsPrefix("https://handyorg.github.io/handycontrol", "hc")] \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Resources/Effects/ColorComplementEffect.ps b/src/Shared/HandyControl_Shared/Resources/Effects/ColorComplementEffect.ps new file mode 100644 index 0000000000000000000000000000000000000000..bfeb1a745ae543475ec9616e0dd98d471b0db684 GIT binary patch literal 220 zcmZQz`v3pme`N;e5Jx8&1_p+3AZ7rHF#;(Np8?1S08$1(%nar-F*pEe5Xj6e$jMC3 zEb+`MC@o=Fy_$uA2dEqbA)uf*-YDLH!8bFxD8D#Atwcd1NK?VXC)h_JI3qD7wMfA^ zKer$=2gtD0Gcwn+G&RyQHZU?`kO#T|XhH+f#tl&R1O^WN1x{cm@B_u4Y+&GcvH++E a=p=R!zmb9Ae*@57CZIYHzv2IX1_l5Z