1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
use std::error::Error; use std::path::PathBuf; use gfx; use notify; use super::*; pub struct ShaderDirectoryWatcher {} impl ShaderDirectoryWatcher { pub fn new<P>(_: P) -> Result<Self, notify::Error> where PathBuf: From<P>, { Ok(Self {}) } } pub struct Shader<R: gfx::Resources> { shader_set: gfx::ShaderSet<R>, } impl<R: gfx::Resources> Shader<R> { pub fn simple<F: gfx::Factory<R>>( factory: &mut F, _: &mut ShaderDirectoryWatcher, vertex_source: ShaderSource, pixel_source: ShaderSource, ) -> Result<Self, Box<Error>> { let v = create_vertex_shader(factory, &vertex_source.source.unwrap()).unwrap(); let f = create_pixel_shader(factory, &pixel_source.source.unwrap()).unwrap(); Ok(Self { shader_set: gfx::ShaderSet::Simple(v, f) }) } pub fn as_shader_set(&self) -> &gfx::ShaderSet<R> { &self.shader_set } pub fn refresh<F: gfx::Factory<R>>( &mut self, _: &mut F, _: &mut ShaderDirectoryWatcher, ) -> bool { false } }