summaryrefslogtreecommitdiff
path: root/src/gpu/gpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/gpu.h')
-rw-r--r--src/gpu/gpu.h30
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);