mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Destroy GLWindow on exit to prevent issues closing the app while in fullscreen
This commit is contained in:
		
							parent
							
								
									36c5058d66
								
							
						
					
					
						commit
						408e225048
					
				
					 3 changed files with 15 additions and 5 deletions
				
			
		|  | @ -359,11 +359,7 @@ void GRenderWindow::resizeEvent(QResizeEvent* event) { | |||
| } | ||||
| 
 | ||||
| void GRenderWindow::InitRenderTarget() { | ||||
|     // Destroy the previous run's child_widget which should also destroy the child_window
 | ||||
|     if (child_widget) { | ||||
|         layout()->removeWidget(child_widget); | ||||
|         delete child_widget; | ||||
|     } | ||||
|     ReleaseRenderTarget(); | ||||
| 
 | ||||
|     GMainWindow* parent = GetMainWindow(); | ||||
|     QWindow* parent_win_handle = parent ? parent->windowHandle() : nullptr; | ||||
|  | @ -379,6 +375,14 @@ void GRenderWindow::InitRenderTarget() { | |||
|     BackupGeometry(); | ||||
| } | ||||
| 
 | ||||
| void GRenderWindow::ReleaseRenderTarget() { | ||||
|     if (child_widget) { | ||||
|         layout()->removeWidget(child_widget); | ||||
|         delete child_widget; | ||||
|         child_widget = nullptr; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void GRenderWindow::CaptureScreenshot(u32 res_scale, const QString& screenshot_path) { | ||||
|     if (res_scale == 0) | ||||
|         res_scale = VideoCore::GetResolutionScaleFactor(); | ||||
|  |  | |||
|  | @ -173,6 +173,9 @@ public: | |||
| 
 | ||||
|     void InitRenderTarget(); | ||||
| 
 | ||||
|     /// Destroy the previous run's child_widget which should also destroy the child_window
 | ||||
|     void ReleaseRenderTarget(); | ||||
| 
 | ||||
|     void CaptureScreenshot(u32 res_scale, const QString& screenshot_path); | ||||
| 
 | ||||
| public slots: | ||||
|  |  | |||
|  | @ -1019,6 +1019,9 @@ void GMainWindow::ShutdownGame() { | |||
|     UpdateWindowTitle(); | ||||
| 
 | ||||
|     game_path.clear(); | ||||
| 
 | ||||
|     // When closing the game, destroy the GLWindow to clear the context after the game is closed
 | ||||
|     render_window->ReleaseRenderTarget(); | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::StoreRecentFile(const QString& filename) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue