| 
									
										
											  
											
												chore: make yuzu REUSE compliant
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.
Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.
The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.
Following REUSE has a few advantages over the current approach:
- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
  `.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
  files like binary assets / images is always accurate and up to date
To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.
[REUSE]: https://reuse.software
Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
											
										 
											2022-05-15 02:06:02 +02:00
										 |  |  | // SPDX-FileCopyrightText: 2015 Citra Emulator Project
 | 
					
						
							|  |  |  | // SPDX-License-Identifier: GPL-2.0-or-later
 | 
					
						
							| 
									
										
										
										
											2015-12-06 19:06:12 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-06 09:31:12 -04:00
										 |  |  | #include <thread>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-05 20:25:01 -05:00
										 |  |  | #include "common/logging/log.h"
 | 
					
						
							| 
									
										
										
										
											2018-08-01 20:59:42 -04:00
										 |  |  | #include "core/frontend/emu_window.h"
 | 
					
						
							| 
									
										
										
										
											2023-02-18 23:31:39 -08:00
										 |  |  | #include "core/frontend/graphics_context.h"
 | 
					
						
							| 
									
										
										
										
											2016-09-20 23:52:38 -07:00
										 |  |  | #include "video_core/renderer_base.h"
 | 
					
						
							| 
									
										
										
										
											2018-08-01 20:59:42 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-03 12:55:58 -04:00
										 |  |  | namespace VideoCore { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-11 00:58:57 -03:00
										 |  |  | RendererBase::RendererBase(Core::Frontend::EmuWindow& window_, | 
					
						
							|  |  |  |                            std::unique_ptr<Core::Frontend::GraphicsContext> context_) | 
					
						
							|  |  |  |     : render_window{window_}, context{std::move(context_)} { | 
					
						
							| 
									
										
										
										
											2018-08-10 18:39:37 -04:00
										 |  |  |     RefreshBaseSettings(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-01 20:59:42 -04:00
										 |  |  | RendererBase::~RendererBase() = default; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-10 18:39:37 -04:00
										 |  |  | void RendererBase::RefreshBaseSettings() { | 
					
						
							|  |  |  |     UpdateCurrentFramebufferLayout(); | 
					
						
							| 
									
										
										
										
											2018-08-01 20:59:42 -04:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-12-06 19:06:12 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-10 18:39:37 -04:00
										 |  |  | void RendererBase::UpdateCurrentFramebufferLayout() { | 
					
						
							|  |  |  |     const Layout::FramebufferLayout& layout = render_window.GetFramebufferLayout(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     render_window.UpdateCurrentFramebufferLayout(layout.width, layout.height); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-10 23:12:13 -05:00
										 |  |  | bool RendererBase::IsScreenshotPending() const { | 
					
						
							|  |  |  |     return renderer_settings.screenshot_requested; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-26 01:52:33 -04:00
										 |  |  | void RendererBase::RequestScreenshot(void* data, std::function<void(bool)> callback, | 
					
						
							| 
									
										
										
										
											2018-08-31 14:16:16 +08:00
										 |  |  |                                      const Layout::FramebufferLayout& layout) { | 
					
						
							|  |  |  |     if (renderer_settings.screenshot_requested) { | 
					
						
							|  |  |  |         LOG_ERROR(Render, "A screenshot is already requested or in progress, ignoring the request"); | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-07-18 19:31:35 -04:00
										 |  |  |     auto async_callback{[callback_ = std::move(callback)](bool invert_y) { | 
					
						
							|  |  |  |         std::thread t{callback_, invert_y}; | 
					
						
							| 
									
										
										
										
											2022-10-06 09:31:12 -04:00
										 |  |  |         t.detach(); | 
					
						
							|  |  |  |     }}; | 
					
						
							| 
									
										
										
										
											2018-08-31 14:16:16 +08:00
										 |  |  |     renderer_settings.screenshot_bits = data; | 
					
						
							| 
									
										
										
										
											2022-10-06 09:31:12 -04:00
										 |  |  |     renderer_settings.screenshot_complete_callback = async_callback; | 
					
						
							| 
									
										
										
										
											2018-08-31 14:16:16 +08:00
										 |  |  |     renderer_settings.screenshot_framebuffer_layout = layout; | 
					
						
							|  |  |  |     renderer_settings.screenshot_requested = true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-03 12:55:58 -04:00
										 |  |  | } // namespace VideoCore
 |