X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=text.rs;h=e020156cd08956f226d9c36c0117dcaa24069452;hp=3d5d73cfcf92688095d43f2fb30c7e1d2512887a;hb=HEAD;hpb=5a29f2c9665d2d593d70439d51ea7802c9b5d285 diff --git a/text.rs b/text.rs index 3d5d73c..e020156 100644 --- a/text.rs +++ b/text.rs @@ -1,5 +1,5 @@ use cgmath::conv::array4x4; -use cgmath::{Matrix4, Vector3}; +use cgmath::Matrix4; use glium; use glium::{Display, Program, Surface, implement_vertex, texture, uniform}; use std; @@ -51,18 +51,16 @@ struct Vertex { } implement_vertex!(Vertex, position, tex_coords); -pub struct Text<'a> { +pub struct Text { tex: texture::Texture2d, vertex_buffer: glium::VertexBuffer, index_buffer: glium::IndexBuffer, program: glium::Program, - params: glium::DrawParameters<'a>, - pub model: Matrix4, - pub character: char, + params: glium::DrawParameters<'static>, } -impl<'a> Text<'a> { - pub fn new(display: &Display, character: char) -> Text<'_> { +impl Text { + pub fn new(display: &Display) -> Text { let (w, h, pixels) = c64_font(); let image = glium::texture::RawImage2d { data: std::borrow::Cow::from(pixels), @@ -124,19 +122,17 @@ impl<'a> Text<'a> { index_buffer: index_buffer, program: text_program(display), params: params, - model: Matrix4::from_translation(Vector3::unit_z() * (-1.0)), - character: character, } } - pub fn draw(&self, frame: &mut glium::Frame, perspview: &[[f32; 4]; 4]) { + pub fn draw(&self, frame: &mut glium::Frame, c: char, model: &Matrix4, perspview: &[[f32; 4]; 4]) { let uniforms = uniform! { - model: array4x4(self.model), + model: array4x4(*model), perspview: *perspview, tex: self.tex.sampled() .magnify_filter(glium::uniforms::MagnifySamplerFilter::Nearest), - index: self.character as i32, + index: c as i32, // RGB values from http://unusedino.de/ec64/technical/misc/vic656x/colors/ bgcolor: srgb([ 64, 50, 133u8]), // 6 - blue fgcolor: srgb([120, 106, 189u8]), // 14 - light blue