Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6525763f authored by Mike Reed's avatar Mike Reed
Browse files

Use new canvas virtuals for m44

Test: make

Change-Id: I83b71fc69515458946b90e96db612c11ba963e98
parent 31952c36
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ X(Save)
X(Restore)
X(SaveLayer)
X(SaveBehind)
X(Concat44)
X(Concat)
X(SetMatrix)
X(Scale)
+8 −20
Original line number Diff line number Diff line
@@ -125,24 +125,18 @@ struct SaveBehind final : Op {
    }
};

struct Concat44 final : Op {
    static const auto kType = Type::Concat44;
    Concat44(const SkM44& m) : matrix(m) {}
    SkM44 matrix;
    void draw(SkCanvas* c, const SkMatrix&) const { c->concat(matrix); }
};
struct Concat final : Op {
    static const auto kType = Type::Concat;
    Concat(const SkMatrix& matrix) : matrix(matrix) {}
    SkMatrix matrix;
    Concat(const SkM44& matrix) : matrix(matrix) {}
    SkM44 matrix;
    void draw(SkCanvas* c, const SkMatrix&) const { c->concat(matrix); }
};
struct SetMatrix final : Op {
    static const auto kType = Type::SetMatrix;
    SetMatrix(const SkMatrix& matrix) : matrix(matrix) {}
    SkMatrix matrix;
    SetMatrix(const SkM44& matrix) : matrix(matrix) {}
    SkM44 matrix;
    void draw(SkCanvas* c, const SkMatrix& original) const {
        c->setMatrix(SkMatrix::Concat(original, matrix));
        c->setMatrix(SkM44(original) * matrix);
    }
};
struct Scale final : Op {
@@ -569,12 +563,9 @@ void DisplayListData::saveBehind(const SkRect* subset) {
}

void DisplayListData::concat(const SkM44& m) {
    this->push<Concat44>(0, m);
}
void DisplayListData::concat(const SkMatrix& matrix) {
    this->push<Concat>(0, matrix);
    this->push<Concat>(0, m);
}
void DisplayListData::setMatrix(const SkMatrix& matrix) {
void DisplayListData::setMatrix(const SkM44& matrix) {
    this->push<SetMatrix>(0, matrix);
}
void DisplayListData::scale(SkScalar sx, SkScalar sy) {
@@ -834,10 +825,7 @@ bool RecordingCanvas::onDoSaveBehind(const SkRect* subset) {
void RecordingCanvas::didConcat44(const SkM44& m) {
    fDL->concat(m);
}
void RecordingCanvas::didConcat(const SkMatrix& matrix) {
    fDL->concat(matrix);
}
void RecordingCanvas::didSetMatrix(const SkMatrix& matrix) {
void RecordingCanvas::didSetM44(const SkM44& matrix) {
    fDL->setMatrix(matrix);
}
void RecordingCanvas::didScale(SkScalar sx, SkScalar sy) {
+2 −4
Original line number Diff line number Diff line
@@ -82,8 +82,7 @@ private:
    void restore();

    void concat(const SkM44&);
    void concat(const SkMatrix&);
    void setMatrix(const SkMatrix&);
    void setMatrix(const SkM44&);
    void scale(SkScalar, SkScalar);
    void translate(SkScalar, SkScalar);
    void translateZ(SkScalar);
@@ -154,8 +153,7 @@ public:
    void onFlush() override;

    void didConcat44(const SkM44&) override;
    void didConcat(const SkMatrix&) override;
    void didSetMatrix(const SkMatrix&) override;
    void didSetM44(const SkM44&) override;
    void didScale(SkScalar, SkScalar) override;
    void didTranslate(SkScalar, SkScalar) override;

+5 −5
Original line number Diff line number Diff line
@@ -1107,26 +1107,26 @@ TEST(ReorderBarrierDrawable, testShadowMatrix) {
            EXPECT_EQ(dy, TRANSLATE_Y);
        }

        virtual void didSetMatrix(const SkMatrix& matrix) override {
        virtual void didSetM44(const SkM44& matrix) override {
            mDrawCounter++;
            // First invocation is EndReorderBarrierDrawable::drawShadow to apply shadow matrix.
            // Second invocation is preparing the matrix for an elevated RenderNodeDrawable.
            EXPECT_TRUE(matrix.isIdentity());
            EXPECT_TRUE(matrix == SkM44());
            EXPECT_TRUE(getTotalMatrix().isIdentity());
        }

        virtual void didConcat(const SkMatrix& matrix) override {
        virtual void didConcat44(const SkM44& matrix) override {
            mDrawCounter++;
            if (mFirstDidConcat) {
                // First invocation is EndReorderBarrierDrawable::drawShadow to apply shadow matrix.
                mFirstDidConcat = false;
                EXPECT_EQ(SkMatrix::Translate(CASTER_X + TRANSLATE_X, CASTER_Y + TRANSLATE_Y),
                EXPECT_EQ(SkM44::Translate(CASTER_X + TRANSLATE_X, CASTER_Y + TRANSLATE_Y),
                          matrix);
                EXPECT_EQ(SkMatrix::Translate(CASTER_X + TRANSLATE_X, CASTER_Y + TRANSLATE_Y),
                          getTotalMatrix());
            } else {
                // Second invocation is preparing the matrix for an elevated RenderNodeDrawable.
                EXPECT_EQ(SkMatrix::Translate(TRANSLATE_X, TRANSLATE_Y), matrix);
                EXPECT_EQ(SkM44::Translate(TRANSLATE_X, TRANSLATE_Y), matrix);
                EXPECT_EQ(SkMatrix::Translate(TRANSLATE_X, TRANSLATE_Y), getTotalMatrix());
            }
        }