summaryrefslogtreecommitdiff
path: root/src/gpu/effects
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/effects')
-rw-r--r--src/gpu/effects/flash_effect.cc2
-rw-r--r--src/gpu/effects/post_process_helper.h13
-rw-r--r--src/gpu/effects/shader_composer.cc6
3 files changed, 13 insertions, 8 deletions
diff --git a/src/gpu/effects/flash_effect.cc b/src/gpu/effects/flash_effect.cc
index 4357c34..e53cbce 100644
--- a/src/gpu/effects/flash_effect.cc
+++ b/src/gpu/effects/flash_effect.cc
@@ -77,7 +77,7 @@ void FlashEffect::render(WGPURenderPassEncoder pass,
// Animate color based on time and beat
const float r = params_.color[0] * (0.5f + 0.5f * sinf(uniforms.time * 0.5f));
const float g = params_.color[1] * (0.5f + 0.5f * cosf(uniforms.time * 0.7f));
- const float b = params_.color[2] * (1.0f + 0.3f * uniforms.beat);
+ const float b = params_.color[2] * (1.0f + 0.3f * uniforms.beat_phase);
// Update uniforms with computed (animated) values
const FlashUniforms u = {
diff --git a/src/gpu/effects/post_process_helper.h b/src/gpu/effects/post_process_helper.h
index 23cde0e..1c649e7 100644
--- a/src/gpu/effects/post_process_helper.h
+++ b/src/gpu/effects/post_process_helper.h
@@ -8,12 +8,13 @@
// Uniform data common to all post-processing effects
struct CommonPostProcessUniforms {
- vec2 resolution;
- float _pad[2]; // Padding for 16-byte alignment
- float aspect_ratio;
- float time;
- float beat;
- float audio_intensity;
+ vec2 resolution; // Screen dimensions
+ float aspect_ratio; // Width/height ratio
+ float time; // Physical time in seconds (unaffected by tempo)
+ float beat_time; // Musical time in beats (absolute, tempo-scaled)
+ float beat_phase; // Fractional beat (0.0-1.0 within current beat)
+ float audio_intensity;// Audio peak for beat sync
+ float _pad; // Padding for 16-byte alignment
};
static_assert(sizeof(CommonPostProcessUniforms) == 32,
"CommonPostProcessUniforms must be 32 bytes for WGSL alignment");
diff --git a/src/gpu/effects/shader_composer.cc b/src/gpu/effects/shader_composer.cc
index fe3ad74..9234b7a 100644
--- a/src/gpu/effects/shader_composer.cc
+++ b/src/gpu/effects/shader_composer.cc
@@ -89,6 +89,9 @@ ShaderComposer::Compose(const std::vector<std::string>& dependencies,
void ShaderComposer::VerifyIncludes() const {
#if !defined(STRIP_ALL)
+ // Known placeholders that get substituted at composition time
+ std::set<std::string> known_placeholders = {"render/scene_query_mode"};
+
std::set<std::string> missing;
for (const auto& [name, code] : snippets_) {
std::istringstream stream(code);
@@ -99,7 +102,8 @@ void ShaderComposer::VerifyIncludes() const {
size_t end = line.find('"', start + 1);
if (start != std::string::npos && end != std::string::npos) {
std::string included = line.substr(start + 1, end - start - 1);
- if (snippets_.find(included) == snippets_.end()) {
+ if (snippets_.find(included) == snippets_.end() &&
+ known_placeholders.find(included) == known_placeholders.end()) {
missing.insert(included);
}
}