diff options
author | 2016-11-01 16:30:21 -0400 | |
---|---|---|
committer | 2016-11-01 21:05:38 +0000 | |
commit | eb21ef6641315ae08c20728f868534a4dd762a38 (patch) | |
tree | fa7c1d61108b419fadf6b21b63cda4790b4a38ca | |
parent | 7039f74a8b1d39b9c44fd357912ce66e6bc9fd25 (diff) |
Loosen restriction on F16 surfaces - allow "legacy" F16 mode
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4231
Change-Id: I032cdf82468ca11639760eb99773a88a5808ebe6
Reviewed-on: https://skia-review.googlesource.com/4231
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
-rw-r--r-- | src/image/SkSurface_Gpu.cpp | 4 | ||||
-rw-r--r-- | src/image/SkSurface_Raster.cpp | 2 | ||||
-rw-r--r-- | tests/SurfaceTest.cpp | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp index e83d474424..13bbd4f2e8 100644 --- a/src/image/SkSurface_Gpu.cpp +++ b/src/image/SkSurface_Gpu.cpp @@ -136,7 +136,7 @@ void SkSurface_Gpu::onPrepareForExternalIO() { bool SkSurface_Gpu::Valid(const SkImageInfo& info) { switch (info.colorType()) { case kRGBA_F16_SkColorType: - return info.colorSpace() && info.colorSpace()->gammaIsLinear(); + return !info.colorSpace() || info.colorSpace()->gammaIsLinear(); case kRGBA_8888_SkColorType: case kBGRA_8888_SkColorType: return !info.colorSpace() || info.colorSpace()->gammaCloseToSRGB(); @@ -148,7 +148,7 @@ bool SkSurface_Gpu::Valid(const SkImageInfo& info) { bool SkSurface_Gpu::Valid(GrContext* context, GrPixelConfig config, SkColorSpace* colorSpace) { switch (config) { case kRGBA_half_GrPixelConfig: - return colorSpace && colorSpace->gammaIsLinear(); + return !colorSpace || colorSpace->gammaIsLinear(); case kSRGBA_8888_GrPixelConfig: case kSBGRA_8888_GrPixelConfig: return context->caps()->srgbSupport() && colorSpace && colorSpace->gammaCloseToSRGB(); diff --git a/src/image/SkSurface_Raster.cpp b/src/image/SkSurface_Raster.cpp index f2cb94a04f..c27e1bc91d 100644 --- a/src/image/SkSurface_Raster.cpp +++ b/src/image/SkSurface_Raster.cpp @@ -67,7 +67,7 @@ bool SkSurface_Raster::Valid(const SkImageInfo& info, size_t rowBytes) { shift = 2; break; case kRGBA_F16_SkColorType: - if (!info.colorSpace() || !info.colorSpace()->gammaIsLinear()) { + if (info.colorSpace() && !info.colorSpace()->gammaIsLinear()) { return false; } shift = 3; diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp index 483a115d13..908dc169de 100644 --- a/tests/SurfaceTest.cpp +++ b/tests/SurfaceTest.cpp @@ -944,7 +944,7 @@ static void test_surface_creation_and_snapshot_with_color_space( { kN32_SkColorType, srgbColorSpace, true, "N32-srgb" }, { kN32_SkColorType, adobeColorSpace, true, "N32-adobe" }, { kN32_SkColorType, oddColorSpace, false, "N32-odd" }, - { kRGBA_F16_SkColorType, nullptr, false, "F16-nullptr" }, + { kRGBA_F16_SkColorType, nullptr, true, "F16-nullptr" }, { kRGBA_F16_SkColorType, linearColorSpace, true, "F16-linear" }, { kRGBA_F16_SkColorType, srgbColorSpace, false, "F16-srgb" }, { kRGBA_F16_SkColorType, adobeColorSpace, false, "F16-adobe" }, |