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

Unified Diff: cc/resources/picture.cc

Issue 362073002: cc: Remove all traces of SkPicture cloning. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 4 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 | « cc/resources/picture.h ('k') | cc/resources/picture_layer_tiling.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/picture.cc
diff --git a/cc/resources/picture.cc b/cc/resources/picture.cc
index 5bfb77621b4d6d56542fcbbd88e2dd573b938ed7..06e9cc93f1455390870be13579fda9950ba4ac64 100644
--- a/cc/resources/picture.cc
+++ b/cc/resources/picture.cc
@@ -89,14 +89,12 @@ scoped_refptr<Picture> Picture::Create(
ContentLayerClient* client,
const SkTileGridFactory::TileGridInfo& tile_grid_info,
bool gather_pixel_refs,
- int num_raster_threads,
RecordingMode recording_mode) {
scoped_refptr<Picture> picture = make_scoped_refptr(new Picture(layer_rect));
picture->Record(client, tile_grid_info, recording_mode);
if (gather_pixel_refs)
picture->GatherPixelRefs(tile_grid_info);
- picture->CloneForDrawing(num_raster_threads);
return picture;
}
@@ -192,18 +190,6 @@ Picture::~Picture() {
TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::Picture", this);
}
-Picture* Picture::GetCloneForDrawingOnThread(unsigned thread_index) {
- // We don't need clones to draw from multiple threads with SkRecord.
- if (playback_) {
- return this;
- }
-
- // SkPicture is not thread-safe to rasterize with, this returns a clone
- // to rasterize with on a specific thread.
- CHECK_GE(clones_.size(), thread_index);
- return thread_index == clones_.size() ? this : clones_[thread_index].get();
-}
-
bool Picture::IsSuitableForGpuRasterization() const {
DCHECK(picture_);
@@ -222,35 +208,6 @@ bool Picture::HasText() const {
return picture_->hasText();
}
-void Picture::CloneForDrawing(int num_threads) {
- TRACE_EVENT1("cc", "Picture::CloneForDrawing", "num_threads", num_threads);
-
- // We don't need clones to draw from multiple threads with SkRecord.
- if (playback_) {
- return;
- }
-
- DCHECK(picture_);
- DCHECK(clones_.empty());
-
- // We can re-use this picture for one raster worker thread.
- raster_thread_checker_.DetachFromThread();
-
- if (num_threads > 1) {
- for (int i = 0; i < num_threads - 1; i++) {
- scoped_refptr<Picture> clone =
- new Picture(skia::AdoptRef(picture_->clone()),
- layer_rect_,
- opaque_rect_,
- pixel_refs_);
- clones_.push_back(clone);
-
- clone->EmitTraceSnapshotAlias(this);
- clone->raster_thread_checker_.DetachFromThread();
- }
- }
-}
-
void Picture::Record(ContentLayerClient* painter,
const SkTileGridFactory::TileGridInfo& tile_grid_info,
RecordingMode recording_mode) {
@@ -386,13 +343,10 @@ void Picture::GatherPixelRefs(
max_pixel_cell_ = gfx::Point(max_x, max_y);
}
-int Picture::Raster(
- SkCanvas* canvas,
- SkDrawPictureCallback* callback,
- const Region& negated_content_region,
- float contents_scale) {
- if (!playback_)
- DCHECK(raster_thread_checker_.CalledOnValidThread());
+int Picture::Raster(SkCanvas* canvas,
+ SkDrawPictureCallback* callback,
+ const Region& negated_content_region,
+ float contents_scale) const {
TRACE_EVENT_BEGIN1(
"cc",
"Picture::Raster",
@@ -423,8 +377,6 @@ int Picture::Raster(
}
void Picture::Replay(SkCanvas* canvas) {
- if (!playback_)
- DCHECK(raster_thread_checker_.CalledOnValidThread());
TRACE_EVENT_BEGIN0("cc", "Picture::Replay");
DCHECK(picture_);
« no previous file with comments | « cc/resources/picture.h ('k') | cc/resources/picture_layer_tiling.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698