X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=shaded_cube.rs;h=211f23fa17ad30609ddda9a9c5cbcf0c8c5d0e00;hp=9194d7c8a986002591983ded73d97027ccae1d8a;hb=1124a995ef96469daf8593cb7fe9a17ee11bac2e;hpb=4010a0433b1dfc4b85dc0c4386bc9e5e77d2cb62 diff --git a/shaded_cube.rs b/shaded_cube.rs index 9194d7c..211f23f 100644 --- a/shaded_cube.rs +++ b/shaded_cube.rs @@ -1,6 +1,7 @@ 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!("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(); } }