From 5849d29fc1c57b1727b460da37e59af64c620420 Mon Sep 17 00:00:00 2001 From: GPUCode Date: Sat, 4 Feb 2023 16:31:58 +0200 Subject: [PATCH] video_core: Move RendererBase to VideoCore --- src/android/app/src/main/jni/native.cpp | 1 + src/citra/citra.cpp | 1 + src/common/settings.cpp | 2 +- src/core/core.cpp | 2 +- src/core/core.h | 4 +++- src/video_core/renderer_base.cpp | 4 ++++ src/video_core/renderer_base.h | 7 +++++-- src/video_core/renderer_opengl/gl_stream_buffer.h | 1 + src/video_core/renderer_opengl/renderer_opengl.h | 2 +- src/video_core/renderer_vulkan/renderer_vulkan.h | 2 +- src/video_core/video_core.h | 3 +-- 11 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 2fb68e8ca..6f515dfdc 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -44,6 +44,7 @@ #include "jni/ndk_motion.h" #include "video_core/renderer_base.h" #include "video_core/renderer_opengl/texture_filters/texture_filterer.h" +#include "video_core/video_core.h" namespace { diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp index adbb26517..65d9dc7be 100644 --- a/src/citra/citra.cpp +++ b/src/citra/citra.cpp @@ -31,6 +31,7 @@ #include "input_common/main.h" #include "network/network.h" #include "video_core/renderer_base.h" +#include "video_core/video_core.h" #undef _UNICODE #include diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 000725bd4..c0ffa3cae 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -50,7 +50,7 @@ void Apply() { #endif if (VideoCore::g_renderer) { - RendererSettings& settings = VideoCore::g_renderer->Settings(); + auto& settings = VideoCore::g_renderer->Settings(); settings.bg_color_update_requested = true; settings.sampler_update_requested = true; settings.shader_update_requested = true; diff --git a/src/core/core.cpp b/src/core/core.cpp index c369611e2..99f3d22d5 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -448,7 +448,7 @@ System::ResultStatus System::Init(Frontend::EmuWindow& emu_window, return ResultStatus::Success; } -RendererBase& System::Renderer() { +VideoCore::RendererBase& System::Renderer() { return *VideoCore::g_renderer; } diff --git a/src/core/core.h b/src/core/core.h index cb4be20fe..218b7e391 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -57,7 +57,9 @@ namespace VideoDumper { class Backend; } +namespace VideoCore { class RendererBase; +} namespace Core { @@ -208,7 +210,7 @@ public: return *dsp_core; } - [[nodiscard]] RendererBase& Renderer(); + [[nodiscard]] VideoCore::RendererBase& Renderer(); /** * Gets a reference to the service manager. diff --git a/src/video_core/renderer_base.cpp b/src/video_core/renderer_base.cpp index 52fc8d4a6..996a1027b 100644 --- a/src/video_core/renderer_base.cpp +++ b/src/video_core/renderer_base.cpp @@ -6,6 +6,8 @@ #include "core/frontend/emu_window.h" #include "video_core/renderer_base.h" +namespace VideoCore { + RendererBase::RendererBase(Frontend::EmuWindow& window, Frontend::EmuWindow* secondary_window_) : render_window{window}, secondary_window{secondary_window_} {} @@ -41,3 +43,5 @@ void RendererBase::RequestScreenshot(void* data, std::function callback, settings.screenshot_framebuffer_layout = layout; settings.screenshot_requested = true; } + +} // namespace VideoCore diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h index 852315e05..9f2a346f6 100644 --- a/src/video_core/renderer_base.h +++ b/src/video_core/renderer_base.h @@ -5,14 +5,15 @@ #pragma once #include -#include "common/common_types.h" +#include "core/frontend/framebuffer_layout.h" #include "video_core/rasterizer_interface.h" -#include "video_core/video_core.h" namespace Frontend { class EmuWindow; } +namespace VideoCore { + struct RendererSettings { // Screenshot std::atomic_bool screenshot_requested{false}; @@ -102,3 +103,5 @@ protected: f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer int m_current_frame = 0; ///< Current frame, should be set by the renderer }; + +} // namespace VideoCore diff --git a/src/video_core/renderer_opengl/gl_stream_buffer.h b/src/video_core/renderer_opengl/gl_stream_buffer.h index 8dc2ebefb..78bc63496 100644 --- a/src/video_core/renderer_opengl/gl_stream_buffer.h +++ b/src/video_core/renderer_opengl/gl_stream_buffer.h @@ -3,6 +3,7 @@ // Refer to the license.txt file included. #pragma once + #include #include "video_core/renderer_opengl/gl_resource_manager.h" diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index 379fb6438..8c745b240 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h @@ -58,7 +58,7 @@ struct ScreenInfo { class RasterizerOpenGL; -class RendererOpenGL : public RendererBase { +class RendererOpenGL : public VideoCore::RendererBase { public: explicit RendererOpenGL(Memory::MemorySystem& memory, Frontend::EmuWindow& window, Frontend::EmuWindow* secondary_window); diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h index 852594da2..e92880c62 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.h +++ b/src/video_core/renderer_vulkan/renderer_vulkan.h @@ -56,7 +56,7 @@ struct ScreenInfo { class RasterizerVulkan; -class RendererVulkan : public RendererBase { +class RendererVulkan : public VideoCore::RendererBase { static constexpr std::size_t PRESENT_PIPELINES = 3; public: diff --git a/src/video_core/video_core.h b/src/video_core/video_core.h index c76b6f414..bcb0f90b6 100644 --- a/src/video_core/video_core.h +++ b/src/video_core/video_core.h @@ -14,8 +14,6 @@ namespace Frontend { class EmuWindow; } -class RendererBase; - namespace Memory { class MemorySystem; } @@ -25,6 +23,7 @@ class MemorySystem; namespace VideoCore { +class RendererBase; extern std::unique_ptr g_renderer; ///< Renderer plugin // TODO: Wrap these in a user settings struct along with any other graphics settings (often set from