Browse Source

tweaks and fixes to acrylic.

feature/test-branch
Dan Walmsley 6 years ago
parent
commit
4dc8a2a3ee
  1. 6
      samples/ControlCatalog/Pages/AcrylicPage.xaml
  2. 4
      src/Avalonia.Visuals/Media/ExperimentalAcrylicBrush.cs
  3. 4
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs

6
samples/ControlCatalog/Pages/AcrylicPage.xaml

@ -71,7 +71,7 @@
<Border Height="200" Width="200" CornerRadius="5" BoxShadow="2 2 16 0 Black">
<Border.Background>
<ExperimentalAcrylicBrush
TintColor="Black"
TintColor="White"
TintOpacity="{Binding #TintOpacitySlider.Value}"
BackgroundSource="Digger" />
</Border.Background>
@ -89,8 +89,8 @@
<Border Height="200" Width="200" CornerRadius="5" BoxShadow="2 2 16 0 Black">
<Border.Background>
<ExperimentalAcrylicBrush
TintColor="White"
TintOpacity="{Binding #TintOpacitySlider.Value}"
TintColor="{StaticResource SystemChromeAltHighColor}"
TintOpacity="0.8"
BackgroundSource="Digger" />
</Border.Background>
</Border>

4
src/Avalonia.Visuals/Media/ExperimentalAcrylicBrush.cs

@ -135,7 +135,7 @@ namespace Avalonia.Media
if (false) // non-acrylic blue // TODO detect blur level.
{
tintColor = new Color((byte)(Math.Round(tintColor.A * (((tintOpacity * tintOpacityModifier) * 0.25) + 0.75))), tintColor.R, tintColor.G, tintColor.B);
tintColor = new Color((byte)(Math.Round(tintColor.A * (((tintOpacity * tintOpacityModifier) * 0.15) + 0.85))), tintColor.R, tintColor.G, tintColor.B);
}
else
{
@ -157,7 +157,7 @@ namespace Avalonia.Media
const double whiteMaxOpacity = 0.40; // 100% luminosity
const double midPointMaxOpacity = 0.50; // 50% luminosity
const double blackMaxOpacity = 0.60; // 0% luminosity
const double blackMaxOpacity = 0.80; // 0% luminosity
var hsv = RgbToHsv(tintColor);

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

@ -697,10 +697,10 @@ namespace Avalonia.Skia
acrylicBrush.BackgroundSource == AcrylicBackgroundSource.Digger ?
acrylicBrush.TintOpacity : 1;
const double noiseOpcity = 0.02;
const double noiseOpcity = 0.0225;
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 * tintOpacity)));
if(s_acrylicNoiseShader == null)
{

Loading…
Cancel
Save