diff --git a/src/bin/vrtue.rs b/src/bin/vrtue.rs index 8657b7f..b0be0ac 100644 --- a/src/bin/vrtue.rs +++ b/src/bin/vrtue.rs @@ -1,6 +1,6 @@ extern crate vrtue; use vrtue::{scenes, view, vr}; -use vrtue::scene::Scene; +use vrtue::scene::{Event, Scene}; extern crate env_logger; extern crate gfx_device_gl; @@ -35,6 +35,8 @@ pub fn main() { piston_window::Input::Text(_) => break 'main, _ => debug!("\t{:?}", ev) } + + scene.event(Event::Piston(ev)); } } diff --git a/src/scene.rs b/src/scene.rs index 0f09ec1..793ca42 100644 --- a/src/scene.rs +++ b/src/scene.rs @@ -1,4 +1,5 @@ use view; +use vr; extern crate gfx; extern crate gfx_device_gl; @@ -6,6 +7,7 @@ extern crate piston_window; pub trait Scene> { + fn event(&mut self, event: Event); fn update(&mut self); fn render(&self, factory: &mut F, @@ -14,3 +16,8 @@ pub trait Scene, depth: &gfx::handle::DepthStencilView); } + +pub enum Event { + Vr(vr::Event), + Piston(piston_window::Input), +} diff --git a/src/scenes/world.rs b/src/scenes/world.rs index abdf614..d2eeff4 100644 --- a/src/scenes/world.rs +++ b/src/scenes/world.rs @@ -64,6 +64,9 @@ impl> WorldScene { impl> scene::Scene for WorldScene { + fn event(&mut self, event: scene::Event) { + } + fn update(&mut self) { } diff --git a/src/vr.rs b/src/vr.rs index e0254b2..e7f8182 100644 --- a/src/vr.rs +++ b/src/vr.rs @@ -20,6 +20,9 @@ pub struct VR { gfx_handles: gfx::handle::Manager, } +pub struct Event { +} + impl VR { pub fn new() -> Result> { Ok(VR {