Index: src/gpu/GrPrimitiveProcessor.h |
diff --git a/src/gpu/GrPrimitiveProcessor.h b/src/gpu/GrPrimitiveProcessor.h |
index 67b00840f061d5ba4fe1b787f1bbef2312a39dce..6d336048c85124f378b4db34381e237a948a7eb0 100644 |
--- a/src/gpu/GrPrimitiveProcessor.h |
+++ b/src/gpu/GrPrimitiveProcessor.h |
@@ -113,6 +113,19 @@ public: |
return false; |
} |
+ /** |
+ * Returns true if the pipeline's color output will be affected by the existing render target |
+ * destination pixel values (meaning we need to be careful with overlapping draws). Note that we |
+ * can conflate coverage and color, so the destination color may still bleed into pixels that |
+ * have partial coverage, even if this function returns false. |
+ * |
+ * The above comment seems incorrect for the use case. This funciton is used to turn two |
+ * overlapping draws into a single draw (really to stencil multiple paths and do a single |
+ * cover). It seems that what really matters is whether the dst is read for color OR for |
+ * coverage. |
+ */ |
+ bool willColorBlendWithDst() const { return SkToBool(kWillColorBlendWithDst_Flag & fFlags); } |
+ |
private: |
enum { |
// If this is not set the primitive processor need not produce a color output |
@@ -131,6 +144,8 @@ private: |
// If this flag is set the GrPrimitiveProcessor must produce fOverrideColor as its |
// output color. If not set fOverrideColor is to be ignored. |
kUseOverrideColor_Flag = 0x10, |
+ |
+ kWillColorBlendWithDst_Flag = 0x20, |
}; |
uint32_t fFlags; |