projects
/
mandelwow.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanly separate rendering and event handling
[mandelwow.git]
/
shaded_cube.rs
diff --git
a/shaded_cube.rs
b/shaded_cube.rs
index 6019a12702d6932aada4dc73d58d5d79d200a4df..211f23fa17ad30609ddda9a9c5cbcf0c8c5d0e00 100644
(file)
--- 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 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");
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);
}
implement_vertex!(Vertex, position, normal);
-pub struct ShadedCube
<'a>
{
+pub struct ShadedCube {
vertexes: glium::VertexBuffer<Vertex>,
vertexes: glium::VertexBuffer<Vertex>,
- program:
&'a Program
,
+ program:
Rc<Program>
,
indices: IndexBuffer<u16>,
}
indices: IndexBuffer<u16>,
}
-impl<'a> ShadedCube
<'a>
{
- pub fn new(display: &Display, program:
&'a Program) -> ShadedCube<'a>
{
+impl<'a> ShadedCube {
+ pub fn new(display: &Display, program:
Rc<Program>) -> ShadedCube
{
// x--->
// 4 ──────┐ 5
// ╱┆ ╱│
// x--->
// 4 ──────┐ 5
// ╱┆ ╱│
@@
-71,6
+72,6
@@
impl<'a> ShadedCube<'a> {
backface_culling: glium::draw_parameters::BackfaceCullingMode::CullClockwise,
..Default::default()
};
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();
}
}
}
}