aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkMagnifierImageFilter.cpp
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-03-08 11:42:02 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-08 18:52:51 +0000
commitc624d9d212c4168fc6c202a8535ddff8a3bfb16a (patch)
tree51606298f16184f05b2f5414e547d1291f5ccca7 /src/effects/SkMagnifierImageFilter.cpp
parente353e81a6fdf401310e0643280ec34d9de0019a3 (diff)
Refactor GrColorSpaceXformHelper
Nonlinear blending mode is going to (sometimes) require additional uniforms and shader code for color space transformation. This change just alters the usage of the helper struct so that we can hide any new logic (without having to change all the FPs that use it). BUG=skia: Change-Id: I913478a387973f5bad5aa09a29f85d21daacab94 Reviewed-on: https://skia-review.googlesource.com/9414 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/effects/SkMagnifierImageFilter.cpp')
-rw-r--r--src/effects/SkMagnifierImageFilter.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp
index a78f2235ab..4312fb714e 100644
--- a/src/effects/SkMagnifierImageFilter.cpp
+++ b/src/effects/SkMagnifierImageFilter.cpp
@@ -143,7 +143,7 @@ private:
UniformHandle fInvZoomVar;
UniformHandle fInvInsetVar;
UniformHandle fBoundsVar;
- UniformHandle fColorSpaceXformVar;
+ GrGLSLColorSpaceXformHelper fColorSpaceHelper;
typedef GrGLSLFragmentProcessor INHERITED;
};
@@ -164,8 +164,7 @@ void GrGLMagnifierEffect::emitCode(EmitArgs& args) {
"Bounds");
const GrMagnifierEffect& zoom = args.fFp.cast<GrMagnifierEffect>();
- GrGLSLColorSpaceXformHelper colorSpaceHelper(uniformHandler, zoom.colorSpaceXform(),
- &fColorSpaceXformVar);
+ fColorSpaceHelper.emitCode(uniformHandler, zoom.colorSpaceXform());
GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
SkString coords2D = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
@@ -194,7 +193,7 @@ void GrGLMagnifierEffect::emitCode(EmitArgs& args) {
fragBuilder->codeAppend("\t\tvec2 mix_coord = mix(coord, zoom_coord, weight);\n");
fragBuilder->codeAppend("\t\tvec4 output_color = ");
fragBuilder->appendTextureLookup(args.fTexSamplers[0], "mix_coord", kVec2f_GrSLType,
- &colorSpaceHelper);
+ &fColorSpaceHelper);
fragBuilder->codeAppend(";\n");
fragBuilder->codeAppendf("\t\t%s = output_color;", args.fOutputColor);
@@ -239,7 +238,7 @@ void GrGLMagnifierEffect::onSetData(const GrGLSLProgramDataManager& pdman,
}
if (SkToBool(zoom.colorSpaceXform())) {
- pdman.setSkMatrix44(fColorSpaceXformVar, zoom.colorSpaceXform()->srcToDst());
+ fColorSpaceHelper.setData(pdman, zoom.colorSpaceXform());
}
}