| OLD | NEW |
| 1 Sky Rendering | 1 Sky Rendering |
| 2 ============= | 2 ============= |
| 3 | 3 |
| 4 The Sky render tree is a low-level layout and painting system based on a | 4 The Sky render tree is a low-level layout and painting system based on a |
| 5 retained tree of objects that inherit from [`RenderObject`](object.dart). Most | 5 retained tree of objects that inherit from [`RenderObject`](object.dart). Most |
| 6 developers using Sky will not need to interact directly with the rendering tree. | 6 developers using Sky will not need to interact directly with the rendering tree. |
| 7 Instead, most developers should use [Sky widgets](../widgets/README.md), which | 7 Instead, most developers should use [Sky widgets](../widgets/README.md), which |
| 8 are built using the render tree. | 8 are built using the render tree. |
| 9 | 9 |
| 10 Overview | 10 Overview |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 `size` member. The size must be consistent, a given set of | 252 `size` member. The size must be consistent, a given set of |
| 253 constraints must always result in the same size. | 253 constraints must always result in the same size. |
| 254 | 254 |
| 255 In the latter case, it will inherit the default `sizedByParent` | 255 In the latter case, it will inherit the default `sizedByParent` |
| 256 getter that returns false, and it will size itself in the | 256 getter that returns false, and it will size itself in the |
| 257 `performLayout()` function described below. | 257 `performLayout()` function described below. |
| 258 | 258 |
| 259 The `sizedByParent` distinction is purely a performance | 259 The `sizedByParent` distinction is purely a performance |
| 260 optimisation. It allows nodes that only set their size based on the | 260 optimisation. It allows nodes that only set their size based on the |
| 261 incoming constraints to skip that logic when they need to be | 261 incoming constraints to skip that logic when they need to be |
| 262 re-laid-out. | 262 re-laid-out, and, more importantly, it allows the layout system to |
| 263 treat the node as a _layout boundary_, which reduces the amount of |
| 264 work that needs to happen when the node is marked as needing |
| 265 layout. |
| 263 | 266 |
| 264 * The following methods must report numbers consistent with the output | 267 * The following methods must report numbers consistent with the output |
| 265 of the layout algorithm used: | 268 of the layout algorithm used: |
| 266 | 269 |
| 267 ** `double getMinIntrinsicWidth(BoxConstraints constraints)` must | 270 ** `double getMinIntrinsicWidth(BoxConstraints constraints)` must |
| 268 return the width that fits within the given constraints below which | 271 return the width that fits within the given constraints below which |
| 269 making the width constraint smaller would not increase the | 272 making the width constraint smaller would not increase the |
| 270 resulting height, or, to put it another way, the narrowest width at | 273 resulting height, or, to put it another way, the narrowest width at |
| 271 which the box can be rendered without failing to lay the children | 274 which the box can be rendered without failing to lay the children |
| 272 out within itself. | 275 out within itself. |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 | 362 |
| 360 * Avoid using save/restore on canvases. | 363 * Avoid using save/restore on canvases. |
| 361 | 364 |
| 362 | 365 |
| 363 Dependencies | 366 Dependencies |
| 364 ------------ | 367 ------------ |
| 365 | 368 |
| 366 * [`package:sky/base`](../base) | 369 * [`package:sky/base`](../base) |
| 367 * [`package:sky/mojo`](../mojo) | 370 * [`package:sky/mojo`](../mojo) |
| 368 * [`package:sky/animation`](../mojo) | 371 * [`package:sky/animation`](../mojo) |
| OLD | NEW |