forked from ShuriZma/suyu
1
0
Fork 0

core: Namespace EmuWindow

Gets the class out of the global namespace.
This commit is contained in:
Lioncash 2018-08-11 20:20:19 -04:00
parent 403dfd68fc
commit 0a93b45b6a
14 changed files with 44 additions and 22 deletions

View File

@ -88,7 +88,7 @@ System::ResultStatus System::SingleStep() {
return RunLoop(false); return RunLoop(false);
} }
System::ResultStatus System::Load(EmuWindow& emu_window, const std::string& filepath) { System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::string& filepath) {
app_loader = Loader::GetLoader(virtual_filesystem->OpenFile(filepath, FileSys::Mode::Read)); app_loader = Loader::GetLoader(virtual_filesystem->OpenFile(filepath, FileSys::Mode::Read));
if (!app_loader) { if (!app_loader) {
@ -151,7 +151,7 @@ Cpu& System::CpuCore(size_t core_index) {
return *cpu_cores[core_index]; return *cpu_cores[core_index];
} }
System::ResultStatus System::Init(EmuWindow& emu_window) { System::ResultStatus System::Init(Frontend::EmuWindow& emu_window) {
LOG_DEBUG(HW_Memory, "initialized OK"); LOG_DEBUG(HW_Memory, "initialized OK");
CoreTiming::Init(); CoreTiming::Init();

View File

@ -22,9 +22,12 @@
#include "video_core/debug_utils/debug_utils.h" #include "video_core/debug_utils/debug_utils.h"
#include "video_core/gpu.h" #include "video_core/gpu.h"
class EmuWindow;
class ARM_Interface; class ARM_Interface;
namespace Core::Frontend {
class EmuWindow;
}
namespace Service::SM { namespace Service::SM {
class ServiceManager; class ServiceManager;
} }
@ -99,7 +102,7 @@ public:
* @param filepath String path to the executable application to load on the host file system. * @param filepath String path to the executable application to load on the host file system.
* @returns ResultStatus code, indicating if the operation succeeded. * @returns ResultStatus code, indicating if the operation succeeded.
*/ */
ResultStatus Load(EmuWindow& emu_window, const std::string& filepath); ResultStatus Load(Frontend::EmuWindow& emu_window, const std::string& filepath);
/** /**
* Indicates if the emulated system is powered on (all subsystems initialized and able to run an * Indicates if the emulated system is powered on (all subsystems initialized and able to run an
@ -227,7 +230,7 @@ private:
* input. * input.
* @return ResultStatus code, indicating if the operation succeeded. * @return ResultStatus code, indicating if the operation succeeded.
*/ */
ResultStatus Init(EmuWindow& emu_window); ResultStatus Init(Frontend::EmuWindow& emu_window);
/// RealVfsFilesystem instance /// RealVfsFilesystem instance
FileSys::VirtualFilesystem virtual_filesystem; FileSys::VirtualFilesystem virtual_filesystem;

View File

@ -8,6 +8,8 @@
#include "core/frontend/input.h" #include "core/frontend/input.h"
#include "core/settings.h" #include "core/settings.h"
namespace Core::Frontend {
class EmuWindow::TouchState : public Input::Factory<Input::TouchDevice>, class EmuWindow::TouchState : public Input::Factory<Input::TouchDevice>,
public std::enable_shared_from_this<TouchState> { public std::enable_shared_from_this<TouchState> {
public: public:
@ -108,3 +110,5 @@ void EmuWindow::TouchMoved(unsigned framebuffer_x, unsigned framebuffer_y) {
void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height) { void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height) {
NotifyFramebufferLayoutChanged(Layout::DefaultFrameLayout(width, height)); NotifyFramebufferLayoutChanged(Layout::DefaultFrameLayout(width, height));
} }
} // namespace Core::Frontend

View File

@ -10,6 +10,8 @@
#include "common/common_types.h" #include "common/common_types.h"
#include "core/frontend/framebuffer_layout.h" #include "core/frontend/framebuffer_layout.h"
namespace Core::Frontend {
/** /**
* Abstraction class used to provide an interface between emulation code and the frontend * Abstraction class used to provide an interface between emulation code and the frontend
* (e.g. SDL, QGLWidget, GLFW, etc...). * (e.g. SDL, QGLWidget, GLFW, etc...).
@ -166,3 +168,5 @@ private:
*/ */
std::tuple<unsigned, unsigned> ClipToTouchScreen(unsigned new_x, unsigned new_y); std::tuple<unsigned, unsigned> ClipToTouchScreen(unsigned new_x, unsigned new_y);
}; };
} // namespace Core::Frontend

View File

@ -10,7 +10,7 @@
namespace VideoCore { namespace VideoCore {
RendererBase::RendererBase(EmuWindow& window) : render_window{window} { RendererBase::RendererBase(Core::Frontend::EmuWindow& window) : render_window{window} {
RefreshBaseSettings(); RefreshBaseSettings();
} }

View File

@ -11,7 +11,9 @@
#include "video_core/gpu.h" #include "video_core/gpu.h"
#include "video_core/rasterizer_interface.h" #include "video_core/rasterizer_interface.h"
namespace Core::Frontend {
class EmuWindow; class EmuWindow;
}
namespace VideoCore { namespace VideoCore {
@ -21,7 +23,7 @@ struct RendererSettings {
class RendererBase : NonCopyable { class RendererBase : NonCopyable {
public: public:
explicit RendererBase(EmuWindow& window); explicit RendererBase(Core::Frontend::EmuWindow& window);
virtual ~RendererBase(); virtual ~RendererBase();
/// Swap buffers (render frame) /// Swap buffers (render frame)
@ -59,7 +61,7 @@ protected:
/// Refreshes settings specific to the rasterizer. /// Refreshes settings specific to the rasterizer.
void RefreshRasterizerSetting(); void RefreshRasterizerSetting();
EmuWindow& render_window; ///< Reference to the render window handle. Core::Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
std::unique_ptr<RasterizerInterface> rasterizer; std::unique_ptr<RasterizerInterface> rasterizer;
f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer 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 int m_current_frame = 0; ///< Current frame, should be set by the renderer

View File

@ -36,7 +36,7 @@ MICROPROFILE_DEFINE(OpenGL_Drawing, "OpenGL", "Drawing", MP_RGB(128, 128, 192));
MICROPROFILE_DEFINE(OpenGL_Blits, "OpenGL", "Blits", MP_RGB(100, 100, 255)); MICROPROFILE_DEFINE(OpenGL_Blits, "OpenGL", "Blits", MP_RGB(100, 100, 255));
MICROPROFILE_DEFINE(OpenGL_CacheManagement, "OpenGL", "Cache Mgmt", MP_RGB(100, 255, 100)); MICROPROFILE_DEFINE(OpenGL_CacheManagement, "OpenGL", "Cache Mgmt", MP_RGB(100, 255, 100));
RasterizerOpenGL::RasterizerOpenGL(EmuWindow& window) : emu_window{window} { RasterizerOpenGL::RasterizerOpenGL(Core::Frontend::EmuWindow& window) : emu_window{window} {
// Create sampler objects // Create sampler objects
for (size_t i = 0; i < texture_samplers.size(); ++i) { for (size_t i = 0; i < texture_samplers.size(); ++i) {
texture_samplers[i].Create(); texture_samplers[i].Create();

View File

@ -21,12 +21,15 @@
#include "video_core/renderer_opengl/gl_state.h" #include "video_core/renderer_opengl/gl_state.h"
#include "video_core/renderer_opengl/gl_stream_buffer.h" #include "video_core/renderer_opengl/gl_stream_buffer.h"
class EmuWindow;
struct ScreenInfo; struct ScreenInfo;
namespace Core::Frontend {
class EmuWindow;
}
class RasterizerOpenGL : public VideoCore::RasterizerInterface { class RasterizerOpenGL : public VideoCore::RasterizerInterface {
public: public:
explicit RasterizerOpenGL(EmuWindow& renderer); explicit RasterizerOpenGL(Core::Frontend::EmuWindow& renderer);
~RasterizerOpenGL() override; ~RasterizerOpenGL() override;
void DrawArrays() override; void DrawArrays() override;
@ -145,7 +148,7 @@ private:
RasterizerCacheOpenGL res_cache; RasterizerCacheOpenGL res_cache;
EmuWindow& emu_window; Core::Frontend::EmuWindow& emu_window;
std::unique_ptr<GLShader::ProgramManager> shader_program_manager; std::unique_ptr<GLShader::ProgramManager> shader_program_manager;
OGLVertexArray sw_vao; OGLVertexArray sw_vao;

View File

@ -18,7 +18,6 @@
#include "core/tracer/recorder.h" #include "core/tracer/recorder.h"
#include "video_core/renderer_opengl/renderer_opengl.h" #include "video_core/renderer_opengl/renderer_opengl.h"
#include "video_core/utils.h" #include "video_core/utils.h"
#include "video_core/video_core.h"
static const char vertex_shader[] = R"( static const char vertex_shader[] = R"(
#version 150 core #version 150 core
@ -92,7 +91,8 @@ static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, cons
return matrix; return matrix;
} }
ScopeAcquireGLContext::ScopeAcquireGLContext(EmuWindow& emu_window_) : emu_window{emu_window_} { ScopeAcquireGLContext::ScopeAcquireGLContext(Core::Frontend::EmuWindow& emu_window_)
: emu_window{emu_window_} {
if (Settings::values.use_multi_core) { if (Settings::values.use_multi_core) {
emu_window.MakeCurrent(); emu_window.MakeCurrent();
} }
@ -103,7 +103,9 @@ ScopeAcquireGLContext::~ScopeAcquireGLContext() {
} }
} }
RendererOpenGL::RendererOpenGL(EmuWindow& window) : VideoCore::RendererBase{window} {} RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& window)
: VideoCore::RendererBase{window} {}
RendererOpenGL::~RendererOpenGL() = default; RendererOpenGL::~RendererOpenGL() = default;
/// Swap buffers (render frame) /// Swap buffers (render frame)

View File

@ -12,7 +12,9 @@
#include "video_core/renderer_opengl/gl_resource_manager.h" #include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_state.h" #include "video_core/renderer_opengl/gl_state.h"
namespace Core::Frontend {
class EmuWindow; class EmuWindow;
}
/// Structure used for storing information about the textures for the Switch screen /// Structure used for storing information about the textures for the Switch screen
struct TextureInfo { struct TextureInfo {
@ -34,16 +36,16 @@ struct ScreenInfo {
/// Helper class to acquire/release OpenGL context within a given scope /// Helper class to acquire/release OpenGL context within a given scope
class ScopeAcquireGLContext : NonCopyable { class ScopeAcquireGLContext : NonCopyable {
public: public:
explicit ScopeAcquireGLContext(EmuWindow& window); explicit ScopeAcquireGLContext(Core::Frontend::EmuWindow& window);
~ScopeAcquireGLContext(); ~ScopeAcquireGLContext();
private: private:
EmuWindow& emu_window; Core::Frontend::EmuWindow& emu_window;
}; };
class RendererOpenGL : public VideoCore::RendererBase { class RendererOpenGL : public VideoCore::RendererBase {
public: public:
explicit RendererOpenGL(EmuWindow& window); explicit RendererOpenGL(Core::Frontend::EmuWindow& window);
~RendererOpenGL() override; ~RendererOpenGL() override;
/// Swap buffers (render frame) /// Swap buffers (render frame)

View File

@ -9,7 +9,7 @@
namespace VideoCore { namespace VideoCore {
std::unique_ptr<RendererBase> CreateRenderer(EmuWindow& emu_window) { std::unique_ptr<RendererBase> CreateRenderer(Core::Frontend::EmuWindow& emu_window) {
return std::make_unique<RendererOpenGL>(emu_window); return std::make_unique<RendererOpenGL>(emu_window);
} }

View File

@ -6,7 +6,9 @@
#include <memory> #include <memory>
namespace Core::Frontend {
class EmuWindow; class EmuWindow;
}
namespace VideoCore { namespace VideoCore {
@ -18,6 +20,6 @@ class RendererBase;
* @note The returned renderer instance is simply allocated. Its Init() * @note The returned renderer instance is simply allocated. Its Init()
* function still needs to be called to fully complete its setup. * function still needs to be called to fully complete its setup.
*/ */
std::unique_ptr<RendererBase> CreateRenderer(EmuWindow& emu_window); std::unique_ptr<RendererBase> CreateRenderer(Core::Frontend::EmuWindow& emu_window);
} // namespace VideoCore } // namespace VideoCore

View File

@ -101,7 +101,7 @@ signals:
void ErrorThrown(Core::System::ResultStatus, std::string); void ErrorThrown(Core::System::ResultStatus, std::string);
}; };
class GRenderWindow : public QWidget, public EmuWindow { class GRenderWindow : public QWidget, public Core::Frontend::EmuWindow {
Q_OBJECT Q_OBJECT
public: public:

View File

@ -10,7 +10,7 @@
struct SDL_Window; struct SDL_Window;
class EmuWindow_SDL2 : public EmuWindow { class EmuWindow_SDL2 : public Core::Frontend::EmuWindow {
public: public:
explicit EmuWindow_SDL2(bool fullscreen); explicit EmuWindow_SDL2(bool fullscreen);
~EmuWindow_SDL2(); ~EmuWindow_SDL2();