diff options
author | 2015-02-23 12:12:54 -0800 | |
---|---|---|
committer | 2015-02-23 12:12:54 -0800 | |
commit | 0bdeec9640640922eb6b0a9f798bcd85eb898f29 (patch) | |
tree | ff1418ee571a44ed2d9b82050539580145f9c4dd | |
parent | b8de1f46594c3cd9c537f0b128c6d6eb30a9f463 (diff) |
Remove canApplyCoverage from XP and all related functions in gpu code.
BUG=skia:
Review URL: https://codereview.chromium.org/919683002
-rw-r--r-- | include/gpu/GrXferProcessor.h | 12 | ||||
-rw-r--r-- | include/gpu/effects/GrCoverageSetOpXP.h | 5 | ||||
-rw-r--r-- | include/gpu/effects/GrPorterDuffXferProcessor.h | 5 | ||||
-rw-r--r-- | src/effects/SkArithmeticMode_gpu.h | 5 | ||||
-rwxr-xr-x | src/gpu/GrContext.cpp | 16 | ||||
-rw-r--r-- | src/gpu/GrOvalRenderer.cpp | 9 | ||||
-rw-r--r-- | src/gpu/GrPipelineBuilder.cpp | 17 | ||||
-rw-r--r-- | src/gpu/GrPipelineBuilder.h | 12 | ||||
-rw-r--r-- | src/gpu/effects/GrCustomXfermodePriv.h | 5 | ||||
-rw-r--r-- | src/gpu/effects/GrDisableColorXP.h | 5 |
10 files changed, 4 insertions, 87 deletions
diff --git a/include/gpu/GrXferProcessor.h b/include/gpu/GrXferProcessor.h index 8cb5cb1769..87663b1a1f 100644 --- a/include/gpu/GrXferProcessor.h +++ b/include/gpu/GrXferProcessor.h @@ -232,18 +232,6 @@ public: */ virtual bool supportsRGBCoverage(GrColor knownColor, uint32_t knownColorFlags) const = 0; - /** - * Depending on color blend mode requested it may or may not be possible to correctly blend with - * fractional pixel coverage generated by the fragment shader. - * - * This function considers the known color and coverage input into the xfer processor and - * certain state information (colorWriteDisabled) to determine whether - * coverage can be handled correctly. - */ - virtual bool canApplyCoverage(const GrProcOptInfo& colorPOI, - const GrProcOptInfo& coveragePOI) const = 0; - - struct InvariantOutput { bool fWillBlendWithDst; GrColor fBlendedColor; diff --git a/include/gpu/effects/GrCoverageSetOpXP.h b/include/gpu/effects/GrCoverageSetOpXP.h index a95326f484..9435b845d4 100644 --- a/include/gpu/effects/GrCoverageSetOpXP.h +++ b/include/gpu/effects/GrCoverageSetOpXP.h @@ -28,11 +28,6 @@ public: return true; } - bool canApplyCoverage(const GrProcOptInfo& /*colorPOI*/, - const GrProcOptInfo& /*coveragePOI*/) const SK_OVERRIDE { - return true; - } - bool canTweakAlphaForCoverage() const SK_OVERRIDE { return false; } void getInvariantOutput(const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, diff --git a/include/gpu/effects/GrPorterDuffXferProcessor.h b/include/gpu/effects/GrPorterDuffXferProcessor.h index 2bfcff2842..3bcdf0edff 100644 --- a/include/gpu/effects/GrPorterDuffXferProcessor.h +++ b/include/gpu/effects/GrPorterDuffXferProcessor.h @@ -20,11 +20,6 @@ public: bool supportsRGBCoverage(GrColor knownColor, uint32_t knownColorFlags) const SK_OVERRIDE; - bool canApplyCoverage(const GrProcOptInfo& /*colorPOI*/, - const GrProcOptInfo& /*coveragePOI*/) const SK_OVERRIDE { - return true; - } - bool canTweakAlphaForCoverage() const SK_OVERRIDE; void getInvariantOutput(const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, diff --git a/src/effects/SkArithmeticMode_gpu.h b/src/effects/SkArithmeticMode_gpu.h index 546902dd50..8fb58a1796 100644 --- a/src/effects/SkArithmeticMode_gpu.h +++ b/src/effects/SkArithmeticMode_gpu.h @@ -81,11 +81,6 @@ public: return true; } - bool canApplyCoverage(const GrProcOptInfo& colorPOI, - const GrProcOptInfo& coveragePOI) const SK_OVERRIDE { - return true; - } - bool canTweakAlphaForCoverage() const SK_OVERRIDE { return false; } diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp index 98e78d9926..c444b66baa 100755 --- a/src/gpu/GrContext.cpp +++ b/src/gpu/GrContext.cpp @@ -460,14 +460,6 @@ static bool apply_aa_to_rect(GrDrawTarget* target, SkScalar strokeWidth, const SkMatrix& combinedMatrix, GrColor color) { - if (!pipelineBuilder->canTweakAlphaForCoverage() && - !pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps())) { -#ifdef SK_DEBUG - //SkDebugf("Turning off AA to correctly apply blend.\n"); -#endif - return false; - } - if (pipelineBuilder->getRenderTarget()->isMultisampled()) { return false; } @@ -869,11 +861,6 @@ static bool is_nested_rects(GrDrawTarget* target, return false; } - if (!pipelineBuilder->canTweakAlphaForCoverage() && - !pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps())) { - return false; - } - SkPath::Direction dirs[2]; if (!path.isNestedRects(rects, dirs)) { return false; @@ -1008,8 +995,7 @@ void GrContext::internalDrawPath(GrDrawTarget* target, // aa. If we have some future driver-mojo path AA that can do the right // thing WRT to the blend then we'll need some query on the PR. bool useCoverageAA = useAA && - !pipelineBuilder->getRenderTarget()->isMultisampled() && - pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps()); + !pipelineBuilder->getRenderTarget()->isMultisampled(); GrPathRendererChain::DrawType type = diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp index d7f88fe137..14f8fdec4a 100644 --- a/src/gpu/GrOvalRenderer.cpp +++ b/src/gpu/GrOvalRenderer.cpp @@ -658,8 +658,7 @@ bool GrOvalRenderer::drawOval(GrDrawTarget* target, const SkStrokeRec& stroke) { bool useCoverageAA = useAA && - !pipelineBuilder->getRenderTarget()->isMultisampled() && - pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps()); + !pipelineBuilder->getRenderTarget()->isMultisampled(); if (!useCoverageAA) { return false; @@ -1555,8 +1554,7 @@ bool GrOvalRenderer::drawDRRect(GrDrawTarget* target, const SkRRect& origOuter, const SkRRect& origInner) { bool applyAA = useAA && - !pipelineBuilder->getRenderTarget()->isMultisampled() && - pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps()); + !pipelineBuilder->getRenderTarget()->isMultisampled(); GrPipelineBuilder::AutoRestoreEffects are; if (!origInner.isEmpty()) { SkTCopyOnFirstWrite<SkRRect> inner(origInner); @@ -2044,8 +2042,7 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target, } bool useCoverageAA = useAA && - !pipelineBuilder->getRenderTarget()->isMultisampled() && - pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps()); + !pipelineBuilder->getRenderTarget()->isMultisampled(); // only anti-aliased rrects for now if (!useCoverageAA) { diff --git a/src/gpu/GrPipelineBuilder.cpp b/src/gpu/GrPipelineBuilder.cpp index 6885eb0dd8..9117a1fea3 100644 --- a/src/gpu/GrPipelineBuilder.cpp +++ b/src/gpu/GrPipelineBuilder.cpp @@ -82,23 +82,6 @@ void GrPipelineBuilder::setFromPaint(const GrPaint& paint, GrRenderTarget* rt) { fCoverageCache = GrColor_ILLEGAL; } -//////////////////////////////////////////////////////////////////////////////// - -bool GrPipelineBuilder::canUseFracCoveragePrimProc(GrColor color, - const GrDrawTargetCaps& caps) const { - if (caps.dualSourceBlendingSupport()) { - return true; - } - - this->calcColorInvariantOutput(color); - - // The coverage isn't actually white, its unknown, but this will produce the same effect - // TODO we want to cache the result of this call, but we can probably clean up the interface - // so we don't have to pass in a seemingly known coverage - this->calcCoverageInvariantOutput(GrColor_WHITE); - return this->getXPFactory()->canApplyCoverage(fColorProcInfo, fCoverageProcInfo); -} - //////////////////////////////////////////////////////////////////////////////s bool GrPipelineBuilder::willXPNeedDstCopy(const GrDrawTargetCaps& caps, diff --git a/src/gpu/GrPipelineBuilder.h b/src/gpu/GrPipelineBuilder.h index ad509e14f8..904d38250c 100644 --- a/src/gpu/GrPipelineBuilder.h +++ b/src/gpu/GrPipelineBuilder.h @@ -49,18 +49,6 @@ public: /// @} /** - * Depending on features available in the underlying 3D API and the color blend mode requested - * it may or may not be possible to correctly blend with fractional pixel coverage generated by - * the fragment shader. - * - * This function considers the current GrPipelineBuilder and the draw target's capabilities to - * determine whether coverage can be handled correctly. This function assumes that the caller - * intends to specify fractional pixel coverage via a primitive processor but may not have - * specified it yet. - */ - bool canUseFracCoveragePrimProc(GrColor color, const GrDrawTargetCaps& caps) const; - - /** * This function returns true if the render target destination pixel values will be read for * blending during draw. */ diff --git a/src/gpu/effects/GrCustomXfermodePriv.h b/src/gpu/effects/GrCustomXfermodePriv.h index 8672529e45..85092a9892 100644 --- a/src/gpu/effects/GrCustomXfermodePriv.h +++ b/src/gpu/effects/GrCustomXfermodePriv.h @@ -64,11 +64,6 @@ public: return true; } - bool canApplyCoverage(const GrProcOptInfo& colorPOI, - const GrProcOptInfo& coveragePOI) const SK_OVERRIDE { - return true; - } - bool canTweakAlphaForCoverage() const SK_OVERRIDE { return false; } diff --git a/src/gpu/effects/GrDisableColorXP.h b/src/gpu/effects/GrDisableColorXP.h index 00675884a9..fb855ee520 100644 --- a/src/gpu/effects/GrDisableColorXP.h +++ b/src/gpu/effects/GrDisableColorXP.h @@ -23,11 +23,6 @@ public: return true; } - bool canApplyCoverage(const GrProcOptInfo& colorPOI, - const GrProcOptInfo& coveragePOI) const SK_OVERRIDE { - return true; - } - bool canTweakAlphaForCoverage() const SK_OVERRIDE { return true; } void getInvariantOutput(const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, |