
# Objective - feature `shader_format_wesl` doesn't compile in Wasm - once fixed, example `shader_material_wesl` doesn't work in WebGL2 ## Solution - remove special path handling when loading shaders. this seems like a way to escape the asset folder which we don't want to allow, and can't compile on android or wasm, and can't work on iOS (filesystem is rooted there) - pad material so that it's 16 bits. I couldn't get conditional compilation to work in wesl for type declaration, it fails to parse - the shader renders the color `(0.0, 0.0, 0.0, 0.0)` when it's not a polka dot. this renders as black on WebGPU/metal/..., and white on WebGL2. change it to `(0.0, 0.0, 0.0, 1.0)` so that it's black everywhere
21 lines
427 B
Plaintext
21 lines
427 B
Plaintext
import super::util::make_polka_dots;
|
|
|
|
struct VertexOutput {
|
|
@builtin(position) position: vec4<f32>,
|
|
@location(2) uv: vec2<f32>,
|
|
}
|
|
|
|
struct CustomMaterial {
|
|
// Needed for 16-bit alignment on WebGL2
|
|
time: vec4<f32>,
|
|
}
|
|
|
|
@group(2) @binding(0) var<uniform> material: CustomMaterial;
|
|
|
|
@fragment
|
|
fn fragment(
|
|
mesh: VertexOutput,
|
|
) -> @location(0) vec4<f32> {
|
|
return make_polka_dots(mesh.uv, material.time.x);
|
|
}
|