diff options
Diffstat (limited to 'src/gpu/gpu.h')
| -rw-r--r-- | src/gpu/gpu.h | 30 |
1 files changed, 29 insertions, 1 deletions
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 <webgpu.h> +#include <cstring> // For strlen + +#if defined(DEMO_CROSS_COMPILE_WIN32) +// Windows (MinGW) using wgpu-native v0.19.4.1 +#include <webgpu/webgpu.h> +#include <webgpu/wgpu.h> +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 <webgpu.h> +#include <wgpu.h> +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); |
