use crate::ecs::world::World;
pub struct RenderResources {
pub scene_color: crate::render::wgpu::rendergraph::ResourceId,
pub depth: crate::render::wgpu::rendergraph::ResourceId,
pub compute_output: crate::render::wgpu::rendergraph::ResourceId,
pub swapchain: crate::render::wgpu::rendergraph::ResourceId,
pub view_normals: crate::render::wgpu::rendergraph::ResourceId,
pub ssao_raw: crate::render::wgpu::rendergraph::ResourceId,
pub ssao: crate::render::wgpu::rendergraph::ResourceId,
pub ssgi_raw: crate::render::wgpu::rendergraph::ResourceId,
pub ssgi: crate::render::wgpu::rendergraph::ResourceId,
pub ssr_raw: crate::render::wgpu::rendergraph::ResourceId,
pub ssr: crate::render::wgpu::rendergraph::ResourceId,
pub surface_width: u32,
pub surface_height: u32,
}
pub type NextStateBuilder = Box<dyn FnOnce(&mut World) -> Box<dyn State>>;
pub trait State {
fn initialize(&mut self, _world: &mut World) {}
fn configure_render_graph(
&mut self,
_: &mut crate::render::wgpu::rendergraph::RenderGraph<World>,
_: &wgpu::Device,
_: wgpu::TextureFormat,
_: RenderResources,
) {
}
fn run_systems(&mut self, _world: &mut World) {}
fn pre_render(
&mut self,
_renderer: &mut crate::render::wgpu::WgpuRenderer,
_world: &mut World,
) {
}
fn update_render_graph(
&mut self,
_graph: &mut crate::render::wgpu::rendergraph::RenderGraph<World>,
_world: &World,
) {
}
}