コード例 #1
0
    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);
    }
コード例 #2
0
    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());
        }
    }