Reduce Generics in pipeline rendering

This commit is contained in:
Florian RICHER 2025-06-09 16:12:21 +02:00
parent 90a5b5d117
commit 0174aeb60e
Signed by: florian.richer
GPG key ID: C73D37CBED7BFC77
8 changed files with 92 additions and 76 deletions

View file

@ -1,19 +1,19 @@
use std::collections::HashMap;
use std::error::Error;
use std::sync::Arc;
use super::settings_scene::SettingsScene;
use crate::core::app::DEPTH_IMAGE_ID;
use crate::core::app::context::WindowContext;
use crate::core::app::user_event::UserEvent;
use crate::core::render::primitives::AsRecordable;
use crate::core::render::primitives::camera::Camera3D;
use crate::core::render::primitives::transform::Transform;
use crate::core::render::primitives::{AsDescriptorSet, AsRecordable};
use crate::core::render::render_pass_manager::{RenderPassConfig, RenderPassManager};
use crate::core::render::resources::meshes::{ObjMesh, SquareMesh};
use crate::core::render::resources::texture::{
Texture, TextureLoadInfo, TextureLoader, TextureSourceKind,
};
use crate::core::render::resources::texture::{TextureLoadInfo, TextureLoader, TextureSourceKind};
use crate::core::scene::Scene;
use crate::game::assets::pipelines::simple::{SimplePipeline, SimplePipelineRenderData};
use crate::game::assets::pipelines::simple::SimplePipeline;
use egui_winit_vulkano::egui;
use glam::EulerRot;
use glam::Quat;
@ -21,7 +21,7 @@ use glam::Vec3;
use vulkano::format::Format;
use vulkano::image::sampler::{Filter, SamplerAddressMode, SamplerCreateInfo};
use vulkano::{
command_buffer::{AutoCommandBufferBuilder, CommandBufferUsage, PrimaryCommandBufferAbstract},
command_buffer::{AutoCommandBufferBuilder, CommandBufferUsage},
sync::GpuFuture,
};
use winit::window::CursorGrabMode;
@ -250,7 +250,7 @@ impl Scene for MainScene {
}
// Create camera uniform using the actual camera
let camera_uniform = state.camera.create_buffer(&app_context.memory_allocator)?;
let camera_uniform = Arc::new(state.camera.create_buffer(&app_context.memory_allocator)?);
let square_transform_uniform =
Transform::create_buffer(&app_context.memory_allocator, &state.square_instances)?;
let obj_transform_uniform =
@ -262,10 +262,14 @@ impl Scene for MainScene {
state.simple_pipeline.pipeline(),
&state.square,
&square_transform_uniform,
&SimplePipelineRenderData {
mvp_uniform: &camera_uniform,
texture: &state.texture_loader.get_texture("wooden-crate").unwrap(),
},
vec![
camera_uniform.clone() as Arc<dyn AsDescriptorSet>,
state
.texture_loader
.get_texture("wooden-crate")
.unwrap()
.clone(),
],
)?;
SimplePipeline::record_draw_commands(
&mut builder,
@ -279,10 +283,14 @@ impl Scene for MainScene {
state.simple_pipeline.pipeline(),
&state.obj,
&obj_transform_uniform,
&SimplePipelineRenderData {
mvp_uniform: &camera_uniform,
texture: &state.texture_loader.get_texture("cube-diffuse").unwrap(),
},
vec![
camera_uniform.clone() as Arc<dyn AsDescriptorSet>,
state
.texture_loader
.get_texture("cube-diffuse")
.unwrap()
.clone(),
],
)?;
SimplePipeline::record_draw_commands(&mut builder, &state.obj, &obj_transform_uniform)?;