refresh: stack al día (vello 0.7 / wgpu 27 / parley 0.6) + motor 3D voxel
Re-sincroniza las fuentes desde el monorepo (estaba en vello 0.5/wgpu 24 y con la estructura vieja de eventloop) y suma el 3D: - bump del workspace a vello 0.7 / wgpu 27 / parley 0.6, + accesskit 0.24 / accesskit_winit 0.33 / vello_hybrid 0.0.9. - nuevos crates: llimphi-3d (voxels ray-march + mallas en un depth compartido, montable dentro de un View 2D vía set_viewport+scissor) y llimphi-voxel (world-gen, personajes, director de escenas) + shared/foreign-vox (puente .vox). - README: sección "Not just 2D — a 3D voxel engine" + GIF (docs/llimphi_voxel.gif). - excluido modules/allichay (arrastra deps fuera del alcance del front-door). - cargo check --workspace: verde. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use llimphi_ui::llimphi_layout::taffy::{
|
||||
prelude::{length, percent, Dimension, FlexDirection, Size, Style},
|
||||
prelude::{length, percent, FlexDirection, Size, Style},
|
||||
Rect,
|
||||
};
|
||||
use llimphi_ui::llimphi_raster::peniko::Color;
|
||||
@@ -126,11 +126,16 @@ where
|
||||
}
|
||||
|
||||
fn wrap_pane<Msg>(view: View<Msg>, direction: Direction, size: PaneSize) -> View<Msg> {
|
||||
// El panel Flex usa flex-basis 0 en el eje principal (no `auto`): así su
|
||||
// tamaño es la porción de espacio libre que le toca por `flex_grow`, en
|
||||
// vez del tamaño de su contenido. Con `auto` un hijo que desborda (p.ej.
|
||||
// una grilla con flex-wrap o contenido ancho) volvía el panel
|
||||
// content-sized y rompía el wrap / desbordaba horizontalmente.
|
||||
let (width, height, flex_grow) = match (direction, size) {
|
||||
(Direction::Row, PaneSize::Fixed(px)) => (length(px), percent(1.0_f32), 0.0),
|
||||
(Direction::Row, PaneSize::Flex) => (Dimension::auto(), percent(1.0_f32), 1.0),
|
||||
(Direction::Row, PaneSize::Flex) => (length(0.0_f32), percent(1.0_f32), 1.0),
|
||||
(Direction::Column, PaneSize::Fixed(px)) => (percent(1.0_f32), length(px), 0.0),
|
||||
(Direction::Column, PaneSize::Flex) => (percent(1.0_f32), Dimension::auto(), 1.0),
|
||||
(Direction::Column, PaneSize::Flex) => (percent(1.0_f32), length(0.0_f32), 1.0),
|
||||
};
|
||||
View::new(Style {
|
||||
size: Size { width, height },
|
||||
@@ -157,6 +162,12 @@ where
|
||||
Direction::Row => (length(palette.thickness), percent(1.0_f32)),
|
||||
Direction::Column => (percent(1.0_f32), length(palette.thickness)),
|
||||
};
|
||||
// Divisor vertical (Row, separa izq/der) → resize este-oeste; divisor
|
||||
// horizontal (Column, separa arriba/abajo) → resize norte-sur.
|
||||
let cursor = match direction {
|
||||
Direction::Row => llimphi_ui::Cursor::ColResize,
|
||||
Direction::Column => llimphi_ui::Cursor::RowResize,
|
||||
};
|
||||
View::new(Style {
|
||||
size: Size { width, height },
|
||||
flex_shrink: 0.0,
|
||||
@@ -170,5 +181,6 @@ where
|
||||
})
|
||||
.fill(palette.divider)
|
||||
.hover_fill(palette.divider_hover)
|
||||
.cursor(cursor)
|
||||
.draggable(handler)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user