Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: src/effects/SkMatrixConvolutionImageFilter.cpp

Issue 23018003: Rename GrGLUniformManager to GrGLUniform and ref GrGLUniforms directly Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/effects/SkMagnifierImageFilter.cpp ('k') | src/effects/SkMorphologyImageFilter.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/effects/SkMatrixConvolutionImageFilter.cpp
diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp
index b3ce7ecc94e5faa58579439b50381ea8586d5422..d3505fbd636fe912fa24c922eaf647c28d40660a 100644
--- a/src/effects/SkMatrixConvolutionImageFilter.cpp
+++ b/src/effects/SkMatrixConvolutionImageFilter.cpp
@@ -19,7 +19,7 @@
#include "GrTBackendEffectFactory.h"
#include "GrTexture.h"
#include "SkMatrix.h"
-
+#include "gl/GrGLShaderBuilder.h"
#endif
SkMatrixConvolutionImageFilter::SkMatrixConvolutionImageFilter(const SkISize& kernelSize, const SkScalar* kernel, SkScalar gain, SkScalar bias, const SkIPoint& target, TileMode tileMode, bool convolveAlpha, SkImageFilter* input)
@@ -328,20 +328,19 @@ 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;
typedef SkMatrixConvolutionImageFilter::TileMode TileMode;
SkISize fKernelSize;
TileMode fTileMode;
bool fConvolveAlpha;
- UniformHandle fKernelUni;
- UniformHandle fImageIncrementUni;
- UniformHandle fTargetUni;
- UniformHandle fGainUni;
- UniformHandle fBiasUni;
+ GrGLUniform* fKernelUni;
+ GrGLUniform* fImageIncrementUni;
+ GrGLUniform* fTargetUni;
+ GrGLUniform* fGainUni;
+ GrGLUniform* fBiasUni;
GrGLEffectMatrix fEffectMatrix;
@@ -351,11 +350,11 @@ private:
GrGLMatrixConvolutionEffect::GrGLMatrixConvolutionEffect(const GrBackendEffectFactory& factory,
const GrDrawEffect& drawEffect)
: INHERITED(factory)
- , fKernelUni(GrGLUniformManager::kInvalidUniformHandle)
- , fImageIncrementUni(GrGLUniformManager::kInvalidUniformHandle)
- , fTargetUni(GrGLUniformManager::kInvalidUniformHandle)
- , fGainUni(GrGLUniformManager::kInvalidUniformHandle)
- , fBiasUni(GrGLUniformManager::kInvalidUniformHandle)
+ , fKernelUni(NULL)
+ , fImageIncrementUni(NULL)
+ , fTargetUni(NULL)
+ , fGainUni(NULL)
+ , fBiasUni(NULL)
, fEffectMatrix(drawEffect.castEffect<GrMatrixConvolutionEffect>().coordsType()) {
const GrMatrixConvolutionEffect& m = drawEffect.castEffect<GrMatrixConvolutionEffect>();
fKernelSize = m.kernelSize();
@@ -392,22 +391,33 @@ void GrGLMatrixConvolutionEffect::emitCode(GrGLShaderBuilder* builder,
const TextureSamplerArray& samplers) {
const char* coords;
fEffectMatrix.emitCodeMakeFSCoords2D(builder, key, &coords);
- fImageIncrementUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType,
- kVec2f_GrSLType, "ImageIncrement");
- fKernelUni = builder->addUniformArray(GrGLShaderBuilder::kFragment_ShaderType,
- kFloat_GrSLType, "Kernel", fKernelSize.width() * fKernelSize.height());
- fTargetUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType,
- kVec2f_GrSLType, "Target");
- fGainUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType,
- kFloat_GrSLType, "Gain");
- fBiasUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType,
- kFloat_GrSLType, "Bias");
-
- const char* target = builder->getUniformCStr(fTargetUni);
- const char* imgInc = builder->getUniformCStr(fImageIncrementUni);
- const char* kernel = builder->getUniformCStr(fKernelUni);
- const char* gain = builder->getUniformCStr(fGainUni);
- const char* bias = builder->getUniformCStr(fBiasUni);
+
+ GrGLShaderBuilder::Uniform* imageIncrementUni =
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kVec2f_GrSLType, "ImageIncrement");
+ fImageIncrementUni = imageIncrementUni->glUniform();
+
+ GrGLShaderBuilder::Uniform* kernelUni =
+ builder->addUniformArray(GrGLShaderBuilder::kFragment_ShaderType,
+ kFloat_GrSLType, "Kernel", fKernelSize.width() * fKernelSize.height());
+ fKernelUni = kernelUni->glUniform();
+
+ GrGLShaderBuilder::Uniform* targetUni =
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kVec2f_GrSLType, "Target");
+ fTargetUni = targetUni->glUniform();
+
+ GrGLShaderBuilder::Uniform* gainUni =
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kFloat_GrSLType, "Gain");
+ fGainUni = gainUni->glUniform();
+
+ GrGLShaderBuilder::Uniform* biasUni =
+ builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, kFloat_GrSLType, "Bias");
+ fBiasUni = biasUni->glUniform();
+
+ const char* target = targetUni->c_str();
+ const char* imgInc = imageIncrementUni->c_str();
+ const char* kernel = kernelUni->c_str();
+ const char* gain = gainUni->c_str();
+ const char* bias = biasUni->c_str();
int kWidth = fKernelSize.width();
int kHeight = fKernelSize.height();
@@ -465,7 +475,7 @@ GrGLEffect::EffectKey GrGLMatrixConvolutionEffect::GenKey(const GrDrawEffect& dr
return key | matrixKey;
}
-void GrGLMatrixConvolutionEffect::setData(const GrGLUniformManager& uman,
+void GrGLMatrixConvolutionEffect::setData(const GrGLContext& context,
const GrDrawEffect& drawEffect) {
const GrMatrixConvolutionEffect& conv = drawEffect.castEffect<GrMatrixConvolutionEffect>();
GrTexture& texture = *conv.texture(0);
@@ -476,12 +486,12 @@ void GrGLMatrixConvolutionEffect::setData(const GrGLUniformManager& uman,
float ySign = texture.origin() == kTopLeft_GrSurfaceOrigin ? 1.0f : -1.0f;
imageIncrement[0] = 1.0f / texture.width();
imageIncrement[1] = ySign / texture.height();
- uman.set2fv(fImageIncrementUni, 0, 1, imageIncrement);
- uman.set2fv(fTargetUni, 0, 1, conv.target());
- uman.set1fv(fKernelUni, 0, fKernelSize.width() * fKernelSize.height(), conv.kernel());
- uman.set1f(fGainUni, conv.gain());
- uman.set1f(fBiasUni, conv.bias());
- fEffectMatrix.setData(uman,
+ fImageIncrementUni->set2fv(context, 0, 1, imageIncrement);
+ fTargetUni->set2fv(context, 0, 1, conv.target());
+ fKernelUni->set1fv(context, 0, fKernelSize.width() * fKernelSize.height(), conv.kernel());
+ fGainUni->set1f(context, conv.gain());
+ fBiasUni->set1f(context, conv.bias());
+ fEffectMatrix.setData(context,
conv.getMatrix(),
drawEffect,
conv.texture(0));
« no previous file with comments | « src/effects/SkMagnifierImageFilter.cpp ('k') | src/effects/SkMorphologyImageFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698