mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Implement new SkCanvas virtuals in testing canvases (flutter/engine#15893)
This commit is contained in:
parent
ee7e3c82c9
commit
ea2edc9a40
@ -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,
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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<SkCanvas> {
|
||||
SkMatrix matrix;
|
||||
};
|
||||
|
||||
struct ConcatMatrix44Data {
|
||||
SkMatrix44 matrix;
|
||||
};
|
||||
|
||||
struct SetMatrixData {
|
||||
SkMatrix matrix;
|
||||
};
|
||||
@ -109,6 +114,7 @@ class MockCanvas : public SkCanvasVirtualEnforcer<SkCanvas> {
|
||||
SaveLayerData,
|
||||
RestoreData,
|
||||
ConcatMatrixData,
|
||||
ConcatMatrix44Data,
|
||||
SetMatrixData,
|
||||
DrawRectData,
|
||||
DrawPathData,
|
||||
@ -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.
|
||||
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user