From 6ac363bf474f23205ba1b1fcc60382343b93b556 Mon Sep 17 00:00:00 2001 From: donandren Date: Sun, 3 Jul 2016 21:25:37 +0300 Subject: [PATCH] avoid passing delegates here and there in rendering code - fixed in FormattedText.Draw --- src/Skia/Avalonia.Skia/DrawingContextImpl.cs | 4 ++-- src/Skia/Avalonia.Skia/FormattedTextImpl.cs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index f45353b32a..596aec2e8f 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -121,7 +121,7 @@ namespace Avalonia.Skia } } - private PaintWrapper CreatePaint(IBrush brush, Size targetSize) + internal PaintWrapper CreatePaint(IBrush brush, Size targetSize) { SKPaint paint = new SKPaint(); var rv = new PaintWrapper(paint); @@ -306,7 +306,7 @@ namespace Avalonia.Skia using (var paint = CreatePaint(foreground, text.Measure())) { var textImpl = text.PlatformImpl as FormattedTextImpl; - textImpl.Draw(Canvas, origin.ToSKPoint(), paint, CreatePaint); + textImpl.Draw(this, Canvas, origin.ToSKPoint(), paint); } } diff --git a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs index 87ca6f5112..dc1c93819c 100644 --- a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs +++ b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs @@ -181,9 +181,9 @@ namespace Avalonia.Skia return _text; } - internal void Draw(SKCanvas canvas, SKPoint origin, - DrawingContextImpl.PaintWrapper foreground, - Func brushFactory) + internal void Draw(DrawingContextImpl context, + SKCanvas canvas, SKPoint origin, + DrawingContextImpl.PaintWrapper foreground) { /* TODO: This originated from Native code, it might be useful for debugging character positions as * we improve the FormattedText support. Will need to port this to C# obviously. Rmove when @@ -243,7 +243,7 @@ namespace Avalonia.Skia if (fb != null) { //TODO: figure out how to get the brush size - currentWrapper = brushFactory(fb, new Size()); + currentWrapper = context.CreatePaint(fb, new Size()); } else {