Record both review rounds answered, and what alignment now follows
This commit is contained in:
1 parent
80527ff843
commit
0aaa1f92db
1 file changed
+27
-24
@@ -9,13 +9,27 @@ Canonical `main` is **`43ce8c7`** (#12, pointer routing). Fourteen slices are
|
|||||||
in.
|
in.
|
||||||
|
|
||||||
- **#16** `split/16-draw-size`, worktree `/home/bob/repos/iris-pr16`, head
|
- **#16** `split/16-draw-size`, worktree `/home/bob/repos/iris-pr16`, head
|
||||||
`f192f75`. A widget sizes itself while drawing; `SizeCtx`, the `desired_*`
|
`9520996`. A widget sizes itself while drawing; `SizeCtx`, the `desired_*`
|
||||||
methods and the size cache are gone, and `size_dependence(axis)` drives the
|
methods and the size cache are gone, and `on_resize(axis)` drives the
|
||||||
retained path. `tabs`, `view` and `minimal` render byte-identical to `main`.
|
retained path. One review round answered: `Widget::draw` returns the `Size`
|
||||||
|
(no `Painter::set_size`), both `place` methods are folded back into
|
||||||
|
`widget_within`/`draw_inner`, `Painter::size_hint` records the size
|
||||||
|
dependency `place` used to, and `()` sizes itself rest so it is a gap.
|
||||||
|
`tabs` (all five tabs, and a replay that adds two images), `view` and
|
||||||
|
`minimal` render byte-identical to `upstream/main`.
|
||||||
- **#17** `split/17-headless-rig`, worktree `/home/bob/repos/iris-pr17`, head
|
- **#17** `split/17-headless-rig`, worktree `/home/bob/repos/iris-pr17`, head
|
||||||
`9d13f15`. The compositor script, `rig-input`'s `replay-touch` and the
|
`deb9c1b`. The compositor script, `rig-input`'s `replay-touch` and the
|
||||||
`.touch` parser, so a rendering claim no longer has to be checked from
|
`.touch` parser, so a rendering claim no longer has to be checked from
|
||||||
ai-app's checkout. Small, and disjoint from #16.
|
ai-app's checkout. One review round answered: machine-specific prose out of
|
||||||
|
the comments, and `sway`/`swaymsg`/`grim` detected up front. Small, and
|
||||||
|
disjoint from #16.
|
||||||
|
|
||||||
|
**Waiting on the owner:** whether size dependencies should be recorded per
|
||||||
|
axis. They could be, but `highest_reader`'s only trigger is `needs_redraw`,
|
||||||
|
which carries no axis, so the precision would be unusable until the trigger
|
||||||
|
changes: redraw a child first, compare its new size to the old, and propagate
|
||||||
|
only to readers of the axes that moved. Offered on #16 as its own slice, ahead
|
||||||
|
of the position chain.
|
||||||
|
|
||||||
Check for a review before starting anything, and read the newest
|
Check for a review before starting anything, and read the newest
|
||||||
`submitted_at` rather than the first result:
|
`submitted_at` rather than the first result:
|
||||||
@@ -90,24 +104,13 @@ Other standing instructions from the owner:
|
|||||||
|
|
||||||
## The next slice
|
## The next slice
|
||||||
|
|
||||||
**Widget draw size and measurement** (source commit `6671194`), because it
|
**Built-in alignment** — see the first entry below. #16 and #17 are both
|
||||||
reaches furthest: `desired_width`/`desired_height` and `SizeCtx` go, a widget
|
waiting on review, and the alignment slice is disjoint from either.
|
||||||
sizes itself during `draw` with `painter.set_size`, and `size_hint` is the
|
|
||||||
cheap answer for a parent that needs a size without drawing. Every widget's
|
|
||||||
body changes, so anything written before it is written twice. It also deletes
|
|
||||||
the separate measurement recursion and its cache.
|
|
||||||
|
|
||||||
It is testable now that `iris::harness` is in: `tests/layout.rs` is where the
|
The archive is not a patch here: it writes `Widget::draw` against
|
||||||
acceptance goes.
|
`painter.set_size`, which #16 replaced with a returned `Size`, and it writes
|
||||||
|
lengths against `LayoutLen` and `density`, which canonical does not have.
|
||||||
Two things to settle with the owner before writing it. The archive's `Widget`
|
Recreate on today's `Len` and let the dp slice follow.
|
||||||
grows five methods — `size_hint`, `is_size_independent`, `requires_exact_region`,
|
|
||||||
`access_role` and `child_order`; only the first three are sizing, and she
|
|
||||||
dislikes capability methods on the core trait, so `requires_exact_region` in
|
|
||||||
particular wants justifying (`Pad` sets it and then clears it when the content
|
|
||||||
fits, which reads as a workaround). And the archive writes all of it against
|
|
||||||
`LayoutLen` and `density`, which canonical does not have — recreate it on
|
|
||||||
today's `Len` and let the dp slice follow, rather than pulling both in at once.
|
|
||||||
|
|
||||||
Still in the target, roughly in dependency order:
|
Still in the target, roughly in dependency order:
|
||||||
|
|
||||||
@@ -128,8 +131,8 @@ Still in the target, roughly in dependency order:
|
|||||||
content, which otherwise has to say `Redraw` because only its own draw knows
|
content, which otherwise has to say `Redraw` because only its own draw knows
|
||||||
where the middle was.
|
where the middle was.
|
||||||
|
|
||||||
Size is the harder half: a declared size beside `set_size` is two sources of
|
Size is the harder half: a declared size beside the one `draw` returns is two
|
||||||
truth for one thing, so settle what each means before building it.
|
sources of truth for one thing, so settle what each means before building it.
|
||||||
- **The position chain** (LAYOUT.md §2): `UiData::move_offsets`, per-primitive
|
- **The position chain** (LAYOUT.md §2): `UiData::move_offsets`, per-primitive
|
||||||
slot ids and a bounded chain walk in WGSL, so moving a subtree writes one
|
slot ids and a bounded chain walk in WGSL, so moving a subtree writes one
|
||||||
slot instead of every descendant's primitives.
|
slot instead of every descendant's primitives.
|
||||||
|
|||||||
Reference in new issue
Block a user