mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-30 11:07:29 +09:00
Issue #2483 - Slight adjustments for allowing addPath with DOMMatrix
This commit is contained in:
parent
39f5c51c10
commit
9ca2104248
2 changed files with 53 additions and 0 deletions
|
|
@ -117,6 +117,17 @@ ValidateAndFixupMatrixInit(DOMMatrixInit& aMatrixInit, ErrorResult& aRv)
|
||||||
#undef Check3DField
|
#undef Check3DField
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
DOMMatrixReadOnly::SetDataFromMatrix2DInit(const DOMMatrix2DInit& aMatrixInit) {
|
||||||
|
MOZ_ASSERT(Is2D());
|
||||||
|
mMatrix2D->_11 = aMatrixInit.mM11.Value();
|
||||||
|
mMatrix2D->_12 = aMatrixInit.mM12.Value();
|
||||||
|
mMatrix2D->_21 = aMatrixInit.mM21.Value();
|
||||||
|
mMatrix2D->_22 = aMatrixInit.mM22.Value();
|
||||||
|
mMatrix2D->_31 = aMatrixInit.mM41.Value();
|
||||||
|
mMatrix2D->_32 = aMatrixInit.mM42.Value();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
DOMMatrixReadOnly::SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit)
|
DOMMatrixReadOnly::SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit)
|
||||||
{
|
{
|
||||||
|
|
@ -149,6 +160,34 @@ DOMMatrixReadOnly::SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
already_AddRefed<DOMMatrixReadOnly> DOMMatrixReadOnly::FromMatrix(
|
||||||
|
nsISupports* aParent, const DOMMatrix2DInit& aMatrixInit,
|
||||||
|
ErrorResult& aRv) {
|
||||||
|
DOMMatrix2DInit matrixInit(aMatrixInit);
|
||||||
|
if (!ValidateAndFixupMatrix2DInit(matrixInit, aRv)) {
|
||||||
|
return nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
RefPtr<DOMMatrixReadOnly> matrix =
|
||||||
|
new DOMMatrixReadOnly(aParent, /* is2D */ true);
|
||||||
|
matrix->SetDataFromMatrix2DInit(matrixInit);
|
||||||
|
return matrix.forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
already_AddRefed<DOMMatrixReadOnly> DOMMatrixReadOnly::FromMatrix(
|
||||||
|
nsISupports* aParent, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv) {
|
||||||
|
DOMMatrixInit matrixInit(aMatrixInit);
|
||||||
|
if (!ValidateAndFixupMatrixInit(matrixInit, aRv)) {
|
||||||
|
return nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
RefPtr<DOMMatrixReadOnly> rval =
|
||||||
|
new DOMMatrixReadOnly(aParent, matrixInit.mIs2D.Value());
|
||||||
|
rval->SetDataFromMatrixInit(matrixInit);
|
||||||
|
return rval.forget();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
already_AddRefed<DOMMatrixReadOnly>
|
already_AddRefed<DOMMatrixReadOnly>
|
||||||
DOMMatrixReadOnly::FromMatrix(const GlobalObject& aGlobal, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv)
|
DOMMatrixReadOnly::FromMatrix(const GlobalObject& aGlobal, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ class DOMPoint;
|
||||||
class StringOrUnrestrictedDoubleSequence;
|
class StringOrUnrestrictedDoubleSequence;
|
||||||
struct DOMPointInit;
|
struct DOMPointInit;
|
||||||
struct DOMMatrixInit;
|
struct DOMMatrixInit;
|
||||||
|
struct DOMMatrix2DInit;
|
||||||
|
|
||||||
class DOMMatrixReadOnly : public nsWrapperCache
|
class DOMMatrixReadOnly : public nsWrapperCache
|
||||||
{
|
{
|
||||||
|
|
@ -57,6 +58,12 @@ public:
|
||||||
nsISupports* GetParentObject() const { return mParent; }
|
nsISupports* GetParentObject() const { return mParent; }
|
||||||
virtual JSObject* WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto) override;
|
virtual JSObject* WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto) override;
|
||||||
|
|
||||||
|
static already_AddRefed<DOMMatrixReadOnly>
|
||||||
|
FromMatrix(nsISupports* aParent, const DOMMatrix2DInit& aMatrixInit, ErrorResult& aRv);
|
||||||
|
|
||||||
|
static already_AddRefed<DOMMatrixReadOnly>
|
||||||
|
FromMatrix(nsISupports* aParent, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv);
|
||||||
|
|
||||||
static already_AddRefed<DOMMatrixReadOnly>
|
static already_AddRefed<DOMMatrixReadOnly>
|
||||||
FromMatrix(const GlobalObject& aGlobal, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv);
|
FromMatrix(const GlobalObject& aGlobal, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv);
|
||||||
|
|
||||||
|
|
@ -207,6 +214,12 @@ public:
|
||||||
ErrorResult& aRv) const;
|
ErrorResult& aRv) const;
|
||||||
void Stringify(nsAString& aResult);
|
void Stringify(nsAString& aResult);
|
||||||
bool WriteStructuredClone(JSStructuredCloneWriter* aWriter) const;
|
bool WriteStructuredClone(JSStructuredCloneWriter* aWriter) const;
|
||||||
|
const gfx::Matrix* GetInternal2D() const {
|
||||||
|
if (Is2D()) {
|
||||||
|
return mMatrix2D;
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
nsCOMPtr<nsISupports> mParent;
|
nsCOMPtr<nsISupports> mParent;
|
||||||
|
|
@ -220,6 +233,7 @@ protected:
|
||||||
* where all of its members are properly defined.
|
* where all of its members are properly defined.
|
||||||
* The init dictionary's dimension must match the matrix one.
|
* The init dictionary's dimension must match the matrix one.
|
||||||
*/
|
*/
|
||||||
|
void SetDataFromMatrix2DInit(const DOMMatrix2DInit& aMatrixInit);
|
||||||
void SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit);
|
void SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit);
|
||||||
|
|
||||||
DOMMatrixReadOnly* SetMatrixValue(const nsAString& aTransformList, ErrorResult& aRv);
|
DOMMatrixReadOnly* SetMatrixValue(const nsAString& aTransformList, ErrorResult& aRv);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue