mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb: Ensure drawImage() always uses the first image frame
This commit is contained in:
parent
2c78fd5b89
commit
f1571c4217
|
|
@ -136,10 +136,14 @@ WebIDL::ExceptionOr<void> CanvasRenderingContext2D::draw_image_internal(CanvasIm
|
|||
|
||||
auto bitmap = image.visit(
|
||||
[](GC::Root<HTMLImageElement> const& source) -> RefPtr<Gfx::ImmutableBitmap> {
|
||||
return source->immutable_bitmap();
|
||||
auto width = source->intrinsic_width().value_or({}).to_int();
|
||||
auto height = source->intrinsic_height().value_or({}).to_int();
|
||||
return source->default_image_bitmap_sized({ width, height });
|
||||
},
|
||||
[](GC::Root<SVG::SVGImageElement> const& source) -> RefPtr<Gfx::ImmutableBitmap> {
|
||||
return source->current_image_bitmap();
|
||||
auto width = source->intrinsic_width().value_or({}).to_int();
|
||||
auto height = source->intrinsic_height().value_or({}).to_int();
|
||||
return source->default_image_bitmap_sized({ width, height });
|
||||
},
|
||||
[](GC::Root<OffscreenCanvas> const& source) -> RefPtr<Gfx::ImmutableBitmap> { return Gfx::ImmutableBitmap::create(*source->bitmap()); },
|
||||
[](GC::Root<HTMLCanvasElement> const& source) -> RefPtr<Gfx::ImmutableBitmap> {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 1 tests
|
||||
|
||||
1 Pass
|
||||
Pass drawImage() of an animated GIF draws the first frame
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
|
||||
<meta charset="UTF-8">
|
||||
<title>Canvas test: 2d.drawImage.animated.gif</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.drawImage.animated.gif</h1>
|
||||
<p class="desc">drawImage() of an animated GIF draws the first frame</p>
|
||||
|
||||
|
||||
<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="../../../../images/green-100x50.png" class="output expected" id="expected" alt="">
|
||||
<ul id="d"></ul>
|
||||
<script>
|
||||
var t = async_test("drawImage() of an animated GIF draws the first frame");
|
||||
_addTest(function(canvas, ctx) {
|
||||
|
||||
deferTest();
|
||||
step_timeout(t.step_func_done(function () {
|
||||
ctx.drawImage(document.getElementById('anim-gr.gif'), 0, 0);
|
||||
_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2);
|
||||
}), 500);
|
||||
|
||||
});
|
||||
</script>
|
||||
<img src="../../../../images/anim-gr.gif" id="anim-gr.gif" class="resource">
|
||||
|
||||
BIN
Tests/LibWeb/Text/input/wpt-import/images/anim-gr.gif
Normal file
BIN
Tests/LibWeb/Text/input/wpt-import/images/anim-gr.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 241 B |
Loading…
Reference in New Issue
Block a user