Commit Graph
2314 Commits
Author SHA1 Message Date
Scott Goodson eac85b6c9a [ASDisplayNode] Optimize -setNeedsDisplay, deep mutable array copies.
These optimizations are surprisingly impactful.  -setNeedsDisplay being called
for every node triggered cancelAsyncDisplay, locking, and memory management overhead
that is completely avoidable because Core Animation triggers first display automatically.

The mutable array copy optimizations reduced this key cost by over 10x, from 52ms to 5ms
on an iPad Air 2 / A8X with a real-world test case.
2016-02-28 20:54:56 -08:00
Adlai Holler 324b633b0f [ASPendingStateController] Don't hold lock while flushing 2016-02-26 23:14:58 -08:00
appleguy fd3eca9091 Merge pull request #1281 from ejensen/VideoNodeAssetCast
[ASVideoNode] AVAsset type cast safety
2016-02-26 22:50:44 -08:00
Eric Jensen cb1579e8af Check the AVAsset's type before casting to an AVURLAsset 2016-02-26 11:00:27 -08:00
Michael Schneider 45c616d916 Improve ASTextCellNode customization 2016-02-26 06:31:09 -08:00
Aaron Schubert 88e4ec4130 [tvOS] Optimize shadow methods to use local variable. 2016-02-26 09:40:14 +00:00
Scott Goodson 89516129a4 [ASDisplayNode] Bridge should trigger display when opacity or bg color change. 2016-02-25 18:25:39 -08:00
appleguy 93575b20e9 Merge pull request #1277 from nguyenhuy/layout_transition_for_cell_node
[ASCellNode] Notify layout delegate during layout transition
2016-02-25 14:56:05 -08:00
appleguy 6f12444be0 Merge pull request #1265 from rcancro/scaleFactor
[ASTextNode] Stopped trying to cache the currentScaleFactor
2016-02-25 14:54:19 -08:00
appleguy 6e85ad8170 Merge pull request #1274 from Adlai-Holler/AHMapNodeVendAnnotations
[ASMapNode] Promote annotations to a Formal Property
2016-02-25 14:46:33 -08:00
Huy Nguyen 0fe774511c ASCellNode notifies its layout delegate during layout transition 2016-02-25 12:19:14 -08:00
Huy Nguyen 640b6bdf4a Fix mismatch between the signature of didCompleteLayoutTransition and its implementation 2016-02-25 10:58:36 -08:00
Adlai Holler 60f5ba2d17 Simplify ASMapNode.setAnnotations 2016-02-25 10:40:38 -08:00
Adlai Holler 2fbc7b0942 Make ASMapNode vend its annotations 2016-02-25 10:32:13 -08:00
Aaron Schubert f9bf402047 [tvOS] Clean up and document parts of code. 2016-02-25 09:06:11 +00:00
Huy Nguyen 32a8f9c831 Assert comparison block in diffing algorithm 2016-02-24 20:42:18 -08:00
Huy Nguyen bd1b195dbe Fix diffing algorithm not using custom comparison block 2016-02-24 20:33:02 -08:00
Scott Goodson 792db0061b [ASMapNode] Perform MKMapSnapshotter callback off the main thread to eliminate UIImage handling overhead. 2016-02-24 17:02:22 -08:00
appleguy 306aec9d5b Merge pull request #1270 from Adlai-Holler/AHFixMapNodeUnhostingView
[ASMapNode] Remove Live Map in clearFetchedData, Not clearContents
2016-02-24 17:01:11 -08:00
Adlai Holler de46701ff7 [ASMapNode] Remove live map on clearFetchedData, not clearContents 2016-02-24 15:20:02 -08:00
Garrett Moon 6a1298440d Flex shrink should be set on title init, not image init 2016-02-24 15:10:18 -08:00
appleguy 439ca172d1 Merge pull request #1267 from eanagel/super-layout-required
[ASDisplayNode] Add NS_REQUIRES_SUPER for -layout.
2016-02-24 13:31:56 -08:00
Ethan Nagel fa4e20e874 Initialize _asyncDelegateImplementsScrollviewDidScroll so we forward scollViewDidScroll: calls 2016-02-24 11:03:06 -08:00
Ethan Nagel 26dcad5218 Add a warning if [super layout] is not called (which causes big problems for ASLayout.) 2016-02-24 10:28:22 -08:00
rcancro 8dbc8b7df4 reordered conditionals, moved beta things to beta header file 2016-02-24 08:06:10 -08:00
Aaron Schubert 3d6f6766e9 [tvOS] Implement a default behaviour of ASImageNode, trying to match the behaviour of UIImageView. Still need to add shine. 2016-02-24 13:58:11 +00:00
rcancro 878fedd8f3 Stopped trying to cache the currentScaleFactor
Was running into issues where the scale factor would get cleared when setting a new atributedString on a textNode.

