From 3f08e1e212244efe646205dab62aa097755d5ac2 Mon Sep 17 00:00:00 2001 From: Nova Date: Wed, 4 Jan 2023 21:36:55 -0500 Subject: [PATCH] feat(wayland/surface): geometry resizing, unused --- src/wayland/shaders/shader_unlit_gamma.hlsl | 2 +- src/wayland/shaders/shader_unlit_gamma.sks | Bin 13927 -> 13927 bytes src/wayland/shaders/shader_unlit_simula.hlsl | 10 ++-- src/wayland/shaders/shader_unlit_simula.sks | Bin 30189 -> 30221 bytes src/wayland/surface.rs | 47 +++++++++++-------- src/wayland/xdg_shell.rs | 9 ++-- 6 files changed, 39 insertions(+), 29 deletions(-) diff --git a/src/wayland/shaders/shader_unlit_gamma.hlsl b/src/wayland/shaders/shader_unlit_gamma.hlsl index 13459b7..3e63104 100644 --- a/src/wayland/shaders/shader_unlit_gamma.hlsl +++ b/src/wayland/shaders/shader_unlit_gamma.hlsl @@ -28,7 +28,7 @@ psIn vs(vsIn input, uint id : SV_InstanceID) { float3 world = mul(float4(input.pos.xyz, 1), sk_inst[id].world).xyz; o.pos = mul(float4(world, 1), sk_viewproj[o.view_id]); - o.uv = (input.uv) + uv_offset * uv_scale; + o.uv = (input.uv + uv_offset) * uv_scale; return o; } float4 ps(psIn input) : SV_TARGET { diff --git a/src/wayland/shaders/shader_unlit_gamma.sks b/src/wayland/shaders/shader_unlit_gamma.sks index 194b0676de1b898d12e4a1c323779874d26e6e38..96bec3e0d8115ed4ee70643a4cdc2aad4b76f0d7 100644 GIT binary patch delta 889 zcmaE!^E_um8l$ZP0|ac1+M#|il!0M`K2!A-Aidz_|0)pu;5CF+xWfn*7g!15gLO?_ z%&5zVpmTuEnEZ-K zXQF|Gsz3rnLm&%8MZpP(RSaNPL3K?IX4bcp268}-*zhV9Y&6tlh7V8^n4t1dJq!&{ z#zina`2e$?9lF+pM2O{VFg;Kj#0LjAidB-D%(9v|m-zjw~}&U?Iixn5o> ziCha2N$40k)Q%c~j?+;(jd}!faCI7Ag432=^3@ZO2`<2K8;a2&;~~aH#wE*=#z-|s z{M;O@C?pZ|uu*lSq(|0w=rLF?C(${N>Od~8MKu%2?7i!({g95WI8ZKaX5UgKGFLwpJyXcT%z1*-+-BCZNu(3OAY=(`^+A&G@O~2mm zfl%{^SY)j=#!nePWBi=)l2B3U2kXWk_^Va}dZbH>RiT3BvqtCCQ zSCIDa8Sf4Fc6h6$+exInv{#)jPLxWOktvnWz6b}}X5G~2_+)jeSe?e*&SFp2w=G_m pXU>(I*UKX*RZDtd>)9Lf;3Huz*>{Nc#uGAKGPZx$FrPgqw*fjGkOcq$ diff --git a/src/wayland/shaders/shader_unlit_simula.hlsl b/src/wayland/shaders/shader_unlit_simula.hlsl index a27c063..f68a4ba 100644 --- a/src/wayland/shaders/shader_unlit_simula.hlsl +++ b/src/wayland/shaders/shader_unlit_simula.hlsl @@ -4,19 +4,19 @@ //--name = stardust/text_shader //--diffuse = white -//--fcFactor = 1.0 -//--ripple = 4.0 //--uv_offset = 0.0, 0.0 //--uv_scale = 1.0, 1.0 +//--fcFactor = 1.0 +//--ripple = 4.0 //--alpha_min = 0.0 //--alpha_max = 1.0 Texture2D diffuse : register(t0); SamplerState diffuse_s : register(s0); float4 diffuse_i; -float fcFactor; -float ripple; float2 uv_scale; float2 uv_offset; +float fcFactor; +float ripple; float alpha_min; float alpha_max; @@ -39,7 +39,7 @@ psIn vs(vsIn input, uint id : SV_InstanceID) { float3 world = mul(float4(input.pos.xyz, 1), sk_inst[id].world).xyz; o.pos = mul(float4(world, 1), sk_viewproj[o.view_id]); - o.uv = (input.uv) + uv_offset * uv_scale; + o.uv = (input.uv + uv_offset) * uv_scale; return o; } diff --git a/src/wayland/shaders/shader_unlit_simula.sks b/src/wayland/shaders/shader_unlit_simula.sks index 2a5e526130bed9ce37c88a6b343ef0982949242b..736b617decc50abf7edcceef49f3268fa20f5e71 100644 GIT binary patch literal 30221 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 BfFu9_ literal 30189 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, sk_mat: OnceCell>>, material_offset: Mutex>, - geometry: Mutex>, + // geometry: Mutex>>, pub pending_material_applications: Mutex, u32)>>, } @@ -78,6 +77,9 @@ impl CoreSurface { surface: &WlSurface, ) { compositor::with_states(surface, |data| { + // let mut geometry: Delta> = + // Delta::new(data.data_map.get::().cloned()); + // geometry.mark_changed(); data.data_map.insert_if_missing_threadsafe(|| { CORE_SURFACES.add(CoreSurface { display: Arc::downgrade(display), @@ -87,10 +89,7 @@ impl CoreSurface { sk_tex: OnceCell::new(), sk_mat: OnceCell::new(), material_offset: Mutex::new(Delta::new(0)), - geometry: Mutex::new(Delta::new(SurfaceGeometry { - origin: [0; 2].into(), - size: [0; 2].into(), - })), + // geometry: Mutex::new(geometry), pending_material_applications: Mutex::new(Vec::new()), }) }); @@ -147,11 +146,12 @@ impl CoreSurface { self.with_states(|data| { // let just_mapped = mapped_data.is_none(); // if just_mapped { - let smithay_tex = data + let renderer_surface_state = data .data_map .get::() .unwrap() - .borrow() + .borrow(); + let smithay_tex = renderer_surface_state .texture::(renderer.id()) .unwrap() .clone(); @@ -173,16 +173,25 @@ impl CoreSurface { if let Some(material_offset) = self.material_offset.lock().delta() { sk_mat.set_queue_offset(*material_offset as i32); } - if let Some(geometry) = self.geometry.lock().delta() { - let tex_size = vec2(smithay_tex.width() as f32, smithay_tex.height() as f32); - let geometry_origin = vec2(geometry.origin.x as f32, geometry.origin.y as f32); - let geometry_size = vec2(geometry.size.x as f32, geometry.size.y as f32); - sk_mat.set_parameter("uv_offset", &Vector2::from(geometry_origin / tex_size)); - sk_mat.set_parameter("uv_scale", &Vector2::from(geometry_size / tex_size)); - } + // if let Some(geometry) = self.geometry.lock().delta().cloned().unwrap_or_default() { + // let buffer_size = renderer_surface_state.buffer_size().unwrap(); + // let surface_size = dbg!(vec2(buffer_size.w as f32, buffer_size.h as f32)); + // let geometry_origin = + // dbg!(vec2(geometry.origin.x as f32, geometry.origin.y as f32)); + // let geometry_size = dbg!(vec2(geometry.size.x as f32, geometry.size.y as f32)); + // sk_mat.set_parameter( + // "uv_offset", + // &Vector2::from(dbg!(geometry_origin / surface_size)), + // ); + // sk_mat.set_parameter( + // "uv_scale", + // &Vector2::from(dbg!(geometry_size / surface_size)), + // ); + // } + let surface_size = renderer_surface_state.surface_size().unwrap(); let new_mapped_data = CoreSurfaceData { - size: Vector2::from([smithay_tex.width(), smithay_tex.height()]), + size: Vector2::from([surface_size.w as u32, surface_size.h as u32]), wl_tex: Some(SendWrapper::new(smithay_tex)), }; *mapped_data = Some(new_mapped_data); @@ -207,9 +216,9 @@ impl CoreSurface { *self.material_offset.lock().value_mut() = material_offset; } - pub fn set_geometry(&self, geometry: SurfaceGeometry) { - *self.geometry.lock().value_mut() = geometry; - } + // pub fn set_geometry(&self, geometry: SurfaceGeometry) { + // *self.geometry.lock().value_mut() = Some(geometry); + // } pub fn apply_material(&self, model: Arc, material_idx: u32) { self.pending_material_applications diff --git a/src/wayland/xdg_shell.rs b/src/wayland/xdg_shell.rs index 152b72c..cac4036 100644 --- a/src/wayland/xdg_shell.rs +++ b/src/wayland/xdg_shell.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use super::{ panel_item::{PanelItem, RecommendedState, ToplevelState}, state::WaylandState, - surface::{CoreSurface, SurfaceGeometry}, + surface::SurfaceGeometry, SERIAL_COUNTER, }; use mint::Vector2; @@ -278,9 +278,10 @@ impl Dispatch for WaylandState { *data.geometry.lock() = Some(geometry); let Ok(wl_surface) = data.wl_surface.upgrade() else { return; }; compositor::with_states(&wl_surface, |data| { - if let Some(core_surface) = data.data_map.get::() { - core_surface.set_geometry(geometry); - } + // if let Some(core_surface) = data.data_map.get::>() { + // core_surface.set_geometry(geometry); + // } + data.data_map.insert_if_missing_threadsafe(|| geometry); }); } xdg_surface::Request::AckConfigure { serial: _ } => (),