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

Unified Diff: third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp

Issue 2797213002: Fix BaseRenderingContext2D create/put/get-ImageData() for color managed canvas (Closed)
Patch Set: Corrections 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/core/html/canvas/CanvasRenderingContext.cpp
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
index 41f39aecef774c4ce6a6ccd10128cf4908f76848..cdb05a5c5c2b30d894ac386964a7eb10f2d09efa 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
@@ -110,18 +110,32 @@ gfx::ColorSpace CanvasRenderingContext::GfxColorSpace() const {
return gfx::ColorSpace::CreateSRGB();
case kRec2020CanvasColorSpace:
return gfx::ColorSpace(gfx::ColorSpace::PrimaryID::BT2020,
- gfx::ColorSpace::TransferID::IEC61966_2_1);
+ gfx::ColorSpace::TransferID::LINEAR_HDR);
case kP3CanvasColorSpace:
return gfx::ColorSpace(gfx::ColorSpace::PrimaryID::SMPTEST432_1,
- gfx::ColorSpace::TransferID::IEC61966_2_1);
+ gfx::ColorSpace::TransferID::LINEAR_HDR);
}
NOTREACHED();
return gfx::ColorSpace();
}
sk_sp<SkColorSpace> CanvasRenderingContext::SkSurfaceColorSpace() const {
- if (SkSurfacesUseColorSpace())
- return GfxColorSpace().ToSkColorSpace();
+ if (SkSurfacesUseColorSpace()) {
+ switch (color_space_) {
+ case kLegacyCanvasColorSpace:
+ return SkColorSpace::MakeSRGB();
+ 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;
}

Powered by Google App Engine
This is Rietveld 408576698