Unify (Offscreen)CanvasRenderingContext2d and make PaintRenderingContext2D standalone (#35619)

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
Samson 2025-02-23 17:31:06 +01:00 committed by GitHub
parent 6199099d12
commit 1d7bb1337d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 237 additions and 290 deletions

View file

@ -11,6 +11,7 @@ use script_layout_interface::{HTMLCanvasData, HTMLCanvasDataSource};
use crate::dom::bindings::codegen::UnionTypes::HTMLCanvasElementOrOffscreenCanvas;
use crate::dom::bindings::inheritance::Castable;
use crate::dom::htmlcanvaselement::HTMLCanvasElement;
use crate::dom::node::{Node, NodeDamage};
pub(crate) trait LayoutCanvasRenderingContextHelpers {
@ -74,4 +75,11 @@ impl HTMLCanvasElementOrOffscreenCanvas {
HTMLCanvasElementOrOffscreenCanvas::OffscreenCanvas(canvas) => canvas.get_size(),
}
}
pub(crate) fn canvas(&self) -> Option<&HTMLCanvasElement> {
match self {
HTMLCanvasElementOrOffscreenCanvas::HTMLCanvasElement(canvas) => Some(canvas),
HTMLCanvasElementOrOffscreenCanvas::OffscreenCanvas(canvas) => canvas.placeholder(),
}
}
}