2019-05-05 14:52:27 +00:00
|
|
|
use log;
|
|
|
|
use env_logger;
|
2020-03-15 15:43:15 +00:00
|
|
|
use std::sync::Arc;
|
2020-01-26 00:57:15 +00:00
|
|
|
|
|
|
|
use cgmath as cgm;
|
2019-05-05 14:52:27 +00:00
|
|
|
|
|
|
|
mod render;
|
2020-01-20 01:00:14 +00:00
|
|
|
mod util;
|
2019-05-05 14:52:27 +00:00
|
|
|
|
2020-01-26 00:57:15 +00:00
|
|
|
use render::vulkan::data;
|
|
|
|
use render::renderable::Renderable;
|
|
|
|
|
2019-05-05 14:52:27 +00:00
|
|
|
fn main() {
|
|
|
|
env_logger::init();
|
|
|
|
log::info!("Starting...");
|
2020-01-26 00:57:15 +00:00
|
|
|
|
2020-03-15 22:48:07 +00:00
|
|
|
let mesh_cube = {
|
2020-03-15 15:43:15 +00:00
|
|
|
let vertices = Arc::new(vec![
|
2020-03-14 15:55:03 +00:00
|
|
|
data::Vertex::new([-0.5, -0.5, 0.0], [1.0, 0.0, 0.0]),
|
|
|
|
data::Vertex::new([0.5, -0.5, 0.0], [0.0, 1.0, 0.0]),
|
|
|
|
data::Vertex::new([0.5, 0.5, 0.0], [0.0, 0.0, 1.0]),
|
|
|
|
data::Vertex::new([-0.5, 0.5, 0.0], [1.0, 1.0, 1.0])
|
|
|
|
]);
|
2020-03-15 15:43:15 +00:00
|
|
|
let indices = Arc::new(vec![
|
2020-03-14 15:55:03 +00:00
|
|
|
0, 1, 2, 2, 3, 0,
|
|
|
|
]);
|
2020-03-15 22:48:07 +00:00
|
|
|
Arc::new(render::renderable::Mesh::new(vertices, indices))
|
|
|
|
};
|
|
|
|
|
|
|
|
let mut renderables: Vec<Arc<dyn Renderable>> = Vec::new();
|
|
|
|
for i in 1..100000 {
|
|
|
|
let transform = cgm::Matrix4::from_translation(cgm::Vector3::new(0.0, 0.0, (i as f32)/1000.0));
|
|
|
|
let cube = render::renderable::Object {
|
|
|
|
mesh: mesh_cube.clone(),
|
|
|
|
transform
|
2020-03-14 15:55:03 +00:00
|
|
|
};
|
2020-03-15 22:48:07 +00:00
|
|
|
renderables.push(Arc::new(cube));
|
2020-03-14 15:55:03 +00:00
|
|
|
}
|
2020-01-26 00:57:15 +00:00
|
|
|
|
2019-05-05 14:52:27 +00:00
|
|
|
let mut renderer = render::Renderer::initialize();
|
2020-03-15 22:48:07 +00:00
|
|
|
renderer.set_renderables(renderables);
|
2019-05-05 14:52:27 +00:00
|
|
|
renderer.main_loop();
|
|
|
|
}
|