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

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

Powered by Google App Engine
This is Rietveld 408576698