File: 2d.layer.non-invertible-matrix.shadow.html

package info (click to toggle)
thunderbird 1%3A140.4.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,609,432 kB
  • sloc: cpp: 7,672,442; javascript: 5,901,613; ansic: 3,898,954; python: 1,413,343; xml: 653,997; asm: 462,286; java: 180,927; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (42 lines) | stat: -rw-r--r-- 1,437 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<meta charset="UTF-8">
<link rel="match" href="2d.layer.non-invertible-matrix.shadow-expected.html">
<title>Canvas test: 2d.layer.non-invertible-matrix.shadow</title>
<h1>2d.layer.non-invertible-matrix.shadow</h1>
<p class="desc">Test drawing layers when the transform is not invertible.</p>
<canvas id="canvas" width="200" height="200">
  <p class="fallback">FAIL (fallback content)</p>
</canvas>
<script>
  const canvas = document.getElementById("canvas");
  const ctx = canvas.getContext('2d');

  ctx.fillStyle = 'blue';
  ctx.fillRect(30, 30, 50, 50);

  // Anything below will be non-rasterizable.
  ctx.scale(1, 0);

  ctx.shadowOffsetX = 0;
  ctx.shadowOffsetY = 20;
  ctx.shadowColor = 'rgba(255, 165, 0, 0.6)';

  // Open the layer with a non-invertible matrix. The whole layer will be
  // non-rasterizable.
  ctx.beginLayer();

  // Because the transform is global, the matrix is still non-invertible.
  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
  ctx.fillRect(40, 70, 50, 50);

  // Set a valid matrix in the middle of the layer. This makes the global
  // matrix invertible again, but because because the layer was opened with a
  // non-invertible matrix, the whole layer remains non-rasterizable.
  ctx.setTransform(1, 0, 0, 1, 0, 0);

  ctx.fillStyle = 'green';
  ctx.fillRect(70, 40, 50, 50);

  ctx.endLayer();
</script>