Index: src/core/SkComposeShader.cpp |
diff --git a/src/core/SkComposeShader.cpp b/src/core/SkComposeShader.cpp |
index ee95092e14d56358e83101dc8b2e2806156acc3f..9aaa4d5daf1319a22050c90605b69f15d7ec6128 100644 |
--- a/src/core/SkComposeShader.cpp |
+++ b/src/core/SkComposeShader.cpp |
@@ -196,52 +196,12 @@ void SkComposeShader::ComposeShaderContext::shadeSpan(int x, int y, SkPMColor re |
#if SK_SUPPORT_GPU |
-#include "SkGr.h" |
-#include "GrProcessor.h" |
#include "gl/GrGLBlend.h" |
#include "gl/builders/GrGLProgramBuilder.h" |
#include "effects/GrConstColorProcessor.h" |
///////////////////////////////////////////////////////////////////// |
-class GrComposeEffect : public GrFragmentProcessor { |
-public: |
- |
- static GrFragmentProcessor* Create(const GrFragmentProcessor* fpA, |
- const GrFragmentProcessor* fpB, SkXfermode::Mode mode) { |
- return SkNEW_ARGS(GrComposeEffect, (fpA, fpB, mode)); |
- } |
- const char* name() const override { return "ComposeShader"; } |
- void onGetGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; |
- |
- SkXfermode::Mode getMode() const { return fMode; } |
- |
-protected: |
- bool onIsEqual(const GrFragmentProcessor&) const override; |
- void onComputeInvariantOutput(GrInvariantOutput* inout) const override; |
- |
-private: |
- GrComposeEffect(const GrFragmentProcessor* fpA, const GrFragmentProcessor* fpB, |
- SkXfermode::Mode mode) |
- : fMode(mode) { |
- this->initClassID<GrComposeEffect>(); |
- SkDEBUGCODE(int shaderAChildIndex = )this->registerChildProcessor(fpA); |
- SkDEBUGCODE(int shaderBChildIndex = )this->registerChildProcessor(fpB); |
- SkASSERT(0 == shaderAChildIndex); |
- SkASSERT(1 == shaderBChildIndex); |
- } |
- |
- GrGLFragmentProcessor* onCreateGLInstance() const override; |
- |
- SkXfermode::Mode fMode; |
- |
- GR_DECLARE_FRAGMENT_PROCESSOR_TEST; |
- |
- typedef GrFragmentProcessor INHERITED; |
-}; |
- |
-///////////////////////////////////////////////////////////////////// |
- |
class GrGLComposeEffect : public GrGLFragmentProcessor { |
public: |
GrGLComposeEffect(const GrProcessor& processor) {} |
@@ -276,6 +236,17 @@ const GrFragmentProcessor* GrComposeEffect::TestCreate(GrProcessorTestData* d) { |
return SkNEW_ARGS(GrComposeEffect, (fpA, fpB, mode)); |
} |
+GrComposeEffect::GrComposeEffect(const GrFragmentProcessor* fpA, const GrFragmentProcessor* fpB, |
+ SkXfermode::Mode mode) |
+ : fMode(mode) { |
+ SkASSERT(SkXfermode::kLastCoeffMode >= mode); |
+ this->initClassID<GrComposeEffect>(); |
+ SkDEBUGCODE(int shaderAChildIndex = )this->registerChildProcessor(fpA); |
+ SkDEBUGCODE(int shaderBChildIndex = )this->registerChildProcessor(fpB); |
+ SkASSERT(0 == shaderAChildIndex); |
+ SkASSERT(1 == shaderBChildIndex); |
+} |
+ |
bool GrComposeEffect::onIsEqual(const GrFragmentProcessor& other) const { |
const GrComposeEffect& cs = other.cast<GrComposeEffect>(); |
return fMode == cs.fMode; |
@@ -370,7 +341,7 @@ const GrFragmentProcessor* SkComposeShader::asFragmentProcessor(GrContext* conte |
if (!fpB.get()) { |
return nullptr; |
} |
- return GrComposeEffect::Create(fpA, fpB, mode); |
+ return new GrComposeEffect(fpA, fpB, mode); |
} |
} |
#endif |