I was clearing out the currentScaleFactor when setting an attributedString into a textNode. It appears that `_calculateSize` isn't always called when setting a new string into a ASTextNode. It can be the case that only `drawInContext:bounds:` is called. With _currentScaleFactor cleared out the renderer that calls`drawInContext...` was being called with a scaleFactor of 0.

It could be the case that the fix could be to remove the clearing of `currentScaleFactor` from `setAttributedString`, but this seems like a safer fix to me. It does, however, require an extra run through the font adjuster when enabled.
2016-02-23 16:51:10 -08:00
Levi McCallum c2d379f8f5 Add a bit of documentation to describe the problem this is solving 2016-02-23 13:02:37 -08:00
Levi McCallum 4640801939 Enable animated bounds changes in ASCollectionView 2016-02-23 09:36:11 -08:00
Aaron Schubert d9cde1f08c [tvOS] Added a default touch down animation for ASControlNode 2016-02-23 12:18:33 +00:00
Aaron Schubert 4ad6d91a10 Add default focus response to ASControlNode 2016-02-23 11:16:07 +00:00
Aaron Schubert 5d367328d9 Make ASControlNode the default focusable view. This is so that we can receive touch events that will manipulate the view. 2016-02-23 10:39:32 +00:00
Aaron Schubert 682903fba5 Make ASDisplayNode unable to be focused by default. ASControlNode will be the new default. 2016-02-23 10:36:53 +00:00
Aaron Schubert 106b5f5d4a Update 2016-02-23 10:20:06 +00:00
Garrett Moon 359d19da29 ASNetworkImageNode should support a nil cache. 2016-02-22 21:58:45 -08:00
appleguy 3abde9348d Merge pull request #1256 from Adlai-Holler/AHAffinityRevisions
[ASDisplayNode] Post-Review Refinements of Recent No-Affinity UIKit/CA Property Bridging
2016-02-22 20:41:59 -08:00
appleguy 3eb0d4e877 Merge pull request #1258 from rcancro/textKitBlocks
[ASTextNode] Add block to customize NSLayoutManager and NSTextStorage (subclass, initialization)
2016-02-22 19:44:34 -08:00
appleguy 75f620aa91 Merge pull request #1257 from Adlai-Holler/FixImageNodeLockingIssue
[ASImageNode:displayDidFinish] Unlock _imageLock Correctly
2016-02-22 19:40:13 -08:00
Adlai Holler fd5723379f [ASImageNode] Lock & unlock directly instead of using stack objects. 2016-02-22 18:48:31 -08:00
appleguy 79389ba66e Merge pull request #1251 from ekurutepe/fix-umbrella-header
[AsyncDisplayKit] Adjust Umbrella header to ensure Carthage build succeeds.
2016-02-22 18:32:34 -08:00
Adlai Holler 767bff2e1a [ASInternalHelpers] Use ASDisplayNodeThreadIsMain, reduce block allocations 2016-02-22 15:12:13 -08:00
Adlai Holler 977a509bd4 [ASCellNode] If viewControllerBlock returns an ASViewController, use its node directly instead of wrapping 2016-02-22 15:11:27 -08:00
Adlai Holler afc70b90ab [ASCellNode] Improve documentation, remove unused ivar 2016-02-22 15:10:02 -08:00
rcancro 00b0968bf7 Add ability to customize NSLayoutManager and NSTextStorage when created in the ASTextKitContext 2016-02-22 13:00:02 -08:00
Adlai Holler 57ca0c73bf [ASImageNode] Correctly unlock _imageLock 2016-02-22 09:12:58 -08:00
Adlai Holler f4e4c501f1 [ASDisplayNode] Remove misplaced comment that has been replaced 2016-02-22 09:06:36 -08:00
Adlai Holler 03d2b57991 [ASImageNode] Unlock immediately after updating _image 2016-02-22 09:04:23 -08:00
Adlai Holler deccef1d94 [ASDisplayNode] Lock during constrainedSizeForCalculatedLayout 2016-02-22 09:04:01 -08:00
Adlai Holler 015c024b7a [ASPendingState] Give local variables default values 2016-02-22 08:54:58 -08:00
Adlai Holler 100d0a1302 [_ASPendingState] Deduplicate logic for applying setNeedsDisplay and applying frame/bounds/position 2016-02-22 08:52:26 -08:00