diff options
author | bunnei <bunneidev@gmail.com> | 2022-12-03 11:23:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-03 11:23:25 -0800 |
commit | f77cc6c41272265b08247aa1e2614c050acccc67 (patch) | |
tree | 8970dae5c9fce66f051c8bc0fc7faaa4592cadee /src/yuzu/bootmanager.cpp | |
parent | 75e16547f8977e8b2b07723b04bcc3cbe999d566 (diff) | |
parent | 89dd7dc1802cc53e828cb71c1f3e2bc0879459ce (diff) |
Merge pull request #9344 from liamwhite/null
video_core: add null backend
Diffstat (limited to 'src/yuzu/bootmanager.cpp')
-rw-r--r-- | src/yuzu/bootmanager.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp index a6658a26f..5b5b6fed8 100644 --- a/src/yuzu/bootmanager.cpp +++ b/src/yuzu/bootmanager.cpp @@ -237,8 +237,7 @@ private: GRenderWindow* render_window; }; -class OpenGLRenderWidget : public RenderWidget { -public: +struct OpenGLRenderWidget : public RenderWidget { explicit OpenGLRenderWidget(GRenderWindow* parent) : RenderWidget(parent) { windowHandle()->setSurfaceType(QWindow::OpenGLSurface); } @@ -251,13 +250,16 @@ private: std::unique_ptr<Core::Frontend::GraphicsContext> context; }; -class VulkanRenderWidget : public RenderWidget { -public: +struct VulkanRenderWidget : public RenderWidget { explicit VulkanRenderWidget(GRenderWindow* parent) : RenderWidget(parent) { windowHandle()->setSurfaceType(QWindow::VulkanSurface); } }; +struct NullRenderWidget : public RenderWidget { + explicit NullRenderWidget(GRenderWindow* parent) : RenderWidget(parent) {} +}; + static Core::Frontend::WindowSystemType GetWindowSystemType() { // Determine WSI type based on Qt platform. QString platform_name = QGuiApplication::platformName(); @@ -878,6 +880,9 @@ bool GRenderWindow::InitRenderTarget() { return false; } break; + case Settings::RendererBackend::Null: + InitializeNull(); + break; } // Update the Window System information with the new render target @@ -974,6 +979,11 @@ bool GRenderWindow::InitializeVulkan() { return true; } +void GRenderWindow::InitializeNull() { + child_widget = new NullRenderWidget(this); + main_context = std::make_unique<DummyContext>(); +} + bool GRenderWindow::LoadOpenGL() { auto context = CreateSharedContext(); auto scope = context->Acquire(); |