OLD | NEW |
| (Empty) |
1 <!-- Based on fast/repaint/canvas-putImageData.html --> | |
2 <!-- Test for https://bugs.webkit.org/show_bug.cgi?id=46319 --> | |
3 <head> | |
4 <script src="resources/paint-invalidation-test.js"></script> | |
5 </head> | |
6 <body> | |
7 <canvas id="canvas" width="100" height="100"></canvas> | |
8 <script> | |
9 var canvas = document.getElementById('canvas'); | |
10 var ctx = canvas.getContext('2d'); | |
11 | |
12 // prepare imagedata | |
13 ctx.fillStyle = "rgb(255, 0, 0)"; ctx.fillRect(0, 0, 100, 100); // red b
ackground | |
14 ctx.fillStyle = "rgb(0, 255, 0)"; ctx.fillRect(10, 10, 10, 10); // inset
green square | |
15 var imageDataGreen = ctx.getImageData(10, 10, 10, 10); | |
16 var imageDataRedWithInsetGreen = ctx.getImageData(0, 0, 30, 30); | |
17 | |
18 // clear canvas to dark green | |
19 ctx.fillStyle = "rgb(0, 128, 0)"; | |
20 ctx.fillRect(0, 0, 100, 100); | |
21 | |
22 // fill target locations with dark red | |
23 ctx.fillStyle = "rgb(128, 0, 0)"; | |
24 ctx.fillRect(0, 0, 10, 10); | |
25 ctx.fillRect(40, 40, 10, 10); | |
26 ctx.fillRect(80, 80, 10, 10); | |
27 window.testIsAsync = true; | |
28 | |
29 function paintInvalidationTest() | |
30 { | |
31 // patch up red squares with putImageData | |
32 ctx.putImageData(imageDataGreen, 0, 0); | |
33 ctx.putImageData(imageDataGreen, 40, 40); | |
34 ctx.putImageData(imageDataRedWithInsetGreen, 70, 70, 10, 10, 10, 10)
; | |
35 // Because canvas invalidations are processed at the end of the curr
ent task, | |
36 // the repaint test has to end in a subsequent task in order to capt
ure the repaint. | |
37 setTimeout(finishPaintInvalidationTest, 0); | |
38 } | |
39 | |
40 window.onload = runPaintInvalidationTest; | |
41 </script> | |
42 </body> | |
OLD | NEW |