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

Side by Side Diff: cc/paint/discardable_image_map.cc

Issue 2847553002: cc: Replace some instances of unordered_map with base::flat_map. (Closed)
Patch Set: Created 3 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 2015 The Chromium Authors. All rights reserved. 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 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 #include "cc/paint/discardable_image_map.h" 5 #include "cc/paint/discardable_image_map.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
11 11
12 #include "base/containers/adapters.h" 12 #include "base/containers/adapters.h"
13 #include "base/containers/flat_map.h"
13 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
14 #include "cc/base/math_util.h" 15 #include "cc/base/math_util.h"
15 #include "cc/paint/display_item_list.h" 16 #include "cc/paint/display_item_list.h"
16 #include "third_party/skia/include/core/SkPath.h" 17 #include "third_party/skia/include/core/SkPath.h"
17 #include "third_party/skia/include/utils/SkNWayCanvas.h" 18 #include "third_party/skia/include/utils/SkNWayCanvas.h"
18 #include "ui/gfx/geometry/rect_conversions.h" 19 #include "ui/gfx/geometry/rect_conversions.h"
19 #include "ui/gfx/skia_util.h" 20 #include "ui/gfx/skia_util.h"
20 21
21 namespace cc { 22 namespace cc {
22 23
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 namespace { 57 namespace {
57 58
58 // We're using an NWay canvas with no added canvases, so in effect 59 // We're using an NWay canvas with no added canvases, so in effect
59 // non-overridden functions are no-ops. 60 // non-overridden functions are no-ops.
60 class DiscardableImagesMetadataCanvas : public SkNWayCanvas { 61 class DiscardableImagesMetadataCanvas : public SkNWayCanvas {
61 public: 62 public:
62 DiscardableImagesMetadataCanvas( 63 DiscardableImagesMetadataCanvas(
63 int width, 64 int width,
64 int height, 65 int height,
65 std::vector<std::pair<DrawImage, gfx::Rect>>* image_set, 66 std::vector<std::pair<DrawImage, gfx::Rect>>* image_set,
66 std::unordered_map<ImageId, gfx::Rect>* image_id_to_rect) 67 base::flat_map<ImageId, gfx::Rect>* image_id_to_rect)
67 : SkNWayCanvas(width, height), 68 : SkNWayCanvas(width, height),
68 image_set_(image_set), 69 image_set_(image_set),
69 image_id_to_rect_(image_id_to_rect), 70 image_id_to_rect_(image_id_to_rect),
70 canvas_bounds_(SkRect::MakeIWH(width, height)), 71 canvas_bounds_(SkRect::MakeIWH(width, height)),
71 canvas_size_(width, height) {} 72 canvas_size_(width, height) {}
72 73
73 protected: 74 protected:
74 // we need to "undo" the behavior of SkNWayCanvas, which will try to forward 75 // we need to "undo" the behavior of SkNWayCanvas, which will try to forward
75 // it. 76 // it.
76 void onDrawPicture(const SkPicture* picture, 77 void onDrawPicture(const SkPicture* picture,
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 matrix.postConcat(ctm); 241 matrix.postConcat(ctm);
241 // TODO(ericrk): Handle cases where we only need a sub-rect from the 242 // TODO(ericrk): Handle cases where we only need a sub-rect from the
242 // image. crbug.com/671821 243 // image. crbug.com/671821
243 AddImage(sk_ref_sp(image), SkRect::MakeFromIRect(image->bounds()), 244 AddImage(sk_ref_sp(image), SkRect::MakeFromIRect(image->bounds()),
244 MapRect(ctm, rect), matrix, &paint); 245 MapRect(ctm, rect), matrix, &paint);
245 } 246 }
246 } 247 }
247 } 248 }
248 249
249 std::vector<std::pair<DrawImage, gfx::Rect>>* image_set_; 250 std::vector<std::pair<DrawImage, gfx::Rect>>* image_set_;
250 std::unordered_map<ImageId, gfx::Rect>* image_id_to_rect_; 251 base::flat_map<ImageId, gfx::Rect>* image_id_to_rect_;
251 const SkRect canvas_bounds_; 252 const SkRect canvas_bounds_;
252 const gfx::Size canvas_size_; 253 const gfx::Size canvas_size_;
253 std::vector<SkPaint> saved_paints_; 254 std::vector<SkPaint> saved_paints_;
254 }; 255 };
255 256
256 } // namespace 257 } // namespace
257 258
258 DiscardableImageMap::DiscardableImageMap() {} 259 DiscardableImageMap::DiscardableImageMap() {}
259 260
260 DiscardableImageMap::~DiscardableImageMap() {} 261 DiscardableImageMap::~DiscardableImageMap() {}
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 DiscardableImageMap* image_map, 297 DiscardableImageMap* image_map,
297 const gfx::Size& bounds) 298 const gfx::Size& bounds)
298 : image_map_(image_map), 299 : image_map_(image_map),
299 metadata_canvas_(image_map->BeginGeneratingMetadata(bounds)) {} 300 metadata_canvas_(image_map->BeginGeneratingMetadata(bounds)) {}
300 301
301 DiscardableImageMap::ScopedMetadataGenerator::~ScopedMetadataGenerator() { 302 DiscardableImageMap::ScopedMetadataGenerator::~ScopedMetadataGenerator() {
302 image_map_->EndGeneratingMetadata(); 303 image_map_->EndGeneratingMetadata();
303 } 304 }
304 305
305 } // namespace cc 306 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698