layout: Add TileRenderElement

This commit is contained in:
Ivan Molodetskikh
2024-02-04 22:52:11 +04:00
parent da826e42aa
commit 57521c69c3
2 changed files with 19 additions and 10 deletions
+11 -4
View File
@@ -6,11 +6,11 @@ use smithay::backend::renderer::element::solid::{SolidColorBuffer, SolidColorRen
use smithay::backend::renderer::element::utils::{Relocate, RelocateRenderElement};
use smithay::backend::renderer::element::Kind;
use smithay::backend::renderer::{ImportAll, Renderer};
use smithay::render_elements;
use smithay::utils::{Logical, Point, Rectangle, Scale, Size};
use super::focus_ring::FocusRing;
use super::workspace::WorkspaceRenderElement;
use super::{LayoutElement, Options};
use super::{LayoutElement, LayoutElementRenderElement, Options};
/// Toplevel window with decorations.
#[derive(Debug)]
@@ -37,6 +37,13 @@ pub struct Tile<W: LayoutElement> {
options: Rc<Options>,
}
render_elements! {
#[derive(Debug)]
pub TileRenderElement<R> where R: ImportAll;
LayoutElement = LayoutElementRenderElement<R>,
SolidColor = RelocateRenderElement<SolidColorRenderElement>,
}
impl<W: LayoutElement> Tile<W> {
pub fn new(window: W, options: Rc<Options>) -> Self {
Self {
@@ -237,7 +244,7 @@ impl<W: LayoutElement> Tile<W> {
renderer: &mut R,
location: Point<i32, Logical>,
scale: Scale<f64>,
) -> Vec<WorkspaceRenderElement<R>>
) -> Vec<TileRenderElement<R>>
where
<R as Renderer>::TextureId: 'static,
{
@@ -274,7 +281,7 @@ impl<W: LayoutElement> Tile<W> {
1.,
Kind::Unspecified,
);
rv.push(elem.into());
rv.push(RelocateRenderElement::from_element(elem, (0, 0), Relocate::Relative).into());
}
rv