summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gpu/effects/shaders.h5
-rw-r--r--src/gpu/gpu.cc7
-rw-r--r--src/tests/test_3d_render.cc3
3 files changed, 10 insertions, 5 deletions
diff --git a/src/gpu/effects/shaders.h b/src/gpu/effects/shaders.h
index a23c41c..f8e45ba 100644
--- a/src/gpu/effects/shaders.h
+++ b/src/gpu/effects/shaders.h
@@ -1,8 +1,11 @@
// This file is part of the 64k demo project.
-// It declares the WGSL shader strings.
+// It declares the WGSL shader strings and initialization function.
#pragma once
+// Initializes the ShaderComposer with snippet assets.
+void InitShaderComposer();
+
// Shader declarations (defined in shaders.cc)
extern const char* main_shader_wgsl;
extern const char* particle_compute_wgsl;
diff --git a/src/gpu/gpu.cc b/src/gpu/gpu.cc
index 7406113..8342c94 100644
--- a/src/gpu/gpu.cc
+++ b/src/gpu/gpu.cc
@@ -6,6 +6,7 @@
#include "demo_effects.h"
#include "effect.h"
#include "platform.h"
+#include "gpu/effects/shaders.h"
#include <GLFW/glfw3.h>
#include <math.h>
@@ -52,8 +53,6 @@ static WGPUSurfaceConfiguration g_config = {};
static MainSequence g_main_sequence;
-extern void InitShaderComposer();
-
// --- Helper Functions ---
GpuBuffer gpu_create_buffer(WGPUDevice device, size_t size, uint32_t usage,
@@ -373,11 +372,11 @@ void gpu_init(PlatformState* platform_state) {
g_config.alphaMode = WGPUCompositeAlphaMode_Opaque;
wgpuSurfaceConfigure(g_surface, &g_config);
+ InitShaderComposer();
+
g_main_sequence.init(g_device, g_queue, g_config.format,
platform_state->width, platform_state->height);
- InitShaderComposer();
-
LoadTimeline(g_main_sequence, g_device, g_queue, g_config.format);
}
diff --git a/src/tests/test_3d_render.cc b/src/tests/test_3d_render.cc
index e1762ed..cc7dce6 100644
--- a/src/tests/test_3d_render.cc
+++ b/src/tests/test_3d_render.cc
@@ -6,6 +6,7 @@
#include "3d/renderer.h"
#include "3d/scene.h"
#include "gpu/texture_manager.h"
+#include "gpu/effects/shaders.h"
#include "platform.h"
#include "procedural/generator.h"
#include <cmath>
@@ -211,6 +212,8 @@ int main(int argc, char** argv) {
// The test's own WGPU init sequence
init_wgpu(&platform_state);
+ InitShaderComposer();
+
g_renderer.init(g_device, g_queue, g_format);
g_renderer.resize(platform_state.width, platform_state.height);