fix(items): add the proper aspects

This commit is contained in:
Nova
2024-09-11 14:26:09 -04:00
parent 5df9d26ca1
commit 74731bf4a3
3 changed files with 17 additions and 16 deletions

View File

@@ -74,22 +74,19 @@ pub struct CameraItem {
#[allow(unused)] #[allow(unused)]
impl CameraItem { impl CameraItem {
pub fn add_to(node: &Arc<Node>, proj_matrix: Mat4, px_size: Vector2<u32>) { pub fn add_to(node: &Arc<Node>, proj_matrix: Mat4, px_size: Vector2<u32>) {
Item::add_to( let item = Arc::new(CameraItem {
node, space: node.get_aspect::<Spatial>().unwrap().clone(),
&ITEM_TYPE_INFO_CAMERA, frame_info: Mutex::new(FrameInfo {
ItemType::Camera(CameraItem { proj_matrix,
space: node.get_aspect::<Spatial>().unwrap().clone(), px_size,
frame_info: Mutex::new(FrameInfo {
proj_matrix,
px_size,
}),
sk_tex: OnceCell::new(),
sk_mat: OnceCell::new(),
applied_to: Registry::new(),
apply_to: Registry::new(),
}), }),
); sk_tex: OnceCell::new(),
node.add_aspect(CameraItemUi); sk_mat: OnceCell::new(),
applied_to: Registry::new(),
apply_to: Registry::new(),
});
Item::add_to(node, &ITEM_TYPE_INFO_CAMERA, ItemType::Camera(item.clone()));
node.add_aspect_raw(item);
} }
fn frame_flex( fn frame_flex(
@@ -171,6 +168,9 @@ impl CameraItem {
} }
} }
} }
impl Aspect for CameraItem {
impl_aspect_for_camera_item_aspect! {}
}
impl CameraItemAspect for CameraItem {} impl CameraItemAspect for CameraItem {}
pub struct CameraItemUi; pub struct CameraItemUi;

View File

@@ -130,7 +130,7 @@ impl Drop for Item {
} }
pub enum ItemType { pub enum ItemType {
Camera(CameraItem), Camera(Arc<CameraItem>),
Panel(Arc<dyn PanelItemTrait>), Panel(Arc<dyn PanelItemTrait>),
} }
impl ItemType { impl ItemType {

View File

@@ -122,6 +122,7 @@ impl<B: Backend> PanelItem<B> {
&ITEM_TYPE_INFO_PANEL, &ITEM_TYPE_INFO_PANEL,
ItemType::Panel(generic_panel_item), ItemType::Panel(generic_panel_item),
); );
node.add_aspect_raw(panel_item.clone());
(node, panel_item) (node, panel_item)
} }