From 99eb1227b17ee224c83a1a56103e3fb9eb6c34b8 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sat, 4 May 2024 11:51:27 +0400 Subject: Extract RenderTarget::should_block_out() --- src/render_helpers/mod.rs | 11 +++++++++++ src/render_helpers/snapshot.rs | 8 +------- 2 files changed, 12 insertions(+), 7 deletions(-) (limited to 'src/render_helpers') 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) -> bool { + match block_out_from { + None => false, + Some(BlockOutFrom::Screencast) => self == RenderTarget::Screencast, + Some(BlockOutFrom::ScreenCapture) => self != RenderTarget::Output, + } + } +} + impl Default for SplitElements { 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, target: RenderTarget, ) -> Option<&(GlesTexture, Rectangle)> { - 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"); -- cgit