diff --git a/examples/custom_shader.rs b/examples/custom_shader.rs index d7fd557a9c..15b96289d8 100644 --- a/examples/custom_shader.rs +++ b/examples/custom_shader.rs @@ -23,7 +23,7 @@ fn main() { .setup_world(setup) .setup_render_graph(|builder, pipeline_storage, shader_storage| { builder - .add_resource_provider(Box::new(UniformResourceProvider::::new())) + .add_resource_provider(UniformResourceProvider::::new()) .add_pipeline_to_pass( resource_name::pass::MAIN, pipeline_storage, diff --git a/src/app/app_builder.rs b/src/app/app_builder.rs index 1c1cd631a4..7be8326484 100644 --- a/src/app/app_builder.rs +++ b/src/app/app_builder.rs @@ -147,13 +147,13 @@ impl AppBuilder { .add_draw_target(MeshesDrawTarget::default()) .add_draw_target(AssignedMeshesDrawTarget::default()) .add_draw_target(UiDrawTarget::default()) - .add_resource_provider(Box::new(CameraResourceProvider::default())) - .add_resource_provider(Box::new(Camera2dResourceProvider::default())) - .add_resource_provider(Box::new(LightResourceProvider::new(10))) - .add_resource_provider(Box::new(UiResourceProvider::new())) - .add_resource_provider(Box::new(MeshResourceProvider::new())) - .add_resource_provider(Box::new(UniformResourceProvider::::new())) - .add_resource_provider(Box::new(UniformResourceProvider::::new())) + .add_resource_provider(CameraResourceProvider::default()) + .add_resource_provider(Camera2dResourceProvider::default()) + .add_resource_provider(LightResourceProvider::new(10)) + .add_resource_provider(UiResourceProvider::new()) + .add_resource_provider(MeshResourceProvider::new()) + .add_resource_provider(UniformResourceProvider::::new()) + .add_resource_provider(UniformResourceProvider::::new()) .add_forward_pass() .add_forward_pipeline(pipeline_storage, shader_storage) .add_ui_pipeline(pipeline_storage, shader_storage) diff --git a/src/render/render_graph/passes/forward.rs b/src/render/render_graph/passes/forward.rs index 745b1e4458..a82892ea73 100644 --- a/src/render/render_graph/passes/forward.rs +++ b/src/render/render_graph/passes/forward.rs @@ -10,7 +10,7 @@ pub trait ForwardPassBuilder { impl ForwardPassBuilder for RenderGraphBuilder { fn add_forward_pass(self) -> Self { - self.add_resource_provider(Box::new(FrameTextureResourceProvider::new( + self.add_resource_provider(FrameTextureResourceProvider::new( resource_name::texture::DEPTH, TextureDescriptor { size: wgpu::Extent3d { @@ -25,7 +25,7 @@ impl ForwardPassBuilder for RenderGraphBuilder { format: wgpu::TextureFormat::Depth32Float, usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, }, - ))) + )) .add_pass( resource_name::pass::MAIN, PassDescriptor { diff --git a/src/render/render_graph/render_graph.rs b/src/render/render_graph/render_graph.rs index 072c0ad528..f73d61048f 100644 --- a/src/render/render_graph/render_graph.rs +++ b/src/render/render_graph/render_graph.rs @@ -86,8 +86,13 @@ impl RenderGraphBuilder { self } - pub fn add_resource_provider(mut self, resource_provider: Box) -> Self { - self.render_graph.resource_providers.push(resource_provider); + pub fn add_resource_provider(mut self, resource_provider: T) -> Self + where + T: ResourceProvider + 'static, + { + self.render_graph + .resource_providers + .push(Box::new(resource_provider)); self }