An identity matrix should be considered a pure translate matrix
Change-Id: I75e91797e8270f902f67bdd7bb526cccc23adc6b
diff --git a/libs/hwui/Matrix.h b/libs/hwui/Matrix.h
index af520bd..5116203 100644
--- a/libs/hwui/Matrix.h
+++ b/libs/hwui/Matrix.h
@@ -124,7 +124,7 @@
void loadOrtho(float left, float right, float bottom, float top, float near, float far);
- uint32_t getType() const;
+ uint8_t getType() const;
void multiply(const Matrix4& v) {
Matrix4 u;
@@ -135,13 +135,13 @@
void multiply(float v);
void translate(float x, float y) {
- if ((getType() & sGeometryMask) == kTypeTranslate) {
+ if ((getType() & sGeometryMask) <= kTypeTranslate) {
data[kTranslateX] += x;
data[kTranslateY] += y;
} else {
// Doing a translation will only affect the translate bit of the type
// Save the type
- uint32_t type = mType;
+ uint8_t type = mType;
Matrix4 u;
u.loadTranslate(x, y, 0.0f);
@@ -202,7 +202,7 @@
static const Matrix4& identity();
private:
- mutable uint32_t mType;
+ mutable uint8_t mType;
inline float get(int i, int j) const {
return data[i * 4 + j];
@@ -212,7 +212,7 @@
data[i * 4 + j] = v;
}
- uint32_t getGeometryType() const;
+ uint8_t getGeometryType() const;
}; // class Matrix4