Introduce SkRGBA4f, templated on SkAlphaType
Most functionality is shared, but this lets us get type safety.
SkColor4f = SkRGBA4f<kUnpremul>
SkPMColor4f = SkRGBA4f<kPremul>
Change-Id: I27408565dc92e722f42a185cecbf7af15d1dde3f
Reviewed-on: https://skia-review.googlesource.com/156243
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index b79f01f..358a932 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -261,11 +261,11 @@
}
GrColor4f SkColor4fToPremulGrColor4fLegacy(SkColor4f c) {
- return GrColor4f::FromSkColor4f(c).premul();
+ return GrColor4f::FromRGBA4f(c.premul());
}
GrColor4f SkColor4fToUnpremulGrColor4f(SkColor4f c, const GrColorSpaceInfo& colorSpaceInfo) {
- GrColor4f color = GrColor4f::FromSkColor4f(c);
+ GrColor4f color = GrColor4f::FromRGBA4f(c);
if (auto* xform = colorSpaceInfo.colorSpaceXformFromSRGB()) {
color = xform->apply(color);
}
@@ -455,8 +455,8 @@
SkColorFilter* colorFilter = skPaint.getColorFilter();
if (colorFilter) {
if (applyColorFilterToPaintColor) {
- grPaint->setColor4f(GrColor4f::FromSkColor4f(
- colorFilter->filterColor4f(origColor.toSkColor4f(),
+ grPaint->setColor4f(GrColor4f::FromRGBA4f(
+ colorFilter->filterColor4f(origColor.asRGBA4f<kUnpremul_SkAlphaType>(),
colorSpaceInfo.colorSpace())).premul());
} else {
auto cfFP = colorFilter->asFragmentProcessor(context, colorSpaceInfo);