| 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;
|
| }
|
|
|
|
|