moves vertex and index buffer handling to scene

This commit is contained in:
zomseffen 2024-05-18 12:22:00 +02:00
parent 0b3be29525
commit 32577d548b
6 changed files with 111 additions and 79 deletions

View file

@ -5,6 +5,7 @@ use vulkanalia::prelude::v1_0::*;
use crate::app_data;
use crate::queue_family_indices;
use crate::scene;
pub unsafe fn create_command_pool(
instance: &Instance,
@ -22,7 +23,7 @@ pub unsafe fn create_command_pool(
Ok(())
}
pub unsafe fn create_command_buffers(device: &Device, data: &mut app_data::AppData) -> Result<()> {
pub unsafe fn create_command_buffers(device: &Device, data: &mut app_data::AppData, scene_handler: &scene::Scene) -> Result<()> {
let allocate_info = vk::CommandBufferAllocateInfo::builder()
.command_pool(data.command_pool)
.level(vk::CommandBufferLevel::PRIMARY)
@ -69,8 +70,8 @@ pub unsafe fn create_command_buffers(device: &Device, data: &mut app_data::AppDa
device.cmd_bind_pipeline(
*command_buffer, vk::PipelineBindPoint::GRAPHICS, data.pipeline);
device.cmd_bind_vertex_buffers(*command_buffer, 0, &[data.vertex_buffer], &[0]);
device.cmd_bind_index_buffer(*command_buffer, data.index_buffer, 0, vk::IndexType::UINT32);
device.cmd_bind_vertex_buffers(*command_buffer, 0, &[scene_handler.vertex_buffer], &[0]);
device.cmd_bind_index_buffer(*command_buffer, scene_handler.index_buffer, 0, vk::IndexType::UINT32);
device.cmd_bind_descriptor_sets(
*command_buffer,
@ -81,7 +82,7 @@ pub unsafe fn create_command_buffers(device: &Device, data: &mut app_data::AppDa
&[],
);
device.cmd_draw_indexed(*command_buffer, data.indices.len() as u32, 1, 0, 0, 0);
device.cmd_draw_indexed(*command_buffer, scene_handler.indices.len() as u32, 1, 0, 0, 0);
device.cmd_end_render_pass(*command_buffer);