summaryrefslogtreecommitdiff
path: root/src/core/core.h
diff options
context:
space:
mode:
authorGravatar Lioncash2018-08-31 12:21:34 -0400
committerGravatar Lioncash2018-08-31 16:30:14 -0400
commit4a587b81b285bcd41246329e89591be7cfe37c8a (patch)
tree8eda46d4aac083d23a52223e1a3fc46bc6690a6c /src/core/core.h
parentMerge pull request #1205 from bunnei/improve-rasterizer-cache-2 (diff)
downloadyuzu-4a587b81b285bcd41246329e89591be7cfe37c8a.tar.gz
yuzu-4a587b81b285bcd41246329e89591be7cfe37c8a.tar.xz
yuzu-4a587b81b285bcd41246329e89591be7cfe37c8a.zip
core/core: Replace includes with forward declarations where applicable
The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers.
Diffstat (limited to 'src/core/core.h')
-rw-r--r--src/core/core.h56
1 files changed, 35 insertions, 21 deletions
diff --git a/src/core/core.h b/src/core/core.h
index 984e8f94c..eee1fecc1 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -4,41 +4,55 @@
4 4
5#pragma once 5#pragma once
6 6
7#include <array> 7#include <cstddef>
8#include <map>
9#include <memory> 8#include <memory>
10#include <string> 9#include <string>
11#include <thread> 10
12#include "common/common_types.h" 11#include "common/common_types.h"
13#include "core/arm/exclusive_monitor.h"
14#include "core/core_cpu.h"
15#include "core/hle/kernel/kernel.h"
16#include "core/hle/kernel/object.h" 12#include "core/hle/kernel/object.h"
17#include "core/hle/kernel/scheduler.h"
18#include "core/loader/loader.h"
19#include "core/memory.h"
20#include "core/perf_stats.h"
21#include "core/telemetry_session.h"
22#include "file_sys/vfs_real.h"
23#include "hle/service/filesystem/filesystem.h"
24#include "video_core/debug_utils/debug_utils.h"
25#include "video_core/gpu.h"
26 13
27namespace Core::Frontend { 14namespace Core::Frontend {
28class EmuWindow; 15class EmuWindow;
29} 16} // namespace Core::Frontend
17
18namespace FileSys {
19class VfsFilesystem;
20} // namespace FileSys
21
22namespace Kernel {
23class KernelCore;
24class Process;
25class Scheduler;
26} // namespace Kernel
27
28namespace Loader {
29class AppLoader;
30enum class ResultStatus : u16;
31} // namespace Loader
30 32
31namespace Service::SM { 33namespace Service::SM {
32class ServiceManager; 34class ServiceManager;
33} 35} // namespace Service::SM
36
37namespace Tegra {
38class DebugContext;
39class GPU;
40} // namespace Tegra
34 41
35namespace VideoCore { 42namespace VideoCore {
36class RendererBase; 43class RendererBase;
37} 44} // namespace VideoCore
38 45
39namespace Core { 46namespace Core {
40 47
41class ARM_Interface; 48class ARM_Interface;
49class Cpu;
50class ExclusiveMonitor;
51class FrameLimiter;
52class PerfStats;
53class TelemetrySession;
54
55struct PerfStatsResults;
42 56
43class System { 57class System {
44public: 58public:
@@ -125,7 +139,7 @@ public:
125 void PrepareReschedule(); 139 void PrepareReschedule();
126 140
127 /// Gets and resets core performance statistics 141 /// Gets and resets core performance statistics
128 PerfStats::Results GetAndResetPerfStats(); 142 PerfStatsResults GetAndResetPerfStats();
129 143
130 /// Gets an ARM interface to the CPU core that is currently running 144 /// Gets an ARM interface to the CPU core that is currently running
131 ARM_Interface& CurrentArmInterface(); 145 ARM_Interface& CurrentArmInterface();
@@ -197,9 +211,9 @@ public:
197 211
198 std::shared_ptr<Tegra::DebugContext> GetGPUDebugContext() const; 212 std::shared_ptr<Tegra::DebugContext> GetGPUDebugContext() const;
199 213
200 void SetFilesystem(FileSys::VirtualFilesystem vfs); 214 void SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs);
201 215
202 FileSys::VirtualFilesystem GetFilesystem() const; 216 std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const;
203 217
204private: 218private:
205 System(); 219 System();