wde_renderer/assets/bindings/
placeholder_texture.rs

1use crate::prelude::*;
2use bevy::prelude::*;
3
4/// Placeholder texture used while real texture handles finish loading.
5#[derive(Resource)]
6pub struct PlaceholderTexture(pub Handle<Texture>);
7pub(crate) struct DummyTexturePlugin;
8impl Plugin for DummyTexturePlugin {
9    fn build(&self, _app: &mut App) {}
10    fn finish(&self, app: &mut App) {
11        // Load the dummy texture
12        let assets_server = app.world().get_resource::<AssetServer>().unwrap();
13        let dummy_texture = assets_server.load_with_settings(
14            "core/models/core/dummy_texture.png",
15            |settings: &mut TextureLoaderSettings| {
16                settings.label = "dummy-texture".to_string();
17                settings.format = TextureFormat::R8Unorm;
18                settings.usages = TextureUsages::TEXTURE_BINDING;
19            }
20        );
21        app.get_sub_app_mut(RenderApp)
22            .unwrap()
23            .insert_resource(PlaceholderTexture(dummy_texture));
24    }
25}