summaryrefslogtreecommitdiffstats
path: root/src/video_core/video_core.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-3/+2
[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
2021-11-20Fix screenshot dimensions when at 1x scaleameerj1-2/+0
This was regressed by ART. Prior to ART, the screenshots were saved at the title's framebuffer resolution. A misunderstanding of the existing logic led to screenshot dimensions becoming dependent on the host render window size. This changes the behavior to match how it was prior to ART at 1x, with screenshots now always being the title's framebuffer dimensions scaled by the resolution scaling factor.
2021-11-16Settings: eliminate rescaling_factor.Fernando Sahmkow1-1/+1
2020-03-25Frontend/GPU: Refactor context managementJames Rowe1-10/+1
Changes the GraphicsContext to be managed by the GPU core. This eliminates the need for the frontends to fool around with tricky MakeCurrent/DoneCurrent calls that are dependent on the settings (such as async gpu option). This also refactors out the need to use QWidget::fromWindowContainer as that caused issues with focus and input handling. Now we use a regular QWidget and just access the native windowHandle() directly. Another change is removing the debug tool setting in FrameMailbox. Instead of trying to block the frontend until a new frame is ready, the core will now take over presentation and draw directly to the window if the renderer detects that its hooked by NSight or RenderDoc Lastly, since it was in the way, I removed ScopeAcquireWindowContext and replaced it with a simple subclass in GraphicsContext that achieves the same result
2019-04-12video_core/gpu: Create threads separately from initializationLioncash1-0/+7
Like with CPU emulation, we generally don't want to fire off the threads immediately after the relevant classes are initialized, we want to do this after all necessary data is done loading first. This splits the thread creation into its own interface member function to allow controlling when these threads in particular get created.
2019-02-07gl_shader_disk_cache: Pass core system as argument and guard against games without title idsReinUsesLisp1-1/+6
2018-12-18yuzu, video_core: Screenshot functionalityzhupengfei1-0/+2
Allows capturing screenshot at the current internal resolution (native for software renderer), but a setting is available to capture it in other resolutions. The screenshot is saved to a single PNG in the current layout.
2018-08-12core: Namespace EmuWindowLioncash1-1/+3
Gets the class out of the global namespace.
2018-08-11video_core; Get rid of global g_toggle_framelimit_enabled variableLioncash1-5/+0
Instead, we make a struct for renderer settings and allow the renderer to update all of these settings, getting rid of the need for global-scoped variables. This also uncovered a few indirect inclusions for certain headers, which this commit also fixes.
2018-08-11video_core: Remove unused Renderer enumerationLioncash1-2/+0
Currently we only have an OpenGL renderer, so this is unused in code (and occupies the Renderer identifier in the VideoCore namespace).
2018-08-04video_core: Eliminate the g_renderer global variableLioncash1-11/+9
We move the initialization of the renderer to the core class, while keeping the creation of it and any other specifics in video_core. This way we can ensure that the renderer is initialized and doesn't give unfettered access to the renderer. This also makes dependencies on types more explicit. For example, the GPU class doesn't need to depend on the existence of a renderer, it only needs to care about whether or not it has a rasterizer, but since it was accessing the global variable, it was also making the renderer a part of its dependency chain. By adjusting the interface, we can get rid of this dependency.
2018-08-03video_core: Remove unimplemented Start() function prototypeLioncash1-3/+0
Given this has no definition, we can just remove it entirely.
2018-08-02video_core: Make global EmuWindow instance part of the base renderer classLioncash1-2/+1
Makes the global a member of the RendererBase class. We also change this to be a reference. Passing any form of null pointer to these functions is incorrect entirely, especially given the code itself assumes that the pointer would always be in a valid state. This also makes it easier to follow the lifecycle of instances being used, as we explicitly interact the renderer with the rasterizer, rather than it just operating on a global pointer.
2018-03-23renderer: Create rasterizer and cleanup.bunnei1-0/+2
2018-01-21Format: Run the new clang format on everythingJames Rowe1-1/+1
2018-01-13Remove gpu debugger and get yuzu qt to compileJames Rowe1-2/+0
2017-05-28Move screen size constants from video_core to coreYuri Kunde Schlesner1-15/+0
video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
2017-01-07config: Add option for specifying screen resolution scale factor.bunnei1-1/+0
2016-12-06Implement Frame rate limiter (#2223)emmauss1-0/+1
* implement frame limiter * fixes
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-7/+8
2016-04-21Config: Add scaled resolution optiontfarley1-0/+1
2016-03-08Improve error report from Init() functionsLittleWhite1-1/+1
Add error popup when citra initialization failed
2015-12-30video_core: Make the renderer global a unique_ptrLioncash1-2/+3
2015-08-16Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei1-1/+2
- Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT.
2015-06-28Common: Cleanup emu_window includes.Emmanuel Gil Peyrot1-4/+3
2015-05-23OpenGL renderertfarley1-0/+5
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-1/+0
2015-03-07Set framebuffer layout from EmuWindow.bunnei1-1/+0
2014-12-21License changepurpasmart961-1/+1
2014-10-12Rework OpenGL renderer.Yuri Kunde Schlesner1-0/+4
The OpenGL renderer has been revised, with the following changes: - Initialization and rendering have been refactored to reduce the number of redundant objects used. - Framebuffer rotation is now done directly, using texture mapping. - Vertex coordinates are now given in pixels, and the projection matrix isn't hardcoded anymore.
2014-09-12Added support for multiple input device types for KeyMap and connected Qt.Kevin Hartman1-0/+1
2014-04-09fixed project includes to use new directory structurebunnei1-2/+3
2014-04-09got rid of 'src' folders in each sub-projectbunnei1-0/+0
2014-04-09fixed license header in video_corebunnei1-23/+3
2014-04-06added initial renderer codebunnei1-3/+14
2014-04-05added video_core project to solutionbunnei1-17/+21
2014-04-05added an "Update" method to update all hardwarebunnei1-0/+3
2014-04-05added initial support for hw.cpp modulebunnei1-0/+6
2014-04-05added hw module to interface h/w register reads/writesbunnei1-21/+9
2014-04-05- added an interface layer for ARM coresbunnei1-13/+25
- cleaned up core.cpp a bit
2013-09-26renamed from citrus to citraShizZy1-7/+7
2013-09-14renamed project to 'citrus'ShizZy1-8/+8
2013-09-06added core and mem_map files to the projectShizZy1-12/+12
2013-08-30adding initial project layoutShizZy1-0/+35