moves vertex and index buffer handling to scene
This commit is contained in:
parent
0b3be29525
commit
32577d548b
6 changed files with 111 additions and 79 deletions
src
52
src/main.rs
52
src/main.rs
|
@ -44,6 +44,7 @@ pub mod image;
|
|||
pub mod command_buffer;
|
||||
pub mod depth_buffer;
|
||||
pub mod load_model;
|
||||
pub mod scene;
|
||||
|
||||
const PORTABILITY_MACOS_VERSION: Version = Version::new(1, 3, 216);
|
||||
const VALIDATION_ENABLED: bool =
|
||||
|
@ -150,6 +151,7 @@ struct App {
|
|||
last_pos: LogicalPosition<f32>,
|
||||
view_direction: vertex::Vec3,
|
||||
cur_pos: cgmath::Point3<f32>,
|
||||
scene_handler: scene::Scene,
|
||||
}
|
||||
|
||||
impl App {
|
||||
|
@ -158,43 +160,9 @@ impl App {
|
|||
let loader = LibloadingLoader::new(LIBRARY)?;
|
||||
let entry = Entry::new(loader).map_err(|b| anyhow!("{}", b))?;
|
||||
let mut data = app_data::AppData::default();
|
||||
let mut scene_handler = scene::Scene::default();
|
||||
|
||||
//load_model::load_model(&mut data)?;
|
||||
data.vertices.push(
|
||||
vertex::Vertex::new(vec3(8.0, 0.0, 0.0), vec3(1.0, 0.0, 0.0), vec2(0.0, 0.0))
|
||||
);
|
||||
data.indices.push(0);
|
||||
|
||||
data.vertices.push(
|
||||
vertex::Vertex::new(vec3(-8.0, 0.0, 0.0), vec3(0.0, 0.0, 1.0), vec2(0.0, 0.0))
|
||||
);
|
||||
data.indices.push(1);
|
||||
|
||||
data.vertices.push(
|
||||
vertex::Vertex::new(vec3(0.0, 8.0, 0.0), vec3(1.0, 1.0, 0.0), vec2(0.0, 0.0))
|
||||
);
|
||||
data.indices.push(2);
|
||||
|
||||
data.vertices.push(
|
||||
vertex::Vertex::new(vec3(0.0, -8.0, 0.0), vec3(0.0, 1.0, 1.0), vec2(0.0, 0.0))
|
||||
);
|
||||
data.indices.push(3);
|
||||
|
||||
let grid_size = 1000;
|
||||
for x_index in -grid_size..grid_size {
|
||||
for y_index in -grid_size..grid_size {
|
||||
if !(((x_index as i32).abs() == 8 && y_index == 0) || (x_index == 0 && (y_index as i32).abs() == 8)){
|
||||
let index = data.indices.len();
|
||||
let vert = vertex::Vertex::new(
|
||||
vec3(x_index as f32, y_index as f32, 0.0),
|
||||
vec3(0.0, 1.0, 0.0),
|
||||
vec2(0.0, 0.0)
|
||||
);
|
||||
data.vertices.push(vert);
|
||||
data.indices.push(index as u32);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let instance = create_instance(window, &entry, &mut data)?;
|
||||
data.surface = vk_window::create_surface(&instance, &window, &window)?;
|
||||
|
@ -218,14 +186,13 @@ impl App {
|
|||
image::create_texture_image_view(&device, &mut data)?;
|
||||
image::create_texture_sampler(&device, &mut data)?;
|
||||
|
||||
buffer::create_vertex_buffer(&instance, &device, &mut data)?;
|
||||
buffer::create_index_buffer(&instance, &device, &mut data)?;
|
||||
scene_handler.prepare_data(&instance, &device, &data);
|
||||
|
||||
buffer::create_uniform_buffers(&instance, &device, &mut data)?;
|
||||
buffer::create_descriptor_pool(&device, &mut data)?;
|
||||
buffer::create_descriptor_sets(&device, &mut data)?;
|
||||
|
||||
command_buffer::create_command_buffers(&device, &mut data)?;
|
||||
command_buffer::create_command_buffers(&device, &mut data, &scene_handler)?;
|
||||
|
||||
create_sync_objects(&device, &mut data)?;
|
||||
|
||||
|
@ -234,6 +201,7 @@ impl App {
|
|||
last_pos: LogicalPosition::new(-1 as f32, -1 as f32),
|
||||
view_direction: vertex::Vec3::new(0.0, 0.0, 0.0),
|
||||
cur_pos: cgmath::point3(0.0, 0.0, 0.0),
|
||||
scene_handler,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -316,11 +284,7 @@ impl App {
|
|||
|
||||
self.device.destroy_descriptor_set_layout(self.data.descriptor_set_layout, None);
|
||||
|
||||
self.device.destroy_buffer(self.data.index_buffer, None);
|
||||
self.device.free_memory(self.data.index_buffer_memory, None);
|
||||
|
||||
self.device.destroy_buffer(self.data.vertex_buffer, None);
|
||||
self.device.free_memory(self.data.vertex_buffer_memory, None);
|
||||
self.scene_handler.destroy(&self.device);
|
||||
|
||||
self.data.in_flight_fences
|
||||
.iter()
|
||||
|
@ -355,7 +319,7 @@ impl App {
|
|||
create_framebuffers(&self.device, &mut self.data)?;
|
||||
buffer::create_uniform_buffers(&self.instance, &self.device, &mut self.data)?;
|
||||
buffer::create_descriptor_sets(&self.device, &mut self.data)?;
|
||||
command_buffer::create_command_buffers(&self.device, &mut self.data)?;
|
||||
command_buffer::create_command_buffers(&self.device, &mut self.data, &self.scene_handler)?;
|
||||
self.data
|
||||
.images_in_flight
|
||||
.resize(self.data.swapchain_images.len(), vk::Fence::null());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue