Commit 3b410f7
committed
Implement support for models in the Row of a GridLayout
This is only part of the overall if/for support in grid: for now
it's only supported to repeat cells in a given row, one cannot repeat
entire Rows this way yet.
Some implementation notes:
- GridLayoutOrganizedData (4 u16s per cell) can now contain indirection
indices in the case of repeaters, like LayoutCache (2 f32s per cell).
The "generator" for that is separate code due to these two differences
(amount and type), while LayoutCacheAccess can be used for both (it
now receives the additional information of how many entries per item,
as a parameter)
- BoxLayoutFunction and BoxLayoutCellData are used by the grid layouting
code too; good for code sharing, but bad naming then. There are TODOs
to rename those in a followup commit.
This code reuse required porting from LayoutInfo to BoxLayoutCellData
(which has only one field, the LayoutInfo, I suppose this is good
for future extensions...).
- Compared to handling of repeaters for box layouts, there are
additional complications due to the "new_row" bool, especially
with empty repeaters (the first item at compile time isn't necessarily
the first item at runtime). The generated code solves that with
a "running" new_row bool, to detect if the repeater had instances or
not.1 parent 6d08036 commit 3b410f7
File tree
19 files changed
+1121
-250
lines changed- api/cpp/include
- internal
- compiler
- generator
- llr
- optim_passes
- passes
- tests/syntax/layout
- core
- interpreter
- tests/cases/layout
19 files changed
+1121
-250
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
131 | 134 | | |
132 | 135 | | |
133 | 136 | | |
| |||
142 | 145 | | |
143 | 146 | | |
144 | 147 | | |
145 | | - | |
146 | | - | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
147 | 151 | | |
148 | 152 | | |
149 | | - | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
150 | 156 | | |
151 | 157 | | |
152 | 158 | | |
153 | 159 | | |
154 | 160 | | |
155 | | - | |
| 161 | + | |
| 162 | + | |
156 | 163 | | |
157 | 164 | | |
158 | 165 | | |
159 | | - | |
160 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
161 | 170 | | |
162 | 171 | | |
163 | 172 | | |
| |||
176 | 185 | | |
177 | 186 | | |
178 | 187 | | |
179 | | - | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
180 | 191 | | |
181 | | - | |
| 192 | + | |
182 | 193 | | |
183 | 194 | | |
184 | 195 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
752 | 752 | | |
753 | 753 | | |
754 | 754 | | |
| 755 | + | |
755 | 756 | | |
| 757 | + | |
756 | 758 | | |
757 | 759 | | |
758 | | - | |
| 760 | + | |
759 | 761 | | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
760 | 765 | | |
761 | 766 | | |
762 | 767 | | |
| |||
1881 | 1886 | | |
1882 | 1887 | | |
1883 | 1888 | | |
1884 | | - | |
1885 | | - | |
1886 | | - | |
1887 | | - | |
1888 | | - | |
1889 | | - | |
1890 | | - | |
1891 | | - | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
1892 | 1904 | | |
1893 | 1905 | | |
1894 | 1906 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3716 | 3716 | | |
3717 | 3717 | | |
3718 | 3718 | | |
3719 | | - | |
| 3719 | + | |
| 3720 | + | |
| 3721 | + | |
| 3722 | + | |
| 3723 | + | |
| 3724 | + | |
3720 | 3725 | | |
3721 | 3726 | | |
3722 | 3727 | | |
3723 | 3728 | | |
3724 | | - | |
| 3729 | + | |
3725 | 3730 | | |
3726 | 3731 | | |
3727 | | - | |
| 3732 | + | |
| 3733 | + | |
3728 | 3734 | | |
3729 | 3735 | | |
3730 | 3736 | | |
| |||
3745 | 3751 | | |
3746 | 3752 | | |
3747 | 3753 | | |
| 3754 | + | |
| 3755 | + | |
| 3756 | + | |
| 3757 | + | |
| 3758 | + | |
| 3759 | + | |
| 3760 | + | |
| 3761 | + | |
| 3762 | + | |
| 3763 | + | |
| 3764 | + | |
| 3765 | + | |
3748 | 3766 | | |
3749 | 3767 | | |
3750 | 3768 | | |
| |||
4373 | 4391 | | |
4374 | 4392 | | |
4375 | 4393 | | |
| 4394 | + | |
| 4395 | + | |
| 4396 | + | |
| 4397 | + | |
| 4398 | + | |
| 4399 | + | |
| 4400 | + | |
| 4401 | + | |
| 4402 | + | |
| 4403 | + | |
| 4404 | + | |
| 4405 | + | |
| 4406 | + | |
| 4407 | + | |
| 4408 | + | |
| 4409 | + | |
| 4410 | + | |
| 4411 | + | |
| 4412 | + | |
| 4413 | + | |
| 4414 | + | |
| 4415 | + | |
| 4416 | + | |
| 4417 | + | |
| 4418 | + | |
| 4419 | + | |
| 4420 | + | |
| 4421 | + | |
| 4422 | + | |
| 4423 | + | |
| 4424 | + | |
| 4425 | + | |
| 4426 | + | |
| 4427 | + | |
| 4428 | + | |
| 4429 | + | |
| 4430 | + | |
| 4431 | + | |
| 4432 | + | |
| 4433 | + | |
| 4434 | + | |
| 4435 | + | |
| 4436 | + | |
| 4437 | + | |
| 4438 | + | |
| 4439 | + | |
| 4440 | + | |
| 4441 | + | |
| 4442 | + | |
| 4443 | + | |
| 4444 | + | |
| 4445 | + | |
| 4446 | + | |
| 4447 | + | |
| 4448 | + | |
| 4449 | + | |
| 4450 | + | |
| 4451 | + | |
| 4452 | + | |
| 4453 | + | |
| 4454 | + | |
| 4455 | + | |
| 4456 | + | |
| 4457 | + | |
| 4458 | + | |
| 4459 | + | |
| 4460 | + | |
| 4461 | + | |
| 4462 | + | |
| 4463 | + | |
| 4464 | + | |
| 4465 | + | |
| 4466 | + | |
| 4467 | + | |
| 4468 | + | |
| 4469 | + | |
| 4470 | + | |
4376 | 4471 | | |
4377 | 4472 | | |
4378 | 4473 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2693 | 2693 | | |
2694 | 2694 | | |
2695 | 2695 | | |
2696 | | - | |
| 2696 | + | |
2697 | 2697 | | |
2698 | 2698 | | |
2699 | 2699 | | |
2700 | 2700 | | |
2701 | 2701 | | |
2702 | | - | |
| 2702 | + | |
2703 | 2703 | | |
2704 | 2704 | | |
2705 | 2705 | | |
| |||
2720 | 2720 | | |
2721 | 2721 | | |
2722 | 2722 | | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
2723 | 2734 | | |
2724 | 2735 | | |
2725 | 2736 | | |
| |||
3420 | 3431 | | |
3421 | 3432 | | |
3422 | 3433 | | |
| 3434 | + | |
| 3435 | + | |
| 3436 | + | |
| 3437 | + | |
| 3438 | + | |
| 3439 | + | |
| 3440 | + | |
| 3441 | + | |
| 3442 | + | |
| 3443 | + | |
| 3444 | + | |
| 3445 | + | |
| 3446 | + | |
| 3447 | + | |
| 3448 | + | |
| 3449 | + | |
| 3450 | + | |
| 3451 | + | |
| 3452 | + | |
| 3453 | + | |
| 3454 | + | |
| 3455 | + | |
| 3456 | + | |
| 3457 | + | |
| 3458 | + | |
| 3459 | + | |
| 3460 | + | |
| 3461 | + | |
| 3462 | + | |
| 3463 | + | |
| 3464 | + | |
| 3465 | + | |
| 3466 | + | |
| 3467 | + | |
| 3468 | + | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
| 3473 | + | |
| 3474 | + | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
| 3481 | + | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
| 3487 | + | |
| 3488 | + | |
| 3489 | + | |
| 3490 | + | |
| 3491 | + | |
| 3492 | + | |
| 3493 | + | |
| 3494 | + | |
| 3495 | + | |
| 3496 | + | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
| 3507 | + | |
| 3508 | + | |
3423 | 3509 | | |
3424 | 3510 | | |
3425 | 3511 | | |
| |||
0 commit comments