| /* |
| * Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @description This tests canvas full arc fill with nonzero winding rule. |
| * Eight green concentric thick circumferences should be displayed. |
| */ |
| import "dart:html"; |
| import "dart:math" as Math; |
| import "../../testcommon.dart"; |
| |
| main() { |
| var canvas = document.createElement('canvas'); |
| document.body.append(canvas); |
| canvas.setAttribute('width', '300'); |
| canvas.setAttribute('height', '150'); |
| var ctx = canvas.getContext('2d'); |
| |
| var r; |
| var anticlockwise = true; |
| ctx.beginPath(); |
| for (r = 200; r >= 10; r -= 10) { |
| ctx.moveTo(150 + r, 75); |
| ctx.arc(150, 75, r, 0, Math.PI*2, anticlockwise); |
| ctx.closePath(); |
| anticlockwise = !anticlockwise; |
| } |
| ctx.fillStyle = 'rgba(0, 255, 0, 1)'; |
| ctx.strokeStyle = 'rgba(0, 255, 0, 1)'; |
| ctx.fill(); |
| ctx.stroke(); |
| |
| var imageData = ctx.getImageData(297, 75, 1, 1); |
| var data = imageData.data; |
| shouldBe(data[0], 0); |
| shouldBe(data[1], 0); |
| shouldBe(data[2], 0); |
| |
| imageData = ctx.getImageData(285, 5, 1, 1); |
| data = imageData.data; |
| shouldBe(data[0], 0); |
| shouldBe(data[1], 255); |
| shouldBe(data[2], 0); |
| |
| imageData = ctx.getImageData(277, 75, 1, 1); |
| data = imageData.data; |
| shouldBe(data[0], 0); |
| shouldBe(data[1], 0); |
| shouldBe(data[2], 0); |
| } |