Add query to GrXPFactory about coverage-as-alpha optimization

This will be needed to have GrDrawOps that haven't yet built pipelines.

Change-Id: If5292aaa5dc9f98dccbe27be98960b630332158d
Reviewed-on: https://skia-review.googlesource.com/9480
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
index c7e61ca..8b35bb9 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
@@ -791,6 +791,11 @@
     return formula.hasSecondaryOutput();
 }
 
+bool GrPorterDuffXPFactory::compatibleWithCoverageAsAlpha(bool colorIsOpaque) const {
+    // We assume we have coverage (or else this doesn't matter).
+    return gBlendTable[colorIsOpaque][1][(int)fBlendMode].canTweakAlphaForCoverage();
+}
+
 GR_DEFINE_XP_FACTORY_TEST(GrPorterDuffXPFactory);
 
 #if GR_TEST_UTILS
@@ -868,14 +873,6 @@
     return analysis.hasCoverage() || !analysis.isOutputColorOpaque();
 }
 
-bool GrPorterDuffXPFactory::IsSrcOverPreCoverageBlendedColorConstant(
-        const GrProcOptInfo& colorInput, GrColor* color) {
-    if (!colorInput.isOpaque()) {
-        return false;
-    }
-    return colorInput.hasKnownOutputColor(color);
-}
-
 bool GrPorterDuffXPFactory::WillSrcOverNeedDstTexture(const GrCaps& caps,
                                                       const FragmentProcessorAnalysis& analysis) {
     if (caps.shaderCaps()->dstReadInShaderSupport() ||