// ----------------------------------------------------------------------- // // Copyright 2013 MIT Licence. See licence.md for more information. // // ----------------------------------------------------------------------- namespace Perspex.Rendering { using System; using System.Reactive; using System.Reactive.Subjects; public class RenderManager : IRenderManager { private Subject renderNeeded = new Subject(); private bool renderQueued; public IObservable RenderNeeded { get { return this.renderNeeded; } } public bool RenderQueued { get { return this.renderQueued; } } public void InvalidateRender(IVisual visual) { if (!this.renderQueued) { this.renderNeeded.OnNext(Unit.Default); this.renderQueued = true; } } public void RenderFinished() { this.renderQueued = false; } } }