summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/CODING_STYLE.md18
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: