| Index: src/gpu/effects/GrCustomXfermode.cpp
|
| diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp
|
| index 9aa71531096c0db3418626ba2c5e4c1d0890aab2..b77bf2fad174771a22f24ae2c00db09a50fed260 100644
|
| --- a/src/gpu/effects/GrCustomXfermode.cpp
|
| +++ b/src/gpu/effects/GrCustomXfermode.cpp
|
| @@ -499,7 +499,15 @@ public:
|
| GLCustomXP(const GrXferProcessor&) {}
|
| ~GLCustomXP() SK_OVERRIDE {}
|
|
|
| - void emitCode(const EmitArgs& args) SK_OVERRIDE {
|
| + static void GenKey(const GrXferProcessor& proc, const GrGLCaps&, GrProcessorKeyBuilder* b) {
|
| + uint32_t key = proc.numTextures();
|
| + SkASSERT(key <= 1);
|
| + key |= proc.cast<GrCustomXP>().mode() << 1;
|
| + b->add32(key);
|
| + }
|
| +
|
| +private:
|
| + void onEmitCode(const EmitArgs& args) SK_OVERRIDE {
|
| SkXfermode::Mode mode = args.fXP.cast<GrCustomXP>().mode();
|
| GrGLFPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
|
| const char* dstColor = fsBuilder->dstColor();
|
| @@ -511,28 +519,20 @@ public:
|
| args.fInputCoverage, dstColor);
|
| }
|
|
|
| - void setData(const GrGLProgramDataManager&, const GrXferProcessor&) SK_OVERRIDE {}
|
| + void onSetData(const GrGLProgramDataManager&, const GrXferProcessor&) SK_OVERRIDE {}
|
|
|
| - static void GenKey(const GrXferProcessor& proc, const GrGLCaps&, GrProcessorKeyBuilder* b) {
|
| - uint32_t key = proc.numTextures();
|
| - SkASSERT(key <= 1);
|
| - key |= proc.cast<GrCustomXP>().mode() << 1;
|
| - b->add32(key);
|
| - }
|
| -
|
| -private:
|
| typedef GrGLFragmentProcessor INHERITED;
|
| };
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -GrCustomXP::GrCustomXP(SkXfermode::Mode mode)
|
| - : fMode(mode) {
|
| +GrCustomXP::GrCustomXP(SkXfermode::Mode mode, const GrDeviceCoordTexture* dstCopy,
|
| + bool willReadDstColor)
|
| + : INHERITED(dstCopy, willReadDstColor), fMode(mode) {
|
| this->initClassID<GrCustomXP>();
|
| - this->setWillReadDstColor();
|
| }
|
|
|
| -void GrCustomXP::getGLProcessorKey(const GrGLCaps& caps, GrProcessorKeyBuilder* b) const {
|
| +void GrCustomXP::onGetGLProcessorKey(const GrGLCaps& caps, GrProcessorKeyBuilder* b) const {
|
| GLCustomXP::GenKey(*this, caps, b);
|
| }
|
|
|
|
|