Stop conflating F16 with linear gamma
Note to self: I debugged this, realized that the codecs
need to handle A2B -> XYZ, then realized that I just need
to wait for https://skia-review.googlesource.com/c/skia/+/136062
Bug: skia:
Change-Id: I594c22076feb3700b8a40c471a541fef5ff4e13e
Reviewed-on: https://skia-review.googlesource.com/137587
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 57827e0..a4d623e 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -145,14 +145,6 @@
}
Error BRDSrc::draw(SkCanvas* canvas) const {
- if (canvas->imageInfo().colorSpace() &&
- kRGBA_F16_SkColorType != canvas->imageInfo().colorType()) {
- // SkAndroidCodec uses legacy premultiplication and blending. Therefore, we only
- // run these tests on legacy canvases.
- // We allow an exception for F16, since Android uses F16.
- return Error::Nonfatal("Skip testing to color correct canvas.");
- }
-
SkColorType colorType = canvas->imageInfo().colorType();
if (kRGB_565_SkColorType == colorType &&
CodecSrc::kGetFromCanvas_DstColorType != fDstColorType) {
@@ -401,11 +393,6 @@
return false;
}
- if (kRGBA_F16_SkColorType == canvasColorType) {
- sk_sp<SkColorSpace> linearSpace = decodeInfo->colorSpace()->makeLinearGamma();
- *decodeInfo = decodeInfo->makeColorSpace(std::move(linearSpace));
- }
-
*decodeInfo = decodeInfo->makeColorType(canvasColorType);
break;
}
@@ -431,11 +418,7 @@
// "pretend" that the color space is standard sRGB to avoid triggering color conversion
// at draw time.
static void set_bitmap_color_space(SkImageInfo* info) {
- if (kRGBA_F16_SkColorType == info->colorType()) {
- *info = info->makeColorSpace(SkColorSpace::MakeSRGBLinear());
- } else {
- *info = info->makeColorSpace(SkColorSpace::MakeSRGB());
- }
+ *info = info->makeColorSpace(SkColorSpace::MakeSRGB());
}
Error CodecSrc::draw(SkCanvas* canvas) const {
@@ -824,14 +807,6 @@
}
Error AndroidCodecSrc::draw(SkCanvas* canvas) const {
- if (canvas->imageInfo().colorSpace() &&
- kRGBA_F16_SkColorType != canvas->imageInfo().colorType()) {
- // SkAndroidCodec uses legacy premultiplication and blending. Therefore, we only
- // run these tests on legacy canvases.
- // We allow an exception for F16, since Android uses F16.
- return Error::Nonfatal("Skip testing to color correct canvas.");
- }
-
sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str()));
if (!encoded) {
return SkStringPrintf("Couldn't read %s.", fPath.c_str());
@@ -1090,9 +1065,6 @@
if (kUnpremul_SkAlphaType == decodeInfo.alphaType()) {
decodeInfo = decodeInfo.makeAlphaType(kPremul_SkAlphaType);
}
- if (kRGBA_F16_SkColorType == fColorType) {
- decodeInfo = decodeInfo.makeColorSpace(decodeInfo.colorSpace()->makeLinearGamma());
- }
SkImageInfo bitmapInfo = decodeInfo;
set_bitmap_color_space(&bitmapInfo);