Часть эпика #656 (двусторонняя засветка).
Сейчас зеркало обратной стороны — только по X (goo::flip_x, crates/cuprum-goo/src/lib.rs:208-215, вызов crates/cuprum-core/src/compose.rs:378 под флагом mirror). Приспособа может переворачивать плату вокруг любой оси → нужна поддержка обеих.
Что сделать
goo::flip_y — реверс порядка строк буфера всего экрана (зеркало относительно горизонтальной оси по центру экрана), рядом с flip_x.
- Параметр засветки
mirror: bool → расширить выбором оси (mirror_axis: X | Y), прокинуть через compose_layout(...) (compose.rs:336) и expose_run.rs (ExposeRunRequest, ~64-80).
- UI окна «Засветка UV»: селектор оси X/Y рядом с чекбоксом «Зеркало», активен когда «Зеркало» включено. Персист в
settingsStore.
Заметки
- Центрирование панели на экране уже есть (
compose.rs:95-96), отдельно делать не нужно — зеркало остаётся относительно центра экрана = центра панели.
- Поднять кэш-тег если затрагивается превью.
Проверить после слияния
Часть эпика #656 (двусторонняя засветка).
Сейчас зеркало обратной стороны — только по X (
goo::flip_x,crates/cuprum-goo/src/lib.rs:208-215, вызовcrates/cuprum-core/src/compose.rs:378под флагомmirror). Приспособа может переворачивать плату вокруг любой оси → нужна поддержка обеих.Что сделать
goo::flip_y— реверс порядка строк буфера всего экрана (зеркало относительно горизонтальной оси по центру экрана), рядом сflip_x.mirror: bool→ расширить выбором оси (mirror_axis: X | Y), прокинуть черезcompose_layout(...)(compose.rs:336) иexpose_run.rs(ExposeRunRequest, ~64-80).settingsStore.Заметки
compose.rs:95-96), отдельно делать не нужно — зеркало остаётся относительно центра экрана = центра панели.Проверить после слияния