1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:27:43 +00:00

LibWeb: Add DOMMatrix and DOMMatrixReadOnly fromMatrix

This commit is contained in:
Bastiaan van der Plaat 2023-09-03 12:37:29 +02:00 committed by Andreas Kling
parent bbf66ea055
commit ff1bcc694d
8 changed files with 35 additions and 2 deletions

View file

@ -73,6 +73,12 @@ void DOMMatrix::initialize(JS::Realm& realm)
set_prototype(&Bindings::ensure_web_prototype<Bindings::DOMMatrixPrototype>(realm, "DOMMatrix"));
}
// https://drafts.fxtf.org/geometry/#dom-dommatrix-frommatrix
WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMMatrix>> DOMMatrix::from_matrix(JS::VM& vm, DOMMatrixInit other)
{
return create_from_dom_matrix_2d_init(*vm.current_realm(), other);
}
// https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-m11
void DOMMatrix::set_m11(double value)
{

View file

@ -21,6 +21,8 @@ public:
virtual ~DOMMatrix() override;
static WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMMatrix>> from_matrix(JS::VM&, DOMMatrixInit other = {});
void set_m11(double value);
void set_m12(double value);
void set_m13(double value);

View file

@ -6,7 +6,7 @@
interface DOMMatrix : DOMMatrixReadOnly {
constructor(optional (DOMString or sequence<unrestricted double>) init);
// FIXME: [NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other = {});
[NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other = {});
// FIXME: [NewObject] static DOMMatrix fromFloat32Array(Float32Array array32);
// FIXME: [NewObject] static DOMMatrix fromFloat64Array(Float64Array array64);

View file

@ -180,6 +180,12 @@ void DOMMatrixReadOnly::initialize_from_create_3d_matrix(double m11, double m12,
// 4. Return matrix
}
// https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-frommatrix
WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMMatrixReadOnly>> DOMMatrixReadOnly::from_matrix(JS::VM& vm, DOMMatrixInit& other)
{
return create_from_dom_matrix_2d_init(*vm.current_realm(), other);
}
// https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-isidentity
bool DOMMatrixReadOnly::is_identity() const
{

View file

@ -53,6 +53,8 @@ public:
virtual ~DOMMatrixReadOnly() override;
static WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMMatrixReadOnly>> from_matrix(JS::VM&, DOMMatrixInit& other);
// https://drafts.fxtf.org/geometry/#dommatrix-attributes
double m11() const { return m_matrix.elements()[0][0]; }
double m12() const { return m_matrix.elements()[1][0]; }

View file

@ -6,7 +6,7 @@
interface DOMMatrixReadOnly {
constructor(optional (DOMString or sequence<unrestricted double>) init);
// FIXME: [NewObject] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other = {});
[NewObject] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other = {});
// FIXME: [NewObject] static DOMMatrixReadOnly fromFloat32Array(Float32Array array32);
// FIXME: [NewObject] static DOMMatrixReadOnly fromFloat64Array(Float64Array array64);