diff options
| author | Connor McLaughlin <stenzek@gmail.com> | 2019-02-16 14:15:00 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-16 14:15:00 +1000 |
| commit | b5c3881fe703287c4f883ca42a3b931bb6594854 (patch) | |
| tree | 29daf45582fa2860c76127271457675184341900 /Source/Core/DolphinNoGUI/PlatformHeadless.cpp | |
| parent | c41f32bcf8fe0c04d54d3541df210a604b2399d1 (diff) | |
| parent | eabde77892faf4408481f685f2fbf1b348232d5f (diff) | |
Merge pull request #7512 from stenzek/runtime-headless
DolphinNoGUI: Runtime selection of platform
Diffstat (limited to 'Source/Core/DolphinNoGUI/PlatformHeadless.cpp')
| -rw-r--r-- | Source/Core/DolphinNoGUI/PlatformHeadless.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/Core/DolphinNoGUI/PlatformHeadless.cpp b/Source/Core/DolphinNoGUI/PlatformHeadless.cpp new file mode 100644 index 0000000000..b848492152 --- /dev/null +++ b/Source/Core/DolphinNoGUI/PlatformHeadless.cpp @@ -0,0 +1,50 @@ +// Copyright 2018 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#include <cstdio> +#include <thread> +#include "Core/Core.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(); + 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_surface = nullptr; + return wsi; +} + +} // namespace + +std::unique_ptr<Platform> Platform::CreateHeadlessPlatform() +{ + return std::make_unique<PlatformHeadless>(); +} |
