Commit Graph

111 Commits

Author SHA1 Message Date
Pritesh Nandgaonkar
681b580fd8 Moved getTrailingPosition function as a method on YGNode
Summary: Moved getTrailingPosition function as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6683205

fbshipit-source-id: d30003d90d634c644d92c833e58165b073d4d13e
2018-01-11 04:59:01 -08:00
Pritesh Nandgaonkar
b985b6c377 Moved is isTrailingPos defined as a method on YGNode
Summary: Moved is isTrailingPos defined as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6683190

fbshipit-source-id: c37e57d02cc4475eb8181a2bb003c555bdb0aaea
2018-01-11 04:59:01 -08:00
Pritesh Nandgaonkar
92eda21e78 Moved isLeadingPos defined as a method on YGNode
Summary: Moved isLeadingPos defined as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6682956

fbshipit-source-id: 31c60e0eae906e1434a6969f3cd786fcaf9097a5
2018-01-11 04:59:01 -08:00
Pritesh Nandgaonkar
0cfdb50477 Moved YGNodeLeading position as a method on YGNode
Summary: Moved YGNodeLeading position as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6682929

fbshipit-source-id: 3607aab1544b62b1126c5d75b2f6fb8f5ca2d45f
2018-01-11 04:59:01 -08:00
Valentin Shergin
383b881748 Introducing on-dirty handler (aka YGNodeSetDirtiedFunc)
Summary:
@public
Currently, we can dirty leaf nodes with `measure` function, we also can get `dirty` status for any node, but we cannot handle a moment when this change happen. This diff introduces a new call-back-manner handler for it.
We need this to plug Yoga inside and outside other layout systems without maintaining own dirty propagation infrastructure.
Consider using Yoga for flex-box layout in React Native where we can have deeply nested layout like `<View><Text><View><Text/></View></Text></View>` where all content of all <Text> nodes are laid out using native text/inline (not flex-box!) layout system. In this case, when some change dirties some deeply nested Yoga node, we have to propagate the dirty state down to outer one. Having this handler makes possible to wire up `on-dirty` handler on the root node and `setDirtied` for the leaf node.
Removing custom dirting mechanism from React Native should drastically simplify rendering layer and bring a huge performance win.

Reviewed By: emilsjolander

Differential Revision: D6597856

fbshipit-source-id: 6588cd712f9c1dede4af32f3d326f90103e48ff0
2018-01-10 10:09:38 -08:00
Pritesh Nandgaonkar
348dd368b5 Move YGNodeResolveFlexShrink to a method on YGNode
Summary: Move YGNodeResolveFlexShrink to a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6611418

fbshipit-source-id: 6e5ba39b555d313a967800589891027920112c15
2018-01-08 03:00:46 -08:00
Pritesh Nandgaonkar
40eeefd4f7 Moved YGResolveFlexGrow as a method on YGNode
Summary: Moved YGResolveFlexGrow as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6611385

fbshipit-source-id: 71660946c469fac77c5ffa0284c793e6adc9db7b
2018-01-08 03:00:46 -08:00
Pritesh Nandgaonkar
47892c17ce Move markDirtyInternal as a method in YGNode
Summary: Moved YGNodeMarkDirtyInternal as a method in YGNode

Reviewed By: emilsjolander

Differential Revision: D6611287

fbshipit-source-id: 54402145d51ea717553ea136be739b9880a79817
2018-01-08 03:00:46 -08:00
Pritesh Nandgaonkar
f2a369fb73 Move YGCloneChildrenIfNeeded as a method on YGNode
Summary:
- Removed the default() static method, instead of this, its zero argument initialiser is used
  - Moved `YGCloneChildrenIfNeeded` to `cloneChildrenIfNeeded` as a method on `YGNode`.

Reviewed By: emilsjolander

Differential Revision: D6611155

fbshipit-source-id: 463723a363e0fbd2c7686f65226eca73236bd07e
2018-01-08 03:00:46 -08:00
Pritesh Nandgaonkar
61dc10ef66 Optimize the performance of Origami
Summary: With this flag the the workflow successfully passed.

Reviewed By: emilsjolander

Differential Revision: D6619293

fbshipit-source-id: c1632efd97f47696b7f8bb1b3e763de92c707287
2017-12-22 06:55:20 -08:00
Pritesh Nandgaonkar
fbd332dee8 Make YGNode as c++ struct with properties exposed through accessors
Summary: Moved c implementation of `YGNode` to C++ struct. Not moving to C++ class as the React Classes dependent on `Yoga.h` assume it to be C. Thats why keeping `Yoga.h` C compatible. Sorry for the long diff, didn't thought that it will turn out to be this much big.Will keep an eye on number of lines next time 😉

Reviewed By: emilsjolander

Differential Revision: D6592257

fbshipit-source-id: 641e8b9462ad00731a094511f9f5608b23a6bb21
2017-12-19 11:33:07 -08:00