#pragma once

#include <Windows.h>

#include <atomic>

#include "platform_windows/windows_vr_shell.h"

namespace pp::platform::windows {

void mark_lifecycle_running() noexcept;
void mark_lifecycle_stopped() noexcept;
[[nodiscard]] bool lifecycle_is_running() noexcept;
[[nodiscard]] std::atomic<int>& retained_lifecycle_running_state() noexcept;
void shutdown_bound_lifecycle(VrShellState& vr);
void shutdown_bound_lifecycle_and_quit(VrShellState& vr);
[[nodiscard]] bool start_bound_lifecycle_vr(VrShellState& vr, bool sandboxed);
void stop_bound_lifecycle_vr(VrShellState& vr);

}
