summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-01-18 10:06:30 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-01-18 10:06:30 +0100
commit5fc49edc55a0e64c4c46ca55eddafe9d4e8232e1 (patch)
treedef282b187be48e4b61cfd55cbe243a3dd1191f8
parent1701ec815d3f25ea8097e806081e7a3ac9ba4d82 (diff)
downloadiced-5fc49edc55a0e64c4c46ca55eddafe9d4e8232e1.tar.gz
iced-5fc49edc55a0e64c4c46ca55eddafe9d4e8232e1.tar.bz2
iced-5fc49edc55a0e64c4c46ca55eddafe9d4e8232e1.zip
Make `compatible_window` mandatory in `Compositor`
-rw-r--r--graphics/src/compositor.rs2
-rw-r--r--renderer/src/compositor.rs4
-rw-r--r--tiny_skia/src/window/compositor.rs26
-rw-r--r--wgpu/src/window/compositor.rs6
-rw-r--r--winit/src/application.rs2
-rw-r--r--winit/src/multi_window.rs3
6 files changed, 18 insertions, 25 deletions
diff --git a/graphics/src/compositor.rs b/graphics/src/compositor.rs
index e6b9030b..0188f4d8 100644
--- a/graphics/src/compositor.rs
+++ b/graphics/src/compositor.rs
@@ -22,7 +22,7 @@ pub trait Compositor: Sized {
/// Creates a new [`Compositor`].
fn new<W: Window + Clone>(
settings: Self::Settings,
- compatible_window: Option<W>,
+ compatible_window: W,
) -> Result<Self, Error>;
/// Creates a [`Self::Renderer`] for the [`Compositor`].
diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs
index 0b56f101..f10ed048 100644
--- a/renderer/src/compositor.rs
+++ b/renderer/src/compositor.rs
@@ -24,7 +24,7 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> {
fn new<W: Window + Clone>(
settings: Self::Settings,
- compatible_window: Option<W>,
+ compatible_window: W,
) -> Result<Self, Error> {
let candidates =
Candidate::list_from_env().unwrap_or(Candidate::default_list());
@@ -228,7 +228,7 @@ impl Candidate {
fn build<Theme, W: Window>(
self,
settings: Settings,
- _compatible_window: Option<W>,
+ _compatible_window: W,
) -> Result<Compositor<Theme>, Error> {
match self {
Self::TinySkia => {
diff --git a/tiny_skia/src/window/compositor.rs b/tiny_skia/src/window/compositor.rs
index b5e9bcd8..86400aa0 100644
--- a/tiny_skia/src/window/compositor.rs
+++ b/tiny_skia/src/window/compositor.rs
@@ -9,7 +9,7 @@ use std::marker::PhantomData;
use std::num::NonZeroU32;
pub struct Compositor<Theme> {
- context: Option<softbuffer::Context<Box<dyn compositor::Window>>>,
+ context: softbuffer::Context<Box<dyn compositor::Window>>,
settings: Settings,
_theme: PhantomData<Theme>,
}
@@ -32,7 +32,7 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> {
fn new<W: compositor::Window>(
settings: Self::Settings,
- compatible_window: Option<W>,
+ compatible_window: W,
) -> Result<Self, Error> {
Ok(new(settings, compatible_window))
}
@@ -51,17 +51,11 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> {
width: u32,
height: u32,
) -> Surface {
- let window = if let Some(context) = self.context.as_ref() {
- softbuffer::Surface::new(context, Box::new(window.clone()) as _)
- .expect("Create softbuffer surface for window")
- } else {
- let context =
- softbuffer::Context::new(Box::new(window.clone()) as _)
- .expect("Create softbuffer context for window");
-
- softbuffer::Surface::new(&context, Box::new(window.clone()) as _)
- .expect("Create softbuffer surface for window")
- };
+ let window = softbuffer::Surface::new(
+ &self.context,
+ Box::new(window.clone()) as _,
+ )
+ .expect("Create softbuffer surface for window");
Surface {
window,
@@ -133,11 +127,11 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> {
pub fn new<W: compositor::Window, Theme>(
settings: Settings,
- compatible_window: Option<W>,
+ compatible_window: W,
) -> Compositor<Theme> {
#[allow(unsafe_code)]
- let context = compatible_window
- .and_then(|w| softbuffer::Context::new(Box::new(w) as _).ok());
+ let context = softbuffer::Context::new(Box::new(compatible_window) as _)
+ .expect("Create softbuffer context");
Compositor {
context,
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 0c063d0b..105d83a8 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -137,11 +137,11 @@ impl<Theme> Compositor<Theme> {
/// window.
pub fn new<W: compositor::Window, Theme>(
settings: Settings,
- compatible_window: Option<W>,
+ compatible_window: W,
) -> Result<Compositor<Theme>, Error> {
let compositor = futures::executor::block_on(Compositor::request(
settings,
- compatible_window,
+ Some(compatible_window),
))
.ok_or(Error::GraphicsAdapterNotFound)?;
@@ -210,7 +210,7 @@ impl<Theme> graphics::Compositor for Compositor<Theme> {
fn new<W: compositor::Window>(
settings: Self::Settings,
- compatible_window: Option<W>,
+ compatible_window: W,
) -> Result<Self, Error> {
new(settings, compatible_window)
}
diff --git a/winit/src/application.rs b/winit/src/application.rs
index c5e11167..5fcdbbd8 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -187,7 +187,7 @@ where
};
}
- let compositor = C::new(compositor_settings, Some(window.clone()))?;
+ let compositor = C::new(compositor_settings, window.clone())?;
let mut renderer = compositor.create_renderer();
for font in settings.fonts {
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs
index 21196460..3f0ba056 100644
--- a/winit/src/multi_window.rs
+++ b/winit/src/multi_window.rs
@@ -187,8 +187,7 @@ where
};
}
- let mut compositor =
- C::new(compositor_settings, Some(main_window.clone()))?;
+ let mut compositor = C::new(compositor_settings, main_window.clone())?;
let mut window_manager = WindowManager::new();
let _ = window_manager.insert(