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

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

Issue 2504683002: Adds a new constructor for gfx::Image on iOS. (Closed)
Patch Set: rebase Created 4 years 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/image/image.h ('k') | no next file » | 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 #include "ui/gfx/image/image.h" 5 #include "ui/gfx/image/image.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 413
414 Image::Image(const ImageSkia& image) { 414 Image::Image(const ImageSkia& image) {
415 if (!image.isNull()) { 415 if (!image.isNull()) {
416 storage_ = new internal::ImageStorage(Image::kImageRepSkia); 416 storage_ = new internal::ImageStorage(Image::kImageRepSkia);
417 AddRepresentation( 417 AddRepresentation(
418 base::MakeUnique<internal::ImageRepSkia>(new ImageSkia(image))); 418 base::MakeUnique<internal::ImageRepSkia>(new ImageSkia(image)));
419 } 419 }
420 } 420 }
421 421
422 #if defined(OS_IOS) 422 #if defined(OS_IOS)
423 Image::Image(UIImage* image) 423 Image::Image(UIImage* image) : Image(image, base::scoped_policy::ASSUME) {}
424
425 Image::Image(UIImage* image, base::scoped_policy::OwnershipPolicy policy)
424 : storage_(new internal::ImageStorage(Image::kImageRepCocoaTouch)) { 426 : storage_(new internal::ImageStorage(Image::kImageRepCocoaTouch)) {
425 if (image) 427 if (image) {
428 if (policy == base::scoped_policy::RETAIN)
429 base::mac::NSObjectRetain(image);
426 AddRepresentation(base::MakeUnique<internal::ImageRepCocoaTouch>(image)); 430 AddRepresentation(base::MakeUnique<internal::ImageRepCocoaTouch>(image));
431 }
427 } 432 }
428 #elif defined(OS_MACOSX) 433 #elif defined(OS_MACOSX)
429 Image::Image(NSImage* image) { 434 Image::Image(NSImage* image) {
430 if (image) { 435 if (image) {
431 storage_ = new internal::ImageStorage(Image::kImageRepCocoa); 436 storage_ = new internal::ImageStorage(Image::kImageRepCocoa);
432 AddRepresentation(base::MakeUnique<internal::ImageRepCocoa>(image)); 437 AddRepresentation(base::MakeUnique<internal::ImageRepCocoa>(image));
433 } 438 }
434 } 439 }
435 #endif 440 #endif
436 441
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 storage_->representations().insert(std::make_pair(type, std::move(rep))); 761 storage_->representations().insert(std::make_pair(type, std::move(rep)));
757 762
758 // insert should not fail (implies that there was already a representation of 763 // insert should not fail (implies that there was already a representation of
759 // that type in the map). 764 // that type in the map).
760 CHECK(result.second) << "type was already in map."; 765 CHECK(result.second) << "type was already in map.";
761 766
762 return result.first->second.get(); 767 return result.first->second.get();
763 } 768 }
764 769
765 } // namespace gfx 770 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/image/image.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698