added support for SkSL unpremul function
Change-Id: I970f1ad0dd0859448c874498fe02342f8abc3aa3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/242897
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/glsl/GrGLSLShaderBuilder.cpp b/src/gpu/glsl/GrGLSLShaderBuilder.cpp
index a87d591..a75479d 100644
--- a/src/gpu/glsl/GrGLSLShaderBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLShaderBuilder.cpp
@@ -159,8 +159,7 @@
const GrShaderVar gColorXformArgs[] = { GrShaderVar("color", kHalf4_GrSLType) };
SkString body;
if (colorXformHelper->applyUnpremul()) {
- body.append("half nonZeroAlpha = max(color.a, 0.0001);");
- body.append("color = half4(color.rgb / nonZeroAlpha, nonZeroAlpha);");
+ body.append("color = unpremul(color);");
}
if (colorXformHelper->applySrcTF()) {
body.appendf("color.r = %s(color.r);", srcTFFuncName.c_str());