Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,4 @@ cosmic-protocols = { git = "https://github.com/pop-os//cosmic-protocols", branch
cosmic-client-toolkit = { git = "https://github.com/pop-os//cosmic-protocols", branch = "main" }

[patch.crates-io]
smithay = { git = "https://github.com/smithay/smithay.git", rev = "da42569" }
smithay = { git = "https://github.com/smithay/smithay.git", rev = "e84a4ca" }
49 changes: 29 additions & 20 deletions src/backend/render/element.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
use crate::shell::{CosmicMappedRenderElement, WorkspaceRenderElement};

#[cfg(feature = "debug")]
use smithay::backend::renderer::{element::texture::TextureRenderElement, gles::GlesTexture};
use smithay::backend::renderer::element::texture::TextureRenderElement;
use smithay::{
backend::renderer::{
ImportAll, ImportMem, Renderer,
element::{
Element, Id, Kind, RenderElement, UnderlyingStorage,
memory::MemoryRenderBufferRenderElement,
surface::WaylandSurfaceRenderElement,
utils::{CropRenderElement, Relocate, RelocateRenderElement, RescaleRenderElement},
backend::{
allocator::dmabuf::Dmabuf,
renderer::{
Bind, Blit, ExportMem, ImportAll, ImportMem, Offscreen, Renderer,
element::{
Element, Id, Kind, RenderElement, UnderlyingStorage,
memory::MemoryRenderBufferRenderElement,
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},
};
Expand All @@ -22,7 +25,7 @@ use super::{GlMultiRenderer, cursor::CursorRenderElement};

pub enum CosmicElement<R>
where
R: AsGlowRenderer + Renderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -42,7 +45,7 @@ where

impl<R> Element for CosmicElement<R>
where
R: AsGlowRenderer + Renderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand Down Expand Up @@ -183,7 +186,7 @@ where

impl<R> RenderElement<R> for CosmicElement<R>
where
R: AsGlowRenderer + Renderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
R::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>,
Expand Down Expand Up @@ -253,7 +256,7 @@ where
impl<R> From<CropRenderElement<RescaleRenderElement<WorkspaceRenderElement<R>>>>
for CosmicElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -268,7 +271,7 @@ where

impl<R> From<MemoryRenderBufferRenderElement<R>> for CosmicElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -280,7 +283,7 @@ where
#[cfg(feature = "debug")]
impl<R> From<TextureRenderElement<GlesTexture>> for CosmicElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -289,9 +292,15 @@ where
}
}

pub trait AsGlowRenderer
where
Self: Renderer,
pub trait AsGlowRenderer:
Renderer
+ Offscreen<GlesTexture>
+ Offscreen<GlesRenderbuffer>
+ ImportAll
+ ImportMem
+ ExportMem
+ Bind<Dmabuf>
+ Blit
{
fn glow_renderer(&self) -> &GlowRenderer;
fn glow_renderer_mut(&mut self) -> &mut GlowRenderer;
Expand Down
28 changes: 10 additions & 18 deletions src/backend/render/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,10 @@ use cosmic::Theme;
use element::FromGlesError;
use smithay::{
backend::{
allocator::{Fourcc, dmabuf::Dmabuf},
allocator::Fourcc,
drm::{DrmDeviceFd, DrmNode},
renderer::{
Bind, Blit, Color32F, ExportMem, ImportAll, ImportMem, Offscreen, Renderer, Texture,
TextureFilter,
Color32F, ImportAll, Offscreen, Renderer, Texture, TextureFilter,
damage::{Error as RenderError, OutputDamageTracker, RenderOutputResult},
element::{
Element, Id, Kind, RenderElement, WeakId,
Expand Down Expand Up @@ -478,7 +477,7 @@ pub fn cursor_elements<'a, 'frame, R>(
exclude_dnd_icon: bool,
) -> Vec<CosmicElement<R>>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand Down Expand Up @@ -620,7 +619,7 @@ pub fn output_elements<R>(
_fps: Option<(&EguiState, &Timings)>,
) -> Result<Vec<CosmicElement<R>>, RenderError<R::Error>>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>,
Expand Down Expand Up @@ -718,7 +717,7 @@ pub fn workspace_elements<R>(
element_filter: ElementFilter,
) -> Result<Vec<CosmicElement<R>>, RenderError<R::Error>>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>,
Expand Down Expand Up @@ -1060,7 +1059,7 @@ pub struct PostprocessState {
}

impl PostprocessState {
pub fn new_with_renderer<R: AsGlowRenderer + Offscreen<GlesTexture>>(
pub fn new_with_renderer<R: AsGlowRenderer>(
renderer: &mut R,
format: Fourcc,
output_config: PostprocessOutputConfig,
Expand Down Expand Up @@ -1091,7 +1090,7 @@ impl PostprocessState {
})
}

pub fn track_cursor<R: AsGlowRenderer + Offscreen<GlesTexture>>(
pub fn track_cursor<R: AsGlowRenderer>(
&mut self,
renderer: &mut R,
format: Fourcc,
Expand Down Expand Up @@ -1193,14 +1192,7 @@ pub fn render_output<'d, R>(
loop_handle: &calloop::LoopHandle<'static, State>,
) -> Result<RenderOutputResult<'d>, RenderError<R::Error>>
where
R: Renderer
+ ImportAll
+ ImportMem
+ ExportMem
+ Bind<Dmabuf>
+ Offscreen<GlesTexture>
+ Blit
+ AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
Expand Down Expand Up @@ -1373,7 +1365,7 @@ where
match result {
Ok((res, mut elements)) => {
for (session, frame) in output.take_pending_frames() {
if let Some(pending_image_copy_data) = render_session::<_, _, GlesTexture>(
if let Some(pending_image_copy_data) = render_session(
renderer,
session.user_data().get::<SessionData>().unwrap(),
frame,
Expand Down Expand Up @@ -1505,7 +1497,7 @@ pub fn render_workspace<'d, R>(
element_filter: ElementFilter,
) -> Result<(RenderOutputResult<'d>, Vec<CosmicElement<R>>), RenderError<R::Error>>
where
R: Renderer + ImportAll + ImportMem + ExportMem + Bind<Dmabuf> + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
R::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
Expand Down
23 changes: 11 additions & 12 deletions src/shell/element/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ use smithay::{
backend::{
input::KeyState,
renderer::{
ImportAll, ImportMem, Renderer,
element::{
Element, RenderElement, UnderlyingStorage,
memory::MemoryRenderBufferRenderElement,
Expand Down Expand Up @@ -571,7 +570,7 @@ impl CosmicMapped {
alpha: f32,
) -> Vec<C>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>,
Expand Down Expand Up @@ -602,7 +601,7 @@ impl CosmicMapped {
alpha: f32,
) -> Option<C>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>,
Expand Down Expand Up @@ -646,7 +645,7 @@ impl CosmicMapped {
scanout_override: Option<bool>,
) -> Vec<C>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>,
Expand Down Expand Up @@ -1061,7 +1060,7 @@ impl From<CosmicStack> for CosmicMapped {

pub enum CosmicMappedRenderElement<R>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
{
Stack(self::stack::CosmicStackRenderElement<R>),
Expand Down Expand Up @@ -1096,7 +1095,7 @@ where

impl<R> Element for CosmicMappedRenderElement<R>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
{
fn id(&self) -> &smithay::backend::renderer::element::Id {
Expand Down Expand Up @@ -1279,7 +1278,7 @@ where

impl<R> RenderElement<R> for CosmicMappedRenderElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
R::Error: FromGlesError,
{
Expand Down Expand Up @@ -1395,7 +1394,7 @@ where

impl<R> From<stack::CosmicStackRenderElement<R>> for CosmicMappedRenderElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -1405,7 +1404,7 @@ where
}
impl<R> From<window::CosmicWindowRenderElement<R>> for CosmicMappedRenderElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -1416,7 +1415,7 @@ where

impl<R> From<PixelShaderElement> for CosmicMappedRenderElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -1427,7 +1426,7 @@ where

impl<R> From<MemoryRenderBufferRenderElement<R>> for CosmicMappedRenderElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand All @@ -1439,7 +1438,7 @@ where
#[cfg(feature = "debug")]
impl<R> From<TextureRenderElement<GlesTexture>> for CosmicMappedRenderElement<R>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
Expand Down
8 changes: 4 additions & 4 deletions src/shell/element/stack.rs
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ impl CosmicStack {
alpha: f32,
) -> Vec<C>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>,
{
Expand Down Expand Up @@ -666,7 +666,7 @@ impl CosmicStack {
alpha: f32,
) -> Option<C>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>,
{
Expand Down Expand Up @@ -733,7 +733,7 @@ impl CosmicStack {
scanout_override: Option<bool>,
) -> Vec<C>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>,
{
Expand Down Expand Up @@ -1995,7 +1995,7 @@ where

impl<R> RenderElement<R> for CosmicStackRenderElement<R>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
R::Error: FromGlesError,
{
Expand Down
6 changes: 3 additions & 3 deletions src/shell/element/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ impl CosmicWindow {
alpha: f32,
) -> Option<C>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
C: From<CosmicWindowRenderElement<R>>,
{
Expand Down Expand Up @@ -444,7 +444,7 @@ impl CosmicWindow {
scanout_override: Option<bool>,
) -> Vec<C>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
R: AsGlowRenderer,
R::TextureId: Send + Clone + 'static,
C: From<CosmicWindowRenderElement<R>>,
{
Expand Down Expand Up @@ -1350,7 +1350,7 @@ where

impl<R> RenderElement<R> for CosmicWindowRenderElement<R>
where
R: Renderer + AsGlowRenderer + ImportAll + ImportMem,
R: AsGlowRenderer,
R::TextureId: 'static,
R::Error: FromGlesError,
{
Expand Down
Loading
Loading