rafx_renderer/
renderer_pipeline_plugin.rs1use crate::RendererLoadContext;
2use rafx_api::extra::upload::RafxTransferUpload;
3use rafx_api::RafxResult;
4use rafx_assets::AssetManager;
5use rafx_assets::AssetResource;
6use rafx_framework::graph::PreparedRenderGraph;
7use rafx_framework::render_features::{ExtractResources, RenderRegistryBuilder, RenderView};
8use rafx_framework::{ImageViewResource, RenderResources, ResourceArc};
9use std::path::PathBuf;
10
11pub trait RendererPipelinePlugin: Send + Sync {
12 fn plugin_name(&self) -> &'static str {
13 std::any::type_name::<Self>()
14 }
15
16 fn add_asset_paths(
17 &self,
18 _asset_paths: &mut Vec<PathBuf>,
19 ) {
20 }
21
22 fn configure_render_registry(
23 &self,
24 render_registry: RenderRegistryBuilder,
25 ) -> RenderRegistryBuilder {
26 render_registry
27 }
28
29 fn initialize_static_resources(
30 &self,
31 _renderer_load_context: &RendererLoadContext,
32 _asset_manager: &mut AssetManager,
33 _asset_resource: &mut AssetResource,
34 _extract_resources: &ExtractResources,
35 _render_resources: &mut RenderResources,
36 _upload: &mut RafxTransferUpload,
37 ) -> RafxResult<()> {
38 Ok(())
39 }
40
41 fn generate_render_graph(
42 &self,
43 asset_manager: &AssetManager,
44 swapchain_image: ResourceArc<ImageViewResource>,
45 rotating_frame_index: usize,
46 main_view: RenderView,
47 extract_resources: &ExtractResources,
48 render_resources: &RenderResources,
49 ) -> RafxResult<PreparedRenderGraph>;
50
51 fn finish_frame(
52 &self,
53 _render_resources: &RenderResources,
54 ) {
55 }
56
57 fn prepare_renderer_destroy(
58 &self,
59 _render_resources: &RenderResources,
60 ) -> RafxResult<()> {
61 Ok(())
62 }
63}