summaryrefslogtreecommitdiff
path: root/engine/src/rendering/shader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/rendering/shader.rs')
-rw-r--r--engine/src/rendering/shader.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/engine/src/rendering/shader.rs b/engine/src/rendering/shader.rs
index 961bea2..6b68e1e 100644
--- a/engine/src/rendering/shader.rs
+++ b/engine/src/rendering/shader.rs
@@ -1016,14 +1016,27 @@ pub(super) fn prepare(collector: &mut crate::ecs::extension::Collector<'_>)
);
}
-fn initialize(mut assets: Single<Assets>)
+fn initialize(mut assets: Single<Assets>) -> Result<(), crate::Error>
{
+ let assets = assets.get_mut()?;
+
assets.set_importer::<_, _>(["slang"], import_slang_asset);
+
+ Ok(())
}
#[tracing::instrument(skip_all)]
-fn load_modules(mut context: Single<Context>, assets: Single<Assets>)
+fn load_modules(
+ mut context: Single<Context>,
+ assets: Single<Assets>,
+) -> Result<(), crate::Error>
{
+ let Ok(context) = context.get_mut() else {
+ unreachable!();
+ };
+
+ let assets = assets.get()?;
+
for AssetEvent::Stored(asset_id, asset_label) in assets.events().last_tick_events() {
let asset_handle = AssetHandle::<ModuleSource>::from_id(*asset_id);
@@ -1124,6 +1137,8 @@ fn load_modules(mut context: Single<Context>, assets: Single<Assets>)
);
}
}
+
+ Ok(())
}
fn load_module(