/// <inheritdoc/> public void Remove(IRenderLoopTask i) { Contract.Requires <ArgumentNullException>(i != null); Dispatcher.UIThread.VerifyAccess(); _items.Remove(i); if (_items.Count == 0) { Timer.Tick -= TimerTick; } }
/// <inheritdoc/> public void Remove(IRenderLoopTask i) { _ = i ?? throw new ArgumentNullException(nameof(i)); Dispatcher.UIThread.VerifyAccess(); lock (_items) { _items.Remove(i); if (_items.Count == 0) { Timer.Tick -= TimerTick; } } }
/// <inheritdoc/> public void Add(IRenderLoopTask i) { Contract.Requires <ArgumentNullException>(i != null); Dispatcher.UIThread.VerifyAccess(); lock (_items) { _items.Add(i); if (_items.Count == 1) { Timer.Tick += TimerTick; } } }
void IRenderLoop.Remove(IRenderLoopTask i) { AvaloniaLocator.Current.GetService <IRenderLoop>().Remove(this); }
public DeferredRendererProxy(IRenderRoot root) { _renderer = new DeferredRenderer(root, this); _rendererTask = (IRenderLoopTask)_renderer; }
private void RunFrame(IRenderLoopTask task) { task.Update(TimeSpan.Zero); task.Render(); }
private void IgnoreFirstFrame(IRenderLoopTask task, Mock <ISceneBuilder> sceneBuilder) { RunFrame(task); sceneBuilder.ResetCalls(); }
private void IgnoreFirstFrame(IRenderLoopTask task, Mock <ISceneBuilder> sceneBuilder) { RunFrame(task); sceneBuilder.Invocations.Clear(); }