mirror of
https://github.com/TextureGroup/Texture.git
synced 2026-04-07 19:17:39 +00:00
* Shrink ASImageNode by .6% and ASNetworkImageNode by 2.2% ASImageNode goes from 1384 to 1376. ASNetworkImageNode goes from 1496 to 1464. These objects accumulate in the heap, so reducing their size will allow more to accumulate before memory warnings. Group the `BOOL`s into a struct. Shrink the various stored `enum`s to fit the size of their contents. Move the ivars around so that the smaller `enum` are near eachother and the bitfield struct. * add comments as requested in garrett's review. * access ivar directly since already locked as suggested in review.
50 lines
1.2 KiB
Objective-C
50 lines
1.2 KiB
Objective-C
//
|
|
// ASImageNode+AnimatedImagePrivate.h
|
|
// 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 <AsyncDisplayKit/ASThread.h>
|
|
|
|
#define ASAnimatedImageDefaultRunLoopMode NSRunLoopCommonModes
|
|
|
|
@interface ASImageNode ()
|
|
{
|
|
AS::Mutex _displayLinkLock;
|
|
id <ASAnimatedImageProtocol> _animatedImage;
|
|
NSString *_animatedImageRunLoopMode;
|
|
CADisplayLink *_displayLink;
|
|
NSUInteger _lastSuccessfulFrameIndex;
|
|
|
|
//accessed on main thread only
|
|
CFTimeInterval _playHead;
|
|
NSUInteger _playedLoops;
|
|
|
|
// Group the BOOLs into a bitfield struct to save memory.
|
|
struct {
|
|
unsigned int animatedImagePaused:1;
|
|
unsigned int cropEnabled:1; // Defaults to YES.
|
|
unsigned int forceUpscaling:1; //Defaults to NO.
|
|
} _imageNodeFlags;
|
|
}
|
|
|
|
@property (nonatomic) CFTimeInterval lastDisplayLinkFire;
|
|
|
|
@end
|
|
|
|
@interface ASImageNode (AnimatedImagePrivate)
|
|
|
|
- (void)_locked_setAnimatedImage:(id <ASAnimatedImageProtocol>)animatedImage;
|
|
|
|
@end
|
|
|
|
|
|
@interface ASImageNode (AnimatedImageInvalidation)
|
|
|
|
- (void)invalidateAnimatedImage;
|
|
|
|
@end
|