Introduce Program and State

This commit is contained in:
Héctor Ramón Jiménez 2020-05-21 04:27:31 +02:00
parent d77492c0c3
commit ae5e2c6c73
14 changed files with 643 additions and 777 deletions

View file

@ -5,7 +5,7 @@ use raw_window_handle::HasRawWindowHandle;
/// A graphics compositor that can draw to windows.
pub trait Compositor: Sized {
/// The settings of the backend.
type Settings: Default + Clone;
type Settings: Default;
/// The iced renderer of the backend.
type Renderer: iced_native::Renderer;
@ -19,7 +19,7 @@ pub trait Compositor: Sized {
/// Creates a new [`Backend`].
///
/// [`Backend`]: trait.Backend.html
fn new(settings: Self::Settings) -> Self;
fn new(settings: Self::Settings) -> (Self, Self::Renderer);
/// Crates a new [`Surface`] for the given window.
///
@ -29,11 +29,6 @@ pub trait Compositor: Sized {
window: &W,
) -> Self::Surface;
/// Crates a new [`Renderer`].
///
/// [`Renderer`]: #associatedtype.Renderer
fn create_renderer(&mut self, settings: Self::Settings) -> Self::Renderer;
/// Crates a new [`SwapChain`] for the given [`Surface`].
///
/// [`SwapChain`]: #associatedtype.SwapChain