Switch gradients from GrColor4f to SkPMColor4f
This is the most misleading use-case, because these values are either
premul or unpremul depending on the gradient's flags. It turns out that
we only need to "lie" and alias in one spot, though, so I think this is
better than adding an entirely new kUnknown_SkAlphaType specialization
of SkRGBA4f.
Bug: skia:
Change-Id: I4b7e280355219d439f50a7fe54230ea17715abc3
Reviewed-on: https://skia-review.googlesource.com/c/162745
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/gradients/GrClampedGradientEffect.cpp b/src/gpu/gradients/GrClampedGradientEffect.cpp
index 409549c..21a5b1c 100644
--- a/src/gpu/gradients/GrClampedGradientEffect.cpp
+++ b/src/gpu/gradients/GrClampedGradientEffect.cpp
@@ -59,20 +59,20 @@
const GrFragmentProcessor& _proc) override {
const GrClampedGradientEffect& _outer = _proc.cast<GrClampedGradientEffect>();
{
- const GrColor4f& leftBorderColorValue = _outer.leftBorderColor();
+ const SkPMColor4f& leftBorderColorValue = _outer.leftBorderColor();
if (fLeftBorderColorPrev != leftBorderColorValue) {
fLeftBorderColorPrev = leftBorderColorValue;
- pdman.set4fv(fLeftBorderColorVar, 1, leftBorderColorValue.fRGBA);
+ pdman.set4fv(fLeftBorderColorVar, 1, leftBorderColorValue.vec());
}
- const GrColor4f& rightBorderColorValue = _outer.rightBorderColor();
+ const SkPMColor4f& rightBorderColorValue = _outer.rightBorderColor();
if (fRightBorderColorPrev != rightBorderColorValue) {
fRightBorderColorPrev = rightBorderColorValue;
- pdman.set4fv(fRightBorderColorVar, 1, rightBorderColorValue.fRGBA);
+ pdman.set4fv(fRightBorderColorVar, 1, rightBorderColorValue.vec());
}
}
}
- GrColor4f fLeftBorderColorPrev = GrColor4f::kIllegalConstructor;
- GrColor4f fRightBorderColorPrev = GrColor4f::kIllegalConstructor;
+ SkPMColor4f fLeftBorderColorPrev = {SK_FloatNaN, SK_FloatNaN, SK_FloatNaN, SK_FloatNaN};
+ SkPMColor4f fRightBorderColorPrev = {SK_FloatNaN, SK_FloatNaN, SK_FloatNaN, SK_FloatNaN};
UniformHandle fLeftBorderColorVar;
UniformHandle fRightBorderColorVar;
};