MoonWorks/src/Graphics/RenderPassPool.cs

26 lines
435 B
C#
Raw Normal View History

2024-06-04 23:04:19 +00:00
using System.Collections.Concurrent;
2024-06-05 00:24:25 +00:00
namespace MoonWorks.Graphics;
internal class RenderPassPool
2024-06-04 23:04:19 +00:00
{
2024-06-05 00:24:25 +00:00
private ConcurrentQueue<RenderPass> RenderPasses = new ConcurrentQueue<RenderPass>();
2024-06-04 23:04:19 +00:00
2024-06-05 00:24:25 +00:00
public RenderPass Obtain()
{
if (RenderPasses.TryDequeue(out var renderPass))
2024-06-04 23:04:19 +00:00
{
2024-06-05 00:24:25 +00:00
return renderPass;
2024-06-04 23:04:19 +00:00
}
2024-06-05 00:24:25 +00:00
else
2024-06-04 23:04:19 +00:00
{
2024-06-05 00:24:25 +00:00
return new RenderPass();
2024-06-04 23:04:19 +00:00
}
}
2024-06-05 00:24:25 +00:00
public void Return(RenderPass renderPass)
{
RenderPasses.Enqueue(renderPass);
}
2024-06-04 23:04:19 +00:00
}