simple cleanup in GrTargetCommands
BUG=skia:
Review URL: https://codereview.chromium.org/1116923003
diff --git a/src/gpu/GrTargetCommands.cpp b/src/gpu/GrTargetCommands.cpp
index 24ee32d..a6d3148 100644
--- a/src/gpu/GrTargetCommands.cpp
+++ b/src/gpu/GrTargetCommands.cpp
@@ -35,17 +35,14 @@
}
// Check if there is a Batch Draw we can batch with
- if (Cmd::kDrawBatch_CmdType != fCmdBuffer.back().type() || !fDrawBatch) {
- fDrawBatch = GrNEW_APPEND_TO_RECORDER(fCmdBuffer, DrawBatch, (batch, &fBatchTarget));
- return fDrawBatch;
+ if (Cmd::kDrawBatch_CmdType == fCmdBuffer.back().type()) {
+ DrawBatch* previous = static_cast<DrawBatch*>(&fCmdBuffer.back());
+ if (previous->fBatch->combineIfPossible(batch)) {
+ return NULL;
+ }
}
- SkASSERT(&fCmdBuffer.back() == fDrawBatch);
- if (!fDrawBatch->fBatch->combineIfPossible(batch)) {
- fDrawBatch = GrNEW_APPEND_TO_RECORDER(fCmdBuffer, DrawBatch, (batch, &fBatchTarget));
- }
-
- return fDrawBatch;
+ return GrNEW_APPEND_TO_RECORDER(fCmdBuffer, DrawBatch, (batch, &fBatchTarget));
}
GrTargetCommands::Cmd* GrTargetCommands::recordStencilPath(
@@ -190,7 +187,6 @@
void GrTargetCommands::reset() {
fCmdBuffer.reset();
fPrevState = NULL;
- fDrawBatch = NULL;
}
void GrTargetCommands::flush(GrInOrderDrawBuffer* iodb) {
@@ -204,7 +200,6 @@
GrGpu* gpu = iodb->getGpu();
-#ifdef USE_BITMAP_TEXTBLOBS
// Loop over all batches and generate geometry
CmdBuffer::Iter genIter(fCmdBuffer);
while (genIter.next()) {
@@ -220,7 +215,6 @@
currentState = ss;
}
}
-#endif
iodb->getVertexAllocPool()->unmap();
iodb->getIndexAllocPool()->unmap();
@@ -237,7 +231,6 @@
gpu->addGpuTraceMarker(&newMarker);
}
- // TODO temporary hack
if (Cmd::kDrawBatch_CmdType == iter->type()) {
DrawBatch* db = reinterpret_cast<DrawBatch*>(iter.get());
fBatchTarget.flushNext(db->fBatch->numberOfDraws());
@@ -249,12 +242,6 @@
}
if (Cmd::kSetState_CmdType == iter->type()) {
-#ifndef USE_BITMAP_TEXTBLOBS
- SetState* ss = reinterpret_cast<SetState*>(iter.get());
-
- ss->execute(gpu, currentState);
- currentState = ss;
-#else
// TODO this is just until NVPR is in batch
SetState* ss = reinterpret_cast<SetState*>(iter.get());
@@ -262,7 +249,6 @@
ss->execute(gpu, currentState);
}
currentState = ss;
-#endif
} else {
iter->execute(gpu, currentState);
@@ -273,17 +259,9 @@
}
}
- // TODO see copious notes about hack
fBatchTarget.postFlush();
}
-void GrTargetCommands::Draw::execute(GrGpu* gpu, const SetState* state) {
- SkASSERT(state);
- DrawArgs args(state->fPrimitiveProcessor.get(), state->getPipeline(), &state->fDesc,
- &state->fBatchTracker);
- gpu->draw(args, fInfo);
-}
-
void GrTargetCommands::StencilPath::execute(GrGpu* gpu, const SetState*) {
GrGpu::StencilPathState state;
state.fRenderTarget = fRenderTarget.get();