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

Side by Side Diff: ui/gfx/image/image.h

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 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
« no previous file with comments | « ui/gfx/icon_util_unittest.cc ('k') | ui/gfx/image/image.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // An Image wraps an image any flavor, be it platform-native GdkBitmap/NSImage, 5 // An Image wraps an image any flavor, be it platform-native GdkBitmap/NSImage,
6 // or a SkBitmap. This also provides easy conversion to other image types 6 // or a SkBitmap. This also provides easy conversion to other image types
7 // through operator overloading. It will cache the converted representations 7 // through operator overloading. It will cache the converted representations
8 // internally to prevent double-conversion. 8 // internally to prevent double-conversion.
9 // 9 //
10 // The lifetime of both the initial representation and any converted ones are 10 // The lifetime of both the initial representation and any converted ones are
11 // tied to the lifetime of the Image's internal storage. To allow Images to be 11 // tied to the lifetime of the Image's internal storage. To allow Images to be
12 // cheaply passed around by value, the actual image data is stored in a ref- 12 // cheaply passed around by value, the actual image data is stored in a ref-
13 // counted member. When all Images referencing this storage are deleted, the 13 // counted member. When all Images referencing this storage are deleted, the
14 // actual representations are deleted, too. 14 // actual representations are deleted, too.
15 // 15 //
16 // Images can be empty, in which case they have no backing representation. 16 // Images can be empty, in which case they have no backing representation.
17 // Attempting to use an empty Image will result in a crash. 17 // Attempting to use an empty Image will result in a crash.
18 18
19 #ifndef UI_GFX_IMAGE_IMAGE_H_ 19 #ifndef UI_GFX_IMAGE_IMAGE_H_
20 #define UI_GFX_IMAGE_IMAGE_H_ 20 #define UI_GFX_IMAGE_IMAGE_H_
21 21
22 #include <stddef.h> 22 #include <stddef.h>
23 23
24 #include <map> 24 #include <map>
25 #include <memory>
25 #include <vector> 26 #include <vector>
26 27
27 #include "base/memory/ref_counted_memory.h" 28 #include "base/memory/ref_counted_memory.h"
28 #include "base/memory/scoped_ptr.h"
29 #include "build/build_config.h" 29 #include "build/build_config.h"
30 #include "ui/gfx/gfx_export.h" 30 #include "ui/gfx/gfx_export.h"
31 #include "ui/gfx/native_widget_types.h" 31 #include "ui/gfx/native_widget_types.h"
32 32
33 #if defined(OS_MACOSX) && !defined(OS_IOS) 33 #if defined(OS_MACOSX) && !defined(OS_IOS)
34 typedef struct CGColorSpace* CGColorSpaceRef; 34 typedef struct CGColorSpace* CGColorSpaceRef;
35 #endif 35 #endif
36 36
37 class SkBitmap; 37 class SkBitmap;
38 38
(...skipping 10 matching lines...) Expand all
49 class GFX_EXPORT Image { 49 class GFX_EXPORT Image {
50 public: 50 public:
51 enum RepresentationType { 51 enum RepresentationType {
52 kImageRepCocoa, 52 kImageRepCocoa,
53 kImageRepCocoaTouch, 53 kImageRepCocoaTouch,
54 kImageRepSkia, 54 kImageRepSkia,
55 kImageRepPNG, 55 kImageRepPNG,
56 }; 56 };
57 57
58 using RepresentationMap = 58 using RepresentationMap =
59 std::map<RepresentationType, scoped_ptr<internal::ImageRep>>; 59 std::map<RepresentationType, std::unique_ptr<internal::ImageRep>>;
60 60
61 // Creates an empty image with no representations. 61 // Creates an empty image with no representations.
62 Image(); 62 Image();
63 63
64 // Creates a new image by copying the raw PNG-encoded input for use as the 64 // Creates a new image by copying the raw PNG-encoded input for use as the
65 // default representation. 65 // default representation.
66 explicit Image(const std::vector<ImagePNGRep>& image_reps); 66 explicit Image(const std::vector<ImagePNGRep>& image_reps);
67 67
68 // Creates a new image by copying the ImageSkia for use as the default 68 // Creates a new image by copying the ImageSkia for use as the default
69 // representation. 69 // representation.
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 180
181 // Returns the ImageRep of the appropriate type or NULL if there is no 181 // Returns the ImageRep of the appropriate type or NULL if there is no
182 // representation of that type (and must_exist is false). 182 // representation of that type (and must_exist is false).
183 internal::ImageRep* GetRepresentation( 183 internal::ImageRep* GetRepresentation(
184 RepresentationType rep_type, bool must_exist) const; 184 RepresentationType rep_type, bool must_exist) const;
185 185
186 // Stores a representation into the map. A representation of that type must 186 // Stores a representation into the map. A representation of that type must
187 // not already be in the map. Returns a pointer to the representation stored 187 // not already be in the map. Returns a pointer to the representation stored
188 // inside the map. 188 // inside the map.
189 internal::ImageRep* AddRepresentation( 189 internal::ImageRep* AddRepresentation(
190 scoped_ptr<internal::ImageRep> rep) const; 190 std::unique_ptr<internal::ImageRep> rep) const;
191 191
192 // Internal class that holds all the representations. This allows the Image to 192 // Internal class that holds all the representations. This allows the Image to
193 // be cheaply copied. 193 // be cheaply copied.
194 scoped_refptr<internal::ImageStorage> storage_; 194 scoped_refptr<internal::ImageStorage> storage_;
195 }; 195 };
196 196
197 } // namespace gfx 197 } // namespace gfx
198 198
199 #endif // UI_GFX_IMAGE_IMAGE_H_ 199 #endif // UI_GFX_IMAGE_IMAGE_H_
OLDNEW
« no previous file with comments | « ui/gfx/icon_util_unittest.cc ('k') | ui/gfx/image/image.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698