From acc29ec719814d4814444d26cca023c08307c316 Mon Sep 17 00:00:00 2001 From: Ryan Lee Date: Wed, 23 Dec 2020 17:53:02 -0500 Subject: [PATCH] Add bmp as a supported texture format (#1081) --- Cargo.toml | 2 +- crates/bevy_internal/Cargo.toml | 1 + crates/bevy_render/Cargo.toml | 1 + .../src/texture/image_texture_loader.rs | 16 +++++++++++++--- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 207cd12341165..9a6c0fc5ad88d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,6 +58,7 @@ png = ["bevy_internal/png"] dds = ["bevy_internal/dds"] tga = ["bevy_internal/tga"] jpeg = ["bevy_internal/jpeg"] +bmp = ["bevy_internal/bmp"] # Audio format support (MP3 is enabled by default) flac = ["bevy_internal/flac"] @@ -382,4 +383,3 @@ icon = "@mipmap/ic_launcher" build_targets = ["aarch64-linux-android", "armv7-linux-androideabi"] min_sdk_version = 16 target_sdk_version = 29 - diff --git a/crates/bevy_internal/Cargo.toml b/crates/bevy_internal/Cargo.toml index b2ee4dffb293f..82baa712cd4c4 100644 --- a/crates/bevy_internal/Cargo.toml +++ b/crates/bevy_internal/Cargo.toml @@ -24,6 +24,7 @@ png = ["bevy_render/png"] dds = ["bevy_render/dds"] tga = ["bevy_render/tga"] jpeg = ["bevy_render/jpeg"] +bmp = ["bevy_render/bmp"] # Audio format support (MP3 is enabled by default) flac = ["bevy_audio/flac"] diff --git a/crates/bevy_render/Cargo.toml b/crates/bevy_render/Cargo.toml index 6321bee69f814..d33fe3b982e9a 100644 --- a/crates/bevy_render/Cargo.toml +++ b/crates/bevy_render/Cargo.toml @@ -56,3 +56,4 @@ hdr = ["image/hdr"] dds = ["image/dds"] tga = ["image/tga"] jpeg = ["image/jpeg"] +bmp = ["image/bmp"] diff --git a/crates/bevy_render/src/texture/image_texture_loader.rs b/crates/bevy_render/src/texture/image_texture_loader.rs index f866a0751843b..79fdceb9b0c84 100644 --- a/crates/bevy_render/src/texture/image_texture_loader.rs +++ b/crates/bevy_render/src/texture/image_texture_loader.rs @@ -4,12 +4,10 @@ use bevy_asset::{AssetLoader, LoadContext, LoadedAsset}; use bevy_utils::BoxedFuture; /// Loader for images that can be read by the `image` crate. -/// -/// Reads only PNG images for now. #[derive(Clone, Default)] pub struct ImageTextureLoader; -const FILE_EXTENSIONS: &[&str] = &["png", "dds", "tga", "jpg", "jpeg"]; +const FILE_EXTENSIONS: &[&str] = &["png", "dds", "tga", "jpg", "jpeg", "bmp"]; impl AssetLoader for ImageTextureLoader { fn load<'a>( @@ -163,3 +161,15 @@ impl AssetLoader for ImageTextureLoader { FILE_EXTENSIONS } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_supported_file_extensions() { + for ext in FILE_EXTENSIONS { + assert!(image::ImageFormat::from_extension(ext).is_some()) + } + } +}