Index: src/effects/SkBicubicImageFilter.cpp |
diff --git a/src/effects/SkBicubicImageFilter.cpp b/src/effects/SkBicubicImageFilter.cpp |
index db8dbfd0286c506b98cc4a58720d5e67820f562d..06a07901cabc831014a54fcf11e4a684e37df505 100644 |
--- a/src/effects/SkBicubicImageFilter.cpp |
+++ b/src/effects/SkBicubicImageFilter.cpp |
@@ -15,6 +15,7 @@ |
#if SK_SUPPORT_GPU |
#include "gl/GrGLEffectMatrix.h" |
+#include "gl/GrGLShaderBuilder.h" |
#include "effects/GrSingleTextureEffect.h" |
#include "GrTBackendEffectFactory.h" |
#include "GrContext.h" |
@@ -199,13 +200,11 @@ public: |
static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&); |
- virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE; |
+ virtual void setData(const GrGLContext&, const GrDrawEffect&) SK_OVERRIDE; |
private: |
- typedef GrGLUniformManager::UniformHandle UniformHandle; |
- |
- UniformHandle fCoefficientsUni; |
- UniformHandle fImageIncrementUni; |
+ GrGLUniform* fCoefficientsUni; |
+ GrGLUniform* fImageIncrementUni; |
GrGLEffectMatrix fEffectMatrix; |
@@ -215,8 +214,8 @@ private: |
GrGLBicubicEffect::GrGLBicubicEffect(const GrBackendEffectFactory& factory, |
const GrDrawEffect& drawEffect) |
: INHERITED(factory) |
- , fCoefficientsUni(GrGLUniformManager::kInvalidUniformHandle) |
- , fImageIncrementUni(GrGLUniformManager::kInvalidUniformHandle) |
+ , fCoefficientsUni(NULL) |
+ , fImageIncrementUni(NULL) |
, fEffectMatrix(drawEffect.castEffect<GrBicubicEffect>().coordsType()) { |
} |
@@ -228,13 +227,16 @@ void GrGLBicubicEffect::emitCode(GrGLShaderBuilder* builder, |
const TextureSamplerArray& samplers) { |
const char* coords; |
fEffectMatrix.emitCodeMakeFSCoords2D(builder, key, &coords); |
- fCoefficientsUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, |
- kMat44f_GrSLType, "Coefficients"); |
- fImageIncrementUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, |
- kVec2f_GrSLType, "ImageIncrement"); |
+ GrGLShaderBuilder::Uniform* coefficientsUni = |
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kMat44f_GrSLType, "Coefficients"); |
+ fCoefficientsUni = coefficientsUni->glUniform(); |
+ |
+ GrGLShaderBuilder::Uniform* imageIncrementUni = |
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kVec2f_GrSLType, "ImageIncrement"); |
+ fImageIncrementUni = imageIncrementUni->glUniform(); |
- const char* imgInc = builder->getUniformCStr(fImageIncrementUni); |
- const char* coeff = builder->getUniformCStr(fCoefficientsUni); |
+ const char* imgInc = imageIncrementUni->c_str(); |
+ const char* coeff = coefficientsUni->c_str(); |
SkString cubicBlendName; |
@@ -281,16 +283,16 @@ GrGLEffect::EffectKey GrGLBicubicEffect::GenKey(const GrDrawEffect& drawEffect, |
return matrixKey; |
} |
-void GrGLBicubicEffect::setData(const GrGLUniformManager& uman, |
+void GrGLBicubicEffect::setData(const GrGLContext& context, |
const GrDrawEffect& drawEffect) { |
const GrBicubicEffect& effect = drawEffect.castEffect<GrBicubicEffect>(); |
GrTexture& texture = *effect.texture(0); |
float imageIncrement[2]; |
imageIncrement[0] = 1.0f / texture.width(); |
imageIncrement[1] = 1.0f / texture.height(); |
- uman.set2fv(fImageIncrementUni, 0, 1, imageIncrement); |
- uman.setMatrix4f(fCoefficientsUni, effect.coefficients()); |
- fEffectMatrix.setData(uman, |
+ fImageIncrementUni->set2fv(context, 0, 1, imageIncrement); |
+ fCoefficientsUni->setMatrix4f(context, effect.coefficients()); |
+ fEffectMatrix.setData(context, |
effect.getMatrix(), |
drawEffect, |
effect.texture(0)); |