Skip to content

Commit

Permalink
CanvasGradient addColorStop supports color-mix
Browse files Browse the repository at this point in the history
Bug: 327837697
Change-Id: I5f5b21c011fab15d81e196be0d7f2279a6e82ec2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5371273
Commit-Queue: Perry <[email protected]>
Reviewed-by: Aaron Krajeski <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1279417}
  • Loading branch information
perryuwang authored and chromium-wpt-export-bot committed Mar 28, 2024
1 parent 21726d3 commit 94d4057
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.gradient.colormix</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">

<h1>2d.gradient.colormix</h1>
<p class="desc">color-mix works as CanvasGradient color input</p>


<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>

<ul id="d"></ul>
<script>
var t = async_test("color-mix works as CanvasGradient color input");
_addTest(function(canvas, ctx) {

var g = ctx.createLinearGradient(0, 0, 100, 0);
g.addColorStop(0, '#f00');
g.addColorStop(1, 'color-mix(in srgb, #0f0, #00f)');
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
_assertPixelApprox(canvas, 25,25, 212,81,61,255, 3);
_assertPixelApprox(canvas, 50,25, 167,106,88,255, 3);
_assertPixelApprox(canvas, 75,25, 113,120,109,255, 3);

});
</script>

13 changes: 13 additions & 0 deletions html/canvas/tools/yaml-new/fill-and-stroke-styles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2108,3 +2108,16 @@
@assert ctx.strokeStyle === 'color(srgb 0.5 0 0.5)';
ctx.strokeStyle = "color-mix(in srgb, red, color(srgb 1 0 0))";
@assert ctx.strokeStyle === 'color(srgb 1 0 0)';
- name: 2d.gradient.colormix
desc: color-mix works as CanvasGradient color input
canvasType: ['HtmlCanvas']
code: |
var g = ctx.createLinearGradient(0, 0, 100, 0);
g.addColorStop(0, '#f00');
g.addColorStop(1, 'color-mix(in srgb, #0f0, #00f)');
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
@assert pixel 25,25 ==~ 212,81,61,255 +/- 3;
@assert pixel 50,25 ==~ 167,106,88,255 +/- 3;
@assert pixel 75,25 ==~ 113,120,109,255 +/- 3;

0 comments on commit 94d4057

Please sign in to comment.