From 5137d655e6bbd29581fc1469d0385515113f2999 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 22 Mar 2024 07:09:51 +0100 Subject: Allow custom renderers in `Program` and `Application` --- renderer/src/fallback.rs | 13 ++++++++---- renderer/src/lib.rs | 4 ---- renderer/src/settings.rs | 55 ------------------------------------------------ 3 files changed, 9 insertions(+), 63 deletions(-) delete mode 100644 renderer/src/settings.rs (limited to 'renderer') diff --git a/renderer/src/fallback.rs b/renderer/src/fallback.rs index 4431606a..28e73dd8 100644 --- a/renderer/src/fallback.rs +++ b/renderer/src/fallback.rs @@ -200,15 +200,12 @@ impl graphics::Compositor for Compositor where L: graphics::Compositor, R: graphics::Compositor, - L::Settings: From, - R::Settings: From, { - type Settings = crate::Settings; type Renderer = Renderer; type Surface = Surface; async fn new( - settings: Self::Settings, + settings: graphics::Settings, compatible_window: W, ) -> Result { if let Ok(left) = L::new(settings.into(), compatible_window.clone()) @@ -528,3 +525,11 @@ mod geometry { } } } + +impl compositor::Renderer for Renderer +where + L: compositor::Renderer, + R: compositor::Renderer, +{ + type Compositor = Compositor; +} diff --git a/renderer/src/lib.rs b/renderer/src/lib.rs index 199b431e..7c48995d 100644 --- a/renderer/src/lib.rs +++ b/renderer/src/lib.rs @@ -6,16 +6,12 @@ pub use iced_wgpu as wgpu; pub mod fallback; -mod settings; - pub use iced_graphics as graphics; pub use iced_graphics::core; #[cfg(feature = "geometry")] pub use iced_graphics::geometry; -pub use settings::Settings; - /// The default graphics renderer for [`iced`]. /// /// [`iced`]: https://github.com/iced-rs/iced diff --git a/renderer/src/settings.rs b/renderer/src/settings.rs deleted file mode 100644 index 27788db9..00000000 --- a/renderer/src/settings.rs +++ /dev/null @@ -1,55 +0,0 @@ -use crate::core::{Font, Pixels}; -use crate::graphics::Antialiasing; - -/// The settings of a Backend. -#[derive(Debug, Clone, Copy, PartialEq)] -pub struct Settings { - /// The default [`Font`] to use. - pub default_font: Font, - - /// The default size of text. - /// - /// By default, it will be set to `16.0`. - pub default_text_size: Pixels, - - /// The antialiasing strategy that will be used for triangle primitives. - /// - /// By default, it is `None`. - pub antialiasing: Option, -} - -impl Default for Settings { - fn default() -> Settings { - Settings { - default_font: Font::default(), - default_text_size: Pixels(16.0), - antialiasing: None, - } - } -} - -#[cfg(feature = "tiny-skia")] -impl From for iced_tiny_skia::Settings { - fn from(settings: Settings) -> Self { - Self { - default_font: settings.default_font, - default_text_size: settings.default_text_size, - } - } -} - -#[cfg(feature = "wgpu")] -impl From for iced_wgpu::Settings { - fn from(settings: Settings) -> Self { - Self { - default_font: settings.default_font, - default_text_size: settings.default_text_size, - antialiasing: settings.antialiasing, - ..iced_wgpu::Settings::default() - } - } -} - -impl From for () { - fn from(_settings: Settings) -> Self {} -} -- cgit