| Index: cc/surfaces/surface_aggregator.h
|
| diff --git a/cc/surfaces/surface_aggregator.h b/cc/surfaces/surface_aggregator.h
|
| index ec69f5d3319f7702056a1f18dc3a3d24580eab83..5fe0c3d724478e81e88021c85921de81a3b2e9f4 100644
|
| --- a/cc/surfaces/surface_aggregator.h
|
| +++ b/cc/surfaces/surface_aggregator.h
|
| @@ -5,12 +5,10 @@
|
| #ifndef CC_SURFACES_SURFACE_AGGREGATOR_H_
|
| #define CC_SURFACES_SURFACE_AGGREGATOR_H_
|
|
|
| -#include <map>
|
| #include <memory>
|
| -#include <set>
|
| -#include <unordered_map>
|
| -#include <unordered_set>
|
|
|
| +#include "base/containers/flat_map.h"
|
| +#include "base/containers/flat_set.h"
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "cc/quads/draw_quad.h"
|
| @@ -30,7 +28,7 @@ class SurfaceManager;
|
|
|
| class CC_SURFACES_EXPORT SurfaceAggregator {
|
| public:
|
| - using SurfaceIndexMap = std::unordered_map<SurfaceId, int, SurfaceIdHash>;
|
| + using SurfaceIndexMap = base::flat_map<SurfaceId, int>;
|
|
|
| SurfaceAggregator(SurfaceManager* manager,
|
| ResourceProvider* provider,
|
| @@ -65,7 +63,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
|
| ~PrewalkResult();
|
| // This is the set of Surfaces that were referenced by another Surface, but
|
| // not included in a SurfaceDrawQuad.
|
| - std::set<SurfaceId> undrawn_surfaces;
|
| + base::flat_set<SurfaceId> undrawn_surfaces;
|
| bool may_contain_video = false;
|
| };
|
|
|
| @@ -145,9 +143,8 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
|
| // each source (SurfaceId, RenderPass id) to a unified ID namespace that's
|
| // used in the aggregated frame. An entry is removed from the map if it's not
|
| // used for one output frame.
|
| - using RenderPassIdAllocatorMap =
|
| - std::map<std::pair<SurfaceId, int>, RenderPassInfo>;
|
| - RenderPassIdAllocatorMap render_pass_allocator_map_;
|
| + base::flat_map<std::pair<SurfaceId, int>, RenderPassInfo>
|
| + render_pass_allocator_map_;
|
| int next_render_pass_id_;
|
| const bool aggregate_only_damaged_;
|
| bool output_is_secure_;
|
| @@ -162,9 +159,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
|
| // The id for the final color conversion render pass.
|
| int color_conversion_render_pass_id_ = 0;
|
|
|
| - using SurfaceToResourceChildIdMap =
|
| - std::unordered_map<SurfaceId, int, SurfaceIdHash>;
|
| - SurfaceToResourceChildIdMap surface_id_to_resource_child_id_;
|
| + base::flat_map<SurfaceId, int> surface_id_to_resource_child_id_;
|
|
|
| // The following state is only valid for the duration of one Aggregate call
|
| // and is only stored on the class to avoid having to pass through every
|
| @@ -172,8 +167,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
|
|
|
| // This is the set of surfaces referenced in the aggregation so far, used to
|
| // detect cycles.
|
| - using SurfaceSet = std::set<SurfaceId>;
|
| - SurfaceSet referenced_surfaces_;
|
| + base::flat_set<SurfaceId> referenced_surfaces_;
|
|
|
| // For each Surface used in the last aggregation, gives the frame_index at
|
| // that time.
|
| @@ -181,22 +175,22 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
|
| SurfaceIndexMap contained_surfaces_;
|
|
|
| // After surface validation, every Surface in this set is valid.
|
| - std::unordered_set<SurfaceId, SurfaceIdHash> valid_surfaces_;
|
| + base::flat_set<SurfaceId> valid_surfaces_;
|
|
|
| // This is the pass list for the aggregated frame.
|
| RenderPassList* dest_pass_list_;
|
|
|
| // This is the set of aggregated pass ids that are affected by filters that
|
| // move pixels.
|
| - std::unordered_set<int> moved_pixel_passes_;
|
| + base::flat_set<int> moved_pixel_passes_;
|
|
|
| // This is the set of aggregated pass ids that are drawn by copy requests, so
|
| // should not have their damage rects clipped to the root damage rect.
|
| - std::unordered_set<int> copy_request_passes_;
|
| + base::flat_set<int> copy_request_passes_;
|
|
|
| // This maps each aggregated pass id to the set of (aggregated) pass ids
|
| // that its RenderPassDrawQuads depend on
|
| - std::unordered_map<int, std::unordered_set<int>> render_pass_dependencies_;
|
| + base::flat_map<int, base::flat_set<int>> render_pass_dependencies_;
|
|
|
| // The root damage rect of the currently-aggregating frame.
|
| gfx::Rect root_damage_rect_;
|
|
|