Swiftgram/submodules/AsyncDisplayKit/Source/Private/ASLayerBackingTipProvider.mm
Peter 9bc996374f Add 'submodules/AsyncDisplayKit/' from commit '02bedc12816e251ad71777f9d2578329b6d2bef6'
git-subtree-dir: submodules/AsyncDisplayKit
git-subtree-mainline: d06f423e0ed3df1fed9bd10d79ee312a9179b632
git-subtree-split: 02bedc12816e251ad71777f9d2578329b6d2bef6
2019-06-11 18:42:43 +01:00

46 lines
1.2 KiB
Plaintext

//
// ASLayerBackingTipProvider.mm
// Texture
//
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
//
#import "ASLayerBackingTipProvider.h"
#if AS_ENABLE_TIPS
#import <AsyncDisplayKit/ASCellNode.h>
#import <AsyncDisplayKit/ASControlNode.h>
#import <AsyncDisplayKit/ASDisplayNode.h>
#import <AsyncDisplayKit/ASDisplayNodeExtras.h>
#import <AsyncDisplayKit/ASTip.h>
@implementation ASLayerBackingTipProvider
- (ASTip *)tipForNode:(ASDisplayNode *)node
{
// Already layer-backed.
if (node.layerBacked) {
return nil;
}
// TODO: Avoid revisiting nodes we already visited
ASDisplayNode *failNode = ASDisplayNodeFindFirstNode(node, ^BOOL(ASDisplayNode * _Nonnull node) {
return !node.supportsLayerBacking;
});
if (failNode != nil) {
return nil;
}
ASTip *result = [[ASTip alloc] initWithNode:node
kind:ASTipKindEnableLayerBacking
format:@"Enable layer backing to improve performance"];
return result;
}
@end
#endif // AS_ENABLE_TIPS