From ca483b087b8044312ffaf9acb6ed63a5344628ad Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 22 Jun 2022 19:32:01 +0300 Subject: [PATCH] Apply mirror transform before render transform --- .../Rendering/Composition/CompositingRenderer.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs b/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs index 5e8e9c24f9..5da256475a 100644 --- a/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs +++ b/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs @@ -209,20 +209,17 @@ public class CompositingRenderer : IRendererWithCompositor var renderTransform = Matrix.Identity; + if (visual.HasMirrorTransform) + renderTransform = new Matrix(-1.0, 0.0, 0.0, 1.0, visual.Bounds.Width, 0); + if (visual.RenderTransform != null) { var origin = visual.RenderTransformOrigin.ToPixels(new Size(visual.Bounds.Width, visual.Bounds.Height)); var offset = Matrix.CreateTranslation(origin); - renderTransform = (-offset) * visual.RenderTransform.Value * (offset); + renderTransform *= (-offset) * visual.RenderTransform.Value * (offset); } - - if (visual.HasMirrorTransform) - { - var mirrorMatrix = new Matrix(-1.0, 0.0, 0.0, 1.0, visual.Bounds.Width, 0); - renderTransform *= mirrorMatrix; - } comp.TransformMatrix = MatrixUtils.ToMatrix4x4(renderTransform);