Browse Source

Merge branch 'master' into fixes/tooltip-stuck-on-screen

pull/4407/head
Jumar Macato 6 years ago
committed by GitHub
parent
commit
5b0d93bcf4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/Avalonia.Controls/ProgressBar.cs
  2. 10
      src/Avalonia.Native/WindowImplBase.cs
  3. 46
      src/Avalonia.Themes.Default/ProgressBar.xaml
  4. 5
      src/Avalonia.X11/X11Window.cs
  5. 10
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs
  6. 2
      src/Skia/Avalonia.Skia/FramebufferRenderTarget.cs
  7. 2
      src/Skia/Avalonia.Skia/Gpu/ISkiaGpuRenderSession.cs
  8. 2
      src/Skia/Avalonia.Skia/Gpu/OpenGl/GlRenderTarget.cs
  9. 2
      src/Skia/Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs
  10. 1
      src/Skia/Avalonia.Skia/ISkiaDrawingContextImpl.cs
  11. 2
      src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs

2
src/Avalonia.Controls/ProgressBar.cs

@ -215,7 +215,7 @@ namespace Avalonia.Controls
TemplateProperties.Container2AnimationEndPosition = barIndicatorWidth2 * 1.66; // Position at 166%
// Remove these properties when we switch to fluent as default and removed the old one.
IndeterminateStartingOffset = -(dim / 5d);
IndeterminateStartingOffset = -dim;
IndeterminateEndingOffset = dim;
var padding = Padding;

10
src/Avalonia.Native/WindowImplBase.cs

@ -300,7 +300,15 @@ namespace Avalonia.Native
public IRenderer CreateRenderer(IRenderRoot root)
{
if (_deferredRendering)
return new DeferredRenderer(root, AvaloniaLocator.Current.GetService<IRenderLoop>());
{
var loop = AvaloniaLocator.Current.GetService<IRenderLoop>();
var customRendererFactory = AvaloniaLocator.Current.GetService<IRendererFactory>();
if (customRendererFactory != null)
return customRendererFactory.Create(root, loop);
return new DeferredRenderer(root, loop);
}
return new ImmediateRenderer(root);
}

46
src/Avalonia.Themes.Default/ProgressBar.xaml

