aboutsummaryrefslogtreecommitdiff
path: root/src/render_helpers/shader_element.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-04 09:49:32 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-04 09:49:32 +0400
commit69aeba2a4d93b34eb24319c3694ad354dc608a87 (patch)
treeb335e96feaa41792f4ec8d54a78213209daf029a /src/render_helpers/shader_element.rs
parent7aab41304860a7b3a5db89d3dd0657e7d4f89989 (diff)
downloadniri-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.rs15
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 {