diff options
-rw-r--r-- | include/core/SkMatrix.h | 12 | ||||
-rw-r--r-- | src/core/SkMatrix.cpp | 37 | ||||
-rw-r--r-- | src/core/SkMatrixPriv.h | 12 | ||||
-rw-r--r-- | src/xps/SkXPSDevice.cpp | 13 | ||||
-rw-r--r-- | tests/MatrixTest.cpp | 4 |
5 files changed, 38 insertions, 40 deletions
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h index 863d470dc4..6e9f421264 100644 --- a/include/core/SkMatrix.h +++ b/include/core/SkMatrix.h @@ -126,6 +126,18 @@ public: kMPersp2, }; + /** Affine arrays are in column major order + because that's how PDF and XPS like it. + */ + enum { + kAScaleX, + kASkewY, + kASkewX, + kAScaleY, + kATransX, + kATransY, + }; + SkScalar operator[](int index) const { SkASSERT((unsigned)index < 9); return fMat[index]; diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp index 45f77344fb..0ed9565fb9 100644 --- a/src/core/SkMatrix.cpp +++ b/src/core/SkMatrix.cpp @@ -7,7 +7,6 @@ #include "SkFloatBits.h" #include "SkMatrix.h" -#include "SkMatrixPriv.h" #include "SkNx.h" #include "SkPaint.h" #include "SkRSXform.h" @@ -76,12 +75,12 @@ void SkMatrix::set9(const SkScalar buffer[]) { } void SkMatrix::setAffine(const SkScalar buffer[]) { - fMat[kMScaleX] = buffer[SkMatrixPriv::kAScaleX]; - fMat[kMSkewX] = buffer[SkMatrixPriv::kASkewX]; - fMat[kMTransX] = buffer[SkMatrixPriv::kATransX]; - fMat[kMSkewY] = buffer[SkMatrixPriv::kASkewY]; - fMat[kMScaleY] = buffer[SkMatrixPriv::kAScaleY]; - fMat[kMTransY] = buffer[SkMatrixPriv::kATransY]; + fMat[kMScaleX] = buffer[kAScaleX]; + fMat[kMSkewX] = buffer[kASkewX]; + fMat[kMTransX] = buffer[kATransX]; + fMat[kMSkewY] = buffer[kASkewY]; + fMat[kMScaleY] = buffer[kAScaleY]; + fMat[kMTransY] = buffer[kATransY]; fMat[kMPersp0] = 0; fMat[kMPersp1] = 0; fMat[kMPersp2] = 1; @@ -779,12 +778,12 @@ static double sk_inv_determinant(const float mat[9], int isPerspective) { } void SkMatrix::SetAffineIdentity(SkScalar affine[6]) { - affine[SkMatrixPriv::kAScaleX] = 1; - affine[SkMatrixPriv::kASkewY] = 0; - affine[SkMatrixPriv::kASkewX] = 0; - affine[SkMatrixPriv::kAScaleY] = 1; - affine[SkMatrixPriv::kATransX] = 0; - affine[SkMatrixPriv::kATransY] = 0; + affine[kAScaleX] = 1; + affine[kASkewY] = 0; + affine[kASkewX] = 0; + affine[kAScaleY] = 1; + affine[kATransX] = 0; + affine[kATransY] = 0; } bool SkMatrix::asAffine(SkScalar affine[6]) const { @@ -792,12 +791,12 @@ bool SkMatrix::asAffine(SkScalar affine[6]) const { return false; } if (affine) { - affine[SkMatrixPriv::kAScaleX] = this->fMat[kMScaleX]; - affine[SkMatrixPriv::kASkewY] = this->fMat[kMSkewY]; - affine[SkMatrixPriv::kASkewX] = this->fMat[kMSkewX]; - affine[SkMatrixPriv::kAScaleY] = this->fMat[kMScaleY]; - affine[SkMatrixPriv::kATransX] = this->fMat[kMTransX]; - affine[SkMatrixPriv::kATransY] = this->fMat[kMTransY]; + affine[kAScaleX] = this->fMat[kMScaleX]; + affine[kASkewY] = this->fMat[kMSkewY]; + affine[kASkewX] = this->fMat[kMSkewX]; + affine[kAScaleY] = this->fMat[kMScaleY]; + affine[kATransX] = this->fMat[kMTransX]; + affine[kATransY] = this->fMat[kMTransY]; } return true; } diff --git a/src/core/SkMatrixPriv.h b/src/core/SkMatrixPriv.h index e38a99751f..ee6f8a153d 100644 --- a/src/core/SkMatrixPriv.h +++ b/src/core/SkMatrixPriv.h @@ -13,18 +13,6 @@ class SkMatrixPriv { public: - /** Affine arrays are in column major order - because that's how PDF and XPS like it. - */ - enum { - kAScaleX, - kASkewY, - kASkewX, - kAScaleY, - kATransX, - kATransY, - }; - /** * Attempt to map the rect through the inverse of the matrix. If it is not invertible, * then this returns false and dst is unchanged. diff --git a/src/xps/SkXPSDevice.cpp b/src/xps/SkXPSDevice.cpp index 6f62f89b45..801b80c0b0 100644 --- a/src/xps/SkXPSDevice.cpp +++ b/src/xps/SkXPSDevice.cpp @@ -35,7 +35,6 @@ #include "SkImageEncoder.h" #include "SkImagePriv.h" #include "SkMaskFilter.h" -#include "SkMatrixPriv.h" #include "SkPaint.h" #include "SkPathEffect.h" #include "SkPathOps.h" @@ -520,12 +519,12 @@ HRESULT SkXPSDevice::createXpsTransform(const SkMatrix& matrix, return S_FALSE; } XPS_MATRIX rawXpsMatrix = { - SkScalarToFLOAT(affine[SkMatrixPriv::kAScaleX]), - SkScalarToFLOAT(affine[SkMatrixPriv::kASkewY]), - SkScalarToFLOAT(affine[SkMatrixPriv::kASkewX]), - SkScalarToFLOAT(affine[SkMatrixPriv::kAScaleY]), - SkScalarToFLOAT(affine[SkMatrixPriv::kATransX]), - SkScalarToFLOAT(affine[SkMatrixPriv::kATransY]), + SkScalarToFLOAT(affine[SkMatrix::kAScaleX]), + SkScalarToFLOAT(affine[SkMatrix::kASkewY]), + SkScalarToFLOAT(affine[SkMatrix::kASkewX]), + SkScalarToFLOAT(affine[SkMatrix::kAScaleY]), + SkScalarToFLOAT(affine[SkMatrix::kATransX]), + SkScalarToFLOAT(affine[SkMatrix::kATransY]), }; HRM(this->fXpsFactory->CreateMatrixTransform(&rawXpsMatrix, xpsTransform), "Could not create transform."); diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp index 3e20f0b765..6f7a14fdc7 100644 --- a/tests/MatrixTest.cpp +++ b/tests/MatrixTest.cpp @@ -6,7 +6,7 @@ */ #include "SkMath.h" -#include "SkMatrixPriv.h" +#include "SkMatrix.h" #include "SkMatrixUtils.h" #include "SkRandom.h" #include "Test.h" @@ -912,7 +912,7 @@ DEF_TEST(Matrix, reporter) { SkScalar affine[6]; REPORTER_ASSERT(reporter, mat.asAffine(affine)); - #define affineEqual(e) affine[SkMatrixPriv::kA##e] == mat.get(SkMatrix::kM##e) + #define affineEqual(e) affine[SkMatrix::kA##e] == mat.get(SkMatrix::kM##e) REPORTER_ASSERT(reporter, affineEqual(ScaleX)); REPORTER_ASSERT(reporter, affineEqual(SkewY)); REPORTER_ASSERT(reporter, affineEqual(SkewX)); |