diff options
Diffstat (limited to 'src/render_helpers')
| -rw-r--r-- | src/render_helpers/mod.rs | 11 | ||||
| -rw-r--r-- | src/render_helpers/snapshot.rs | 8 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/render_helpers/mod.rs b/src/render_helpers/mod.rs index c7a4025a..db2d39d7 100644 --- a/src/render_helpers/mod.rs +++ b/src/render_helpers/mod.rs @@ -1,6 +1,7 @@ use std::ptr; use anyhow::{ensure, Context}; +use niri_config::BlockOutFrom; use smithay::backend::allocator::Fourcc; use smithay::backend::renderer::element::solid::{SolidColorBuffer, SolidColorRenderElement}; use smithay::backend::renderer::element::texture::{TextureBuffer, TextureRenderElement}; @@ -70,6 +71,16 @@ pub trait ToRenderElement { ) -> Self::RenderElement; } +impl RenderTarget { + pub fn should_block_out(self, block_out_from: Option<BlockOutFrom>) -> bool { + match block_out_from { + None => false, + Some(BlockOutFrom::Screencast) => self == RenderTarget::Screencast, + Some(BlockOutFrom::ScreenCapture) => self != RenderTarget::Output, + } + } +} + impl<E> Default for SplitElements<E> { fn default() -> Self { Self { diff --git a/src/render_helpers/snapshot.rs b/src/render_helpers/snapshot.rs index b394dcd9..62416c43 100644 --- a/src/render_helpers/snapshot.rs +++ b/src/render_helpers/snapshot.rs @@ -47,13 +47,7 @@ where scale: Scale<f64>, target: RenderTarget, ) -> Option<&(GlesTexture, Rectangle<i32, Physical>)> { - let block_out = match self.block_out_from { - None => false, - Some(BlockOutFrom::Screencast) => target == RenderTarget::Screencast, - Some(BlockOutFrom::ScreenCapture) => target != RenderTarget::Output, - }; - - if block_out { + if target.should_block_out(self.block_out_from) { self.blocked_out_texture.get_or_init(|| { let _span = tracy_client::span!("RenderSnapshot::Texture"); |
