remove some memory-based methods, add rc()
Change-Id: I44d6f67dcd3d042127ad20ebdaa332e94f1b0829
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266216
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index fcba8f7..cfb126f 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -33,6 +33,7 @@
#include "src/core/SkImageFilter_Base.h"
#include "src/core/SkLatticeIter.h"
#include "src/core/SkMSAN.h"
+#include "src/core/SkMatrixPriv.h"
#include "src/core/SkMatrixUtils.h"
#include "src/core/SkPaintPriv.h"
#include "src/core/SkRasterClip.h"
@@ -1516,7 +1517,7 @@
}
void SkCanvas::experimental_concat44(const SkM44& m) {
- this->experimental_concat44(m.asColMajor());
+ this->experimental_concat44(SkMatrixPriv::M44ColMajor(m));
}
void SkCanvas::internalSetMatrix(const SkMatrix& matrix) {
diff --git a/src/core/SkCanvasMatrix.h b/src/core/SkCanvasMatrix.h
index 4d83836..bc25a63 100644
--- a/src/core/SkCanvasMatrix.h
+++ b/src/core/SkCanvasMatrix.h
@@ -23,16 +23,16 @@
operator SkMatrix() const { return this->asM33(); }
// the legacy check was just for the 3x3 portion, so we only check those
bool isScaleTranslate() const {
- return this->atColMajor(1) == 0 && this->atColMajor(3) == 0 &&
- this->atColMajor(4) == 0 && this->atColMajor(7) == 0 &&
- this->atColMajor(15) == 1;
+ return this->rc(1,0) == 0 && this->rc(3,0) == 0 &&
+ this->rc(0,1) == 0 && this->rc(3,1) == 0 &&
+ this->rc(3,3) == 1;
}
bool rectStaysRect() const { return this->asM33().rectStaysRect(); }
- float getScaleX() const { return this->atColMajor(0); }
- float getScaleY() const { return this->atColMajor(5); }
- float getTranslateX() const { return this->atColMajor(12); }
- float getTranslateY() const { return this->atColMajor(13); }
+ float getScaleX() const { return this->rc(0,0); }
+ float getScaleY() const { return this->rc(1,1); }
+ float getTranslateX() const { return this->rc(0,3); }
+ float getTranslateY() const { return this->rc(1,3); }
bool mapRect(SkRect* dst, const SkRect& src) { return this->asM33().mapRect(dst, src); }
};
diff --git a/src/core/SkMatrixPriv.h b/src/core/SkMatrixPriv.h
index 3c65eba..72e8739 100644
--- a/src/core/SkMatrixPriv.h
+++ b/src/core/SkMatrixPriv.h
@@ -10,6 +10,7 @@
#include "include/core/SkFilterQuality.h"
#include "include/core/SkMatrix.h"
+#include "include/private/SkM44.h"
#include "include/private/SkNx.h"
#include "src/core/SkPointPriv.h"
@@ -158,6 +159,8 @@
static bool CheapEqual(const SkMatrix& a, const SkMatrix& b) {
return &a == &b || 0 == memcmp(a.fMat, b.fMat, sizeof(a.fMat));
}
+
+ static const SkScalar* M44ColMajor(const SkM44& m) { return m.fMat; }
};
#endif
diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
index 3cac677..d3b922b 100644
--- a/src/core/SkRecordDraw.cpp
+++ b/src/core/SkRecordDraw.cpp
@@ -93,7 +93,7 @@
}
DRAW(SetMatrix, setMatrix(SkMatrix::Concat(fInitialCTM, r.matrix)));
-DRAW(Concat44, experimental_concat44(r.matrix.asColMajor()));
+DRAW(Concat44, experimental_concat44(r.matrix));
DRAW(Concat, concat(r.matrix));
DRAW(Translate, translate(r.dx, r.dy));
DRAW(Scale, scale(r.sx, r.sy));
diff --git a/src/core/SkYUVMath.cpp b/src/core/SkYUVMath.cpp
index 67f4a13..fe5cc9c 100644
--- a/src/core/SkYUVMath.cpp
+++ b/src/core/SkYUVMath.cpp
@@ -116,23 +116,23 @@
// input: ignore the bottom row
// output: inject identity row/column for alpha
static void matrix44_to_colormatrix(const SkM44& src, float dst[20]) {
- dst[0] = src.atColMajor(0);
- dst[1] = src.atColMajor(4);
- dst[2] = src.atColMajor(8);
+ dst[0] = src.rc(0,0);
+ dst[1] = src.rc(0,1);
+ dst[2] = src.rc(0,2);
dst[3] = 0;
- dst[4] = src.atColMajor(12); // tx
+ dst[4] = src.rc(0,3); // tx
- dst[5] = src.atColMajor(1);
- dst[6] = src.atColMajor(5);
- dst[7] = src.atColMajor(9);
+ dst[5] = src.rc(1,0);
+ dst[6] = src.rc(1,1);
+ dst[7] = src.rc(1,2);
dst[8] = 0;
- dst[9] = src.atColMajor(13); // ty
+ dst[9] = src.rc(1,3); // ty
- dst[10] = src.atColMajor(2);
- dst[11] = src.atColMajor(6);
- dst[12] = src.atColMajor(10);
+ dst[10] = src.rc(2,0);
+ dst[11] = src.rc(2,1);
+ dst[12] = src.rc(2,2);
dst[13] = 0;
- dst[14] = src.atColMajor(14); // tz
+ dst[14] = src.rc(2,3); // tz
dst[15] = dst[16] = dst[17] = dst[19] = 0;
dst[18] = 1;
diff --git a/src/gpu/glsl/GrGLSLProgramDataManager.cpp b/src/gpu/glsl/GrGLSLProgramDataManager.cpp
index 141ba65..d73eebc 100644
--- a/src/gpu/glsl/GrGLSLProgramDataManager.cpp
+++ b/src/gpu/glsl/GrGLSLProgramDataManager.cpp
@@ -9,6 +9,7 @@
#include "include/core/SkMatrix.h"
#include "include/private/SkM44.h"
+#include "src/core/SkMatrixPriv.h"
void GrGLSLProgramDataManager::setSkMatrix(UniformHandle u, const SkMatrix& matrix) const {
float mt[] = {
@@ -26,5 +27,5 @@
}
void GrGLSLProgramDataManager::setSkM44(UniformHandle u, const SkM44& matrix) const {
- this->setMatrix4f(u, matrix.asColMajor());
+ this->setMatrix4f(u, SkMatrixPriv::M44ColMajor(matrix));
}