| <!-- Test for https://bugs.webkit.org/show_bug.cgi?id=46319 --> | |
| <head> | |
| <script src="resources/repaint.js"></script> | |
| </head> | |
| <body> | |
| <canvas id="canvas" width="100" height="100"></canvas> | |
| <script> | |
| var canvas = document.getElementById('canvas'); | |
| var ctx = canvas.getContext('2d'); | |
| // prepare imagedata | |
| ctx.fillStyle = "rgb(255, 0, 0)"; ctx.fillRect(0, 0, 100, 100); // red background | |
| ctx.fillStyle = "rgb(0, 255, 0)"; ctx.fillRect(10, 10, 10, 10); // inset green square | |
| var imageDataGreen = ctx.getImageData(10, 10, 10, 10); | |
| var imageDataRedWithInsetGreen = ctx.getImageData(0, 0, 30, 30); | |
| // clear canvas to dark green | |
| ctx.fillStyle = "rgb(0, 128, 0)"; | |
| ctx.fillRect(0, 0, 100, 100); | |
| // fill target locations with dark red | |
| ctx.fillStyle = "rgb(128, 0, 0)"; | |
| ctx.fillRect(0, 0, 10, 10); | |
| ctx.fillRect(40, 40, 10, 10); | |
| ctx.fillRect(80, 80, 10, 10); | |
| function repaintTest() | |
| { | |
| // patch up red squares with putImageData | |
| ctx.putImageData(imageDataGreen, 0, 0); | |
| ctx.putImageData(imageDataGreen, 40, 40); | |
| ctx.putImageData(imageDataRedWithInsetGreen, 70, 70, 10, 10, 10, 10); | |
| } | |
| window.onload = runRepaintTest; | |
| </script> | |
| </body> |