Diff
Modified: trunk/LayoutTests/TestExpectations (282629 => 282630)
--- trunk/LayoutTests/TestExpectations 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/TestExpectations 2021-09-17 02:54:29 UTC (rev 282630)
@@ -5255,6 +5255,8 @@
fast/canvas/canvas-color-space-display-p3-ImageData.html [ Failure ]
fast/canvas/canvas-color-space-display-p3.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Failure ]
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (282629 => 282630)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-09-17 02:54:29 UTC (rev 282630)
@@ -1,5 +1,22 @@
2021-09-16 Cameron McCormack <[email protected]>
+ Support patterns with a wide gamut source painting into a display-p3 canvas
+ https://bugs.webkit.org/show_bug.cgi?id=229023
+ <rdar://problem/81828466>
+
+ Reviewed by Sam Weinig.
+
+ Add tests for wide gamut <img> and <canvas> sources for patterns.
+
+ * web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html:
+ * web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt: Added.
+ * web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html: Added.
+ * web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt: Added.
+ * web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html: Added.
+ * web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js:
+
+2021-09-16 Cameron McCormack <[email protected]>
+
Support drawImage with a wide gamut image painting into a display-p3 canvas
https://bugs.webkit.org/show_bug.cgi?id=229021
<rdar://problem/81828450>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html (282629 => 282630)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html 2021-09-17 02:54:29 UTC (rev 282630)
@@ -6,7 +6,7 @@
// Test that drawing images with different bit depths and color profiles into
// sRGB and Display P3 canvases works, by reading pixels with getImageData()
// as sRGB and Display P3 values.
-for (let [filename, expectedPixels] of Object.entries(tests)) {
+for (let [filename, expectedPixels] of Object.entries(imageTests)) {
for (let contextColorSpace of ["srgb", "display-p3"]) {
for (let imageDataColorSpace of ["srgb", "display-p3"]) {
for (let scaleImage of [false, true]) {
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt (0 => 282630)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt 2021-09-17 02:54:29 UTC (rev 282630)
@@ -0,0 +1,10 @@
+
+PASS Source srgb, destination display-p3, color 255,0,0,255
+PASS Source srgb, destination display-p3, color 255,0,0,204
+PASS Source srgb, destination display-p3, color 187,0,0,255
+PASS Source srgb, destination display-p3, color 187,0,0,204
+PASS Source display-p3, destination srgb, color 255,0,0,255
+PASS Source display-p3, destination srgb, color 255,0,0,204
+PASS Source display-p3, destination srgb, color 187,0,0,255
+PASS Source display-p3, destination srgb, color 187,0,0,204
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html (0 => 282630)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html 2021-09-17 02:54:29 UTC (rev 282630)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<script src=""
+<script src=""
+<script src=""
+<script>
+// Test that patterns created from canvas sources with different color spaces
+// can be drawn into sRGB and Display P3 canvases, by reading pixels with
+// getImageData() as sRGB and Display P3 values.
+function runTest(sourceColorSpace, destinationColorSpace, colors) {
+ for (let [sourceColorString, expectedColor] of Object.entries(colors)) {
+ test(function() {
+ let source = document.createElement("canvas");
+ source.width = 2;
+ source.height = 2;
+
+ let sourceContext = source.getContext("2d", { colorSpace: sourceColorSpace });
+
+ let sourceColor = sourceColorString.split(",").map(x => +x);
+
+ let sourceImageData = new ImageData(2, 2, { colorSpace: sourceColorSpace });
+ for (let i = 0; i < 2 * 2 * 4; i += 4) {
+ for (let c = 0; c < 4; ++c)
+ sourceImageData.data[i + c] = sourceColor[c];
+ }
+ sourceContext.putImageData(sourceImageData, 0, 0);
+
+ let destination = document.createElement("canvas");
+ destination.width = 4;
+ destination.height = 4;
+
+ let destinationContext = destination.getContext("2d", { colorSpace: destinationColorSpace });
+ destinationContext.fillStyle = destinationContext.createPattern(source, "repeat");
+ destinationContext.fillRect(0, 0, 4, 4);
+
+ let destinationImageData = destinationContext.getImageData(2, 2, 1, 1);
+
+ assert_true(pixelsApproximatelyEqual(destinationImageData.data, expectedColor), `Actual pixel value ${[...destinationImageData.data]} is approximately equal to ${expectedColor}.`);
+ }, `Source ${sourceColorSpace}, destination ${destinationColorSpace}, color ${sourceColorString}`);
+ }
+}
+
+runTest("srgb", "display-p3", fromSRGBToDisplayP3);
+runTest("display-p3", "srgb", fromDisplayP3ToSRGB);
+</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt (0 => 282630)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt 2021-09-17 02:54:29 UTC (rev 282630)
@@ -0,0 +1,106 @@
+
+PASS sRGB-FF0000FF.png, Context srgb, ImageData srgb
+PASS sRGB-FF0000FF.png, Context srgb, ImageData display-p3
+PASS sRGB-FF0000FF.png, Context display-p3, ImageData srgb
+PASS sRGB-FF0000FF.png, Context display-p3, ImageData display-p3
+PASS sRGB-FF0000CC.png, Context srgb, ImageData srgb
+PASS sRGB-FF0000CC.png, Context srgb, ImageData display-p3
+PASS sRGB-FF0000CC.png, Context display-p3, ImageData srgb
+PASS sRGB-FF0000CC.png, Context display-p3, ImageData display-p3
+PASS sRGB-BB0000FF.png, Context srgb, ImageData srgb
+PASS sRGB-BB0000FF.png, Context srgb, ImageData display-p3
+PASS sRGB-BB0000FF.png, Context display-p3, ImageData srgb
+PASS sRGB-BB0000FF.png, Context display-p3, ImageData display-p3
+PASS sRGB-BB0000CC.png, Context srgb, ImageData srgb
+PASS sRGB-BB0000CC.png, Context srgb, ImageData display-p3
+PASS sRGB-BB0000CC.png, Context display-p3, ImageData srgb
+PASS sRGB-BB0000CC.png, Context display-p3, ImageData display-p3
+PASS Display-P3-FF0000FF.png, Context srgb, ImageData srgb
+PASS Display-P3-FF0000FF.png, Context srgb, ImageData display-p3
+PASS Display-P3-FF0000FF.png, Context display-p3, ImageData srgb
+PASS Display-P3-FF0000FF.png, Context display-p3, ImageData display-p3
+PASS Display-P3-FF0000CC.png, Context srgb, ImageData srgb
+PASS Display-P3-FF0000CC.png, Context srgb, ImageData display-p3
+PASS Display-P3-FF0000CC.png, Context display-p3, ImageData srgb
+PASS Display-P3-FF0000CC.png, Context display-p3, ImageData display-p3
+PASS Display-P3-BB0000FF.png, Context srgb, ImageData srgb
+PASS Display-P3-BB0000FF.png, Context srgb, ImageData display-p3
+PASS Display-P3-BB0000FF.png, Context display-p3, ImageData srgb
+PASS Display-P3-BB0000FF.png, Context display-p3, ImageData display-p3
+PASS Display-P3-BB0000CC.png, Context srgb, ImageData srgb
+PASS Display-P3-BB0000CC.png, Context srgb, ImageData display-p3
+PASS Display-P3-BB0000CC.png, Context display-p3, ImageData srgb
+PASS Display-P3-BB0000CC.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-FF0000FF.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-FF0000FF.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-FF0000FF.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-FF0000FF.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-FF0000CC.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-FF0000CC.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-FF0000CC.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-FF0000CC.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-BB0000FF.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-BB0000FF.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-BB0000FF.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-BB0000FF.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-BB0000CC.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-BB0000CC.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-BB0000CC.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-BB0000CC.png, Context display-p3, ImageData display-p3
+PASS Generic-CMYK-FF000000.jpg, Context srgb, ImageData srgb
+PASS Generic-CMYK-FF000000.jpg, Context srgb, ImageData display-p3
+PASS Generic-CMYK-FF000000.jpg, Context display-p3, ImageData srgb
+PASS Generic-CMYK-FF000000.jpg, Context display-p3, ImageData display-p3
+PASS Generic-CMYK-BE000000.jpg, Context srgb, ImageData srgb
+PASS Generic-CMYK-BE000000.jpg, Context srgb, ImageData display-p3
+PASS Generic-CMYK-BE000000.jpg, Context display-p3, ImageData srgb
+PASS Generic-CMYK-BE000000.jpg, Context display-p3, ImageData display-p3
+PASS sRGB-FFFF00000000FFFF.png, Context srgb, ImageData srgb
+PASS sRGB-FFFF00000000FFFF.png, Context srgb, ImageData display-p3
+PASS sRGB-FFFF00000000FFFF.png, Context display-p3, ImageData srgb
+PASS sRGB-FFFF00000000FFFF.png, Context display-p3, ImageData display-p3
+PASS sRGB-FFFF00000000CCCC.png, Context srgb, ImageData srgb
+PASS sRGB-FFFF00000000CCCC.png, Context srgb, ImageData display-p3
+PASS sRGB-FFFF00000000CCCC.png, Context display-p3, ImageData srgb
+PASS sRGB-FFFF00000000CCCC.png, Context display-p3, ImageData display-p3
+PASS sRGB-BBBC00000000FFFF.png, Context srgb, ImageData srgb
+PASS sRGB-BBBC00000000FFFF.png, Context srgb, ImageData display-p3
+PASS sRGB-BBBC00000000FFFF.png, Context display-p3, ImageData srgb
+PASS sRGB-BBBC00000000FFFF.png, Context display-p3, ImageData display-p3
+PASS sRGB-BBBC00000000CCCC.png, Context srgb, ImageData srgb
+PASS sRGB-BBBC00000000CCCC.png, Context srgb, ImageData display-p3
+PASS sRGB-BBBC00000000CCCC.png, Context display-p3, ImageData srgb
+PASS sRGB-BBBC00000000CCCC.png, Context display-p3, ImageData display-p3
+PASS Display-P3-FFFF00000000FFFF.png, Context srgb, ImageData srgb
+PASS Display-P3-FFFF00000000FFFF.png, Context srgb, ImageData display-p3
+PASS Display-P3-FFFF00000000FFFF.png, Context display-p3, ImageData srgb
+PASS Display-P3-FFFF00000000FFFF.png, Context display-p3, ImageData display-p3
+PASS Display-P3-FFFF00000000CCCC.png, Context srgb, ImageData srgb
+PASS Display-P3-FFFF00000000CCCC.png, Context srgb, ImageData display-p3
+PASS Display-P3-FFFF00000000CCCC.png, Context display-p3, ImageData srgb
+PASS Display-P3-FFFF00000000CCCC.png, Context display-p3, ImageData display-p3
+PASS Display-P3-BBBC00000000FFFF.png, Context srgb, ImageData srgb
+PASS Display-P3-BBBC00000000FFFF.png, Context srgb, ImageData display-p3
+PASS Display-P3-BBBC00000000FFFF.png, Context display-p3, ImageData srgb
+PASS Display-P3-BBBC00000000FFFF.png, Context display-p3, ImageData display-p3
+PASS Display-P3-BBBC00000000CCCC.png, Context srgb, ImageData srgb
+PASS Display-P3-BBBC00000000CCCC.png, Context srgb, ImageData display-p3
+PASS Display-P3-BBBC00000000CCCC.png, Context display-p3, ImageData srgb
+PASS Display-P3-BBBC00000000CCCC.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-FFFF00000000FFFF.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-FFFF00000000FFFF.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-FFFF00000000FFFF.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-FFFF00000000FFFF.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-FFFF00000000CCCC.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-FFFF00000000CCCC.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-FFFF00000000CCCC.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-FFFF00000000CCCC.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-BBBC00000000FFFF.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-BBBC00000000FFFF.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-BBBC00000000FFFF.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-BBBC00000000FFFF.png, Context display-p3, ImageData display-p3
+PASS Adobe-RGB-BBBC00000000CCCC.png, Context srgb, ImageData srgb
+PASS Adobe-RGB-BBBC00000000CCCC.png, Context srgb, ImageData display-p3
+PASS Adobe-RGB-BBBC00000000CCCC.png, Context display-p3, ImageData srgb
+PASS Adobe-RGB-BBBC00000000CCCC.png, Context display-p3, ImageData display-p3
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html (0 => 282630)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html 2021-09-17 02:54:29 UTC (rev 282630)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML>
+<script src=""
+<script src=""
+<script src=""
+<script>
+// Test that patterns created from images with different bit depths and color
+// profiles into can be drawn into sRGB and Display P3 canvases, by reading
+// pixels with getImageData() as sRGB and Display P3 values.
+for (let [filename, expectedPixels] of Object.entries(imageTests)) {
+ for (let contextColorSpace of ["srgb", "display-p3"]) {
+ for (let imageDataColorSpace of ["srgb", "display-p3"]) {
+ async_test(function(t) {
+ let image = new Image();
+ image._onload_ = t.step_func_done(function() {
+
+ let canvas = document.createElement("canvas");
+ canvas.width = 4;
+ canvas.height = 4;
+
+ let ctx = canvas.getContext("2d", { colorSpace: contextColorSpace });
+ ctx.fillStyle = ctx.createPattern(image, "repeat");
+ ctx.fillRect(0, 0, 4, 4);
+
+ let imageData = ctx.getImageData(2, 2, 1, 1, { colorSpace: imageDataColorSpace });
+
+ let expected = expectedPixels[`${contextColorSpace} ${imageDataColorSpace}`];
+ assert_true(pixelsApproximatelyEqual(imageData.data, expected), `Actual pixel value ${[...imageData.data]} is approximately equal to ${expected}.`);
+
+ t.done();
+
+ });
+ image.src = ""
+ }, `${filename}, Context ${contextColorSpace}, ImageData ${imageDataColorSpace}`);
+ }
+ }
+}
+</script>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js (282629 => 282630)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js 2021-09-17 02:54:29 UTC (rev 282630)
@@ -8,7 +8,7 @@
// Top level key is the image filename. Second level key is the pair of
// CanvasRenderingContext2DSettings.colorSpace and ImageDataSettings.colorSpace.
-const tests = {
+const imageTests = {
// 8 bit source images
"sRGB-FF0000FF.png": {
@@ -177,6 +177,20 @@
},
};
+const fromSRGBToDisplayP3 = {
+ "255,0,0,255": [234, 51, 35, 255],
+ "255,0,0,204": [234, 51, 35, 204],
+ "187,0,0,255": [171, 35, 23, 255],
+ "187,0,0,204": [171, 35, 23, 204],
+};
+
+const fromDisplayP3ToSRGB = {
+ "255,0,0,255": [255, 0, 0, 255],
+ "255,0,0,204": [255, 0, 0, 204],
+ "187,0,0,255": [205, 0, 0, 255],
+ "187,0,0,204": [205, 0, 0, 204],
+};
+
function pixelsApproximatelyEqual(p1, p2) {
for (let i = 0; i < 4; ++i) {
if (Math.abs(p1[i] - p2[i]) > 2)
Modified: trunk/LayoutTests/platform/ios/TestExpectations (282629 => 282630)
--- trunk/LayoutTests/platform/ios/TestExpectations 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/platform/ios/TestExpectations 2021-09-17 02:54:29 UTC (rev 282630)
@@ -3488,6 +3488,8 @@
fast/canvas/canvas-color-space-display-p3-ImageData.html [ Pass ]
fast/canvas/canvas-color-space-display-p3.html [ Pass ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html [ Pass ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html [ Pass ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Pass ]
imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Pass ]
Modified: trunk/LayoutTests/platform/ios-14/TestExpectations (282629 => 282630)
--- trunk/LayoutTests/platform/ios-14/TestExpectations 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/platform/ios-14/TestExpectations 2021-09-17 02:54:29 UTC (rev 282630)
@@ -72,6 +72,8 @@
fast/canvas/canvas-color-space-display-p3-ImageData.html [ Failure ]
fast/canvas/canvas-color-space-display-p3.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Failure ]
imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Failure ]
Modified: trunk/LayoutTests/platform/mac/TestExpectations (282629 => 282630)
--- trunk/LayoutTests/platform/mac/TestExpectations 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2021-09-17 02:54:29 UTC (rev 282630)
@@ -2347,6 +2347,8 @@
[ Monterey+ ] fast/canvas/canvas-color-space-display-p3-ImageData.html [ Pass ]
[ Monterey+ ] fast/canvas/canvas-color-space-display-p3.html [ Pass ]
[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html [ Pass ]
[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html [ Pass ]
[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Pass ]
[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Pass ]
Modified: trunk/Source/WebKit/ChangeLog (282629 => 282630)
--- trunk/Source/WebKit/ChangeLog 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/Source/WebKit/ChangeLog 2021-09-17 02:54:29 UTC (rev 282630)
@@ -1,5 +1,23 @@
2021-09-16 Cameron McCormack <[email protected]>
+ Support patterns with a wide gamut source painting into a display-p3 canvas
+ https://bugs.webkit.org/show_bug.cgi?id=229023
+ <rdar://problem/81828466>
+
+ Reviewed by Sam Weinig.
+
+ Patterns are sent to the GPU process using ShareableBitmaps created
+ from ImageBuffers. Ensure we pass along the pattern source color space
+ to ShareableBitmap::create.
+
+ Tests: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html
+ imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html
+
+ * GPUProcess/graphics/RemoteRenderingBackend.cpp:
+ (WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer):
+
+2021-09-16 Cameron McCormack <[email protected]>
+
Support drawImage with a wide gamut image painting into a display-p3 canvas
https://bugs.webkit.org/show_bug.cgi?id=229021
<rdar://problem/81828450>
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (282629 => 282630)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2021-09-17 02:33:27 UTC (rev 282629)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2021-09-17 02:54:29 UTC (rev 282630)
@@ -466,7 +466,7 @@
return;
auto backendSize = imageBuffer->backendSize();
auto resultSize = preserveResolution == WebCore::PreserveResolution::Yes ? backendSize : imageBuffer->logicalSize();
- auto bitmap = ShareableBitmap::createShareable(resultSize, { });
+ auto bitmap = ShareableBitmap::createShareable(resultSize, { imageBuffer->colorSpace() });
if (!bitmap)
return;
auto context = bitmap->createGraphicsContext();