X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=shaded_cube.rs;fp=shaded_cube.rs;h=211f23fa17ad30609ddda9a9c5cbcf0c8c5d0e00;hp=6019a12702d6932aada4dc73d58d5d79d200a4df;hb=3024c5dfb352a3f9011a5ce9aa50fe7dc1a2e013;hpb=5a29f2c9665d2d593d70439d51ea7802c9b5d285 diff --git a/shaded_cube.rs b/shaded_cube.rs index 6019a12..211f23f 100644 --- a/shaded_cube.rs +++ b/shaded_cube.rs @@ -1,6 +1,7 @@ use glium; 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!("shaders/shaded.vert"); @@ -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(); } }