From 3ad6570e94965d54871eaea8b314f560b82ca792 Mon Sep 17 00:00:00 2001 From: egdaniel Date: Tue, 17 Feb 2015 11:15:47 -0800 Subject: 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 --- src/effects/SkArithmeticMode_gpu.cpp | 5 +++-- src/effects/SkArithmeticMode_gpu.h | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/effects') diff --git a/src/effects/SkArithmeticMode_gpu.cpp b/src/effects/SkArithmeticMode_gpu.cpp index 469f5b1adb..e068c9dc37 100644 --- a/src/effects/SkArithmeticMode_gpu.cpp +++ b/src/effects/SkArithmeticMode_gpu.cpp @@ -304,11 +304,12 @@ GrArithmeticXPFactory::GrArithmeticXPFactory(float k1, float k2, float k3, float } GrXferProcessor* -GrArithmeticXPFactory::onCreateXferProcessor(const GrProcOptInfo& colorPOI, +GrArithmeticXPFactory::onCreateXferProcessor(const GrDrawTargetCaps& caps, + const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, const GrDeviceCoordTexture* dstCopy) const { return ArithmeticXP::Create(fK1, fK2, fK3, fK4, fEnforcePMColor, dstCopy, - this->willReadDstColor(colorPOI, coveragePOI)); + this->willReadDstColor(caps, colorPOI, coveragePOI)); } diff --git a/src/effects/SkArithmeticMode_gpu.h b/src/effects/SkArithmeticMode_gpu.h index 822e7bde1e..546902dd50 100644 --- a/src/effects/SkArithmeticMode_gpu.h +++ b/src/effects/SkArithmeticMode_gpu.h @@ -96,11 +96,13 @@ public: private: GrArithmeticXPFactory(float k1, float k2, float k3, float k4, bool enforcePMColor); - 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 true; } -- cgit v1.2.3