diff options
Diffstat (limited to 'src/effects/SkColorMatrixFilter.cpp')
-rw-r--r-- | src/effects/SkColorMatrixFilter.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp index ca23452f93..58d26735a1 100644 --- a/src/effects/SkColorMatrixFilter.cpp +++ b/src/effects/SkColorMatrixFilter.cpp @@ -320,6 +320,7 @@ bool SkColorMatrixFilter::asColorMatrix(SkScalar matrix[20]) { #if SK_SUPPORT_GPU #include "GrEffect.h" +#include "GrTBackendEffectFactory.h" #include "gl/GrGLEffect.h" class ColorMatrixEffect : public GrEffect { @@ -339,10 +340,10 @@ public: GR_DECLARE_EFFECT_TEST; - class GLEffect : public GrGLLegacyEffect { + class GLEffect : public GrGLEffect { public: // this class always generates the same code. - static EffectKey GenKey(const GrEffect& s, const GrGLCaps&) { return 0; } + static EffectKey GenKey(const GrEffectStage&, const GrGLCaps&) { return 0; } GLEffect(const GrBackendEffectFactory& factory, const GrEffect& effect) @@ -351,22 +352,20 @@ public: , fVectorHandle(GrGLUniformManager::kInvalidUniformHandle) { } - virtual void setupVariables(GrGLShaderBuilder* builder) SK_OVERRIDE { + virtual void emitCode(GrGLShaderBuilder* builder, + const GrEffectStage&, + EffectKey, + const char* vertexCoords, + const char* outputColor, + const char* inputColor, + const TextureSamplerArray&) SK_OVERRIDE { fMatrixHandle = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kMat44f_GrSLType, "ColorMatrix"); fVectorHandle = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kVec4f_GrSLType, "ColorMatrixVector"); - } - - virtual void emitVS(GrGLShaderBuilder* builder, const char* vertexCoords) SK_OVERRIDE { - } - virtual void emitFS(GrGLShaderBuilder* builder, - const char* outputColor, - const char* inputColor, - const TextureSamplerArray&) SK_OVERRIDE { if (NULL == inputColor) { // could optimize this case, but we aren't for now. inputColor = GrGLSLOnesVecf(4); @@ -383,8 +382,9 @@ public: } virtual void setData(const GrGLUniformManager& uniManager, - const GrEffect& effect) SK_OVERRIDE { - const ColorMatrixEffect& cme = static_cast<const ColorMatrixEffect&>(effect); + const GrEffectStage& stage) SK_OVERRIDE { + const ColorMatrixEffect& cme = + static_cast<const ColorMatrixEffect&>(*stage.getEffect()); const float* m = cme.fMatrix.fMat; // The GL matrix is transposed from SkColorMatrix. GrGLfloat mt[] = { @@ -409,7 +409,7 @@ public: private: SkColorMatrix fMatrix; - typedef GrGLLegacyEffect INHERITED; + typedef GrGLEffect INHERITED; }; GR_DEFINE_EFFECT_TEST(ColorMatrixEffect); |