mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #4052 from zhaowenlan1779/bg-color-real-fix
video_core: Allow changing background color while emulation is running
This commit is contained in:
		
						commit
						0233f3286c
					
				
					 4 changed files with 10 additions and 0 deletions
				
			
		|  | @ -31,6 +31,8 @@ void Apply() { | ||||||
|         VideoCore::g_emu_window->UpdateCurrentFramebufferLayout(layout.width, layout.height); |         VideoCore::g_emu_window->UpdateCurrentFramebufferLayout(layout.width, layout.height); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     VideoCore::g_renderer_bg_color_update_requested = true; | ||||||
|  | 
 | ||||||
|     if (Core::System::GetInstance().IsPoweredOn()) { |     if (Core::System::GetInstance().IsPoweredOn()) { | ||||||
|         Core::DSP().SetSink(values.sink_id, values.audio_device_id); |         Core::DSP().SetSink(values.sink_id, values.audio_device_id); | ||||||
|         Core::DSP().EnableStretching(values.enable_audio_stretching); |         Core::DSP().EnableStretching(values.enable_audio_stretching); | ||||||
|  |  | ||||||
|  | @ -384,6 +384,12 @@ void RendererOpenGL::DrawSingleScreenRotated(const ScreenInfo& screen_info, floa | ||||||
|  * Draws the emulated screens to the emulator window. |  * Draws the emulated screens to the emulator window. | ||||||
|  */ |  */ | ||||||
| void RendererOpenGL::DrawScreens() { | void RendererOpenGL::DrawScreens() { | ||||||
|  |     if (VideoCore::g_renderer_bg_color_update_requested.exchange(false)) { | ||||||
|  |         // Update background color before drawing
 | ||||||
|  |         glClearColor(Settings::values.bg_red, Settings::values.bg_green, Settings::values.bg_blue, | ||||||
|  |                      0.0f); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     auto layout = render_window->GetFramebufferLayout(); |     auto layout = render_window->GetFramebufferLayout(); | ||||||
|     const auto& top_screen = layout.top_screen; |     const auto& top_screen = layout.top_screen; | ||||||
|     const auto& bottom_screen = layout.bottom_screen; |     const auto& bottom_screen = layout.bottom_screen; | ||||||
|  |  | ||||||
|  | @ -22,6 +22,7 @@ std::atomic<bool> g_shader_jit_enabled; | ||||||
| std::atomic<bool> g_hw_shader_enabled; | std::atomic<bool> g_hw_shader_enabled; | ||||||
| std::atomic<bool> g_hw_shader_accurate_gs; | std::atomic<bool> g_hw_shader_accurate_gs; | ||||||
| std::atomic<bool> g_hw_shader_accurate_mul; | std::atomic<bool> g_hw_shader_accurate_mul; | ||||||
|  | std::atomic<bool> g_renderer_bg_color_update_requested; | ||||||
| 
 | 
 | ||||||
| /// Initialize the video core
 | /// Initialize the video core
 | ||||||
| bool Init(EmuWindow* emu_window) { | bool Init(EmuWindow* emu_window) { | ||||||
|  |  | ||||||
|  | @ -25,6 +25,7 @@ extern std::atomic<bool> g_shader_jit_enabled; | ||||||
| extern std::atomic<bool> g_hw_shader_enabled; | extern std::atomic<bool> g_hw_shader_enabled; | ||||||
| extern std::atomic<bool> g_hw_shader_accurate_gs; | extern std::atomic<bool> g_hw_shader_accurate_gs; | ||||||
| extern std::atomic<bool> g_hw_shader_accurate_mul; | extern std::atomic<bool> g_hw_shader_accurate_mul; | ||||||
|  | extern std::atomic<bool> g_renderer_bg_color_update_requested; | ||||||
| 
 | 
 | ||||||
| /// Start the video core
 | /// Start the video core
 | ||||||
| void Start(); | void Start(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue