1
0
Fork 0
forked from wry/wry

render: force black background color for fullscreen nodes

This commit is contained in:
Julian Orth 2024-02-23 15:03:59 +01:00
parent 609f6f99cd
commit 41754e268f
6 changed files with 46 additions and 4 deletions

View file

@ -8,7 +8,7 @@ use {
scale::Scale,
state::State,
theme::Color,
tree::Node,
tree::{Node, OutputNode},
utils::numcell::NumCell,
video::{dmabuf::DmaBuf, gbm::GbmDevice, Modifier},
},
@ -211,6 +211,7 @@ impl dyn GfxFramebuffer {
result: Option<&mut RenderResult>,
scale: Scale,
render_hardware_cursor: bool,
black_background: bool,
) -> GfxRenderPass {
let mut ops = self.take_render_ops();
let (width, height) = self.size();
@ -251,7 +252,10 @@ impl dyn GfxFramebuffer {
}
}
}
let c = state.theme.colors.background.get();
let c = match black_background {
true => Color::SOLID_BLACK,
false => state.theme.colors.background.get(),
};
GfxRenderPass {
ops,
clear: Some(c),
@ -262,6 +266,26 @@ impl dyn GfxFramebuffer {
self.render(pass.ops, pass.clear.as_ref())
}
pub fn render_output(
&self,
node: &OutputNode,
state: &State,
cursor_rect: Option<Rect>,
result: Option<&mut RenderResult>,
scale: Scale,
render_hardware_cursor: bool,
) {
self.render_node(
node,
state,
cursor_rect,
result,
scale,
render_hardware_cursor,
node.has_fullscreen(),
)
}
pub fn render_node(
&self,
node: &dyn Node,
@ -270,6 +294,7 @@ impl dyn GfxFramebuffer {
result: Option<&mut RenderResult>,
scale: Scale,
render_hardware_cursor: bool,
black_background: bool,
) {
let pass = self.create_render_pass(
node,
@ -278,6 +303,7 @@ impl dyn GfxFramebuffer {
result,
scale,
render_hardware_cursor,
black_background,
);
self.perform_render_pass(pass);
}