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() ||