From 53108a29d1e8157e3dc96676b6516f74c45da02c Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 13 Jul 2023 16:54:59 -0700 Subject: [PATCH] Add `GltfLoader::new`. (#9120) # Objective In my application, I'm manually wrapping the built-in Bevy loaders with a wrapper loader that stores some metadata before calling into the inner Bevy loader. This worked for the glTF loader in Bevy 0.10, but in Bevy 0.11 it became impossible to do this because the glTF loader became unconstructible outside Bevy due to the new private fields within it. It's now in fact impossible to get a reference to a GltfLoader at all from outside Bevy, because the only way to construct a GltfLoader is to add the GltfPlugin to an App, and the GltfPlugin only hands out references to its GltfLoader to the asset server, which provides no public access to the loaders it manages. ## Solution This commit fixes the problem by adding a public `new` method to allow manual construction of a glTF loader. --------- Co-authored-by: Carter Anderson --- crates/bevy_gltf/src/loader.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/bevy_gltf/src/loader.rs b/crates/bevy_gltf/src/loader.rs index ff6f96bd21b56..8861bd7e6726f 100644 --- a/crates/bevy_gltf/src/loader.rs +++ b/crates/bevy_gltf/src/loader.rs @@ -70,8 +70,8 @@ pub enum GltfError { /// Loads glTF files with all of their data as their corresponding bevy representations. pub struct GltfLoader { - pub(crate) supported_compressed_formats: CompressedImageFormats, - pub(crate) custom_vertex_attributes: HashMap, + pub supported_compressed_formats: CompressedImageFormats, + pub custom_vertex_attributes: HashMap, } impl AssetLoader for GltfLoader {