Revert "Move some trait bounds to definition of AsGlowRenderer"

This reverts commit c860fcddad.

Accidentally pushed to wrong branch.

If only branch protection has a way to prompt for overriding rule on
push...
This commit is contained in:
Ian Douglas Scott 2026-03-11 20:08:33 -07:00
parent 87a7d20b33
commit 0d6c83db31
9 changed files with 93 additions and 86 deletions

View file

@ -1,22 +1,19 @@
use crate::shell::{CosmicMappedRenderElement, WorkspaceRenderElement}; use crate::shell::{CosmicMappedRenderElement, WorkspaceRenderElement};
#[cfg(feature = "debug")] #[cfg(feature = "debug")]
use smithay::backend::renderer::element::texture::TextureRenderElement; use smithay::backend::renderer::{element::texture::TextureRenderElement, gles::GlesTexture};
use smithay::{ use smithay::{
backend::{ backend::renderer::{
allocator::dmabuf::Dmabuf, ImportAll, ImportMem, Renderer,
renderer::{ element::{
Bind, Blit, ExportMem, ImportAll, ImportMem, Offscreen, Renderer, Element, Id, Kind, RenderElement, UnderlyingStorage,
element::{ memory::MemoryRenderBufferRenderElement,
Element, Id, Kind, RenderElement, UnderlyingStorage, surface::WaylandSurfaceRenderElement,
memory::MemoryRenderBufferRenderElement, utils::{CropRenderElement, Relocate, RelocateRenderElement, RescaleRenderElement},
surface::WaylandSurfaceRenderElement,
utils::{CropRenderElement, Relocate, RelocateRenderElement, RescaleRenderElement},
},
gles::{GlesError, GlesRenderbuffer, GlesTexture, element::TextureShaderElement},
glow::{GlowFrame, GlowRenderer},
utils::{CommitCounter, DamageSet, OpaqueRegions},
}, },
gles::{GlesError, element::TextureShaderElement},
glow::{GlowFrame, GlowRenderer},
utils::{CommitCounter, DamageSet, OpaqueRegions},
}, },
utils::{Buffer as BufferCoords, Logical, Physical, Point, Rectangle, Scale}, utils::{Buffer as BufferCoords, Logical, Physical, Point, Rectangle, Scale},
}; };
@ -25,7 +22,7 @@ use super::{GlMultiRenderer, cursor::CursorRenderElement};
pub enum CosmicElement<R> pub enum CosmicElement<R>
where where
R: AsGlowRenderer, R: AsGlowRenderer + Renderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -45,7 +42,7 @@ where
impl<R> Element for CosmicElement<R> impl<R> Element for CosmicElement<R>
where where
R: AsGlowRenderer, R: AsGlowRenderer + Renderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -186,7 +183,7 @@ where
impl<R> RenderElement<R> for CosmicElement<R> impl<R> RenderElement<R> for CosmicElement<R>
where where
R: AsGlowRenderer, R: AsGlowRenderer + Renderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
@ -256,7 +253,7 @@ where
impl<R> From<CropRenderElement<RescaleRenderElement<WorkspaceRenderElement<R>>>> impl<R> From<CropRenderElement<RescaleRenderElement<WorkspaceRenderElement<R>>>>
for CosmicElement<R> for CosmicElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -271,7 +268,7 @@ where
impl<R> From<MemoryRenderBufferRenderElement<R>> for CosmicElement<R> impl<R> From<MemoryRenderBufferRenderElement<R>> for CosmicElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -283,7 +280,7 @@ where
#[cfg(feature = "debug")] #[cfg(feature = "debug")]
impl<R> From<TextureRenderElement<GlesTexture>> for CosmicElement<R> impl<R> From<TextureRenderElement<GlesTexture>> for CosmicElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -292,15 +289,9 @@ where
} }
} }
pub trait AsGlowRenderer: pub trait AsGlowRenderer
Renderer where
+ Offscreen<GlesTexture> Self: Renderer,
+ Offscreen<GlesRenderbuffer>
+ ImportAll
+ ImportMem
+ ExportMem
+ Bind<Dmabuf>
+ Blit
{ {
fn glow_renderer(&self) -> &GlowRenderer; fn glow_renderer(&self) -> &GlowRenderer;
fn glow_renderer_mut(&mut self) -> &mut GlowRenderer; fn glow_renderer_mut(&mut self) -> &mut GlowRenderer;

View file

@ -45,10 +45,11 @@ use cosmic::Theme;
use element::FromGlesError; use element::FromGlesError;
use smithay::{ use smithay::{
backend::{ backend::{
allocator::Fourcc, allocator::{Fourcc, dmabuf::Dmabuf},
drm::{DrmDeviceFd, DrmNode}, drm::{DrmDeviceFd, DrmNode},
renderer::{ renderer::{
Color32F, ImportAll, Offscreen, Renderer, Texture, TextureFilter, Bind, Blit, Color32F, ExportMem, ImportAll, ImportMem, Offscreen, Renderer, Texture,
TextureFilter,
damage::{Error as RenderError, OutputDamageTracker, RenderOutputResult}, damage::{Error as RenderError, OutputDamageTracker, RenderOutputResult},
element::{ element::{
Element, Id, Kind, RenderElement, WeakId, Element, Id, Kind, RenderElement, WeakId,
@ -477,7 +478,7 @@ pub fn cursor_elements<'a, 'frame, R>(
exclude_dnd_icon: bool, exclude_dnd_icon: bool,
) -> Vec<CosmicElement<R>> ) -> Vec<CosmicElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -619,7 +620,7 @@ pub fn output_elements<R>(
_fps: Option<(&EguiState, &Timings)>, _fps: Option<(&EguiState, &Timings)>,
) -> Result<Vec<CosmicElement<R>>, RenderError<R::Error>> ) -> Result<Vec<CosmicElement<R>>, RenderError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
@ -717,7 +718,7 @@ pub fn workspace_elements<R>(
element_filter: ElementFilter, element_filter: ElementFilter,
) -> Result<Vec<CosmicElement<R>>, RenderError<R::Error>> ) -> Result<Vec<CosmicElement<R>>, RenderError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
@ -1059,7 +1060,7 @@ pub struct PostprocessState {
} }
impl PostprocessState { impl PostprocessState {
pub fn new_with_renderer<R: AsGlowRenderer>( pub fn new_with_renderer<R: AsGlowRenderer + Offscreen<GlesTexture>>(
renderer: &mut R, renderer: &mut R,
format: Fourcc, format: Fourcc,
output_config: PostprocessOutputConfig, output_config: PostprocessOutputConfig,
@ -1090,7 +1091,7 @@ impl PostprocessState {
}) })
} }
pub fn track_cursor<R: AsGlowRenderer>( pub fn track_cursor<R: AsGlowRenderer + Offscreen<GlesTexture>>(
&mut self, &mut self,
renderer: &mut R, renderer: &mut R,
format: Fourcc, format: Fourcc,
@ -1192,7 +1193,14 @@ pub fn render_output<'d, R>(
loop_handle: &calloop::LoopHandle<'static, State>, loop_handle: &calloop::LoopHandle<'static, State>,
) -> Result<RenderOutputResult<'d>, RenderError<R::Error>> ) -> Result<RenderOutputResult<'d>, RenderError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer
+ ImportAll
+ ImportMem
+ ExportMem
+ Bind<Dmabuf>
+ Offscreen<GlesTexture>
+ Blit
+ AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>, CosmicElement<R>: RenderElement<R>,
@ -1497,7 +1505,7 @@ pub fn render_workspace<'d, R>(
element_filter: ElementFilter, element_filter: ElementFilter,
) -> Result<(RenderOutputResult<'d>, Vec<CosmicElement<R>>), RenderError<R::Error>> ) -> Result<(RenderOutputResult<'d>, Vec<CosmicElement<R>>), RenderError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + ExportMem + Bind<Dmabuf> + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>, CosmicElement<R>: RenderElement<R>,

View file

@ -10,6 +10,7 @@ use smithay::{
backend::{ backend::{
input::KeyState, input::KeyState,
renderer::{ renderer::{
ImportAll, ImportMem, Renderer,
element::{ element::{
Element, RenderElement, UnderlyingStorage, Element, RenderElement, UnderlyingStorage,
memory::MemoryRenderBufferRenderElement, memory::MemoryRenderBufferRenderElement,
@ -570,7 +571,7 @@ impl CosmicMapped {
alpha: f32, alpha: f32,
) -> Vec<C> ) -> Vec<C>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>, C: From<CosmicMappedRenderElement<R>>,
@ -601,7 +602,7 @@ impl CosmicMapped {
alpha: f32, alpha: f32,
) -> Option<C> ) -> Option<C>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>, C: From<CosmicMappedRenderElement<R>>,
@ -645,7 +646,7 @@ impl CosmicMapped {
scanout_override: Option<bool>, scanout_override: Option<bool>,
) -> Vec<C> ) -> Vec<C>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>, C: From<CosmicMappedRenderElement<R>>,
@ -1060,7 +1061,7 @@ impl From<CosmicStack> for CosmicMapped {
pub enum CosmicMappedRenderElement<R> pub enum CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
{ {
Stack(self::stack::CosmicStackRenderElement<R>), Stack(self::stack::CosmicStackRenderElement<R>),
@ -1095,7 +1096,7 @@ where
impl<R> Element for CosmicMappedRenderElement<R> impl<R> Element for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
{ {
fn id(&self) -> &smithay::backend::renderer::element::Id { fn id(&self) -> &smithay::backend::renderer::element::Id {
@ -1278,7 +1279,7 @@ where
impl<R> RenderElement<R> for CosmicMappedRenderElement<R> impl<R> RenderElement<R> for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
{ {
@ -1394,7 +1395,7 @@ where
impl<R> From<stack::CosmicStackRenderElement<R>> for CosmicMappedRenderElement<R> impl<R> From<stack::CosmicStackRenderElement<R>> for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -1404,7 +1405,7 @@ where
} }
impl<R> From<window::CosmicWindowRenderElement<R>> for CosmicMappedRenderElement<R> impl<R> From<window::CosmicWindowRenderElement<R>> for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -1415,7 +1416,7 @@ where
impl<R> From<PixelShaderElement> for CosmicMappedRenderElement<R> impl<R> From<PixelShaderElement> for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -1426,7 +1427,7 @@ where
impl<R> From<MemoryRenderBufferRenderElement<R>> for CosmicMappedRenderElement<R> impl<R> From<MemoryRenderBufferRenderElement<R>> for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -1438,7 +1439,7 @@ where
#[cfg(feature = "debug")] #[cfg(feature = "debug")]
impl<R> From<TextureRenderElement<GlesTexture>> for CosmicMappedRenderElement<R> impl<R> From<TextureRenderElement<GlesTexture>> for CosmicMappedRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {

View file

@ -637,7 +637,7 @@ impl CosmicStack {
alpha: f32, alpha: f32,
) -> Vec<C> ) -> Vec<C>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>, C: From<CosmicStackRenderElement<R>>,
{ {
@ -666,7 +666,7 @@ impl CosmicStack {
alpha: f32, alpha: f32,
) -> Option<C> ) -> Option<C>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>, C: From<CosmicStackRenderElement<R>>,
{ {
@ -733,7 +733,7 @@ impl CosmicStack {
scanout_override: Option<bool>, scanout_override: Option<bool>,
) -> Vec<C> ) -> Vec<C>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>, C: From<CosmicStackRenderElement<R>>,
{ {
@ -1995,7 +1995,7 @@ where
impl<R> RenderElement<R> for CosmicStackRenderElement<R> impl<R> RenderElement<R> for CosmicStackRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
{ {

View file

@ -364,7 +364,7 @@ impl CosmicWindow {
alpha: f32, alpha: f32,
) -> Option<C> ) -> Option<C>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
C: From<CosmicWindowRenderElement<R>>, C: From<CosmicWindowRenderElement<R>>,
{ {
@ -444,7 +444,7 @@ impl CosmicWindow {
scanout_override: Option<bool>, scanout_override: Option<bool>,
) -> Vec<C> ) -> Vec<C>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
C: From<CosmicWindowRenderElement<R>>, C: From<CosmicWindowRenderElement<R>>,
{ {
@ -1350,7 +1350,7 @@ where
impl<R> RenderElement<R> for CosmicWindowRenderElement<R> impl<R> RenderElement<R> for CosmicWindowRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R::TextureId: 'static, R::TextureId: 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
{ {

View file

@ -10,9 +10,12 @@ use cosmic_comp_config::AppearanceConfig;
use cosmic_settings_config::shortcuts::action::ResizeDirection; use cosmic_settings_config::shortcuts::action::ResizeDirection;
use keyframe::{ease, functions::EaseInOutCubic}; use keyframe::{ease, functions::EaseInOutCubic};
use smithay::{ use smithay::{
backend::renderer::element::{ backend::renderer::{
AsRenderElements, RenderElement, ImportAll, ImportMem, Renderer,
utils::{Relocate, RelocateRenderElement, RescaleRenderElement}, element::{
AsRenderElements, RenderElement,
utils::{Relocate, RelocateRenderElement, RescaleRenderElement},
},
}, },
desktop::{PopupKind, Space, WindowSurfaceType, layer_map_for_output, space::SpaceElement}, desktop::{PopupKind, Space, WindowSurfaceType, layer_map_for_output, space::SpaceElement},
input::Seat, input::Seat,
@ -1418,7 +1421,7 @@ impl FloatingLayout {
alpha: f32, alpha: f32,
) -> Vec<CosmicMappedRenderElement<R>> ) -> Vec<CosmicMappedRenderElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -1469,7 +1472,7 @@ impl FloatingLayout {
theme: &cosmic::theme::CosmicTheme, theme: &cosmic::theme::CosmicTheme,
) -> Vec<CosmicMappedRenderElement<R>> ) -> Vec<CosmicMappedRenderElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,

View file

@ -47,6 +47,7 @@ use keyframe::{
}; };
use smithay::{ use smithay::{
backend::renderer::{ backend::renderer::{
ImportAll, ImportMem, Renderer,
element::{ element::{
AsRenderElements, Id, RenderElement, AsRenderElements, Id, RenderElement,
utils::{ utils::{
@ -4010,7 +4011,7 @@ impl TilingLayout {
theme: &cosmic::theme::CosmicTheme, theme: &cosmic::theme::CosmicTheme,
) -> Result<Vec<CosmicMappedRenderElement<R>>, OutputNotMapped> ) -> Result<Vec<CosmicMappedRenderElement<R>>, OutputNotMapped>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -4170,7 +4171,7 @@ impl TilingLayout {
theme: &cosmic::theme::CosmicTheme, theme: &cosmic::theme::CosmicTheme,
) -> Result<Vec<CosmicMappedRenderElement<R>>, OutputNotMapped> ) -> Result<Vec<CosmicMappedRenderElement<R>>, OutputNotMapped>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -4344,7 +4345,7 @@ fn geometries_for_groupview<'a, R>(
Vec<CosmicMappedRenderElement<R>>, Vec<CosmicMappedRenderElement<R>>,
) )
where where
R: AsGlowRenderer + 'a, R: Renderer + ImportAll + ImportMem + AsGlowRenderer + 'a,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -4976,7 +4977,7 @@ fn render_old_tree_popups<R>(
is_swap_mode: bool, is_swap_mode: bool,
) -> Vec<CosmicMappedRenderElement<R>> ) -> Vec<CosmicMappedRenderElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -5019,7 +5020,7 @@ fn render_old_tree_windows<R>(
theme: &cosmic::theme::CosmicTheme, theme: &cosmic::theme::CosmicTheme,
) -> Vec<CosmicMappedRenderElement<R>> ) -> Vec<CosmicMappedRenderElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -5202,7 +5203,7 @@ fn render_new_tree_popups<R>(
swap_desc: Option<NodeDesc>, swap_desc: Option<NodeDesc>,
) -> Vec<CosmicMappedRenderElement<R>> ) -> Vec<CosmicMappedRenderElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -5268,7 +5269,7 @@ fn render_new_tree_windows<R>(
theme: &cosmic::theme::CosmicTheme, theme: &cosmic::theme::CosmicTheme,
) -> Vec<CosmicMappedRenderElement<R>> ) -> Vec<CosmicMappedRenderElement<R>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,

View file

@ -34,6 +34,7 @@ use keyframe::{ease, functions::EaseInOutCubic};
use smithay::output::WeakOutput; use smithay::output::WeakOutput;
use smithay::{ use smithay::{
backend::renderer::{ backend::renderer::{
ImportAll, ImportMem, Renderer,
element::{ element::{
Element, Id, RenderElement, surface::WaylandSurfaceRenderElement, Element, Id, RenderElement, surface::WaylandSurfaceRenderElement,
texture::TextureRenderElement, utils::RescaleRenderElement, texture::TextureRenderElement, utils::RescaleRenderElement,
@ -1517,7 +1518,7 @@ impl Workspace {
theme: &CosmicTheme, theme: &CosmicTheme,
) -> Result<Vec<WorkspaceRenderElement<R>>, OutputNotMapped> ) -> Result<Vec<WorkspaceRenderElement<R>>, OutputNotMapped>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -1719,7 +1720,7 @@ impl Workspace {
theme: &CosmicTheme, theme: &CosmicTheme,
) -> Result<Vec<WorkspaceRenderElement<R>>, OutputNotMapped> ) -> Result<Vec<WorkspaceRenderElement<R>>, OutputNotMapped>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>, CosmicWindowRenderElement<R>: RenderElement<R>,
@ -1859,7 +1860,7 @@ pub struct OutputNotMapped;
pub enum WorkspaceRenderElement<R> pub enum WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
{ {
OverrideRedirect(WaylandSurfaceRenderElement<R>), OverrideRedirect(WaylandSurfaceRenderElement<R>),
@ -1871,7 +1872,7 @@ where
impl<R> Element for WorkspaceRenderElement<R> impl<R> Element for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
{ {
fn id(&self) -> &smithay::backend::renderer::element::Id { fn id(&self) -> &smithay::backend::renderer::element::Id {
@ -1971,7 +1972,7 @@ where
impl<R> RenderElement<R> for WorkspaceRenderElement<R> impl<R> RenderElement<R> for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
{ {
@ -2026,7 +2027,7 @@ where
impl<R> From<RescaleRenderElement<CosmicWindowRenderElement<R>>> for WorkspaceRenderElement<R> impl<R> From<RescaleRenderElement<CosmicWindowRenderElement<R>>> for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -2037,7 +2038,7 @@ where
impl<R> From<CosmicWindowRenderElement<R>> for WorkspaceRenderElement<R> impl<R> From<CosmicWindowRenderElement<R>> for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -2048,7 +2049,7 @@ where
impl<R> From<WaylandSurfaceRenderElement<R>> for WorkspaceRenderElement<R> impl<R> From<WaylandSurfaceRenderElement<R>> for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -2059,7 +2060,7 @@ where
impl<R> From<CosmicMappedRenderElement<R>> for WorkspaceRenderElement<R> impl<R> From<CosmicMappedRenderElement<R>> for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {
@ -2070,7 +2071,7 @@ where
impl<R> From<TextureRenderElement<GlesTexture>> for WorkspaceRenderElement<R> impl<R> From<TextureRenderElement<GlesTexture>> for WorkspaceRenderElement<R>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R::TextureId: 'static, R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>, CosmicMappedRenderElement<R>: RenderElement<R>,
{ {

View file

@ -3,10 +3,10 @@
use calloop::LoopHandle; use calloop::LoopHandle;
use smithay::{ use smithay::{
backend::{ backend::{
allocator::{Buffer, Fourcc, format::get_transparent}, allocator::{Buffer, Fourcc, dmabuf::Dmabuf, format::get_transparent},
renderer::{ renderer::{
BufferType, Color32F, ExportMem, ImportAll, ImportMem, Offscreen, buffer_dimensions, Bind, Blit, BufferType, Color32F, ExportMem, ImportAll, ImportMem, Offscreen, Renderer,
buffer_type, buffer_dimensions, buffer_type,
damage::{Error as DTError, OutputDamageTracker, RenderOutputResult}, damage::{Error as DTError, OutputDamageTracker, RenderOutputResult},
element::{ element::{
AsRenderElements, RenderElement, AsRenderElements, RenderElement,
@ -193,7 +193,7 @@ pub fn render_session<F, R, T>(
render_fn: F, render_fn: F,
) -> Result<Option<PendingImageCopyData>, DTError<R::Error>> ) -> Result<Option<PendingImageCopyData>, DTError<R::Error>>
where where
R: Offscreen<T> + AsGlowRenderer, R: ExportMem + Offscreen<T>,
R::Error: FromGlesError, R::Error: FromGlesError,
F: for<'d> FnOnce( F: for<'d> FnOnce(
&WlBuffer, &WlBuffer,
@ -215,7 +215,9 @@ where
.expect("We should be able to convert all hardcoded shm screencopy formats") .expect("We should be able to convert all hardcoded shm screencopy formats")
}) })
.map_err(|_| DTError::OutputNoMode(OutputNoMode))?; .map_err(|_| DTError::OutputNoMode(OutputNoMode))?;
Offscreen::<T>::create_buffer(renderer, format, size).map_err(DTError::Rendering) renderer
.create_buffer(format, size)
.map_err(DTError::Rendering)
}) })
.transpose()?; .transpose()?;
@ -302,7 +304,7 @@ pub fn render_workspace_to_buffer(
handle: (WorkspaceHandle, usize), handle: (WorkspaceHandle, usize),
) -> Result<RenderOutputResult<'d>, DTError<R::Error>> ) -> Result<RenderOutputResult<'d>, DTError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + ExportMem + Bind<Dmabuf> + Blit + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>, CosmicElement<R>: RenderElement<R>,
@ -535,7 +537,7 @@ pub fn render_window_to_buffer(
geometry: Rectangle<i32, Logical>, geometry: Rectangle<i32, Logical>,
) -> Result<RenderOutputResult<'d>, DTError<R::Error>> ) -> Result<RenderOutputResult<'d>, DTError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + ExportMem + Bind<Dmabuf> + Blit + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>, CosmicElement<R>: RenderElement<R>,
@ -774,7 +776,7 @@ pub fn render_cursor_to_buffer(
seat: &Seat<State>, seat: &Seat<State>,
) -> Result<RenderOutputResult<'d>, DTError<R::Error>> ) -> Result<RenderOutputResult<'d>, DTError<R::Error>>
where where
R: AsGlowRenderer, R: Renderer + ImportAll + ImportMem + ExportMem + Bind<Dmabuf> + Blit + AsGlowRenderer,
R::TextureId: Send + Clone + 'static, R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError, R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>, CosmicElement<R>: RenderElement<R>,