Index: src/gpu/GrPathProcessor.h |
diff --git a/src/gpu/GrPathProcessor.h b/src/gpu/GrPathProcessor.h |
index 7c1ab2b5df82c539b16376e044ed328cb4b45716..e34d0cefbe5d2302ceb707dd32d6883902d4b561 100644 |
--- a/src/gpu/GrPathProcessor.h |
+++ b/src/gpu/GrPathProcessor.h |
@@ -57,6 +57,38 @@ |
private: |
GrPathProcessor(GrColor color, const SkMatrix& viewMatrix, const SkMatrix& localMatrix); |
+ /* |
+ * CanCombineOutput will return true if two draws are 'batchable' from a color perspective. |
+ * TODO is this really necessary? |
+ */ |
+ static bool CanCombineOutput(GrGPInput left, GrColor lColor, GrGPInput right, GrColor rColor) { |
+ if (left != right) { |
+ return false; |
+ } |
+ |
+ if (kUniform_GrGPInput == left && lColor != rColor) { |
+ return false; |
+ } |
+ |
+ return true; |
+ } |
+ |
+ static bool CanCombineLocalMatrices(const GrPrimitiveProcessor& l, |
+ bool leftUsesLocalCoords, |
+ const GrPrimitiveProcessor& r, |
+ bool rightUsesLocalCoords) { |
+ if (leftUsesLocalCoords != rightUsesLocalCoords) { |
+ return false; |
+ } |
+ |
+ const GrPathProcessor& left = l.cast<GrPathProcessor>(); |
+ const GrPathProcessor& right = r.cast<GrPathProcessor>(); |
+ if (leftUsesLocalCoords && !left.localMatrix().cheapEqualTo(right.localMatrix())) { |
+ return false; |
+ } |
+ return true; |
+ } |
+ |
bool hasExplicitLocalCoords() const override { return false; } |
GrColor fColor; |