Revert of SkCanvas::resetForNextPicture() (patchset #4 id:60001 of https://codereview.chromium.org/1067893002/)

Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia/builders/Linux%20Tests/builds/1816

Original issue's description:
> SkCanvas::resetForNextPicture()
>
> No diffs against head for DM --config 8888 gpu 2ndpic-8888 2ndpic-gpu.
>
>   picture_overhead_draw	1.62us ->  1.6us	0.99x
> picture_overhead_nodraw	 792ns ->  342ns	0.43x
>
> tiles and serialization modes will also test this a bit.
>
> BUG=chromium:470553
>
> Committed: https://skia.googlesource.com/skia/+/f920e468ac66a36c9653d1b11181480295044c7d

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:470553

Review URL: https://codereview.chromium.org/1062353002
This commit is contained in:
mtklein 2015-04-07 15:27:14 -07:00 committed by Commit bot
parent f920e468ac
commit c654e9016a
7 changed files with 4 additions and 51 deletions

View File

@ -150,8 +150,6 @@ private:
SkBitmap fBitmap;
void setNewSize(const SkISize&); // Used by SkCanvas for resetForNextPicture().
typedef SkBaseDevice INHERITED;
};

View File

@ -1301,8 +1301,6 @@ private:
SkCanvas(const SkIRect& bounds, InitFlags);
SkCanvas(SkBaseDevice*, const SkSurfaceProps*, InitFlags);
void resetForNextPicture(const SkIRect& bounds);
// needs gettotalclip()
friend class SkCanvasStateUtils;

View File

@ -103,11 +103,6 @@ SkImageInfo SkBitmapDevice::imageInfo() const {
return fBitmap.info();
}
void SkBitmapDevice::setNewSize(const SkISize& size) {
SkASSERT(!fBitmap.pixelRef());
fBitmap.setInfo(fBitmap.info().makeWH(size.fWidth, size.fHeight));
}
void SkBitmapDevice::replaceBitmapBackendForRasterSurface(const SkBitmap& bm) {
SkASSERT(bm.width() == fBitmap.width());
SkASSERT(bm.height() == fBitmap.height());

View File

@ -135,13 +135,6 @@ struct DeviceCM {
SkDELETE(fPaint);
}
void reset(const SkIRect& bounds) {
SkASSERT(!fPaint);
SkASSERT(!fNext);
SkASSERT(fDevice);
fClip.setRect(bounds);
}
void updateMC(const SkMatrix& totalMatrix, const SkRasterClip& totalClip,
const SkClipStack& clipStack, SkRasterClip* updateClip) {
int x = fDevice->getOrigin().x();
@ -231,15 +224,6 @@ public:
SkDELETE(fLayer);
dec_rec();
}
void reset(const SkIRect& bounds) {
SkASSERT(fLayer);
SkASSERT(fDeferredSaveCount == 0);
fMatrix.reset();
fRasterClip.setRect(bounds);
fLayer->reset(bounds);
}
};
class SkDrawIter : public SkDraw {
@ -441,18 +425,6 @@ bool AutoDrawLooper::doNext(SkDrawFilter::Type drawType) {
////////////////////////////////////////////////////////////////////////////
void SkCanvas::resetForNextPicture(const SkIRect& bounds) {
this->restoreToCount(1);
fCachedLocalClipBounds.setEmpty();
fCachedLocalClipBoundsDirty = true;
fClipStack->reset();
fMCRec->reset(bounds);
// We're peering through a lot of structs here. Only at this scope do we
// know that the device is an SkBitmapDevice (really an SkNoPixelsBitmapDevice).
static_cast<SkBitmapDevice*>(fMCRec->fLayer->fDevice)->setNewSize(bounds.size());
}
SkBaseDevice* SkCanvas::init(SkBaseDevice* device, InitFlags flags) {
fConservativeRasterClip = SkToBool(flags & kConservativeRasterClip_InitFlag);
fCachedLocalClipBounds.setEmpty();

View File

@ -15,9 +15,7 @@
#include "SkRecordOpts.h"
#include "SkTypes.h"
SkPictureRecorder::SkPictureRecorder() {
fRecorder.reset(SkNEW_ARGS(SkRecorder, (nullptr, SkRect::MakeWH(0,0))));
}
SkPictureRecorder::SkPictureRecorder() {}
SkPictureRecorder::~SkPictureRecorder() {}
@ -33,7 +31,7 @@ SkCanvas* SkPictureRecorder::beginRecording(const SkRect& cullRect,
}
fRecord.reset(SkNEW(SkRecord));
fRecorder->reset(fRecord.get(), cullRect);
fRecorder.reset(SkNEW_ARGS(SkRecorder, (fRecord.get(), cullRect)));
return this->getRecordingCanvas();
}
@ -42,7 +40,6 @@ SkCanvas* SkPictureRecorder::getRecordingCanvas() {
}
SkPicture* SkPictureRecorder::endRecordingAsPicture() {
fRecorder->restoreToCount(1); // If we were missing any restores, add them now.
// TODO: delay as much of this work until just before first playback?
SkRecordOptimize(fRecord);
@ -76,6 +73,7 @@ SkPicture* SkPictureRecorder::endRecordingAsPicture() {
}
// release our refs now, so only the picture will be the owner.
fRecorder.reset(NULL);
fRecord.reset(NULL);
fBBH.reset(NULL);
@ -160,7 +158,6 @@ protected:
};
SkDrawable* SkPictureRecorder::endRecordingAsDrawable() {
fRecorder->restoreToCount(1); // If we were missing any restores, add them now.
// TODO: delay as much of this work until just before first playback?
SkRecordOptimize(fRecord);
@ -174,6 +171,7 @@ SkDrawable* SkPictureRecorder::endRecordingAsDrawable() {
SkToBool(fFlags & kComputeSaveLayerInfo_RecordFlag)));
// release our refs now, so only the drawable will be the owner.
fRecorder.reset(NULL);
fRecord.reset(NULL);
fBBH.reset(NULL);

View File

@ -39,12 +39,6 @@ SkRecorder::SkRecorder(SkRecord* record, const SkRect& bounds)
: SkCanvas(bounds.roundOut(), SkCanvas::kConservativeRasterClip_InitFlag)
, fRecord(record) {}
void SkRecorder::reset(SkRecord* record, const SkRect& bounds) {
this->forgetRecord();
fRecord = record;
this->resetForNextPicture(bounds.roundOut());
}
void SkRecorder::forgetRecord() {
fDrawableList.reset(NULL);
fRecord = NULL;

View File

@ -39,8 +39,6 @@ public:
SkRecorder(SkRecord*, int width, int height); // legacy version
SkRecorder(SkRecord*, const SkRect& bounds);
void reset(SkRecord*, const SkRect& bounds);
SkDrawableList* getDrawableList() const { return fDrawableList.get(); }
SkDrawableList* detachDrawableList() { return fDrawableList.detach(); }