summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2018-03-22 19:46:37 -0400
committerGravatar bunnei2018-03-22 19:46:37 -0400
commit656de23d93882adc774e24e81a278913f461ad64 (patch)
treec2fb3f7f68151c9889d04ff10d76a3d70501918d
parentMerge pull request #258 from Subv/gpu_attribs (diff)
downloadyuzu-656de23d93882adc774e24e81a278913f461ad64.tar.gz
yuzu-656de23d93882adc774e24e81a278913f461ad64.tar.xz
yuzu-656de23d93882adc774e24e81a278913f461ad64.zip
renderer: Create rasterizer and cleanup.
-rw-r--r--src/video_core/renderer_base.cpp7
-rw-r--r--src/video_core/renderer_base.h7
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.h4
-rw-r--r--src/video_core/video_core.h2
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
10void RendererBase::RefreshRasterizerSetting() {} 11void 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
12class EmuWindow; 13class 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
79protected: 84protected:
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
83private: 89private:
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
16namespace VideoCore { 16namespace VideoCore {
17 17
18enum class Renderer { Software, OpenGL };
19
18extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin 20extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
19extern EmuWindow* g_emu_window; ///< Emu window 21extern EmuWindow* g_emu_window; ///< Emu window
20 22