Index: src/effects/gradients/SkGradientShader.cpp |
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp |
index de43b69a2f70b78c1b4e3f667f9c357f2cf52b28..4876989374c86692ac5b7f0816229ad0411d4e2a 100644 |
--- a/src/effects/gradients/SkGradientShader.cpp |
+++ b/src/effects/gradients/SkGradientShader.cpp |
@@ -826,26 +826,29 @@ SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
GrGLGradientEffect::GrGLGradientEffect(const GrBackendEffectFactory& factory) |
: INHERITED(factory) |
, fCachedYCoord(SK_ScalarMax) |
- , fFSYUni(GrGLUniformManager::kInvalidUniformHandle) |
+ , fFSYUni(NULL) |
, fEffectMatrix(kCoordsType) { |
} |
GrGLGradientEffect::~GrGLGradientEffect() { } |
-void GrGLGradientEffect::emitYCoordUniform(GrGLShaderBuilder* builder) { |
- fFSYUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, |
- kFloat_GrSLType, "GradientYCoordFS"); |
+GrGLShaderBuilder::Uniform* GrGLGradientEffect::emitYCoordUniform(GrGLShaderBuilder* builder) { |
+ GrGLShaderBuilder::Uniform* fsYUni = |
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, |
+ kFloat_GrSLType, "GradientYCoordFS"); |
+ fFSYUni = fsYUni->glUniform(); |
+ return fsYUni; |
} |
-void GrGLGradientEffect::setData(const GrGLUniformManager& uman, |
+void GrGLGradientEffect::setData(const GrGLContext& context, |
const GrDrawEffect& drawEffect) { |
const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); |
const GrTexture* texture = e.texture(0); |
- fEffectMatrix.setData(uman, e.getMatrix(), drawEffect, texture); |
+ fEffectMatrix.setData(context, e.getMatrix(), drawEffect, texture); |
SkScalar yCoord = e.getYCoord(); |
if (yCoord != fCachedYCoord) { |
- uman.set1f(fFSYUni, yCoord); |
+ fFSYUni->set1f(context, yCoord); |
fCachedYCoord = yCoord; |
} |
} |
@@ -869,6 +872,7 @@ void GrGLGradientEffect::setupMatrix(GrGLShaderBuilder* builder, |
} |
void GrGLGradientEffect::emitColorLookup(GrGLShaderBuilder* builder, |
+ GrGLShaderBuilder::Uniform* fsYUni, |
const char* gradientTValue, |
const char* outputColor, |
const char* inputColor, |
@@ -876,7 +880,7 @@ void GrGLGradientEffect::emitColorLookup(GrGLShaderBuilder* builder, |
builder->fsCodeAppendf("\tvec2 coord = vec2(%s, %s);\n", |
gradientTValue, |
- builder->getUniformVariable(fFSYUni).c_str()); |
+ fsYUni->c_str()); |
builder->fsCodeAppendf("\t%s = ", outputColor); |
builder->appendTextureLookupAndModulate(GrGLShaderBuilder::kFragment_ShaderType, |
inputColor, |