| <!DOCTYPE html> |
| <!-- Test based on that found at |
| http://philip.html5.org/tests/canvas/suite/tests/index.2d.composite.globalAlpha.html |
| --> |
| <title>Test that canvas2d context fills with the globalAlpha property when applied</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <canvas width="100" height="100"></canvas> |
| <script> |
| test(function() { |
| function assertPixelApprox(ctx, x, y, r, g, b, a, pos, colour, tolerance) { |
| var imgdata = ctx.getImageData(x, y, 1, 1); |
| var diff = Math.max(Math.abs(r-imgdata.data[0]), Math.abs(g-imgdata.data[1]), Math.abs(b-imgdata.data[2]), Math.abs(a-imgdata.data[3])); |
| assert_less_than_equal(diff, tolerance); |
| } |
| var ctx = document.querySelector('canvas').getContext('2d'); |
| ctx.fillStyle = '#0f0'; |
| ctx.fillRect(0, 0, 100, 100); |
| ctx.globalAlpha = 0.01; // avoid any potential alpha = 0 optimisations. |
| ctx.beginPath(); |
| ctx.fillStyle = '#f00'; |
| ctx.rect(0, 0, 100, 100); |
| ctx.fill(); |
| assertPixelApprox(ctx, 50, 25, 2, 253, 0, 255, "50,25", "2,253,0,255", 2); |
| }); |
| </script> |