feat(gui): add toolbar widget
feat(gui): add grid_select, toggle, panel, status_bar, image widgets fix(bsp): fill in exterior cells
This commit is contained in:
parent
5a565844dd
commit
8d491612ab
63 changed files with 3150 additions and 1686 deletions
|
|
@ -1,5 +1,3 @@
|
|||
extern crate alloc;
|
||||
|
||||
use alloc::boxed::Box;
|
||||
use alloc::vec::Vec;
|
||||
|
||||
|
|
@ -146,6 +144,7 @@ pub struct Bsp {
|
|||
pub vertex_lights: Box<[u32]>,
|
||||
pub vertices: Box<[Vertex]>,
|
||||
pub visdata: Box<[u8]>,
|
||||
pub heightfield: Box<[f32]>,
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
|
|
@ -161,6 +160,16 @@ pub struct BspBuilder {
|
|||
pub vertex_lights: Vec<u32>,
|
||||
pub vertices: Vec<Vertex>,
|
||||
pub visdata: Vec<u8>,
|
||||
pub heightfield: Vec<f32>,
|
||||
pub heightfield_w: u16,
|
||||
pub heightfield_h: u16,
|
||||
pub heightfield_ox: f32,
|
||||
pub heightfield_oz: f32,
|
||||
pub heightfield_cell_size: f32,
|
||||
pub bounds_min_x: f32,
|
||||
pub bounds_min_z: f32,
|
||||
pub bounds_max_x: f32,
|
||||
pub bounds_max_z: f32,
|
||||
}
|
||||
|
||||
impl BspBuilder {
|
||||
|
|
@ -182,6 +191,7 @@ impl From<BspBuilder> for Bsp {
|
|||
let vertex_lights = b.vertex_lights.into_boxed_slice();
|
||||
let vertices = b.vertices.into_boxed_slice();
|
||||
let visdata = b.visdata.into_boxed_slice();
|
||||
let heightfield = b.heightfield.into_boxed_slice();
|
||||
|
||||
let inner = pxl8_bsp {
|
||||
cell_portals: if cell_portals.is_empty() { core::ptr::null_mut() } else { cell_portals.as_ptr() as *mut _ },
|
||||
|
|
@ -198,6 +208,7 @@ impl From<BspBuilder> for Bsp {
|
|||
vertex_lights: if vertex_lights.is_empty() { core::ptr::null_mut() } else { vertex_lights.as_ptr() as *mut _ },
|
||||
vertices: if vertices.is_empty() { core::ptr::null_mut() } else { vertices.as_ptr() as *mut _ },
|
||||
visdata: if visdata.is_empty() { core::ptr::null_mut() } else { visdata.as_ptr() as *mut _ },
|
||||
heightfield: if heightfield.is_empty() { core::ptr::null_mut() } else { heightfield.as_ptr() as *mut _ },
|
||||
lightdata_size: 0,
|
||||
num_cell_portals: cell_portals.len() as u32,
|
||||
num_edges: edges.len() as u32,
|
||||
|
|
@ -211,7 +222,17 @@ impl From<BspBuilder> for Bsp {
|
|||
num_surfedges: surfedges.len() as u32,
|
||||
num_vertex_lights: vertex_lights.len() as u32,
|
||||
num_vertices: vertices.len() as u32,
|
||||
num_heightfield: heightfield.len() as u32,
|
||||
heightfield_ox: b.heightfield_ox,
|
||||
heightfield_oz: b.heightfield_oz,
|
||||
heightfield_cell_size: b.heightfield_cell_size,
|
||||
heightfield_w: b.heightfield_w,
|
||||
heightfield_h: b.heightfield_h,
|
||||
visdata_size: visdata.len() as u32,
|
||||
bounds_min_x: b.bounds_min_x,
|
||||
bounds_min_z: b.bounds_min_z,
|
||||
bounds_max_x: b.bounds_max_x,
|
||||
bounds_max_z: b.bounds_max_z,
|
||||
};
|
||||
|
||||
Self {
|
||||
|
|
@ -227,6 +248,7 @@ impl From<BspBuilder> for Bsp {
|
|||
vertex_lights,
|
||||
vertices,
|
||||
visdata,
|
||||
heightfield,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue