aboutsummaryrefslogtreecommitdiff
path: root/src/text.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/text.rs')
-rw-r--r--src/text.rs45
1 files changed, 30 insertions, 15 deletions
diff --git a/src/text.rs b/src/text.rs
index 10ca700..a27ca49 100644
--- a/src/text.rs
+++ b/src/text.rs
@@ -2,27 +2,42 @@ use sdl2::ttf;
use sdl2::render::{Texture, TextureCreator};
use sdl2::pixels::Color;
-struct Factory<'a, T> {
- font: ttf::Font<'a, 'a>,
+const WHITE: Color = Color::RGB(255, 255, 255);
+
+pub struct Factory<'a, T> {
+ font: &'a ttf::Font<'a, 'a>,
creator: &'a TextureCreator<T>,
bg: Color,
}
-impl Factory<'a, T> {
- pub fn new(font: &ttf::Font<'a, 'a>, creator: &'a TextureCreator<T>, bg: Color) -> Factory {
+impl<'a, T> Factory<'a, T> {
+ pub fn new(font: &'a ttf::Font,
+ creator: &'a TextureCreator<T>,
+ bg: Color
+ ) -> Factory<'a, T>
+ {
Factory { font, creator, bg }
}
-}
-pub fn to_texture<'a, T>(
- s: &'a String,
- font: &ttf::Font,
- tex_creator: &'a TextureCreator<T>,
- bg: &Color
-) -> Texture<'a>
-{
- let surface = font.render(s).shaded(Color::RGB(255, 255, 255), *bg).unwrap();
- tex_creator.create_texture_from_surface(&surface).unwrap()
+ pub fn from_string(&self, s: &String) -> Texture
+ {
+ let surface = self.font.render(s).shaded(WHITE, self.bg).unwrap();
+ self.creator.create_texture_from_surface(&surface).unwrap()
+ }
+
+ pub fn set_bg(&mut self, bg: Color) {
+ self.bg = bg;
+ }
}
-// pub fn width(s: &String
+
+// pub trait TextTexture {
+// fn to_texture<T>(&self, factory: &Factory<T>) -> Texture;
+// }
+//
+// impl TextTexture for String {
+// fn to_texture<T>(&self, factory: &Factory<T>) -> Texture {
+// let surface = factory.font.render(self).shaded(WHITE, factory.bg).unwrap();
+// factory.creator.create_texture_from_surface(&surface).unwrap()
+// }
+// }