diff options
author | 2015-02-17 11:15:47 -0800 | |
---|---|---|
committer | 2015-02-17 11:15:47 -0800 | |
commit | 3ad6570e94965d54871eaea8b314f560b82ca792 (patch) | |
tree | 5251bf06ebd191e75c0c22745fe4e4d0a31ecd93 /include/gpu/effects | |
parent | d603b22903bf7c023226bf52bd7c1f49a9bee1bf (diff) |
Use dst copies in porter duffer XP to correctly render certain blends.
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/997c6358d94e188b1a7b89a4f86e24cbe0f5a164
Review URL: https://codereview.chromium.org/914003003
Diffstat (limited to 'include/gpu/effects')
-rw-r--r-- | include/gpu/effects/GrCoverageSetOpXP.h | 6 | ||||
-rw-r--r-- | include/gpu/effects/GrPorterDuffXferProcessor.h | 12 |
2 files changed, 12 insertions, 6 deletions
diff --git a/include/gpu/effects/GrCoverageSetOpXP.h b/include/gpu/effects/GrCoverageSetOpXP.h index e781999a1d..a95326f484 100644 --- a/include/gpu/effects/GrCoverageSetOpXP.h +++ b/include/gpu/effects/GrCoverageSetOpXP.h @@ -41,11 +41,13 @@ public: private: GrCoverageSetOpXPFactory(SkRegion::Op regionOp, bool invertCoverage); - GrXferProcessor* onCreateXferProcessor(const GrProcOptInfo& colorPOI, + GrXferProcessor* onCreateXferProcessor(const GrDrawTargetCaps& caps, + const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, const GrDeviceCoordTexture* dstCopy) const SK_OVERRIDE; - bool willReadDstColor(const GrProcOptInfo& /*colorPOI*/, + bool willReadDstColor(const GrDrawTargetCaps& /*caps*/, + const GrProcOptInfo& /*colorPOI*/, const GrProcOptInfo& /*coveragePOI*/) const SK_OVERRIDE { return false; } diff --git a/include/gpu/effects/GrPorterDuffXferProcessor.h b/include/gpu/effects/GrPorterDuffXferProcessor.h index 0d3b01ff4d..2bfcff2842 100644 --- a/include/gpu/effects/GrPorterDuffXferProcessor.h +++ b/include/gpu/effects/GrPorterDuffXferProcessor.h @@ -20,8 +20,10 @@ public: bool supportsRGBCoverage(GrColor knownColor, uint32_t knownColorFlags) const SK_OVERRIDE; - bool canApplyCoverage(const GrProcOptInfo& colorPOI, - const GrProcOptInfo& coveragePOI) const SK_OVERRIDE; + bool canApplyCoverage(const GrProcOptInfo& /*colorPOI*/, + const GrProcOptInfo& /*coveragePOI*/) const SK_OVERRIDE { + return true; + } bool canTweakAlphaForCoverage() const SK_OVERRIDE; @@ -31,11 +33,13 @@ public: private: GrPorterDuffXPFactory(GrBlendCoeff src, GrBlendCoeff dst); - GrXferProcessor* onCreateXferProcessor(const GrProcOptInfo& colorPOI, + GrXferProcessor* onCreateXferProcessor(const GrDrawTargetCaps& caps, + const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, const GrDeviceCoordTexture* dstCopy) const SK_OVERRIDE; - bool willReadDstColor(const GrProcOptInfo& colorPOI, + bool willReadDstColor(const GrDrawTargetCaps& caps, + const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI) const SK_OVERRIDE; bool onIsEqual(const GrXPFactory& xpfBase) const SK_OVERRIDE { |