Skip to content

Commit

Permalink
anvil: add debug impls for render elements
Browse files Browse the repository at this point in the history
  • Loading branch information
cmeissl committed Feb 15, 2023
1 parent 8b2f168 commit 19385b1
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 2 deletions.
15 changes: 14 additions & 1 deletion anvil/src/drawing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,19 @@ render_elements! {
Texture=TextureRenderElement<<R as Renderer>::TextureId>,
}

impl<R: Renderer> std::fmt::Debug for PointerRenderElement<R>
where
<R as Renderer>::TextureId: std::fmt::Debug,
{
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Surface(arg0) => f.debug_tuple("Surface").field(arg0).finish(),
Self::Texture(arg0) => f.debug_tuple("Texture").field(arg0).finish(),
Self::_GenericCatcher(arg0) => f.debug_tuple("_GenericCatcher").field(arg0).finish(),
}
}
}

impl<T: Texture + Clone + 'static, R> AsRenderElements<R> for PointerElement<T>
where
R: Renderer<TextureId = T> + ImportAll,
Expand Down Expand Up @@ -104,7 +117,7 @@ where
pub static FPS_NUMBERS_PNG: &[u8] = include_bytes!("../resources/numbers.png");

#[cfg(feature = "debug")]
#[derive(Clone)]
#[derive(Debug, Clone)]
pub struct FpsElement<T: Texture> {
id: Id,
value: u32,
Expand Down
33 changes: 32 additions & 1 deletion anvil/src/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use smithay::{
ConstrainAlign, ConstrainScaleBehavior, CropRenderElement, RelocateRenderElement,
RescaleRenderElement,
},
AsRenderElements, RenderElementStates, Wrap,
AsRenderElements, RenderElement, RenderElementStates, Wrap,
},
ImportAll, ImportMem, Renderer,
},
Expand Down Expand Up @@ -38,6 +38,21 @@ smithay::backend::renderer::element::render_elements! {
Fps=FpsElement<<R as Renderer>::TextureId>,
}

impl<R: Renderer + std::fmt::Debug> std::fmt::Debug for CustomRenderElements<R>
where
<R as Renderer>::TextureId: std::fmt::Debug,
{
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Pointer(arg0) => f.debug_tuple("Pointer").field(arg0).finish(),
Self::Surface(arg0) => f.debug_tuple("Surface").field(arg0).finish(),
#[cfg(feature = "debug")]
Self::Fps(arg0) => f.debug_tuple("Fps").field(arg0).finish(),
Self::_GenericCatcher(arg0) => f.debug_tuple("_GenericCatcher").field(arg0).finish(),
}
}
}

smithay::backend::renderer::element::render_elements! {
pub OutputRenderElements<R, E> where R: ImportAll + ImportMem;
Space=SpaceRenderElements<R, E>,
Expand All @@ -46,6 +61,22 @@ smithay::backend::renderer::element::render_elements! {
Preview=CropRenderElement<RelocateRenderElement<RescaleRenderElement<WindowRenderElement<R>>>>,
}

impl<R: Renderer + ImportAll + ImportMem + std::fmt::Debug, E: RenderElement<R> + std::fmt::Debug>
std::fmt::Debug for OutputRenderElements<R, E>
where
<R as Renderer>::TextureId: std::fmt::Debug,
{
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Space(arg0) => f.debug_tuple("Space").field(arg0).finish(),
Self::Window(arg0) => f.debug_tuple("Window").field(arg0).finish(),
Self::Custom(arg0) => f.debug_tuple("Custom").field(arg0).finish(),
Self::Preview(arg0) => f.debug_tuple("Preview").field(arg0).finish(),
Self::_GenericCatcher(arg0) => f.debug_tuple("_GenericCatcher").field(arg0).finish(),
}
}
}

pub fn space_preview_elements<'a, R, C>(
renderer: &'a mut R,
space: &'a Space<WindowElement>,
Expand Down
10 changes: 10 additions & 0 deletions anvil/src/shell/element.rs
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,16 @@ render_elements!(
Decoration=MemoryRenderBufferRenderElement<R>,
);

impl<R: Renderer + std::fmt::Debug> std::fmt::Debug for WindowRenderElement<R> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Window(arg0) => f.debug_tuple("Window").field(arg0).finish(),
Self::Decoration(arg0) => f.debug_tuple("Decoration").field(arg0).finish(),
Self::_GenericCatcher(arg0) => f.debug_tuple("_GenericCatcher").field(arg0).finish(),
}
}
}

impl<R> AsRenderElements<R> for WindowElement
where
R: Renderer + ImportAll + ImportMem,
Expand Down

0 comments on commit 19385b1

Please sign in to comment.