blob: 0082fdf8343c516797bc611700fdc573dce3f1c0 [file] [log] [blame]
<!DOCTYPE html>
<link rel="match" href="canvas-filter-object-drop-shadow-expected.html">
<p class="desc"> Test to ensure CanvasFilter supports dropShadow.</p>
<canvas id="canvas" width="620" height="320"></canvas>
<script>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'teal';
ctx.fillRect(0, 0, canvas.width, 50);
ctx.fillRect(0, 100, canvas.width, 50);
ctx.fillRect(0, 200, canvas.width, 50);
ctx.fillStyle = 'crimson';
// Parameter defaults.
ctx.filter = new CanvasFilter({filter: "dropShadow"});
ctx.fillRect(10, 10, 80, 80);
// All parameters specified.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 15, dy: 10, stdDeviation: 5, floodColor: "purple",
floodOpacity: 0.7});
ctx.fillRect(110, 10, 80, 80);
// Named color.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 10, dy: 10, stdDeviation: 3,
floodColor: "purple"});
ctx.fillRect(10, 110, 80, 80);
// System color.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 15, dy: 10, stdDeviation: 3,
floodColor: "LinkText"});
ctx.fillRect(110, 110, 80, 80);
// No blur.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 10, dy: 15, stdDeviation: 0,
floodColor: "purple"});
ctx.fillRect(210, 110, 80, 80);
// Numerical color.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 9, dy: 12, stdDeviation: 3,
floodColor: "rgba(20, 50, 130, 1)"});
ctx.fillRect(310, 110, 80, 80);
// Transparent floodColor.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 15, dy: 10, stdDeviation: 3,
floodColor: "rgba(20, 50, 130, 0.7)"});
ctx.fillRect(410, 110, 80, 80);
// Transparent floodColor and floodOpacity.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: 15, dy: 10, stdDeviation: 3,
floodColor: "rgba(20, 50, 130, 0.7)", floodOpacity: 0.7});
ctx.fillRect(510, 110, 80, 80);
// Degenerate parameter values.
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: [-5], dy: [], stdDeviation: null,
floodColor: "purple", floodOpacity: [2]});
ctx.fillRect(10, 210, 80, 80);
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: null, dy: '5', stdDeviation: -5,
floodColor: "purple", floodOpacity: '0.8'});
ctx.fillRect(110, 210, 80, 80);
ctx.filter = new CanvasFilter(
{filter: "dropShadow", dx: true, dy: ['10'], stdDeviation: false,
floodColor: "purple", floodOpacity: ['0.4']});
ctx.fillRect(210, 210, 80, 80);
</script>