aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2015-02-17 11:15:47 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-17 11:15:47 -0800
commit3ad6570e94965d54871eaea8b314f560b82ca792 (patch)
tree5251bf06ebd191e75c0c22745fe4e4d0a31ecd93 /src/effects
parentd603b22903bf7c023226bf52bd7c1f49a9bee1bf (diff)
Use dst copies in porter duffer XP to correctly render certain blends.
Diffstat (limited to 'src/effects')
-rw-r--r--src/effects/SkArithmeticMode_gpu.cpp5
-rw-r--r--src/effects/SkArithmeticMode_gpu.h6
2 files changed, 7 insertions, 4 deletions
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;
}