X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=shaded_cube.rs;h=211f23fa17ad30609ddda9a9c5cbcf0c8c5d0e00;hp=eec0d16c7900fc1976a3c1d8bd8eb7afe1942267;hb=1124a995ef96469daf8593cb7fe9a17ee11bac2e;hpb=0c901a4f10a0579623da467ebdf018796c800aca diff --git a/shaded_cube.rs b/shaded_cube.rs index eec0d16..211f23f 100644 --- a/shaded_cube.rs +++ b/shaded_cube.rs @@ -1,10 +1,11 @@ use glium; -use glium::{Display, Program, Surface}; +use glium::{Display, Program, Surface, implement_vertex}; use glium::index::{IndexBuffer, PrimitiveType}; +use std::rc::Rc; pub fn shaded_program(display: &Display) -> Program { - let vertex_shader_src = include_str!("shaded.vert"); - let fragment_shader_src = include_str!("shaded.frag"); + let vertex_shader_src = include_str!("shaders/shaded.vert"); + let fragment_shader_src = include_str!("shaders/shaded.frag"); Program::from_source(display, vertex_shader_src, fragment_shader_src, None).unwrap() } @@ -15,14 +16,14 @@ struct Vertex { } implement_vertex!(Vertex, position, normal); -pub struct ShadedCube<'a> { +pub struct ShadedCube { vertexes: glium::VertexBuffer, - program: &'a Program, + program: Rc, indices: IndexBuffer, } -impl<'a> ShadedCube<'a> { - pub fn new(display: &Display, program: &'a Program) -> ShadedCube<'a> { +impl<'a> ShadedCube { + pub fn new(display: &Display, program: Rc) -> ShadedCube { // x---> // 4 ──────┐ 5 // ╱┆ ╱│ @@ -71,6 +72,6 @@ impl<'a> ShadedCube<'a> { backface_culling: glium::draw_parameters::BackfaceCullingMode::CullClockwise, ..Default::default() }; - frame.draw(&self.vertexes, &self.indices, self.program, uniforms, ¶ms).unwrap(); + frame.draw(&self.vertexes, &self.indices, &self.program, uniforms, ¶ms).unwrap(); } }