Introduce iced_sentinel and iced_debug crates

This commit is contained in:
Héctor Ramón Jiménez 2024-02-26 07:00:51 +01:00
parent 58a7007ac1
commit dd36893f7a
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
26 changed files with 543 additions and 567 deletions

View file

@ -67,7 +67,7 @@ impl Backend {
///
/// The text provided as overlay will be rendered on top of the primitives.
/// This is useful for rendering debug information.
pub fn present<T: AsRef<str>>(
pub fn present(
&mut self,
device: &wgpu::Device,
queue: &wgpu::Queue,
@ -77,7 +77,6 @@ impl Backend {
frame: &wgpu::TextureView,
primitives: &[Primitive],
viewport: &Viewport,
overlay_text: &[T],
) {
log::debug!("Drawing");
#[cfg(feature = "tracing")]
@ -87,11 +86,7 @@ impl Backend {
let scale_factor = viewport.scale_factor() as f32;
let transformation = viewport.projection();
let mut layers = Layer::generate(primitives, viewport);
if !overlay_text.is_empty() {
layers.push(Layer::overlay(overlay_text, viewport));
}
let layers = Layer::generate(primitives, viewport);
self.prepare(
device,

View file

@ -172,14 +172,13 @@ pub fn new<W: compositor::Window>(
}
/// Presents the given primitives with the given [`Compositor`] and [`Backend`].
pub fn present<T: AsRef<str>>(
pub fn present(
compositor: &mut Compositor,
backend: &mut Backend,
surface: &mut wgpu::Surface<'static>,
primitives: &[Primitive],
viewport: &Viewport,
background_color: Color,
overlay: &[T],
) -> Result<(), compositor::SurfaceError> {
match surface.get_current_texture() {
Ok(frame) => {
@ -202,7 +201,6 @@ pub fn present<T: AsRef<str>>(
view,
primitives,
viewport,
overlay,
);
// Submit work
@ -294,13 +292,12 @@ impl graphics::Compositor for Compositor {
}
}
fn present<T: AsRef<str>>(
fn present(
&mut self,
renderer: &mut Self::Renderer,
surface: &mut Self::Surface,
viewport: &Viewport,
background_color: Color,
overlay: &[T],
) -> Result<(), compositor::SurfaceError> {
renderer.with_primitives(|backend, primitives| {
present(
@ -310,28 +307,19 @@ impl graphics::Compositor for Compositor {
primitives,
viewport,
background_color,
overlay,
)
})
}
fn screenshot<T: AsRef<str>>(
fn screenshot(
&mut self,
renderer: &mut Self::Renderer,
_surface: &mut Self::Surface,
viewport: &Viewport,
background_color: Color,
overlay: &[T],
) -> Vec<u8> {
renderer.with_primitives(|backend, primitives| {
screenshot(
self,
backend,
primitives,
viewport,
background_color,
overlay,
)
screenshot(self, backend, primitives, viewport, background_color)
})
}
}
@ -339,13 +327,12 @@ impl graphics::Compositor for Compositor {
/// Renders the current surface to an offscreen buffer.
///
/// Returns RGBA bytes of the texture data.
pub fn screenshot<T: AsRef<str>>(
pub fn screenshot(
compositor: &Compositor,
backend: &mut Backend,
primitives: &[Primitive],
viewport: &Viewport,
background_color: Color,
overlay: &[T],
) -> Vec<u8> {
let mut encoder = compositor.device.create_command_encoder(
&wgpu::CommandEncoderDescriptor {
@ -385,7 +372,6 @@ pub fn screenshot<T: AsRef<str>>(
&view,
primitives,
viewport,
overlay,
);
let texture = crate::color::convert(