| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/canvas2d/CanvasRenderingContext2D.h" | 5 #include "modules/canvas2d/CanvasRenderingContext2D.h" |
| 6 | 6 |
| 7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
| 8 #include "core/frame/FrameView.h" | 8 #include "core/frame/FrameView.h" |
| 9 #include "core/frame/ImageBitmap.h" | 9 #include "core/frame/ImageBitmap.h" |
| 10 #include "core/html/HTMLCanvasElement.h" | 10 #include "core/html/HTMLCanvasElement.h" |
| (...skipping 1277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1288 | 1288 |
| 1289 // Create and test the ImageBitmap objects. | 1289 // Create and test the ImageBitmap objects. |
| 1290 Optional<IntRect> cropRect = IntRect(0, 0, 10, 10); | 1290 Optional<IntRect> cropRect = IntRect(0, 0, 10, 10); |
| 1291 sk_sp<SkColorSpace> colorSpace = nullptr; | 1291 sk_sp<SkColorSpace> colorSpace = nullptr; |
| 1292 SkColorType colorType = SkColorType::kN32_SkColorType; | 1292 SkColorType colorType = SkColorType::kN32_SkColorType; |
| 1293 SkColorSpaceXform::ColorFormat colorFormat32 = | 1293 SkColorSpaceXform::ColorFormat colorFormat32 = |
| 1294 (colorType == kBGRA_8888_SkColorType) | 1294 (colorType == kBGRA_8888_SkColorType) |
| 1295 ? SkColorSpaceXform::ColorFormat::kBGRA_8888_ColorFormat | 1295 ? SkColorSpaceXform::ColorFormat::kBGRA_8888_ColorFormat |
| 1296 : SkColorSpaceXform::ColorFormat::kRGBA_8888_ColorFormat; | 1296 : SkColorSpaceXform::ColorFormat::kRGBA_8888_ColorFormat; |
| 1297 SkColorSpaceXform::ColorFormat colorFormat = colorFormat32; | 1297 SkColorSpaceXform::ColorFormat colorFormat = colorFormat32; |
| 1298 sk_sp<SkColorSpace> srcRGBColorSpace = | 1298 sk_sp<SkColorSpace> srcRGBColorSpace = SkColorSpace::MakeSRGB(); |
| 1299 SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named); | |
| 1300 | 1299 |
| 1301 for (uint8_t i = static_cast<uint8_t>( | 1300 for (uint8_t i = static_cast<uint8_t>( |
| 1302 ColorSpaceConversion::DEFAULT_NOT_COLOR_CORRECTED); | 1301 ColorSpaceConversion::DEFAULT_NOT_COLOR_CORRECTED); |
| 1303 i <= static_cast<uint8_t>(ColorSpaceConversion::LAST); i++) { | 1302 i <= static_cast<uint8_t>(ColorSpaceConversion::LAST); i++) { |
| 1304 ColorSpaceConversion colorSpaceConversion = | 1303 ColorSpaceConversion colorSpaceConversion = |
| 1305 static_cast<ColorSpaceConversion>(i); | 1304 static_cast<ColorSpaceConversion>(i); |
| 1306 ImageBitmapOptions options = | 1305 ImageBitmapOptions options = |
| 1307 prepareBitmapOptionsAndSetRuntimeFlags(colorSpaceConversion); | 1306 prepareBitmapOptionsAndSetRuntimeFlags(colorSpaceConversion); |
| 1308 ImageBitmap* imageBitmap = ImageBitmap::create(canvas, cropRect, options); | 1307 ImageBitmap* imageBitmap = ImageBitmap::create(canvas, cropRect, options); |
| 1309 // ColorBehavior::ignore() is used instead of | 1308 // ColorBehavior::ignore() is used instead of |
| 1310 // ColorBehavior::transformToTargetForTesting() to avoid color conversion to | 1309 // ColorBehavior::transformToTargetForTesting() to avoid color conversion to |
| 1311 // display color profile, as we want to solely rely on the color correction | 1310 // display color profile, as we want to solely rely on the color correction |
| 1312 // that happens in ImageBitmap create method. | 1311 // that happens in ImageBitmap create method. |
| 1313 SkImage* convertedImage = | 1312 SkImage* convertedImage = |
| 1314 imageBitmap->bitmapImage() | 1313 imageBitmap->bitmapImage() |
| 1315 ->imageForCurrentFrame(ColorBehavior::ignore()) | 1314 ->imageForCurrentFrame(ColorBehavior::ignore()) |
| 1316 .get(); | 1315 .get(); |
| 1317 | 1316 |
| 1318 switch (colorSpaceConversion) { | 1317 switch (colorSpaceConversion) { |
| 1319 case ColorSpaceConversion::NONE: | 1318 case ColorSpaceConversion::NONE: |
| 1320 NOTREACHED(); | 1319 NOTREACHED(); |
| 1321 break; | 1320 break; |
| 1322 case ColorSpaceConversion::DEFAULT_NOT_COLOR_CORRECTED: | 1321 case ColorSpaceConversion::DEFAULT_NOT_COLOR_CORRECTED: |
| 1323 colorSpace = ColorBehavior::globalTargetColorSpace().ToSkColorSpace(); | 1322 colorSpace = ColorBehavior::globalTargetColorSpace().ToSkColorSpace(); |
| 1324 colorFormat = colorFormat32; | 1323 colorFormat = colorFormat32; |
| 1325 break; | 1324 break; |
| 1326 case ColorSpaceConversion::DEFAULT_COLOR_CORRECTED: | 1325 case ColorSpaceConversion::DEFAULT_COLOR_CORRECTED: |
| 1327 case ColorSpaceConversion::SRGB: | 1326 case ColorSpaceConversion::SRGB: |
| 1328 colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named); | 1327 colorSpace = SkColorSpace::MakeSRGB(); |
| 1329 colorFormat = colorFormat32; | 1328 colorFormat = colorFormat32; |
| 1330 break; | 1329 break; |
| 1331 case ColorSpaceConversion::LINEAR_RGB: | 1330 case ColorSpaceConversion::LINEAR_RGB: |
| 1332 colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGBLinear_Named); | 1331 colorSpace = SkColorSpace::MakeSRGBLinear(); |
| 1333 colorType = SkColorType::kRGBA_F16_SkColorType; | 1332 colorType = SkColorType::kRGBA_F16_SkColorType; |
| 1334 colorFormat = SkColorSpaceXform::ColorFormat::kRGBA_F16_ColorFormat; | 1333 colorFormat = SkColorSpaceXform::ColorFormat::kRGBA_F16_ColorFormat; |
| 1335 break; | 1334 break; |
| 1336 default: | 1335 default: |
| 1337 NOTREACHED(); | 1336 NOTREACHED(); |
| 1338 } | 1337 } |
| 1339 | 1338 |
| 1340 SkImageInfo imageInfo = SkImageInfo::Make( | 1339 SkImageInfo imageInfo = SkImageInfo::Make( |
| 1341 1, 1, colorType, SkAlphaType::kPremul_SkAlphaType, colorSpace); | 1340 1, 1, colorType, SkAlphaType::kPremul_SkAlphaType, colorSpace); |
| 1342 std::unique_ptr<uint8_t[]> convertedPixel( | 1341 std::unique_ptr<uint8_t[]> convertedPixel( |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1361 | 1360 |
| 1362 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled( | 1361 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled( |
| 1363 experimentalCanvasFeaturesRuntimeFlag); | 1362 experimentalCanvasFeaturesRuntimeFlag); |
| 1364 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled( | 1363 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled( |
| 1365 colorCorrectRenderingRuntimeFlag); | 1364 colorCorrectRenderingRuntimeFlag); |
| 1366 RuntimeEnabledFeatures::setColorCorrectRenderingDefaultModeEnabled( | 1365 RuntimeEnabledFeatures::setColorCorrectRenderingDefaultModeEnabled( |
| 1367 colorCorrectRenderingDefaultModeRuntimeFlag); | 1366 colorCorrectRenderingDefaultModeRuntimeFlag); |
| 1368 } | 1367 } |
| 1369 | 1368 |
| 1370 } // namespace blink | 1369 } // namespace blink |
| OLD | NEW |