memoize the signals
This commit is contained in:
parent
a4cf8d3df4
commit
e8ca7c9a12
2 changed files with 10 additions and 8 deletions
|
|
@ -444,16 +444,17 @@ pub fn RealmSceneViewer(
|
|||
|
||||
let text_em_size = Signal::derive(move || settings.get().text_em_size);
|
||||
|
||||
// Compute SceneTransform once for all avatars and props
|
||||
let scene_transform = Signal::derive(move || SceneTransform {
|
||||
// Compute SceneTransform once for all avatars and props (memoized)
|
||||
let scene_transform: Signal<SceneTransform> = Memo::new(move |_| SceneTransform {
|
||||
scale_x: scale_x.get(),
|
||||
scale_y: scale_y.get(),
|
||||
offset_x: offset_x.get(),
|
||||
offset_y: offset_y.get(),
|
||||
});
|
||||
})
|
||||
.into();
|
||||
|
||||
// Compute ScreenBounds once for all avatars (for clamping)
|
||||
let screen_bounds = Signal::derive(move || {
|
||||
// Compute ScreenBounds once for all avatars (memoized for clamping)
|
||||
let screen_bounds: Signal<ScreenBounds> = Memo::new(move |_| {
|
||||
let t = scene_transform.get();
|
||||
ScreenBounds::from_transform(
|
||||
scene_width_f,
|
||||
|
|
@ -463,7 +464,8 @@ pub fn RealmSceneViewer(
|
|||
t.offset_x,
|
||||
t.offset_y,
|
||||
)
|
||||
});
|
||||
})
|
||||
.into();
|
||||
|
||||
let members_by_key = Signal::derive(move || {
|
||||
sorted_members.get().into_iter().enumerate()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue