public void Render(RenderBlock rb) { foreach (var batch in batches.Values) { if (batch.Ranges.Count > 0) { RenderBatchRange newRange; newRange.Start = (ushort)gb.NumIndices; foreach (var range in batch.Ranges) { var vertexIndex = (ushort)range; gb.AddIndex(vertexIndex++); gb.AddIndex(vertexIndex++); gb.AddIndex(vertexIndex++); gb.AddIndex(vertexIndex); } newRange.End = (ushort)gb.NumIndices; batch.Batch.Range = newRange; var state = new RenderState(batch.Batch); rb.AddState(state); } } }