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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-filter-in-worker.html

Issue 2326633002: Adds filter support for offscreen canvas (Closed)
Patch Set: Code using ConversionData Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <body>
4
5 <canvas id='output0' width='100' height='100'></canvas>
6 <canvas id='output1' width='100' height='100'></canvas>
7 <canvas id='output2' width='100' height='100'></canvas>
8 <canvas id='output3' width='100' height='100'></canvas>
9 <canvas id='output4' width='100' height='100'></canvas>
10 <canvas id='output5' width='100' height='100'></canvas>
11 <canvas id='output6' width='100' height='100'></canvas>
12 <canvas id='output7' width='100' height='100'></canvas>
13 <canvas id='output8' width='100' height='100'></canvas>
14 <canvas id='output9' width='100' height='100'></canvas>
15 <canvas id='output10' width='100' height='100'></canvas>
16 <canvas id='output11' width='100' height='100'></canvas>
17
18 <script id='myWorker' type='text/worker'>
19 self.onmessage = function(e) {
20
21 var paint = function(filter) {
22 var aCanvas = new OffscreenCanvas(100, 100);
23 var ctx = aCanvas.getContext('2d');
24 ctx.filter = filter;
25 ctx.drawImage(e.data, 5, 5);
26 ctx.drawImage(e.data, 35, 35);
27 ctx.drawImage(e.data, 65, 65);
28 return aCanvas;
29 };
30
31 var canvas = [];
32
33 // canvas[0] = paint("blur(10px)");
34
35 canvas[0] = paint("none");
36 canvas[1] = paint("blur(10px)");
37 canvas[2] = paint("brightness(40%)");
38 canvas[3] = paint("contrast(20%)");
39 canvas[4] = paint("drop-shadow(0 0 5px #000)");
40 canvas[5] = paint("grayscale(100%)");
41 canvas[6] = paint("invert(100%)");
42 canvas[7] = paint("opacity(50%)");
43 canvas[8] = paint("saturate(20%)");
44 canvas[9] = paint("sepia(100%)");
45 canvas[10] = paint("sepia(1) hue-rotate(200deg)");
46 canvas[11] = paint("url(#url)");
47
48 var ret = [];
49 for (var i = 0; i < canvas.length; ++i) {
50 var img = canvas[i].transferToImageBitmap();
51 ret.push(img);
52 }
53
54 self.postMessage(ret, ret);
55 };
56 </script>
57
58 <script>
59 if (window.testRunner) {
60 testRunner.waitUntilDone();
61 }
62
63 var patternCanvas = document.createElement('canvas');
64 patternCanvas.width = 30;
65 patternCanvas.height = 30;
66 var patternCtx = patternCanvas.getContext('2d');
67 patternCtx.fillStyle = '#A00';
68 patternCtx.fillRect(0, 0, 15, 15);
69 patternCtx.fillStyle = '#0A0';
70 patternCtx.fillRect(15, 0, 15, 15);
71 patternCtx.fillStyle = '#00A';
72 patternCtx.fillRect(0, 15, 15, 15);
73 patternCtx.fillStyle = "#AA0";
74 patternCtx.fillRect(15, 15, 15, 15);
75 createImageBitmap(patternCanvas).then(consumeImageBitmap);
76
77 function consumeImageBitmap(patternImage) {
78 var blob = new Blob([document.getElementById('myWorker').textContent]);
79 var worker = new Worker(URL.createObjectURL(blob));
80 worker.addEventListener('message', msg => {
81 for (var i = 0; i < msg.data.length; ++i) {
82 var outputCtx = document.getElementById('output' + i).getContext('bitmapre nderer');
83 outputCtx.transferFromImageBitmap(msg.data[i]);
84 }
85 if (window.testRunner) {
86 testRunner.notifyDone();
87 }
88 });
89 worker.postMessage(patternImage, [patternImage]);
90 }
91 </script>
92 </body>
93 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698