forked from Mirror/niri
test sth
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
|
||||
use std::cell::RefCell;
|
||||
use std::collections::HashMap;
|
||||
use std::time::Instant;
|
||||
|
||||
use glam::{Mat3, Vec2};
|
||||
use niri_config::CornerRadius;
|
||||
@@ -17,7 +16,7 @@ use smithay::backend::renderer::Texture;
|
||||
use smithay::utils::{Buffer, Logical, Physical, Point, Rectangle, Scale, Size, Transform};
|
||||
|
||||
use crate::backend::tty::{TtyFrame, TtyRenderer, TtyRendererError};
|
||||
use crate::render_helpers::blur::{get_rerender_at, EffectsFramebufffersUserData};
|
||||
use crate::render_helpers::blur::EffectsFramebufffersUserData;
|
||||
use crate::render_helpers::render_data::RendererData;
|
||||
use crate::render_helpers::renderer::AsGlesFrame;
|
||||
use crate::render_helpers::shaders::{mat3_uniform, Shaders};
|
||||
@@ -32,7 +31,6 @@ enum BlurVariant {
|
||||
True {
|
||||
fx_buffers: EffectsFramebufffersUserData,
|
||||
config: niri_config::Blur,
|
||||
damage_at: RefCell<Option<Instant>>,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -146,7 +144,6 @@ impl Blur {
|
||||
BlurVariant::True {
|
||||
fx_buffers: fx_buffers.clone(),
|
||||
config: self.config,
|
||||
damage_at: Default::default(),
|
||||
}
|
||||
} else {
|
||||
BlurVariant::Optimized {
|
||||
@@ -166,7 +163,6 @@ impl Blur {
|
||||
BlurVariant::True {
|
||||
fx_buffers: fx_buffers.clone(),
|
||||
config: self.config,
|
||||
damage_at: Default::default(),
|
||||
}
|
||||
} else {
|
||||
BlurVariant::Optimized {
|
||||
@@ -185,23 +181,12 @@ impl Blur {
|
||||
&& inner.corner_radius == corner_radius
|
||||
&& inner.render_loc == render_loc
|
||||
{
|
||||
let should_rerender = match &inner.variant {
|
||||
BlurVariant::Optimized { texture }
|
||||
if !matches!(&inner.variant, BlurVariant::Optimized { texture }
|
||||
if texture.size().w == fx_buffers.output_size().w
|
||||
&& texture.size().h == fx_buffers.output_size().h =>
|
||||
{
|
||||
false
|
||||
}
|
||||
BlurVariant::True {
|
||||
damage_at: rerender_at,
|
||||
..
|
||||
} if rerender_at.borrow().is_none_or(|r| r > Instant::now()) => false,
|
||||
_ => true,
|
||||
};
|
||||
|
||||
if should_rerender {
|
||||
&& texture.size().h == fx_buffers.output_size().h)
|
||||
{
|
||||
// If we are true blur, or if our output size changed, we need to re-render.
|
||||
// TODO: is there a better solution for true blur?
|
||||
// PERF: is there a better solution for true blur?
|
||||
inner.damage_all();
|
||||
}
|
||||
|
||||
@@ -436,13 +421,7 @@ impl RenderElement<GlesRenderer> for BlurRenderElement {
|
||||
Some(&program),
|
||||
&self.uniforms,
|
||||
),
|
||||
BlurVariant::True {
|
||||
fx_buffers,
|
||||
config,
|
||||
damage_at,
|
||||
} => {
|
||||
damage_at.set(get_rerender_at());
|
||||
|
||||
BlurVariant::True { fx_buffers, config } => {
|
||||
let mut fx_buffers = fx_buffers.borrow_mut();
|
||||
|
||||
fx_buffers.current_buffer = CurrentBuffer::Normal;
|
||||
|
||||
Reference in New Issue
Block a user