From 29c32828ffc355e536d25991cc9f4f2217ec90b0 Mon Sep 17 00:00:00 2001 From: NiseVoid <nisevoid@gmail.com> Date: Mon, 10 Jul 2023 17:23:01 +0200 Subject: [PATCH] Fix custom material plugin --- assets/rainbow_shader.wgsl | 6 ++--- src/render/material/plugin.rs | 44 ++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/assets/rainbow_shader.wgsl b/assets/rainbow_shader.wgsl index ee2238b..fc10bb1 100644 --- a/assets/rainbow_shader.wgsl +++ b/assets/rainbow_shader.wgsl @@ -1,6 +1,6 @@ -#import kayak_ui::bindings -#import kayak_ui::sample_quad -#import kayak_ui::vertex_output +#import kayak_ui::bindings globals +#import kayak_ui::sample_quad sample_quad +#import kayak_ui::vertex_output VertexOutput fn hsv2rgb(c: vec3<f32>) -> vec3<f32> { diff --git a/src/render/material/plugin.rs b/src/render/material/plugin.rs index 897a4d9..67a994c 100644 --- a/src/render/material/plugin.rs +++ b/src/render/material/plugin.rs @@ -37,26 +37,28 @@ where app.add_asset::<M>() .add_plugins(ExtractComponentPlugin::<Handle<M>>::extract_visible()); - if let Ok(render_app) = app.get_sub_app_mut(RenderApp) { - render_app - .add_render_command::<TransparentUI, DrawMaterialUI<M>>() - .add_render_command::<TransparentOpacityUI, DrawMaterialUITransparent<M>>() - .init_resource::<MaterialUIPipeline<M>>() - .init_resource::<ExtractedMaterialsUI<M>>() - .init_resource::<RenderMaterialsUI<M>>() - .init_resource::<SpecializedRenderPipelines<MaterialUIPipeline<M>>>() - .add_systems(ExtractSchedule, extract_materials_ui::<M>) - .add_systems( - Render, - ( - prepare_materials_ui::<M> - .in_set(RenderSet::Prepare) - .after(PrepareAssetSet::PreAssetPrepare), - queue_material_ui_quads::<M> - .in_set(RenderSet::Queue) - .after(crate::render::unified::pipeline::queue_quads), - ), - ); - } + app.sub_app_mut(RenderApp) + .add_render_command::<TransparentUI, DrawMaterialUI<M>>() + .add_render_command::<TransparentOpacityUI, DrawMaterialUITransparent<M>>() + .init_resource::<ExtractedMaterialsUI<M>>() + .init_resource::<RenderMaterialsUI<M>>() + .init_resource::<SpecializedRenderPipelines<MaterialUIPipeline<M>>>() + .add_systems(ExtractSchedule, extract_materials_ui::<M>) + .add_systems( + Render, + ( + prepare_materials_ui::<M> + .in_set(RenderSet::Prepare) + .after(PrepareAssetSet::PreAssetPrepare), + queue_material_ui_quads::<M> + .in_set(RenderSet::Queue) + .after(crate::render::unified::pipeline::queue_quads), + ), + ); + } + + fn finish(&self, app: &mut App) { + app.sub_app_mut(RenderApp) + .init_resource::<MaterialUIPipeline<M>>(); } } -- GitLab