Index: cc/resources/picture_layer_tiling_set.cc |
diff --git a/cc/resources/picture_layer_tiling_set.cc b/cc/resources/picture_layer_tiling_set.cc |
index a0000b6e697450deedc814bef8c21920c400a99a..d523dee3d76ede35c11a083823b4d633c8100edc 100644 |
--- a/cc/resources/picture_layer_tiling_set.cc |
+++ b/cc/resources/picture_layer_tiling_set.cc |
@@ -19,8 +19,16 @@ class LargestToSmallestScaleFunctor { |
} // namespace |
-PictureLayerTilingSet::PictureLayerTilingSet(PictureLayerTilingClient* client) |
- : client_(client) { |
+// static |
+scoped_ptr<PictureLayerTilingSet> PictureLayerTilingSet::Create( |
+ PictureLayerTilingClient* client, |
+ RasterSource* raster_source) { |
+ return make_scoped_ptr(new PictureLayerTilingSet(client, raster_source)); |
+} |
+ |
+PictureLayerTilingSet::PictureLayerTilingSet(PictureLayerTilingClient* client, |
+ RasterSource* raster_source) |
+ : client_(client), raster_source_(raster_source) { |
} |
PictureLayerTilingSet::~PictureLayerTilingSet() { |
@@ -32,6 +40,10 @@ void PictureLayerTilingSet::SetClient(PictureLayerTilingClient* client) { |
tilings_[i]->SetClient(client_); |
} |
+void PictureLayerTilingSet::SetRasterSource(RasterSource* raster_source) { |
+ raster_source_ = raster_source; |
+} |
+ |
void PictureLayerTilingSet::RemoveTilesInRegion(const Region& region) { |
for (size_t i = 0; i < tilings_.size(); ++i) |
tilings_[i]->RemoveTilesInRegion(region); |
@@ -59,6 +71,7 @@ bool PictureLayerTilingSet::SyncTilings(const PictureLayerTilingSet& other, |
--i; |
} |
+ DCHECK(raster_source_); |
bool have_high_res_tiling = false; |
// Add any missing tilings from |other| that meet the minimum. |
@@ -69,8 +82,8 @@ bool PictureLayerTilingSet::SyncTilings(const PictureLayerTilingSet& other, |
if (PictureLayerTiling* this_tiling = TilingAtScale(contents_scale)) { |
this_tiling->set_resolution(other.tilings_[i]->resolution()); |
- this_tiling->UpdateTilesToCurrentRasterSource(layer_invalidation, |
- new_layer_bounds); |
+ this_tiling->UpdateTilesToCurrentRasterSource( |
+ raster_source_, layer_invalidation, new_layer_bounds); |
this_tiling->CreateMissingTilesInLiveTilesRect(); |
if (this_tiling->resolution() == HIGH_RESOLUTION) |
have_high_res_tiling = true; |