aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2016-11-01 16:30:21 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-01 21:05:38 +0000
commiteb21ef6641315ae08c20728f868534a4dd762a38 (patch)
treefa7c1d61108b419fadf6b21b63cda4790b4a38ca
parent7039f74a8b1d39b9c44fd357912ce66e6bc9fd25 (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.cpp4
-rw-r--r--src/image/SkSurface_Raster.cpp2
-rw-r--r--tests/SurfaceTest.cpp2
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" },