summaryrefslogtreecommitdiffstats
path: root/renderer
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-22 07:09:51 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-22 07:09:51 +0100
commit5137d655e6bbd29581fc1469d0385515113f2999 (patch)
tree46a3ff77014d7e7bd2047ce7c6e7dfe9b3a596cd /renderer
parent4f2f40c68b4647f281d34034beb159a41422aa06 (diff)
downloadiced-5137d655e6bbd29581fc1469d0385515113f2999.tar.gz
iced-5137d655e6bbd29581fc1469d0385515113f2999.tar.bz2
iced-5137d655e6bbd29581fc1469d0385515113f2999.zip
Allow custom renderers in `Program` and `Application`
Diffstat (limited to 'renderer')
-rw-r--r--renderer/src/fallback.rs13
-rw-r--r--renderer/src/lib.rs4
-rw-r--r--renderer/src/settings.rs55
3 files changed, 9 insertions, 63 deletions
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<L, R> graphics::Compositor for Compositor<L, R>
where
L: graphics::Compositor,
R: graphics::Compositor,
- L::Settings: From<crate::Settings>,
- R::Settings: From<crate::Settings>,
{
- type Settings = crate::Settings;
type Renderer = Renderer<L::Renderer, R::Renderer>;
type Surface = Surface<L::Surface, R::Surface>;
async fn new<W: compositor::Window + Clone>(
- settings: Self::Settings,
+ settings: graphics::Settings,
compatible_window: W,
) -> Result<Self, graphics::Error> {
if let Ok(left) = L::new(settings.into(), compatible_window.clone())
@@ -528,3 +525,11 @@ mod geometry {
}
}
}
+
+impl<L, R> compositor::Renderer for Renderer<L, R>
+where
+ L: compositor::Renderer,
+ R: compositor::Renderer,
+{
+ type Compositor = Compositor<L::Compositor, R::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<Antialiasing>,
-}
-
-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<Settings> 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<Settings> 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<Settings> for () {
- fn from(_settings: Settings) -> Self {}
-}