Browse Source

Review feedback.

pull/2960/head
Dariusz Komosinski 7 years ago
parent
commit
c755334dde
  1. 15
      src/Avalonia.Visuals/Rendering/DeferredRenderer.cs

15
src/Avalonia.Visuals/Rendering/DeferredRenderer.cs

@ -289,7 +289,7 @@ namespace Avalonia.Rendering
var scene = sceneRef.Item;
if (scene.Generation != _lastSceneId)
{
context = context ?? CreateDrawingContext();
EnsureDrawingContext(ref context);
Layers.Update(scene, context);
@ -420,7 +420,7 @@ namespace Avalonia.Rendering
private void RenderOverlay(Scene scene, ref IDrawingContextImpl parentContent)
{
parentContent = parentContent ?? CreateDrawingContext();
EnsureDrawingContext(ref parentContent);
if (DrawDirtyRects)
{
@ -450,7 +450,7 @@ namespace Avalonia.Rendering
private void RenderComposite(Scene scene, ref IDrawingContextImpl context)
{
context = context ?? CreateDrawingContext();
EnsureDrawingContext(ref context);
context.Clear(Colors.Transparent);
@ -493,8 +493,13 @@ namespace Avalonia.Rendering
}
}
private IDrawingContextImpl CreateDrawingContext()
private void EnsureDrawingContext(ref IDrawingContextImpl context)
{
if (context != null)
{
return;
}
if ((RenderTarget as IRenderTargetWithCorruptionInfo)?.IsCorrupted == true)
{
RenderTarget.Dispose();
@ -506,7 +511,7 @@ namespace Avalonia.Rendering
RenderTarget = ((IRenderRoot)_root).CreateRenderTarget();
}
return RenderTarget.CreateDrawingContext(this);
context = RenderTarget.CreateDrawingContext(this);
}
private void UpdateScene()

Loading…
Cancel
Save