Index: cc/layers/picture_layer.cc |
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc |
index d7345389ac465ceb03e7718e00f602e3e55d3c43..55241d0a16f4c43125e3cdb09c95a104f23b6f2f 100644 |
--- a/cc/layers/picture_layer.cc |
+++ b/cc/layers/picture_layer.cc |
@@ -7,6 +7,7 @@ |
#include "base/auto_reset.h" |
#include "cc/layers/content_layer_client.h" |
#include "cc/layers/picture_layer_impl.h" |
+#include "cc/resources/display_list_recording_source.h" |
#include "cc/resources/picture_pile.h" |
#include "cc/trees/layer_tree_impl.h" |
#include "third_party/skia/include/core/SkPictureRecorder.h" |
@@ -20,7 +21,6 @@ scoped_refptr<PictureLayer> PictureLayer::Create(ContentLayerClient* client) { |
PictureLayer::PictureLayer(ContentLayerClient* client) |
: client_(client), |
- recording_source_(new PicturePile), |
instrumentation_object_tracker_(id()), |
update_source_frame_number_(-1), |
can_use_lcd_text_for_update_(true), |
@@ -79,6 +79,13 @@ void PictureLayer::PushPropertiesTo(LayerImpl* base_layer) { |
void PictureLayer::SetLayerTreeHost(LayerTreeHost* host) { |
Layer::SetLayerTreeHost(host); |
if (host) { |
+ if (!recording_source_) { |
+ if (host->settings().use_display_lists) { |
+ recording_source_.reset(new DisplayListRecordingSource); |
+ } else { |
+ recording_source_.reset(new PicturePile); |
+ } |
+ } |
recording_source_->SetMinContentsScale( |
host->settings().minimum_contents_scale); |
recording_source_->SetTileGridSize(host->settings().default_tile_grid_size); |