Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: sky/sdk/lib/rendering/README.md

Issue 1216533002: Add a note about sizedByParent's use. One day we should audit our RenderBoxes and see if any of the… (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698