OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <body> | 3 <body> |
4 <canvas id='output' width='200' height='400'></canvas> | 4 <canvas id='output' width='200' height='200'></canvas> |
5 <script id='myWorker' type='text/worker'> | 5 <script id='myWorker' type='text/worker'> |
6 self.onmessage = function(e) { | 6 self.onmessage = function(e) { |
7 var aCanvas = new OffscreenCanvas(200, 400); | 7 var aCanvas = new OffscreenCanvas(200, 200); |
8 var ctx = aCanvas.getContext('2d'); | 8 var ctx = aCanvas.getContext('2d'); |
9 | 9 |
| 10 var radialGrad = ctx.createRadialGradient(100, 100, 100, 100, 100, 0); |
| 11 radialGrad.addColorStop(0, "#fff"); |
| 12 radialGrad.addColorStop(1, "#0f0"); |
| 13 |
| 14 ctx.fillStyle = radialGrad; |
| 15 ctx.fillRect(0, 0, 200, 200); |
| 16 |
| 17 var linearGrad = ctx.createLinearGradient(0, 0, 200, 200); |
| 18 linearGrad.addColorStop(0, "#f00"); |
| 19 linearGrad.addColorStop(1, "#ff0"); |
| 20 |
| 21 ctx.strokeStyle = linearGrad; |
| 22 ctx.lineWidth = "3"; |
10 ctx.beginPath(); | 23 ctx.beginPath(); |
11 ctx.lineWidth = '10'; | 24 ctx.moveTo(0, 0); |
12 ctx.strokeStyle = 'green'; | 25 ctx.lineTo(200, 200); |
13 ctx.lineJoin = 'round'; | |
14 ctx.moveTo(15, 15); | |
15 ctx.lineTo(135, 15); | |
16 ctx.lineTo(70, 170); | |
17 ctx.closePath(); | |
18 ctx.stroke(); | 26 ctx.stroke(); |
19 | 27 |
20 var path1 = new Path2D(); | |
21 path1.moveTo(150, 25); | |
22 path1.bezierCurveTo(10, 150, 10, 300, 100, 200); | |
23 ctx.strokeStyle = 'purple'; | |
24 ctx.setLineDash([ 10, 5 ]); | |
25 ctx.stroke(path1); | |
26 | |
27 ctx.fillStyle = 'red'; | |
28 ctx.beginPath() | |
29 ctx.arc(75, 325, 50, 0, Math.PI * 2, true); | |
30 ctx.arc(75, 325, 20, 0, Math.PI * 2, true); | |
31 ctx.fill("evenodd"); | |
32 | |
33 var image = aCanvas.transferToImageBitmap(); | 28 var image = aCanvas.transferToImageBitmap(); |
34 self.postMessage(image, [image]); | 29 self.postMessage(image, [image]); |
35 }; | 30 }; |
36 </script> | 31 </script> |
37 <script> | 32 <script> |
38 if (window.testRunner) { | 33 if (window.testRunner) { |
39 testRunner.waitUntilDone(); | 34 testRunner.waitUntilDone(); |
40 } | 35 } |
| 36 |
41 var blob = new Blob([document.getElementById('myWorker').textContent]); | 37 var blob = new Blob([document.getElementById('myWorker').textContent]); |
42 var worker = new Worker(URL.createObjectURL(blob)); | 38 var worker = new Worker(URL.createObjectURL(blob)); |
43 worker.addEventListener('message', msg => { | 39 worker.addEventListener('message', msg => { |
44 var outputCtx = document.getElementById('output').getContext('bitmaprenderer')
; | 40 var outputCtx = document.getElementById('output').getContext('bitmaprenderer')
; |
45 outputCtx.transferFromImageBitmap(msg.data); | 41 outputCtx.transferFromImageBitmap(msg.data); |
46 if (window.testRunner) { | 42 if (window.testRunner) { |
47 testRunner.notifyDone(); | 43 testRunner.notifyDone(); |
48 } | 44 } |
49 }); | 45 }); |
50 worker.postMessage(""); | 46 worker.postMessage(""); |
| 47 |
51 </script> | 48 </script> |
52 </body> | 49 </body> |
53 </html> | 50 |
OLD | NEW |