render: Use render_input_order
This commit is contained in:
parent
140d870e7b
commit
51c8588f89
10 changed files with 1154 additions and 763 deletions
|
|
@ -1,8 +1,5 @@
|
|||
use crate::{
|
||||
backend::render::{
|
||||
element::{AsGlowRenderer, FromGlesError},
|
||||
SplitRenderElements,
|
||||
},
|
||||
backend::render::element::{AsGlowRenderer, FromGlesError},
|
||||
state::State,
|
||||
utils::{iced::IcedElementInternal, prelude::*},
|
||||
};
|
||||
|
|
@ -657,13 +654,42 @@ impl CosmicMapped {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn split_render_elements<R, C>(
|
||||
pub fn popup_render_elements<R, C>(
|
||||
&self,
|
||||
renderer: &mut R,
|
||||
location: smithay::utils::Point<i32, smithay::utils::Physical>,
|
||||
scale: smithay::utils::Scale<f64>,
|
||||
alpha: f32,
|
||||
) -> SplitRenderElements<C>
|
||||
) -> Vec<C>
|
||||
where
|
||||
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
|
||||
<R as Renderer>::TextureId: Send + Clone + 'static,
|
||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||
C: From<CosmicMappedRenderElement<R>>,
|
||||
{
|
||||
match &self.element {
|
||||
CosmicMappedInternal::Stack(s) => s
|
||||
.popup_render_elements::<R, CosmicMappedRenderElement<R>>(
|
||||
renderer, location, scale, alpha,
|
||||
),
|
||||
CosmicMappedInternal::Window(w) => w
|
||||
.popup_render_elements::<R, CosmicMappedRenderElement<R>>(
|
||||
renderer, location, scale, alpha,
|
||||
),
|
||||
_ => unreachable!(),
|
||||
}
|
||||
.into_iter()
|
||||
.map(C::from)
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn render_elements<R, C>(
|
||||
&self,
|
||||
renderer: &mut R,
|
||||
location: smithay::utils::Point<i32, smithay::utils::Physical>,
|
||||
scale: smithay::utils::Scale<f64>,
|
||||
alpha: f32,
|
||||
) -> Vec<C>
|
||||
where
|
||||
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
|
||||
<R as Renderer>::TextureId: Send + Clone + 'static,
|
||||
|
|
@ -671,7 +697,7 @@ impl CosmicMapped {
|
|||
C: From<CosmicMappedRenderElement<R>>,
|
||||
{
|
||||
#[cfg(feature = "debug")]
|
||||
let debug_elements = if let Some(debug) = self.debug.lock().unwrap().as_mut() {
|
||||
let mut elements = if let Some(debug) = self.debug.lock().unwrap().as_mut() {
|
||||
let window = self.active_window();
|
||||
let window_geo = window.geometry();
|
||||
let (min_size, max_size, size) =
|
||||
|
|
@ -840,30 +866,21 @@ impl CosmicMapped {
|
|||
Vec::new()
|
||||
};
|
||||
#[cfg(not(feature = "debug"))]
|
||||
let debug_elements = Vec::new();
|
||||
|
||||
let mut elements = SplitRenderElements {
|
||||
w_elements: debug_elements,
|
||||
p_elements: Vec::new(),
|
||||
};
|
||||
let mut elements = Vec::new();
|
||||
|
||||
#[cfg_attr(not(feature = "debug"), allow(unused_mut))]
|
||||
elements.extend_map(
|
||||
match &self.element {
|
||||
CosmicMappedInternal::Stack(s) => s
|
||||
.split_render_elements::<R, CosmicMappedRenderElement<R>>(
|
||||
renderer, location, scale, alpha,
|
||||
),
|
||||
CosmicMappedInternal::Window(w) => w
|
||||
.split_render_elements::<R, CosmicMappedRenderElement<R>>(
|
||||
renderer, location, scale, alpha,
|
||||
),
|
||||
_ => unreachable!(),
|
||||
},
|
||||
C::from,
|
||||
);
|
||||
elements.extend(match &self.element {
|
||||
CosmicMappedInternal::Stack(s) => s.render_elements::<R, CosmicMappedRenderElement<R>>(
|
||||
renderer, location, scale, alpha,
|
||||
),
|
||||
CosmicMappedInternal::Window(w) => w
|
||||
.render_elements::<R, CosmicMappedRenderElement<R>>(
|
||||
renderer, location, scale, alpha,
|
||||
),
|
||||
_ => unreachable!(),
|
||||
});
|
||||
|
||||
elements
|
||||
elements.into_iter().map(C::from).collect()
|
||||
}
|
||||
|
||||
pub(crate) fn update_theme(&self, theme: cosmic::Theme) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue