![]() # 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. |
||
---|---|---|
.. | ||
bind_group_layout.rs | ||
bind_group.rs | ||
buffer_vec.rs | ||
buffer.rs | ||
mod.rs | ||
pipeline_cache.rs | ||
pipeline_specializer.rs | ||
pipeline.rs | ||
resource_macros.rs | ||
shader.rs | ||
storage_buffer.rs | ||
texture.rs | ||
uniform_buffer.rs |