示例#1
0
        public static RenderBatch Acquire(RenderBatch origin)
        {
            var batch = batchPool.Count == 0 ? new RenderBatch() : batchPool.Pop();

            if (origin != null)
            {
                batch.mesh       = origin.mesh;
                batch.StartIndex = origin.LastIndex;
                batch.LastVertex = origin.LastVertex;
                batch.LastIndex  = origin.LastIndex;
            }
            else
            {
                batch.ownsMesh = true;
                batch.mesh     = AcquireMesh();
            }
            batch.VertexBuffer = (IVertexBuffer <Vertex>)batch.mesh.VertexBuffers[0];
            batch.IndexBuffer  = batch.mesh.IndexBuffer;
            return(batch);
        }