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

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

Issue 1130123003: cc: Separate the priority from the tile and put in new PrioritizedTile (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_TILING_SET_RASTER_QUEUE_REQUIRED_H_ 5 #ifndef CC_RESOURCES_TILING_SET_RASTER_QUEUE_REQUIRED_H_
6 #define CC_RESOURCES_TILING_SET_RASTER_QUEUE_REQUIRED_H_ 6 #define CC_RESOURCES_TILING_SET_RASTER_QUEUE_REQUIRED_H_
7 7
8 #include "cc/base/cc_export.h" 8 #include "cc/base/cc_export.h"
9 #include "cc/resources/picture_layer_tiling_set.h" 9 #include "cc/resources/picture_layer_tiling_set.h"
10 #include "cc/resources/raster_tile_priority_queue.h" 10 #include "cc/resources/raster_tile_priority_queue.h"
11 #include "cc/resources/tile.h" 11 #include "cc/resources/tile.h"
12 12
13 namespace cc { 13 namespace cc {
14 14
15 // This queue only returns tiles that are required for either activation or 15 // This queue only returns tiles that are required for either activation or
16 // draw, as specified by RasterTilePriorityQueue::Type passed in the 16 // draw, as specified by RasterTilePriorityQueue::Type passed in the
17 // constructor. 17 // constructor.
18 class CC_EXPORT TilingSetRasterQueueRequired { 18 class CC_EXPORT TilingSetRasterQueueRequired {
19 public: 19 public:
20 TilingSetRasterQueueRequired(PictureLayerTilingSet* tiling_set, 20 TilingSetRasterQueueRequired(PictureLayerTilingSet* tiling_set,
21 RasterTilePriorityQueue::Type type); 21 RasterTilePriorityQueue::Type type);
22 ~TilingSetRasterQueueRequired(); 22 ~TilingSetRasterQueueRequired();
23 23
24 Tile* Top(); 24 const PrioritizedTile& Top() const;
25 const Tile* Top() const;
26 void Pop(); 25 void Pop();
27 bool IsEmpty() const; 26 bool IsEmpty() const;
28 27
29 private: 28 private:
30 // This iterator will return all tiles that are in the NOW bin on the given 29 // This iterator will return all tiles that are in the NOW bin on the given
31 // tiling. The queue can then use these tiles and further filter them based on 30 // tiling. The queue can then use these tiles and further filter them based on
32 // whether they are required or not. 31 // whether they are required or not.
33 class TilingIterator { 32 class TilingIterator {
34 public: 33 public:
35 TilingIterator(); 34 TilingIterator();
36 explicit TilingIterator(PictureLayerTiling* tiling, 35 explicit TilingIterator(PictureLayerTiling* tiling,
37 TilingData* tiling_data, 36 TilingData* tiling_data,
38 const gfx::Rect& rect); 37 const gfx::Rect& rect);
39 ~TilingIterator(); 38 ~TilingIterator();
40 39
41 bool done() const { return current_tile_ == nullptr; } 40 bool done() const { return !current_tile_.tile(); }
42 const Tile* operator*() const { return current_tile_; } 41 const PrioritizedTile& operator*() const { return current_tile_; }
43 Tile* operator*() { return current_tile_; }
44 TilingIterator& operator++(); 42 TilingIterator& operator++();
45 43
46 private: 44 private:
47 PictureLayerTiling* tiling_; 45 PictureLayerTiling* tiling_;
48 TilingData* tiling_data_; 46 TilingData* tiling_data_;
49 47
50 Tile* current_tile_; 48 PrioritizedTile current_tile_;
51 TilingData::Iterator visible_iterator_; 49 TilingData::Iterator visible_iterator_;
52 }; 50 };
53 51
54 bool IsTileRequired(const Tile* tile) const; 52 bool IsTileRequired(const PrioritizedTile& prioritized_tile) const;
55 53
56 TilingIterator iterator_; 54 TilingIterator iterator_;
57 RasterTilePriorityQueue::Type type_; 55 RasterTilePriorityQueue::Type type_;
58 }; 56 };
59 57
60 } // namespace cc 58 } // namespace cc
61 59
62 #endif // CC_RESOURCES_TILING_SET_RASTER_QUEUE_REQUIRED_H_ 60 #endif // CC_RESOURCES_TILING_SET_RASTER_QUEUE_REQUIRED_H_
OLDNEW
« no previous file with comments | « cc/resources/tiling_set_raster_queue_all.cc ('k') | cc/resources/tiling_set_raster_queue_required.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698