diff options
author | reed <reed@google.com> | 2015-02-06 08:02:57 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-06 08:02:57 -0800 |
commit | 4ae9eb7463cf2160723407359608f221c0d5e2a6 (patch) | |
tree | 3c7e641468bf30b164888c00fc3a64e3d2d82a68 /src | |
parent | 7fa87cd09f49f1ee9bc27e263038d0f0ae706241 (diff) |
rename SkCanvasDrawable to SkDrawable, and make public
BUG=skia:
NOTRY=True
... winbuilder flake
Review URL: https://codereview.chromium.org/903993002
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkCanvas.cpp | 6 | ||||
-rw-r--r-- | src/core/SkCanvasDrawable.h | 69 | ||||
-rw-r--r-- | src/core/SkDrawable.cpp (renamed from src/core/SkCanvasDrawable.cpp) | 16 | ||||
-rw-r--r-- | src/core/SkPictureRecorder.cpp | 34 | ||||
-rw-r--r-- | src/core/SkRecordDraw.cpp | 4 | ||||
-rw-r--r-- | src/core/SkRecordDraw.h | 8 | ||||
-rw-r--r-- | src/core/SkRecorder.cpp | 10 | ||||
-rw-r--r-- | src/core/SkRecorder.h | 18 | ||||
-rw-r--r-- | src/core/SkRecords.h | 2 |
9 files changed, 49 insertions, 118 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 055e6737a6..ce99546728 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -6,11 +6,11 @@ */ #include "SkCanvas.h" -#include "SkCanvasDrawable.h" #include "SkCanvasPriv.h" #include "SkBitmapDevice.h" #include "SkDeviceImageFilterProxy.h" #include "SkDraw.h" +#include "SkDrawable.h" #include "SkDrawFilter.h" #include "SkDrawLooper.h" #include "SkImage.h" @@ -2293,13 +2293,13 @@ void SkCanvas::onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], LOOPER_END } -void SkCanvas::EXPERIMENTAL_drawDrawable(SkCanvasDrawable* dr) { +void SkCanvas::drawDrawable(SkDrawable* dr) { if (dr && !this->quickReject(dr->getBounds())) { this->onDrawDrawable(dr); } } -void SkCanvas::onDrawDrawable(SkCanvasDrawable* dr) { +void SkCanvas::onDrawDrawable(SkDrawable* dr) { dr->draw(this); } diff --git a/src/core/SkCanvasDrawable.h b/src/core/SkCanvasDrawable.h deleted file mode 100644 index bc5b4fd351..0000000000 --- a/src/core/SkCanvasDrawable.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2014 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkCanvasDrawable_DEFINED -#define SkCanvasDrawable_DEFINED - -#include "SkRefCnt.h" - -class SkCanvas; -class SkPicture; -struct SkRect; - -/** - * Base-class for objects that draw into SkCanvas. - * - * The object has a generation ID, which is guaranteed to be unique across all drawables. To - * allow for clients of the drawable that may want to cache the results, the drawable must - * change its generation ID whenever its internal state changes such that it will draw differently. - */ -class SkCanvasDrawable : public SkRefCnt { -public: - SkCanvasDrawable(); - - /** - * Draws into the specified content. The drawing sequence will be balanced upon return - * (i.e. the saveLevel() on the canvas will match what it was when draw() was called, - * and the current matrix and clip settings will not be changed. - */ - void draw(SkCanvas*); - - SkPicture* newPictureSnapshot(); - - /** - * Return a unique value for this instance. If two calls to this return the same value, - * it is presumed that calling the draw() method will render the same thing as well. - * - * Subclasses that change their state should call notifyDrawingChanged() to ensure that - * a new value will be returned the next time it is called. - */ - uint32_t getGenerationID(); - - /** - * Return the (conservative) bounds of what the drawable will draw. If the drawable can - * change what it draws (e.g. animation or in response to some external change), then this - * must return a bounds that is always valid for all possible states. - */ - SkRect getBounds(); - - /** - * Calling this invalidates the previous generation ID, and causes a new one to be computed - * the next time getGenerationID() is called. Typically this is called by the object itself, - * in response to its internal state changing. - */ - void notifyDrawingChanged(); - -protected: - virtual SkRect onGetBounds() = 0; - virtual void onDraw(SkCanvas*) = 0; - virtual SkPicture* onNewPictureSnapshot(); - -private: - int32_t fGenerationID; -}; - -#endif diff --git a/src/core/SkCanvasDrawable.cpp b/src/core/SkDrawable.cpp index 99a4996bc9..64fefd2f1c 100644 --- a/src/core/SkCanvasDrawable.cpp +++ b/src/core/SkDrawable.cpp @@ -6,7 +6,7 @@ */ #include "SkCanvas.h" -#include "SkCanvasDrawable.h" +#include "SkDrawable.h" #include "SkThread.h" static int32_t next_generation_id() { @@ -21,7 +21,7 @@ static int32_t next_generation_id() { return genID; } -SkCanvasDrawable::SkCanvasDrawable() : fGenerationID(0) {} +SkDrawable::SkDrawable() : fGenerationID(0) {} static void draw_bbox(SkCanvas* canvas, const SkRect& r) { SkPaint paint; @@ -32,7 +32,7 @@ static void draw_bbox(SkCanvas* canvas, const SkRect& r) { canvas->drawLine(r.left(), r.bottom(), r.right(), r.top(), paint); } -void SkCanvasDrawable::draw(SkCanvas* canvas) { +void SkDrawable::draw(SkCanvas* canvas) { SkAutoCanvasRestore acr(canvas, true); this->onDraw(canvas); @@ -41,22 +41,22 @@ void SkCanvasDrawable::draw(SkCanvas* canvas) { } } -SkPicture* SkCanvasDrawable::newPictureSnapshot() { +SkPicture* SkDrawable::newPictureSnapshot() { return this->onNewPictureSnapshot(); } -uint32_t SkCanvasDrawable::getGenerationID() { +uint32_t SkDrawable::getGenerationID() { if (0 == fGenerationID) { fGenerationID = next_generation_id(); } return fGenerationID; } -SkRect SkCanvasDrawable::getBounds() { +SkRect SkDrawable::getBounds() { return this->onGetBounds(); } -void SkCanvasDrawable::notifyDrawingChanged() { +void SkDrawable::notifyDrawingChanged() { fGenerationID = 0; } @@ -64,7 +64,7 @@ void SkCanvasDrawable::notifyDrawingChanged() { #include "SkPictureRecorder.h" -SkPicture* SkCanvasDrawable::onNewPictureSnapshot() { +SkPicture* SkDrawable::onNewPictureSnapshot() { SkPictureRecorder recorder; const SkRect bounds = this->getBounds(); diff --git a/src/core/SkPictureRecorder.cpp b/src/core/SkPictureRecorder.cpp index 69411d3bc3..42f8732c79 100644 --- a/src/core/SkPictureRecorder.cpp +++ b/src/core/SkPictureRecorder.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "SkCanvasDrawable.h" #include "SkData.h" +#include "SkDrawable.h" #include "SkLayerInfo.h" #include "SkPictureRecorder.h" #include "SkRecord.h" @@ -51,7 +51,7 @@ SkPicture* SkPictureRecorder::endRecordingAsPicture() { saveLayerData.reset(SkNEW_ARGS(SkLayerInfo, (key))); } - SkCanvasDrawableList* drawableList = fRecorder->getDrawableList(); + SkDrawableList* drawableList = fRecorder->getDrawableList(); SkPicture::SnapshotArray* pictList = drawableList ? drawableList->newDrawableSnapshot() : NULL; if (fBBH.get()) { @@ -82,8 +82,8 @@ void SkPictureRecorder::partialReplay(SkCanvas* canvas) const { } int drawableCount = 0; - SkCanvasDrawable* const* drawables = NULL; - SkCanvasDrawableList* drawableList = fRecorder->getDrawableList(); + SkDrawable* const* drawables = NULL; + SkDrawableList* drawableList = fRecorder->getDrawableList(); if (drawableList) { drawableCount = drawableList->count(); drawables = drawableList->begin(); @@ -93,15 +93,15 @@ void SkPictureRecorder::partialReplay(SkCanvas* canvas) const { /////////////////////////////////////////////////////////////////////////////////////////////////// -class SkRecordedDrawable : public SkCanvasDrawable { - SkAutoTUnref<SkRecord> fRecord; - SkAutoTUnref<SkBBoxHierarchy> fBBH; - SkAutoTDelete<SkCanvasDrawableList> fDrawableList; - const SkRect fBounds; - const bool fDoSaveLayerInfo; +class SkRecordedDrawable : public SkDrawable { + SkAutoTUnref<SkRecord> fRecord; + SkAutoTUnref<SkBBoxHierarchy> fBBH; + SkAutoTDelete<SkDrawableList> fDrawableList; + const SkRect fBounds; + const bool fDoSaveLayerInfo; public: - SkRecordedDrawable(SkRecord* record, SkBBoxHierarchy* bbh, SkCanvasDrawableList* drawableList, + SkRecordedDrawable(SkRecord* record, SkBBoxHierarchy* bbh, SkDrawableList* drawableList, const SkRect& bounds, bool doSaveLayerInfo) : fRecord(SkRef(record)) , fBBH(SkSafeRef(bbh)) @@ -114,7 +114,7 @@ protected: SkRect onGetBounds() SK_OVERRIDE { return fBounds; } void onDraw(SkCanvas* canvas) SK_OVERRIDE { - SkCanvasDrawable* const* drawables = NULL; + SkDrawable* const* drawables = NULL; int drawableCount = 0; if (fDrawableList) { drawables = fDrawableList->begin(); @@ -153,7 +153,7 @@ protected: } }; -SkCanvasDrawable* SkPictureRecorder::EXPERIMENTAL_endRecordingAsDrawable() { +SkDrawable* SkPictureRecorder::endRecordingAsDrawable() { // TODO: delay as much of this work until just before first playback? SkRecordOptimize(fRecord); @@ -161,10 +161,10 @@ SkCanvasDrawable* SkPictureRecorder::EXPERIMENTAL_endRecordingAsDrawable() { SkRecordFillBounds(fCullRect, *fRecord, fBBH.get()); } - SkCanvasDrawable* drawable = SkNEW_ARGS(SkRecordedDrawable, - (fRecord, fBBH, fRecorder->detachDrawableList(), - fCullRect, - SkToBool(fFlags & kComputeSaveLayerInfo_RecordFlag))); + SkDrawable* drawable = SkNEW_ARGS(SkRecordedDrawable, + (fRecord, fBBH, fRecorder->detachDrawableList(), + fCullRect, + SkToBool(fFlags & kComputeSaveLayerInfo_RecordFlag))); // release our refs now, so only the drawable will be the owner. fRecorder.reset(NULL); diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp index a59d325eef..3fed8de95c 100644 --- a/src/core/SkRecordDraw.cpp +++ b/src/core/SkRecordDraw.cpp @@ -12,7 +12,7 @@ void SkRecordDraw(const SkRecord& record, SkCanvas* canvas, SkPicture const* const drawablePicts[], - SkCanvasDrawable* const drawables[], + SkDrawable* const drawables[], int drawableCount, const SkBBoxHierarchy* bbh, SkPicture::AbortCallback* callback) { @@ -124,7 +124,7 @@ template <> void Draw::draw(const DrawDrawable& r) { SkASSERT(r.index < fDrawableCount); if (fDrawables) { SkASSERT(NULL == fDrawablePicts); - fCanvas->EXPERIMENTAL_drawDrawable(fDrawables[r.index]); + fCanvas->drawDrawable(fDrawables[r.index]); } else { fCanvas->drawPicture(fDrawablePicts[r.index]); } diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h index 593674eddd..7bbab81b5a 100644 --- a/src/core/SkRecordDraw.h +++ b/src/core/SkRecordDraw.h @@ -13,7 +13,7 @@ #include "SkMatrix.h" #include "SkRecord.h" -class SkCanvasDrawable; +class SkDrawable; class SkLayerInfo; // Fill a BBH to be used by SkRecordDraw to accelerate playback. @@ -25,7 +25,7 @@ void SkRecordComputeLayers(const SkRect& cullRect, const SkRecord& record, // Draw an SkRecord into an SkCanvas. A convenience wrapper around SkRecords::Draw. void SkRecordDraw(const SkRecord&, SkCanvas*, SkPicture const* const drawablePicts[], - SkCanvasDrawable* const drawables[], int drawableCount, + SkDrawable* const drawables[], int drawableCount, const SkBBoxHierarchy*, SkPicture::AbortCallback*); // Draw a portion of an SkRecord into an SkCanvas. @@ -43,7 +43,7 @@ namespace SkRecords { class Draw : SkNoncopyable { public: explicit Draw(SkCanvas* canvas, SkPicture const* const drawablePicts[], - SkCanvasDrawable* const drawables[], int drawableCount, + SkDrawable* const drawables[], int drawableCount, const SkMatrix* initialCTM = NULL) : fInitialCTM(initialCTM ? *initialCTM : canvas->getTotalMatrix()) , fCanvas(canvas) @@ -70,7 +70,7 @@ private: const SkMatrix fInitialCTM; SkCanvas* fCanvas; SkPicture const* const* fDrawablePicts; - SkCanvasDrawable* const* fDrawables; + SkDrawable* const* fDrawables; int fDrawableCount; }; diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp index de16d6244f..aafb540a05 100644 --- a/src/core/SkRecorder.cpp +++ b/src/core/SkRecorder.cpp @@ -9,11 +9,11 @@ #include "SkPatchUtils.h" #include "SkPicture.h" -SkCanvasDrawableList::~SkCanvasDrawableList() { +SkDrawableList::~SkDrawableList() { fArray.unrefAll(); } -SkPicture::SnapshotArray* SkCanvasDrawableList::newDrawableSnapshot() { +SkPicture::SnapshotArray* SkDrawableList::newDrawableSnapshot() { const int count = fArray.count(); if (0 == count) { return NULL; @@ -25,7 +25,7 @@ SkPicture::SnapshotArray* SkCanvasDrawableList::newDrawableSnapshot() { return SkNEW_ARGS(SkPicture::SnapshotArray, (pics.detach(), count)); } -void SkCanvasDrawableList::append(SkCanvasDrawable* drawable) { +void SkDrawableList::append(SkDrawable* drawable) { *fArray.append() = SkRef(drawable); } @@ -143,9 +143,9 @@ void SkRecorder::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, const APPEND(DrawDRRect, delay_copy(paint), outer, inner); } -void SkRecorder::onDrawDrawable(SkCanvasDrawable* drawable) { +void SkRecorder::onDrawDrawable(SkDrawable* drawable) { if (!fDrawableList) { - fDrawableList.reset(SkNEW(SkCanvasDrawableList)); + fDrawableList.reset(SkNEW(SkDrawableList)); } fDrawableList->append(drawable); APPEND(DrawDrawable, drawable->getBounds(), fDrawableList->count() - 1); diff --git a/src/core/SkRecorder.h b/src/core/SkRecorder.h index 611dbbdcd7..130dce9ebc 100644 --- a/src/core/SkRecorder.h +++ b/src/core/SkRecorder.h @@ -15,20 +15,20 @@ class SkBBHFactory; -class SkCanvasDrawableList : SkNoncopyable { +class SkDrawableList : SkNoncopyable { public: - ~SkCanvasDrawableList(); + ~SkDrawableList(); int count() const { return fArray.count(); } - SkCanvasDrawable* const* begin() const { return fArray.begin(); } + SkDrawable* const* begin() const { return fArray.begin(); } - void append(SkCanvasDrawable* drawable); + void append(SkDrawable* drawable); // Return a new or ref'd array of pictures that were snapped from our drawables. SkPicture::SnapshotArray* newDrawableSnapshot(); private: - SkTDArray<SkCanvasDrawable*> fArray; + SkTDArray<SkDrawable*> fArray; }; // SkRecorder provides an SkCanvas interface for recording into an SkRecord. @@ -39,8 +39,8 @@ public: SkRecorder(SkRecord*, int width, int height); // legacy version SkRecorder(SkRecord*, const SkRect& bounds); - SkCanvasDrawableList* getDrawableList() const { return fDrawableList.get(); } - SkCanvasDrawableList* detachDrawableList() { return fDrawableList.detach(); } + SkDrawableList* getDrawableList() const { return fDrawableList.get(); } + SkDrawableList* detachDrawableList() { return fDrawableList.detach(); } // Make SkRecorder forget entirely about its SkRecord*; all calls to SkRecorder will fail. void forgetRecord(); @@ -54,7 +54,7 @@ public: void didSetMatrix(const SkMatrix&) SK_OVERRIDE; void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) SK_OVERRIDE; - void onDrawDrawable(SkCanvasDrawable*) SK_OVERRIDE; + void onDrawDrawable(SkDrawable*) SK_OVERRIDE; void onDrawText(const void* text, size_t byteLength, SkScalar x, @@ -131,7 +131,7 @@ private: SkRecord* fRecord; - SkAutoTDelete<SkCanvasDrawableList> fDrawableList; + SkAutoTDelete<SkDrawableList> fDrawableList; }; #endif//SkRecorder_DEFINED diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h index 522bf68b49..319d155054 100644 --- a/src/core/SkRecords.h +++ b/src/core/SkRecords.h @@ -9,7 +9,7 @@ #define SkRecords_DEFINED #include "SkCanvas.h" -#include "SkCanvasDrawable.h" +#include "SkDrawable.h" #include "SkPicture.h" #include "SkTextBlob.h" |