Roll src/third_party/WebKit 095aee4:2f230fd (svn 197498:197508)
[chromium-blink-merge.git] / cc / tiles / raster_tile_priority_queue_required.h
blobc554c189869540b3a391ec78cf4eb243d4d92382
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_TILES_RASTER_TILE_PRIORITY_QUEUE_REQUIRED_H_
6 #define CC_TILES_RASTER_TILE_PRIORITY_QUEUE_REQUIRED_H_
8 #include <vector>
10 #include "cc/layers/picture_layer_impl.h"
11 #include "cc/tiles/raster_tile_priority_queue.h"
12 #include "cc/tiles/tiling_set_raster_queue_required.h"
14 namespace cc {
15 class PrioritizedTile;
17 class RasterTilePriorityQueueRequired : public RasterTilePriorityQueue {
18 public:
19 RasterTilePriorityQueueRequired();
20 ~RasterTilePriorityQueueRequired() override;
22 bool IsEmpty() const override;
23 const PrioritizedTile& Top() const override;
24 void Pop() override;
26 private:
27 friend class RasterTilePriorityQueue;
29 void Build(const std::vector<PictureLayerImpl*>& active_layers,
30 const std::vector<PictureLayerImpl*>& pending_layers,
31 Type type);
32 void BuildRequiredForDraw(
33 const std::vector<PictureLayerImpl*>& active_layers);
34 void BuildRequiredForActivation(
35 const std::vector<PictureLayerImpl*>& active_layers,
36 const std::vector<PictureLayerImpl*>& pending_layers);
38 ScopedPtrVector<TilingSetRasterQueueRequired> tiling_set_queues_;
40 DISALLOW_COPY_AND_ASSIGN(RasterTilePriorityQueueRequired);
43 } // namespace cc
45 #endif // CC_TILES_RASTER_TILE_PRIORITY_QUEUE_REQUIRED_H_