mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
canvas: Add CanvasTransform 'setTransform(transform)' method (#37692)
Follow the HTML canvas specification and add missing 'setTransform(transform)' method to CanvasTransform interface. https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform-matrix The third-party WebIDL doesn't support different extended attributes on different overloads of methods, so 'Throws' attribute was added to another 'setTransform(...)' method. https://bugzilla.mozilla.org/show_bug.cgi?id=1020975 Testing: Improvements in the tests - css/geometry/DOMMatrix* - html/canvas/element/transformations/2d.transformation.setTransform.multiple.html - html/canvas/offscreen/transformations/2d.transformation.setTransform.multiple New failing tests due to disabled 'paint worklet' feature - css/css-paint-api/setTransform-00*.https.html Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
parent
64259de1f7
commit
59b99de90a
17 changed files with 226 additions and 362 deletions
|
@ -18,6 +18,7 @@ use crate::dom::bindings::codegen::Bindings::CanvasRenderingContext2DBinding::{
|
|||
CanvasDirection, CanvasFillRule, CanvasImageSource, CanvasLineCap, CanvasLineJoin,
|
||||
CanvasRenderingContext2DMethods, CanvasTextAlign, CanvasTextBaseline,
|
||||
};
|
||||
use crate::dom::bindings::codegen::Bindings::DOMMatrixBinding::DOMMatrix2DInit;
|
||||
use crate::dom::bindings::codegen::UnionTypes::{
|
||||
HTMLCanvasElementOrOffscreenCanvas, StringOrCanvasGradientOrCanvasPattern,
|
||||
};
|
||||
|
@ -235,9 +236,15 @@ impl CanvasRenderingContext2DMethods<crate::DomTypeHolder> for CanvasRenderingCo
|
|||
self.canvas_state.get_transform(&self.global(), can_gc)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform
|
||||
fn SetTransform(&self, a: f64, b: f64, c: f64, d: f64, e: f64, f: f64) {
|
||||
self.canvas_state.set_transform(a, b, c, d, e, f)
|
||||
/// <https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform>
|
||||
fn SetTransform(&self, a: f64, b: f64, c: f64, d: f64, e: f64, f: f64) -> ErrorResult {
|
||||
self.canvas_state.set_transform(a, b, c, d, e, f);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// <https://html.spec.whatwg.org/multipage/#dom-context-2d-settransform-matrix>
|
||||
fn SetTransform_(&self, transform: &DOMMatrix2DInit) -> ErrorResult {
|
||||
self.canvas_state.set_transform_(transform)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-resettransform
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue