public Batch FindOrCreateBatch(Material material, BlendMode blendMode, int numberOfQuadsToAdd = 1) { for (int index = 0; index < batches.Count; index++) { var batch = batches[index]; if (batch.material.Shader != material.Shader || batch.material.DiffuseMap != material.DiffuseMap || batch.blendMode != blendMode || batch.IsBufferFullAndResizeIfPossible(numberOfQuadsToAdd)) continue; if (batchIndex <= index) batchIndex = index + 1; return batch; } var newBatch = new Batch(material, blendMode, numberOfQuadsToAdd); batches.Add(newBatch); batchIndex = batches.Count; return newBatch; }
private void DrawAndResetBatch(Batch batch) { batch.Draw(drawing); batch.Reset(); }
public void FlushDrawBuffer(Batch batch) { DrawAndResetBatch(batch); drawing.FlushDrawBuffer(batch.material, batch.blendMode); }
public void FlushDrawBuffer(Batch batch) { DrawAndResetBatch(batch); drawing.FlushDrawBuffer(batch.Material, batch.BlendMode); }