diff options
author | 2016-06-16 11:10:03 -0700 | |
---|---|---|
committer | 2016-06-16 11:10:04 -0700 | |
commit | 6a61a875467646f8dbc37cfecf49e12d1f475170 (patch) | |
tree | db9b06850ce0d7f35fb9d21b14a0b1c431edb349 /tools/viewer | |
parent | dea0340cadb759932e53416a657f5ea75fee8b5f (diff) |
Lots of progress on switching to SkColorSpace rather than SkColorProfileType
Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002
Review-Url: https://codereview.chromium.org/2069173002
Diffstat (limited to 'tools/viewer')
-rw-r--r-- | tools/viewer/Viewer.cpp | 8 | ||||
-rw-r--r-- | tools/viewer/sk_app/DisplayParams.h | 10 | ||||
-rw-r--r-- | tools/viewer/sk_app/GLWindowContext.cpp | 4 | ||||
-rw-r--r-- | tools/viewer/sk_app/VulkanWindowContext.cpp | 3 | ||||
-rwxr-xr-x | tools/viewer/sk_app/WindowContext.cpp | 4 | ||||
-rw-r--r-- | tools/viewer/sk_app/android/GLWindowContext_android.cpp | 3 | ||||
-rw-r--r-- | tools/viewer/sk_app/android/RasterWindowContext_android.cpp | 2 |
7 files changed, 19 insertions, 15 deletions
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 43697f88b8..9aec01f3ec 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -122,8 +122,8 @@ Viewer::Viewer(int argc, char** argv, void* platformData) }); fCommands.addCommand('c', "Modes", "Toggle sRGB color mode", [this]() { DisplayParams params = fWindow->getDisplayParams(); - params.fProfileType = (kLinear_SkColorProfileType == params.fProfileType) - ? kSRGB_SkColorProfileType : kLinear_SkColorProfileType; + params.fColorSpace = (nullptr == params.fColorSpace) + ? SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named) : nullptr; fWindow->setDisplayParams(params); this->updateTitle(); fWindow->inval(); @@ -266,7 +266,9 @@ Viewer::~Viewer() { void Viewer::updateTitle() { SkString title("Viewer: "); title.append(fSlides[fCurrentSlide]->getName()); - if (kSRGB_SkColorProfileType == fWindow->getDisplayParams().fProfileType) { + + // TODO: For now, any color-space on the window means sRGB + if (fWindow->getDisplayParams().fColorSpace) { title.append(" sRGB"); } title.append(kBackendTypeStrings[fBackendType]); diff --git a/tools/viewer/sk_app/DisplayParams.h b/tools/viewer/sk_app/DisplayParams.h index 8756ff0aac..b9a23f322d 100644 --- a/tools/viewer/sk_app/DisplayParams.h +++ b/tools/viewer/sk_app/DisplayParams.h @@ -14,14 +14,14 @@ namespace sk_app { struct DisplayParams { DisplayParams() : fColorType(kN32_SkColorType) - , fProfileType(kLinear_SkColorProfileType) + , fColorSpace(nullptr) , fMSAASampleCount(0) , fDeepColor(false) {} - SkColorType fColorType; - SkColorProfileType fProfileType; - int fMSAASampleCount; - bool fDeepColor; + SkColorType fColorType; + sk_sp<SkColorSpace> fColorSpace; + int fMSAASampleCount; + bool fDeepColor; }; } // namespace sk_app diff --git a/tools/viewer/sk_app/GLWindowContext.cpp b/tools/viewer/sk_app/GLWindowContext.cpp index a491321a2a..b960da4824 100644 --- a/tools/viewer/sk_app/GLWindowContext.cpp +++ b/tools/viewer/sk_app/GLWindowContext.cpp @@ -47,8 +47,8 @@ void GLWindowContext::initializeContext(void* platformData, const DisplayParams& // ... and, if we're using a 10-bit/channel FB0, it doesn't do sRGB conversion on write, // so pretend that it's non-sRGB 8888: fPixelConfig = fContext->caps()->srgbSupport() && - SkColorAndProfileAreGammaCorrect(fDisplayParams.fColorType, - fDisplayParams.fProfileType) && + SkColorAndColorSpaceAreGammaCorrect(fDisplayParams.fColorType, + fDisplayParams.fColorSpace.get()) && (fColorBits != 30) ? kSkiaGamma8888_GrPixelConfig : kSkia8888_GrPixelConfig; } diff --git a/tools/viewer/sk_app/VulkanWindowContext.cpp b/tools/viewer/sk_app/VulkanWindowContext.cpp index 9bcf6ca25d..d892cd4783 100644 --- a/tools/viewer/sk_app/VulkanWindowContext.cpp +++ b/tools/viewer/sk_app/VulkanWindowContext.cpp @@ -173,7 +173,8 @@ bool VulkanWindowContext::createSwapchain(uint32_t width, uint32_t height, // Pick our surface format. For now, just make sure it matches our sRGB request: VkFormat surfaceFormat = VK_FORMAT_UNDEFINED; VkColorSpaceKHR colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; - bool wantSRGB = kSRGB_SkColorProfileType == params.fProfileType; + auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); + bool wantSRGB = srgbColorSpace == params.fColorSpace; for (uint32_t i = 0; i < surfaceFormatCount; ++i) { GrPixelConfig config; if (GrVkFormatToPixelConfig(surfaceFormats[i].format, &config) && diff --git a/tools/viewer/sk_app/WindowContext.cpp b/tools/viewer/sk_app/WindowContext.cpp index 41bbd14576..ecac2cc004 100755 --- a/tools/viewer/sk_app/WindowContext.cpp +++ b/tools/viewer/sk_app/WindowContext.cpp @@ -36,7 +36,7 @@ sk_sp<SkSurface> WindowContext::createRenderSurface(sk_sp<GrRenderTarget> rt, in SkImageInfo info = SkImageInfo::Make(fWidth, fHeight, fDisplayParams.fColorType, kUnknown_SkAlphaType, - fDisplayParams.fProfileType); + fDisplayParams.fColorSpace); return SkSurface::MakeRenderTarget(fContext, SkBudgeted::kNo, info, fDisplayParams.fMSAASampleCount, &props); } else { @@ -52,7 +52,7 @@ void WindowContext::presentRenderSurface(sk_sp<SkSurface> renderSurface, sk_sp<G SkImageInfo info = SkImageInfo::Make(fWidth, fHeight, fDisplayParams.fColorType, kUnknown_SkAlphaType, - fDisplayParams.fProfileType); + fDisplayParams.fColorSpace); SkBitmap bm; bm.allocPixels(info); renderSurface->getCanvas()->readPixels(&bm, 0, 0); diff --git a/tools/viewer/sk_app/android/GLWindowContext_android.cpp b/tools/viewer/sk_app/android/GLWindowContext_android.cpp index 79425b4115..be62ab2b68 100644 --- a/tools/viewer/sk_app/android/GLWindowContext_android.cpp +++ b/tools/viewer/sk_app/android/GLWindowContext_android.cpp @@ -99,7 +99,8 @@ void GLWindowContext_android::onInitializeContext(void* platformData, const Disp EGL_NONE, }; const EGLint* windowAttribs = nullptr; - if (kSRGB_SkColorProfileType == params.fProfileType && majorVersion == 1 && minorVersion >= 2) { + auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); + if (srgbColorSpace == params.fColorSpace && majorVersion == 1 && minorVersion >= 2) { windowAttribs = srgbWindowAttribs; } diff --git a/tools/viewer/sk_app/android/RasterWindowContext_android.cpp b/tools/viewer/sk_app/android/RasterWindowContext_android.cpp index 5e1e351b9a..a5f9a657fe 100644 --- a/tools/viewer/sk_app/android/RasterWindowContext_android.cpp +++ b/tools/viewer/sk_app/android/RasterWindowContext_android.cpp @@ -68,7 +68,7 @@ sk_sp<SkSurface> RasterWindowContext_android::getBackbufferSurface() { SkImageInfo info = SkImageInfo::Make(fWidth, fHeight, fDisplayParams.fColorType, kOpaque_SkAlphaType, - fDisplayParams.fProfileType); + fDisplayParams.fColorSpace); fBackbufferSurface = SkSurface::MakeRasterDirect( info, fBuffer.bits, fBuffer.stride * bytePerPixel, nullptr); } |