| 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 |