diff options
author | brianosman <brianosman@google.com> | 2016-07-26 08:11:50 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-26 08:11:50 -0700 |
commit | efded51cd8122c1360717161d3455f2a48a37bc0 (patch) | |
tree | 8bc7be4c07b7fbcf81f97891d85a1b8debb418c4 | |
parent | f660b7cfcfbf3062f88e61f8320ea7051da72213 (diff) |
Always supply a color space (sRGB for now) with F16
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177193004
Review-Url: https://codereview.chromium.org/2177193004
-rw-r--r-- | bench/nanobench.cpp | 2 | ||||
-rw-r--r-- | dm/DM.cpp | 2 | ||||
-rw-r--r-- | samplecode/SampleApp.cpp | 2 | ||||
-rw-r--r-- | src/gpu/SkGr.cpp | 7 | ||||
-rw-r--r-- | tests/TestConfigParsing.cpp | 2 | ||||
-rw-r--r-- | tools/flags/SkCommonFlagsConfig.cpp | 2 | ||||
-rw-r--r-- | tools/skiaserve/Request.cpp | 2 |
7 files changed, 11 insertions, 8 deletions
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index f7dc9c60e6..042332cf1b 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -466,7 +466,7 @@ static void create_config(const SkCommandLineConfig* config, SkTArray<Config>* c CPU_CONFIG(srgb, kRaster_Backend, kN32_SkColorType, kPremul_SkAlphaType, srgbColorSpace) CPU_CONFIG(f16, kRaster_Backend, - kRGBA_F16_SkColorType, kPremul_SkAlphaType, nullptr) + kRGBA_F16_SkColorType, kPremul_SkAlphaType, srgbColorSpace) } #undef CPU_CONFIG @@ -862,7 +862,7 @@ static Sink* create_sink(const SkCommandLineConfig* config) { SINK("565", RasterSink, kRGB_565_SkColorType); SINK("8888", RasterSink, kN32_SkColorType); SINK("srgb", RasterSink, kN32_SkColorType, srgbColorSpace); - SINK("f16", RasterSink, kRGBA_F16_SkColorType); + SINK("f16", RasterSink, kRGBA_F16_SkColorType, srgbColorSpace); SINK("pdf", PDFSink); SINK("skp", SKPSink); SINK("svg", SVGSink); diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp index a02a360be7..0747fcf22d 100644 --- a/samplecode/SampleApp.cpp +++ b/samplecode/SampleApp.cpp @@ -53,7 +53,7 @@ const struct { } gConfig[] = { { kN32_SkColorType, false, "L32" }, { kN32_SkColorType, true, "S32" }, - { kRGBA_F16_SkColorType, false, "F16" }, + { kRGBA_F16_SkColorType, true, "F16" }, }; static const char* find_config_name(const SkImageInfo& info) { diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index cf36b3a7cc..7a5726f950 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -243,8 +243,11 @@ GrTexture* GrUploadPixmapToTexture(GrContext* ctx, const SkPixmap& pixmap, SkBud const GrCaps* caps = ctx->caps(); GrSurfaceDesc desc = GrImageInfoToSurfaceDesc(pixmap.info(), *caps); - if (caps->srgbSupport() && !GrPixelConfigIsSRGB(desc.fConfig) && - pixmap.info().colorSpace() && pixmap.info().colorSpace()->gammaCloseToSRGB()) { + if (caps->srgbSupport() && + pixmap.info().colorSpace() && pixmap.info().colorSpace()->gammaCloseToSRGB() && + !(GrPixelConfigIsSRGB(desc.fConfig) || + kRGBA_half_GrPixelConfig == desc.fConfig || + kRGBA_float_GrPixelConfig == desc.fConfig)) { // We were supplied an sRGB-like color space, but we don't have a suitable pixel config. // Convert to 8888 sRGB so we can handle the data correctly. The raster backend doesn't // handle sRGB Index8 -> sRGB 8888 correctly (yet), so lie about both the source and diff --git a/tests/TestConfigParsing.cpp b/tests/TestConfigParsing.cpp index 4d5ebf6390..fb99c72624 100644 --- a/tests/TestConfigParsing.cpp +++ b/tests/TestConfigParsing.cpp @@ -121,7 +121,7 @@ DEF_TEST(ParseConfigs_DefaultConfigs, reporter) { REPORTER_ASSERT(reporter, !configs[19]->asConfigGpu()); REPORTER_ASSERT(reporter, !configs[24]->asConfigGpu()); REPORTER_ASSERT(reporter, configs[25]->asConfigGpu()->getColorType() == kRGBA_F16_SkColorType); - REPORTER_ASSERT(reporter, configs[25]->asConfigGpu()->getColorSpace() == nullptr); + REPORTER_ASSERT(reporter, configs[25]->asConfigGpu()->getColorSpace() == srgbColorSpace.get()); REPORTER_ASSERT(reporter, configs[26]->asConfigGpu()->getColorType() == kN32_SkColorType); REPORTER_ASSERT(reporter, configs[26]->asConfigGpu()->getColorSpace() == srgbColorSpace.get()); diff --git a/tools/flags/SkCommonFlagsConfig.cpp b/tools/flags/SkCommonFlagsConfig.cpp index d5c7a1d5bf..4a4684ff5c 100644 --- a/tools/flags/SkCommonFlagsConfig.cpp +++ b/tools/flags/SkCommonFlagsConfig.cpp @@ -284,7 +284,7 @@ static bool parse_option_gpu_color(const SkString& value, } if (value.equals("f16")) { *outColorType = kRGBA_F16_SkColorType; - *outColorSpace = nullptr; + *outColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); return true; } if (value.equals("srgb")) { diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index 44e5ddfa9d..f61ed5554a 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -167,7 +167,7 @@ struct ColorAndProfile { ColorAndProfile ColorModes[] = { { kN32_SkColorType, false, false }, { kN32_SkColorType, true, true }, - { kRGBA_F16_SkColorType, false, true }, + { kRGBA_F16_SkColorType, true, true }, }; } |