mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-28 22:49:02 -05:00 
			
		
		
		
	frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
This commit is contained in:
		| @@ -643,8 +643,6 @@ void RasterizerOpenGL::Clear() { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     ScopeAcquireGLContext acquire_context{emu_window}; | ||||
|  | ||||
|     ConfigureFramebuffers(clear_state, use_color, use_depth || use_stencil, false, | ||||
|                           regs.clear_buffers.RT.Value()); | ||||
|     if (regs.clear_flags.scissor) { | ||||
| @@ -678,8 +676,6 @@ void RasterizerOpenGL::DrawArrays() { | ||||
|     auto& gpu = Core::System::GetInstance().GPU().Maxwell3D(); | ||||
|     const auto& regs = gpu.regs; | ||||
|  | ||||
|     ScopeAcquireGLContext acquire_context{emu_window}; | ||||
|  | ||||
|     ConfigureFramebuffers(state); | ||||
|     SyncColorMask(); | ||||
|     SyncFragmentColorClampState(); | ||||
|   | ||||
| @@ -14,6 +14,7 @@ | ||||
| #include "core/core.h" | ||||
| #include "core/core_timing.h" | ||||
| #include "core/frontend/emu_window.h" | ||||
| #include "core/frontend/scope_acquire_window_context.h" | ||||
| #include "core/memory.h" | ||||
| #include "core/perf_stats.h" | ||||
| #include "core/settings.h" | ||||
| @@ -97,18 +98,6 @@ static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, cons | ||||
|     return matrix; | ||||
| } | ||||
|  | ||||
| ScopeAcquireGLContext::ScopeAcquireGLContext(Core::Frontend::EmuWindow& emu_window_) | ||||
|     : emu_window{emu_window_} { | ||||
|     if (Settings::values.use_multi_core) { | ||||
|         emu_window.MakeCurrent(); | ||||
|     } | ||||
| } | ||||
| ScopeAcquireGLContext::~ScopeAcquireGLContext() { | ||||
|     if (Settings::values.use_multi_core) { | ||||
|         emu_window.DoneCurrent(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& window) | ||||
|     : VideoCore::RendererBase{window} {} | ||||
|  | ||||
| @@ -117,7 +106,6 @@ RendererOpenGL::~RendererOpenGL() = default; | ||||
| /// Swap buffers (render frame) | ||||
| void RendererOpenGL::SwapBuffers( | ||||
|     std::optional<std::reference_wrapper<const Tegra::FramebufferConfig>> framebuffer) { | ||||
|     ScopeAcquireGLContext acquire_context{render_window}; | ||||
|  | ||||
|     Core::System::GetInstance().GetPerfStats().EndSystemFrame(); | ||||
|  | ||||
| @@ -506,7 +494,7 @@ static void APIENTRY DebugHandler(GLenum source, GLenum type, GLuint id, GLenum | ||||
|  | ||||
| /// Initialize the renderer | ||||
| bool RendererOpenGL::Init() { | ||||
|     ScopeAcquireGLContext acquire_context{render_window}; | ||||
|     Core::Frontend::ScopeAcquireWindowContext acquire_context{render_window}; | ||||
|  | ||||
|     if (GLAD_GL_KHR_debug) { | ||||
|         glEnable(GL_DEBUG_OUTPUT); | ||||
|   | ||||
| @@ -39,16 +39,6 @@ struct ScreenInfo { | ||||
|     TextureInfo texture; | ||||
| }; | ||||
|  | ||||
| /// Helper class to acquire/release OpenGL context within a given scope | ||||
| class ScopeAcquireGLContext : NonCopyable { | ||||
| public: | ||||
|     explicit ScopeAcquireGLContext(Core::Frontend::EmuWindow& window); | ||||
|     ~ScopeAcquireGLContext(); | ||||
|  | ||||
| private: | ||||
|     Core::Frontend::EmuWindow& emu_window; | ||||
| }; | ||||
|  | ||||
| class RendererOpenGL : public VideoCore::RendererBase { | ||||
| public: | ||||
|     explicit RendererOpenGL(Core::Frontend::EmuWindow& window); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei