diff options
author | 2012-07-27 14:00:39 +0000 | |
---|---|---|
committer | 2012-07-27 14:00:39 +0000 | |
commit | d7cc651b8da11d52ae90e910b948f5e2d15daaf9 (patch) | |
tree | e62c6ceffa62c8773e62aa82f35d1e2655a70959 /src/effects/gradients/SkRadialGradient.cpp | |
parent | c84b8335ee4fd864c30a4703afc643cf4b5010d9 (diff) |
Move GPU gradients into src/effects/gradients.
Review URL: https://codereview.appspot.com/6453055
git-svn-id: http://skia.googlecode.com/svn/trunk@4805 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/gradients/SkRadialGradient.cpp')
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index 4ac93d7b59..8feeff5313 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -477,3 +477,59 @@ void SkRadialGradient::shadeSpan(int x, int y, } } +///////////////////////////////////////////////////////////////////// + +class GrGLRadialGradient : public GrGLGradientStage { + +public: + + GrGLRadialGradient(const GrProgramStageFactory& factory, + const GrCustomStage&) : INHERITED (factory) { } + virtual ~GrGLRadialGradient() { } + + virtual void emitVS(GrGLShaderBuilder* builder, + const char* vertexCoords) SK_OVERRIDE { } + virtual void emitFS(GrGLShaderBuilder* builder, + const char* outputColor, + const char* inputColor, + const char* samplerName) SK_OVERRIDE; + + static StageKey GenKey(const GrCustomStage& s) { return 0; } + +private: + + typedef GrGLGradientStage INHERITED; + +}; + +void GrGLRadialGradient::emitFS(GrGLShaderBuilder* builder, + const char* outputColor, + const char* inputColor, + const char* samplerName) { + SkString t; + t.printf("length(%s.xy)", builder->fSampleCoords.c_str()); + this->emitColorLookup(builder, t.c_str(), outputColor, samplerName); +} + + +///////////////////////////////////////////////////////////////////// + + +GrRadialGradient::GrRadialGradient(GrTexture* texture) + : INHERITED(texture) { + +} + +GrRadialGradient::GrRadialGradient(GrContext* ctx, const SkShader& shader, + GrSamplerState* sampler) + : INHERITED(ctx, shader, sampler) { +} + +GrRadialGradient::~GrRadialGradient() { + +} + +const GrProgramStageFactory& GrRadialGradient::getFactory() const { + return GrTProgramStageFactory<GrRadialGradient>::getInstance(); +} + |