Skip to content

Commit 12f30f5

Browse files
Shaders can now have #else ifdef chains (#7431)
# Objective Currently, shaders may only have syntax such as ```wgsl #ifdef FOO // foo code #else #ifdef BAR // bar code #else #ifdef BAZ // baz code #else // fallback code #endif #endif #endif ``` This is hard to read and follow. Add a way to allow writing `#else ifdef DEFINE` to reduce the number of scopes introduced and to increase readability. ## Solution Refactor the current preprocessing a bit and add logic to allow `#else ifdef DEFINE`. This includes per-scope tracking of whether a branch has been accepted. Add a few tests for this feature. With these changes we may now write: ```wgsl #ifdef FOO // foo code #else ifdef BAR // bar code #else ifdef BAZ // baz code #else // fallback code #endif ``` instead. --- ## Changelog - Add `#else ifdef` to shader preprocessing.
1 parent 3af6179 commit 12f30f5

File tree

1 file changed

+493
-12
lines changed
  • crates/bevy_render/src/render_resource

1 file changed

+493
-12
lines changed

0 commit comments

Comments
 (0)