// Headless platform - time simulation without window // Workspace: demo (shared across all workspaces) #if defined(DEMO_HEADLESS) #include "platform.h" #include "stub_types.h" #include static double g_virtual_time = 0.0; static bool g_should_close = false; static const double FRAME_TIME = 1.0 / 60.0; PlatformState platform_init(bool fullscreen, int width, int height) { (void)fullscreen; g_virtual_time = 0.0; g_should_close = false; printf("[headless] Platform initialized (simulated %dx%d)\n", width, height); PlatformState state = {}; state.width = width; state.height = height; state.aspect_ratio = (float)width / (float)height; state.window = nullptr; state.time = 0.0; state.is_fullscreen = false; return state; } void platform_shutdown(PlatformState* state) { (void)state; printf("[headless] Platform shutdown\n"); } void platform_poll(PlatformState* state) { (void)state; g_virtual_time += FRAME_TIME; } bool platform_should_close(PlatformState* state) { (void)state; return g_should_close; } void platform_toggle_fullscreen(PlatformState* state) { (void)state; } WGPUSurface platform_create_wgpu_surface(WGPUInstance instance, PlatformState* state) { (void)instance; (void)state; return nullptr; } double platform_get_time() { return g_virtual_time; } #endif // DEMO_HEADLESS