aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2015-02-06 08:02:57 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-06 08:02:57 -0800
commit4ae9eb7463cf2160723407359608f221c0d5e2a6 (patch)
tree3c7e641468bf30b164888c00fc3a64e3d2d82a68 /src
parent7fa87cd09f49f1ee9bc27e263038d0f0ae706241 (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.cpp6
-rw-r--r--src/core/SkCanvasDrawable.h69
-rw-r--r--src/core/SkDrawable.cpp (renamed from src/core/SkCanvasDrawable.cpp)16
-rw-r--r--src/core/SkPictureRecorder.cpp34
-rw-r--r--src/core/SkRecordDraw.cpp4
-rw-r--r--src/core/SkRecordDraw.h8
-rw-r--r--src/core/SkRecorder.cpp10
-rw-r--r--src/core/SkRecorder.h18
-rw-r--r--src/core/SkRecords.h2
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"