aboutsummaryrefslogtreecommitdiff
path: root/src/render_helpers
diff options
context:
space:
mode:
Diffstat (limited to 'src/render_helpers')
-rw-r--r--src/render_helpers/mod.rs11
-rw-r--r--src/render_helpers/snapshot.rs8
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");