working on porting. Got some stuff cleaned up but I've broken the example I had running at one point

This commit is contained in:
2019-07-15 23:20:07 -07:00
parent 86b4f7d9a3
commit a71958e815
2 changed files with 193 additions and 254 deletions

View File

@@ -73,41 +73,14 @@ fn main() {
let mut processor = vkprocessor::VkProcessor::new(&instance, &surface);
processor.compile_kernel(String::from("simple-edge.compute"));
processor.compile_shaders(String::from("simple"), &surface);
processor.load_buffers(String::from("funky-bird.jpg"));
processor.run_kernel();
processor.read_image();
processor.save_image();
let font = Font::from_file("resources/fonts/sansation.ttf").unwrap();
let mut window = RenderWindow::new(
(900, 900),
"Custom drawable",
Style::CLOSE,
&Default::default(),
);
let mut timer = Timer::new();
let mut input = Input::new();
let xy = processor.xy;
let mut workpieceloader = WorkpieceLoader::new(String::from("resources/images/funky-bird.jpg"));
workpieceloader.load_first_stage(processor.read_image());
let mut texture = Texture::from_file("resources/images/funky-bird.jpg").expect("Couldn't load image");
let mut workpiece = Workpiece::new();
workpiece.render_sprite.set_texture(&mut texture, false);
let mut slider = Slider::new(Vector2f::new(40.0, 40.0), None, &font);
let mut selected_colors = Vec::new();
let mut button = button::Button::new(Vector2f::new(40.0,40.0), Vector2f::new(100.0,100.0), &font);
button.set_text("Text");
let step_size: f32 = 0.005;
let mut elapsed_time: f32;
@@ -117,54 +90,27 @@ fn main() {
let mut mouse_xy = Vector2i::new(0,0);
while window.is_open() {
while let Some(p) = window.get_position() {
while let Some(event) = window.poll_event() {
match event {
Event::Closed => return,
Event::KeyPressed { code, .. } => {
if code == Key::Escape {
return;
}
},
Event::MouseButtonPressed { button, x, y} => {
let x = x as u32;
let y = y as u32;
mouse_xy = mouse::desktop_position();
let r = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 0) as usize] as u8;
let g = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 1) as usize] as u8;
let b = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 2) as usize] as u8;
let a = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 3) as usize] as u8;
// Event::MouseButtonPressed { button, x, y} => {
// let x = x as u32;
// let y = y as u32;
// mouse_xy = mouse::desktop_position();
// let r = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 0) as usize] as u8;
// let g = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 1) as usize] as u8;
// let b = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 2) as usize] as u8;
// let a = processor.image_buffer[((processor.xy.0 * y + x) * 4 + 3) as usize] as u8;
//
// selected_colors.push(
// RectangleShape::with_size(Vector2f::new(30.0, 30.0))
// );
//
// let mut x_position = 45.0 * selected_colors.len() as f32;
//
// selected_colors.last_mut().unwrap().set_position(Vector2f::new(x_position, 80.0));
// selected_colors.last_mut().unwrap().set_fill_color(&Color::rgba(r,g,b,a));
// }
selected_colors.push(
RectangleShape::with_size(Vector2f::new(30.0, 30.0))
);
let mut x_position = 45.0 * selected_colors.len() as f32;
selected_colors.last_mut().unwrap().set_position(Vector2f::new(x_position, 80.0));
selected_colors.last_mut().unwrap().set_fill_color(&Color::rgba(r,g,b,a));
},
Event::MouseWheelScrolled { wheel, delta, x, y } => {
if delta > 0.0 {
workpiece.render_sprite.set_scale(workpiece.render_sprite.get_scale()*Vector2f::new(1.1,1.1));
} else {
workpiece.render_sprite.set_scale(workpiece.render_sprite.get_scale()*Vector2f::new(0.9,0.9));
}
},
_ => {}
}
input.ingest(&event)
}
// Dragging by middle click
if input.is_mousebutton_held(Button::Middle) {
let delta = mouse_xy - mouse::desktop_position();
mouse_xy = mouse::desktop_position();
workpiece.render_sprite.set_position(
workpiece.render_sprite.position() - Vector2f::new(delta.x as f32, delta.y as f32)
);
}
elapsed_time = timer.elap_time();
delta_time = elapsed_time - current_time;
@@ -178,18 +124,41 @@ fn main() {
accumulator_time -= step_size;
}
window.clear(&Color::BLACK);
processor.run_loop(&surface);
print!("adosfijqwe");
window.draw(&workpiece.render_sprite);
window.draw(&slider);
for i in &selected_colors {
window.draw(i);
}
window.draw(&button);
window.display();
}
}
}