diff options
Diffstat (limited to 'src/effects/gradients/SkTwoPointRadialGradient.cpp')
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp index 754a53261b..bb5ec04bfd 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.cpp +++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp @@ -398,7 +398,7 @@ void SkTwoPointRadialGradient::init() { #if SK_SUPPORT_GPU #include "GrTBackendEffectFactory.h" -#include "gl/GrGLShaderBuilder.h" +#include "gl/builders/GrGLProgramBuilder.h" #include "SkGr.h" // For brevity @@ -411,7 +411,7 @@ public: GrGLRadial2Gradient(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GrGLRadial2Gradient() { } - virtual void emitCode(GrGLShaderBuilder*, + virtual void emitCode(GrGLProgramBuilder*, const GrDrawEffect&, const GrEffectKey&, const char* outputColor, @@ -567,7 +567,7 @@ GrGLRadial2Gradient::GrGLRadial2Gradient(const GrBackendEffectFactory& factory, fIsDegenerate = data.isDegenerate(); } -void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder, +void GrGLRadial2Gradient::emitCode(GrGLProgramBuilder* builder, const GrDrawEffect& drawEffect, const GrEffectKey& key, const char* outputColor, @@ -576,7 +576,7 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder, const TextureSamplerArray& samplers) { uint32_t baseKey = key.get32(0); this->emitUniforms(builder, baseKey); - fParamUni = builder->addUniformArray(GrGLShaderBuilder::kFragment_Visibility, + fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibility, kFloat_GrSLType, "Radial2FSParams", 6); SkString cName("c"); @@ -596,12 +596,13 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder, builder->getUniformVariable(fParamUni).appendArrayAccess(4, &p4); builder->getUniformVariable(fParamUni).appendArrayAccess(5, &p5); + GrGLFragmentShaderBuilder* fsBuilder = builder->getFragmentShaderBuilder(); // We interpolate the linear component in coords[1]. SkASSERT(coords[0].type() == coords[1].type()); const char* coords2D; SkString bVar; if (kVec3f_GrSLType == coords[0].type()) { - builder->fsCodeAppendf("\tvec3 interpolants = vec3(%s.xy, %s.x) / %s.z;\n", + fsBuilder->codeAppendf("\tvec3 interpolants = vec3(%s.xy, %s.x) / %s.z;\n", coords[0].c_str(), coords[1].c_str(), coords[0].c_str()); coords2D = "interpolants.xy"; bVar = "interpolants.z"; @@ -611,7 +612,7 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder, } // c = (x^2)+(y^2) - params[4] - builder->fsCodeAppendf("\tfloat %s = dot(%s, %s) - %s;\n", + fsBuilder->codeAppendf("\tfloat %s = dot(%s, %s) - %s;\n", cName.c_str(), coords2D, coords2D, p4.c_str()); // If we aren't degenerate, emit some extra code, and accept a slightly @@ -619,13 +620,13 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder, if (!fIsDegenerate) { // ac4 = 4.0 * params[0] * c - builder->fsCodeAppendf("\tfloat %s = %s * 4.0 * %s;\n", + fsBuilder->codeAppendf("\tfloat %s = %s * 4.0 * %s;\n", ac4Name.c_str(), p0.c_str(), cName.c_str()); // root = sqrt(b^2-4ac) // (abs to avoid exception due to fp precision) - builder->fsCodeAppendf("\tfloat %s = sqrt(abs(%s*%s - %s));\n", + fsBuilder->codeAppendf("\tfloat %s = sqrt(abs(%s*%s - %s));\n", rootName.c_str(), bVar.c_str(), bVar.c_str(), ac4Name.c_str()); |