267 Commits

Author SHA1 Message Date
appleguy
1ce3834e0e Merge pull request #1343 from rcancro/cacheFontScale
[ASTextNode] Improvements to the implementation of the font scale adjuster.
2016-03-09 02:41:13 -08:00
rcancro
06a6bd6606 fix typo and kick off build again. 2016-03-08 16:32:24 -08:00
Scott Goodson
5c28bb8e21 [ASScrollDirection] Ensure definitions of "positive" scroll direction in batch context match the layout controller. 2016-03-08 00:53:06 -08:00
Scott Goodson
9e72679ffd [ASDataController] Swap order of section / item in optimized indexpath creation from yesterday :). 2016-03-07 12:08:31 -08:00
Scott Goodson
8cfd951f42 [ASDataController] If app code issues edit commands before first reload, ignore them, as UIKit will call -reloadData. 2016-03-05 21:21:22 -08:00
Scott Goodson
cc7ca4a08f [ASDataController] If app code issues edit commands before first reload, ignore them, as UIKit will call -reloadData. 2016-03-05 20:22:18 -08:00
Huy Nguyen
caddd1d287 Fix threadSafeBounds
- Bounds change set directly to _ASDisplayLayer should also be saved to threadSafeBounds
- Remove overkill _usesDisplayView flag
2016-03-03 16:18:07 -08:00
Huy Nguyen
5e49cc4382 Layout transition can measure in background 2016-03-02 22:47:04 -08:00
Huy Nguyen
9162d7b2df Implement thread-safe bounds and use it in ASTextNode 2016-03-02 22:42:53 -08:00
Garrett Moon
eba6afc36b Revert "Don't clear contents when moving between nodes"
This reverts commit 6d1732fcbdda44603577979afdddb9fc48b6d6e4.
2016-03-01 16:45:36 -08:00
Garrett Moon
6d1732fcbd Don't clear contents when moving between nodes 2016-03-01 09:57:07 -08:00
Scott Goodson
5e35ef7938 [ASDisplayNode] Ensure display is triggered properly even before layers are onscreen (in display range). 2016-02-29 00:46:45 -08:00
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
Scott Goodson
89516129a4 [ASDisplayNode] Bridge should trigger display when opacity or bg color change. 2016-02-25 18:25:39 -08: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
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
Adlai Holler
767bff2e1a [ASInternalHelpers] Use ASDisplayNodeThreadIsMain, reduce block allocations 2016-02-22 15:12:13 -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
Adlai Holler
b8d2941093 [ASPendingStateController] Unite -flush and -flushNow methods, cleanup 2016-02-21 11:27:36 -08:00
Adlai Holler
ff59401b05 [ASInternalHelpers] Improve spacing 2016-02-21 11:23:54 -08:00
Adlai Holler
5eca1e6c68 [ASDisplayNode:UIViewBridge] Clean up setNeedsDisplay/setNeedsLayout 2016-02-21 11:23:28 -08:00
Adlai Holler
d9d4d40997 [ASDisplayNode:UIViewBridge:setFrame] Use CALayer directly when possible 2016-02-21 10:52:20 -08:00
Adlai Holler
b1c7f47b02 [ASDisplayNode:UIViewBridge] Refactor setFrame: to simplify logic 2016-02-21 10:42:38 -08:00
Adlai Holler
3ff833c4f5 [ASDisplayNode:UIViewBridge] Reduce calls to -isNodeLoaded 2016-02-21 10:10:04 -08:00
Adlai Holler
e1bf0f6a88 [ASDisplayNode:setFrame] Initialize local variable values 2016-02-21 10:08:27 -08:00
Adlai Holler
648dc817ad [ASDisplayNode] Use a C function to lazily create pending view state 2016-02-21 10:03:06 -08:00
appleguy
29726fbe38 Merge pull request #1048 from Adlai-Holler/ThreadSafeViewLayerProperties
[ASDisplayNode] Eliminate Thread Affinity for Writing in Background - UIKit / CA Bridged Properties
2016-02-21 01:07:20 -08:00
Scott Goodson
4637bf6a37 [ASStackLayoutSpec] Micro-optimizations to ultrahot codepaths, reducing both locking overhead and method calls. 2016-02-20 17:50:19 -08:00
Adlai Holler
e244b10e1e Add a note about order of operations issue with frame/bounds/position 2016-02-20 15:43:00 -08:00
Adlai Holler
b929bfdd33 I am not a smart man 2016-02-20 15:43:00 -08:00
Adlai Holler
edf6ee59e8 [ASDisplayNode] Remove RespectThreadAffinityOfNode function 2016-02-20 15:43:00 -08:00
Adlai Holler
e9712cdfa1 Make the tests sturdier, improve setNeedsLayout/setNeedsDisplay bridging 2016-02-20 15:43:00 -08:00
Adlai Holler
636c8c04f3 Improve bridging of frame property 2016-02-20 15:43:00 -08:00
Adlai Holler
563d0893a3 Beef up the properties, beef up the demo app 2016-02-20 15:43:00 -08:00
Adlai Holler
7a6006e627 Apply same fix on opaqueness 2016-02-20 15:40:47 -08:00
Adlai Holler
b0cbd2dd59 Fix background color issue 2016-02-20 15:40:47 -08:00
Adlai Holler
71edc810d3 Revert unnecessary change to [ASDisplayNode setOpaque:] 2016-02-20 15:40:47 -08:00
Adlai Holler
a46bd8e29b More tests, all but 1 passing 2016-02-20 15:40:47 -08:00
Adlai Holler
1514cef36d Beef up the unit tests and make em pass 2016-02-20 15:40:47 -08:00
Adlai Holler
07b4addf1a Document re-entrancy hazard in ASPendingStateController 2016-02-20 15:40:47 -08:00
Adlai Holler
9136ecc77b The node is used now 2016-02-20 15:40:47 -08:00
Adlai Holler
55e3f1ee00 Fix a stupid type mismatch in ASWeakSet 2016-02-20 15:40:47 -08:00
Adlai Holler
70bc80a304 Fix map table type in ASWeakSet 2016-02-20 15:40:47 -08:00
Adlai Holler
0c6ad25f46 Add some documentation 2016-02-20 15:40:47 -08:00
Adlai Holler
3d22b18bcf Finish that thought. 2016-02-20 15:40:47 -08:00
Adlai Holler
97d73cbbc3 Actually do the thing 2016-02-20 15:40:47 -08:00
Adlai Holler
b5b5f9f559 Some clean up 2016-02-20 15:40:47 -08:00