From 08a72e893c4efda95ba83fab9d4b027a4cab7ef5 Mon Sep 17 00:00:00 2001 From: Benedikt Schroeder Date: Thu, 22 Apr 2021 13:17:00 +0200 Subject: [PATCH] Increase TextFormatter compatibility with WPF's version --- .../Primitives/AccessText.cs | 76 +---- src/Avalonia.Controls/TextBlock.cs | 25 +- .../HeadlessPlatformRenderInterface.cs | 3 +- src/Avalonia.Input/MouseDevice.cs | 2 +- src/Avalonia.Visuals/ApiCompatBaseline.txt | 59 +++- .../Media/BaselineAlignment.cs | 32 ++ src/Avalonia.Visuals/Media/FlowDirection.cs | 25 ++ src/Avalonia.Visuals/Media/GlyphRun.cs | 212 +++++++------ src/Avalonia.Visuals/Media/GlyphRunMetrics.cs | 25 ++ src/Avalonia.Visuals/Media/GlyphTypeface.cs | 2 + .../Media/TextFormatting/DrawableTextRun.cs | 3 +- .../GenericTextParagraphProperties.cs | 144 ++++++++- .../GenericTextRunProperties.cs | 11 +- .../Media/TextFormatting/LogicalDirection.cs | 14 + .../TextFormatting/ShapedTextCharacters.cs | 63 ++-- .../Media/TextFormatting/TextCharacters.cs | 8 + .../Media/TextFormatting/TextEndOfLine.cs | 6 + .../Media/TextFormatting/TextFormatterImpl.cs | 221 +++++++------ .../Media/TextFormatting/TextLayout.cs | 300 ++++++++++++++++-- .../Media/TextFormatting/TextLine.cs | 117 ++++++- .../Media/TextFormatting/TextLineBreak.cs | 10 + .../Media/TextFormatting/TextLineImpl.cs | 265 ++++++++++------ .../Media/TextFormatting/TextLineMetrics.cs | 101 ++---- .../TextFormatting/TextParagraphProperties.cs | 37 ++- .../Media/TextFormatting/TextRun.cs | 2 +- .../Media/TextFormatting/TextRunProperties.cs | 7 +- .../Platform/IPlatformRenderInterface.cs | 3 +- .../Avalonia.Skia/PlatformRenderInterface.cs | 12 +- .../Avalonia.Direct2D1/Direct2D1Platform.cs | 8 +- .../NullRenderingPlatform.cs | 4 +- .../Media/VisualBrushTests.cs | 20 +- .../Media/GlyphRunTests.cs | 46 +++ .../TextFormatting/FormattableTextSource.cs | 38 --- .../TextFormatting/FormattedTextSource.cs | 121 +++++++ .../TextFormatting/MultiBufferTextSource.cs | 5 + .../TextFormatting/SingleBufferTextSource.cs | 7 +- .../TextFormatting/TextFormatterTests.cs | 95 +++++- .../Media/TextFormatting/TextLayoutTests.cs | 71 +++-- .../Media/TextFormatting/TextLineTests.cs | 36 ++- .../MockPlatformRenderInterface.cs | 3 +- .../VisualTree/MockRenderInterface.cs | 2 +- .../VisualBrush_Fill_NoTile.expected.png | Bin 117709 -> 117975 bytes .../VisualBrush_InTree_Visual.expected.png | Bin 404 -> 403 bytes ..._NoStretch_FlipXY_TopLeftDest.expected.png | Bin 2631 -> 2665 bytes ...h_NoStretch_FlipX_TopLeftDest.expected.png | Bin 2996 -> 3032 bytes ...h_NoStretch_FlipY_TopLeftDest.expected.png | Bin 2276 -> 2305 bytes ...retch_NoTile_Alignment_Center.expected.png | Bin 4317 -> 4408 bytes ...NoTile_BottomRightQuarterDest.expected.png | Bin 1230 -> 1239 bytes ...ualBrush_UniformToFill_NoTile.expected.png | Bin 14093 -> 14390 bytes .../VisualBrush_Uniform_NoTile.expected.png | Bin 10984 -> 11334 bytes .../VisualBrush_Fill_NoTile.expected.png | Bin 37676 -> 37842 bytes .../VisualBrush_InTree_Visual.expected.png | Bin 370 -> 370 bytes ..._NoStretch_FlipXY_TopLeftDest.expected.png | Bin 2631 -> 2667 bytes ...h_NoStretch_FlipX_TopLeftDest.expected.png | Bin 3013 -> 3049 bytes ...h_NoStretch_FlipY_TopLeftDest.expected.png | Bin 2213 -> 2242 bytes ...retch_NoTile_Alignment_Center.expected.png | Bin 4448 -> 4552 bytes ...NoTile_BottomRightQuarterDest.expected.png | Bin 1228 -> 1239 bytes ...ualBrush_UniformToFill_NoTile.expected.png | Bin 8679 -> 8694 bytes .../VisualBrush_Uniform_NoTile.expected.png | Bin 7134 -> 7157 bytes 59 files changed, 1585 insertions(+), 656 deletions(-) create mode 100644 src/Avalonia.Visuals/Media/BaselineAlignment.cs create mode 100644 src/Avalonia.Visuals/Media/FlowDirection.cs create mode 100644 src/Avalonia.Visuals/Media/GlyphRunMetrics.cs create mode 100644 src/Avalonia.Visuals/Media/TextFormatting/LogicalDirection.cs create mode 100644 tests/Avalonia.Skia.UnitTests/Media/GlyphRunTests.cs delete mode 100644 tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattableTextSource.cs create mode 100644 tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattedTextSource.cs diff --git a/src/Avalonia.Controls/Primitives/AccessText.cs b/src/Avalonia.Controls/Primitives/AccessText.cs index 7a5e6ce426..c42c6f100c 100644 --- a/src/Avalonia.Controls/Primitives/AccessText.cs +++ b/src/Avalonia.Controls/Primitives/AccessText.cs @@ -67,7 +67,7 @@ namespace Avalonia.Controls.Primitives if (underscore != -1 && ShowAccessKey) { - var rect = HitTestTextPosition(underscore); + var rect = TextLayout.HitTestTextPosition(underscore); var offset = new Vector(0, -0.5); context.DrawLine( new Pen(Foreground, 1), @@ -76,80 +76,6 @@ namespace Avalonia.Controls.Primitives } } - /// - /// Get the pixel location relative to the top-left of the layout box given the text position. - /// - /// The text position. - /// - private Rect HitTestTextPosition(int textPosition) - { - if (TextLayout == null) - { - return new Rect(); - } - - if (TextLayout.TextLines.Count == 0) - { - return new Rect(); - } - - if (textPosition < 0 || textPosition >= Text.Length) - { - var lastLine = TextLayout.TextLines[TextLayout.TextLines.Count - 1]; - - var lineX = lastLine.LineMetrics.Size.Width; - - var lineY = Bounds.Height - lastLine.LineMetrics.Size.Height; - - return new Rect(lineX, lineY, 0, lastLine.LineMetrics.Size.Height); - } - - var currentY = 0.0; - - foreach (var textLine in TextLayout.TextLines) - { - if (textLine.TextRange.End < textPosition) - { - currentY += textLine.LineMetrics.Size.Height; - - continue; - } - - var currentX = 0.0; - - foreach (var textRun in textLine.TextRuns) - { - if (!(textRun is ShapedTextCharacters shapedTextCharacters)) - { - continue; - } - - if (shapedTextCharacters.GlyphRun.Characters.End < textPosition) - { - currentX += shapedTextCharacters.Size.Width; - - continue; - } - - var characterHit = - shapedTextCharacters.GlyphRun.FindNearestCharacterHit(textPosition, out var width); - - var distance = shapedTextCharacters.GlyphRun.GetDistanceFromCharacterHit(characterHit); - - currentX += distance - width; - - if (characterHit.TrailingLength == 0) - { - width = 0.0; - } - - return new Rect(currentX, currentY, width, shapedTextCharacters.Size.Height); - } - } - - return new Rect(); - } - /// protected override TextLayout CreateTextLayout(Size constraint, string text) { diff --git a/src/Avalonia.Controls/TextBlock.cs b/src/Avalonia.Controls/TextBlock.cs index 31517ba59d..14cde774f4 100644 --- a/src/Avalonia.Controls/TextBlock.cs +++ b/src/Avalonia.Controls/TextBlock.cs @@ -416,26 +416,8 @@ namespace Avalonia.Controls { return; } - - var textAlignment = TextAlignment; - - var width = Bounds.Size.Width; - - var offsetX = 0.0; - - switch (textAlignment) - { - case TextAlignment.Center: - offsetX = (width - TextLayout.Size.Width) / 2; - break; - - case TextAlignment.Right: - offsetX = width - TextLayout.Size.Width; - break; - } - + var padding = Padding; - var top = padding.Top; var textSize = TextLayout.Size; @@ -453,10 +435,7 @@ namespace Avalonia.Controls } } - using (context.PushPostTransform(Matrix.CreateTranslation(padding.Left + offsetX, top))) - { - TextLayout.Draw(context); - } + TextLayout.Draw(context, new Point(padding.Left, top)); } /// diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs index 62cac378d7..addc89b205 100644 --- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs +++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs @@ -90,9 +90,8 @@ namespace Avalonia.Headless return new HeadlessBitmapStub(destinationSize, new Vector(96, 96)); } - public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width) + public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun) { - width = 100; return new HeadlessGlyphRunStub(); } diff --git a/src/Avalonia.Input/MouseDevice.cs b/src/Avalonia.Input/MouseDevice.cs index 5c63546f5d..6e937b7e13 100644 --- a/src/Avalonia.Input/MouseDevice.cs +++ b/src/Avalonia.Input/MouseDevice.cs @@ -435,7 +435,7 @@ namespace Avalonia.Input IInputElement? branch = null; - var el = element; + IInputElement? el = element; while (el != null) { diff --git a/src/Avalonia.Visuals/ApiCompatBaseline.txt b/src/Avalonia.Visuals/ApiCompatBaseline.txt index 805d1955ea..35ba8f2b19 100644 --- a/src/Avalonia.Visuals/ApiCompatBaseline.txt +++ b/src/Avalonia.Visuals/ApiCompatBaseline.txt @@ -1,4 +1,58 @@ Compat issues with assembly Avalonia.Visuals: +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.DrawableTextRun.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract. +CannotAddAbstractMembers : Member 'public void Avalonia.Media.TextFormatting.DrawableTextRun.Draw(Avalonia.Media.DrawingContext, Avalonia.Point)' is abstract in the implementation but is missing in the contract. +CannotSealType : Type 'Avalonia.Media.TextFormatting.GenericTextParagraphProperties' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract. +CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextFormatting.TextRunProperties Avalonia.Media.TextFormatting.GenericTextParagraphProperties.DefaultTextRunProperties' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public System.Double Avalonia.Media.TextFormatting.GenericTextParagraphProperties.LineHeight' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextAlignment Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextAlignment' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextWrapping' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextFormatting.TextRunProperties Avalonia.Media.TextFormatting.GenericTextParagraphProperties.DefaultTextRunProperties.get()' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public System.Double Avalonia.Media.TextFormatting.GenericTextParagraphProperties.LineHeight.get()' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextAlignment Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextAlignment.get()' is non-virtual in the implementation but is virtual in the contract. +CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextWrapping.get()' is non-virtual in the implementation but is virtual in the contract. +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.GenericTextRunProperties..ctor(Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextDecorationCollection, Avalonia.Media.IBrush, Avalonia.Media.IBrush, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract. +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapedTextCharacters.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract. +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextEndOfLine..ctor()' does not exist in the implementation but it does exist in the contract. +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLayout.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Baseline' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Extent' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextLine.HasOverflowed' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Height' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.NewLineLength' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangAfter' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangLeading' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangTrailing' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Start' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.TrailingWhitespaceLength' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Width' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.WidthIncludingTrailingWhitespace' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Baseline.get()' is abstract in the implementation but is missing in the contract. +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLine.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract. +CannotAddAbstractMembers : Member 'public void Avalonia.Media.TextFormatting.TextLine.Draw(Avalonia.Media.DrawingContext, Avalonia.Point)' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Extent.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextLine.HasOverflowed.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Height.get()' is abstract in the implementation but is missing in the contract. +MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextLineMetrics Avalonia.Media.TextFormatting.TextLine.LineMetrics.get()' does not exist in the implementation but it does exist in the contract. +CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.NewLineLength.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangAfter.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangLeading.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangTrailing.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Start.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.TrailingWhitespaceLength.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Width.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.WidthIncludingTrailingWhitespace.get()' is abstract in the implementation but is missing in the contract. +MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLineMetrics..ctor(Avalonia.Size, System.Double, Avalonia.Media.TextFormatting.TextRange, System.Boolean)' does not exist in the implementation but it does exist in the contract. +MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextLineMetrics Avalonia.Media.TextFormatting.TextLineMetrics.Create(System.Collections.Generic.IEnumerable, Avalonia.Media.TextFormatting.TextRange, System.Double, Avalonia.Media.TextFormatting.TextParagraphProperties)' does not exist in the implementation but it does exist in the contract. +MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.TextFormatting.TextLineMetrics.Size.get()' does not exist in the implementation but it does exist in the contract. +MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextRange Avalonia.Media.TextFormatting.TextLineMetrics.TextRange.get()' does not exist in the implementation but it does exist in the contract. +CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextParagraphProperties.FirstLineInParagraph' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public Avalonia.Media.FlowDirection Avalonia.Media.TextFormatting.TextParagraphProperties.FlowDirection' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextParagraphProperties.Indent' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextParagraphProperties.FirstLineInParagraph.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public Avalonia.Media.FlowDirection Avalonia.Media.TextFormatting.TextParagraphProperties.FlowDirection.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextParagraphProperties.Indent.get()' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public Avalonia.Media.BaselineAlignment Avalonia.Media.TextFormatting.TextRunProperties.BaselineAlignment' is abstract in the implementation but is missing in the contract. +CannotAddAbstractMembers : Member 'public Avalonia.Media.BaselineAlignment Avalonia.Media.TextFormatting.TextRunProperties.BaselineAlignment.get()' is abstract in the implementation but is missing in the contract. InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.PopBitmapBlendMode()' is present in the implementation but not in the contract. InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.PushBitmapBlendMode(Avalonia.Visuals.Media.Imaging.BitmapBlendingMode)' is present in the implementation but not in the contract. InterfacesShouldHaveSameMembers : Interface member 'public System.Double Avalonia.Platform.IGeometryImpl.ContourLength' is present in the implementation but not in the contract. @@ -6,4 +60,7 @@ InterfacesShouldHaveSameMembers : Interface member 'public System.Double Avaloni InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetPointAndTangentAtDistance(System.Double, Avalonia.Point, Avalonia.Point)' is present in the implementation but not in the contract. InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetPointAtDistance(System.Double, Avalonia.Point)' is present in the implementation but not in the contract. InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetSegment(System.Double, System.Double, System.Boolean, Avalonia.Platform.IGeometryImpl)' is present in the implementation but not in the contract. -Total Issues: 7 +InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun)' is present in the implementation but not in the contract. +InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun, System.Double)' is present in the contract but not in the implementation. +MembersMustExist : Member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun, System.Double)' does not exist in the implementation but it does exist in the contract. +Total Issues: 64 diff --git a/src/Avalonia.Visuals/Media/BaselineAlignment.cs b/src/Avalonia.Visuals/Media/BaselineAlignment.cs new file mode 100644 index 0000000000..71759003fa --- /dev/null +++ b/src/Avalonia.Visuals/Media/BaselineAlignment.cs @@ -0,0 +1,32 @@ +namespace Avalonia.Media +{ + /// + /// Enum specifying where a box should be positioned Vertically + /// + public enum BaselineAlignment + { + /// Align top toward top of container + Top, + + /// Center vertically + Center, + + /// Align bottom toward bottom of container + Bottom, + + /// Align at baseline + Baseline, + + /// Align toward text's top of container + TextTop, + + /// Align toward text's bottom of container + TextBottom, + + /// Align baseline to subscript position of container + Subscript, + + /// Align baseline to superscript position of container + Superscript, + } +} diff --git a/src/Avalonia.Visuals/Media/FlowDirection.cs b/src/Avalonia.Visuals/Media/FlowDirection.cs new file mode 100644 index 0000000000..45684907b1 --- /dev/null +++ b/src/Avalonia.Visuals/Media/FlowDirection.cs @@ -0,0 +1,25 @@ +namespace Avalonia.Media +{ + /// + /// The 'flow-direction' property specifies whether the primary text advance + /// direction shall be left-to-right or right-to-left. + /// + public enum FlowDirection + { + /// + /// Sets the primary text advance direction to left-to-right, and the line + /// progression direction to top-to-bottom as is common in most Roman-based + /// documents. For most characters, the current text position is advanced + /// from left to right after each glyph is rendered. The 'direction' property + /// is set to 'ltr'. + /// + LeftToRight, + + /// + /// Sets the primary text advance direction to right-to-left, and the line + /// progression direction to top-to-bottom as is common in Arabic or Hebrew + /// scripts. The direction property is set to 'rtl'. + /// + RightToLeft + } +} diff --git a/src/Avalonia.Visuals/Media/GlyphRun.cs b/src/Avalonia.Visuals/Media/GlyphRun.cs index af228ec57b..2b787462e4 100644 --- a/src/Avalonia.Visuals/Media/GlyphRun.cs +++ b/src/Avalonia.Visuals/Media/GlyphRun.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Avalonia.Media.TextFormatting.Unicode; using Avalonia.Platform; using Avalonia.Utilities; @@ -16,9 +17,9 @@ namespace Avalonia.Media private IGlyphRunImpl _glyphRunImpl; private GlyphTypeface _glyphTypeface; private double _fontRenderingEmSize; - private Size? _size; private int _biDiLevel; private Point? _baselineOrigin; + private GlyphRunMetrics? _glyphRunMetrics; private ReadOnlySlice _glyphIndices; private ReadOnlySlice _glyphAdvances; @@ -90,6 +91,24 @@ namespace Avalonia.Media set => Set(ref _fontRenderingEmSize, value); } + /// + /// Gets or sets the conservative bounding box of the . + /// + public Size Size => new Size(Metrics.WidthIncludingTrailingWhitespace, Metrics.Height); + + /// + /// + /// + public GlyphRunMetrics Metrics + { + get + { + _glyphRunMetrics ??= CreateGlyphRunMetrics(); + + return _glyphRunMetrics.Value; + } + } + /// /// Gets or sets the baseline origin of the. /// @@ -168,19 +187,6 @@ namespace Avalonia.Media /// public bool IsLeftToRight => ((BiDiLevel & 1) == 0); - /// - /// Gets or sets the conservative bounding box of the . - /// - public Size Size - { - get - { - _size ??= CalculateSize(); - - return _size.Value; - } - } - /// /// The platform implementation of the . /// @@ -232,16 +238,7 @@ namespace Avalonia.Media for (var i = 0; i < glyphIndex; i++) { - if (GlyphAdvances.IsEmpty) - { - var glyph = GlyphIndices[i]; - - distance += GlyphTypeface.GetGlyphAdvance(glyph) * Scale; - } - else - { - distance += GlyphAdvances[i]; - } + distance += GetGlyphAdvance(i); } return distance; @@ -282,42 +279,20 @@ namespace Avalonia.Media var currentX = 0.0; var index = 0; - if (GlyphTypeface.IsFixedPitch) + for (; index < GlyphIndices.Length - Metrics.NewlineLength; index++) { - var glyph = GlyphIndices[index]; + var advance = GetGlyphAdvance(index); - var advance = GlyphTypeface.GetGlyphAdvance(glyph) * Scale; - - index = Math.Min(GlyphIndices.Length - 1, - (int)Math.Round(distance / advance, MidpointRounding.AwayFromZero)); - } - else - { - for (; index < GlyphIndices.Length; index++) + if (currentX + advance >= distance) { - double advance; - - if (GlyphAdvances.IsEmpty) - { - var glyph = GlyphIndices[index]; - - advance = GlyphTypeface.GetGlyphAdvance(glyph) * Scale; - } - else - { - advance = GlyphAdvances[index]; - } - - if (currentX + advance >= distance) - { - break; - } - - currentX += advance; + break; } + + currentX += advance; } - var characterHit = FindNearestCharacterHit(GlyphClusters.IsEmpty ? index : GlyphClusters[index], out var width); + var characterHit = + FindNearestCharacterHit(GlyphClusters.IsEmpty ? index : GlyphClusters[index], out var width); var offset = GetDistanceFromCharacterHit(new CharacterHit(characterHit.FirstCharacterIndex)); @@ -343,7 +318,8 @@ namespace Avalonia.Media return FindNearestCharacterHit(characterHit.FirstCharacterIndex, out _); } - var nextCharacterHit = FindNearestCharacterHit(characterHit.FirstCharacterIndex + characterHit.TrailingLength, out _); + var nextCharacterHit = + FindNearestCharacterHit(characterHit.FirstCharacterIndex + characterHit.TrailingLength, out _); return new CharacterHit(nextCharacterHit.FirstCharacterIndex); } @@ -368,14 +344,6 @@ namespace Avalonia.Media FindNearestCharacterHit(characterHit.FirstCharacterIndex - 1, out _); } - private class ReverseComparer : IComparer - { - public int Compare(T x, T y) - { - return Comparer.Default.Compare(y, x); - } - } - /// /// Finds a glyph index for given character index. /// @@ -472,7 +440,7 @@ namespace Avalonia.Media if (GlyphClusters.IsEmpty) { - width = GetGlyphWidth(index); + width = GetGlyphAdvance(index); return new CharacterHit(start, 1); } @@ -485,7 +453,7 @@ namespace Avalonia.Media while (nextCluster == cluster) { - width += GetGlyphWidth(currentIndex); + width += GetGlyphAdvance(currentIndex); if (IsLeftToRight) { @@ -528,16 +496,16 @@ namespace Avalonia.Media /// /// The glyph index. /// The glyph's width. - private double GetGlyphWidth(int index) + private double GetGlyphAdvance(int index) { - if (GlyphAdvances.IsEmpty) + if (!GlyphAdvances.IsEmpty) { - var glyph = GlyphIndices[index]; - - return GlyphTypeface.GetGlyphAdvance(glyph) * Scale; + return GlyphAdvances[index]; } - return GlyphAdvances[index]; + var glyph = GlyphIndices[index]; + + return GlyphTypeface.GetGlyphAdvance(glyph) * Scale; } /// @@ -549,34 +517,90 @@ namespace Avalonia.Media return new Point(0, -GlyphTypeface.Ascent * Scale); } - /// - /// Calculates the size of the . - /// - /// - /// The calculated bounds. - /// - private Size CalculateSize() + private GlyphRunMetrics CreateGlyphRunMetrics() { var height = (GlyphTypeface.Descent - GlyphTypeface.Ascent + GlyphTypeface.LineGap) * Scale; - var width = 0.0; + var widthIncludingTrailingWhitespace = 0d; + var width = 0d; + + var trailingWhitespaceLength = GetTrailingWhitespaceLength(out var newLineLength); - if (GlyphAdvances.IsEmpty) + for (var index = 0; index < _glyphIndices.Length; index++) { - foreach (var glyph in GlyphIndices) + var advance = GetGlyphAdvance(index); + + widthIncludingTrailingWhitespace += advance; + + if (index > _glyphIndices.Length - 1 - trailingWhitespaceLength) { - width += GlyphTypeface.GetGlyphAdvance(glyph) * Scale; + continue; + } + + width += advance; + } + + return new GlyphRunMetrics(width, widthIncludingTrailingWhitespace, trailingWhitespaceLength, newLineLength, + height); + } + + private int GetTrailingWhitespaceLength(out int newLineLength) + { + newLineLength = 0; + + if (_characters.IsEmpty) + { + return 0; + } + + var trailingWhitespaceLength = 0; + + if (_glyphClusters.IsEmpty) + { + for (var i = _characters.Length - 1; i >= 0;) + { + var codepoint = Codepoint.ReadAt(_characters, i, out var count); + + if (!codepoint.IsWhiteSpace) + { + break; + } + + if (codepoint.IsBreakChar) + { + newLineLength++; + } + + trailingWhitespaceLength++; + + i -= count; } } else { - foreach (var advance in GlyphAdvances) + for (var i = _glyphClusters.Length - 1; i >= 0; i--) { - width += advance; + var cluster = _glyphClusters[i]; + + var codepointIndex = cluster - _characters.Start; + + var codepoint = Codepoint.ReadAt(_characters, codepointIndex, out _); + + if (!codepoint.IsWhiteSpace) + { + break; + } + + if (codepoint.IsBreakChar) + { + newLineLength++; + } + + trailingWhitespaceLength++; } } - return new Size(width, height); + return trailingWhitespaceLength; } private void Set(ref T field, T value) @@ -586,6 +610,10 @@ namespace Avalonia.Media throw new InvalidOperationException("GlyphRun can't be changed after it has been initialized.'"); } + _glyphRunMetrics = null; + + _baselineOrigin = null; + field = value; } @@ -613,16 +641,20 @@ namespace Avalonia.Media var platformRenderInterface = AvaloniaLocator.Current.GetService(); - _glyphRunImpl = platformRenderInterface.CreateGlyphRun(this, out var width); - - var height = (GlyphTypeface.Descent - GlyphTypeface.Ascent + GlyphTypeface.LineGap) * Scale; - - _size = new Size(width, height); + _glyphRunImpl = platformRenderInterface.CreateGlyphRun(this); } void IDisposable.Dispose() { _glyphRunImpl?.Dispose(); } + + private class ReverseComparer : IComparer + { + public int Compare(T x, T y) + { + return Comparer.Default.Compare(y, x); + } + } } } diff --git a/src/Avalonia.Visuals/Media/GlyphRunMetrics.cs b/src/Avalonia.Visuals/Media/GlyphRunMetrics.cs new file mode 100644 index 0000000000..a8698a7d82 --- /dev/null +++ b/src/Avalonia.Visuals/Media/GlyphRunMetrics.cs @@ -0,0 +1,25 @@ +namespace Avalonia.Media +{ + public readonly struct GlyphRunMetrics + { + public GlyphRunMetrics(double width, double widthIncludingTrailingWhitespace, int trailingWhitespaceLength, + int newlineLength, double height) + { + Width = width; + WidthIncludingTrailingWhitespace = widthIncludingTrailingWhitespace; + TrailingWhitespaceLength = trailingWhitespaceLength; + NewlineLength = newlineLength; + Height = height; + } + + public double Width { get; } + + public double WidthIncludingTrailingWhitespace { get; } + + public int TrailingWhitespaceLength { get; } + + public int NewlineLength { get; } + + public double Height { get; } + } +} diff --git a/src/Avalonia.Visuals/Media/GlyphTypeface.cs b/src/Avalonia.Visuals/Media/GlyphTypeface.cs index 35aa62aa65..2be505b9c0 100644 --- a/src/Avalonia.Visuals/Media/GlyphTypeface.cs +++ b/src/Avalonia.Visuals/Media/GlyphTypeface.cs @@ -5,6 +5,8 @@ namespace Avalonia.Media { public sealed class GlyphTypeface : IDisposable { + public const int InvisibleGlyph = 3; + public GlyphTypeface(Typeface typeface) : this(FontManager.Current?.PlatformImpl.CreateGlyphTypeface(typeface)) { diff --git a/src/Avalonia.Visuals/Media/TextFormatting/DrawableTextRun.cs b/src/Avalonia.Visuals/Media/TextFormatting/DrawableTextRun.cs index 338c92f6b1..3757a4506a 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/DrawableTextRun.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/DrawableTextRun.cs @@ -14,6 +14,7 @@ /// Draws the at the given origin. /// /// The drawing context. - public abstract void Draw(DrawingContext drawingContext); + /// The origin. + public abstract void Draw(DrawingContext drawingContext, Point origin); } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/GenericTextParagraphProperties.cs b/src/Avalonia.Visuals/Media/TextFormatting/GenericTextParagraphProperties.cs index 8e7d934bca..dccad1e647 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/GenericTextParagraphProperties.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/GenericTextParagraphProperties.cs @@ -1,33 +1,144 @@ namespace Avalonia.Media.TextFormatting { - public class GenericTextParagraphProperties : TextParagraphProperties + /// + /// Generic implementation of TextParagraphProperties + /// + public sealed class GenericTextParagraphProperties : TextParagraphProperties { + private FlowDirection _flowDirection; private TextAlignment _textAlignment; - private TextWrapping _textWrapping; + private TextWrapping _textWrap; private double _lineHeight; - public GenericTextParagraphProperties( - TextRunProperties defaultTextRunProperties, + /// + /// Constructing TextParagraphProperties + /// + /// default paragraph's default run properties + /// logical horizontal alignment + /// text wrap option + /// Paragraph line height + public GenericTextParagraphProperties(TextRunProperties defaultTextRunProperties, TextAlignment textAlignment = TextAlignment.Left, - TextWrapping textWrapping = TextWrapping.NoWrap, + TextWrapping textWrap = TextWrapping.NoWrap, double lineHeight = 0) { DefaultTextRunProperties = defaultTextRunProperties; + _textAlignment = textAlignment; + _textWrap = textWrap; + _lineHeight = lineHeight; + } + /// + /// Constructing TextParagraphProperties + /// + /// text flow direction + /// logical horizontal alignment + /// true if the paragraph is the first line in the paragraph + /// true if the line is always collapsible + /// default paragraph's default run properties + /// text wrap option + /// Paragraph line height + /// line indentation + public GenericTextParagraphProperties( + FlowDirection flowDirection, + TextAlignment textAlignment, + bool firstLineInParagraph, + bool alwaysCollapsible, + TextRunProperties defaultTextRunProperties, + TextWrapping textWrap, + double lineHeight, + double indent + ) + { + _flowDirection = flowDirection; _textAlignment = textAlignment; + FirstLineInParagraph = firstLineInParagraph; + AlwaysCollapsible = alwaysCollapsible; + DefaultTextRunProperties = defaultTextRunProperties; + _textWrap = textWrap; + _lineHeight = lineHeight; + Indent = indent; + } - _textWrapping = textWrapping; + /// + /// Constructing TextParagraphProperties from another one + /// + /// source line props + public GenericTextParagraphProperties(TextParagraphProperties textParagraphProperties) + : this(textParagraphProperties.FlowDirection, + textParagraphProperties.TextAlignment, + textParagraphProperties.FirstLineInParagraph, + textParagraphProperties.AlwaysCollapsible, + textParagraphProperties.DefaultTextRunProperties, + textParagraphProperties.TextWrapping, + textParagraphProperties.LineHeight, + textParagraphProperties.Indent) + { + } - _lineHeight = lineHeight; + /// + /// This property specifies whether the primary text advance + /// direction shall be left-to-right, right-to-left, or top-to-bottom. + /// + public override FlowDirection FlowDirection + { + get { return _flowDirection; } } + /// + /// This property describes how inline content of a block is aligned. + /// + public override TextAlignment TextAlignment + { + get { return _textAlignment; } + } + + /// + /// Paragraph's line height + /// + public override double LineHeight + { + get { return _lineHeight; } + } + + /// + /// Indicates the first line of the paragraph. + /// + public override bool FirstLineInParagraph { get; } + + /// + /// If true, the formatted line may always be collapsed. If false (the default), + /// only lines that overflow the paragraph width are collapsed. + /// + public override bool AlwaysCollapsible { get; } + + /// + /// Paragraph's default run properties + /// public override TextRunProperties DefaultTextRunProperties { get; } - public override TextAlignment TextAlignment => _textAlignment; + /// + /// This property controls whether or not text wraps when it reaches the flow edge + /// of its containing block box + /// + public override TextWrapping TextWrapping + { + get { return _textWrap; } + } + + /// + /// Line indentation + /// + public override double Indent { get; } - public override TextWrapping TextWrapping => _textWrapping; + /// + /// Set text flow direction + /// + internal void SetFlowDirection(FlowDirection flowDirection) + { + _flowDirection = flowDirection; + } - public override double LineHeight => _lineHeight; /// /// Set text alignment @@ -37,20 +148,21 @@ _textAlignment = textAlignment; } + /// - /// Set text wrap + /// Set line height /// - internal void SetTextWrapping(TextWrapping textWrapping) + internal void SetLineHeight(double lineHeight) { - _textWrapping = textWrapping; + _lineHeight = lineHeight; } /// - /// Set line height + /// Set text wrap /// - internal void SetLineHeight(double lineHeight) + internal void SetTextWrapping(TextWrapping textWrap) { - _lineHeight = lineHeight; + _textWrap = textWrap; } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/GenericTextRunProperties.cs b/src/Avalonia.Visuals/Media/TextFormatting/GenericTextRunProperties.cs index 3db3589498..7756ca5c8f 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/GenericTextRunProperties.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/GenericTextRunProperties.cs @@ -7,8 +7,11 @@ namespace Avalonia.Media.TextFormatting /// public class GenericTextRunProperties : TextRunProperties { - public GenericTextRunProperties(Typeface typeface, double fontRenderingEmSize = 12, - TextDecorationCollection textDecorations = null, IBrush foregroundBrush = null, IBrush backgroundBrush = null, + private const double DefaultFontRenderingEmSize = 12; + + public GenericTextRunProperties(Typeface typeface, double fontRenderingEmSize = DefaultFontRenderingEmSize, + TextDecorationCollection textDecorations = null, IBrush foregroundBrush = null, + IBrush backgroundBrush = null, BaselineAlignment baselineAlignment = BaselineAlignment.Baseline, CultureInfo cultureInfo = null) { Typeface = typeface; @@ -16,6 +19,7 @@ namespace Avalonia.Media.TextFormatting TextDecorations = textDecorations; ForegroundBrush = foregroundBrush; BackgroundBrush = backgroundBrush; + BaselineAlignment = baselineAlignment; CultureInfo = cultureInfo; } @@ -34,6 +38,9 @@ namespace Avalonia.Media.TextFormatting /// public override IBrush BackgroundBrush { get; } + /// + public override BaselineAlignment BaselineAlignment { get; } + /// public override CultureInfo CultureInfo { get; } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/LogicalDirection.cs b/src/Avalonia.Visuals/Media/TextFormatting/LogicalDirection.cs new file mode 100644 index 0000000000..5ff0d0c38f --- /dev/null +++ b/src/Avalonia.Visuals/Media/TextFormatting/LogicalDirection.cs @@ -0,0 +1,14 @@ +namespace Avalonia.Media.TextFormatting +{ + public enum LogicalDirection + { + /// + /// Backward, or from right to left. + /// + Backward, + /// + /// Forward, or from left to right. + /// + Forward + } +} diff --git a/src/Avalonia.Visuals/Media/TextFormatting/ShapedTextCharacters.cs b/src/Avalonia.Visuals/Media/TextFormatting/ShapedTextCharacters.cs index 9f6f2b2f43..723d5e81ab 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/ShapedTextCharacters.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/ShapedTextCharacters.cs @@ -45,38 +45,41 @@ namespace Avalonia.Media.TextFormatting public GlyphRun GlyphRun { get; } /// - public override void Draw(DrawingContext drawingContext) + public override void Draw(DrawingContext drawingContext, Point origin) { - if (GlyphRun.GlyphIndices.Length == 0) + using (drawingContext.PushPostTransform(Matrix.CreateTranslation(origin))) { - return; - } - - if (Properties.Typeface == default) - { - return; - } - - if (Properties.ForegroundBrush == null) - { - return; - } - - if (Properties.BackgroundBrush != null) - { - drawingContext.DrawRectangle(Properties.BackgroundBrush, null, new Rect(Size)); - } - - drawingContext.DrawGlyphRun(Properties.ForegroundBrush, GlyphRun); - - if (Properties.TextDecorations == null) - { - return; - } - - foreach (var textDecoration in Properties.TextDecorations) - { - textDecoration.Draw(drawingContext, this); + if (GlyphRun.GlyphIndices.Length == 0) + { + return; + } + + if (Properties.Typeface == default) + { + return; + } + + if (Properties.ForegroundBrush == null) + { + return; + } + + if (Properties.BackgroundBrush != null) + { + drawingContext.DrawRectangle(Properties.BackgroundBrush, null, new Rect(Size)); + } + + drawingContext.DrawGlyphRun(Properties.ForegroundBrush, GlyphRun); + + if (Properties.TextDecorations == null) + { + return; + } + + foreach (var textDecoration in Properties.TextDecorations) + { + textDecoration.Draw(drawingContext, this); + } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextCharacters.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextCharacters.cs index b91a50a27c..c6f524451b 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextCharacters.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextCharacters.cs @@ -16,6 +16,14 @@ namespace Avalonia.Media.TextFormatting Properties = properties; } + public TextCharacters(ReadOnlySlice text, int offsetToFirstCharacter, int length, + TextRunProperties properties) + { + Text = text.Skip(offsetToFirstCharacter).Take(length); + TextSourceLength = length; + Properties = properties; + } + /// public override int TextSourceLength { get; } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextEndOfLine.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextEndOfLine.cs index fd71fb53e7..21e354a119 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextEndOfLine.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextEndOfLine.cs @@ -5,5 +5,11 @@ /// public class TextEndOfLine : TextRun { + public TextEndOfLine(int textSourceLength = DefaultTextSourceLength) + { + TextSourceLength = textSourceLength; + } + + public override int TextSourceLength { get; } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextFormatterImpl.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextFormatterImpl.cs index 6ae5258323..300d61f81d 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextFormatterImpl.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextFormatterImpl.cs @@ -12,7 +12,8 @@ namespace Avalonia.Media.TextFormatting { var textWrapping = paragraphProperties.TextWrapping; - var textRuns = FetchTextRuns(textSource, firstTextSourceIndex, previousLineBreak, out var nextLineBreak); + var textRuns = FetchTextRuns(textSource, firstTextSourceIndex, previousLineBreak, + out var nextLineBreak); var textRange = GetTextRange(textRuns); @@ -21,20 +22,18 @@ namespace Avalonia.Media.TextFormatting switch (textWrapping) { case TextWrapping.NoWrap: - { - var textLineMetrics = - TextLineMetrics.Create(textRuns, textRange, paragraphWidth, paragraphProperties); - - textLine = new TextLineImpl(textRuns, textLineMetrics, nextLineBreak); - break; - } + { + textLine = new TextLineImpl(textRuns, textRange, paragraphWidth, paragraphProperties, + nextLineBreak); + break; + } case TextWrapping.WrapWithOverflow: case TextWrapping.Wrap: - { - textLine = PerformTextWrapping(textRuns, textRange, paragraphWidth, paragraphProperties, - nextLineBreak); - break; - } + { + textLine = PerformTextWrapping(textRuns, textRange, paragraphWidth, paragraphProperties, + nextLineBreak); + break; + } default: throw new ArgumentOutOfRangeException(); } @@ -51,7 +50,8 @@ namespace Avalonia.Media.TextFormatting /// /// true if characters fit into the available width; otherwise, false. /// - internal static bool TryMeasureCharacters(ShapedTextCharacters textCharacters, double availableWidth, out int count) + internal static bool TryMeasureCharacters(ShapedTextCharacters textCharacters, double availableWidth, + out int count) { var glyphRun = textCharacters.GlyphRun; @@ -282,21 +282,24 @@ namespace Avalonia.Media.TextFormatting switch (textRun) { case TextCharacters textCharacters: - { - var shapeableRuns = textCharacters.GetShapeableCharacters(); - - foreach (var run in shapeableRuns) - { - var glyphRun = TextShaper.Current.ShapeText(run.Text, run.Properties.Typeface, - run.Properties.FontRenderingEmSize, run.Properties.CultureInfo); + { + var shapeableRuns = textCharacters.GetShapeableCharacters(); - var shapedCharacters = new ShapedTextCharacters(glyphRun, run.Properties); + foreach (var run in shapeableRuns) + { + var glyphRun = TextShaper.Current.ShapeText(run.Text, run.Properties.Typeface, + run.Properties.FontRenderingEmSize, run.Properties.CultureInfo); - textRuns.Add(shapedCharacters); - } + var shapedCharacters = new ShapedTextCharacters(glyphRun, run.Properties); - break; + textRuns.Add(shapedCharacters); } + + break; + } + case TextEndOfLine textEndOfLine: + nextLineBreak = new TextLineBreak(textEndOfLine); + break; } if (TryGetLineBreak(textRun, out var runLineBreak)) @@ -359,107 +362,137 @@ namespace Avalonia.Media.TextFormatting { var availableWidth = paragraphWidth; var currentWidth = 0.0; - var runIndex = 0; - var currentLength = 0; + var measuredLength = 0; - while (runIndex < textRuns.Count) + foreach (var currentRun in textRuns) { - var currentRun = textRuns[runIndex]; - if (currentWidth + currentRun.Size.Width > availableWidth) { - var breakFound = false; + if (TryMeasureCharacters(currentRun, paragraphWidth - currentWidth, out var count)) + { + measuredLength += count; + } - var currentBreakPosition = 0; + break; + } - if (TryMeasureCharacters(currentRun, paragraphWidth - currentWidth, out var measuredLength)) - { - if (measuredLength < currentRun.Text.Length) - { - var lineBreaker = new LineBreakEnumerator(currentRun.Text); + currentWidth += currentRun.Size.Width; - while (currentBreakPosition < measuredLength && lineBreaker.MoveNext()) - { - var nextBreakPosition = lineBreaker.Current.PositionWrap; + measuredLength += currentRun.Text.Length; + } - if (nextBreakPosition == 0 || nextBreakPosition > measuredLength) - { - break; - } + var currentLength = 0; - breakFound = lineBreaker.Current.Required || - lineBreaker.Current.PositionWrap != currentRun.Text.Length; + var lastWrapPosition = 0; - currentBreakPosition = nextBreakPosition; - } - } - } - else + var currentPosition = 0; + + if (measuredLength == 0 && paragraphProperties.TextWrapping != TextWrapping.WrapWithOverflow) + { + measuredLength = 1; + } + else + { + for (var index = 0; index < textRuns.Count; index++) + { + var currentRun = textRuns[index]; + + var lineBreaker = new LineBreakEnumerator(currentRun.Text); + + var breakFound = false; + + while (lineBreaker.MoveNext()) { - // Make sure we wrap at least one character. - if (currentLength == 0) + if (lineBreaker.Current.Required && + currentLength + lineBreaker.Current.PositionMeasure <= measuredLength) { - measuredLength = 1; + breakFound = true; + + currentPosition = currentLength + lineBreaker.Current.PositionWrap; + + break; } - } - if (breakFound) - { - measuredLength = currentBreakPosition; - } - else - { - if (paragraphProperties.TextWrapping == TextWrapping.WrapWithOverflow) + if ((paragraphProperties.TextWrapping != TextWrapping.WrapWithOverflow || lastWrapPosition != 0) && + currentLength + lineBreaker.Current.PositionMeasure > measuredLength) { - var lineBreaker = new LineBreakEnumerator(currentRun.Text.Skip(currentBreakPosition)); - - if (lineBreaker.MoveNext()) + if (lastWrapPosition > 0) { - measuredLength = currentBreakPosition + lineBreaker.Current.PositionWrap; + currentPosition = lastWrapPosition; } + else + { + currentPosition = currentLength + lineBreaker.Current.PositionWrap; + } + + breakFound = true; + + break; } - } - currentLength += measuredLength; + if (currentLength + lineBreaker.Current.PositionWrap >= measuredLength) + { + currentPosition = currentLength + lineBreaker.Current.PositionWrap; - var splitResult = SplitTextRuns(textRuns, currentLength); + if (index < textRuns.Count - 1 && + lineBreaker.Current.PositionWrap == currentRun.Text.Length) + { + var nextRun = textRuns[index + 1]; - var textLineMetrics = TextLineMetrics.Create(splitResult.First, - new TextRange(textRange.Start, currentLength), paragraphWidth, paragraphProperties); + lineBreaker = new LineBreakEnumerator(nextRun.Text); - var remainingCharacters = splitResult.Second; + if (lineBreaker.MoveNext() && + lineBreaker.Current.PositionMeasure == 0) + { + currentPosition += lineBreaker.Current.PositionWrap; + } + } - if (currentLineBreak?.RemainingCharacters != null) - { - if (remainingCharacters != null) - { - remainingCharacters.AddRange(currentLineBreak.RemainingCharacters); - } - else - { - remainingCharacters = new List(currentLineBreak.RemainingCharacters); + breakFound = true; + + break; } + + lastWrapPosition = currentLength + lineBreaker.Current.PositionWrap; + } + + if (!breakFound) + { + currentLength += currentRun.Text.Length; + + continue; } - var lineBreak = remainingCharacters != null && remainingCharacters.Count > 0 ? - new TextLineBreak(remainingCharacters) : - null; + measuredLength = currentPosition; - return new TextLineImpl(splitResult.First, textLineMetrics, lineBreak); + break; } + } + + var splitResult = SplitTextRuns(textRuns, measuredLength); - currentWidth += currentRun.Size.Width; + textRange = new TextRange(textRange.Start, measuredLength); - currentLength += currentRun.GlyphRun.Characters.Length; + var remainingCharacters = splitResult.Second; - runIndex++; + if (currentLineBreak?.RemainingCharacters != null) + { + if (remainingCharacters != null) + { + remainingCharacters.AddRange(currentLineBreak.RemainingCharacters); + } + else + { + remainingCharacters = new List(currentLineBreak.RemainingCharacters); + } } - return new TextLineImpl(textRuns, - TextLineMetrics.Create(textRuns, textRange, paragraphWidth, paragraphProperties), - currentLineBreak?.RemainingCharacters != null ? - new TextLineBreak(currentLineBreak.RemainingCharacters) : - null); + var lineBreak = remainingCharacters != null && remainingCharacters.Count > 0 ? + new TextLineBreak(remainingCharacters) : + null; + + return new TextLineImpl(splitResult.First, textRange, paragraphWidth, paragraphProperties, + lineBreak); } /// @@ -545,7 +578,7 @@ namespace Avalonia.Media.TextFormatting _pos += Current.TextSourceLength; - return !(Current is TextEndOfLine); + return true; } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLayout.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextLayout.cs index daa8807bf6..ef427b0cd9 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextLayout.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextLayout.cs @@ -115,27 +115,165 @@ namespace Avalonia.Media.TextFormatting /// Draws the text layout. /// /// The drawing context. - public void Draw(DrawingContext context) + /// The origin. + public void Draw(DrawingContext context, Point origin) { if (!TextLines.Any()) { return; } + var (currentX, currentY) = origin; + + foreach (var textLine in TextLines) + { + textLine.Draw(context, new Point(currentX + textLine.Start, currentY)); + + currentY += textLine.Height; + } + } + + /// + /// Get the pixel location relative to the top-left of the layout box given the text position. + /// + /// The text position. + /// + public Rect HitTestTextPosition(int textPosition) + { + if (TextLines.Count == 0) + { + return new Rect(); + } + + if (textPosition < 0 || textPosition >= _text.Length) + { + var lastLine = TextLines[TextLines.Count - 1]; + + var lineX = lastLine.Width; + + var lineY = Size.Height - lastLine.Height; + + return new Rect(lineX, lineY, 0, lastLine.Height); + } + var currentY = 0.0; foreach (var textLine in TextLines) { - var offsetX = TextLine.GetParagraphOffsetX(textLine.LineMetrics.Size.Width, Size.Width, - _paragraphProperties.TextAlignment); + if (textLine.TextRange.End < textPosition) + { + currentY += textLine.Height; + + continue; + } + + var characterHit = new CharacterHit(textPosition); + + var startX = textLine.GetDistanceFromCharacterHit(characterHit); + + var nextCharacterHit = textLine.GetNextCaretCharacterHit(characterHit); + + var endX = textLine.GetDistanceFromCharacterHit(nextCharacterHit); + + return new Rect(startX, currentY, endX - startX, textLine.Height); + } + + return new Rect(); + } + + public IEnumerable HitTestTextRange(int start, int length) + { + if (start + length <= 0) + { + return Array.Empty(); + } + + var result = new List(TextLines.Count); + + var currentY = 0d; + + foreach (var textLine in TextLines) + { + var currentX = textLine.Start; + + if (textLine.TextRange.End < start) + { + currentY += textLine.Height; + + continue; + } + + if (start > textLine.TextRange.Start) + { + currentX += textLine.GetDistanceFromCharacterHit(new CharacterHit(start)); + } + + var endX = textLine.GetDistanceFromCharacterHit(new CharacterHit(start + length)); + + result.Add(new Rect(currentX, currentY, endX - currentX, textLine.Height)); + + if (textLine.TextRange.Start + textLine.TextRange.Length >= start + length) + { + break; + } + + currentY += textLine.Height; + } + + return result; + } + + public TextHitTestResult HitTestPoint(in Point point) + { + var currentY = 0d; + + var lineIndex = 0; + TextLine currentLine = null; + CharacterHit characterHit; + + for (; lineIndex < TextLines.Count; lineIndex++) + { + currentLine = TextLines[lineIndex]; - using (context.PushPostTransform(Matrix.CreateTranslation(offsetX, currentY))) + if (currentY + currentLine.Height > point.Y) { - textLine.Draw(context); + characterHit = currentLine.GetCharacterHitFromDistance(point.X); + + return GetHitTestResult(currentLine, characterHit, point); } - currentY += textLine.LineMetrics.Size.Height; + currentY += currentLine.Height; } + + if (currentLine is null) + { + return new TextHitTestResult(); + } + + characterHit = currentLine.GetNextCaretCharacterHit(new CharacterHit(currentLine.TextRange.End)); + + return GetHitTestResult(currentLine, characterHit, point); + } + + private TextHitTestResult GetHitTestResult(TextLine textLine, CharacterHit characterHit, Point point) + { + var (x, y) = point; + + var lastTrailingIndex = textLine.TextRange.Start + textLine.TextRange.Length; + + var isInside = x >= 0 && x <= textLine.Width && y >= 0 && y <= textLine.Height; + + if (x >= textLine.Width && textLine.TextRange.Length > 0 && textLine.NewLineLength > 0) + { + lastTrailingIndex -= textLine.NewLineLength; + } + + var textPosition = characterHit.FirstCharacterIndex + characterHit.TrailingLength; + + var isTrailing = lastTrailingIndex == textPosition && characterHit.TrailingLength > 0 || + y > Size.Height; + + return new TextHitTestResult { IsInside = isInside, IsTrailing = isTrailing, TextPosition = textPosition }; } /// @@ -155,7 +293,8 @@ namespace Avalonia.Media.TextFormatting { var textRunStyle = new GenericTextRunProperties(typeface, fontSize, textDecorations, foreground); - return new GenericTextParagraphProperties(textRunStyle, textAlignment, textWrapping, lineHeight); + return new GenericTextParagraphProperties(FlowDirection.LeftToRight, textAlignment, true, false, + textRunStyle, textWrapping, lineHeight, 0); } /// @@ -166,12 +305,12 @@ namespace Avalonia.Media.TextFormatting /// The current height. private static void UpdateBounds(TextLine textLine, ref double width, ref double height) { - if (width < textLine.LineMetrics.Size.Width) + if (width < textLine.Width) { - width = textLine.LineMetrics.Size.Width; + width = textLine.Width; } - height += textLine.LineMetrics.Size.Height; + height += textLine.Height; } /// @@ -190,8 +329,9 @@ namespace Avalonia.Media.TextFormatting new ShapedTextCharacters(glyphRun, _paragraphProperties.DefaultTextRunProperties) }; - return new TextLineImpl(textRuns, - TextLineMetrics.Create(textRuns, new TextRange(startingIndex, 1), MaxWidth, _paragraphProperties)); + var textRange = new TextRange(startingIndex, 1); + + return new TextLineImpl(textRuns, textRange, MaxWidth, _paragraphProperties); } /// @@ -205,7 +345,7 @@ namespace Avalonia.Media.TextFormatting TextLines = new List { textLine }; - Size = new Size(0, textLine.LineMetrics.Size.Height); + Size = new Size(0, textLine.Height); } else { @@ -230,7 +370,7 @@ namespace Avalonia.Media.TextFormatting if (textLines.Count > 0) { if (textLines.Count == MaxLines || !double.IsPositiveInfinity(MaxHeight) && - height + textLine.LineMetrics.Size.Height > MaxHeight) + height + textLine.Height > MaxHeight) { if (previousLine?.TextLineBreak != null && _textTrimming != TextTrimming.None) { @@ -244,7 +384,7 @@ namespace Avalonia.Media.TextFormatting } } - var hasOverflowed = textLine.LineMetrics.HasOverflowed; + var hasOverflowed = textLine.HasOverflowed; if (hasOverflowed && _textTrimming != TextTrimming.None) { @@ -257,7 +397,7 @@ namespace Avalonia.Media.TextFormatting previousLine = textLine; - if (currentPosition != _text.Length || textLine.TextLineBreak == null) + if (currentPosition != _text.Length || textLine.TextLineBreak?.RemainingCharacters == null) { continue; } @@ -290,6 +430,128 @@ namespace Avalonia.Media.TextFormatting }; } + public int GetLineIndexFromCharacterIndex(int charIndex) + { + if (TextLines is null) + { + return -1; + } + + if (charIndex < 0) + { + return -1; + } + + if (charIndex > _text.Length - 1) + { + return TextLines.Count - 1; + } + + for (var index = 0; index < TextLines.Count; index++) + { + var textLine = TextLines[index]; + + if (textLine.TextRange.End < charIndex) + { + continue; + } + + if (charIndex >= textLine.Start && charIndex <= textLine.TextRange.End) + { + return index; + } + } + + return TextLines.Count - 1; + } + + public int GetCharacterIndexFromPoint(Point point, bool snapToText) + { + if (TextLines is null) + { + return -1; + } + + var (x, y) = point; + + if (!snapToText && y > Size.Height) + { + return -1; + } + + var currentY = 0d; + + foreach (var textLine in TextLines) + { + if (currentY + textLine.Height <= y) + { + currentY += textLine.Height; + + continue; + } + + if (x > textLine.WidthIncludingTrailingWhitespace) + { + if (snapToText) + { + return textLine.TextRange.End; + } + + return -1; + } + + var characterHit = textLine.GetCharacterHitFromDistance(x); + + return characterHit.FirstCharacterIndex + characterHit.TrailingLength; + } + + return _text.Length; + } + + public Rect GetRectFromCharacterIndex(int characterIndex, bool trailingEdge) + { + if (TextLines is null) + { + return Rect.Empty; + } + + var distanceY = 0d; + + var currentIndex = 0; + + foreach (var textLine in TextLines) + { + if (currentIndex + textLine.TextRange.Length < characterIndex) + { + distanceY += textLine.Height; + + currentIndex += textLine.TextRange.Length; + + continue; + } + + var characterHit = new CharacterHit(characterIndex); + + while (characterHit.FirstCharacterIndex < characterIndex) + { + characterHit = textLine.GetNextCaretCharacterHit(characterHit); + } + + var distanceX = textLine.GetDistanceFromCharacterHit(trailingEdge ? + characterHit : + new CharacterHit(characterHit.FirstCharacterIndex)); + + if (characterHit.TrailingLength > 0) + { + distanceX += 1; + } + + return new Rect(distanceX, distanceY, 0, textLine.Height); + } + + return Rect.Empty; + } + private readonly struct FormattedTextSource : ITextSource { private readonly ReadOnlySlice _text; @@ -306,16 +568,16 @@ namespace Avalonia.Media.TextFormatting public TextRun GetTextRun(int textSourceIndex) { - if (textSourceIndex > _text.End) + if (textSourceIndex > _text.Length) { - return new TextEndOfLine(); + return null; } var runText = _text.Skip(textSourceIndex); if (runText.IsEmpty) { - return new TextEndOfLine(); + return new TextEndOfParagraph(); } var textStyleRun = CreateTextStyleRun(runText, _defaultProperties, _textModifier); diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLine.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextLine.cs index 8a1efa0611..e343279a43 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextLine.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextLine.cs @@ -7,6 +7,14 @@ namespace Avalonia.Media.TextFormatting /// public abstract class TextLine { + /// + /// Gets the text runs that are contained within a line. + /// + /// + /// The contained text runs. + /// + public abstract IReadOnlyList TextRuns { get; } + /// /// Gets the text range that is covered by the line. /// @@ -16,28 +24,28 @@ namespace Avalonia.Media.TextFormatting public abstract TextRange TextRange { get; } /// - /// Gets the text runs. + /// Gets the state of the line when broken by line breaking process. /// - /// - /// The text runs. - /// - public abstract IReadOnlyList TextRuns { get; } + /// + /// A value that represents the line break. + /// + public abstract TextLineBreak TextLineBreak { get; } /// - /// Gets the line metrics. + /// Gets the distance from the top to the baseline of the current TextLine object. /// - /// - /// The line metrics. - /// - public abstract TextLineMetrics LineMetrics { get; } + /// + /// A that represents the baseline distance. + /// + public abstract double Baseline { get; } /// - /// Gets the state of the line when broken by line breaking process. + /// Gets the distance from the top-most to bottom-most black pixel in a line. /// /// - /// A value that represents the line break. + /// A value that represents the extent distance. /// - public abstract TextLineBreak TextLineBreak { get; } + public abstract double Extent { get; } /// /// Gets a value that indicates whether the line is collapsed. @@ -47,11 +55,92 @@ namespace Avalonia.Media.TextFormatting /// public abstract bool HasCollapsed { get; } + /// + /// Gets a value that indicates whether content of the line overflows the specified paragraph width. + /// + /// + /// true, it the line overflows the specified paragraph width; otherwise, false. + /// + public abstract bool HasOverflowed { get; } + + /// + /// Gets the height of a line of text. + /// + /// + /// The text line height. + /// + public abstract double Height { get; } + + /// + /// Gets the number of newline characters at the end of a line. + /// + /// + /// The number of newline characters. + /// + public abstract int NewLineLength { get; } + + /// + /// Gets the distance that black pixels extend beyond the bottom alignment edge of a line. + /// + /// + /// The overhang after distance. + /// + public abstract double OverhangAfter { get; } + + /// + /// Gets the distance that black pixels extend prior to the left leading alignment edge of the line. + /// + /// + /// The overhang leading distance. + /// + public abstract double OverhangLeading { get; } + + /// + /// Gets the distance that black pixels extend following the right trailing alignment edge of the line. + /// + /// + /// The overhang trailing distance. + /// + public abstract double OverhangTrailing { get; } + + /// + /// Gets the distance from the start of a paragraph to the starting point of a line. + /// + /// + /// The distance from the start of a paragraph to the starting point of a line. + /// + public abstract double Start { get; } + + /// + /// Gets the number of whitespace code points beyond the last non-blank character in a line. + /// + /// + /// The number of whitespace code points beyond the last non-blank character in a line. + /// + public abstract int TrailingWhitespaceLength { get; } + + /// + /// Gets the width of a line of text, excluding trailing whitespace characters. + /// + /// + /// The text line width, excluding trailing whitespace characters. + /// + public abstract double Width { get; } + + /// + /// Gets the width of a line of text, including trailing whitespace characters. + /// + /// + /// The text line width, including trailing whitespace characters. + /// + public abstract double WidthIncludingTrailingWhitespace { get; } + /// /// Draws the at the given origin. /// /// The drawing context. - public abstract void Draw(DrawingContext drawingContext); + /// + public abstract void Draw(DrawingContext drawingContext, Point lineOrigin); /// /// Create a collapsed line based on collapsed text properties. diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLineBreak.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextLineBreak.cs index c24454cb76..4ee0a9a28f 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextLineBreak.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextLineBreak.cs @@ -4,10 +4,20 @@ namespace Avalonia.Media.TextFormatting { public class TextLineBreak { + public TextLineBreak(TextEndOfLine textEndOfLine) + { + TextEndOfLine = textEndOfLine; + } + public TextLineBreak(IReadOnlyList remainingCharacters) { RemainingCharacters = remainingCharacters; } + + /// + /// Get the + /// + public TextEndOfLine TextEndOfLine { get; } /// /// Get the remaining shaped characters that were split up by the during the formatting process. diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLineImpl.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextLineImpl.cs index fc98e9f6f8..b68e50c54e 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextLineImpl.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextLineImpl.cs @@ -1,30 +1,36 @@ using System.Collections.Generic; using Avalonia.Media.TextFormatting.Unicode; using Avalonia.Platform; +using Avalonia.Utilities; namespace Avalonia.Media.TextFormatting { internal class TextLineImpl : TextLine { - private readonly List _textRuns; + private readonly List _shapedTextRuns; + private readonly double _paragraphWidth; + private readonly TextParagraphProperties _paragraphProperties; + private readonly TextLineMetrics _textLineMetrics; - public TextLineImpl(List textRuns, TextLineMetrics lineMetrics, - TextLineBreak lineBreak = null, bool hasCollapsed = false) + public TextLineImpl(List textRuns, TextRange textRange, double paragraphWidth, + TextParagraphProperties paragraphProperties, TextLineBreak lineBreak = null, bool hasCollapsed = false) { - _textRuns = textRuns; - LineMetrics = lineMetrics; + TextRange = textRange; TextLineBreak = lineBreak; HasCollapsed = hasCollapsed; - } - /// - public override TextRange TextRange => LineMetrics.TextRange; + _shapedTextRuns = textRuns; + _paragraphWidth = paragraphWidth; + _paragraphProperties = paragraphProperties; + + _textLineMetrics = CreateLineMetrics(); + } /// - public override IReadOnlyList TextRuns => _textRuns; + public override IReadOnlyList TextRuns => _shapedTextRuns; /// - public override TextLineMetrics LineMetrics { get; } + public override TextRange TextRange { get; } /// public override TextLineBreak TextLineBreak { get; } @@ -33,19 +39,52 @@ namespace Avalonia.Media.TextFormatting public override bool HasCollapsed { get; } /// - public override void Draw(DrawingContext drawingContext) + public override bool HasOverflowed => _textLineMetrics.HasOverflowed; + + /// + public override double Baseline => _textLineMetrics.TextBaseline; + + /// + public override double Extent => _textLineMetrics.Height; + + /// + public override double Height => _textLineMetrics.Height; + + /// + public override int NewLineLength => _textLineMetrics.NewLineLength; + + /// + public override double OverhangAfter => 0; + + /// + public override double OverhangLeading => 0; + + /// + public override double OverhangTrailing => 0; + + /// + public override int TrailingWhitespaceLength => _textLineMetrics.TrailingWhitespaceLength; + + /// + public override double Start => _textLineMetrics.Start; + + /// + public override double Width => _textLineMetrics.Width; + + /// + public override double WidthIncludingTrailingWhitespace => _textLineMetrics.WidthIncludingTrailingWhitespace; + + /// + public override void Draw(DrawingContext drawingContext, Point lineOrigin) { - var currentX = 0.0; + var (currentX, currentY) = lineOrigin; - foreach (var textRun in _textRuns) + foreach (var textRun in _shapedTextRuns) { - var offsetY = LineMetrics.TextBaseline - textRun.GlyphRun.BaselineOrigin.Y; - - using (drawingContext.PushPostTransform(Matrix.CreateTranslation(currentX, offsetY))) - { - textRun.Draw(drawingContext); - } + var offsetY = Baseline - textRun.GlyphRun.BaselineOrigin.Y; + textRun.Draw(drawingContext, new Point(currentX, currentY + offsetY)); + currentX += textRun.Size.Width; } } @@ -59,19 +98,19 @@ namespace Avalonia.Media.TextFormatting } var collapsingProperties = collapsingPropertiesList[0]; + var runIndex = 0; var currentWidth = 0.0; var textRange = TextRange; var collapsedLength = 0; - TextLineMetrics textLineMetrics; var shapedSymbol = CreateShapedSymbol(collapsingProperties.Symbol); var availableWidth = collapsingProperties.Width - shapedSymbol.Size.Width; - while (runIndex < _textRuns.Count) + while (runIndex < _shapedTextRuns.Count) { - var currentRun = _textRuns[runIndex]; + var currentRun = _shapedTextRuns[runIndex]; currentWidth += currentRun.Size.Width; @@ -87,14 +126,14 @@ namespace Avalonia.Media.TextFormatting while (currentBreakPosition < measuredLength && lineBreaker.MoveNext()) { - var nextBreakPosition = lineBreaker.Current.PositionWrap; + var nextBreakPosition = lineBreaker.Current.PositionMeasure; if (nextBreakPosition == 0) { break; } - if (nextBreakPosition > measuredLength) + if (nextBreakPosition >= measuredLength) { break; } @@ -108,7 +147,7 @@ namespace Avalonia.Media.TextFormatting collapsedLength += measuredLength; - var splitResult = TextFormatterImpl.SplitTextRuns(_textRuns, collapsedLength); + var splitResult = TextFormatterImpl.SplitTextRuns(_shapedTextRuns, collapsedLength); var shapedTextCharacters = new List(splitResult.First.Count + 1); @@ -118,12 +157,8 @@ namespace Avalonia.Media.TextFormatting textRange = new TextRange(textRange.Start, collapsedLength); - var shapedWidth = GetShapedWidth(shapedTextCharacters); - - textLineMetrics = new TextLineMetrics(new Size(shapedWidth, LineMetrics.Size.Height), - LineMetrics.TextBaseline, textRange, false); - - return new TextLineImpl(shapedTextCharacters, textLineMetrics, TextLineBreak, true); + return new TextLineImpl(shapedTextCharacters, textRange, _paragraphWidth, _paragraphProperties, + TextLineBreak, true); } availableWidth -= currentRun.Size.Width; @@ -133,17 +168,71 @@ namespace Avalonia.Media.TextFormatting runIndex++; } - textLineMetrics = - new TextLineMetrics(LineMetrics.Size.WithWidth(LineMetrics.Size.Width + shapedSymbol.Size.Width), - LineMetrics.TextBaseline, TextRange, LineMetrics.HasOverflowed); + return this; + } + + private TextLineMetrics CreateLineMetrics() + { + var width = 0d; + var widthIncludingWhitespace = 0d; + var trailingWhitespaceLength = 0; + var newLineLength = 0; + var ascent = 0d; + var descent = 0d; + var lineGap = 0d; + + for (var index = 0; index < _shapedTextRuns.Count; index++) + { + var textRun = _shapedTextRuns[index]; + + var fontMetrics = + new FontMetrics(textRun.Properties.Typeface, textRun.Properties.FontRenderingEmSize); + + if (ascent > fontMetrics.Ascent) + { + ascent = fontMetrics.Ascent; + } + + if (descent < fontMetrics.Descent) + { + descent = fontMetrics.Descent; + } + + if (lineGap < fontMetrics.LineGap) + { + lineGap = fontMetrics.LineGap; + } + + if (index == _shapedTextRuns.Count - 1) + { + width = widthIncludingWhitespace + textRun.GlyphRun.Metrics.Width; + widthIncludingWhitespace += textRun.GlyphRun.Metrics.WidthIncludingTrailingWhitespace; + trailingWhitespaceLength = textRun.GlyphRun.Metrics.TrailingWhitespaceLength; + newLineLength = textRun.GlyphRun.Metrics.NewlineLength; + } + else + { + widthIncludingWhitespace += textRun.GlyphRun.Metrics.WidthIncludingTrailingWhitespace; + } + } + + var start = GetParagraphOffsetX(width, _paragraphWidth, _paragraphProperties.TextAlignment); - return new TextLineImpl(new List(_textRuns) { shapedSymbol }, textLineMetrics, null, - true); + var lineHeight = _paragraphProperties.LineHeight; + + var height = double.IsNaN(lineHeight) || MathUtilities.IsZero(lineHeight) ? + descent - ascent + lineGap : + lineHeight; + + return new TextLineMetrics(widthIncludingWhitespace > _paragraphWidth, height, newLineLength, start, + -ascent, trailingWhitespaceLength, width, widthIncludingWhitespace); } /// public override CharacterHit GetCharacterHitFromDistance(double distance) { + distance -= Start; + if (distance < 0) { // hit happens before the line, return the first position @@ -153,7 +242,7 @@ namespace Avalonia.Media.TextFormatting // process hit that happens within the line var characterHit = new CharacterHit(); - foreach (var run in _textRuns) + foreach (var run in _shapedTextRuns) { characterHit = run.GlyphRun.GetCharacterHitFromDistance(distance, out _); @@ -171,7 +260,32 @@ namespace Avalonia.Media.TextFormatting /// public override double GetDistanceFromCharacterHit(CharacterHit characterHit) { - return DistanceFromCodepointIndex(characterHit.FirstCharacterIndex + (characterHit.TrailingLength != 0 ? 1 : 0)); + var characterIndex = characterHit.FirstCharacterIndex + (characterHit.TrailingLength != 0 ? 1 : 0); + + if (characterIndex > TextRange.End) + { + if (NewLineLength > 0) + { + return Start + Width; + } + return Start + WidthIncludingTrailingWhitespace; + } + + var currentDistance = Start; + + foreach (var textRun in _shapedTextRuns) + { + if (characterIndex > textRun.Text.End) + { + currentDistance += textRun.Size.Width; + + continue; + } + + return currentDistance + textRun.GlyphRun.GetDistanceFromCharacterHit(new CharacterHit(characterIndex)); + } + + return currentDistance; } /// @@ -189,7 +303,7 @@ namespace Avalonia.Media.TextFormatting var runIndex = GetRunIndexAtCodepointIndex(TextRange.End); - var textRun = _textRuns[runIndex]; + var textRun = _shapedTextRuns[runIndex]; characterHit = textRun.GlyphRun.GetNextCaretCharacterHit(characterHit); @@ -219,28 +333,6 @@ namespace Avalonia.Media.TextFormatting return GetPreviousCaretCharacterHit(characterHit); } - /// - /// Get distance from line start to the specified codepoint index. - /// - private double DistanceFromCodepointIndex(int codepointIndex) - { - var currentDistance = 0.0; - - foreach (var textRun in _textRuns) - { - if (codepointIndex > textRun.Text.End) - { - currentDistance += textRun.Size.Width; - - continue; - } - - return currentDistance + textRun.GlyphRun.GetDistanceFromCharacterHit(new CharacterHit(codepointIndex)); - } - - return currentDistance; - } - /// /// Tries to find the next character hit. /// @@ -258,26 +350,28 @@ namespace Avalonia.Media.TextFormatting return false; // Cannot go forward anymore } + if (codepointIndex < TextRange.Start) + { + codepointIndex = TextRange.Start; + } + var runIndex = GetRunIndexAtCodepointIndex(codepointIndex); - while (runIndex < TextRuns.Count) + while (runIndex < _shapedTextRuns.Count) { - var run = _textRuns[runIndex]; + var run = _shapedTextRuns[runIndex]; - var foundCharacterHit = run.GlyphRun.FindNearestCharacterHit(characterHit.FirstCharacterIndex + characterHit.TrailingLength, out _); + var foundCharacterHit = + run.GlyphRun.FindNearestCharacterHit(characterHit.FirstCharacterIndex + characterHit.TrailingLength, out _); var isAtEnd = foundCharacterHit.FirstCharacterIndex + foundCharacterHit.TrailingLength == TextRange.Length; var characterIndex = codepointIndex - run.Text.Start; - var codepoint = Codepoint.ReadAt(run.GlyphRun.Characters, characterIndex, out _); - - if (codepoint.IsBreakChar) + if (characterIndex < 0 && characterHit.TrailingLength == 0) { - foundCharacterHit = run.GlyphRun.FindNearestCharacterHit(codepointIndex - 1, out _); - - isAtEnd = true; + foundCharacterHit = new CharacterHit(foundCharacterHit.FirstCharacterIndex); } nextCharacterHit = isAtEnd || characterHit.TrailingLength != 0 ? @@ -323,7 +417,7 @@ namespace Avalonia.Media.TextFormatting while (runIndex >= 0) { - var run = _textRuns[runIndex]; + var run = _shapedTextRuns[runIndex]; var foundCharacterHit = run.GlyphRun.FindNearestCharacterHit(characterHit.FirstCharacterIndex - 1, out _); @@ -349,9 +443,9 @@ namespace Avalonia.Media.TextFormatting /// The text run index. private int GetRunIndexAtCodepointIndex(int codepointIndex) { - if (codepointIndex >= TextRange.End) + if (codepointIndex > TextRange.End) { - return _textRuns.Count - 1; + return _shapedTextRuns.Count - 1; } if (codepointIndex <= 0) @@ -361,11 +455,11 @@ namespace Avalonia.Media.TextFormatting var runIndex = 0; - while (runIndex < _textRuns.Count) + while (runIndex < _shapedTextRuns.Count) { - var run = _textRuns[runIndex]; + var run = _shapedTextRuns[runIndex]; - if (run.Text.End > codepointIndex) + if (run.Text.End >= codepointIndex) { return runIndex; } @@ -392,24 +486,5 @@ namespace Avalonia.Media.TextFormatting return new ShapedTextCharacters(glyphRun, textRun.Properties); } - - /// - /// Gets the shaped width of specified shaped text characters. - /// - /// The shaped text characters. - /// - /// The shaped width. - /// - private static double GetShapedWidth(IReadOnlyList shapedTextCharacters) - { - var shapedWidth = 0.0; - - for (var i = 0; i < shapedTextCharacters.Count; i++) - { - shapedWidth += shapedTextCharacters[i].Size.Width; - } - - return shapedWidth; - } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLineMetrics.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextLineMetrics.cs index c4d7527659..1799c9d3db 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextLineMetrics.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextLineMetrics.cs @@ -1,7 +1,4 @@ -using System.Collections.Generic; -using Avalonia.Utilities; - -namespace Avalonia.Media.TextFormatting +namespace Avalonia.Media.TextFormatting { /// /// Represents a metric for a objects, @@ -9,29 +6,39 @@ namespace Avalonia.Media.TextFormatting /// public readonly struct TextLineMetrics { - public TextLineMetrics(Size size, double textBaseline, TextRange textRange, bool hasOverflowed) + public TextLineMetrics(bool hasOverflowed, double height, int newLineLength, double start, double textBaseline, + int trailingWhitespaceLength, double width, + double widthIncludingTrailingWhitespace) { - Size = size; - TextBaseline = textBaseline; - TextRange = textRange; HasOverflowed = hasOverflowed; + Height = height; + NewLineLength = newLineLength; + Start = start; + TextBaseline = textBaseline; + TrailingWhitespaceLength = trailingWhitespaceLength; + Width = width; + WidthIncludingTrailingWhitespace = widthIncludingTrailingWhitespace; } - + /// - /// Gets the text range that is covered by the text line. + /// Gets a value that indicates whether content of the line overflows the specified paragraph width. /// - /// - /// The text range that is covered by the text line. - /// - public TextRange TextRange { get; } + public bool HasOverflowed { get; } /// - /// Gets the size of the text line. + /// Gets the height of a line of text. /// - /// - /// The size. - /// - public Size Size { get; } + public double Height { get; } + + /// + /// Gets the number of newline characters at the end of a line. + /// + public int NewLineLength { get; } + + /// + /// Gets the distance from the start of a paragraph to the starting point of a line. + /// + public double Start { get; } /// /// Gets the distance from the top to the baseline of the line of text. @@ -39,58 +46,18 @@ namespace Avalonia.Media.TextFormatting public double TextBaseline { get; } /// - /// Gets a boolean value that indicates whether content of the line overflows - /// the specified paragraph width. + /// Gets the number of whitespace code points beyond the last non-blank character in a line. /// - public bool HasOverflowed { get; } + public int TrailingWhitespaceLength { get; } /// - /// Creates the text line metrics. + /// Gets the width of a line of text, excluding trailing whitespace characters. /// - /// The text runs. - /// The text range that is covered by the text line. - /// The paragraph width. - /// The text alignment. - /// - public static TextLineMetrics Create(IEnumerable textRuns, TextRange textRange, double paragraphWidth, - TextParagraphProperties paragraphProperties) - { - var lineWidth = 0.0; - var ascent = 0.0; - var descent = 0.0; - var lineGap = 0.0; + public double Width { get; } - foreach (var textRun in textRuns) - { - var shapedRun = (ShapedTextCharacters)textRun; - - var fontMetrics = - new FontMetrics(shapedRun.Properties.Typeface, shapedRun.Properties.FontRenderingEmSize); - - lineWidth += shapedRun.Size.Width; - - if (ascent > fontMetrics.Ascent) - { - ascent = fontMetrics.Ascent; - } - - if (descent < fontMetrics.Descent) - { - descent = fontMetrics.Descent; - } - - if (lineGap < fontMetrics.LineGap) - { - lineGap = fontMetrics.LineGap; - } - } - - var size = new Size(lineWidth, - double.IsNaN(paragraphProperties.LineHeight) || MathUtilities.IsZero(paragraphProperties.LineHeight) ? - descent - ascent + lineGap : - paragraphProperties.LineHeight); - - return new TextLineMetrics(size, -ascent, textRange, size.Width > paragraphWidth); - } + /// + /// Gets the width of a line of text, including trailing whitespace characters. + /// + public double WidthIncludingTrailingWhitespace { get; } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextParagraphProperties.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextParagraphProperties.cs index 3ecd1aafd9..4eff3fbd83 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextParagraphProperties.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextParagraphProperties.cs @@ -5,11 +5,36 @@ /// public abstract class TextParagraphProperties { + /// + /// This property specifies whether the primary text advance + /// direction shall be left-to-right, right-to-left, or top-to-bottom. + /// + public abstract FlowDirection FlowDirection { get; } + /// /// Gets the text alignment. /// public abstract TextAlignment TextAlignment { get; } + /// + /// Paragraph's line height + /// + public abstract double LineHeight { get; } + + /// + /// Indicates the first line of the paragraph. + /// + public abstract bool FirstLineInParagraph { get; } + + /// + /// If true, the formatted line may always be collapsed. If false (the default), + /// only lines that overflow the paragraph width are collapsed. + /// + public virtual bool AlwaysCollapsible + { + get { return false; } + } + /// /// Gets the default text style. /// @@ -27,8 +52,16 @@ public abstract TextWrapping TextWrapping { get; } /// - /// Paragraph's line height + /// Line indentation /// - public abstract double LineHeight { get; } + public abstract double Indent { get; } + + /// + /// Paragraph indentation + /// + public virtual double ParagraphIndent + { + get { return 0; } + } } } diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextRun.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextRun.cs index c15a771755..42cb5a7c46 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextRun.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextRun.cs @@ -9,7 +9,7 @@ namespace Avalonia.Media.TextFormatting [DebuggerTypeProxy(typeof(TextRunDebuggerProxy))] public abstract class TextRun { - public static readonly int DefaultTextSourceLength = 1; + public const int DefaultTextSourceLength = 1; /// /// Gets the text source length. diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextRunProperties.cs b/src/Avalonia.Visuals/Media/TextFormatting/TextRunProperties.cs index c4f9443c3d..468df33ab1 100644 --- a/src/Avalonia.Visuals/Media/TextFormatting/TextRunProperties.cs +++ b/src/Avalonia.Visuals/Media/TextFormatting/TextRunProperties.cs @@ -42,6 +42,11 @@ namespace Avalonia.Media.TextFormatting /// public abstract CultureInfo CultureInfo { get; } + /// + /// Run vertical box alignment + /// + public abstract BaselineAlignment BaselineAlignment { get; } + public bool Equals(TextRunProperties other) { if (ReferenceEquals(null, other)) @@ -66,7 +71,7 @@ namespace Avalonia.Media.TextFormatting { unchecked { - var hashCode = (Typeface != null ? Typeface.GetHashCode() : 0); + var hashCode = Typeface.GetHashCode(); hashCode = (hashCode * 397) ^ FontRenderingEmSize.GetHashCode(); hashCode = (hashCode * 397) ^ (TextDecorations != null ? TextDecorations.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (ForegroundBrush != null ? ForegroundBrush.GetHashCode() : 0); diff --git a/src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs b/src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs index fb4a4427b7..f0dbfee718 100644 --- a/src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs +++ b/src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs @@ -136,9 +136,8 @@ namespace Avalonia.Platform /// Creates a platform implementation of a glyph run. /// /// The glyph run. - /// The glyph run's width. /// - IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width); + IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun); bool SupportsIndividualRoundRects { get; } diff --git a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs index 6d0be9f64d..6b7f0e11cf 100644 --- a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs +++ b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs @@ -171,7 +171,7 @@ namespace Avalonia.Skia private static readonly ThreadLocal s_textBlobBuilderThreadLocal = new ThreadLocal(() => new SKTextBlobBuilder()); /// - public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width) + public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun) { var count = glyphRun.GlyphIndices.Length; var textBlobBuilder = s_textBlobBuilderThreadLocal.Value; @@ -183,11 +183,8 @@ namespace Avalonia.Skia s_font.Size = (float)glyphRun.FontRenderingEmSize; s_font.Typeface = typeface; - SKTextBlob textBlob; - width = 0; - var scale = (float)(glyphRun.FontRenderingEmSize / glyphTypeface.DesignEmHeight); if (glyphRun.GlyphOffsets.IsEmpty) @@ -197,8 +194,6 @@ namespace Avalonia.Skia textBlobBuilder.AddRun(glyphRun.GlyphIndices.Buffer.Span, s_font); textBlob = textBlobBuilder.Build(); - - width = glyphTypeface.GetGlyphAdvance(glyphRun.GlyphIndices[0]) * scale * glyphRun.GlyphIndices.Length; } else { @@ -206,6 +201,8 @@ namespace Avalonia.Skia var positions = buffer.GetPositionSpan(); + var width = 0d; + for (var i = 0; i < count; i++) { positions[i] = (float)width; @@ -251,13 +248,10 @@ namespace Avalonia.Skia buffer.SetGlyphs(glyphRun.GlyphIndices.Buffer.Span); - width = currentX; - textBlob = textBlobBuilder.Build(); } return new GlyphRunImpl(textBlob); - } public IOpenGlBitmapImpl CreateOpenGlBitmap(PixelSize size, Vector dpi) diff --git a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs index 6ae27870e8..15685c0187 100644 --- a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs +++ b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs @@ -213,7 +213,7 @@ namespace Avalonia.Direct2D1 return new WicBitmapImpl(format, alphaFormat, data, size, dpi, stride); } - public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width) + public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun) { var glyphTypeface = (GlyphTypefaceImpl)glyphRun.GlyphTypeface.PlatformImpl; @@ -236,8 +236,6 @@ namespace Avalonia.Direct2D1 run.Advances = new float[glyphCount]; - width = 0; - var scale = (float)(glyphRun.FontRenderingEmSize / glyphTypeface.DesignEmHeight); if (glyphRun.GlyphAdvances.IsEmpty) @@ -247,8 +245,6 @@ namespace Avalonia.Direct2D1 var advance = glyphTypeface.GetGlyphAdvance(glyphRun.GlyphIndices[i]) * scale; run.Advances[i] = advance; - - width += advance; } } else @@ -258,8 +254,6 @@ namespace Avalonia.Direct2D1 var advance = (float)glyphRun.GlyphAdvances[i]; run.Advances[i] = advance; - - width += advance; } } diff --git a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs index 1570205456..268977d662 100644 --- a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs +++ b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs @@ -86,10 +86,8 @@ namespace Avalonia.Benchmarks return new MockFontManagerImpl(); } - public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width) + public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun) { - width = default; - return new NullGlyphRun(); } diff --git a/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs b/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs index 42ec392066..304b8c5cfd 100644 --- a/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs +++ b/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs @@ -14,10 +14,6 @@ namespace Avalonia.Direct2D1.RenderTests.Media { public class VisualBrushTests : TestBase { - //Whitespaces are used here to be able to compare rendering results in a platform independent way. - //Otherwise tests will fail because of slightly different glyph rendering. - private static readonly string s_visualBrushText = " "; - public VisualBrushTests() : base(@"Media\VisualBrush") { @@ -46,13 +42,11 @@ namespace Avalonia.Direct2D1.RenderTests.Media BorderThickness = new Thickness(2), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, - Child = new TextBlock + Child = new Panel { - FontSize = 24, - FontFamily = TestFontFamily, - Background = Brushes.Green, - Foreground = Brushes.Yellow, - Text = s_visualBrushText + Height = 26, + Width = 150, + Background = Brushes.Green } } } @@ -392,10 +386,10 @@ namespace Avalonia.Direct2D1.RenderTests.Media { Background = Brushes.Yellow, HorizontalAlignment = HorizontalAlignment.Left, - Child = new TextBlock + Child = new Panel { - FontFamily = TestFontFamily, - Text = s_visualBrushText + Height = 10, + Width = 50 } }), new Border diff --git a/tests/Avalonia.Skia.UnitTests/Media/GlyphRunTests.cs b/tests/Avalonia.Skia.UnitTests/Media/GlyphRunTests.cs new file mode 100644 index 0000000000..f9c45e7d22 --- /dev/null +++ b/tests/Avalonia.Skia.UnitTests/Media/GlyphRunTests.cs @@ -0,0 +1,46 @@ +using System; +using System.Globalization; +using Avalonia.Media; +using Avalonia.Media.TextFormatting; +using Avalonia.UnitTests; +using Xunit; + +namespace Avalonia.Skia.UnitTests.Media +{ + public class GlyphRunTests + { + [InlineData("ABC \r", 29, 4, 1)] + [InlineData("ABC \r", 23, 3, 1)] + [InlineData("ABC \r", 17, 2, 1)] + [InlineData("ABC \r", 11, 1, 1)] + [InlineData("ABC \r", 7, 1, 0)] + [InlineData("ABC \r", 5, 0, 1)] + [InlineData("ABC \r", 2, 0, 0)] + [Theory] + public void Should_Get_Distance_From_CharacterHit(string text, double distance, int expectedIndex, + int expectedTrailingLength) + { + using (Start()) + { + var glyphRun = + TextShaper.Current.ShapeText(text.AsMemory(), Typeface.Default, 10, CultureInfo.CurrentCulture); + + var characterHit = glyphRun.GetCharacterHitFromDistance(distance, out _); + + Assert.Equal(expectedIndex, characterHit.FirstCharacterIndex); + + Assert.Equal(expectedTrailingLength, characterHit.TrailingLength); + } + } + + private static IDisposable Start() + { + var disposable = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface + .With(renderInterface: new PlatformRenderInterface(null), + textShaperImpl: new TextShaperImpl(), + fontManagerImpl: new CustomFontManagerImpl())); + + return disposable; + } + } +} diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattableTextSource.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattableTextSource.cs deleted file mode 100644 index 6a5065939e..0000000000 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattableTextSource.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using Avalonia.Media.TextFormatting; -using Avalonia.Utilities; - -namespace Avalonia.Skia.UnitTests.Media.TextFormatting -{ - internal class FormattableTextSource : ITextSource - { - private readonly ReadOnlySlice _text; - private readonly TextRunProperties _defaultStyle; - private ReadOnlySlice> _styleSpans; - - public FormattableTextSource(string text, TextRunProperties defaultStyle, - ReadOnlySlice> styleSpans) - { - _text = text.AsMemory(); - - _defaultStyle = defaultStyle; - - _styleSpans = styleSpans; - } - - public TextRun GetTextRun(int textSourceIndex) - { - if (_styleSpans.IsEmpty) - { - return new TextEndOfParagraph(); - } - - var currentSpan = _styleSpans[0]; - - _styleSpans = _styleSpans.Skip(1); - - return new TextCharacters(_text.AsSlice(currentSpan.Start, currentSpan.Length), - _defaultStyle); - } - } -} diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattedTextSource.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattedTextSource.cs new file mode 100644 index 0000000000..e3a2f6e766 --- /dev/null +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/FormattedTextSource.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using Avalonia.Media.TextFormatting; +using Avalonia.Utilities; + +namespace Avalonia.Skia.UnitTests.Media.TextFormatting +{ + internal readonly struct FormattedTextSource : ITextSource + { + private readonly ReadOnlySlice _text; + private readonly TextRunProperties _defaultProperties; + private readonly IReadOnlyList> _textModifier; + + public FormattedTextSource(ReadOnlySlice text, TextRunProperties defaultProperties, + IReadOnlyList> textModifier) + { + _text = text; + _defaultProperties = defaultProperties; + _textModifier = textModifier; + } + + public TextRun GetTextRun(int textSourceIndex) + { + if (textSourceIndex > _text.End) + { + return null; + } + + var runText = _text.Skip(textSourceIndex); + + if (runText.IsEmpty) + { + return new TextEndOfParagraph(); + } + + var textStyleRun = CreateTextStyleRun(runText, _defaultProperties, _textModifier); + + return new TextCharacters(runText.Take(textStyleRun.Length), textStyleRun.Value); + } + + /// + /// Creates a span of text run properties that has modifier applied. + /// + /// The text to create the properties for. + /// The default text properties. + /// The text properties modifier. + /// + /// The created text style run. + /// + private static ValueSpan CreateTextStyleRun(ReadOnlySlice text, + TextRunProperties defaultProperties, IReadOnlyList> textModifier) + { + if (textModifier == null || textModifier.Count == 0) + { + return new ValueSpan(text.Start, text.Length, defaultProperties); + } + + var currentProperties = defaultProperties; + + var hasOverride = false; + + var i = 0; + + var length = 0; + + for (; i < textModifier.Count; i++) + { + var propertiesOverride = textModifier[i]; + + var textRange = new TextRange(propertiesOverride.Start, propertiesOverride.Length); + + if (textRange.End < text.Start) + { + continue; + } + + if (textRange.Start > text.End) + { + length = text.Length; + break; + } + + if (textRange.Start > text.Start) + { + if (propertiesOverride.Value != currentProperties) + { + length = Math.Min(Math.Abs(textRange.Start - text.Start), text.Length); + + break; + } + } + + length += Math.Min(text.Length - length, textRange.Length); + + if (hasOverride) + { + continue; + } + + hasOverride = true; + + currentProperties = propertiesOverride.Value; + } + + if (length < text.Length && i == textModifier.Count) + { + if (currentProperties == defaultProperties) + { + length = text.Length; + } + } + + if (length != text.Length) + { + text = text.Take(length); + } + + return new ValueSpan(text.Start, length, currentProperties); + } + } +} diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/MultiBufferTextSource.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/MultiBufferTextSource.cs index 40aa862906..2a20fdd9fe 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/MultiBufferTextSource.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/MultiBufferTextSource.cs @@ -20,6 +20,11 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting public TextRun GetTextRun(int textSourceIndex) { + if (textSourceIndex > 50) + { + return null; + } + if (textSourceIndex == 50) { return new TextEndOfParagraph(); diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/SingleBufferTextSource.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/SingleBufferTextSource.cs index 045deacd0b..65c342b065 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/SingleBufferTextSource.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/SingleBufferTextSource.cs @@ -17,8 +17,13 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting public TextRun GetTextRun(int textSourceIndex) { + if (textSourceIndex > _text.Length) + { + return null; + } + var runText = _text.Skip(textSourceIndex); - + if (runText.IsEmpty) { return new TextEndOfParagraph(); diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs index 7f9713930a..05dd32b84d 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs @@ -81,7 +81,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting new ValueSpan(9, 1, defaultProperties) }; - var textSource = new FormattableTextSource(text, defaultProperties, GenericTextRunPropertiesRuns); + var textSource = new FormattedTextSource(text.AsMemory(), defaultProperties, GenericTextRunPropertiesRuns); var formatter = new TextFormatterImpl(); @@ -167,7 +167,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting { var textLine = formatter.FormatLine(textSource, currentPosition, 1, - new GenericTextParagraphProperties(defaultProperties, textWrapping: TextWrapping.WrapWithOverflow)); + new GenericTextParagraphProperties(defaultProperties, textWrap : TextWrapping.WrapWithOverflow)); if (text.Length - currentPosition > expectedCharactersPerLine) { @@ -223,7 +223,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting { var textLine = formatter.FormatLine(textSource, currentPosition, paragraphWidth, - new GenericTextParagraphProperties(defaultProperties, textWrapping: TextWrapping.Wrap)); + new GenericTextParagraphProperties(defaultProperties, textWrap: TextWrapping.Wrap)); Assert.True(expected.Contains(textLine.TextRange.End)); @@ -256,7 +256,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting formatter.FormatLine(textSource, 0, double.PositiveInfinity, new GenericTextParagraphProperties(defaultProperties, lineHeight: 50)); - Assert.Equal(50, textLine.LineMetrics.Size.Height); + Assert.Equal(50, textLine.Height); } } @@ -273,7 +273,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting var defaultProperties = new GenericTextRunProperties(Typeface.Default); - var paragraphProperties = new GenericTextParagraphProperties(defaultProperties, textWrapping: TextWrapping.Wrap); + var paragraphProperties = new GenericTextParagraphProperties(defaultProperties, textWrap: TextWrapping.Wrap); var textSource = new SingleBufferTextSource(text, defaultProperties); @@ -286,7 +286,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting var textLine = formatter.FormatLine(textSource, textSourceIndex, 200, paragraphProperties); - Assert.True(textLine.LineMetrics.Size.Width <= 200); + Assert.True(textLine.Width <= 200); textSourceIndex += textLine.TextRange.Length; } @@ -301,7 +301,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting const string text = "012345"; var defaultProperties = new GenericTextRunProperties(Typeface.Default); - var paragraphProperties = new GenericTextParagraphProperties(defaultProperties, textWrapping: TextWrapping.Wrap); + var paragraphProperties = new GenericTextParagraphProperties(defaultProperties, textWrap: TextWrapping.Wrap); var textSource = new SingleBufferTextSource(text, defaultProperties); var formatter = new TextFormatterImpl(); @@ -321,6 +321,87 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting } } + [InlineData("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor", + new []{ "Lorem ipsum ", "dolor sit amet, ", "consectetur ", "adipisicing elit, ", "sed do eiusmod "})] + + [Theory] + public void Should_Produce_Wrapped_And_Trimmed_Lines(string text, string[] expectedLines) + { + using (Start()) + { + var typeface = new Typeface("Verdana"); + + var defaultProperties = new GenericTextRunProperties(typeface, 32, foregroundBrush: Brushes.Black); + + var styleSpans = new[] + { + new ValueSpan(0, 5, + new GenericTextRunProperties(typeface, 48)), + new ValueSpan(6, 11, + new GenericTextRunProperties(new Typeface("Verdana", weight: FontWeight.Bold), 32)), + new ValueSpan(28, 28, + new GenericTextRunProperties(new Typeface("Verdana", FontStyle.Italic),32)) + }; + + var textSource = new FormattedTextSource(text.AsMemory(), defaultProperties, styleSpans); + + var formatter = new TextFormatterImpl(); + + var currentPosition = 0; + + var currentHeight = 0d; + + var currentLineIndex = 0; + + while (currentPosition < text.Length && currentLineIndex < expectedLines.Length) + { + var textLine = + formatter.FormatLine(textSource, currentPosition, 300, + new GenericTextParagraphProperties(defaultProperties, textWrap: TextWrapping.WrapWithOverflow)); + + currentPosition += textLine.TextRange.Length; + + if (textLine.Width > 300 || currentHeight + textLine.Height > 240) + { + textLine = textLine.Collapse(new TextTrailingWordEllipsis(300, defaultProperties)); + } + + currentHeight += textLine.Height; + + var currentText = text.Substring(textLine.TextRange.Start, textLine.TextRange.Length); + + Assert.Equal(expectedLines[currentLineIndex], currentText); + + currentLineIndex++; + } + + Assert.Equal(expectedLines.Length,currentLineIndex); + } + } + + [InlineData(TextAlignment.Left)] + [InlineData(TextAlignment.Center)] + [InlineData(TextAlignment.Right)] + [Theory] + public void Should_Align_TextLine(TextAlignment textAlignment) + { + using (Start()) + { + var defaultProperties = new GenericTextRunProperties(Typeface.Default); + var paragraphProperties = new GenericTextParagraphProperties(defaultProperties, textAlignment); + + var textSource = new SingleBufferTextSource("0123456789", defaultProperties); + var formatter = new TextFormatterImpl(); + + var textLine = + formatter.FormatLine(textSource, 0, 100, paragraphProperties); + + var expectedOffset = TextLine.GetParagraphOffsetX(textLine.Width, 100, textAlignment); + + Assert.Equal(expectedOffset, textLine.Start); + } + } + public static IDisposable Start() { var disposable = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLayoutTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLayoutTests.cs index f7bc75c05d..afa1fbf461 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLayoutTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLayoutTests.cs @@ -11,8 +11,8 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting { public class TextLayoutTests { - private static readonly string s_singleLineText = "0123456789"; - private static readonly string s_multiLineText = "012345678\r\r0123456789"; + private const string SingleLineText = "0123456789"; + private const string MultiLineText = "01 23 45 678\r\rabc def gh ij"; [InlineData("01234\r01234\r", 3)] [InlineData("01234\r01234", 2)] @@ -45,7 +45,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting }; var layout = new TextLayout( - s_multiLineText, + MultiLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable(), @@ -61,7 +61,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting var actual = textRun.Text.Buffer.Span.ToString(); - Assert.Equal("12", actual); + Assert.Equal("1 ", actual); Assert.Equal(foreground, textRun.Properties.ForegroundBrush); } @@ -74,7 +74,18 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting { var foreground = new SolidColorBrush(Colors.Red).ToImmutable(); - for (var i = 4; i < s_multiLineText.Length; i++) + var expected = new TextLayout( + MultiLineText, + Typeface.Default, + 12.0f, + Brushes.Black.ToImmutable(), + textWrapping: TextWrapping.Wrap, + maxWidth: 25); + + var expectedLines = expected.TextLines.Select(x => MultiLineText.Substring(x.TextRange.Start, + x.TextRange.Length)).ToList(); + + for (var i = 4; i < MultiLineText.Length; i++) { var spans = new[] { @@ -82,16 +93,8 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting new GenericTextRunProperties(Typeface.Default, 12, foregroundBrush: foreground)) }; - var expected = new TextLayout( - s_multiLineText, - Typeface.Default, - 12.0f, - Brushes.Black.ToImmutable(), - textWrapping: TextWrapping.Wrap, - maxWidth: 25); - var actual = new TextLayout( - s_multiLineText, + MultiLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable(), @@ -99,14 +102,18 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting maxWidth: 25, textStyleOverrides: spans); - Assert.Equal(expected.TextLines.Count, actual.TextLines.Count); + var actualLines = actual.TextLines.Select(x => MultiLineText.Substring(x.TextRange.Start, + x.TextRange.Length)).ToList(); + + Assert.Equal(expectedLines.Count, actualLines.Count); for (var j = 0; j < actual.TextLines.Count; j++) { - Assert.Equal(expected.TextLines[j].TextRange.Length, actual.TextLines[j].TextRange.Length); + var expectedText = expectedLines[j]; + + var actualText = actualLines[j]; - Assert.Equal(expected.TextLines[j].TextRuns.Sum(x => x.Text.Length), - actual.TextLines[j].TextRuns.Sum(x => x.Text.Length)); + Assert.Equal(expectedText, actualText); } } } @@ -126,7 +133,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting }; var layout = new TextLayout( - s_singleLineText, + SingleLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable(), @@ -140,7 +147,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting Assert.Equal(2, textRun.Text.Length); - var actual = s_singleLineText.Substring(textRun.Text.Start, + var actual = SingleLineText.Substring(textRun.Text.Start, textRun.Text.Length); Assert.Equal("01", actual); @@ -163,7 +170,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting }; var layout = new TextLayout( - s_singleLineText, + SingleLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable(), @@ -261,12 +268,12 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting using (Start()) { var layout = new TextLayout( - s_multiLineText, + MultiLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable()); - Assert.Equal(s_multiLineText.Length, layout.TextLines.Sum(x => x.TextRange.Length)); + Assert.Equal(MultiLineText.Length, layout.TextLines.Sum(x => x.TextRange.Length)); } } @@ -276,13 +283,13 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting using (Start()) { var layout = new TextLayout( - s_multiLineText, + MultiLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable()); Assert.Equal( - s_multiLineText.Length, + MultiLineText.Length, layout.TextLines.Select(textLine => textLine.TextRuns.Sum(textRun => textRun.Text.Length)) .Sum()); @@ -295,9 +302,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting using (Start()) { const string text = - "Multiline TextBox with TextWrapping.\r\rLorem ipsum dolor sit amet, consectetur adipiscing elit. " + - "Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. " + - "Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est."; + "Multiline TextBox with TextWrapping.\r\rLorem ipsum dolor sit amet"; var foreground = new SolidColorBrush(Colors.Red).ToImmutable(); @@ -338,7 +343,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting }; var layout = new TextLayout( - s_multiLineText, + MultiLineText, Typeface.Default, 12.0f, Brushes.Black.ToImmutable(), @@ -541,7 +546,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting using (Start()) { var layout = new TextLayout( - s_multiLineText, + MultiLineText, Typeface.Default, 12, Brushes.Black, @@ -549,7 +554,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting foreach (var line in layout.TextLines) { - Assert.Equal(50, line.LineMetrics.Size.Height); + Assert.Equal(50, line.Height); } } } @@ -601,7 +606,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting using (Start()) { var layout = new TextLayout( - s_singleLineText, + SingleLineText, Typeface.Default, 12, Brushes.Black, @@ -609,7 +614,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting maxWidth: 3); //every character should be new line as there not enough space for even one character - Assert.Equal(s_singleLineText.Length, layout.TextLines.Count); + Assert.Equal(SingleLineText.Length, layout.TextLines.Count); } } diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs index 8f1bd5979a..5961806c5c 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs @@ -71,6 +71,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting } [InlineData("𐐷𐐷𐐷𐐷𐐷")] + [InlineData("01234567🎉\n")] [InlineData("𐐷1234")] [Theory] public void Should_Get_Next_Caret_CharacterHit(string text) @@ -109,9 +110,9 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting nextCharacterHit = new CharacterHit(0, clusters[1] - clusters[0]); - for (var i = 0; i < clusters.Length; i++) + foreach (var cluster in clusters) { - Assert.Equal(clusters[i], nextCharacterHit.FirstCharacterIndex); + Assert.Equal(cluster, nextCharacterHit.FirstCharacterIndex); nextCharacterHit = textLine.GetNextCaretCharacterHit(nextCharacterHit); } @@ -127,6 +128,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting } [InlineData("𐐷𐐷𐐷𐐷𐐷")] + [InlineData("01234567🎉\n")] [InlineData("𐐷1234")] [Theory] public void Should_Get_Previous_Caret_CharacterHit(string text) @@ -269,14 +271,14 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting } } - characterHit = textLine.GetCharacterHitFromDistance(textLine.LineMetrics.Size.Width); + characterHit = textLine.GetCharacterHitFromDistance(textLine.Width); Assert.Equal(MultiBufferTextSource.TextRange.End, characterHit.FirstCharacterIndex); } } [InlineData("01234 01234", 8, TextCollapsingStyle.TrailingCharacter, "01234 0\u2026")] - [InlineData("01234 01234", 8, TextCollapsingStyle.TrailingWord, "01234 \u2026")] + [InlineData("01234 01234", 8, TextCollapsingStyle.TrailingWord, "01234\u2026")] [Theory] public void Should_Collapse_Line(string text, int numberOfCharacters, TextCollapsingStyle style, string expected) { @@ -333,8 +335,8 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting } } - [Fact] - public void Should_Ignore_Invisible_Characters() + [Fact(Skip = "Verify this")] + public void Should_Ignore_NewLine_Characters() { using (Start()) { @@ -356,6 +358,28 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting Assert.Equal(new CharacterHit(8, 2), nextCharacterHit); } } + + [Fact] + public void TextLineBreak_Should_Contain_TextEndOfLine() + { + using (Start()) + { + var defaultTextRunProperties = + new GenericTextRunProperties(Typeface.Default); + + const string text = "0123456789"; + + var source = new SingleBufferTextSource(text, defaultTextRunProperties); + + var textParagraphProperties = new GenericTextParagraphProperties(defaultTextRunProperties); + + var formatter = TextFormatter.Current; + + var textLine = formatter.FormatLine(source, 0, double.PositiveInfinity, textParagraphProperties); + + Assert.NotNull(textLine.TextLineBreak.TextEndOfLine); + } + } private static IDisposable Start() { diff --git a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs index e73a76357a..8015172e72 100644 --- a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs +++ b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs @@ -97,9 +97,8 @@ namespace Avalonia.UnitTests throw new NotImplementedException(); } - public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width) + public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun) { - width = 0; return Mock.Of(); } diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs b/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs index 6d0683e699..1a6d003062 100644 --- a/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs +++ b/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs @@ -52,7 +52,7 @@ namespace Avalonia.Visuals.UnitTests.VisualTree throw new NotImplementedException(); } - public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun, out double width) + public IGlyphRunImpl CreateGlyphRun(GlyphRun glyphRun) { throw new NotImplementedException(); } diff --git a/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png b/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png index ea81296017c59aeec8deef2aba6516a9f2ed557d..110b44a4c089772b042fc3cac91ddc8b9a519be8 100644 GIT binary patch literal 117975 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 literal 117709 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⋙q`BK6bO~wgD^$9cg508Jr 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 KxvXVM%xNb!1@J z*w6hZkrgOs=jq}YQW5v|?oL4_LlIWT&J!GS&#<(eNwv_)dRcaFd#LF)kWmZ_2RzU2 z^`LP3CosgXLw17_KOw^s9)km^8$`i6RwW3nZ|Jh2)Y(=LL9Jzf1=);T3K F0RY;IRZ{=} diff --git a/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png b/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png index 485b03acd3d1af0690da1dd48a0a5b00a1721f19..7e4faf77d5fc2a0cfe00d1cb026925f57aad33a0 100644 GIT binary patch literal 2665 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 XxNEXd$=3k-?R(bJ3}#9;zIFd!ieS|l literal 2631 zcmb`Jc`zH=9>FwXZMhZPo?pBFxz#4~U+vX>xRfWtGnEfx%2afV@oy(#i4 z5NderRe!QB!&eV%YS~|Of5tBVd|iR3f?Ct@;Ff4Ig$4ScM&@OevQ+7M%+4bxGffIf zDrfqT5yi^eXZWKvKQx)bO4(;_sp&sJzIhg=_2zM`y4TI1wfk_;Z*egIF%U>WT>LT^ z9CPna(Xpq4Ky}y*?(y5%eNhFdNHY> zQ5)jdT#}tbBoJEzW)tXYAt=<(vz*A+BUC}fd?eiEIuHHS9^sBa)!=bYLO9^)C+W8s z+>+`nFCf)>|GoYj%$k~-@ykE1@a)1GylZP~S)+>#9@~XsmLyYFQ*wmXC4p>}x;Vg5 z`sE3sSj^Pal+sefJ|j?^D>5+EP_F)MF*Q2K2-kW3tu82HX*|O|pNyg6(;mbIBA(kL z!X`+Z9v4(n_P~P;644<<8&Zz|;VoY{lzx4G&D`~ur-Q%NP2N@zI%tE9w zHf=jUYm~eKyYORpM8v7qBKA*w*yCpgxlPzZ+O)V58Jy_)g#7KjnYBC{>;6X~pW|lQ zHY;b#{fy0Q<_h3y6AID^Bmx?T0fW|VGZIF9kV10LIO9CBSQEgVniY!f&SVYKHL znG?;TsH$SINd}{N(frOA8DBKGOYp9_3ANf{-cpC9qy6R27sbGO3(c2J_UE|0$c~>` z|IS((z+LD>mz`}5jRp3T+@#J_>m``y;KZ&nELS@8=s7L?zSx`jf>A$-hjaX9V#!VZ z#$&NLD>`0L(#DfrR#aggz4htM-Jnf(ew4yjnANO!SFVEL@ zq)d27rjx~~%p4sKS6k!A@JL{fcQlXYTc&D*tqhM^s(VwBCO9dVu7lyv9OI3!3OBsw zS;-5p^?XR7W2gM%B5~-oce|IU7tgHLenXrFFT)$Ag_~1Y;ZWp; zqeaM9iV8MdH=C4Z=RLp!2viMn^sya+pSI=uV`I^9;^5>gMP)zog=~!E2%B6cwM2jcdOL<7~qotR* ze8u=yeD!k!kHin=Kjo(%NDcJ-I9&2d#Z5C1O(2O)cHj-lsy*a(!I~Y7!I3xYDR*DZ zo@NrdEhFWoRr$Z5rO~>di6^?0xoFqx@E-LhlM}N&l0lh-(6|}fRBCJE)~0Y{benJ0 zYy(bpuuH~mrqjG~e7Z7DL$aC$d%yf}9x;cQ=QX>~CLOCU4utLE5VuUIs)O(nl)3j8 zk5JspO1dR^xW4ZKae7WBQOjWWdCBMBkpd=bvF)-1_hzazK3Fk;zu>7`TMRy#VegL1fYF+WN==mnu@&DcFH zYWqZdaUu%o*7`py=G=>)nody~1ZDDg&{#`IuH4NhpA%Y~bpDz{#y`LwvelHphY0PU z^Ic0&e(F(?7cXx4#~l4zIrbk`6)vS3P)Zwi;ikls#JYpb0BM57u5zV!S$)bh`W)FzQh{+ad7+Duk7T0 zFY2Jq^nLdwX#K#<+M|()2`*wi`%bS3HTTnKMR^D$d~^T0cU>_y@8G3r<9R~rXvOI^ z$q*C{bToD5__2HkN($u~Cav;cLC94%d!?H5!MNLVLUz7f|Gs;BKoOiAO{0Inr%j2w z1=mxEXJ2U2;)o@S7o@ndw>l1ZX4D>fP|R}#a>2i9+NTK)N8K?tOCoIr3!k0VU5h3! z-_pgW74bALBJ?qE?^KeUN`P6w>;2)6+PK`Bz@=4mg*{nbdSoI!Z)l+rt+Nx>xWry= ziRe}VzTr5?$50hC%UY5?rkfpT~DDi z9Hv<>mGiu1ACQ*i*}v?=UK?Wmx}2$D^lW;uV7Hg8q)MGgp@%bFu+<$T0uN$N_!j zbcCH18HNhQ;czvst4N3N2zJ7^%)8eHw|PNtSc`Eoj2~h#%sfj`C=_Y}OlE{`=zE&` zzOaJmbq}jF`7+DtX*7ZWhec7x4MuNYush@ktRuWOAoRjF4gBzN$yfIpBZxND!ZxZ5 zxA9+8V9v)C!b9X$kFQ=nj&-dc;G&*R&d64yGzmvK`r8NgJU_f4BpFfDdSG^T_W9Uv z8~bCmlS=iKX}OyR8pZA(v|d?m>KIoA`z-9$v^e?orc8<0RB?#ciPD+#hh2`T#Xd6;OQ4q+h_{LF$M=i3jn+Nw_+qX-IjP$|uGVK|zQ-y)*z)zVUkVlxQGVgv zyDO+D14;U~R@%+-NKP5O>c}Z^;K}PjKQIu1Rd-NAQCT%WA`CHvB^+%ONYW3@D`fngNR@FZ8r zu?~%{pM(lj_Ve0w-vOkSjN4#a9jU+G6emm~>JRJI0D%}2(fyc9qSF7KN7ww|wh$AX z(tenq3}bbJ$UI=Q*|K_zSbN({1|XG=77+b!1iNQZJAtG~w{=`^U|}j8-0BCUm;$YM z@-uw`S>@owIbI4Wwex60Y2usA#zn_4{+;@|1)$v!9Y64#(HpHZpFBiiyj zqZ>ToCz@hsrv`uL<$Xe(SebMuOdGwzxg^v!G)#Y|QvDsK4(JgKl{sr`keGYH#2c?q zOQLQ+L0|Rq_I9&uzH%HJFWVHc)O)rqr@M88{%;DaPCI&rh`pBCokUgqWHJz2|m_%J?nb8~Y{ z-H##yCakYayHN_}n)D?8n0cR$IFg5#_dtbT{;+;sb%qm z{Pe1+Z|98`eIWCFzADQ~(V0IHw@L}qg$*wn_7&eS3Fj1?gFt|}pSxlr?8dcFc}Pv; z3n6!%9nNfP%y(5*jtsA0xe4}_clB%?gU`*~EX4isTe?UgVqEty%Z z_kQbScz7l;KXCPDYg5(S$2yX`a*PIL^l<4tyvB*g-GT}DQl}Q+)Z-Q z;k^n|Fm^BnCkCTY9!Fa>M1`?RW;RZLCMyr|o!V}9gJ)C|d;lp6BmJ91- zLqM_(eNr{Ey}Fviw905Mr-wP4EwA7V)v3AG(OI|(dkR%<4}{m!`hfG6zd3eAk0N>x z5pyx)6f*k9@s-UoE|R#=RWP>6&7?ssY z$z{JpdoHh9zmCe`&$B?aFT`(Ky+UGRUkoIp}P`k74+^+H@=i9Tw# z&gqj~FOaDt8H~R8*7#$iST32|srnF~c;$)KOk=qI!Lbkh*BF@VMD|6xxf~nbWcT37)%q;A9)|7xs7!?N=NmBABZI0NfRAZAetymvaD~Ie z(l4mH_FN`Fho`2zzGmDq4lF|PKxfNfIjh@E2Xzf&MiWB#f+L|`S#ek_R;KxnkV2&N zz~}t=y$@|e!mSntLw)qd1GLcR!Z~gDRW|K%&j+GpOnQRg-MZQF7saC98XvN`deNHzQl$AUtPd7$x zK>{I~)3@9&2c1!UKs<~b@%-SyF(3r6cBe;M0x)cwwLyp~xh(!|Rl*kUXxhu8-6gR?vSP?oe#J$ua1d znelO{hPs6!*&WWuYw$gkGcH+?3-Y7>>>QFQ9?zob4P)kqvm?peRRYepVc1)5oBSy^ zfn2n*=nt1}X0wZ`7dVZ^c>!%C_MMmGNIzP$ss#gG_Q%Nd13?K0a7Z9S#+9bp$yHPckRw3b=S@(mI_c1x z0KLj(AaFx{CuusMf+-OxVPV}gFevJRBt4cjj(*8J%QdXZFBMyQQ!z%mP7H0kF?W8W zB|ZH`Q8;^$Z6AYNXHkMVqoW{KGt-qZlzuwVbEBNQzq``ecycS3WLklb_dQA-)8EI< zB~6vghT1%M@HUi!waH}^wtoLXx%&3ZJX8yqo{AspDiU!VPAOBm`+i_kiC0yp)y|0b zS;S7nKS-0y∓2wJ*4Z6nGBnH$;q?>GsN6^jx8^RtB%Jrahz;G9jjJ)F}>%O;ysd zEAkn*Ed!^8jfA<)sFoj<%WSW3px)XftNOYST?1*X*D5+1xzWGs5NjH595R;3Ju>7h zPVWj}r_I5S&s+Kzot@-ZLq=ILN+%n|cndq;PAJPZFR2-KuFdyWe_FsWHk)3X1}BYU zcv8yQEPxqgqeqRoAeTMpey1?-MrfoREem10ocU4j;>E9kZ2FMQSgntm@A&}FMStQ* z0-~R!NIp`ZxuMV_6x6)eK{Co&B3jGx=4|kfXxWDmFboX$&(~AnTPtN-V3aaAkwz^4 Pu)BN7(%z!R%su{3iV2%# literal 2996 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 A*Z=?k diff --git a/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png b/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png index 8c622c37b50d796df0e8a83074171f5a2852f257..1df122151d8c6f98614b7289f0dfed0966cc209e 100644 GIT binary patch delta 2073 zcmZuydsNbS7B@>vd-^t&L@^&(qB&^}ljbYO(R`$-Xlkxz>8fa@h}z z%}_c`p-Cz#q*LkwS(3d_5v(M9@JiTxA};Oj%+4SCJ?H-Mz4zRE&gY){`Fw;1-y33m z(f5J_e4`7Kr2KG%5!0GE@8*QrI)E2AF1*vngJ)zoS;n*DG=;5jEQRe?+yNy^rEV=LbaDMg9QN=H+41pUwHdR)AB*f(C|v&1ZY;G3DHsJV25q0{y~Go|k(BuC5rPn*f?wZ-+{eLT z9ullWU2ttiNaOy`l$fD^u3lO+0->0Z3gWW@43JCF?zIp#9~EfvXx@NjDU2~sU#_8+u97)xdg`ApeXS>Uk|>) zve2YHPAG+XAoNeP9dv19@sbVkaliTc2mWu%*s4PW_WInb?+w39$)H0N9lZGr9IbDZ zab)2eyWSD&iYHuatt%f}!8cXUtBz*p?;E|p#VQ)e(gg!(-R*yh&9)^T&?YO=^R31W zbj-H>$ap9&`E4I!uIDuOD@1WC+_&^+pi~=zuG)>X62EvB+RT*`$U!xY=?`cB7QfLm zrwb^86R*1o6G6qTZ(u~ajuLa5!@*?guRuifANbXtE{z~r7Yn4T6bvIc^AW8c<^ScSj&-Mc7cz#%`y@Fj;!`S~3XM6}*)Vjr~CRa^str6={4 z%;u#0-CaIO;7G}1u?vN>e3+5~nwIe`d)*v0R|`kA4)y}X&)spB{Fd3pBGJecv!6$v znsNxg8U$C6jud-*LrR~P1XOqx*CDM$S#`%@SDEj9*bh8&6zGL$J48Zh7amnzk~^`J z+e#qGCh}-aoIK01IUX&2dp2boTU+)7Y;`$kJ;R+aA8ph zp3k{vE?o)cK`qttaq$NfXWD!UOCwPgqTnK(!rCN?ka)ZL4IPO}8v;XN>gAP=WG`(j zvXiQG`Rug?=p-=m_Wqa#tWa_lf^0(+8n3oXw3p7+J8MwY?p2$?B58h;fzVQh0|EKd zG&qZ>>`x!eln$j2cC0RL4kvko!k#uASqUAeG;(;RoaXQk`~cw&9n4D}C1>^LjJ0)l zrn8Cnq(Tu|gSEW?3{(aL|UpRFBm3tWo9 zNZe6RD(1>WH=kYDXmu6L_PV7r2Ip*$_~Kre z0wucJ_Y_K8?}=qzzm@k6)tYRI5Ni1ResOH$=BRS1>}bmWqci#sI*THAIW>CsK1{`q zKM*HXrDog(uBWiTh;3DZ)(^rVQX$?4zG#srKF&n^xk$F{WW{p=MoV8`+tG2$ zEe+tG>oDyT2Fs?VrW5eI-&ILN{oyJI0^NqfpTI6L2WCfdX#D?_KB z__#EL3XUC*_McP()r@|jkfQFNF-aS)5!yTFRaaNb_FMg1E_=Xcd;|3`$wxl?1c&Tu zWRRh4wWnl(PeOXL(C0ehnxBxJ8Hz1oak754vop6P@d8bSL%IbjO*J|V zhozCysA#B{y{f|AFV;X&Llz#nZW6G<63-8^$??sQzI*S=8B=8(4BzT-` zZ)#>HWeG$d1~emA*!R;7|6KyQ~j~j zrF1YVmTd5FXCRAw8Aie12#XtLesxD&YHC+>PcIi63FPXU*#7RrT1_=>>l;c<+skrn Rt`vO91_y=(wD_II{0p*ZC&B;# delta 2018 zcmZ9Ndpy(oAIF)dQi~d@}i`H4^@w+@8zt7|G{^#>}y&vz#`|)_ap6?qQB&Jj( zK-nLFJoZntOcb7A7G&Eo=e~`+=2d~%Y4N?8!+4)fMt?{`&zdslJwg);n7Tt^98mQP zY2LpnI>Y0Q^NaGz19L9t%NSARL&C+`p5BcfY1IIN#S(XQjNbMdN%rsee#v4jU~LWb z{{5~5?-Jsx+x}>^w(eJ5C=N7{=T$s*gxT@qt~axvyT-@w&ET8lE-5rZ;|`^(8oga}ssN8aOb#h<&4Hyu z6p53QF|W>V14ee{%W4rb6zgY6(-czGuqM@;hY%NXj<;2wfU@wHM>fNq=nn7l-6B6l zGxKNEOL7-4CFQ=vr$`{01YROwTxLzpwSv7=0^kv#+=lk5UaFW+-zakeAIHi zx-?D`$j`8Y@S_tO zD^Eyd@QkC|Kh)lX{6r?}85x0`oPxQ(bW2)4&m79=7EI(~$JOozhZnCB%4(M_Dop4A z-11O#iIJQOGIr6a>3@KrbPdQ_SLQAs-ih2N|B?zVPRBKhuDxBqcBX2U9P^GNW1R)- zXZ~-BuFn$4+{m_@<#mNt4l0T#Iw?hGSu-tB1|A8|ORhy06}d}d?3Str9Pg&24?A{J zz5;3?pYGVbEMycR2tAAo4PBhey$p9)Qz^q*=sn1qxD5^J^20Cn`;G?Tzt!16B{4PC z8~{)SlE#tXw+vs>$P=lgyQjz4@iRBeYHAtKs9rwKIp)>4(i0Pn=dH-TJd*KIzzjV! zXc2cTt=G^%MYu72K-?6sOkMhP=gX_4Z>Sb%;=b(~y|Hnhz9P zIOvx?hgF&866AO08yXrYCm(L;Yf6n3W8Rl|;@UaaHGMwqp3~x1k5a+?;Rt++Mubo? z?X2XZ_UONv|Fz%XsmB%PNYdW3>`Pyo?-J)1=l+;GzqH7wkD>CH&-LD2r>-0ZBTVCa zu#=fD89DVAI@2p*#*qQ)@?^8Yn-%2TF^QPlTz{Jm*IeCow{1?U(8nc;nX$0F& zPU{R4n-U|?)ZZg&3QJS9!#=-Y2c;EX;|g%CvjYd?ki3)#8pj2;ir!GlP;0+T<;=A} zoy#DS=GgP%I~Hkt>+pm6sVw?#h1sv?bYc#bqcS@3TEGd-m!ARdV_Lkg^?P3-3HtJk^4LwGrk}^l9*I(awxz`vcQakjU;&YBZZNp zqIoNg0L;Mq&h*v9G=JI@<`_8+)R`qC=AEzUOMHeoYnlzmrhf1fR-a%RG)CgSw%u%d zR~ep8uRp`~HN$=C-=*6{g4Vb}Z^Pr~Yydn$_lJJdI%BEOU#5bdR zW#vY7#G@wuNTePZtZ#0<;!xfZYQA90sE(}y7YgSqcPb3&{QmN85gMnX&ThpKqYXeP zW0Ojy!anx=jwFKi&W2NlSj79Mc5|KFT>f$3Ucj#TCYwYWp^(8Dh|NYLr=-Ey`VE6v zwg~O1G`6A>t|DCC+B!;zoeL6=B`WU< zx4rkk*9z0=1XN9It9+9Ns))~=g6Saq9o#f&G-b8@+klVGd&Iarjw6d44A>L>T0DQK zO7^l-JJ}OES9c@QY^@iv!3e3&o?Ay`Pf5?0c51Is3B(;r6u2~=FUYpRI{>cR-=PfZ z=YN-(h_HjCGjOGAM4))GB!1v*{l$QMZBEWQR&Cs1#%(G=^MsRSJ!Ez3=48pK08-#O z7#uFBJSaYnBmR~cUgs_!YUP|{REZ9UK4AWgvdJ0a`YUS!p;Nx*n}b%eqv5+sY8m0> w`v*6}g6ElAUtj`tH_~Fue=e$Cp;yQ9%0$s`E1m~+`F#J~zwcl`&7L^&pKp*6O8@`> diff --git a/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png b/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png index bfe5fd7fbbb2282578678fa18cfe024c6fdc65f8..aedc6afe30738b0145a39fb5ac448281ff250bcd 100644 GIT binary patch literal 4408 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 R@>=~ML8$4dmMdFf{|7XB{3iea literal 4317 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 diff --git a/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png b/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png index f3c3c4aee277cfdf8354a81e8a505f6f9833a65f..ccdcab84e4323e70e3afb1bae49057b8eee14d27 100644 GIT binary patch delta 1045 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 diff --git a/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png b/tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png index f366912df5d7bb4aa978cfadbaed7aed1499177c..d9c62a72a82814f81af793d8229bd0060f3a7a7f 100644 GIT binary patch literal 11334 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 diff --git a/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png b/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png index 474e2bb2bf827ca5a3f18b35e22e259c626e2051..97ca065be8141578be27e025f26e7583699b17ed 100644 GIT binary patch literal 37842 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 H;MxBJXI*e1 literal 37676 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%0AS3nnGSMP1Lp9U6f9n zcDqK#MtwWyFz^>ZKL3-&;y(UmT?B4=H<`>WxLj9RIHIKZrqX3m3yjfiTT)rXaSx*| z^M!Px`MgdI85y=_IaQdS-(!p@tEytjhc2W|r7~gGppOFk$Z>^XX7Y_uzk>q!R}O;? z4)U3rrB{P%?0kO6+FX-AJDl?mn>zD?iWq9Wd2dS|Gfu?vmY%h<$l9EUb?o1 zZVjT!$w_m)mFxz0yl9*Kq6l4LCVe{d^}jwUY{gsl;HQYH^OL*9Yt`W#J(48)pFGByTlZ?-KR6bvOrMiml zflyw`()?rn$@kU-&o$M-7~$SadWkQ>{<~B>wkEJ)y<+Tme^lV+p=?}yyas}otCV=6CDgHetZ9uan-d<_f?gtCe+1;o<|4usud;QnM4)~fT^88yb{nvY z_ts2(1;om>3<+@z$ZG1j1C)Z$9q;A*l7=q5P?rB}X5RR0rl%8&^^q()c_TB< zPOQW!cI>!hH4ZWU9L~G9kjInEd;YQz#ZD`ui)-TZsiOc9X0tB(+Vf9`hKGmcShY+# zZ6&T95t33X^1xFIE&*DnXxUn)U}9oIplymS=8G=^PW4ws9nMS$c>KNq9H)V6*<#=| zF*J@l+kGQ}dC<-6ADxfxD>M$|cU2wWywU#J3qVppt;7iTZXW@d1BQ3^Ib{k0SQQjpMjZQdb;{4x7-(LZIEP1qimgQaKNmlixtMB5Hb`%KJAm%(@Jd4i<9!fjlV)0-O>rb1CD^ zbPtXE<@v+p$weMqIIc3H;wy9QznsSzr^YW`6CLGTho>9wX7!J> z%x-VHeH&1Cs;?mV?+)emP15sV`(Qg2iv2CFrJZtgZC2^~zY;PkA|YPF&#I?g&bG6U z{G(;Jdwret=FH!!+{io%M}l~=?$cy#P{pD|X-l`wf8$W!wk)&X&BV2U^nJD%dBC1E5K=gZTfya{Bei_5lsv722j9A^ja$Z8ojRHO8_;?>V9nB zd_$5v`Y$LaJk|=Zr^SMjY@HfIzu2}}4;RMmp;g{T=euc+G$aIhDICJ=tof0Y=^miQ zed2puJ79pGKM+n zLr$x$c}aKYAWbqopC~GDIsU-{u3&214_Fbv5RDiuakK@5vqu^7Hxf2QCB%h*M^O|wV

fcyb1`We1~4NH*@ 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 z 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 YWk_gZi+=H<_8`bePgg&ebxsLQ09}VKRR910 delta 153 zcmeyw^oePLZNNs}!v+E@jzNFF`;>1eN%9g)d&JMj|3-oV4BnfRvuF2~CY_KzyYs*P z`LesV4D);x1X!3HaS@Xh8BIk#a2JcV^$JGZ>Z zs^lauA_JwY3IgO2lm7x1e-IgvElEKJ1p%@YXi&GK#5w&LmL;u8Y9=aD#&UQjz1eJj z^q4C-I+NbiARN8H)5HZ2hf_@o_Xkza{V7NG_xHm_qj9{Q8;wS|zrR22VvT0npLdLD z|ELb@K6<@YtEts$f64cq-_iq)w;+L} zMM<60Z>2jHt0U>!s0-m-%gf8B!XZhWPDjhj%Tp-PY`Ug1!;y+lo1{=uxZyyPnfET% z=H}*^+xFzNxw$#*V#YJ=&)b+b>}_lsxr;SameiJ1jj@8MaJ-8Z1c9p6s(QViIbXS4 zR=3-AzpLeF7pp6&f3D*l^0Q24xO-1IJF4ZFt*x!da7a?G*VEQkoCA_LOH*bzB8}aG z4DHL&9d?IXkhrbKP%c^#2V0Op(ihRQP4)*XwuqJF~$eDJiY-)${r&_ z7Yi_4h@7M83f3SrAXO2+`lAJs11yst0}YcO0}YcO0}32mn->MgwRwTDMP8dXx9x{x zH@2U7IjtyB)r1z45Ca^O9|H=1k%JZQfBUU!wVG-R3#wMDS(FKwsBX8b&Z}4IbUKmq zMhePKbBO2y6KWWlz(7C%!$bmd`SRsStafJo z=8PTUvtGmbCROKXK^*Ygn6Dvwk!RAkfA~RrdwY8R;zjJ^%l#97$LDdrg`;yCf9&`5 zhZBcZyPl_id7l1RDk+fks>JtLl(=Z+xm8=qh1i` z`HL5lbo}_@r=N}s5%)yREc^82UM&pehvDFH#B~LdI-aM%^9GMPebTYWPS&}rUwHD{;h~l?YDxcID(TjR3wl@J zb0(`RD|-0g!N|*H9*|qNZ|mvK&M1q_tkuIq-Tm-kVq>WSN%uedOy6CI>?s$*jqBI- zXnT94Wiky2;W%xf-`C#`4pJW{)s^&@xjFVvJ~3)YG7AWQ;W*!X80y)l2n!S?BGDFhldkbdp@Nd4ru~A>5sOzwYsvB z_G)uwJ`DBa!GRu5@GQC{`H~)f_@E!zFVX7CO6uW%kQl5uQ4Chh&eR4gK7R5f9Cf(+ zrAwFe=FOYP`HGI=?&*nJ=gt`Jp8Z7|XhBAE*40b6qRD8+t#e$oAqV~!^EG6T%l@Fy zXhDDk2nb*xAXE0GasI-357}_$x0*%0cy$)Ic=hlK}`Bk_Z}-2pWHY00yqji-P0YyujFE1jLJ+ zzLBTUwJDU7)5br+{_Xws^aac*H7ITmYQl5^i}4i6#o?BPG>3LXBRB8D_&E|By^yjdqZ z7ON%)!{NB4rKL=kDKcM!x|vksfGnp_h@!c6?OG9Zh2F z7No4fh)HJ;@jBdsNby^dT(lmNlP!oObtTm$8C!WWEy$W24o437zOQDp8986G*>pb~ z4y$TVS0^d_bZR*8`<%!rCzh6$PHo@ew6wG|?c&8Z?aw=6YMir;qbmQ%U96g)~h@Ybem*#?N2CJhuw7-L7qNdzQYISa^;H|eohz$_z^@COwk k000000000002I*w0oOm1DH1!c`2YX_07*qoM6N<$f>bQ7Z~y=R delta 2386 zcmV-Y39a_)6vq^hGk*#GNkl<9mnwxbuq4!#Y50eIZK^7on_oobhyYs z{{R{2>L5mt%`o7`d!pp##0Czx9E>1AJYE6!4+x<6hN8m-mT&4*InC4}Fy-xHN9-WW z@Xs$PiJ~5g?-xJ_l1Tco^nCO@)UDf5;tYR=MMO&PNWf>evuh;A6 zZZjoABk6T@!_n^E9lGFQZ>dP(LAUC;zhub4!9iH9R!?8&YPA|392|_hSp6CI`yFFB zIH|)rznEgRAZPDXBsC=Y{l+Y98EHX+Akh5$yqeACxyLJ&iW-fEe|+EhSGvpb79@}~ zFR6L?sbuG3H6<sQrUhLYjznB+l0r%0BL|wytaq{2 z*VnInZO<<2>+9n#W<2A5zm4UQ{TiG4?qc;6CGAQo$JoJGINrqyf%oi`9}ef2Y#}@~ezyx_et0JFDfGjg5`Sa7a?S-PXoNoD-6`N?m3+A`RSv z^c=|119pd7khrZ!PbOLs2V0Op(ihRIjrI#uFNWPg4sCC5#}0?oZAG@Xw?|l_$&^Ih zBp_ojNM$D={Y#>54&B9)9PMT~+{N++?2d#E|4*)Uv0`?wf21_NlfIk8PI98rXpCjs zyh*A~CK3?dw)l2;2Y>5^**0&Is*{NXq?N=@av}%@pBp{Qwt16Oog^SBql=Xervd^@ zDgpu+2nb*xAb^2@q->b^R8G&unou!@KV2Ta1%_o$0iXo|3^yXzsJk`C21r!Imzron z00RL53qgG#yYczwr?b$er>8Y{5|&cA zthw1)l}aTygOh>Dih-nm6bkyUq&H||0qIrx)BF4Tdi(aRZr;49-DXqmc3Z9eeZ714F4q213&^l$zxqnPAMdlWe-}d2 zS7`(U*CQZ+Au1r8<^>D{1Tc&wATu*FquA}l`pp#w#8*9r>y4_;(SkVOw=o|> z`XWctH-Gp+`}_NPv$GTX{Bq~afBAV_Z}wzNzPC#~AouRy*Q>3q zem0p{E62xr`03Ng=28Wco_zM1zPl0GQ_h7ui;H@`x!Kn?sRo2_TsGV3=x;|yiO-X2 zN&3sw6vrnQ^c#}Y0zx>he>WY5dVO@Hxr9#L?s}g7JT;Z;E|sO9kVFL}k&hq3VLLpj z&@U7Cw0~JB5RM41wzhQd{{2MuHS|07U~P?X#Bk_&x<56gH$znHHz)fb9MN8FZRx?< z+R*!<0}B|24#=~oPjzQ;F^RHFwCOO^=FyR=LmY=xPxdj*G?Ykpe-;-9I_-NA2k9x` zAU$2q9i&Ur^UY0Kk}J%1I{NwJ$Hc-RNpoSSpFe)oEK_DdTJ(Iv^3^z73o z{m5~NR+g6&4~N8Lf5nkvvSND1Hd*n-%a>ul)7@{~x~2E;-$$;OcT9IrPTV?o#dP=d zFWNv0(x0oYUcwbk`ZH*qFgi~E`~g3plPrEfXS7oJ0iDNBC!U0v{0X)U1Z1K(7?A6n z{Ry^54g|023oLp+Pg;=lY zRZFe5F!u6ayNvt&zOYndzpg_E1W5{lU@Y5WFa!iJ5D>sXKmY>)0St)*q@2V~a$M4a5&0Ww~h{D;1;BRC}~#?pW=161(D*nBAIACBqv)CNoq-&lVrTgqiI1_ z<#0GM!1sOC>-EU>>h-$&;c!@4-MTtT;l-uuz}F8VmyD>@YL{N$-cqa8#$CMl#{GUr zEY)jXIs5C^Yim+Hk;=juT&~(G#c4yJsj-4jwiy zKb2e;D>LE95a0LJXf#x|VV5^bAfMi;R0wQ(0TrVX3b=ZJ}F%D#$L_pG& zv4He=qn?WeOfmuj7zhZH1_%%#000000000006-4?AL{;zsVMzmz5oCK07*qoM6N<$ Eg1ic&Pyhe` diff --git a/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png b/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png index e9efe1e79698009dcc9a3a6d773cea6db2d2750b..cdf11c52d67dc0d1d4d0103b17f588d2425742a3 100644 GIT binary patch delta 2714 zcmV;L3T5@h7wH#}G=HE;L_t(|obBDeYa90;$MM%GHtA%kgnqYL>eMNg$Wl7QGV~8< zpleD@@D>6k-fJhBQyW5-5JE$|7TiCeU^_$U5_Hbgsi$-+1f9GEJG$?nA2_k}zB}o3 zI!Vt59K!P5>0{~r(&wYQkIoVR000000002MY;wX@2&5p5h7}|(n9gQTEhn^;GRX&}f%l_LnKrXf%Rqwc2~0tJP}IXf!6>tav8J2M`uh5Xa7dEtx>{dfpFoRd(+%|vMPsu{=qC74<%l_cNa9?oCbEQLT*G-Q5ihha@$dP3`VRIUtFCwq=GR)X+UhS3?>7 zz@FhABx>)`H5I)`273@+(&yo;jrR*vzmB?tIkdmOA2}RSyBFEt-ydU(W>XTiNkArG zm|`a&@g-54BM-5pj1IFhJj8N_9F7DT{+qHk#ELk7ypq!RPI@hgoy>`YgM*1|J8zPz z$wUIe%NAX&HvCIB%C_?+shUhAAYKwXnG?Q0{M_hKww*Ug)g%E)8AGgeWGW!QtRf(Q zfq(!80s>I}^-M*WACTqw4Zx`EIWi2f z0K-BJ=o;JEnuG==@#l}e>F+60W1=Xr9EkL9{<=(?d(UKcK3?oHENT3S-2 z6P9ABq{_;Qip63!gEIxQd3{NL=5qQ^Qr&TMm}__F)mBTzAkhCLecNiOFv&(nmBHD( zp697vud8-^ta>LDHP_Y2$w_aWv-j`KLWva+%kqEnvP#9G^7*_f<+9$rd#7vHuBlWk z_SQ)?OcM-_3PKVa^;F@uB&FVDX(7F+qZ8c?Ju=}jB4fTRTT=+-YdHyG~K@+ z>+yd*$N8wJ!~Eko0}DHjr~w)EF}{jXz{Ma?DQ>}UZJEFB7H<^3@9X%@n|O~uq^SwW zyhs}bhOmHem=`b*5Wp~&fGjUBk7Ktp>$5%|i2L1#!Nyf{^dK4VMa27%zR)x2 z&z?S2ylP~Ew$NN~As5RF; zUsqjSRk2vq`mI~$`k_a$g5Y9bUvphGeP4%1N0QXLJ$m)3*NCVmYG&D|C-=%hph6I| zZ)5Jum*hH*e8*|u>f%Yqd3L_$Rv}+^?=;o*wD+py*Qi9th;At z`uW3$vCWg81r~qXq#6*yanVYvrQc3Z6Q3vLN%~=NkW3()LJAO4$^iN#EYy{^)k9OwpP2ZMDPExs2V& z4G+3YSqd8M(#!rbMH-DpP_0&b&vUg}4H}Kcq?;Abq+jm{OQTc6`gk!#>Os!`P?mHc zW&eW8Q__R@zOS{lwF_4oFPF!WIo5xP%XkmsOInlE=X&nR&c$*i-H5vp23lWV z?|T`3*LAhNzCM8#&88db8;(SL+9d^&f~^d6nbSVR+S%FZ``n&ic6N3q-OOkv{dybA zmi-)?Vh^#p@{(%OWG}gI$@mb<_kER0rO+#$=ks}ao|pZhRz`th^?ne4|0L^AoySq^iNTQ!@nc)aEbPv+iP)0wnXSfH6+Iw_OMK6-U9>kaQ zdH8DM{le6*qwZi1?eFhL4u{n4MfUgi$JnCTltgV3kO>&3*a=8{Nz~@ZLo6wy!>kMs zu|lpiGfzbR`&tcb%aDUI)>*OD&S$(%SiIGD(`^Cqd9Oe7$@Y|+(f!@qQ+Y&&m~ zs>wtG;w7<@IpO=m&y5~s+mi+e9y$3`nVyR^qY?>7C5fHPiArVoXKR#g=S@=2RD}5f zS)Shjj4FlyFa^x2@PCiGovle|K%zpv^+ykrPzX^RHZSHJ*X9L=7J6;osqH^9_K)pn z-jo(fSeej+lYs~ylV1o11R->?;*)Fx8h@@EI^}iY^5xz%&84L!RXSlQmP)Futf*Kl zW-~ZbFq_wx^k*)o|0LBNM~As~hhA;9R15WKh-#6$H%I7 zLQ!*Fot&KX);W9s-Yk?@0kJGEFRN56Dxc4*QZDP=yLY;F?V3u(VsD*P!!*Hwcz=HY+G`J1bDWQgI?O+g zGqAAZh#HVlALFYS1zZdQmEsos)_<1y>u&Kz;rqUh-@J+U_(PhSfXu5j0)oK^2w(^c z2#0wA0|5aHV+qLe^71%#JF`CP^MSbEeHd(9HAfGU0bfMC59td%lm6`KQ`PHr9UdJ; zKEB*KcYGd$t#r<5eA8;_>vM-zJ;%}Cj-$VFIr)-~bG(m*iCS~r^L5qLReu$WMXleu zWv(B36e|cW_VqQ_Rnzx%cyuI5z1yQ#uX>G$dZK2QeR^`Q90V!^LHjo5zI;ipK^5{|Q?NSfO?Trn++}n$@$;`TYcBY>{d>GqYDqqrr zOPBO`A#|iX7k<2XQ_r70i?vOv0U;b0t+ZPD?esM9c~YLF9~Kw+eDaC7AxSMDgk!L! zAkZJDr>Z1$=(grK`fhP?u7^~XI3WoONFr}Pgu`~yDd-moyxYIX4;OP*gG@uQVPbjQ1<#O_P}9t%y`KMoh>fhP>y9!5C)p zib&BhDGW!9F%3hEcf+0Tz3be2?z(rayVkvXt^eO^@Aa?!uf6vEzx}6Ng_|7OFS(zO zkM9udijg%>_xxN!dw6@bLrp$U35FWL5JEhO7P|g`kMBS<%t#+`=lML15-7DM+x>kQ za*lbuJTbP>>Dv$_>#enR=NZlszrsLM^F@Gw!g!!!wvCiQmau_g3t&vI5Ck=39u0dx zRQ@tdSun3IVqf2=JH^SF8K=Y{=Z4x+kK-T^gT^U zOw%>(Tphym0qb6{B6t_EUQ)nZUO+%xNaz{}6n{6KZ_gjb2~AKG=EpHf0o+@AQbUJP z_V&RgOf05e!#czI+3xJd`ws;<5yNt#G0+a zDf%r(YJly1gBf>b!{ap&8Ha+gyWAB>fWFKyc{W_!&&zAdKnwg9V zjbijf@aC6viL|SRYarJ{-kbwbNm1ysR+C`_M^0i+KN?n$j6654_iPh2wCmlAgoK2i zN%Tl-Pg`4?xU*(1rp!X%41dQlD1VAt$_Oyxfr59~v&_j8SsK$f!99xYlAF)-%+PXPfl_N}xEnYiBziK{dDcGb|J}UJ)7brE0rB~E1|l3NJu@O5SwgiwEyU4-O*A+unZHW6^1fMH#E7UE zW>rYbR*vs8?nj|+-TF8>GslgpyXv{S^Hobrm33`dv@V`{%W+}6^*2J`FhU6sHHwog z-M6RHhV(lrfcQKoU~l_;;_qdlJKn;x6a2wCJ0yag83w@?JgMeSSbhdRo^VN&`^*#q zq7^N0UGS_G)^PJJ`on;lN}oCi-feia5h*XNMu>kLK>ucYeE*=XGU|%rM2q-G_8zZV&ww)q1Edy&{fEdHY75a!UiCZkr!C&{keBO=;6xu^|YAEgTx=l z^CkTne=|qyXEoKc;#Jhto=p9!!K%}Bf3T&K)b_?Ulmn7jH16z1lLxXnzLo_QZg|$> z>@Q0j^iRa)W$~aAjhEjoDogMm@|;$HCUMZT?Oyt{nfCkd7XT*%`cVv)QedDG;L%7E zs&7n}qhcrQGRF$6sVrUKMY)2BTrz*DuF!M!NJV$8Hyp{xe{jjg$!TcP2G}w z&YBCnQ4A1vraSax_`=wr+7p?sakZ8BvGK8?J}y^_^sb7;JGs%3Tw7hTq@dFj274lA zVA2~p*`0fS<;Ryghb^3>aC^w0X=TX-+)~tCkq+DR2uWX1EO;P=84@ti+T*-mfEyB7 zK~03yJ^@W8PN}|MLH8b21bgtqrl*o`euiuB=E~i*+!7-KCxyP>igRx~e_r&$r=Eq+ zt<|U6McPuP{6a&llI4%BdN9Nj<;VKCF|^SU$qlVZLluARmtol{@ZqOPpZ2}wn^^o$ zZ%kMctwXR+6{zd{FVLIU_c?WJu`o*6OuyJQ@(aZx{c^DgLMd~c5HyG6Xf;@Sp^QEgb2=e*;CG3TH!zvn$M#j%? zjI!BmT&_evZUQ;g5KMVf`q{9mrUjRy`NfRwd`7o(DaO6T8p3(V*obz^XL!ezWe%Rm zQuMcNRh#BM_9aHy*xa^L_F7$CmE(r<_50XFMOneG6ctEkPYRt4JMxiw^)lsG-=@7O zBT-=%#%h>0nNBPxV%=won^5jO+;qUz?gqUd!@ zS$}%6gZ1TPM+q6v`!4=Ig`kd|(yBwXa)&K_}(Ny zBx*kVog`%;^K>5`m0`LWu;70|N4F6${&`eWn}wM zw1Hqld(J5r@|g4ehWdIO74Gn`1Y>7!hfo33Nj!%*RLz=gYG8kh!+c9C?rv1t2KSR0%9OHFygKopyDP=E_9tY*YDehPqL zdh=dS^Cp2z2F_F1uSnJgvK!~jX)R!(T4T9R_BAe6{U~bCIXaaUxwRUMn<@dIt*TvG zD-2GI_aZD2vOj^dLbR#OpPEH>54sbdN5i@= z=ytaoRTJ6KuHL~GU7l7_jW@DKlk>aw-+L4j!%K$~!;1p5Uf7BCNIr$u-BPq4n?rY=I=Lj#BLW*8p8TeqTL41}}ah0HC_8tw+a<1tJp zb_vYBq2UD);{2F1pLjWxv7O(?Ty4JxpSkmXnwHn35y9m=$QC;Fr zi-s6toGuAuXqiL1xXq3Yxy^q39`*bD`Fgw_pFcjI&-?kQ-v4Gl_B4QYbF{k> zU&^28ymM>}(zkT#iORftaeuWQvd-uLv+adEdrynv-(B`iWzE!nrc2<;Dp>yWkvAdy zwx2+h6zM+#31F=Yc7#iX!IhQPCFTP%)#78GokiAP>31d<&9iuh^&uUYseS!Dn-l(qnKKk?W8AuNh= zQakk;%3xkoUWRJtXht9tiV9f#AQQ}#theCv6MAt9f?HVG0t>kRsPJm z-kVbw?A7)V@#Or#tGDqWW=qvHU z)ll|zdd%16HA3IO_IC1Oj4PWzXdy7n2*Vokh_mWcwa%(``ccF&1WFZMxS3wZ>rfA` z?CI&T=U}NM`3f?WDy4DssB*Fink0J5+*E=A#MzdhFHqYrVIPX9%uCKJjznLq+v^-K zJu^d1RA-k}AXs+bX6{B8lWi;<< zwu4cyzo$~yMLUqR%pQe9gplY!QsY`d@$N3eip`G;X15ovOiKq9)t+o z1|46Z47n(%C)lZI<^3n9@?<*xv8?mX{eU5KT6V#g&*Y0Yig?_pg{>Q%W*@J5OC!Qr z{)sdNe5I@&fXT0yi}Urxyp6B_Dq#6&4EQW~AMq$RN>BukU-RFOzRJtGxfstqF!Xhi zb)Q0xyLZn={BI8m?NU@6X%2Dcc4(->#2w4t4$NrEXmu6=xOZ-&g7D(_a5mg!pv)3~ z4xMRXDgfa6++6F!z0W&38W#I83nxN;_j-P4X!QT+m(-p zyM)qY!{hu@e%DEQTC;&jy{{**OcHjit@Cb!rz1tr@?tc-0>$1>HEOp;jwcwfjU-uB z_L9HG4jVr-6_!W*WcTT|r%Z$)Sn4eGguJFmN){}2#2rfA*ho+XHj< z=4$HT6}AQf+|XbmcByp8qj`9ln-piR7E!935S?V?)+jkDS$jqpe^L<^TsUD+C~2b% zrp{K^O`k3kQ}}MNHGq&_>&o(UmIEIKbO%-PH0K+G0RBcxb#rk|0y4UiuhY07!^*>= zmdJ*tR838r50f1d76%HOpX$rl7S1=ezE>8VRenI8JdQ(E%iL(X^QjcRlK0lJ{i>tY zp$B9{42|?W&CIX$+9hwXSZFxj#^Z7^Lkt=fe ztXDRL`PkhCeM|p*UYML5uJvdhkO=B%_76Z7>>$p=%n-}0M^2A`$|Vpb=HzO@W? znumZ`Q5EN`rRinA+%(6cR$Hi7KJeG^gOV1iwe2L? zs+Z`8)6HgO_%7`L0@{7x$K`{6)k@KJwR^qGOL}+LH-L5-(MUw3?^zRhNRq!Nip{sJCSWhi|4%J)*T+FBiR@7S{>n%E;rfKVX4SnO$KrrU5zp{m6%W zK3{zuheC7NQ85>K=iJVDN#|xnUf=||;T+SuFFyM-d{NAXFiOcikPwSoO=`Nip%4fp zA~JHm|2`X1o{#dJEq=0Sk^l}GhDxGHBocH7H*?*TkDF=T*7RyVsC<#8ZIL6$)oCkq4QNCWV&{H+D zuR2qAJTvZIurJpa`(3hVG|!;ftRK6o^{r6ls>bn6+nx^~<0fWz&@!{s)}?MZ#K=Hd zoQb`k9c~+Ju&E9_a?PJUG(-)oD)Sg$DZMV}r)C}9|MN#8$V08S>otnX^pvJqsjQa& zGHjZx#463@;fx(!jogXw&|i`|ABGSgKD%sR+EM)z z`?2!ia?<&tzdl%4V8|VMT%ZDWj_w0e&)CHKCrUvzTPEYWAYcO?DOb%Y4@fs`@zc}Q zj%v-w^C33Uftz|w$ouW};4|50LF((j`Q8fAJ$@&{bYa&%0UJlS8a+Wqs9;gAjIAU& z{XQGEE@y2yU}Au7KcxN#HU3SS|1Y`Edo`T4R?bE?Ggm}~N>n{h@7wn-e~NnhS^vKt zsTp_qzbE1CCPR^t1{M?l!n%pqPdpdQ^!NK9lY=)=g7*ZSQT8UVWXlhXUIg__@BdzN+=DyL81VpIr#=Q_FwzaAl z#^}d|=aNT4l@R((;pd7VekD|i3WO0bM5*swNWmyHulGbBw6I?8F(93{+WDS*I%N3l zhwby$MG!>vt`;x`4g+aKs=dL)u9?9Tq85op+r{7V7kduQUn%R@TFI`0CBJqo0P*P6ZUMBQ2OeoPc<+SGhEspXcwT@TAl zCN)WLwUouQ?d7X3aLS*?1rCobax^u2J2jh(VfeEi%I_R`vMmg(%><8u|zGFTmmext?hd1Ox&Lc z?tL1Vg!qexCmUC!;+w#ro@~EfE?cmZ0yL@}qNk4499$&#dNCusoOE;9SR9wtes(t! zhz<-n4XsMF4k~xj^56rwUYAxdj6ZdRo&trJ5=ry5_e8n)2r3)1O}51U`*cw4Zlse! z7oK@)zBV?~Ho$D2;4#V7$UD=;0;7owc`NTkP1}}^G~c+^tYi77MYqZeC4l=C>43t_ zjXZts9Oc0il17uh$f=}bR|3E5AfwjQBrTyj9_P#>cPciw8QBZn&~Mo}_tXy!@#Sx& z!2%XRef&II5aG@5LSKbKU7s`zx@&Ppy(0rdKA+w*TuG~|*FV6YoZ=qt-poKUqK?>v z_Y+E2xE+Fa#ofzgTPtgrNpop{)V2-5kF?hJV~*{s;jj(sI6uXOZ#8^P`iHvJ zk5?}9F2XVNU7)mLx+`pKQUE>Xp;EY-Y8D?~Y7 zY#kic5#18S|62!;cEpb#HaQ!!DYx9Lw;s3>Mvz_mBO^3}OH$V$8Mpf#U;Q@(8a?8V zf#($jnNIK~W&Gi+6buHB&G|yiL9FXh+kMOuAqlmi?V)wT_N|ji`A35ig7h7-pN34H5!Jnv)e3@kQiB$|oBSK5-T8RWOs*hdDgZ38Q2C zji!jM_)jOeWAIGbQ?z1_QWEW%g2f8@D%p?iEwN=XNO;f)!|=E*N(LcW_-@u#S1s~x zV9Hmag_G(41-y%0$tC-XPZ9`i#7>gfU8*zK$GV;#=qJ~6%d-=eD`^}Kr<~o2qjo@K zy5g$xxt44nMt;CYM`N$j9+q?IptG*8AC6tp+?cO}d>EEE(|QGebW5&XfXbK7@gH*j e*5g43v_6|+V0F)Fr#2d`ZTi9wdeJ=M&i)E0qzQNc diff --git a/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png b/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png index fa359eac1112ed3047fdc7b2d836f50e16cb12b0..c8cdded708cb0ef058b5441d19bd8981d4a7ee39 100644 GIT binary patch literal 4552 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 diff --git a/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png b/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png index 778e3f6c131a2e097b6756207d2b8c98e219bbad..3cde2679808bb2465a5fb53bee8a3c2af44fe4bc 100644 GIT binary patch delta 1047 zcmX@Zd7X2DNn)R;i(^Q|oVRy3<^`uqG(3DC;ZowYrzGdiTH(SYm)5$xV%;*mLF*cy zYPIw!R)LjCj-gjqt(hA1EzDD5ms)s0d*0Ll8M7%5E-R`i3E17Dvv3lM^r&DQtu_CUw9A0l?Yg7~BP+?)>Y;>XWnr@a8Y+lv=V2VT5v)dgn+>S(DZH{5g&VKh)P0L?zZ%5Jp9}0cH;-ymR>-X;| zeSPiZ-#JA(VSndTUZ@h>C@J_hD@`)qx$meH58K8~n}l}nuHUV`|4GCewcEWN>sQGo zwcXiQ`}?d##)40KPJa*0UznEA{q@1Y=FjhLPtgUM@_T`<%Mm}B{f+CF&dT4&*6dia z`>utBMaA#!IUCasI{rw>mU{jA_4A{KlSG%)U7G&r?~0ew-=x+noO~si$U0MZe~7IE zb8b#fOvcv^0guNVDMixt($eDl)&kA$xwHC8(d^L2y4O0^&%K>=cGlcg>=_fzo;|xV zPk#d2tapn0qsq#bRa**rFn?Vwx4@CD`DI_Pm?>Eo1Uxw4)?sB%nDz7FzrQ~o zpPc;S`|r?xryq76Z)0}X{rysL@8{2-5%0b(+P+0(Zl3wH>C+Zne(AFP_S&K&pG_ZR z+;epKb2sZ~z2HW^aFLByvyR5Mx4(Sw^?&qa4Q9Fe^~EaP zpI{($LtJ%2+wL_E>sEO(e^i^Roq8$M1Cq#$n8n1!SIaF7w43$dj0DreQ$H)3UR%BO zKl|s)i^)fs1?uySW%%?HH$97%;#({$IG?xuV`ik=cAezZBe^waqK#93zWcR*^KNPO zX2+b|e0P^Q|L)ZNGEwT=9`U%vU#E-JvQF!D7ROFIZhyacc9IJ-)5@8jnIxaS zdzJO)$A^dQ63Ydjoi?hov+B~<-!O@5NunC>lh@YekG3E0x4&Xh+5742#lV{HudY^y zcYo#p%5u8MypNLNd;IX{$qcu$X#`L(Zwtf-_zC4 JWt~$(698v;`da`1 delta 1025 zcmV+c1pfQi3CszQG+~2DL_t(|obBAPZc|qn!13=|M085LbZqRc6LG}Stwibrw2y!) z)($0m8_EL^sbWD@)vBzOQubC!7`i4;P={`nP#iXt;M*Z2A`m{?vBD2 z-!E_7x^;3tr|iY5pED0yFCsQ0qFv2c#@CR&ScAbJR#sMGcYk;Hvk_^Rqb z%#ho+Z@(D_4OE_Y`M&BU)C?@K9z1w(-hG?0#HycjAGC#t*oose@U>L)CDvdth;FwV z2L}gl|CJ@yEI0_CY)xZ*ef_*RMlyrcPx?~4A2of$UgH@gnLQ%RAhYF{st3?O8yg!J znmr-}(l`Q{+<(T##)Xfy#Hyc>Yn56qvueD=8u7DpORQP5Q}qBEWOH+Ks^bOHK+`?s zSIf@MbT20YX`p`9189)JV7k500%;(DjL#AaJ|KZWLLiV32qXl;Ol!BN`%2X}>9tei zucT*^v%ABEU8{Nkyk*U#eyK+M$i@r;34uUDAdnCUB$J8)8qw?p`yEoj>vy;@TQDYBQ640v~QQ^TYl7@yC-V(eL-G9tvT*d+l7ie*JX2 z;{5!4EcbfRTUv@vw;Rh#OVR0cqTB6OImGidV6);NBK~f*;=hR4D~i}^wc@YC!*t;F z|6g4(Zw8WCTwIK9rxObc3$fhm#q;OS zueYB*jfmqV);J-}y3b#~Q1o7h&@0Pmm*w&GdyXkaG$4?gIWLe=?yj!Jj}ISyh~YHC zd|AfNM@RAH1!hu#G|Z%de0}Fm{Py_qhZ;_!d~d vSH&@g7ex_w=H_Cn0l!lL000000I0(MZw3mwv!peV00000NkvXXu0mjfz)bss diff --git a/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png b/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png index d7ef9209676ddf4c9364d94e17266cdf2d2ab4d6..6468f46b511ffcf6a9ed0378c594a361b662a490 100644 GIT binary patch literal 8694 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 literal 8679 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 vbfEHyrw@AdeKSQH{{L-%0Deb`JkXFU=E@}$gd77qH$ZYy%97<0M*jZ;Vpp7V diff --git a/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png b/tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png index 152c703f936aea98f863dd51732edd2315e13512..901b44a0ed77d50835a91067e6ead1d028f7e46f 100644 GIT binary patch literal 7157 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

DDs4b93iPN3>SOSv_$ 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