aboutsummaryrefslogtreecommitdiff
path: root/tests/PictureTest.cpp
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2019-04-04 11:49:14 -0400
committerMichele Bono <bono.michele94@gmail.com>2019-08-07 16:13:50 +0200
commit55c3d512b95a8b515b7a6a8542da8c0f28270b2e (patch)
treea6098e8aaafb8daeed174c4c9c784c5cb26e6689 /tests/PictureTest.cpp
parent1f50aa929088085c6a4fa1c6de435193cbde9ee2 (diff)
Add private save-behind and draw-behind methods to canvas.HEADp9.0
The draw-behind is a variant of drawPaint but is automatically clipped to the bounds of the most recent saveBehind buffer (axis-aligned bounds). No public exposure outside of the Android framework. Impl is pretty simple (its a variant of drawPaint) - find the most recent saveBehind device bounds - if there is none, draw nothing, else - temporarily intersect the device's clip with that bounds - drawPaint - restore the clip This patches did not apply cleanly and have been updated to compile with a previous version of Skia. It was cherry-picked from the following 3 Skia commits: 148b7fd3ad9c29dec0052de624c26ff291ef8f0a d567408362bf7847d6000f6786f9a7b2c9d0b88b 9adc82c73df0ef25b708cae8aa48ef9c39ed4c67 Bug: 129117085 Test: None Change-Id: I291f57885de6e95f749bf5cdb70ac16a5781ffb1
Diffstat (limited to 'tests/PictureTest.cpp')
-rw-r--r--tests/PictureTest.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index 425b25a153..4f76c6a829 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -102,6 +102,7 @@ public:
: INHERITED(width, height)
, fSaveCount(0)
, fSaveLayerCount(0)
+ , fSaveBehindCount(0)
, fRestoreCount(0){
}
@@ -110,6 +111,11 @@ public:
return this->INHERITED::getSaveLayerStrategy(rec);
}
+ bool onDoSaveBehind(const SkRect* subset) override {
+ ++fSaveBehindCount;
+ return this->INHERITED::onDoSaveBehind(subset);
+ }
+
void willSave() override {
++fSaveCount;
this->INHERITED::willSave();
@@ -122,11 +128,13 @@ public:
unsigned int getSaveCount() const { return fSaveCount; }
unsigned int getSaveLayerCount() const { return fSaveLayerCount; }
+ unsigned int getSaveBehindCount() const { return fSaveBehindCount; }
unsigned int getRestoreCount() const { return fRestoreCount; }
private:
unsigned int fSaveCount;
unsigned int fSaveLayerCount;
+ unsigned int fSaveBehindCount;
unsigned int fRestoreCount;
typedef SkCanvas INHERITED;