From 98d21d244bb92a1a8d35b1dff35d9c10bdcab19a Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Wed, 24 Apr 2024 21:05:55 -0400 Subject: Render Texture Extraction --- src/lib.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/lib.rs (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..9c6fb1b --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,41 @@ +use bevy::{prelude::*, render::{render_asset::RenderAssetPlugin, extract_component::ExtractComponentPlugin, RenderApp, Render, RenderSet, render_graph::RenderGraph, graph::CameraDriverLabel}}; +use components::FramebufferExtractDestination; +use nodes::{FramebufferExtractNode, FramebufferExtractLabel}; +use render_assets::FramebufferExtractSource; + +pub mod components; +mod systems; +mod nodes; +pub mod render_assets; + + +pub enum FramebufferExtractSet { + Set +} + +pub struct FramebufferExtractPlugin; + +impl Plugin for FramebufferExtractPlugin { + fn build(&self, app: &mut App) { + app + .register_type::() + .init_asset::() + .register_asset_reflect::() + .add_plugins(( + RenderAssetPlugin::::default(), + ExtractComponentPlugin::::default(), + )); + + let render_app = app.sub_app_mut(RenderApp); + render_app + .add_systems( + Render, + systems::extract_framebuffers + .after(RenderSet::Render) + .before(RenderSet::Cleanup), + ); + let mut graph = render_app.world.resource_mut::(); + graph.add_node(FramebufferExtractLabel, FramebufferExtractNode); + graph.add_node_edge(CameraDriverLabel, FramebufferExtractLabel); + } +} -- cgit v1.2.3