aboutsummaryrefslogtreecommitdiff
path: root/src/layout/opening_window.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-03-01 09:45:57 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-03-10 07:59:14 +0300
commit4f5c8e745bec6395105138c83468bccb4ab27ea9 (patch)
treedc9fec8fa7ba6019316fff22f22c1544f81fc7ad /src/layout/opening_window.rs
parentf30413a744742b013c3f215369fe28780d6ba392 (diff)
downloadniri-4f5c8e745bec6395105138c83468bccb4ab27ea9.tar.gz
niri-4f5c8e745bec6395105138c83468bccb4ab27ea9.tar.bz2
niri-4f5c8e745bec6395105138c83468bccb4ab27ea9.zip
Offscreen semitransparent tiles
Now that offscreen does damage tracking, we can reasonably do this. Note this only affects full-tile opacity, not window opacity.
Diffstat (limited to 'src/layout/opening_window.rs')
-rw-r--r--src/layout/opening_window.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/layout/opening_window.rs b/src/layout/opening_window.rs
index 7e24b4cb..8a1db409 100644
--- a/src/layout/opening_window.rs
+++ b/src/layout/opening_window.rs
@@ -54,6 +54,7 @@ impl OpenAnimation {
geo_size: Size<f64, Logical>,
location: Point<f64, Logical>,
scale: Scale<f64>,
+ alpha: f32,
) -> anyhow::Result<OpeningWindowRenderElement> {
let progress = self.anim.value();
let clamped_progress = self.anim.clamped_value().clamp(0., 1.);
@@ -102,7 +103,7 @@ impl OpenAnimation {
area.size,
None,
scale.x as f32,
- 1.,
+ alpha,
vec![
mat3_uniform("niri_input_to_geo", input_to_geo),
Uniform::new("niri_geo_size", geo_size.to_array()),
@@ -118,7 +119,7 @@ impl OpenAnimation {
.into());
}
- let elem = elem.with_alpha(clamped_progress as f32);
+ let elem = elem.with_alpha(clamped_progress as f32 * alpha);
let center = geo_size.to_point().downscale(2.);
let elem = RescaleRenderElement::from_element(