using System.Collections.Concurrent; namespace MoonWorks.Graphics; internal class RenderPassPool { private ConcurrentQueue RenderPasses = new ConcurrentQueue(); public RenderPass Obtain() { if (RenderPasses.TryDequeue(out var renderPass)) { return renderPass; } else { return new RenderPass(); } } public void Return(RenderPass renderPass) { RenderPasses.Enqueue(renderPass); } }