Index: src/gpu/batches/GrDrawBatch.h |
diff --git a/src/gpu/batches/GrDrawBatch.h b/src/gpu/batches/GrDrawBatch.h |
index b5def697c791ea7cb2aaaea0d0a24a77789be19a..8e738789812ce6dd54e3a357d0e3c52de8e0c39a 100644 |
--- a/src/gpu/batches/GrDrawBatch.h |
+++ b/src/gpu/batches/GrDrawBatch.h |
@@ -43,8 +43,10 @@ public: |
GrDrawBatch(uint32_t classID); |
~GrDrawBatch() override; |
- virtual void getInvariantOutputColor(GrInitInvariantOutput* out) const = 0; |
- virtual void getInvariantOutputCoverage(GrInitInvariantOutput* out) const = 0; |
+ /** |
+ * Fills in a structure informing the XP of overrides to its normal behavior. |
+ */ |
+ void getPipelineOptimizations(GrPipelineOptimizations* override) const; |
const GrPipeline* pipeline() const { |
SkASSERT(fPipelineInstalled); |
@@ -80,12 +82,17 @@ public: |
return string; |
} |
+protected: |
+ virtual void computePipelineOptimizations(GrInitInvariantOutput* color, |
+ GrInitInvariantOutput* coverage, |
+ GrBatchToXPOverrides* overrides) const = 0; |
+ |
private: |
/** |
* initBatchTracker is a hook for the some additional overrides / optimization possibilities |
* from the GrXferProcessor. |
*/ |
- virtual void initBatchTracker(const GrPipelineOptimizations&) = 0; |
+ virtual void initBatchTracker(const GrXPOverridesForBatch&) = 0; |
protected: |
SkTArray<SkAutoTUnref<GrBatchUploader>, true> fInlineUploads; |