|
@@ -1,8 +1,7 @@
|
|
|
-
|
|
|
|
|
//#![windows_subsystem = "windows"]
|
|
//#![windows_subsystem = "windows"]
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+extern crate image as img;
|
|
|
|
|
+use crate::img::GenericImageView;
|
|
|
extern crate piston_window;
|
|
extern crate piston_window;
|
|
|
use clap;
|
|
use clap;
|
|
|
use clap::{App, Arg, SubCommand};
|
|
use clap::{App, Arg, SubCommand};
|
|
@@ -22,6 +21,9 @@ fn main() {
|
|
|
|
|
|
|
|
let img_path = matches.value_of("INPUT").unwrap();
|
|
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 opengl = OpenGL::V3_2;
|
|
|
let mut window: PistonWindow = WindowSettings::new("Oculante", [1000, 800])
|
|
let mut window: PistonWindow = WindowSettings::new("Oculante", [1000, 800])
|
|
|
.exit_on_esc(true)
|
|
.exit_on_esc(true)
|
|
@@ -46,27 +48,33 @@ fn main() {
|
|
|
let mut drag = false;
|
|
let mut drag = false;
|
|
|
let mut events = Events::new(EventSettings::new().lazy(true));
|
|
let mut events = Events::new(EventSettings::new().lazy(true));
|
|
|
let mut reset = false;
|
|
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) {
|
|
while let Some(e) = events.next(&mut window) {
|
|
|
|
|
|
|
|
-
|
|
|
|
|
if let Some(Button::Mouse(_)) = e.press_args() {drag = true;}
|
|
if let Some(Button::Mouse(_)) = e.press_args() {drag = true;}
|
|
|
if let Some(Button::Mouse(_)) = e.release_args() {drag = false;}
|
|
if let Some(Button::Mouse(_)) = e.release_args() {drag = false;}
|
|
|
|
|
|
|
|
if let Some(Button::Keyboard(key)) = e.press_args() {
|
|
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| {
|
|
e.mouse_scroll(|d| {
|
|
|
if d[1] > 0.0 {
|
|
if d[1] > 0.0 {
|
|
|
scale += 0.2;
|
|
scale += 0.2;
|
|
|
} else {
|
|
} else {
|
|
|
scale -= 0.2;
|
|
scale -= 0.2;
|
|
|
|
|
+ if scale < 0.0 {scale = 0.0;}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
e.mouse_relative(|d| {
|
|
e.mouse_relative(|d| {
|
|
@@ -79,11 +87,9 @@ fn main() {
|
|
|
println!("Resized '{}, {}'", args.window_size[0], args.window_size[1])
|
|
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);
|
|
clear([0.2; 4], gfx);
|
|
|
- // c.trans(111.0,1.0);
|
|
|
|
|
if reset {
|
|
if reset {
|
|
|
- println!("reset");
|
|
|
|
|
offset = (0.0,0.0);
|
|
offset = (0.0,0.0);
|
|
|
scale = 1.0;
|
|
scale = 1.0;
|
|
|
reset = false;
|
|
reset = false;
|
|
@@ -92,15 +98,21 @@ fn main() {
|
|
|
|
|
|
|
|
image(&texture, transform, gfx);
|
|
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);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|