diff options
author | 2022-11-29 19:50:58 -0800 | |
---|---|---|
committer | 2023-01-09 18:52:38 +0100 | |
commit | c5cd236b7380c3689792934aeaecd2942713fa67 (patch) | |
tree | c27a0e6ecfdec7936791ee70e07ce19c713095cd /glow | |
parent | ba20ac8e49aedfa9d822d71784587d0635cec4f8 (diff) | |
download | iced-c5cd236b7380c3689792934aeaecd2942713fa67.tar.gz iced-c5cd236b7380c3689792934aeaecd2942713fa67.tar.bz2 iced-c5cd236b7380c3689792934aeaecd2942713fa67.zip |
Initial profiling support for Iced.
Diffstat (limited to 'glow')
-rw-r--r-- | glow/Cargo.toml | 6 | ||||
-rw-r--r-- | glow/src/image.rs | 6 | ||||
-rw-r--r-- | glow/src/quad.rs | 6 | ||||
-rw-r--r-- | glow/src/triangle.rs | 6 |
4 files changed, 24 insertions, 0 deletions
diff --git a/glow/Cargo.toml b/glow/Cargo.toml index f586d24d..6c150a74 100644 --- a/glow/Cargo.toml +++ b/glow/Cargo.toml @@ -8,6 +8,7 @@ license = "MIT AND OFL-1.1" repository = "https://github.com/iced-rs/iced" [features] +trace = ["iced_profiling"] svg = ["iced_graphics/svg"] image = ["iced_graphics/image"] png = ["iced_graphics/png"] @@ -42,6 +43,11 @@ version = "0.5" path = "../graphics" features = ["font-fallback", "font-icons", "opengl"] +[dependencies.iced_profiling] +version = "0.1.0" +path = "../profiling" +optional = true + [package.metadata.docs.rs] rustdoc-args = ["--cfg", "docsrs"] all-features = true diff --git a/glow/src/image.rs b/glow/src/image.rs index 521a01e7..351b98fa 100644 --- a/glow/src/image.rs +++ b/glow/src/image.rs @@ -21,6 +21,9 @@ use glow::HasContext; use std::cell::RefCell; +#[cfg(feature = "trace")] +use iced_profiling::info_span; + #[derive(Debug)] pub(crate) struct Pipeline { program: <glow::Context as HasContext>::Program, @@ -148,6 +151,9 @@ impl Pipeline { images: &[layer::Image], layer_bounds: Rectangle<u32>, ) { + #[cfg(feature = "trace")] + let _ = info_span!("Glow::Image", "DRAW").entered(); + unsafe { gl.use_program(Some(self.program)); gl.bind_vertex_array(Some(self.vertex_array)); diff --git a/glow/src/quad.rs b/glow/src/quad.rs index d9f1c6ae..fc918bf2 100644 --- a/glow/src/quad.rs +++ b/glow/src/quad.rs @@ -7,6 +7,9 @@ use glow::HasContext; use iced_graphics::layer; use iced_native::Rectangle; +#[cfg(feature = "trace")] +use iced_profiling::info_span; + #[derive(Debug)] pub enum Pipeline { Core(core::Pipeline), @@ -42,6 +45,9 @@ impl Pipeline { scale: f32, bounds: Rectangle<u32>, ) { + #[cfg(feature = "trace")] + let _ = info_span!("Glow::Quad", "DRAW").enter(); + match self { Pipeline::Core(pipeline) => { pipeline.draw( diff --git a/glow/src/triangle.rs b/glow/src/triangle.rs index d0205e08..11d24349 100644 --- a/glow/src/triangle.rs +++ b/glow/src/triangle.rs @@ -9,6 +9,9 @@ use iced_graphics::triangle::{ColoredVertex2D, Vertex2D}; use glow::HasContext; use std::marker::PhantomData; +#[cfg(feature = "trace")] +use iced_profiling::info_span; + const DEFAULT_VERTICES: usize = 1_000; const DEFAULT_INDICES: usize = 1_000; @@ -58,6 +61,9 @@ impl Pipeline { transformation: Transformation, scale_factor: f32, ) { + #[cfg(feature = "trace")] + let _ = info_span!("Glow::Triangle", "DRAW").enter(); + unsafe { gl.enable(glow::MULTISAMPLE); gl.enable(glow::SCISSOR_TEST); |