remove autoload

This commit is contained in:
Matthew Deville 2025-08-31 15:32:27 +02:00
parent ca040e96ec
commit 999e86224a
3 changed files with 10 additions and 32 deletions

View file

@ -5,9 +5,14 @@
@fragment @fragment
fn fragment(mesh: VertexOutput) -> @location(0) vec4<f32> { fn fragment(mesh: VertexOutput) -> @location(0) vec4<f32> {
let bottom = vec3<f32>(1.0, 0.8, 0.2); // warm var uv = mesh.uv * 2 - 1;
let top = vec3<f32>(0.2, 0.6, 1.0); // cool uv.x = uv.x * (u_resolution.x / u_resolution.y);
let color = mix(bottom, top, mesh.uv.y); let red = vec3<f32>(1, 0, 0);
return vec4<f32>(color, 1.0); let blue = vec3<f32>(0, 0, 1.0);
let t = step(0.5, length(uv));
let color = mix(red, blue, t);
return vec4<f32>(color, 1);
} }

View file

@ -17,7 +17,6 @@ fn main() {
Update, Update,
( (
material::update_material_time, material::update_material_time,
material::shader_hot_reload,
systems::resize_fullscreen_quad, systems::resize_fullscreen_quad,
systems::exit_app.run_if(input_just_pressed(KeyCode::Escape)), systems::exit_app.run_if(input_just_pressed(KeyCode::Escape)),
systems::toggle_fullscreen.run_if(input_just_pressed(KeyCode::F11)), systems::toggle_fullscreen.run_if(input_just_pressed(KeyCode::F11)),

View file

@ -1,8 +1,7 @@
use bevy::{ use bevy::{
asset::AssetEvent,
prelude::*, prelude::*,
reflect::TypePath, reflect::TypePath,
render::render_resource::{AsBindGroup, Shader, ShaderRef}, render::render_resource::{AsBindGroup, ShaderRef},
sprite::{AlphaMode2d, Material2d}, sprite::{AlphaMode2d, Material2d},
}; };
@ -24,31 +23,6 @@ pub fn update_material_time(mut materials: ResMut<Assets<CustomMaterial>>, time:
} }
} }
/// Listen for shader asset changes and force materials to update so the new shader is used.
pub fn shader_hot_reload(
mut shader_events: EventReader<AssetEvent<Shader>>,
mut materials: ResMut<Assets<CustomMaterial>>,
) {
let mut reload_needed = false;
for event in shader_events.read() {
match event {
AssetEvent::Modified { .. } => {
reload_needed = true;
}
_ => {}
}
}
if reload_needed {
// iterate all materials and 'touch' them so Bevy updates bindings using the recompiled shader
for (_handle, material) in materials.iter_mut() {
// assign to itself to mark changed
let cloned = material.clone();
*material = cloned;
}
}
}
impl Material2d for CustomMaterial { impl Material2d for CustomMaterial {
fn fragment_shader() -> ShaderRef { fn fragment_shader() -> ShaderRef {
DEFAULT_SHADER_PATH.into() DEFAULT_SHADER_PATH.into()