<!DOCTYPE html>
<title>Canvas test: 2d.transformation.setTransform.skewed</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.transformation.html">transformation</a>.<a href="index.2d.transformation.setTransform.html">setTransform</a>.skewed</h1>
<p class="desc"></p>

<div class="refs">Spec references:
<ul>
<li><a href="../annotated-spec/canvas.html#testrefs.2d.transformation.setTransform">2d.transformation.setTransform</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) {

// Create green with a red square ring inside it
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#f00';
ctx.fillRect(20, 10, 60, 30);
ctx.fillStyle = '#0f0';
ctx.fillRect(40, 20, 20, 10);

// Draw a skewed shape to fill that gap, to make sure it is aligned correctly
ctx.setTransform(1,4, 2,3, 5,6);
// Post-transform coordinates:
//   [[20,10],[80,10],[80,40],[20,40],[20,10],[40,20],[40,30],[60,30],[60,20],[40,20],[20,10]];
// Hence pre-transform coordinates:
var pts=[[-7.4,11.2],[-43.4,59.2],[-31.4,53.2],[4.6,5.2],[-7.4,11.2],
         [-15.4,25.2],[-11.4,23.2],[-23.4,39.2],[-27.4,41.2],[-15.4,25.2],
         [-7.4,11.2]];
ctx.beginPath();
ctx.moveTo(pts[0][0], pts[0][1]);
for (var i = 0; i < pts.length; ++i)
    ctx.lineTo(pts[i][0], pts[i][1]);
ctx.fill();
_assertPixel(canvas, 21,11, 0,255,0,255, "21,11", "0,255,0,255");
_assertPixel(canvas, 79,11, 0,255,0,255, "79,11", "0,255,0,255");
_assertPixel(canvas, 21,39, 0,255,0,255, "21,39", "0,255,0,255");
_assertPixel(canvas, 79,39, 0,255,0,255, "79,39", "0,255,0,255");
_assertPixel(canvas, 39,19, 0,255,0,255, "39,19", "0,255,0,255");
_assertPixel(canvas, 61,19, 0,255,0,255, "61,19", "0,255,0,255");
_assertPixel(canvas, 39,31, 0,255,0,255, "39,31", "0,255,0,255");
_assertPixel(canvas, 61,31, 0,255,0,255, "61,31", "0,255,0,255");


});
</script>

