abrasion/engine/src/main.rs

44 lines
1.2 KiB
Rust
Raw Normal View History

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
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,
]);
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
};
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();
renderer.set_renderables(renderables);
2019-05-05 14:52:27 +00:00
renderer.main_loop();
}