X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=bounding_box.rs;h=6625eb546182a45b6e265d899300943fb00d0e2c;hp=ce06b521f4097286bbb52cc0b45d6736e89094df;hb=29b275596efed3b3064072483aa6d8c4cba1e3d4;hpb=eae81e5b33bcab0437934e558158237cfef78d8f diff --git a/bounding_box.rs b/bounding_box.rs index ce06b52..6625eb5 100644 --- a/bounding_box.rs +++ b/bounding_box.rs @@ -1,26 +1,27 @@ -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"); - return Program::from_source(display, vertex_shader_src, fragment_shader_src, None).unwrap(); + 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() } #[derive(Copy, Clone)] 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] },