diff options
Diffstat (limited to 'doc/CODING_STYLE.md')
| -rw-r--r-- | doc/CODING_STYLE.md | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/doc/CODING_STYLE.md b/doc/CODING_STYLE.md index 7d45027..6ef7326 100644 --- a/doc/CODING_STYLE.md +++ b/doc/CODING_STYLE.md @@ -166,6 +166,24 @@ Three-line header for all source files. ## WGSL Shader Style +### Always Use ShaderComposer (Required) + +**Rule:** Always load `.wgsl` shaders via `ShaderComposer::Get().Compose(...)`, even if the shader has no `#include` directives. Never pass the raw shader string directly to `wgpuDeviceCreateShaderModule`. + +```cpp +// Correct +const std::string src = ShaderComposer::Get().Compose({}, my_shader_wgsl); +WGPUShaderSourceWGSL wgsl_src = {}; +wgsl_src.code = str_view(src); + +// Wrong - bypasses #include resolution +wgsl_src.code = str_view(my_shader_wgsl); +``` + +**Rationale:** Shaders may gain `#include` directives later; bypassing `ShaderComposer` silently breaks them at runtime with no compile error. + +--- + ### File Header (Required) Every `.wgsl` file must start with a 2-line comment header: |
