Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1997)

Unified Diff: third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp

Issue 2797213002: Fix BaseRenderingContext2D create/put/get-ImageData() for color managed canvas (Closed)
Patch Set: Rebaseline Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp b/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp
index 80edcb1bd188feb76864d725dc316e8a85e34574..a99b47449801d280ee268a1abd1ab7e4f3e616e4 100644
--- a/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp
+++ b/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp
@@ -19,9 +19,21 @@ bool CanvasColorParams::UsesOutputSpaceBlending() const {
}
sk_sp<SkColorSpace> CanvasColorParams::GetSkColorSpaceForSkSurfaces() const {
- if (color_space_ == kLegacyCanvasColorSpace)
- return nullptr;
- return GetGfxColorSpace().ToSkColorSpace();
+ switch (color_space_) {
+ case kLegacyCanvasColorSpace:
+ return nullptr;
+ case kSRGBCanvasColorSpace:
+ if (pixel_format_ == kF16CanvasPixelFormat)
+ return SkColorSpace::MakeSRGBLinear();
+ return SkColorSpace::MakeSRGB();
+ case kRec2020CanvasColorSpace:
+ return SkColorSpace::MakeRGB(SkColorSpace::kLinear_RenderTargetGamma,
+ SkColorSpace::kRec2020_Gamut);
+ case kP3CanvasColorSpace:
+ return SkColorSpace::MakeRGB(SkColorSpace::kLinear_RenderTargetGamma,
+ SkColorSpace::kDCIP3_D65_Gamut);
+ }
+ return nullptr;
}
SkColorType CanvasColorParams::GetSkColorType() const {

Powered by Google App Engine
This is Rietveld 408576698