Changed the variants `canvas_traits::canvas::Canvas2dMsg::DrawEmptyImage` and
`canvas_traits::canvas::Canvas2dMsg::DrawImageInOther` to use
`euclid::default::Size2D<u32>` instead of `euclid::default::Size2D<f64>`. Every
other change made in this commit is either:
- of similar nature, and is the minimum that would allow compilation
- resolving lints triggered by the former
This commit includes changes to the following components:
- canvas
- script
- shared/canvas
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Changed the two instances of `euclid::default::Size2D<u64>` in
`servo/components/script/canvas_context.rs` and
`servo/components/shared/snapshot/lib.rs` that were outlined as the bare minimum
in "Make canvas/context/snapshot size be u32 everywhere" to
`euclid::default::Size2D<u32>`. Every other change made in this commit is
either:
- of similar nature, and is the minimum that would allow compilation
- resolving lints triggered by the former
More might be needed to complete the issue, but I feel like this is a good
starting point.
This commit includes changes to the following components:
- canvas
- pixels
- script
- shared/canvas
- shared/snapshot
Signed-off-by: hashcatHitman <155700084+hashcatHitman@users.noreply.github.com>
Each canvas context returns snapshot instead of just raw bytes. This
allows as to hold off conversions (BGRA <-> RGBA, (un)premultiply) to
when/if they are actually needed. For example when loading snapshot into
webgl we can load both RGBA and BGRA so no conversion is really needed.
Currently whole thing is designed to be able to be extend on
https://github.com/servo/ipc-channel/pull/356, to make less copies.
Hence some commented out code.
Fixes#35759
There are tests for these changes in WPT
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Create `update_rendering` in `CanvasState` instead of manually updating in layout
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Mark as dirty and do flushes
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup rebase
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update components/script/dom/htmlcanvaselement.rs
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This is the start of the organization of types that are in their own
crates in order to break dependency cycles between other crates. The
idea here is that putting these packages into their own directory is the
first step toward cleaning them up. They have grown organically and it
is difficult to explain to new folks where to put new shared types. Many
of these crates contain more than traits or don't contain traits at all.
Notably, `script_traits` isn't touched because it is vendored from
Gecko. Eventually this will move to `third_party`.
2023-11-03 15:38:18 +00:00
Renamed from components/canvas_traits/canvas.rs (Browse further)