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

@ -18,8 +18,8 @@ impl iced_graphics::window::Compositor for Compositor {
type Surface = wgpu::Surface;
type SwapChain = wgpu::SwapChain;
fn new(settings: Self::Settings) -> Self {
let (device, queue) = futures::executor::block_on(async {
fn new(settings: Self::Settings) -> (Self, Renderer) {
let (mut device, queue) = futures::executor::block_on(async {
let adapter = wgpu::Adapter::request(
&wgpu::RequestAdapterOptions {
power_preference: if settings.antialiasing.is_none() {
@ -44,15 +44,17 @@ impl iced_graphics::window::Compositor for Compositor {
.await
});
Self {
device,
queue,
format: settings.format,
}
}
let renderer =
Renderer::new(crate::Backend::new(&mut device, settings));
fn create_renderer(&mut self, settings: Settings) -> Renderer {
Renderer::new(crate::Backend::new(&mut self.device, settings))
(
Self {
device,
queue,
format: settings.format,
},
renderer,
)
}
fn create_surface<W: HasRawWindowHandle>(