Update to rust-rocket 0.7.2
[mandelwow.git] / shaded_cube.rs
index eec0d16c7900fc1976a3c1d8bd8eb7afe1942267..211f23fa17ad30609ddda9a9c5cbcf0c8c5d0e00 100644 (file)
@@ -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<Vertex>,
-    program: &'a Program,
+    program: Rc<Program>,
     indices: IndexBuffer<u16>,
 }
 
-impl<'a> ShadedCube<'a> {
-    pub fn new(display: &Display, program: &'a Program) -> ShadedCube<'a> {
+impl<'a> ShadedCube {
+    pub fn new(display: &Display, program: Rc<Program>) -> 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, &params).unwrap();
+        frame.draw(&self.vertexes, &self.indices, &self.program, uniforms, &params).unwrap();
     }
 }