diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-09-15 11:42:17 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-09-15 18:50:54 +0000 |
commit | 05d5a13fea6246648de7e41358ed338d53c85ea2 (patch) | |
tree | 695fdbeae1116f8ce813288e47b31c2a99f28f1f /src/effects/SkTableColorFilter.cpp | |
parent | 49f1f34438d3431f6d7e32847accd2ba96948a73 (diff) |
Revert "Revert "Switched highp float to highfloat and mediump float to half.""
This reverts commit 1d816b92bb7cf2258007f3f74ffd143b89f25d01.
Bug: skia:
Change-Id: I388b5e5e9bf619db48297a80c9a80c039f26c9f1
Reviewed-on: https://skia-review.googlesource.com/46464
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/effects/SkTableColorFilter.cpp')
-rw-r--r-- | src/effects/SkTableColorFilter.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp index 0cda71394e..6ebcfa66e8 100644 --- a/src/effects/SkTableColorFilter.cpp +++ b/src/effects/SkTableColorFilter.cpp @@ -396,8 +396,7 @@ void GLColorTableEffect::onSetData(const GrGLSLProgramDataManager& pdm, void GLColorTableEffect::emitCode(EmitArgs& args) { const char* yoffsets; - fRGBAYValuesUni = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, - kVec4f_GrSLType, kDefault_GrSLPrecision, + fRGBAYValuesUni = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType, "yoffsets", &yoffsets); static const float kColorScaleFactor = 255.0f / 256.0f; static const float kColorOffsetFactor = 1.0f / 512.0f; @@ -405,14 +404,14 @@ void GLColorTableEffect::emitCode(EmitArgs& args) { if (nullptr == args.fInputColor) { // the input color is solid white (all ones). static const float kMaxValue = kColorScaleFactor + kColorOffsetFactor; - fragBuilder->codeAppendf("\t\tfloat4 coord = float4(%f, %f, %f, %f);\n", + fragBuilder->codeAppendf("\t\thalf4 coord = half4(%f, %f, %f, %f);\n", kMaxValue, kMaxValue, kMaxValue, kMaxValue); } else { - fragBuilder->codeAppendf("\t\tfloat nonZeroAlpha = max(%s.a, .0001);\n", args.fInputColor); - fragBuilder->codeAppendf("\t\tfloat4 coord = float4(%s.rgb / nonZeroAlpha, nonZeroAlpha);\n", + fragBuilder->codeAppendf("\t\thalf nonZeroAlpha = max(%s.a, .0001);\n", args.fInputColor); + fragBuilder->codeAppendf("\t\thalf4 coord = half4(%s.rgb / nonZeroAlpha, nonZeroAlpha);\n", args.fInputColor); - fragBuilder->codeAppendf("\t\tcoord = coord * %f + float4(%f, %f, %f, %f);\n", + fragBuilder->codeAppendf("\t\tcoord = coord * %f + half4(%f, %f, %f, %f);\n", kColorScaleFactor, kColorOffsetFactor, kColorOffsetFactor, kColorOffsetFactor, kColorOffsetFactor); @@ -421,22 +420,22 @@ void GLColorTableEffect::emitCode(EmitArgs& args) { SkString coord; fragBuilder->codeAppendf("\t\t%s.a = ", args.fOutputColor); - coord.printf("float2(coord.a, %s.a)", yoffsets); + coord.printf("half2(coord.a, %s.a)", yoffsets); fragBuilder->appendTextureLookup(args.fTexSamplers[0], coord.c_str()); fragBuilder->codeAppend(".a;\n"); fragBuilder->codeAppendf("\t\t%s.r = ", args.fOutputColor); - coord.printf("float2(coord.r, %s.r)", yoffsets); + coord.printf("half2(coord.r, %s.r)", yoffsets); fragBuilder->appendTextureLookup(args.fTexSamplers[0], coord.c_str()); fragBuilder->codeAppend(".a;\n"); fragBuilder->codeAppendf("\t\t%s.g = ", args.fOutputColor); - coord.printf("float2(coord.g, %s.g)", yoffsets); + coord.printf("half2(coord.g, %s.g)", yoffsets); fragBuilder->appendTextureLookup(args.fTexSamplers[0], coord.c_str()); fragBuilder->codeAppend(".a;\n"); fragBuilder->codeAppendf("\t\t%s.b = ", args.fOutputColor); - coord.printf("float2(coord.b, %s.b)", yoffsets); + coord.printf("half2(coord.b, %s.b)", yoffsets); fragBuilder->appendTextureLookup(args.fTexSamplers[0], coord.c_str()); fragBuilder->codeAppend(".a;\n"); |