From a7704fda31815747851d26d341037509de2e0c30 Mon Sep 17 00:00:00 2001 From: Carter Anderson Date: Fri, 27 Mar 2020 17:43:03 -0700 Subject: [PATCH] make winit optional and vsync configurable --- Cargo.toml | 4 +- src/app/app.rs | 91 ++----------------- src/app/app_builder.rs | 25 ++++- src/core/window.rs | 4 - src/core/window/mod.rs | 26 ++++++ src/core/window/winit/mod.rs | 74 +++++++++++++++ src/diagnostic/diagnostics.rs | 4 +- src/render/renderer/renderer.rs | 2 +- .../renderers/wgpu_renderer/wgpu_renderer.rs | 31 ++----- .../wgpu_renderer/wgpu_type_converter.rs | 17 ++++ 10 files changed, 160 insertions(+), 118 deletions(-) delete mode 100644 src/core/window.rs create mode 100644 src/core/window/mod.rs create mode 100644 src/core/window/winit/mod.rs diff --git a/Cargo.toml b/Cargo.toml index 6b2c7abcdd..4f2d9a5916 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,14 +5,14 @@ authors = ["Carter Anderson "] edition = "2018" [features] -default = ["wgpu"] +default = ["wgpu", "winit"] [dependencies] legion = { path = "bevy_legion", features = ["serialize"] } wgpu = { git = "https://github.com/gfx-rs/wgpu-rs.git", rev = "a7b0d5ae5bc0934439ef559ed145e93f0117c39a", optional = true } bitflags = "1.0" glam = "0.8.6" -winit = "0.22.0" +winit = { version = "0.22.0", optional = true } zerocopy = "0.3" log = "0.4" env_logger = "0.7" diff --git a/src/app/app.rs b/src/app/app.rs index 054d1b90ce..70ac5e7908 100644 --- a/src/app/app.rs +++ b/src/app/app.rs @@ -1,21 +1,11 @@ -use winit::{ - event, - event::WindowEvent, - event_loop::{ControlFlow, EventLoop}, -}; - +use crate::{app::AppBuilder, core::Time, render::renderer::Renderer}; use legion::prelude::*; -use crate::{ - app::AppBuilder, - core::{Time, Window}, - render::renderer::Renderer, -}; - pub struct App { pub universe: Universe, pub world: World, pub resources: Resources, + pub run: Option>, pub renderer: Option>, pub schedule: Schedule, } @@ -26,6 +16,7 @@ impl App { world: World, schedule: Schedule, resources: Resources, + run: Option>, renderer: Option>, ) -> App { App { @@ -33,6 +24,7 @@ impl App { world, schedule, renderer, + run, resources, } } @@ -41,7 +33,7 @@ impl App { AppBuilder::new() } - fn update(&mut self) { + pub fn update(&mut self) { if let Some(mut time) = self.resources.get_mut::