diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-17 09:16:28 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-18 14:01:28 +0300 |
| commit | 1dae45c58d7eabeda21ef490d712915890bf6cff (patch) | |
| tree | 62c473ab1662a1161ed522517ea57b7bd8db340c /src/render_helpers/shader_element.rs | |
| parent | 997119c44338ad96a40b4a1d6e958f77062a37ef (diff) | |
| download | niri-1dae45c58d7eabeda21ef490d712915890bf6cff.tar.gz niri-1dae45c58d7eabeda21ef490d712915890bf6cff.tar.bz2 niri-1dae45c58d7eabeda21ef490d712915890bf6cff.zip | |
Refactor layout to fractional-logical
Lets borders, gaps, and everything else stay pixel-perfect even with
fractional scale. Allows setting fractional border widths, gaps,
struts.
See the new wiki .md for more details.
Diffstat (limited to 'src/render_helpers/shader_element.rs')
| -rw-r--r-- | src/render_helpers/shader_element.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/render_helpers/shader_element.rs b/src/render_helpers/shader_element.rs index a432ca34..ebd9b1ec 100644 --- a/src/render_helpers/shader_element.rs +++ b/src/render_helpers/shader_element.rs @@ -23,8 +23,8 @@ pub struct ShaderRenderElement { program: ProgramType, id: Id, commit_counter: CommitCounter, - area: Rectangle<i32, Logical>, - opaque_regions: Vec<Rectangle<i32, Logical>>, + area: Rectangle<f64, Logical>, + opaque_regions: Vec<Rectangle<f64, Logical>>, alpha: f32, additional_uniforms: Vec<Uniform<'static>>, textures: HashMap<String, GlesTexture>, @@ -198,8 +198,8 @@ impl ShaderRenderElement { #[allow(clippy::too_many_arguments)] pub fn new( program: ProgramType, - size: Size<i32, Logical>, - opaque_regions: Option<Vec<Rectangle<i32, Logical>>>, + size: Size<f64, Logical>, + opaque_regions: Option<Vec<Rectangle<f64, Logical>>>, alpha: f32, uniforms: Vec<Uniform<'_>>, textures: HashMap<String, GlesTexture>, @@ -209,7 +209,7 @@ impl ShaderRenderElement { program, id: Id::new(), commit_counter: CommitCounter::default(), - area: Rectangle::from_loc_and_size((0, 0), size), + 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,8 +238,8 @@ impl ShaderRenderElement { pub fn update( &mut self, - size: Size<i32, Logical>, - opaque_regions: Option<Vec<Rectangle<i32, Logical>>>, + size: Size<f64, Logical>, + opaque_regions: Option<Vec<Rectangle<f64, Logical>>>, uniforms: Vec<Uniform<'_>>, textures: HashMap<String, GlesTexture>, ) { @@ -251,7 +251,7 @@ impl ShaderRenderElement { self.commit_counter.increment(); } - pub fn with_location(mut self, location: Point<i32, Logical>) -> Self { + pub fn with_location(mut self, location: Point<f64, Logical>) -> Self { self.area.loc = location; self } @@ -277,7 +277,7 @@ impl Element for ShaderRenderElement { fn opaque_regions(&self, scale: Scale<f64>) -> OpaqueRegions<i32, Physical> { self.opaque_regions .iter() - .map(|region| region.to_physical_precise_round(scale)) + .map(|region| region.to_physical_precise_down(scale)) .collect() } |
