diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-04 09:49:32 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-04 09:49:32 +0400 |
| commit | 69aeba2a4d93b34eb24319c3694ad354dc608a87 (patch) | |
| tree | b335e96feaa41792f4ec8d54a78213209daf029a /src/render_helpers/shader_element.rs | |
| parent | 7aab41304860a7b3a5db89d3dd0657e7d4f89989 (diff) | |
| download | niri-69aeba2a4d93b34eb24319c3694ad354dc608a87.tar.gz niri-69aeba2a4d93b34eb24319c3694ad354dc608a87.tar.bz2 niri-69aeba2a4d93b34eb24319c3694ad354dc608a87.zip | |
shader_element: Store and set location separately
Diffstat (limited to 'src/render_helpers/shader_element.rs')
| -rw-r--r-- | src/render_helpers/shader_element.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/render_helpers/shader_element.rs b/src/render_helpers/shader_element.rs index 27e8a6b7..81487c86 100644 --- a/src/render_helpers/shader_element.rs +++ b/src/render_helpers/shader_element.rs @@ -10,7 +10,7 @@ use smithay::backend::renderer::gles::{ }; use smithay::backend::renderer::utils::CommitCounter; use smithay::backend::renderer::DebugFlags; -use smithay::utils::{Buffer, Logical, Physical, Rectangle, Scale}; +use smithay::utils::{Buffer, Logical, Physical, Point, Rectangle, Scale, Size}; use super::renderer::AsGlesFrame; use super::resources::Resources; @@ -198,7 +198,7 @@ impl ShaderRenderElement { #[allow(clippy::too_many_arguments)] pub fn new( program: ProgramType, - area: Rectangle<i32, Logical>, + size: Size<i32, Logical>, opaque_regions: Option<Vec<Rectangle<i32, Logical>>>, alpha: f32, uniforms: Vec<Uniform<'_>>, @@ -209,7 +209,7 @@ impl ShaderRenderElement { program, id: Id::new(), commit_counter: CommitCounter::default(), - area, + area: Rectangle::from_loc_and_size((0, 0), size), opaque_regions: opaque_regions.unwrap_or_default(), alpha, additional_uniforms: uniforms.into_iter().map(|u| u.into_owned()).collect(), @@ -238,18 +238,23 @@ impl ShaderRenderElement { pub fn update( &mut self, - area: Rectangle<i32, Logical>, + size: Size<i32, Logical>, opaque_regions: Option<Vec<Rectangle<i32, Logical>>>, uniforms: Vec<Uniform<'_>>, textures: HashMap<String, GlesTexture>, ) { - self.area = area; + self.area.size = size; self.opaque_regions = opaque_regions.unwrap_or_default(); self.additional_uniforms = uniforms.into_iter().map(|u| u.into_owned()).collect(); self.textures = textures; self.commit_counter.increment(); } + + pub fn with_location(mut self, location: Point<i32, Logical>) -> Self { + self.area.loc = location; + self + } } impl Element for ShaderRenderElement { |
