From 0257655ebaa6101318b536a8f6d234a25ea8ee01 Mon Sep 17 00:00:00 2001 From: Nova Date: Sun, 6 Aug 2023 10:10:50 -0400 Subject: [PATCH] refactor(drawable): remove sendwrapper --- src/nodes/drawable/model.rs | 5 ++--- src/nodes/drawable/text.rs | 19 ++++++++----------- src/wayland/surface.rs | 12 ++++++------ 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/nodes/drawable/model.rs b/src/nodes/drawable/model.rs index ef7fce5..a06786b 100644 --- a/src/nodes/drawable/model.rs +++ b/src/nodes/drawable/model.rs @@ -14,7 +14,6 @@ use once_cell::sync::OnceCell; use parking_lot::Mutex; use portable_atomic::{AtomicBool, Ordering}; use rustc_hash::FxHashMap; -use send_wrapper::SendWrapper; use serde::Deserialize; use stardust_xr::schemas::flex::deserialize; use stardust_xr::values::Transform; @@ -122,7 +121,7 @@ pub struct ModelPart { space: Arc, model: Weak, pending_material_parameters: Mutex>, - pending_material_replacement: Mutex>>>, + pending_material_replacement: Mutex>>, } impl ModelPart { fn create_for_model(sk: &impl StereoKitMultiThread, model: &Arc, sk_model: &SKModel) { @@ -228,7 +227,7 @@ impl ModelPart { Ok(()) } - pub fn replace_material(&self, replacement: Arc>) { + pub fn replace_material(&self, replacement: Arc) { self.pending_material_replacement .lock() .replace(replacement); diff --git a/src/nodes/drawable/text.rs b/src/nodes/drawable/text.rs index c3148ec..2c2c214 100644 --- a/src/nodes/drawable/text.rs +++ b/src/nodes/drawable/text.rs @@ -13,7 +13,6 @@ use once_cell::sync::OnceCell; use parking_lot::Mutex; use portable_atomic::{AtomicBool, Ordering}; use prisma::{Flatten, Rgba}; -use send_wrapper::SendWrapper; use serde::Deserialize; use stardust_xr::{schemas::flex::deserialize, values::Transform}; use std::{ffi::OsStr, path::PathBuf, sync::Arc}; @@ -35,7 +34,7 @@ pub struct Text { enabled: Arc, space: Arc, font_path: Option, - style: OnceCell>, + style: OnceCell, data: Mutex, } @@ -91,18 +90,16 @@ impl Text { } fn draw(&self, sk: &impl StereoKitDraw) { - let style = self.style.get_or_try_init( - || -> Result, color_eyre::eyre::Error> { + let style = self + .style + .get_or_try_init(|| -> Result { let font = self .font_path .as_deref() .and_then(|path| sk.font_create(path).ok()) .unwrap_or_else(|| sk.font_find("default/font").unwrap()); - Ok(SendWrapper::new(unsafe { - sk.text_make_style(font, 1.0, WHITE) - })) - }, - ); + Ok(unsafe { sk.text_make_style(font, 1.0, WHITE) }) + }); if let Ok(style) = style { let data = self.data.lock(); @@ -118,7 +115,7 @@ impl Text { transform, bounds / data.character_height, data.fit, - **style, + *style, data.bounds_align, data.text_align, vec3(0.0, 0.0, 0.0), @@ -133,7 +130,7 @@ impl Text { sk.text_add_at( &data.text, transform, - **style, + *style, data.bounds_align, data.text_align, vec3(0.0, 0.0, 0.0), diff --git a/src/wayland/surface.rs b/src/wayland/surface.rs index f62e706..38be788 100644 --- a/src/wayland/surface.rs +++ b/src/wayland/surface.rs @@ -40,8 +40,8 @@ pub struct CoreSurface { pub dh: DisplayHandle, pub weak_surface: wayland_server::Weak, mapped_data: Mutex>, - sk_tex: OnceCell>, - sk_mat: OnceCell>>, + sk_tex: OnceCell, + sk_mat: OnceCell>, material_offset: Mutex>, on_mapped: Box, on_commit: Box, @@ -85,9 +85,9 @@ impl CoreSurface { pub fn process(&self, sk: &impl StereoKitDraw, renderer: &mut GlesRenderer) { let Some(wl_surface) = self.wl_surface() else {return}; - let sk_tex = self.sk_tex.get_or_init(|| { - SendWrapper::new(sk.tex_create(TextureType::IMAGE_NO_MIPS, TextureFormat::RGBA32)) - }); + let sk_tex = self + .sk_tex + .get_or_init(|| sk.tex_create(TextureType::IMAGE_NO_MIPS, TextureFormat::RGBA32)); self.sk_mat.get_or_init(|| { let shader = sk.shader_create_mem(&PANEL_SHADER_BYTES).unwrap(); // let _ = renderer.with_context(|c| unsafe { @@ -97,7 +97,7 @@ impl CoreSurface { let mat = sk.material_create(&shader); sk.material_set_texture(&mat, "diffuse", sk_tex.as_ref()); sk.material_set_transparency(&mat, Transparency::Blend); - Arc::new(SendWrapper::new(mat)) + Arc::new(mat) }); // Let smithay handle buffer management (has to be done here as RendererSurfaceStates is not thread safe)