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

Side by Side Diff: cc/resources/tile_manager.h

Issue 322443002: cc: Refactor how picture layers are exposed to the tile manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_RESOURCES_TILE_MANAGER_H_ 5 #ifndef CC_RESOURCES_TILE_MANAGER_H_
6 #define CC_RESOURCES_TILE_MANAGER_H_ 6 #define CC_RESOURCES_TILE_MANAGER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <queue> 9 #include <queue>
10 #include <set> 10 #include <set>
(...skipping 13 matching lines...) Expand all
24 #include "cc/resources/prioritized_tile_set.h" 24 #include "cc/resources/prioritized_tile_set.h"
25 #include "cc/resources/rasterizer.h" 25 #include "cc/resources/rasterizer.h"
26 #include "cc/resources/resource_pool.h" 26 #include "cc/resources/resource_pool.h"
27 #include "cc/resources/tile.h" 27 #include "cc/resources/tile.h"
28 28
29 namespace cc { 29 namespace cc {
30 class ResourceProvider; 30 class ResourceProvider;
31 31
32 class CC_EXPORT TileManagerClient { 32 class CC_EXPORT TileManagerClient {
33 public: 33 public:
34 // Returns the set of layers that the tile manager should consider for raster.
35 virtual const std::vector<PictureLayerImpl*>& GetPictureLayers() = 0;
36
34 // Called when all tiles marked as required for activation are ready to draw. 37 // Called when all tiles marked as required for activation are ready to draw.
35 virtual void NotifyReadyToActivate() = 0; 38 virtual void NotifyReadyToActivate() = 0;
36 39
37 // Called when the visible representation of a tile might have changed. Some 40 // Called when the visible representation of a tile might have changed. Some
38 // examples are: 41 // examples are:
39 // - Tile version initialized. 42 // - Tile version initialized.
40 // - Tile resources freed. 43 // - Tile resources freed.
41 // - Tile marked for on-demand raster. 44 // - Tile marked for on-demand raster.
42 virtual void NotifyTileStateChanged(const Tile* tile) = 0; 45 virtual void NotifyTileStateChanged(const Tile* tile) = 0;
43 46
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 178
176 scoped_refptr<Tile> CreateTile(PicturePileImpl* picture_pile, 179 scoped_refptr<Tile> CreateTile(PicturePileImpl* picture_pile,
177 const gfx::Size& tile_size, 180 const gfx::Size& tile_size,
178 const gfx::Rect& content_rect, 181 const gfx::Rect& content_rect,
179 const gfx::Rect& opaque_rect, 182 const gfx::Rect& opaque_rect,
180 float contents_scale, 183 float contents_scale,
181 int layer_id, 184 int layer_id,
182 int source_frame_number, 185 int source_frame_number,
183 int flags); 186 int flags);
184 187
185 void RegisterPictureLayerImpl(PictureLayerImpl* layer);
186 void UnregisterPictureLayerImpl(PictureLayerImpl* layer);
187
188 scoped_ptr<base::Value> BasicStateAsValue() const; 188 scoped_ptr<base::Value> BasicStateAsValue() const;
189 scoped_ptr<base::Value> AllTilesAsValue() const; 189 scoped_ptr<base::Value> AllTilesAsValue() const;
190 void GetMemoryStats(size_t* memory_required_bytes, 190 void GetMemoryStats(size_t* memory_required_bytes,
191 size_t* memory_nice_to_have_bytes, 191 size_t* memory_nice_to_have_bytes,
192 size_t* memory_allocated_bytes, 192 size_t* memory_allocated_bytes,
193 size_t* memory_used_bytes) const; 193 size_t* memory_used_bytes) const;
194 194
195 const MemoryHistory::Entry& memory_stats_from_last_assign() const { 195 const MemoryHistory::Entry& memory_stats_from_last_assign() const {
196 return memory_stats_from_last_assign_; 196 return memory_stats_from_last_assign_;
197 } 197 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 283
284 void FreeResourceForTile(Tile* tile, RasterMode mode); 284 void FreeResourceForTile(Tile* tile, RasterMode mode);
285 void FreeResourcesForTile(Tile* tile); 285 void FreeResourcesForTile(Tile* tile);
286 void FreeUnusedResourcesForTile(Tile* tile); 286 void FreeUnusedResourcesForTile(Tile* tile);
287 void FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(Tile* tile); 287 void FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(Tile* tile);
288 scoped_refptr<ImageDecodeTask> CreateImageDecodeTask(Tile* tile, 288 scoped_refptr<ImageDecodeTask> CreateImageDecodeTask(Tile* tile,
289 SkPixelRef* pixel_ref); 289 SkPixelRef* pixel_ref);
290 scoped_refptr<RasterTask> CreateRasterTask(Tile* tile); 290 scoped_refptr<RasterTask> CreateRasterTask(Tile* tile);
291 scoped_ptr<base::Value> GetMemoryRequirementsAsValue() const; 291 scoped_ptr<base::Value> GetMemoryRequirementsAsValue() const;
292 void UpdatePrioritizedTileSetIfNeeded(); 292 void UpdatePrioritizedTileSetIfNeeded();
293 void CleanUpLayers();
294 293
295 bool IsReadyToActivate() const; 294 bool IsReadyToActivate() const;
296 void CheckIfReadyToActivate(); 295 void CheckIfReadyToActivate();
297 296
298 TileManagerClient* client_; 297 TileManagerClient* client_;
299 scoped_refptr<base::SequencedTaskRunner> task_runner_; 298 scoped_refptr<base::SequencedTaskRunner> task_runner_;
300 ResourcePool* resource_pool_; 299 ResourcePool* resource_pool_;
301 Rasterizer* rasterizer_; 300 Rasterizer* rasterizer_;
302 GlobalStateThatImpactsTilePriority global_state_; 301 GlobalStateThatImpactsTilePriority global_state_;
303 302
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 335
337 std::vector<Tile*> released_tiles_; 336 std::vector<Tile*> released_tiles_;
338 337
339 ResourceFormat resource_format_; 338 ResourceFormat resource_format_;
340 339
341 // Queue used when scheduling raster tasks. 340 // Queue used when scheduling raster tasks.
342 RasterTaskQueue raster_queue_; 341 RasterTaskQueue raster_queue_;
343 342
344 std::vector<scoped_refptr<RasterTask> > orphan_raster_tasks_; 343 std::vector<scoped_refptr<RasterTask> > orphan_raster_tasks_;
345 344
346 std::vector<PictureLayerImpl*> layers_;
347
348 UniqueNotifier ready_to_activate_check_notifier_; 345 UniqueNotifier ready_to_activate_check_notifier_;
349 346
350 DISALLOW_COPY_AND_ASSIGN(TileManager); 347 DISALLOW_COPY_AND_ASSIGN(TileManager);
351 }; 348 };
352 349
353 } // namespace cc 350 } // namespace cc
354 351
355 #endif // CC_RESOURCES_TILE_MANAGER_H_ 352 #endif // CC_RESOURCES_TILE_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698