MoonWorks/src/Graphics/FencePool.cs

33 lines
538 B
C#
Raw Normal View History

using System.Collections.Concurrent;
2023-09-19 06:18:21 +00:00
namespace MoonWorks.Graphics
{
internal class FencePool
{
private GraphicsDevice GraphicsDevice;
private ConcurrentQueue<Fence> Fences = new ConcurrentQueue<Fence>();
2023-09-19 06:18:21 +00:00
public FencePool(GraphicsDevice graphicsDevice)
{
GraphicsDevice = graphicsDevice;
}
public Fence Obtain()
{
if (Fences.TryDequeue(out var fence))
{
return fence;
}
else
2023-09-19 06:18:21 +00:00
{
return new Fence(GraphicsDevice);
}
}
public void Return(Fence fence)
{
Fences.Enqueue(fence);
}
}
}