From a958c6ca8dd48f642570037df127a4b23c984d82 Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 31 Jan 2026 17:05:15 +0100 Subject: feat: Multi-pass rendering architecture and effect stubs Implements a post-processing pipeline using offscreen framebuffers. Adds stubs for MovingEllipse, ParticleSpray, GaussianBlur, Solarize, Distort, and ChromaAberration effects. Updates MainSequence to orchestrate the scene pass and post-processing chain. --- src/gpu/gpu.h | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/gpu/gpu.h') diff --git a/src/gpu/gpu.h b/src/gpu/gpu.h index b0b08c9..dd4fbd7 100644 --- a/src/gpu/gpu.h +++ b/src/gpu/gpu.h @@ -6,6 +6,34 @@ #include +#include // For strlen + +#if defined(DEMO_CROSS_COMPILE_WIN32) +// Windows (MinGW) using wgpu-native v0.19.4.1 +#include +#include +using WGPUStringView = const char *; +static inline const char *str_view(const char *str) { return str; } +static inline const char *label_view(const char *str) { return str; } +#else +// Native (macOS/Linux) using newer wgpu-native +#include +#include +static inline WGPUStringView str_view(const char *str) { + if (!str) return {nullptr, 0}; + return {str, strlen(str)}; +} +static inline WGPUStringView label_view(const char *str) { +#ifndef STRIP_ALL + if (!str) return {nullptr, 0}; + return {str, strlen(str)}; +#else + (void)str; + return {nullptr, 0}; +#endif +} +#endif + struct GLFWwindow; // Basic wrapper for WebGPU buffers @@ -31,7 +59,7 @@ struct RenderPass { uint32_t instance_count; }; -void gpu_init(GLFWwindow *window); +void gpu_init(GLFWwindow *window, int width, int height); void gpu_draw(float audio_peak, float aspect_ratio, float time, float beat); #ifndef STRIP_ALL void gpu_simulate_until(float time); -- cgit v1.2.3