// Copyright 2018 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include #include #include "Core/Core.h" #include "Core/System.h" #include "DolphinNoGUI/Platform.h" namespace { class PlatformHeadless : public Platform { public: void SetTitle(const std::string& title) override; void MainLoop() override; WindowSystemInfo GetWindowSystemInfo() const override; }; void PlatformHeadless::SetTitle(const std::string& title) { std::fprintf(stdout, "%s\n", title.c_str()); } void PlatformHeadless::MainLoop() { while (m_running.IsSet()) { UpdateRunningFlag(); Core::HostDispatchJobs(Core::System::GetInstance()); std::this_thread::sleep_for(std::chrono::milliseconds(100)); } } WindowSystemInfo PlatformHeadless::GetWindowSystemInfo() const { WindowSystemInfo wsi; wsi.type = WindowSystemType::Headless; wsi.display_connection = nullptr; wsi.render_window = nullptr; wsi.render_surface = nullptr; return wsi; } } // namespace std::unique_ptr Platform::CreateHeadlessPlatform() { return std::make_unique(); }