X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=bounding_box.rs;h=6625eb546182a45b6e265d899300943fb00d0e2c;hp=d5fa4139654327557a7d225b150a98fa331e4b6e;hb=29b275596efed3b3064072483aa6d8c4cba1e3d4;hpb=0c901a4f10a0579623da467ebdf018796c800aca 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(); } }