Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Unified Diff: src/core/SkCanvas.cpp

Issue 155513012: [WIP] Add Context to SkDrawLooper. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Use SkSmallAllocator Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/core/SkCanvas.cpp
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 9dcbfdbc38891c65deb30feb8bf047dfc42022c4..dd3cdb17a41ce5880fa2feeb402e827a212e8238 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -355,7 +355,7 @@ public:
}
if (fLooper) {
- fLooper->init(canvas);
+ fLooperContext = fLooper->init(canvas, &fLooperContextAllocator);
fIsSimple = false;
} else {
// can we be marked as simple?
@@ -398,6 +398,8 @@ private:
bool fDoClearImageFilter;
bool fDone;
bool fIsSimple;
+ SkDrawLooper::Context* fLooperContext;
+ SkDrawLooper::ContextAllocator fLooperContextAllocator;
bool doNext(SkDrawFilter::Type drawType);
};
@@ -406,6 +408,7 @@ bool AutoDrawLooper::doNext(SkDrawFilter::Type drawType) {
fPaint = NULL;
SkASSERT(!fIsSimple);
SkASSERT(fLooper || fFilter || fDoClearImageFilter);
+ SkASSERT(!fLooper || fLooperContext);
SkPaint* paint = fLazyPaint.set(fOrigPaint);
@@ -413,7 +416,7 @@ bool AutoDrawLooper::doNext(SkDrawFilter::Type drawType) {
paint->setImageFilter(NULL);
}
- if (fLooper && !fLooper->next(fCanvas, paint)) {
+ if (fLooper && !fLooperContext->next(fCanvas, paint)) {
fDone = true;
return false;
}

Powered by Google App Engine
This is Rietveld 408576698