Add project files.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using System.Windows.Media.Effects;
|
||||
using System.Windows;
|
||||
using System;
|
||||
|
||||
namespace TheXamlGuy.UI.WPF;
|
||||
|
||||
public class BrightnessEffect : EffectBase
|
||||
{
|
||||
public static readonly DependencyProperty BrightnessProperty =
|
||||
DependencyProperty.Register(nameof(Brightness), typeof(double),
|
||||
typeof(BrightnessEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(0)));
|
||||
|
||||
private static readonly PixelShader Shader;
|
||||
|
||||
static BrightnessEffect()
|
||||
{
|
||||
Shader = new PixelShader
|
||||
{
|
||||
UriSource = new Uri("pack://application:,,,/TheXamlGuy.UI.WPF;component/Resources/Effects/BrightnessEffect.ps")
|
||||
};
|
||||
}
|
||||
|
||||
public BrightnessEffect()
|
||||
{
|
||||
PixelShader = Shader;
|
||||
|
||||
UpdateShaderValue(InputProperty);
|
||||
UpdateShaderValue(BrightnessProperty);
|
||||
}
|
||||
public double Brightness
|
||||
{
|
||||
get => (double)GetValue(BrightnessProperty);
|
||||
set => SetValue(BrightnessProperty, value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Windows.Media.Effects;
|
||||
|
||||
namespace TheXamlGuy.UI.WPF;
|
||||
|
||||
public class ColorComplementEffect : EffectBase
|
||||
{
|
||||
private static readonly PixelShader Shader;
|
||||
|
||||
static ColorComplementEffect()
|
||||
{
|
||||
Shader = new PixelShader
|
||||
{
|
||||
UriSource = new Uri("pack://application:,,,/TheXamlGuy.UI.WPF;component/Resources/Effects/ColorComplementEffect.ps")
|
||||
};
|
||||
}
|
||||
|
||||
public ColorComplementEffect()
|
||||
{
|
||||
PixelShader = Shader;
|
||||
|
||||
UpdateShaderValue(InputProperty);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
using System.Windows.Media.Effects;
|
||||
using System.Windows;
|
||||
using System;
|
||||
|
||||
namespace TheXamlGuy.UI.WPF;
|
||||
|
||||
public class ColorMatrixEffect : EffectBase
|
||||
{
|
||||
public static readonly DependencyProperty M11Property =
|
||||
DependencyProperty.Register("M11",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(0)));
|
||||
|
||||
public static readonly DependencyProperty M12Property =
|
||||
DependencyProperty.Register("M12",
|
||||
typeof(double),typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(5)));
|
||||
|
||||
public static readonly DependencyProperty M13Property =
|
||||
DependencyProperty.Register("M13",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(10)));
|
||||
|
||||
public static readonly DependencyProperty M14Property =
|
||||
DependencyProperty.Register("M14",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(15)));
|
||||
|
||||
public static readonly DependencyProperty M21Property =
|
||||
DependencyProperty.Register("M21",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(1)));
|
||||
|
||||
public static readonly DependencyProperty M22Property =
|
||||
DependencyProperty.Register("M22",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(6)));
|
||||
|
||||
public static readonly DependencyProperty M23Property =
|
||||
DependencyProperty.Register("M23",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(11)));
|
||||
|
||||
public static readonly DependencyProperty M24Property =
|
||||
DependencyProperty.Register("M24",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(16)));
|
||||
|
||||
public static readonly DependencyProperty M31Property =
|
||||
DependencyProperty.Register("M31",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(2)));
|
||||
|
||||
public static readonly DependencyProperty M32Property =
|
||||
DependencyProperty.Register("M32",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(7)));
|
||||
|
||||
public static readonly DependencyProperty M33Property =
|
||||
DependencyProperty.Register("M33",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(12)));
|
||||
|
||||
public static readonly DependencyProperty M34Property =
|
||||
DependencyProperty.Register("M34",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(17)));
|
||||
|
||||
public static readonly DependencyProperty M41Property =
|
||||
DependencyProperty.Register("M41",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(3)));
|
||||
|
||||
public static readonly DependencyProperty M42Property =
|
||||
DependencyProperty.Register("M42",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(8)));
|
||||
|
||||
public static readonly DependencyProperty M43Property =
|
||||
DependencyProperty.Register("M43",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(13)));
|
||||
|
||||
public static readonly DependencyProperty M44Property =
|
||||
DependencyProperty.Register("M44",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(18)));
|
||||
|
||||
public static readonly DependencyProperty M51Property =
|
||||
DependencyProperty.Register("M51",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(4)));
|
||||
|
||||
public static readonly DependencyProperty M52Property =
|
||||
DependencyProperty.Register("M52",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(9)));
|
||||
|
||||
public static readonly DependencyProperty M53Property =
|
||||
DependencyProperty.Register("M53",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(14)));
|
||||
|
||||
public static readonly DependencyProperty M54Property =
|
||||
DependencyProperty.Register("M54",
|
||||
typeof(double), typeof(ColorMatrixEffect), new PropertyMetadata(ValueBoxes.Double0Box, PixelShaderConstantCallback(19)));
|
||||
|
||||
private static readonly PixelShader Shader;
|
||||
|
||||
static ColorMatrixEffect()
|
||||
{
|
||||
Shader = new PixelShader
|
||||
{
|
||||
UriSource = new Uri("pack://application:,,,/TheXamlGuy.UI.WPF;component/Resources/Effects/ColorMatrixEffect.ps")
|
||||
};
|
||||
}
|
||||
|
||||
public ColorMatrixEffect()
|
||||
{
|
||||
PixelShader = Shader;
|
||||
|
||||
UpdateShaderValue(InputProperty);
|
||||
|
||||
UpdateShaderValue(M11Property);
|
||||
UpdateShaderValue(M21Property);
|
||||
UpdateShaderValue(M31Property);
|
||||
UpdateShaderValue(M41Property);
|
||||
UpdateShaderValue(M51Property);
|
||||
|
||||
UpdateShaderValue(M12Property);
|
||||
UpdateShaderValue(M22Property);
|
||||
UpdateShaderValue(M32Property);
|
||||
UpdateShaderValue(M42Property);
|
||||
UpdateShaderValue(M52Property);
|
||||
|
||||
UpdateShaderValue(M13Property);
|
||||
UpdateShaderValue(M23Property);
|
||||
UpdateShaderValue(M33Property);
|
||||
UpdateShaderValue(M43Property);
|
||||
UpdateShaderValue(M53Property);
|
||||
|
||||
UpdateShaderValue(M14Property);
|
||||
UpdateShaderValue(M24Property);
|
||||
UpdateShaderValue(M34Property);
|
||||
UpdateShaderValue(M44Property);
|
||||
UpdateShaderValue(M54Property);
|
||||
}
|
||||
|
||||
public double M11
|
||||
{
|
||||
get => (double)GetValue(M11Property);
|
||||
set => SetValue(M11Property, value);
|
||||
}
|
||||
public double M12
|
||||
{
|
||||
get => (double)GetValue(M12Property);
|
||||
set => SetValue(M12Property, value);
|
||||
}
|
||||
|
||||
public double M13
|
||||
{
|
||||
get => (double)GetValue(M13Property);
|
||||
set => SetValue(M13Property, value);
|
||||
}
|
||||
|
||||
public double M14
|
||||
{
|
||||
get => (double)GetValue(M14Property);
|
||||
set => SetValue(M14Property, value);
|
||||
}
|
||||
|
||||
public double M21
|
||||
{
|
||||
get => (double)GetValue(M21Property);
|
||||
set => SetValue(M21Property, value);
|
||||
}
|
||||
public double M22
|
||||
{
|
||||
get => (double)GetValue(M22Property);
|
||||
set => SetValue(M22Property, value);
|
||||
}
|
||||
|
||||
public double M23
|
||||
{
|
||||
get => (double)GetValue(M23Property);
|
||||
set => SetValue(M23Property, value);
|
||||
}
|
||||
|
||||
public double M24
|
||||
{
|
||||
get => (double)GetValue(M24Property);
|
||||
set => SetValue(M24Property, value);
|
||||
}
|
||||
|
||||
public double M31
|
||||
{
|
||||
get => (double)GetValue(M31Property);
|
||||
set => SetValue(M31Property, value);
|
||||
}
|
||||
public double M32
|
||||
{
|
||||
get => (double)GetValue(M32Property);
|
||||
set => SetValue(M32Property, value);
|
||||
}
|
||||
|
||||
public double M33
|
||||
{
|
||||
get => (double)GetValue(M33Property);
|
||||
set => SetValue(M33Property, value);
|
||||
}
|
||||
|
||||
public double M34
|
||||
{
|
||||
get => (double)GetValue(M34Property);
|
||||
set => SetValue(M34Property, value);
|
||||
}
|
||||
|
||||
public double M41
|
||||
{
|
||||
get => (double)GetValue(M41Property);
|
||||
set => SetValue(M41Property, value);
|
||||
}
|
||||
public double M42
|
||||
{
|
||||
get => (double)GetValue(M42Property);
|
||||
set => SetValue(M42Property, value);
|
||||
}
|
||||
|
||||
public double M43
|
||||
{
|
||||
get => (double)GetValue(M43Property);
|
||||
set => SetValue(M43Property, value);
|
||||
}
|
||||
|
||||
public double M44
|
||||
{
|
||||
get => (double)GetValue(M44Property);
|
||||
set => SetValue(M44Property, value);
|
||||
}
|
||||
|
||||
public double M51
|
||||
{
|
||||
get => (double)GetValue(M51Property);
|
||||
set => SetValue(M51Property, value);
|
||||
}
|
||||
public double M52
|
||||
{
|
||||
get => (double)GetValue(M52Property);
|
||||
set => SetValue(M52Property, value);
|
||||
}
|
||||
public double M53
|
||||
{
|
||||
get => (double)GetValue(M53Property);
|
||||
set => SetValue(M53Property, value);
|
||||
}
|
||||
public double M54
|
||||
{
|
||||
get => (double)GetValue(M54Property);
|
||||
set => SetValue(M54Property, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Media.Effects;
|
||||
|
||||
namespace TheXamlGuy.UI.WPF;
|
||||
|
||||
public class ContrastEffect : EffectBase
|
||||
{
|
||||
public static readonly DependencyProperty ContrastProperty =
|
||||
DependencyProperty.Register("Contrast",
|
||||
typeof(double), typeof(ContrastEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(0)));
|
||||
|
||||
private static readonly PixelShader Shader;
|
||||
|
||||
static ContrastEffect()
|
||||
{
|
||||
Shader = new PixelShader
|
||||
{
|
||||
UriSource = new Uri("pack://application:,,,/TheXamlGuy.UI.WPF;component/Resources/Effects/ContrastEffect.ps")
|
||||
};
|
||||
}
|
||||
|
||||
public ContrastEffect()
|
||||
{
|
||||
PixelShader = Shader;
|
||||
|
||||
UpdateShaderValue(InputProperty);
|
||||
UpdateShaderValue(ContrastProperty);
|
||||
}
|
||||
|
||||
public double Contrast
|
||||
{
|
||||
get => (double) GetValue(ContrastProperty);
|
||||
set => SetValue(ContrastProperty, value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Windows.Media.Effects;
|
||||
using System.Windows.Media;
|
||||
using System.Windows;
|
||||
|
||||
namespace TheXamlGuy.UI.WPF;
|
||||
|
||||
public abstract class EffectBase : ShaderEffect
|
||||
{
|
||||
public static readonly DependencyProperty InputProperty = RegisterPixelShaderSamplerProperty("Input", typeof(EffectBase), 0);
|
||||
|
||||
public Brush Input
|
||||
{
|
||||
get => (Brush)GetValue(InputProperty);
|
||||
set => SetValue(InputProperty, value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Media.Effects;
|
||||
|
||||
namespace TheXamlGuy.UI.WPF;
|
||||
|
||||
public class GrayScaleEffect : EffectBase
|
||||
{
|
||||
public static readonly DependencyProperty ScaleProperty =
|
||||
DependencyProperty.Register("Scale",
|
||||
typeof(double), typeof(GrayScaleEffect), new PropertyMetadata(ValueBoxes.Double1Box, PixelShaderConstantCallback(0)));
|
||||
|
||||
private static readonly PixelShader Shader;
|
||||
|
||||
static GrayScaleEffect()
|
||||
{
|
||||
Shader = new PixelShader
|
||||
{
|
||||
UriSource = new Uri("pack://application:,,,/TheXamlGuy.UI.WPF;component/Resources/Effects/GrayScaleEffect.ps")
|
||||
};
|
||||
}
|
||||
|
||||
public GrayScaleEffect()
|
||||
{
|
||||
PixelShader = Shader;
|
||||
|
||||
UpdateShaderValue(InputProperty);
|
||||
UpdateShaderValue(ScaleProperty);
|
||||
}
|
||||
|
||||
public double Scale
|
||||
{
|
||||
get => (double) GetValue(ScaleProperty);
|
||||
set => SetValue(ScaleProperty, value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user