Johann Woelper 6 лет назад
Родитель
Сommit
86bd53a2e4
2 измененных файлов с 32 добавлено и 20 удалено
  1. BIN
      src/FiraSans-Regular.ttf
  2. 32 20
      src/main.rs

BIN
src/FiraSans-Regular.ttf


+ 32 - 20
src/main.rs

@@ -1,8 +1,7 @@
-
 //#![windows_subsystem = "windows"]
 
-
-
+extern crate image as img;
+use crate::img::GenericImageView;
 extern crate piston_window;
 use clap;
 use clap::{App, Arg, SubCommand};
@@ -22,6 +21,9 @@ fn main() {
 
     let img_path = matches.value_of("INPUT").unwrap();
 
+    let opened_image = img::open(img_path).unwrap();
+    dbg!(opened_image.dimensions());
+
     let opengl = OpenGL::V3_2;
     let mut window: PistonWindow = WindowSettings::new("Oculante", [1000, 800])
         .exit_on_esc(true)
@@ -46,27 +48,33 @@ fn main() {
             let mut drag = false;
             let mut events = Events::new(EventSettings::new().lazy(true));
             let mut reset = false;
-            // let mut glyphs = window.load_font("OpenSans-Regular.ttf").unwrap();
+
+
+            //let ref font = "FiraSans-Regular.ttf";
+    
+            //let mut glyphs = Glyphs::new(font, window.create_texture_context(), TextureSettings::new()).unwrap();
+
+            let font = include_bytes!("FiraSans-Regular.ttf");
+            let mut glyphs = Glyphs::from_bytes(font, window.create_texture_context(), TextureSettings::new()).unwrap();
+
+            // let maybe_glyphs = window.load_font("OpenSans-Regular.ttf");
   
             while let Some(e) = events.next(&mut window) {
                 
-
                 if let Some(Button::Mouse(_)) = e.press_args() {drag = true;}
                 if let Some(Button::Mouse(_)) = e.release_args() {drag = false;}
 
                 if let Some(Button::Keyboard(key)) = e.press_args() {
-                        if key == Key::R {
-                            reset = true;
-                        }
-                        println!("Pressed keyboard key '{:?}'", key);
+                    if key == Key::R {reset = true;}
+                    println!("Pressed keyboard key '{:?}'", key);
                 };
 
-
                 e.mouse_scroll(|d| {
                     if d[1] > 0.0 {
                         scale += 0.2;
                     } else {
                         scale -= 0.2;
+                        if scale < 0.0 {scale = 0.0;}
                     }
                 });
                 e.mouse_relative(|d| {
@@ -79,11 +87,9 @@ fn main() {
                     println!("Resized '{}, {}'", args.window_size[0], args.window_size[1])
                 });
     
-                window.draw_2d(&e, |c, gfx, _device| {
+                window.draw_2d(&e, |c, gfx, device| {
                     clear([0.2; 4], gfx);
-                    // c.trans(111.0,1.0);
                     if reset {
-                        println!("reset");
                         offset = (0.0,0.0);
                         scale = 1.0;
                         reset = false;
@@ -92,15 +98,21 @@ fn main() {
 
                     image(&texture, transform, gfx);
                 
-                    // text::Text::new_color([0.8, 0.8, 1.0, 1.0], 32).draw(
-                    //     "sdsdsdsd",
-                    //     &mut glyphs,
-                    //     &c.draw_state,
-                    //     c.transform.trans(10.0, 20.0), gfx
-                    // ).unwrap();
-                
+
+                    text::Text::new_color([0.8, 0.8, 0.8, 0.7], 16).draw(
+                        &format!("{} {}X{}", img_path, opened_image.dimensions().0, opened_image.dimensions().1),
+                        &mut glyphs,
+                        &c.draw_state,
+                        c.transform.trans(10.0, 20.0), gfx
+                    ).unwrap();
+                    glyphs.factory.encoder.flush(device);
+
+        
+
                 });
 
+                    
+