public void Return(ComputeBuffer buffer) { if (buffer == null) { return; } var bufferParams = new ComputeBufferParams(buffer); Queue <ComputeBuffer> queue; if (!queues.TryGetValue(bufferParams, out queue)) { queue = new Queue <ComputeBuffer> (); queues.Add(bufferParams, queue); } queue.Enqueue(buffer); }
public ComputeBuffer Rent(int count, int stride) { var bufferParams = new ComputeBufferParams(count, stride); Queue <ComputeBuffer> queue; if (!queues.TryGetValue(bufferParams, out queue)) { queue = new Queue <ComputeBuffer> (); queues.Add(bufferParams, queue); } if (queue.Count <= 0) { return(bufferParams.CreateBuffer(Type)); } else { return(queue.Dequeue()); } }