Add SkPMColor4f support to SkSL
Convert GrConstColorProcessor to store SkPMColor4f
Bug: skia:
Change-Id: I6c505856653a02e576ae11fca59dc307545437f7
Reviewed-on: https://skia-review.googlesource.com/c/159152
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/sksl/SkSLCPPCodeGenerator.cpp b/src/sksl/SkSLCPPCodeGenerator.cpp
index 1a14cba..5882104 100644
--- a/src/sksl/SkSLCPPCodeGenerator.cpp
+++ b/src/sksl/SkSLCPPCodeGenerator.cpp
@@ -134,6 +134,8 @@
static String default_value(const Variable& var) {
if (var.fModifiers.fLayout.fCType == SkSL::Layout::CType::kGrColor4f) {
return "GrColor4f::kIllegalConstructor";
+ } else if (var.fModifiers.fLayout.fCType == SkSL::Layout::CType::kSkPMColor4f) {
+ return "{SK_FloatNaN, SK_FloatNaN, SK_FloatNaN, SK_FloatNaN}";
}
return default_value(var.fType);
}
@@ -181,6 +183,12 @@
fFormatArgs.push_back(cppCode + ".fRGBA[2]");
fFormatArgs.push_back(cppCode + ".fRGBA[3]");
break;
+ case Layout::CType::kSkPMColor4f:
+ fFormatArgs.push_back(cppCode + ".fR");
+ fFormatArgs.push_back(cppCode + ".fG");
+ fFormatArgs.push_back(cppCode + ".fB");
+ fFormatArgs.push_back(cppCode + ".fA");
+ break;
case Layout::CType::kSkRect: // fall through
case Layout::CType::kDefault:
fFormatArgs.push_back(cppCode + ".left()");