diff --git a/crates/bevy_audio/src/audio_source.rs b/crates/bevy_audio/src/audio_source.rs index 087640afc4..8b982cdfb5 100644 --- a/crates/bevy_audio/src/audio_source.rs +++ b/crates/bevy_audio/src/audio_source.rs @@ -30,7 +30,16 @@ impl AssetLoader for Mp3Loader { } fn extensions(&self) -> &[&str] { - &["mp3", "flac", "wav", "ogg"] + &[ + #[cfg(feature = "mp3")] + "mp3", + #[cfg(feature = "flac")] + "flac", + #[cfg(feature = "wav")] + "wav", + #[cfg(feature = "vorbis")] + "ogg", + ] } } diff --git a/crates/bevy_audio/src/lib.rs b/crates/bevy_audio/src/lib.rs index f2be70621b..eb9f148460 100644 --- a/crates/bevy_audio/src/lib.rs +++ b/crates/bevy_audio/src/lib.rs @@ -23,11 +23,13 @@ impl Plugin for AudioPlugin { fn build(&self, app: &mut AppBuilder) { app.init_non_send_resource::>() .add_asset::() - .init_asset_loader::() .init_resource::>() .add_system_to_stage( CoreStage::PostUpdate, play_queued_audio_system::.exclusive_system(), ); + + #[cfg(any(feature = "mp3", feature = "flac", feature = "wav", feature = "vorbis"))] + app.init_asset_loader::(); } } diff --git a/crates/bevy_render/src/lib.rs b/crates/bevy_render/src/lib.rs index 0c6bc72019..0bd7c77f58 100644 --- a/crates/bevy_render/src/lib.rs +++ b/crates/bevy_render/src/lib.rs @@ -58,7 +58,13 @@ use renderer::{AssetRenderResourceBindings, RenderResourceBindings, RenderResour use shader::ShaderLoader; #[cfg(feature = "hdr")] use texture::HdrTextureLoader; -#[cfg(feature = "png")] +#[cfg(any( + feature = "png", + feature = "dds", + feature = "tga", + feature = "jpeg", + feature = "bmp" +))] use texture::ImageTextureLoader; #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemLabel)] @@ -97,7 +103,13 @@ impl Default for RenderPlugin { impl Plugin for RenderPlugin { fn build(&self, app: &mut AppBuilder) { - #[cfg(feature = "png")] + #[cfg(any( + feature = "png", + feature = "dds", + feature = "tga", + feature = "jpeg", + feature = "bmp" + ))] { app.init_asset_loader::(); } diff --git a/crates/bevy_render/src/texture/image_texture_loader.rs b/crates/bevy_render/src/texture/image_texture_loader.rs index 1525c6330e..a0527020de 100644 --- a/crates/bevy_render/src/texture/image_texture_loader.rs +++ b/crates/bevy_render/src/texture/image_texture_loader.rs @@ -8,7 +8,20 @@ use thiserror::Error; #[derive(Clone, Default)] pub struct ImageTextureLoader; -const FILE_EXTENSIONS: &[&str] = &["png", "dds", "tga", "jpg", "jpeg", "bmp"]; +const FILE_EXTENSIONS: &[&str] = &[ + #[cfg(feature = "png")] + "png", + #[cfg(feature = "dds")] + "dds", + #[cfg(feature = "tga")] + "tga", + #[cfg(feature = "jpeg")] + "jpg", + #[cfg(feature = "jpeg")] + "jpeg", + #[cfg(feature = "bmp")] + "bmp", +]; impl AssetLoader for ImageTextureLoader { fn load<'a>(