<!DOCTYPE html>
<title>Canvas test: 2d.drawImage.3arg</title>
<meta name="author" content="Philip Taylor">
<script src="../common/canvas-tests.js"></script>
<link rel="stylesheet" href="../common/canvas-tests.css">
<body class="show_output">

<h1><a href="index.2d.html">2d</a>.<a href="index.2d.drawImage.html">drawImage</a>.3arg</h1>
<p class="desc"></p>

<div class="refs">Spec references:
<ul>
<li><a href="../annotated-spec/canvas.html#testrefs.2d.drawImage.defaultsource">2d.drawImage.defaultsource</a>
<li><a href="../annotated-spec/canvas.html#testrefs.2d.drawImage.defaultdest">2d.drawImage.defaultdest</a>
</ul>
</div>

<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
<p class="output expectedtext">Expected output:<p><img src="../resources/green-100x50.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
_addTest(function(canvas, ctx) {

ctx.drawImage(document.getElementById('green.png'), 0, 0);
ctx.drawImage(document.getElementById('red.png'), -100, 0);
ctx.drawImage(document.getElementById('red.png'), 100, 0);
ctx.drawImage(document.getElementById('red.png'), 0, -50);
ctx.drawImage(document.getElementById('red.png'), 0, 50);

_assertPixelApprox(canvas, 0,0, 0,255,0,255, "0,0", "0,255,0,255", 2);
_assertPixelApprox(canvas, 99,0, 0,255,0,255, "99,0", "0,255,0,255", 2);
_assertPixelApprox(canvas, 0,49, 0,255,0,255, "0,49", "0,255,0,255", 2);
_assertPixelApprox(canvas, 99,49, 0,255,0,255, "99,49", "0,255,0,255", 2);


});
</script>
<img src="../resources/red.png" id="red.png" class="resource">
<img src="../resources/green.png" id="green.png" class="resource">

