From 0d77a65e68e60deb09ee021b9c16f3d219e62855 Mon Sep 17 00:00:00 2001 From: Armin Sander Date: Wed, 3 Jul 2024 09:55:31 +0200 Subject: [PATCH] Minor changes --- examples/shared/src/application.rs | 2 -- renderer/src/scene/mod.rs | 2 +- scene/src/change_tracker.rs | 6 ++++-- scene/src/handle.rs | 10 +++++++++- scene/src/objects.rs | 13 +++++-------- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/examples/shared/src/application.rs b/examples/shared/src/application.rs index a1c4ddd..6b72897 100644 --- a/examples/shared/src/application.rs +++ b/examples/shared/src/application.rs @@ -190,8 +190,6 @@ impl Application { } pub fn matrix(&self, page_size: impl Into) -> Matrix4 { - // let mut shapes = Vec::new(); - let page_size = page_size.into(); let page_x_center: f64 = -((page_size.width / 2) as f64); diff --git a/renderer/src/scene/mod.rs b/renderer/src/scene/mod.rs index edfb447..ceba5bd 100644 --- a/renderer/src/scene/mod.rs +++ b/renderer/src/scene/mod.rs @@ -51,7 +51,7 @@ impl Scene { let mut map: HashMap> = HashMap::new(); for visual in self.visuals.iter_some() { - let visual_id = visual.position; + let visual_id = visual.location; map.entry(visual_id).or_default().push(&visual.shapes); } diff --git a/scene/src/change_tracker.rs b/scene/src/change_tracker.rs index 0c5f8ff..41e416d 100644 --- a/scene/src/change_tracker.rs +++ b/scene/src/change_tracker.rs @@ -2,7 +2,7 @@ use std::{any::TypeId, mem}; use massive_geometry as geometry; -use crate::{Id, LocationRenderObj, Object, Visual, VisualRenderObj}; +use crate::{Id, Location, LocationRenderObj, Object, Visual, VisualRenderObj}; #[derive(Debug)] pub enum Change { @@ -25,7 +25,9 @@ impl SceneChange { Some((TypeId::of::(), *id)) } SceneChange::Visual(Change::Delete(id)) => Some((TypeId::of::(), *id)), - _ => None, + SceneChange::Location(Change::Delete(id)) => Some((TypeId::of::(), *id)), + // .. to prevent missing new cases: + SceneChange::Matrix(_) | SceneChange::Location(_) | SceneChange::Visual(_) => None, } } } diff --git a/scene/src/handle.rs b/scene/src/handle.rs index fb0962f..67f35b8 100644 --- a/scene/src/handle.rs +++ b/scene/src/handle.rs @@ -17,11 +17,19 @@ pub trait Object: Sized { fn split(self) -> (Self::Keep, Self::Change); } -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct Handle { inner: Rc>, } +impl Clone for Handle { + fn clone(&self) -> Self { + Self { + inner: self.inner.clone(), + } + } +} + impl Handle { pub(crate) fn new(id: Id, value: T, change_tracker: Rc>) -> Self { let (pinned, uploaded) = T::split(value); diff --git a/scene/src/objects.rs b/scene/src/objects.rs index 85da3b2..4ff9f05 100644 --- a/scene/src/objects.rs +++ b/scene/src/objects.rs @@ -25,26 +25,23 @@ pub struct Visual { #[derive(Debug)] pub struct VisualRenderObj { - pub position: Id, + pub location: Id, pub shapes: Vec, } impl Object for Visual { - // We keep the position handle here. + // We keep the location handle here. type Keep = Handle; // And upload the render shape. type Change = VisualRenderObj; fn split(self) -> (Self::Keep, Self::Change) { - let Visual { - location: position, - shapes, - } = self; + let Visual { location, shapes } = self; let shape = VisualRenderObj { - position: position.id(), + location: location.id(), shapes, }; - (position, shape) + (location, shape) } fn promote_change(change: Change) -> SceneChange {