Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1006)

Unified Diff: src/core/SkBigPicture.cpp

Issue 1130283004: Revert of Sketch splitting SkPicture into an interface and SkBigPicture. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkBigPicture.h ('k') | src/core/SkLayerInfo.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkBigPicture.cpp
diff --git a/src/core/SkBigPicture.cpp b/src/core/SkBigPicture.cpp
deleted file mode 100644
index 6609586ca2a4907849e63988436cd1366f159f18..0000000000000000000000000000000000000000
--- a/src/core/SkBigPicture.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkBBoxHierarchy.h"
-#include "SkBigPicture.h"
-#include "SkPictureCommon.h"
-#include "SkRecord.h"
-#include "SkRecordDraw.h"
-
-SkBigPicture::SkBigPicture(const SkRect& cull,
- SkRecord* record,
- SnapshotArray* drawablePicts,
- SkBBoxHierarchy* bbh,
- AccelData* accelData,
- size_t approxBytesUsedBySubPictures)
- : fCullRect(cull)
- , fApproxBytesUsedBySubPictures(approxBytesUsedBySubPictures)
- , fRecord(record) // Take ownership of caller's ref.
- , fDrawablePicts(drawablePicts) // Take ownership.
- , fBBH(bbh) // Take ownership of caller's ref.
- , fAccelData(accelData) // Take ownership of caller's ref.
-{}
-
-void SkBigPicture::playback(SkCanvas* canvas, AbortCallback* callback) const {
- SkASSERT(canvas);
-
- // If the query contains the whole picture, don't bother with the BBH.
- SkRect clipBounds = { 0, 0, 0, 0 };
- (void)canvas->getClipBounds(&clipBounds);
- const bool useBBH = !clipBounds.contains(this->cullRect());
-
- SkRecordDraw(*fRecord,
- canvas,
- this->drawablePicts(),
- nullptr,
- this->drawableCount(),
- useBBH ? fBBH.get() : nullptr,
- callback);
-}
-
-void SkBigPicture::partialPlayback(SkCanvas* canvas,
- unsigned start,
- unsigned stop,
- const SkMatrix& initialCTM) const {
- SkASSERT(canvas);
- SkRecordPartialDraw(*fRecord,
- canvas,
- this->drawablePicts(),
- this->drawableCount(),
- start,
- stop,
- initialCTM);
-}
-
-const SkBigPicture::Analysis& SkBigPicture::analysis() const {
- auto create = [&]() { return SkNEW_ARGS(Analysis, (*fRecord)); };
- return *fAnalysis.get(create);
-}
-
-SkRect SkBigPicture::cullRect() const { return fCullRect; }
-bool SkBigPicture::hasText() const { return this->analysis().fHasText; }
-bool SkBigPicture::willPlayBackBitmaps() const { return this->analysis().fWillPlaybackBitmaps; }
-int SkBigPicture::numSlowPaths() const { return this->analysis().fNumSlowPathsAndDashEffects; }
-int SkBigPicture::approximateOpCount() const { return fRecord->count(); }
-size_t SkBigPicture::approximateBytesUsed() const {
- size_t bytes = sizeof(*this) + fRecord->bytesUsed() + fApproxBytesUsedBySubPictures;
- if (fBBH) { bytes += fBBH->bytesUsed(); }
- return bytes;
-}
-
-int SkBigPicture::drawableCount() const {
- return fDrawablePicts ? fDrawablePicts->count() : 0;
-}
-
-SkPicture const* const* SkBigPicture::drawablePicts() const {
- return fDrawablePicts ? fDrawablePicts->begin() : nullptr;
-}
-
-SkBigPicture::Analysis::Analysis(const SkRecord& record) {
- SkTextHunter text;
- SkBitmapHunter bitmap;
- SkPathCounter path;
-
- bool hasText = false, hasBitmap = false;
- for (unsigned i = 0; i < record.count(); i++) {
- hasText = hasText || record.visit<bool>(i, text);
- hasBitmap = hasBitmap || record.visit<bool>(i, bitmap);
- record.visit<void>(i, path);
- }
-
- fHasText = hasText;
- fWillPlaybackBitmaps = hasBitmap;
- fNumSlowPathsAndDashEffects = SkTMin<int>(path.fNumSlowPathsAndDashEffects, 255);
-}
« no previous file with comments | « src/core/SkBigPicture.h ('k') | src/core/SkLayerInfo.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698