public StreamBuffer(int count) { int createSize = 256; while (count > createSize) { createSize *= 2; } this.instanceMatricesData = new Graphics.StreamFrequency.InstanceMatrix[createSize]; this.instanceMatrices = new Graphics.Vertices <Graphics.StreamFrequency.InstanceMatrix>(this.instanceMatricesData); this.instanceMatrices.ResourceUsage = Xen.Graphics.ResourceUsage.DynamicSequential; this.index = 0; }
public Graphics.VerticesGroup Fill(Graphics.IVertices vertices, int count) { if (this.instanceBuffer == null) { this.instanceBuffer = new Graphics.VerticesGroup(vertices, this.instanceMatrices); } bufferActive = false; this.instanceBuffer.Count = vertices.Count; this.instanceBuffer.SetChild(0, vertices); this.instanceBuffer.SetIndexOffset(1, index); this.instanceMatrices.SetDirtyRange(index, count); this.index += count; return(this.instanceBuffer); }