Inline noop willFoo/didFoo into SkCanvas.h.
We've got our canvas subclasses all calling back up to these via
INHERITED, all noops. That's fine but currently a little sad as they
can't be optimized away without link-time optimization, which we and
Chrome only do on Windows. We actually make a call for each of these
today on non-Windows.
So, move the empty implementations into the header so those chaining
calls really can be optimized away.
BUG=skia:
R=reed@google.com, fmalita@google.com, mtklein@google.com, fmalita@chromium.org
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/287593005
git-svn-id: http://skia.googlecode.com/svn/trunk@14722 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index 70cfe28..fa19176 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -1226,12 +1226,14 @@
kFullLayer_SaveLayerStrategy,
kNoLayer_SaveLayerStrategy
};
- virtual void willSave(SaveFlags);
- virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags);
- virtual void willRestore();
- virtual void didConcat(const SkMatrix&);
- virtual void didSetMatrix(const SkMatrix&);
+ virtual void willSave(SaveFlags) {}
+ virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) {
+ return kFullLayer_SaveLayerStrategy;
+ }
+ virtual void willRestore() {}
+ virtual void didConcat(const SkMatrix&) {}
+ virtual void didSetMatrix(const SkMatrix&) {}
virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&);
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 6c0fc88..57cf850 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -830,10 +830,6 @@
return saveCount;
}
-void SkCanvas::willSave(SaveFlags) {
- // Do nothing. Subclasses may do something.
-}
-
int SkCanvas::save() {
this->willSave(kMatrixClip_SaveFlag);
return this->internalSave(kMatrixClip_SaveFlag);
@@ -897,12 +893,6 @@
return true;
}
-SkCanvas::SaveLayerStrategy SkCanvas::willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) {
-
- // Do nothing. Subclasses may do something.
- return kFullLayer_SaveLayerStrategy;
-}
-
int SkCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint) {
SaveLayerStrategy strategy = this->willSaveLayer(bounds, paint, kARGB_ClipLayer_SaveFlag);
return this->internalSaveLayer(bounds, paint, kARGB_ClipLayer_SaveFlag, false, strategy);
@@ -999,10 +989,6 @@
}
}
-void SkCanvas::willRestore() {
- // Do nothing. Subclasses may do something.
-}
-
void SkCanvas::restore() {
// check for underflow
if (fMCStack.count() > 1) {
@@ -1344,10 +1330,6 @@
this->concat(m);
}
-void SkCanvas::didConcat(const SkMatrix&) {
- // Do nothing. Subclasses may do something.
-}
-
void SkCanvas::concat(const SkMatrix& matrix) {
if (matrix.isIdentity()) {
return;
@@ -1360,10 +1342,6 @@
this->didConcat(matrix);
}
-void SkCanvas::didSetMatrix(const SkMatrix&) {
- // Do nothing. Subclasses may do something.
-}
-
void SkCanvas::setMatrix(const SkMatrix& matrix) {
fDeviceCMDirty = true;
fCachedLocalClipBoundsDirty = true;