use gfx; use na; use piston; use view; use vr; pub trait Scene> { fn event(&mut self, event: Event); fn update(&mut self, vr: &mut Option, // TODO: abstract this out encoder: &mut gfx::Encoder); fn render(&self, factory: &mut F, encoder: &mut gfx::Encoder, trans: &gfx::handle::Buffer, target: &gfx::handle::RenderTargetView, depth: &gfx::handle::DepthStencilView); fn origin(&self) -> na::Matrix4; fn mouselook(&self) -> na::Matrix4; } pub enum Event { Vr(vr::Event), Piston(piston::input::Input), }