| Index: src/pipe/SkGPipeWrite.cpp
|
| diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
|
| index 43209f644b9e64743d02f02e1e24800fe3959e55..7f2f1a1936f9e9073acaa99282c37d7c949d9cc7 100644
|
| --- a/src/pipe/SkGPipeWrite.cpp
|
| +++ b/src/pipe/SkGPipeWrite.cpp
|
| @@ -229,10 +229,6 @@ public:
|
| }
|
|
|
| // overrides from SkCanvas
|
| - virtual int save(SaveFlags) SK_OVERRIDE;
|
| - virtual int saveLayer(const SkRect* bounds, const SkPaint*,
|
| - SaveFlags) SK_OVERRIDE;
|
| - virtual void restore() SK_OVERRIDE;
|
| virtual bool isDrawingToLayer() const SK_OVERRIDE;
|
| virtual bool translate(SkScalar dx, SkScalar dy) SK_OVERRIDE;
|
| virtual bool scale(SkScalar sx, SkScalar sy) SK_OVERRIDE;
|
| @@ -287,6 +283,10 @@ public:
|
| bool shuttleBitmap(const SkBitmap&, int32_t slot);
|
|
|
| protected:
|
| + virtual void willSave(SaveFlags) SK_OVERRIDE;
|
| + virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) SK_OVERRIDE;
|
| + virtual void willRestore() SK_OVERRIDE;
|
| +
|
| virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) SK_OVERRIDE;
|
|
|
| virtual void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
|
| @@ -514,16 +514,17 @@ uint32_t SkGPipeCanvas::getTypefaceID(SkTypeface* face) {
|
| #define NOTIFY_SETUP(canvas) \
|
| AutoPipeNotify apn(canvas)
|
|
|
| -int SkGPipeCanvas::save(SaveFlags flags) {
|
| +void SkGPipeCanvas::willSave(SaveFlags flags) {
|
| NOTIFY_SETUP(this);
|
| if (this->needOpBytes()) {
|
| this->writeOp(kSave_DrawOp, 0, flags);
|
| }
|
| - return this->INHERITED::save(flags);
|
| +
|
| + this->INHERITED::willSave(flags);
|
| }
|
|
|
| -int SkGPipeCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint,
|
| - SaveFlags saveFlags) {
|
| +SkCanvas::SaveLayerStrategy SkGPipeCanvas::willSaveLayer(const SkRect* bounds, const SkPaint* paint,
|
| + SaveFlags saveFlags) {
|
| NOTIFY_SETUP(this);
|
| size_t size = 0;
|
| unsigned opFlags = 0;
|
| @@ -547,21 +548,23 @@ int SkGPipeCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint,
|
| if (kNoSaveLayer == fFirstSaveLayerStackLevel){
|
| fFirstSaveLayerStackLevel = this->getSaveCount();
|
| }
|
| - // we just pass on the save, so we don't create a layer
|
| - return this->INHERITED::save(saveFlags);
|
| +
|
| + this->INHERITED::willSaveLayer(bounds, paint, saveFlags);
|
| + // we don't create a layer
|
| + return kNoLayer_SaveLayerStrategy;
|
| }
|
|
|
| -void SkGPipeCanvas::restore() {
|
| +void SkGPipeCanvas::willRestore() {
|
| NOTIFY_SETUP(this);
|
| if (this->needOpBytes()) {
|
| this->writeOp(kRestore_DrawOp);
|
| }
|
|
|
| - this->INHERITED::restore();
|
| -
|
| - if (this->getSaveCount() == fFirstSaveLayerStackLevel){
|
| + if (this->getSaveCount() - 1 == fFirstSaveLayerStackLevel){
|
| fFirstSaveLayerStackLevel = kNoSaveLayer;
|
| }
|
| +
|
| + this->INHERITED::willRestore();
|
| }
|
|
|
| bool SkGPipeCanvas::isDrawingToLayer() const {
|
|
|