@ -13,19 +13,14 @@
<Setter Property="Template">
<ControlTemplate>
<Grid>
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Border Name="PART_Indicator" Background="{TemplateBinding Foreground}"/>
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Panel>
<Border Name="PART_Indicator" Background="{TemplateBinding Foreground}" IsVisible="{Binding !IsIndeterminate, RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Name="PART_IndeterminateIndicator" Background="{TemplateBinding Foreground}" IsVisible="{Binding IsIndeterminate, RelativeSource={RelativeSource TemplatedParent}}"/>
</Panel>
</Border>
<LayoutTransformControl
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsVisible="{Binding ShowProgressText, RelativeSource={RelativeSource TemplatedParent}}"
Name="PART_LayoutTransformControl">
<TextBlock
Foreground="{DynamicResource ThemeForegroundBrush}"
Text="{Binding Value, RelativeSource={RelativeSource TemplatedParent}, StringFormat={}{0:0}%}" />
<LayoutTransformControl HorizontalAlignment="Center" VerticalAlignment="Center" IsVisible="{Binding ShowProgressText, RelativeSource={RelativeSource TemplatedParent}}" Name="PART_LayoutTransformControl">
<TextBlock Foreground="{DynamicResource ThemeForegroundBrush}" Text="{Binding Value, RelativeSource={RelativeSource TemplatedParent}, StringFormat={}{0:0}%}" />
</LayoutTransformControl>
</Grid>
</ControlTemplate>
@ -54,36 +49,31 @@
</Setter.Value>
</Setter>
</Style>
<Style Selector="ProgressBar:horizontal:indeterminate /template/ Border#PART_Indicator">
<Style Selector="ProgressBar:horizontal:indeterminate /template/ Border#PART_IndeterminateIndicator">
<Style.Animations>
<Animation Duration="0:0:3"
IterationCount="Infinite"
Easing="LinearEasing">
<Animation Duration="0:0:3" IterationCount="Infinite" Easing="LinearEasing">
<KeyFrame Cue="0%">
<Setter Property="TranslateTransform.X"
Value="{Binding IndeterminateStartingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="TranslateTransform.X" Value="{Binding IndeterminateStartingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="TranslateTransform.X"
Value="{Binding IndeterminateEndingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="TranslateTransform.X" Value="{Binding IndeterminateEndingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
</KeyFrame>
</Animation>
</Style.Animations>
<Setter Property="Width" Value="{Binding TemplateProperties.ContainerWidth, RelativeSource={RelativeSource TemplatedParent}}" />
</Style>
<Style Selector="ProgressBar:vertical:indeterminate /template/ Border#PART_Indicator">
<Style Selector="ProgressBar:vertical:indeterminate /template/ Border#PART_IndeterminateIndicator">
<Style.Animations>
<Animation Duration="0:0:3"
IterationCount="Infinite"
Easing="LinearEasing">
<Animation Duration="0:0:3" IterationCount="Infinite" Easing="LinearEasing">
<KeyFrame Cue="0%">
<Setter Property="TranslateTransform.Y"
Value="{Binding TemplateProperties.IndeterminateStartingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="TranslateTransform.Y" Value="{Binding IndeterminateStartingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
</KeyFrame>
<KeyFrame Cue="100%">
<Setter Property="TranslateTransform.Y"
Value="{Binding TemplateProperties.IndeterminateEndingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="TranslateTransform.Y" Value="{Binding IndeterminateEndingOffset, RelativeSource={RelativeSource TemplatedParent}}" />
</KeyFrame>
</Animation>
</Style.Animations>
<Setter Property="Height" Value="{Binding TemplateProperties.ContainerWidth, RelativeSource={RelativeSource TemplatedParent}}" />
</Style>
</Styles>

5
src/Avalonia.X11/X11Window.cs

@ -331,6 +331,11 @@ namespace Avalonia.X11
public IRenderer CreateRenderer(IRenderRoot root)
{
var loop = AvaloniaLocator.Current.GetService<IRenderLoop>();
var customRendererFactory = AvaloniaLocator.Current.GetService<IRendererFactory>();
if (customRendererFactory != null)
return customRendererFactory.Create(root, loop);
return _platform.Options.UseDeferredRendering ?
new DeferredRenderer(root, loop) :
(IRenderer)new X11ImmediateRendererProxy(root, loop);

10
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -42,9 +42,9 @@ namespace Avalonia.Skia
public struct CreateInfo
{
/// <summary>
/// Canvas to draw to.
/// Surface to draw to.
/// </summary>
public SKCanvas Canvas;
public SKSurface Surface;
/// <summary>
/// Dpi of drawings.
@ -81,8 +81,8 @@ namespace Avalonia.Skia
_grContext = createInfo.GrContext;
if (_grContext != null)
Monitor.Enter(_grContext);
Canvas = createInfo.Canvas;
Surface = createInfo.Surface;
Canvas = createInfo.Surface.Canvas;
if (Canvas == null)
{
@ -102,8 +102,10 @@ namespace Avalonia.Skia
/// Skia canvas.
/// </summary>
public SKCanvas Canvas { get; }
public SKSurface Surface { get; }
SKCanvas ISkiaDrawingContextImpl.SkCanvas => Canvas;
SKSurface ISkiaDrawingContextImpl.SkSurface => Surface;
GRContext ISkiaDrawingContextImpl.GrContext => _grContext;
/// <inheritdoc />

2
src/Skia/Avalonia.Skia/FramebufferRenderTarget.cs

@ -52,7 +52,7 @@ namespace Avalonia.Skia
var createInfo = new DrawingContextImpl.CreateInfo
{
Canvas = canvas,
Surface = _framebufferSurface,
Dpi = framebuffer.Dpi,
VisualBrushRenderer = visualBrushRenderer,
DisableTextLcdRendering = true

2
src/Skia/Avalonia.Skia/Gpu/ISkiaGpuRenderSession.cs

@ -16,7 +16,7 @@ namespace Avalonia.Skia
/// <summary>
/// Canvas that will be used to render.
/// </summary>
SKCanvas Canvas { get; }
SKSurface SkSurface { get; }
/// <summary>
/// Scaling factor.

2
src/Skia/Avalonia.Skia/Gpu/OpenGl/GlRenderTarget.cs

@ -49,7 +49,7 @@ namespace Avalonia.Skia
}
public GRContext GrContext { get; }
public SKCanvas Canvas => _surface.Canvas;
public SKSurface SkSurface => _surface;
public double ScaleFactor => _glSession.Scaling;
}

2
src/Skia/Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs

@ -27,7 +27,7 @@ namespace Avalonia.Skia
var nfo = new DrawingContextImpl.CreateInfo
{
GrContext = session.GrContext,
Canvas = session.Canvas,
Surface = session.SkSurface,
Dpi = SkiaPlatform.DefaultDpi * session.ScaleFactor,
VisualBrushRenderer = visualBrushRenderer,
DisableTextLcdRendering = true

1
src/Skia/Avalonia.Skia/ISkiaDrawingContextImpl.cs

@ -7,5 +7,6 @@ namespace Avalonia.Skia
{
SKCanvas SkCanvas { get; }
GRContext GrContext { get; }
SKSurface SkSurface { get; }
}
}

2
src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs

@ -70,7 +70,7 @@ namespace Avalonia.Skia
var createInfo = new DrawingContextImpl.CreateInfo
{
Canvas = _canvas,
Surface = _surface,
Dpi = Dpi,
VisualBrushRenderer = visualBrushRenderer,
DisableTextLcdRendering = _disableLcdRendering,

Loading…
Cancel
Save