Skip to content

Commit 4e8e39d

Browse files
committed
enhance: do NOT use render target when there's only added or delete image.
1 parent dde5d4a commit 4e8e39d

File tree

1 file changed

+20
-27
lines changed

1 file changed

+20
-27
lines changed

src/Views/ImageDiffView.axaml.cs

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -244,42 +244,35 @@ public override void Render(DrawingContext context)
244244
var right = NewImage;
245245
var drawLeft = left != null && alpha < 1.0;
246246
var drawRight = right != null && alpha > 0;
247-
var psize = left == null ? right.PixelSize : left.PixelSize;
248-
var dpi = left == null ? right.Dpi : left.Dpi;
249247

250-
using (var rt = new RenderTargetBitmap(psize, dpi))
248+
if (drawLeft && drawRight)
251249
{
252-
var rtRect = new Rect(rt.Size);
253-
using (var dc = rt.CreateDrawingContext())
250+
using (var rt = new RenderTargetBitmap(right.PixelSize, right.Dpi))
254251
{
255-
if (drawLeft)
256-
{
257-
if (drawRight)
258-
{
259-
using (dc.PushRenderOptions(RO_SRC))
260-
using (dc.PushOpacity(1 - alpha))
261-
dc.DrawImage(left, rtRect);
262-
263-
using (dc.PushRenderOptions(RO_DST))
264-
using (dc.PushOpacity(alpha))
265-
dc.DrawImage(right, rtRect);
266-
}
267-
else
268-
{
269-
using (dc.PushRenderOptions(RO_SRC))
270-
using (dc.PushOpacity(1 - alpha))
271-
dc.DrawImage(left, rtRect);
272-
}
273-
}
274-
else if (drawRight)
252+
var rtRect = new Rect(rt.Size);
253+
using (var dc = rt.CreateDrawingContext())
275254
{
276255
using (dc.PushRenderOptions(RO_SRC))
256+
using (dc.PushOpacity(1 - alpha))
257+
dc.DrawImage(left, rtRect);
258+
259+
using (dc.PushRenderOptions(RO_DST))
277260
using (dc.PushOpacity(alpha))
278261
dc.DrawImage(right, rtRect);
279262
}
280-
}
281263

282-
context.DrawImage(rt, rtRect, rect);
264+
context.DrawImage(rt, rtRect, rect);
265+
}
266+
}
267+
else if (drawLeft)
268+
{
269+
using (context.PushOpacity(1 - alpha))
270+
context.DrawImage(left, rect);
271+
}
272+
else if (drawRight)
273+
{
274+
using (context.PushOpacity(alpha))
275+
context.DrawImage(right, rect);
283276
}
284277
}
285278

0 commit comments

Comments
 (0)