Index: src/gpu/GrImmediateDrawTarget.cpp |
diff --git a/src/gpu/GrImmediateDrawTarget.cpp b/src/gpu/GrImmediateDrawTarget.cpp |
index 999446f0a46c244790c2121612bf864c3d260f3f..3bff379cad4226c8ba994ecb4c9027dd451aef3d 100644 |
--- a/src/gpu/GrImmediateDrawTarget.cpp |
+++ b/src/gpu/GrImmediateDrawTarget.cpp |
@@ -25,14 +25,17 @@ GrImmediateDrawTarget::~GrImmediateDrawTarget() { |
this->reset(); |
} |
-void GrImmediateDrawTarget::onDrawBatch(GrBatch* batch) { |
+void GrImmediateDrawTarget::onDrawBatch(GrDrawBatch* batch) { |
fBatchTarget.resetNumberOfDraws(); |
- batch->generateGeometry(&fBatchTarget); |
- batch->setNumberOfDraws(fBatchTarget.numberOfDraws()); |
+ // TODO: encapsulate the specialization of GrVertexBatch in GrVertexBatch so that we can |
+ // remove this cast. Currently all GrDrawBatches are in fact GrVertexBatch. |
+ GrVertexBatch* vertexBatch = static_cast<GrVertexBatch*>(batch); |
+ vertexBatch->generateGeometry(&fBatchTarget); |
+ vertexBatch->setNumberOfDraws(fBatchTarget.numberOfDraws()); |
fBatchTarget.preFlush(); |
- fBatchTarget.flushNext(batch->numberOfDraws()); |
+ fBatchTarget.flushNext(vertexBatch->numberOfDraws()); |
fBatchTarget.postFlush(); |
} |