1//! The official renderer for iced.
2#![cfg_attr(docsrs, feature(doc_auto_cfg))]
3#[cfg(feature = "wgpu")]
4pub use iced_wgpu as wgpu;
56pub mod fallback;
78pub use iced_graphics as graphics;
9pub use iced_graphics::core;
1011#[cfg(feature = "geometry")]
12pub use iced_graphics::geometry;
1314/// The default graphics renderer for [`iced`].
15///
16/// [`iced`]: https://github.com/iced-rs/iced
17pub type Renderer = renderer::Renderer;
1819/// The default graphics compositor for [`iced`].
20///
21/// [`iced`]: https://github.com/iced-rs/iced
22pub type Compositor = renderer::Compositor;
2324#[cfg(all(feature = "wgpu", feature = "tiny-skia"))]
25mod renderer {
26pub type Renderer = crate::fallback::Renderer<
27 iced_wgpu::Renderer,
28 iced_tiny_skia::Renderer,
29 >;
3031pub type Compositor = crate::fallback::Compositor<
32 iced_wgpu::window::Compositor,
33 iced_tiny_skia::window::Compositor,
34 >;
35}
3637#[cfg(all(feature = "wgpu", not(feature = "tiny-skia")))]
38mod renderer {
39pub type Renderer = iced_wgpu::Renderer;
40pub type Compositor = iced_wgpu::window::Compositor;
41}
4243#[cfg(all(not(feature = "wgpu"), feature = "tiny-skia"))]
44mod renderer {
45pub type Renderer = iced_tiny_skia::Renderer;
46pub type Compositor = iced_tiny_skia::window::Compositor;
47}
4849#[cfg(not(any(feature = "wgpu", feature = "tiny-skia")))]
50mod renderer {
51#[cfg(not(debug_assertions))]
52compile_error!(
53"Cannot compile `iced_renderer` in release mode \
54 without a renderer feature enabled. \
55 Enable either the `wgpu` or `tiny-skia` feature, or both."
56);
5758pub type Renderer = ();
59pub type Compositor = ();
60}