aboutsummaryrefslogtreecommitdiff
path: root/src/text.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/text.rs')
-rw-r--r--src/text.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/text.rs b/src/text.rs
new file mode 100644
index 0000000..10ca700
--- /dev/null
+++ b/src/text.rs
@@ -0,0 +1,28 @@
+use sdl2::ttf;
+use sdl2::render::{Texture, TextureCreator};
+use sdl2::pixels::Color;
+
+struct Factory<'a, T> {
+ font: 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 {
+ 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 width(s: &String