diff --git a/shell/common/canvas_spy.cc b/shell/common/canvas_spy.cc index 9ee02ff53dabc..77d9a2f83ad19 100644 --- a/shell/common/canvas_spy.cc +++ b/shell/common/canvas_spy.cc @@ -53,6 +53,12 @@ void DidDrawCanvas::willRestore() {} void DidDrawCanvas::didConcat(const SkMatrix& matrix) {} +void DidDrawCanvas::didConcat44(const SkScalar[]) {} + +void DidDrawCanvas::didScale(SkScalar, SkScalar) {} + +void DidDrawCanvas::didTranslate(SkScalar, SkScalar) {} + void DidDrawCanvas::didSetMatrix(const SkMatrix& matrix) {} void DidDrawCanvas::onClipRect(const SkRect& rect, diff --git a/shell/common/canvas_spy.h b/shell/common/canvas_spy.h index ef86b9425319d..e9b721e3912be 100644 --- a/shell/common/canvas_spy.h +++ b/shell/common/canvas_spy.h @@ -71,6 +71,9 @@ class DidDrawCanvas final : public SkCanvasVirtualEnforcer { // |SkCanvasVirtualEnforcer| void didConcat(const SkMatrix&) override; + void didConcat44(const SkScalar[]) override; + void didScale(SkScalar, SkScalar) override; + void didTranslate(SkScalar, SkScalar) override; // |SkCanvasVirtualEnforcer| void didSetMatrix(const SkMatrix&) override; diff --git a/testing/mock_canvas.cc b/testing/mock_canvas.cc index 6782ffdeda733..581abb8591dae 100644 --- a/testing/mock_canvas.cc +++ b/testing/mock_canvas.cc @@ -60,6 +60,24 @@ void MockCanvas::didConcat(const SkMatrix& matrix) { draw_calls_.emplace_back(DrawCall{current_layer_, ConcatMatrixData{matrix}}); } +void MockCanvas::didConcat44(const SkScalar matrix[]) { + SkMatrix44 m44; + m44.setColMajor(matrix); + draw_calls_.emplace_back(DrawCall{current_layer_, ConcatMatrix44Data{m44}}); +} + +void MockCanvas::didScale(SkScalar x, SkScalar y) { + SkMatrix m; + m.setScale(x, y); + this->didConcat(m); +} + +void MockCanvas::didTranslate(SkScalar x, SkScalar y) { + SkMatrix m; + m.setTranslate(x, y); + this->didConcat(m); +} + void MockCanvas::didSetMatrix(const SkMatrix& matrix) { draw_calls_.emplace_back(DrawCall{current_layer_, SetMatrixData{matrix}}); } @@ -346,6 +364,16 @@ std::ostream& operator<<(std::ostream& os, return os << data.matrix; } +bool operator==(const MockCanvas::ConcatMatrix44Data& a, + const MockCanvas::ConcatMatrix44Data& b) { + return a.matrix == b.matrix; +} + +std::ostream& operator<<(std::ostream& os, + const MockCanvas::ConcatMatrix44Data& data) { + return os << data.matrix; +} + bool operator==(const MockCanvas::SetMatrixData& a, const MockCanvas::SetMatrixData& b) { return a.matrix == b.matrix; diff --git a/testing/mock_canvas.h b/testing/mock_canvas.h index cc4c2b11a9c2e..206fa1eefbcc8 100644 --- a/testing/mock_canvas.h +++ b/testing/mock_canvas.h @@ -16,6 +16,7 @@ #include "third_party/skia/include/core/SkClipOp.h" #include "third_party/skia/include/core/SkData.h" #include "third_party/skia/include/core/SkImageFilter.h" +#include "third_party/skia/include/core/SkMatrix44.h" #include "third_party/skia/include/core/SkPath.h" #include "third_party/skia/include/core/SkRRect.h" #include "third_party/skia/include/core/SkRect.h" @@ -55,6 +56,10 @@ class MockCanvas : public SkCanvasVirtualEnforcer { SkMatrix matrix; }; + struct ConcatMatrix44Data { + SkMatrix44 matrix; + }; + struct SetMatrixData { SkMatrix matrix; }; @@ -109,6 +114,7 @@ class MockCanvas : public SkCanvasVirtualEnforcer { SaveLayerData, RestoreData, ConcatMatrixData, + ConcatMatrix44Data, SetMatrixData, DrawRectData, DrawPathData, @@ -139,6 +145,9 @@ class MockCanvas : public SkCanvasVirtualEnforcer { void willRestore() override; void didRestore() override {} void didConcat(const SkMatrix& matrix) override; + void didConcat44(const SkScalar matrix[]) override; + void didScale(SkScalar x, SkScalar y) override; + void didTranslate(SkScalar x, SkScalar y) override; void didSetMatrix(const SkMatrix& matrix) override; // Draw and clip operations that we track. @@ -269,6 +278,10 @@ extern bool operator==(const MockCanvas::ConcatMatrixData& a, const MockCanvas::ConcatMatrixData& b); extern std::ostream& operator<<(std::ostream& os, const MockCanvas::ConcatMatrixData& data); +extern bool operator==(const MockCanvas::ConcatMatrix44Data& a, + const MockCanvas::ConcatMatrix44Data& b); +extern std::ostream& operator<<(std::ostream& os, + const MockCanvas::ConcatMatrix44Data& data); extern bool operator==(const MockCanvas::SetMatrixData& a, const MockCanvas::SetMatrixData& b); extern std::ostream& operator<<(std::ostream& os,