Browse Source

Fix acrylic.

feature/test-branch
Dan Walmsley 6 years ago
parent
commit
175eff6429
  1. 10
      samples/ControlCatalog/Pages/AcrylicPage.xaml
  2. 4
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs

10
samples/ControlCatalog/Pages/AcrylicPage.xaml

@ -3,13 +3,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ControlCatalog.Pages.AcrylicPage"> x:Class="ControlCatalog.Pages.AcrylicPage">
<UserControl.Background>
<ExperimentalAcrylicBrush
TintColor="#000000"
TintOpacity="{Binding #TintOpacitySlider.Value}"
BackgroundSource="Digger" />
</UserControl.Background>
<Border Padding="20" HorizontalAlignment="Center"> <Border Padding="20" HorizontalAlignment="Center">
<StackPanel Spacing="20"> <StackPanel Spacing="20">
<Slider Name="TintOpacitySlider" Minimum="0" Maximum="1" Value="1" /> <Slider Name="TintOpacitySlider" Minimum="0" Maximum="1" Value="1" />
@ -86,7 +80,7 @@
<Border Height="200" Width="200" CornerRadius="5" BoxShadow="2 2 16 0 Black"> <Border Height="200" Width="200" CornerRadius="5" BoxShadow="2 2 16 0 Black">
<Border.Background> <Border.Background>
<ExperimentalAcrylicBrush <ExperimentalAcrylicBrush
TintColor="#7F7F7F" TintColor="#3c3c3c"
TintOpacity="{Binding #TintOpacitySlider.Value}" TintOpacity="{Binding #TintOpacitySlider.Value}"
BackgroundSource="Digger" /> BackgroundSource="Digger" />
</Border.Background> </Border.Background>

4
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -661,7 +661,7 @@ namespace Avalonia.Skia
var a = new byte[256]; var a = new byte[256];
for (var i = 0; i < 256; i++) for (var i = 0; i < 256; i++)
{ {
c[i] = 255; c[i] = (byte)i;
a[i] = (byte)(i * opacity); a[i] = (byte)(i * opacity);
} }
@ -697,7 +697,7 @@ namespace Avalonia.Skia
acrylicBrush.BackgroundSource == AcrylicBackgroundSource.Digger ? acrylicBrush.BackgroundSource == AcrylicBackgroundSource.Digger ?
acrylicBrush.TintOpacity : 1; acrylicBrush.TintOpacity : 1;
const double noiseOpcity = 0.06; const double noiseOpcity = 0.02;
var tintColor = acrylicBrush.TintColor; var tintColor = acrylicBrush.TintColor;
var tint = new SKColor(tintColor.R, tintColor.G, tintColor.B, (byte)(255 * ((tintColor.A / 255.0) * acrylicBrush.Opacity))); var tint = new SKColor(tintColor.R, tintColor.G, tintColor.B, (byte)(255 * ((tintColor.A / 255.0) * acrylicBrush.Opacity)));

Loading…
Cancel
Save