private void Render(Scene scene) { bool renderOverlay = DrawDirtyRects || DrawFps; bool composite = false; if (_renderTarget == null) { _renderTarget = ((IRenderRoot)_root).CreateRenderTarget(); } if (renderOverlay) { _dirtyRectsDisplay.Tick(); } try { if (scene != null && scene.Size != Size.Empty) { IDrawingContextImpl context = null; if (scene.Generation != _lastSceneId) { context = _renderTarget.CreateDrawingContext(this); _layers.Update(scene, context); RenderToLayers(scene); if (DebugFramesPath != null) { SaveDebugFrames(scene.Generation); } _lastSceneId = scene.Generation; composite = true; } if (renderOverlay) { context = context ?? _renderTarget.CreateDrawingContext(this); RenderOverlay(scene, context); RenderComposite(scene, context); } else if (composite) { context = context ?? _renderTarget.CreateDrawingContext(this); RenderComposite(scene, context); } context?.Dispose(); } } catch (RenderTargetCorruptedException ex) { Logging.Logger.Information("Renderer", this, "Render target was corrupted. Exception: {0}", ex); _renderTarget?.Dispose(); _renderTarget = null; } }
private void Render(Scene scene) { bool renderOverlay = DrawDirtyRects || DrawFps; bool composite = false; if (renderOverlay) { _dirtyRectsDisplay.Tick(); } if (scene != null && scene.Size != Size.Empty) { if (scene.Generation != _lastSceneId) { _layers.Update(scene); RenderToLayers(scene); if (DebugFramesPath != null) { SaveDebugFrames(scene.Generation); } _lastSceneId = scene.Generation; composite = true; } if (renderOverlay) { RenderOverlay(scene); RenderComposite(scene); } else if (composite) { RenderComposite(scene); } } }
private void Render(Scene scene) { _dirtyRectsDisplay.Tick(); if (scene.Size != Size.Empty) { if (scene.Generation != _lastSceneId) { _layers.Update(scene); RenderToLayers(scene); if (DebugFramesPath != null) { SaveDebugFrames(scene.Generation); } _lastSceneId = scene.Generation; } RenderOverlay(scene); RenderComposite(scene); } }