aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-07-26 08:11:50 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-26 08:11:50 -0700
commitefded51cd8122c1360717161d3455f2a48a37bc0 (patch)
tree8bc7be4c07b7fbcf81f97891d85a1b8debb418c4
parentf660b7cfcfbf3062f88e61f8320ea7051da72213 (diff)
Always supply a color space (sRGB for now) with F16
-rw-r--r--bench/nanobench.cpp2
-rw-r--r--dm/DM.cpp2
-rw-r--r--samplecode/SampleApp.cpp2
-rw-r--r--src/gpu/SkGr.cpp7
-rw-r--r--tests/TestConfigParsing.cpp2
-rw-r--r--tools/flags/SkCommonFlagsConfig.cpp2
-rw-r--r--tools/skiaserve/Request.cpp2
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
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 5981c7473b..1ca909c61b 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -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 },
};
}