summaryrefslogtreecommitdiffstats
path: root/wgpu
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 /wgpu
parent4f2f40c68b4647f281d34034beb159a41422aa06 (diff)
downloadiced-5137d655e6bbd29581fc1469d0385515113f2999.tar.gz
iced-5137d655e6bbd29581fc1469d0385515113f2999.tar.bz2
iced-5137d655e6bbd29581fc1469d0385515113f2999.zip
Allow custom renderers in `Program` and `Application`
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/src/settings.rs13
-rw-r--r--wgpu/src/window/compositor.rs8
2 files changed, 15 insertions, 6 deletions
diff --git a/wgpu/src/settings.rs b/wgpu/src/settings.rs
index c9338fec..9943aa3e 100644
--- a/wgpu/src/settings.rs
+++ b/wgpu/src/settings.rs
@@ -1,6 +1,6 @@
//! Configure a renderer.
use crate::core::{Font, Pixels};
-use crate::graphics::Antialiasing;
+use crate::graphics::{self, Antialiasing};
/// The settings of a [`Backend`].
///
@@ -64,3 +64,14 @@ impl Default for Settings {
}
}
}
+
+impl From<graphics::Settings> for Settings {
+ fn from(settings: graphics::Settings) -> Self {
+ Self {
+ default_font: settings.default_font,
+ default_text_size: settings.default_text_size,
+ antialiasing: settings.antialiasing,
+ ..Settings::default()
+ }
+ }
+}
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 328ad781..74dfadba 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -1,9 +1,8 @@
//! Connect a window with a renderer.
use crate::core::{Color, Size};
-use crate::graphics;
use crate::graphics::color;
use crate::graphics::compositor;
-use crate::graphics::{Error, Viewport};
+use crate::graphics::{self, Error, Viewport};
use crate::{Backend, Primitive, Renderer, Settings};
use std::future::Future;
@@ -225,15 +224,14 @@ pub fn present<T: AsRef<str>>(
}
impl graphics::Compositor for Compositor {
- type Settings = Settings;
type Renderer = Renderer;
type Surface = wgpu::Surface<'static>;
fn new<W: compositor::Window>(
- settings: Self::Settings,
+ settings: graphics::Settings,
compatible_window: W,
) -> impl Future<Output = Result<Self, Error>> {
- new(settings, compatible_window)
+ new(settings.into(), compatible_window)
}
fn create_renderer(&self) -> Self::Renderer {