Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Implement new SkCanvas virtuals in testing canvases #15893

Merged
merged 2 commits into from
Jan 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions shell/common/canvas_spy.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
3 changes: 3 additions & 0 deletions shell/common/canvas_spy.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ class DidDrawCanvas final : public SkCanvasVirtualEnforcer<SkNoDrawCanvas> {

// |SkCanvasVirtualEnforcer<SkNoDrawCanvas>|
void didConcat(const SkMatrix&) override;
void didConcat44(const SkScalar[]) override;
void didScale(SkScalar, SkScalar) override;
void didTranslate(SkScalar, SkScalar) override;

// |SkCanvasVirtualEnforcer<SkNoDrawCanvas>|
void didSetMatrix(const SkMatrix&) override;
Expand Down
28 changes: 28 additions & 0 deletions testing/mock_canvas.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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}});
}
Expand Down Expand Up @@ -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;
Expand Down
13 changes: 13 additions & 0 deletions testing/mock_canvas.h
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -55,6 +56,10 @@ class MockCanvas : public SkCanvasVirtualEnforcer<SkCanvas> {
SkMatrix matrix;
};

struct ConcatMatrix44Data {
SkMatrix44 matrix;
};

struct SetMatrixData {
SkMatrix matrix;
};
Expand Down Expand Up @@ -109,6 +114,7 @@ class MockCanvas : public SkCanvasVirtualEnforcer<SkCanvas> {
SaveLayerData,
RestoreData,
ConcatMatrixData,
ConcatMatrix44Data,
SetMatrixData,
DrawRectData,
DrawPathData,
Expand Down Expand Up @@ -139,6 +145,9 @@ class MockCanvas : public SkCanvasVirtualEnforcer<SkCanvas> {
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.
Expand Down Expand Up @@ -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,
Expand Down