Index: src/gpu/batches/GrBatch.h |
diff --git a/src/gpu/batches/GrBatch.h b/src/gpu/batches/GrBatch.h |
index 281a60e98ea9b396f7e13e8da41d20d73ea22423..7d91b1c1e18031bfa20091ea14c23dfb0da40f31 100644 |
--- a/src/gpu/batches/GrBatch.h |
+++ b/src/gpu/batches/GrBatch.h |
@@ -60,12 +60,6 @@ public: |
virtual void getInvariantOutputColor(GrInitInvariantOutput* out) const = 0; |
virtual void getInvariantOutputCoverage(GrInitInvariantOutput* out) const = 0; |
- /* |
- * initBatchTracker is a hook for the some additional overrides / optimization possibilities |
- * from the GrXferProcessor. |
- */ |
- virtual void initBatchTracker(const GrPipelineOptimizations&) = 0; |
- |
bool combineIfPossible(GrBatch* that) { |
if (this->classID() != that->classID()) { |
return false; |
@@ -108,7 +102,11 @@ public: |
SkDEBUGCODE(bool isUsed() const { return fUsed; }) |
const GrPipeline* pipeline() const { return fPipeline; } |
- void setPipeline(const GrPipeline* pipeline) { fPipeline.reset(SkRef(pipeline)); } |
+ |
+ void setPipeline(const GrPipeline* pipeline, const GrPipelineOptimizations& optimizations) { |
+ fPipeline.reset(SkRef(pipeline)); |
+ this->initBatchTracker(optimizations); |
+ } |
#if GR_BATCH_SPEW |
uint32_t uniqueID() const { return fUniqueID; } |
@@ -170,6 +168,13 @@ protected: |
SkRect fBounds; |
private: |
+ /* |
+ * initBatchTracker is a hook for the some additional overrides / optimization possibilities |
+ * from the GrXferProcessor. |
+ */ |
+ virtual void initBatchTracker(const GrPipelineOptimizations&) = 0; |
+ |
+ |
static uint32_t GenID(int32_t* idCounter) { |
// fCurrProcessorClassID has been initialized to kIllegalProcessorClassID. The |
// atomic inc returns the old value not the incremented value. So we add |