diff options
| -rw-r--r-- | src/video_core/renderer_base.cpp | 7 | ||||
| -rw-r--r-- | src/video_core/renderer_base.h | 7 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.h | 4 | ||||
| -rw-r--r-- | src/video_core/video_core.h | 2 |
4 files changed, 16 insertions, 4 deletions
diff --git a/src/video_core/renderer_base.cpp b/src/video_core/renderer_base.cpp index 51e1d45f9..30075b23c 100644 --- a/src/video_core/renderer_base.cpp +++ b/src/video_core/renderer_base.cpp | |||
| @@ -5,6 +5,11 @@ | |||
| 5 | #include <atomic> | 5 | #include <atomic> |
| 6 | #include <memory> | 6 | #include <memory> |
| 7 | #include "video_core/renderer_base.h" | 7 | #include "video_core/renderer_base.h" |
| 8 | #include "video_core/renderer_opengl/gl_rasterizer.h" | ||
| 8 | #include "video_core/video_core.h" | 9 | #include "video_core/video_core.h" |
| 9 | 10 | ||
| 10 | void RendererBase::RefreshRasterizerSetting() {} | 11 | void RendererBase::RefreshRasterizerSetting() { |
| 12 | if (rasterizer == nullptr) { | ||
| 13 | rasterizer = std::make_unique<RasterizerOpenGL>(); | ||
| 14 | } | ||
| 15 | } | ||
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h index 2aba50eda..532e5b37c 100644 --- a/src/video_core/renderer_base.h +++ b/src/video_core/renderer_base.h | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include <boost/optional.hpp> | 8 | #include <boost/optional.hpp> |
| 9 | #include "common/assert.h" | 9 | #include "common/assert.h" |
| 10 | #include "common/common_types.h" | 10 | #include "common/common_types.h" |
| 11 | #include "video_core/rasterizer_interface.h" | ||
| 11 | 12 | ||
| 12 | class EmuWindow; | 13 | class EmuWindow; |
| 13 | 14 | ||
| @@ -74,12 +75,16 @@ public: | |||
| 74 | return m_current_frame; | 75 | return m_current_frame; |
| 75 | } | 76 | } |
| 76 | 77 | ||
| 78 | VideoCore::RasterizerInterface* Rasterizer() const { | ||
| 79 | return rasterizer.get(); | ||
| 80 | } | ||
| 81 | |||
| 77 | void RefreshRasterizerSetting(); | 82 | void RefreshRasterizerSetting(); |
| 78 | 83 | ||
| 79 | protected: | 84 | protected: |
| 85 | std::unique_ptr<VideoCore::RasterizerInterface> rasterizer; | ||
| 80 | f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer | 86 | f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer |
| 81 | int m_current_frame = 0; ///< Current frame, should be set by the renderer | 87 | int m_current_frame = 0; ///< Current frame, should be set by the renderer |
| 82 | 88 | ||
| 83 | private: | 89 | private: |
| 84 | bool opengl_rasterizer_active = false; | ||
| 85 | }; | 90 | }; |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h index 17ce0fee7..828e62852 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h | |||
| @@ -211,8 +211,8 @@ struct SurfaceParams { | |||
| 211 | MathUtil::Rectangle<u32> GetSubRect(const SurfaceParams& sub_surface) const; | 211 | MathUtil::Rectangle<u32> GetSubRect(const SurfaceParams& sub_surface) const; |
| 212 | MathUtil::Rectangle<u32> GetScaledSubRect(const SurfaceParams& sub_surface) const; | 212 | MathUtil::Rectangle<u32> GetScaledSubRect(const SurfaceParams& sub_surface) const; |
| 213 | 213 | ||
| 214 | PAddr addr = 0; | 214 | VAddr addr = 0; |
| 215 | PAddr end = 0; | 215 | VAddr end = 0; |
| 216 | u64 size = 0; | 216 | u64 size = 0; |
| 217 | 217 | ||
| 218 | u32 width = 0; | 218 | u32 width = 0; |
diff --git a/src/video_core/video_core.h b/src/video_core/video_core.h index 1fd90b9d0..37da62436 100644 --- a/src/video_core/video_core.h +++ b/src/video_core/video_core.h | |||
| @@ -15,6 +15,8 @@ class RendererBase; | |||
| 15 | 15 | ||
| 16 | namespace VideoCore { | 16 | namespace VideoCore { |
| 17 | 17 | ||
| 18 | enum class Renderer { Software, OpenGL }; | ||
| 19 | |||
| 18 | extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin | 20 | extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin |
| 19 | extern EmuWindow* g_emu_window; ///< Emu window | 21 | extern EmuWindow* g_emu_window; ///< Emu window |
| 20 | 22 | ||