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:
@@ -95,6 +95,39 @@ impl ShumaTermState {
|
||||
pub fn cwd(&self) -> &str {
|
||||
&self.cwd
|
||||
}
|
||||
|
||||
/// Envía bytes crudos al stdin del PTY. Para hosts que ya producen sus
|
||||
/// propios códigos de tecla y no quieren pasar por [`apply`] —p. ej. el
|
||||
/// backend layer-shell de pata, que recibe `Keysym` de SCTK y no
|
||||
/// `KeyEvent` de llimphi. Los hosts con `KeyEvent` deberían usar
|
||||
/// `apply(ShumaTermMsg::KeyInput(ev))` (que internamente llama a esto).
|
||||
pub fn send_input(&self, bytes: Vec<u8>) -> bool {
|
||||
if bytes.is_empty() {
|
||||
return false;
|
||||
}
|
||||
self.handle.write_input(bytes)
|
||||
}
|
||||
|
||||
/// Reescala el PTY y el buffer vt100 a `cols`×`rows`. No-op si el tamaño
|
||||
/// no cambió. El host la llama cuando el panel que lo hospeda cambia de
|
||||
/// tamaño (en pata: al abrir/redimensionar el drawer Quake).
|
||||
pub fn resize(&mut self, cols: u16, rows: u16) {
|
||||
let cols = cols.max(2);
|
||||
let rows = rows.max(1);
|
||||
if cols == self.cols && rows == self.rows {
|
||||
return;
|
||||
}
|
||||
self.cols = cols;
|
||||
self.rows = rows;
|
||||
self.handle.resize(rows, cols);
|
||||
self.parser.screen_mut().set_size(rows, cols);
|
||||
}
|
||||
|
||||
/// Drena los eventos pendientes del PTY (bytes + exit). Atajo de
|
||||
/// `apply(ShumaTermMsg::Tick)` para hosts que tickean a mano.
|
||||
pub fn tick(&mut self) -> ShumaTermAction {
|
||||
drain(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for ShumaTermState {
|
||||
|
||||
Reference in New Issue
Block a user