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

Unified Diff: src/core/SkCanvas.cpp

Issue 340403003: SaveFlags be-gone (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: Removed canvasstate GM Created 6 years, 6 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 bdbcd3be740fbd79fd7cdae4c4a954d63a88b31c..f8f63a309c79a4f8de6c1cb786ebc4510b073c99 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -189,7 +189,6 @@ private:
*/
class SkCanvas::MCRec {
public:
- int fFlags;
SkMatrix* fMatrix; // points to either fMatrixStorage or prev MCRec
SkRasterClip* fRasterClip; // points to either fRegionStorage or prev MCRec
SkDrawFilter* fFilter; // the current filter (or null)
@@ -203,21 +202,13 @@ public:
*/
DeviceCM* fTopLayer;
- MCRec(const MCRec* prev, int flags) : fFlags(flags) {
+ MCRec(const MCRec* prev) {
if (NULL != prev) {
robertphillips 2014/06/23 14:33:39 Can we get rid of the fMatrix/fMatrixStorage and f
f(malita) 2014/06/23 14:39:12 Yes, the plan is to follow up with a deferred save
- if (flags & SkCanvas::kMatrix_SaveFlag) {
- fMatrixStorage = *prev->fMatrix;
- fMatrix = &fMatrixStorage;
- } else {
- fMatrix = prev->fMatrix;
- }
+ fMatrixStorage = *prev->fMatrix;
+ fMatrix = &fMatrixStorage;
- if (flags & SkCanvas::kClip_SaveFlag) {
- fRasterClipStorage = *prev->fRasterClip;
- fRasterClip = &fRasterClipStorage;
- } else {
- fRasterClip = prev->fRasterClip;
- }
+ fRasterClipStorage = *prev->fRasterClip;
+ fRasterClip = &fRasterClipStorage;
fFilter = prev->fFilter;
SkSafeRef(fFilter);
@@ -449,7 +440,7 @@ SkBaseDevice* SkCanvas::init(SkBaseDevice* device) {
fMetaData = NULL;
fMCRec = (MCRec*)fMCStack.push_back();
- new (fMCRec) MCRec(NULL, 0);
+ new (fMCRec) MCRec(NULL);
fMCRec->fLayer = SkNEW_ARGS(DeviceCM, (NULL, 0, 0, NULL, NULL));
fMCRec->fTopLayer = fMCRec->fLayer;
@@ -783,30 +774,21 @@ void SkCanvas::updateDeviceCMCache() {
///////////////////////////////////////////////////////////////////////////////
-int SkCanvas::internalSave(SaveFlags flags) {
+int SkCanvas::internalSave() {
int saveCount = this->getSaveCount(); // record this before the actual save
MCRec* newTop = (MCRec*)fMCStack.push_back();
- new (newTop) MCRec(fMCRec, flags); // balanced in restore()
-
+ new (newTop) MCRec(fMCRec); // balanced in restore()
fMCRec = newTop;
- if (SkCanvas::kClip_SaveFlag & flags) {
- fClipStack.save();
- }
+ fClipStack.save();
return saveCount;
}
int SkCanvas::save() {
- this->willSave(kMatrixClip_SaveFlag);
- return this->internalSave(kMatrixClip_SaveFlag);
-}
-
-int SkCanvas::save(SaveFlags flags) {
- this->willSave(flags);
- // call shared impl
- return this->internalSave(flags);
+ this->willSave();
+ return this->internalSave();
}
static bool bounds_affects_clip(SkCanvas::SaveFlags flags) {
@@ -886,7 +868,7 @@ int SkCanvas::internalSaveLayer(const SkRect* bounds, const SkPaint* paint, Save
// do this before we create the layer. We don't call the public save() since
// that would invoke a possibly overridden virtual
- int count = this->internalSave(flags);
+ int count = this->internalSave();
fDeviceCMDirty = true;
@@ -971,9 +953,7 @@ void SkCanvas::internalRestore() {
fDeviceCMDirty = true;
fCachedLocalClipBoundsDirty = true;
- if (SkCanvas::kClip_SaveFlag & fMCRec->fFlags) {
- fClipStack.restore();
- }
+ fClipStack.restore();
// reserve our layer (if any)
DeviceCM* layer = fMCRec->fLayer; // may be null

Powered by Google App Engine
This is Rietveld 408576698