| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <title>Canvas 2D Blit Test: Draw text then blit for hundreds of frames.</title> |
| <style type="text/css"> |
| .nomargin { |
| margin: 0px auto; |
| } |
| </style> |
| <script> |
| var g_swapsBeforeAck = 300; |
| var canvas; |
| var c2d; |
| |
| function main() |
| { |
| draw(); |
| waitForFinish(); |
| } |
| |
| function draw() |
| { |
| canvas = document.getElementById("c"); |
| c2d = canvas.getContext("2d"); |
| |
| |
| c2d.fillStyle = 'white'; |
| c2d.rect(0, 0, canvas.width, canvas.height); |
| c2d.fill(); |
| |
| c2d.fillStyle = 'red'; |
| c2d.strokeStyle = 'slateblue'; |
| c2d.lineWidth = 5; |
| |
| c2d.font = '30px Arial'; |
| c2d.fillText('The text should not be blurry!', 10, 100); // also: strokeText |
| c2d.fillStyle = 'green'; |
| c2d.fillText('The text should also not be blurry!', 300, 150); // also: strokeText |
| } |
| |
| function blit() |
| { |
| // Blit canvas to itself. |
| c2d.drawImage(canvas,0,0, canvas.width,canvas.height); |
| } |
| |
| function waitForFinish() |
| { |
| if (g_swapsBeforeAck == 0) { |
| domAutomationController.send("SUCCESS"); |
| } else { |
| blit(); |
| g_swapsBeforeAck--; |
| document.getElementById('container').style.zIndex = g_swapsBeforeAck + 1; |
| window.requestAnimationFrame(waitForFinish); |
| } |
| } |
| </script> |
| </head> |
| <body onload="main()"> |
| <div style="position:relative; width:800px; height:200px; background-color:black"> |
| </div> |
| <div id="container" style="position:absolute; top:0px; left:0px"> |
| <canvas id="c" width="800" height="200" class="nomargin"></canvas> |
| </div> |
| </body> |
| </html> |