1#![cfg_attr(docsrs, feature(doc_cfg))]
3
4#[cfg(feature = "wgpu")]
5pub use iced_wgpu as wgpu;
6
7pub mod fallback;
8
9pub use iced_graphics as graphics;
10pub use iced_graphics::core;
11
12#[cfg(feature = "geometry")]
13pub use iced_graphics::geometry;
14
15pub type Renderer = renderer::Renderer;
19
20pub type Compositor = renderer::Compositor;
24
25#[cfg(all(feature = "wgpu", feature = "tiny-skia"))]
26mod renderer {
27 pub type Renderer = crate::fallback::Renderer<
28 iced_wgpu::Renderer,
29 iced_tiny_skia::Renderer,
30 >;
31
32 pub type Compositor = crate::fallback::Compositor<
33 iced_wgpu::window::Compositor,
34 iced_tiny_skia::window::Compositor,
35 >;
36}
37
38#[cfg(all(feature = "wgpu", not(feature = "tiny-skia")))]
39mod renderer {
40 pub type Renderer = iced_wgpu::Renderer;
41 pub type Compositor = iced_wgpu::window::Compositor;
42}
43
44#[cfg(all(not(feature = "wgpu"), feature = "tiny-skia"))]
45mod renderer {
46 pub type Renderer = iced_tiny_skia::Renderer;
47 pub type Compositor = iced_tiny_skia::window::Compositor;
48}
49
50#[cfg(not(any(feature = "wgpu", feature = "tiny-skia")))]
51mod renderer {
52 #[cfg(not(debug_assertions))]
53 compile_error!(
54 "Cannot compile `iced_renderer` in release mode \
55 without a renderer feature enabled. \
56 Enable either the `wgpu` or `tiny-skia` feature, or both."
57 );
58
59 pub type Renderer = ();
60 pub type Compositor = ();
61}