| Index: src/gpu/effects/GrCustomXfermode.cpp
|
| diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp
|
| index 5110cdf72346e07bc67d1e1be523341b9e8f3772..55d4b1a5ff3e82cabbc72d486b72706b122f4c3e 100644
|
| --- a/src/gpu/effects/GrCustomXfermode.cpp
|
| +++ b/src/gpu/effects/GrCustomXfermode.cpp
|
| @@ -529,8 +529,8 @@ public:
|
| this->initClassID<CustomXP>();
|
| }
|
|
|
| - CustomXP(SkXfermode::Mode mode, const DstTexture* dstTexture)
|
| - : INHERITED(dstTexture, true),
|
| + CustomXP(const GrPipelineBuilder& builder, const DstTexture* dstTexture, SkXfermode::Mode mode)
|
| + : INHERITED(builder, dstTexture, true),
|
| fMode(mode),
|
| fHWBlendEquation(static_cast<GrBlendEquation>(-1)) {
|
| this->initClassID<CustomXP>();
|
| @@ -540,8 +540,6 @@ public:
|
|
|
| GrGLXferProcessor* createGLInstance() const override;
|
|
|
| - bool hasSecondaryOutput() const override { return false; }
|
| -
|
| SkXfermode::Mode mode() const { return fMode; }
|
| bool hasHWBlendEquation() const { return -1 != static_cast<int>(fHWBlendEquation); }
|
|
|
| @@ -793,6 +791,7 @@ GrCustomXPFactory::GrCustomXPFactory(SkXfermode::Mode mode)
|
|
|
| GrXferProcessor*
|
| GrCustomXPFactory::onCreateXferProcessor(const GrCaps& caps,
|
| + const GrPipelineBuilder& builder,
|
| const GrProcOptInfo& colorPOI,
|
| const GrProcOptInfo& coveragePOI,
|
| const DstTexture* dstTexture) const {
|
| @@ -800,10 +799,11 @@ GrCustomXPFactory::onCreateXferProcessor(const GrCaps& caps,
|
| SkASSERT(!dstTexture || !dstTexture->texture());
|
| return SkNEW_ARGS(CustomXP, (fMode, fHWBlendEquation));
|
| }
|
| - return SkNEW_ARGS(CustomXP, (fMode, dstTexture));
|
| + return SkNEW_ARGS(CustomXP, (builder, dstTexture, fMode));
|
| }
|
|
|
| bool GrCustomXPFactory::willReadDstColor(const GrCaps& caps,
|
| + const GrPipelineBuilder&,
|
| const GrProcOptInfo& colorPOI,
|
| const GrProcOptInfo& coveragePOI) const {
|
| return !can_use_hw_blend_equation(fHWBlendEquation, coveragePOI, caps);
|
|
|