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.h b/src/gpu/gradients/GrClampedGradientEffect.h
index ce07d64..26e6d72 100644
--- a/src/gpu/gradients/GrClampedGradientEffect.h
+++ b/src/gpu/gradients/GrClampedGradientEffect.h
@@ -15,14 +15,14 @@
#include "GrCoordTransform.h"
class GrClampedGradientEffect : public GrFragmentProcessor {
public:
- const GrColor4f& leftBorderColor() const { return fLeftBorderColor; }
- const GrColor4f& rightBorderColor() const { return fRightBorderColor; }
+ const SkPMColor4f& leftBorderColor() const { return fLeftBorderColor; }
+ const SkPMColor4f& rightBorderColor() const { return fRightBorderColor; }
bool makePremul() const { return fMakePremul; }
bool colorsAreOpaque() const { return fColorsAreOpaque; }
static std::unique_ptr<GrFragmentProcessor> Make(
std::unique_ptr<GrFragmentProcessor> colorizer,
- std::unique_ptr<GrFragmentProcessor> gradLayout, GrColor4f leftBorderColor,
- GrColor4f rightBorderColor, bool makePremul, bool colorsAreOpaque) {
+ std::unique_ptr<GrFragmentProcessor> gradLayout, SkPMColor4f leftBorderColor,
+ SkPMColor4f rightBorderColor, bool makePremul, bool colorsAreOpaque) {
return std::unique_ptr<GrFragmentProcessor>(new GrClampedGradientEffect(
std::move(colorizer), std::move(gradLayout), leftBorderColor, rightBorderColor,
makePremul, colorsAreOpaque));
@@ -34,8 +34,8 @@
private:
GrClampedGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,
std::unique_ptr<GrFragmentProcessor> gradLayout,
- GrColor4f leftBorderColor, GrColor4f rightBorderColor, bool makePremul,
- bool colorsAreOpaque)
+ SkPMColor4f leftBorderColor, SkPMColor4f rightBorderColor,
+ bool makePremul, bool colorsAreOpaque)
: INHERITED(kGrClampedGradientEffect_ClassID,
(OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag |
(colorsAreOpaque && gradLayout->preservesOpaqueInput()
@@ -52,8 +52,8 @@
void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
bool onIsEqual(const GrFragmentProcessor&) const override;
GR_DECLARE_FRAGMENT_PROCESSOR_TEST
- GrColor4f fLeftBorderColor;
- GrColor4f fRightBorderColor;
+ SkPMColor4f fLeftBorderColor;
+ SkPMColor4f fRightBorderColor;
bool fMakePremul;
bool fColorsAreOpaque;
typedef GrFragmentProcessor INHERITED;