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

Commit 217796a2 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use new canvas virtuals for m44"

parents 481b4636 6525763f
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());
            }
        }