X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bounding_box.rs;h=6625eb546182a45b6e265d899300943fb00d0e2c;hb=6022e031acedd52a7a6493e1820daeaf82ea2780;hp=d5fa4139654327557a7d225b150a98fa331e4b6e;hpb=0c901a4f10a0579623da467ebdf018796c800aca;p=mandelwow.git diff --git a/bounding_box.rs b/bounding_box.rs index d5fa413..6625eb5 100644 --- a/bounding_box.rs +++ b/bounding_box.rs @@ -1,11 +1,12 @@ -use cube::Cube; +use crate::cube::Cube; 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 solid_fill_program(display: &Display) -> Program { - let vertex_shader_src = include_str!("solid.vert"); - let fragment_shader_src = include_str!("solid.frag"); + let vertex_shader_src = include_str!("shaders/solid.vert"); + let fragment_shader_src = include_str!("shaders/solid.frag"); Program::from_source(display, vertex_shader_src, fragment_shader_src, None).unwrap() } @@ -13,14 +14,14 @@ pub fn solid_fill_program(display: &Display) -> Program { struct Vertex { position: [f32; 3] } implement_vertex!(Vertex, position); -pub struct BoundingBox<'a> { +pub struct BoundingBox { vertexes: glium::VertexBuffer, - program: &'a Program, + program: Rc, indices: IndexBuffer, } -impl<'a> BoundingBox<'a> { - pub fn new(display: &Display, c: &Cube, program: &'a Program) -> BoundingBox<'a> { +impl BoundingBox { + pub fn new(display: &Display, c: &Cube, program: Rc) -> BoundingBox { let vertex_data = [ Vertex { position: [c.xmin, c.ymin, c.zmin] }, Vertex { position: [c.xmax, c.ymin, c.zmin] }, @@ -54,6 +55,6 @@ impl<'a> BoundingBox<'a> { blend: glium::Blend::alpha_blending(), ..Default::default() }; - frame.draw(&self.vertexes, &self.indices, self.program, uniforms, ¶ms).unwrap(); + frame.draw(&self.vertexes, &self.indices, &self.program, uniforms, ¶ms).unwrap(); } }