From 75b569a520237a8138aead9885a8b538843ae4fd Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 5 Apr 2024 14:58:21 +0200 Subject: [PATCH] Add wasm32 workaround for missing `pipelined_rendering` The `pipelined_rendering` export is no longer available in Bevy since version 0.12 in wasm32 builds; it can no longer be used to select the right subapp. Add a dummy version of the `AppLabel` that targets the `pipelined_rendering` subapp. Using a dummy app label allows to keep the same code to get the right subapp to apply the framepace resources and systems. --- src/lib.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index a37600e..39145e8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -30,10 +30,12 @@ use bevy_app::prelude::*; use bevy_ecs::prelude::*; use bevy_reflect::prelude::*; -use bevy_render::{pipelined_rendering::RenderExtractApp, Render, RenderApp, RenderSet}; +use bevy_render::{Render, RenderApp, RenderSet}; use bevy_utils::Instant; use bevy_window::prelude::*; +#[cfg(not(target_arch = "wasm32"))] +use bevy_render::pipelined_rendering::RenderExtractApp; #[cfg(not(target_arch = "wasm32"))] use bevy_winit::WinitWindows; @@ -45,6 +47,11 @@ use std::{ #[cfg(feature = "framepace_debug")] pub mod debug; +/// A dummy label for the subapp of the rendered pipeline that does not exist in wasm32 +#[cfg(target_arch = "wasm32")] +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, bevy_app::AppLabel)] +struct RenderExtractApp; + /// Adds framepacing and framelimiting functionality to your [`App`]. #[derive(Debug, Clone, Component)] pub struct FramepacePlugin;