diff options
-rw-r--r-- | include/core/SkCanvas.h | 8 | ||||
-rw-r--r-- | include/utils/SkNWayCanvas.h | 6 | ||||
-rw-r--r-- | include/utils/SkNoDrawCanvas.h | 5 | ||||
-rw-r--r-- | src/core/SkCanvas.cpp | 3 | ||||
-rw-r--r-- | src/core/SkLiteRecorder.cpp | 12 | ||||
-rw-r--r-- | src/core/SkLiteRecorder.h | 6 | ||||
-rw-r--r-- | src/core/SkRecorder.cpp | 8 | ||||
-rw-r--r-- | src/core/SkRecorder.h | 4 | ||||
-rw-r--r-- | src/pipe/SkPipeCanvas.cpp | 2 | ||||
-rw-r--r-- | src/pipe/SkPipeCanvas.h | 6 | ||||
-rw-r--r-- | src/utils/SkDeferredCanvas.cpp | 2 | ||||
-rw-r--r-- | src/utils/SkDeferredCanvas.h | 6 | ||||
-rw-r--r-- | src/utils/SkNWayCanvas.cpp | 3 |
13 files changed, 39 insertions, 32 deletions
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h index 9887211057..0804ae4d96 100644 --- a/include/core/SkCanvas.h +++ b/include/core/SkCanvas.h @@ -1620,14 +1620,12 @@ private: friend class SkLua; // needs top layer size and offset friend class SkDebugCanvas; // needs experimental fAllowSimplifyClip friend class SkSurface_Raster; // needs getDevice() - friend class SkRecorder; // InitFlags - friend class SkLiteRecorder; // InitFlags - friend class SkNoDrawCanvas; // InitFlags - friend class SkNWayCanvas; // InitFlags + friend class SkRecorder; // resetForNextPicture + friend class SkLiteRecorder; // resetForNextPicture + friend class SkNoDrawCanvas; // InitFlags friend class SkPictureImageFilter; // SkCanvas(SkBaseDevice*, SkSurfaceProps*, InitFlags) friend class SkPictureRecord; // predrawNotify (why does it need it? <reed>) friend class SkPicturePlayback; // SaveFlagsToSaveLayerFlags - friend class SkPipeCanvas; // InitFlags friend class SkDeferredCanvas; // For use of resetForNextPicture friend class SkOverdrawCanvas; diff --git a/include/utils/SkNWayCanvas.h b/include/utils/SkNWayCanvas.h index e8b88ab157..d8856dad0b 100644 --- a/include/utils/SkNWayCanvas.h +++ b/include/utils/SkNWayCanvas.h @@ -10,9 +10,9 @@ #define SkNWayCanvas_DEFINED #include "../private/SkTDArray.h" -#include "SkCanvas.h" +#include "SkNoDrawCanvas.h" -class SK_API SkNWayCanvas : public SkCanvas { +class SK_API SkNWayCanvas : public SkNoDrawCanvas { public: SkNWayCanvas(int width, int height); virtual ~SkNWayCanvas(); @@ -87,7 +87,7 @@ protected: class Iter; private: - typedef SkCanvas INHERITED; + typedef SkNoDrawCanvas INHERITED; }; diff --git a/include/utils/SkNoDrawCanvas.h b/include/utils/SkNoDrawCanvas.h index 0330251ede..e8c5d7e5ca 100644 --- a/include/utils/SkNoDrawCanvas.h +++ b/include/utils/SkNoDrawCanvas.h @@ -10,6 +10,8 @@ #include "SkCanvas.h" +struct SkIRect; + // SkNoDrawCanvas is a helper for SkCanvas subclasses which do not need to // actually rasterize (e.g., analysis of the draw calls). // @@ -22,6 +24,9 @@ class SK_API SkNoDrawCanvas : public SkCanvas { public: SkNoDrawCanvas(int width, int height); + // TODO: investigate the users of this ctor. + SkNoDrawCanvas(const SkIRect&); + protected: SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec& rec) override; diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 25f83deb09..2dff8e9f89 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -3373,6 +3373,9 @@ SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { SkNoDrawCanvas::SkNoDrawCanvas(int width, int height) : INHERITED(SkIRect::MakeWH(width, height), kConservativeRasterClip_InitFlag) {} +SkNoDrawCanvas::SkNoDrawCanvas(const SkIRect& bounds) + : INHERITED(bounds, kConservativeRasterClip_InitFlag) {} + SkCanvas::SaveLayerStrategy SkNoDrawCanvas::getSaveLayerStrategy(const SaveLayerRec& rec) { (void)this->INHERITED::getSaveLayerStrategy(rec); return kNoLayer_SaveLayerStrategy; diff --git a/src/core/SkLiteRecorder.cpp b/src/core/SkLiteRecorder.cpp index 866ebd0f59..b26547a462 100644 --- a/src/core/SkLiteRecorder.cpp +++ b/src/core/SkLiteRecorder.cpp @@ -10,7 +10,7 @@ #include "SkSurface.h" SkLiteRecorder::SkLiteRecorder() - : SkCanvas({0,0,1,1}, SkCanvas::kConservativeRasterClip_InitFlag) + : INHERITED(1, 1) , fDL(nullptr) {} void SkLiteRecorder::reset(SkLiteDL* dl) { @@ -25,7 +25,7 @@ sk_sp<SkSurface> SkLiteRecorder::onNewSurface(const SkImageInfo&, const SkSurfac #ifdef SK_SUPPORT_LEGACY_DRAWFILTER SkDrawFilter* SkLiteRecorder::setDrawFilter(SkDrawFilter* df) { fDL->setDrawFilter(df); - return SkCanvas::setDrawFilter(df); + return this->INHERITED::setDrawFilter(df); } #endif @@ -42,19 +42,19 @@ void SkLiteRecorder::didTranslate(SkScalar dx, SkScalar dy) { fDL->translate(dx, void SkLiteRecorder::onClipRect(const SkRect& rect, ClipOp op, ClipEdgeStyle style) { fDL->clipRect(rect, op, style==kSoft_ClipEdgeStyle); - SkCanvas::onClipRect(rect, op, style); + this->INHERITED::onClipRect(rect, op, style); } void SkLiteRecorder::onClipRRect(const SkRRect& rrect, ClipOp op, ClipEdgeStyle style) { fDL->clipRRect(rrect, op, style==kSoft_ClipEdgeStyle); - SkCanvas::onClipRRect(rrect, op, style); + this->INHERITED::onClipRRect(rrect, op, style); } void SkLiteRecorder::onClipPath(const SkPath& path, ClipOp op, ClipEdgeStyle style) { fDL->clipPath(path, op, style==kSoft_ClipEdgeStyle); - SkCanvas::onClipPath(path, op, style); + this->INHERITED::onClipPath(path, op, style); } void SkLiteRecorder::onClipRegion(const SkRegion& region, ClipOp op) { fDL->clipRegion(region, op); - SkCanvas::onClipRegion(region, op); + this->INHERITED::onClipRegion(region, op); } void SkLiteRecorder::onDrawPaint(const SkPaint& paint) { diff --git a/src/core/SkLiteRecorder.h b/src/core/SkLiteRecorder.h index 4ae24564fe..4ffd132862 100644 --- a/src/core/SkLiteRecorder.h +++ b/src/core/SkLiteRecorder.h @@ -8,11 +8,11 @@ #ifndef SkLiteRecorder_DEFINED #define SkLiteRecorder_DEFINED -#include "SkCanvas.h" +#include "SkNoDrawCanvas.h" class SkLiteDL; -class SkLiteRecorder final : public SkCanvas { +class SkLiteRecorder final : public SkNoDrawCanvas { public: SkLiteRecorder(); void reset(SkLiteDL*); @@ -90,6 +90,8 @@ public: #endif private: + typedef SkNoDrawCanvas INHERITED; + SkLiteDL* fDL; }; diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp index 91236c6a1f..4c56d99f45 100644 --- a/src/core/SkRecorder.cpp +++ b/src/core/SkRecorder.cpp @@ -37,14 +37,14 @@ void SkDrawableList::append(SkDrawable* drawable) { /////////////////////////////////////////////////////////////////////////////////////////////// SkRecorder::SkRecorder(SkRecord* record, int width, int height, SkMiniRecorder* mr) - : SkCanvas(SkIRect::MakeWH(width, height), SkCanvas::kConservativeRasterClip_InitFlag) + : SkNoDrawCanvas(width, height) , fDrawPictureMode(Record_DrawPictureMode) , fApproxBytesUsedBySubPictures(0) , fRecord(record) , fMiniRecorder(mr) {} SkRecorder::SkRecorder(SkRecord* record, const SkRect& bounds, SkMiniRecorder* mr) - : SkCanvas(bounds.roundOut(), SkCanvas::kConservativeRasterClip_InitFlag) + : SkNoDrawCanvas(bounds.roundOut()) , fDrawPictureMode(Record_DrawPictureMode) , fApproxBytesUsedBySubPictures(0) , fRecord(record) @@ -75,8 +75,8 @@ void SkRecorder::forgetRecord() { #define TRY_MINIRECORDER(method, ...) \ if (fMiniRecorder && fMiniRecorder->method(__VA_ARGS__)) { return; } -// For methods which must call back into SkCanvas. -#define INHERITED(method, ...) this->SkCanvas::method(__VA_ARGS__) +// For methods which must call back into SkNoDrawCanvas. +#define INHERITED(method, ...) this->SkNoDrawCanvas::method(__VA_ARGS__) // Use copy() only for optional arguments, to be copied if present or skipped if not. // (For most types we just pass by value and let copy constructors do their thing.) diff --git a/src/core/SkRecorder.h b/src/core/SkRecorder.h index 0f157b51d8..c93ee63430 100644 --- a/src/core/SkRecorder.h +++ b/src/core/SkRecorder.h @@ -9,8 +9,8 @@ #define SkRecorder_DEFINED #include "SkBigPicture.h" -#include "SkCanvas.h" #include "SkMiniRecorder.h" +#include "SkNoDrawCanvas.h" #include "SkRecord.h" #include "SkRecords.h" #include "SkTDArray.h" @@ -36,7 +36,7 @@ private: // SkRecorder provides an SkCanvas interface for recording into an SkRecord. -class SkRecorder : public SkCanvas { +class SkRecorder final : public SkNoDrawCanvas { public: // Does not take ownership of the SkRecord. SkRecorder(SkRecord*, int width, int height, SkMiniRecorder* = nullptr); // legacy version diff --git a/src/pipe/SkPipeCanvas.cpp b/src/pipe/SkPipeCanvas.cpp index 43235c3e68..1614bbd6b8 100644 --- a/src/pipe/SkPipeCanvas.cpp +++ b/src/pipe/SkPipeCanvas.cpp @@ -208,7 +208,7 @@ public: /////////////////////////////////////////////////////////////////////////////////////////////////// SkPipeCanvas::SkPipeCanvas(const SkRect& cull, SkPipeDeduper* deduper, SkWStream* stream) - : INHERITED(cull.roundOut(), SkCanvas::kConservativeRasterClip_InitFlag) + : INHERITED(cull.roundOut()) , fDeduper(deduper) , fStream(stream) {} diff --git a/src/pipe/SkPipeCanvas.h b/src/pipe/SkPipeCanvas.h index 508c2a1ba5..e7b99bdd93 100644 --- a/src/pipe/SkPipeCanvas.h +++ b/src/pipe/SkPipeCanvas.h @@ -8,9 +8,9 @@ #ifndef SkPipeCanvas_DEFINED #define SkPipeCanvas_DEFINED -#include "SkCanvas.h" #include "SkDeduper.h" #include "SkImage.h" +#include "SkNoDrawCanvas.h" #include "SkPipe.h" #include "SkTypeface.h" #include "SkWriteBuffer.h" @@ -89,7 +89,7 @@ private: }; -class SkPipeCanvas : public SkCanvas { +class SkPipeCanvas : public SkNoDrawCanvas { public: SkPipeCanvas(const SkRect& cull, SkPipeDeduper*, SkWStream*); ~SkPipeCanvas() override; @@ -165,7 +165,7 @@ private: friend class SkPipeWriter; - typedef SkCanvas INHERITED; + typedef SkNoDrawCanvas INHERITED; }; diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index 19cfc97d41..aad8199864 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -45,7 +45,7 @@ void SkDeferredCanvas::Rec::setConcat(const SkMatrix& m) { /////////////////////////////////////////////////////////////////////////////////////////////////// SkDeferredCanvas::SkDeferredCanvas(SkCanvas* canvas) - : SkCanvas({0,0,1,1}, SkCanvas::kConservativeRasterClip_InitFlag) { + : INHERITED(1, 1) { this->reset(canvas); } diff --git a/src/utils/SkDeferredCanvas.h b/src/utils/SkDeferredCanvas.h index 38ee0cbccf..2549540943 100644 --- a/src/utils/SkDeferredCanvas.h +++ b/src/utils/SkDeferredCanvas.h @@ -10,9 +10,9 @@ #define SkDeferredCanvas_DEFINED #include "../private/SkTDArray.h" -#include "SkCanvas.h" +#include "SkNoDrawCanvas.h" -class SK_API SkDeferredCanvas : public SkCanvas { +class SK_API SkDeferredCanvas : public SkNoDrawCanvas { public: SkDeferredCanvas(SkCanvas* = nullptr); ~SkDeferredCanvas() override; @@ -149,7 +149,7 @@ private: void internal_flush_translate(SkScalar* x, SkScalar* y, const SkRect* boundsOrNull); - typedef SkCanvas INHERITED; + typedef SkNoDrawCanvas INHERITED; }; diff --git a/src/utils/SkNWayCanvas.cpp b/src/utils/SkNWayCanvas.cpp index d81a8efbea..3e814d4944 100644 --- a/src/utils/SkNWayCanvas.cpp +++ b/src/utils/SkNWayCanvas.cpp @@ -6,8 +6,7 @@ */ #include "SkNWayCanvas.h" -SkNWayCanvas::SkNWayCanvas(int width, int height) - : INHERITED(SkIRect::MakeWH(width, height), SkCanvas::kConservativeRasterClip_InitFlag) {} +SkNWayCanvas::SkNWayCanvas(int width, int height) : INHERITED(width, height) {} SkNWayCanvas::~SkNWayCanvas() { this->removeAll(); |