OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #import "ios/chrome/browser/ui/util/snapshot_util.h" | 5 #import "ios/chrome/browser/ui/util/snapshot_util.h" |
6 | 6 |
| 7 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 8 #error "This file requires ARC support." |
| 9 #endif |
| 10 |
7 namespace snapshot_util { | 11 namespace snapshot_util { |
8 | 12 |
9 UIView* GenerateSnapshot(UIView* view) { | 13 UIView* GenerateSnapshot(UIView* view) { |
10 UIView* snapshot; | 14 UIView* snapshot; |
11 if (view.window) { | 15 if (view.window) { |
12 // |view| is in a view hierarchy. | 16 // |view| is in a view hierarchy. |
13 snapshot = [view snapshotViewAfterScreenUpdates:NO]; | 17 snapshot = [view snapshotViewAfterScreenUpdates:NO]; |
14 } else { | 18 } else { |
15 UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0); | 19 UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0); |
16 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; | 20 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; |
17 UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext(); | 21 UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext(); |
18 UIGraphicsEndImageContext(); | 22 UIGraphicsEndImageContext(); |
19 snapshot = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; | 23 snapshot = [[UIView alloc] initWithFrame:CGRectZero]; |
20 snapshot.layer.contents = static_cast<id>(screenshot.CGImage); | 24 snapshot.layer.contents = static_cast<id>(screenshot.CGImage); |
21 } | 25 } |
22 return snapshot; | 26 return snapshot; |
23 } | 27 } |
24 | 28 |
25 } // namespace snapshot_util | 29 } // namespace snapshot_util |
OLD | NEW |