aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode
diff options
context:
space:
mode:
authorGravatar fmalita <fmalita@chromium.org>2016-01-12 07:21:11 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-12 07:21:11 -0800
commit32cdc32522bf39a8236880f57ff4ee5b26bdd363 (patch)
tree4dc6f63fe1c65ae124985be47c79b57d116d2e88 /samplecode
parenta51e7782b2e028a38712a159c412e6151eca1666 (diff)
SkTCopyOnFirstWrite-based SkPaintFilterCanvas API
I find this version preferable because 1) it consolidates the in/out paint args without compromising efficiency or flexibility 2) relieves overriders from having to set the SkTLazy explicitly BUG=skia:4782 R=mtklein@google.com,reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1576183002 Review URL: https://codereview.chromium.org/1576183002
Diffstat (limited to 'samplecode')
-rw-r--r--samplecode/SampleApp.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index ce2cfb2590..a3a81d8516 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -475,27 +475,25 @@ public:
}
protected:
- bool onFilter(const SkPaint* paint, Type t, SkTLazy<SkPaint>* filteredPaint) const override {
- if (!paint) {
+ bool onFilter(SkTCopyOnFirstWrite<SkPaint>* paint, Type t) const override {
+ if (!*paint) {
return true;
}
- filteredPaint->set(*paint);
if (kText_Type == t && SkOSMenu::kMixedState != fLCDState) {
- filteredPaint->get()->setLCDRenderText(SkOSMenu::kOnState == fLCDState);
+ paint->writable()->setLCDRenderText(SkOSMenu::kOnState == fLCDState);
}
if (SkOSMenu::kMixedState != fAAState) {
- filteredPaint->get()->setAntiAlias(SkOSMenu::kOnState == fAAState);
+ paint->writable()->setAntiAlias(SkOSMenu::kOnState == fAAState);
}
if (0 != fFilterQualityIndex) {
- filteredPaint->get()->setFilterQuality(
- gFilterQualityStates[fFilterQualityIndex].fQuality);
+ paint->writable()->setFilterQuality(gFilterQualityStates[fFilterQualityIndex].fQuality);
}
if (SkOSMenu::kMixedState != fSubpixelState) {
- filteredPaint->get()->setSubpixelText(SkOSMenu::kOnState == fSubpixelState);
+ paint->writable()->setSubpixelText(SkOSMenu::kOnState == fSubpixelState);
}
if (0 != fHintingState && fHintingState < (int)SK_ARRAY_COUNT(gHintingStates)) {
- filteredPaint->get()->setHinting(gHintingStates[fHintingState].hinting);
+ paint->writable()->setHinting(gHintingStates[fHintingState].hinting);
}
return true;
}