summaryrefslogtreecommitdiff
path: root/src/yuzu/bootmanager.h
AgeCommit message (Collapse)Author
2020-12-18bootmanager: Add a check whether loading is completeMorph
2020-11-25Merge pull request #4976 from comex/poll-eventsRodrigo Locatti
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
2020-11-24frontend: yuzu (qt): Register a callback for ExecuteProgram.bunnei
2020-11-23Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off ↵comex
main thread EmuWindow::PollEvents was called from the GPU thread (or the CPU thread in sync-GPU mode) when swapping buffers. It had three implementations: - In GRenderWindow, it didn't actually poll events, just set a flag and emit a signal to indicate that a frame was displayed. - In EmuWindow_SDL2_Hide, it did nothing. - In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong because SDL_PollEvents is supposed to be called on the thread that set up video - in this case, the main thread, which was sleeping in a busyloop (regardless of whether sync-GPU was enabled). On macOS this causes a crash. To fix this: - Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a default implementation that does nothing. - In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have the main thread call SDL_WaitEvent in a loop.
2020-08-29yuzu/main: Amend lifetime issues with InputSubsystemLioncash
Due to the way Qt performs destruction of parent/child widgets, we need to make the lifetime of the input subsystem shared across the main window and the render window.
2020-08-27input_common: Eliminate most global stateLioncash
Abstracts most of the input mechanisms under an InputSubsystem class that is managed by the frontends, eliminating any static constructors and destructors. This gets rid of global accessor functions and also allows the frontends to have a more fine-grained control over the lifecycle of the input subsystem. This also makes it explicit which interfaces rely on the input subsystem instead of making it opaque in the interface functions. All that remains to migrate over is the factories, which can be done in a separate change.
2020-06-27Clang Format.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
2020-04-07yuzu: Drop SDL2 and Qt frontend Vulkan requirementsReinUsesLisp
Create Vulkan instances and surfaces from the Vulkan backend.
2020-03-25Address review and fix broken yuzu-tester buildJames Rowe
2020-03-24Frontend/GPU: Refactor context managementJames Rowe
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
2020-02-25frontend: qt: bootmanager: Acquire a shared context in main emu thread.bunnei
2020-02-25frontend: qt: bootmanager: Vulkan: Restore support for VK backend.bunnei
2020-02-25frontend: qt: bootmanager: OpenGL: Implement separate presentation thread.bunnei
2020-01-29yuzu: Implement Vulkan frontendReinUsesLisp
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
2019-06-03yuzu/bootmanager: Treat the resolution factor as a u32Lioncash
Treating it as a u16 can result in a sign-conversion warning when performing arithmetic with it, as u16 promotes to an int when aritmetic is performed on it, not unsigned int. This also makes the interface more uniform, as the layout interface now operates on u32 across the board.
2019-06-03yuzu/bootmanager: Default EmuThread's destructor in the cpp fileLioncash
This class contains non-trivial members, so we should default the destructor's definition within the cpp file.
2019-06-03yuzu/bootmanager: unsigned -> u32Lioncash
Same thing (for platforms we support), less reading.
2019-06-03yuzu/bootmanager: Remove pointer downcast in GRenderWindow's constructorLioncash
We can just pass a pointer to GMainWindow directly and make it a requirement of the interface. This makes the interface a little safer, since this would technically otherwise allow any random QWidget to be the parent of a render window, downcasting it to GMainWindow (which is undefined behavior).
2019-05-26emu_window: Pass OnMinimalClientAreaChangeRequest argument by copyReinUsesLisp
There's no performance improvement in passing an unsigned pair by reference.
2019-04-16yuzu/bootmanager: Remove unnecessary includesLioncash
This include isn't used anymore so it can be removed.
2019-04-13Merge pull request #2017 from jroweboy/glwidgetbunnei
Frontend: Migrate to QOpenGLWindow and support shared contexts
2019-04-01general: Use deducation guides for std::lock_guard and std::unique_lockLioncash
Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
2019-03-25bootmanager: Bypass input focus issuesReinUsesLisp
2019-03-25bootmanager: Delete container to avoid crash on game restartingReinUsesLisp
While we are at it, remove nullptr checks for deletion, since the C++ standard defines that delete does it by its own
2019-02-06gl_shader_cache: Link loading screen with disk shader cache loadReinUsesLisp
2019-01-21QT Frontend: Migrate to QOpenGLWindowJames Rowe
2019-01-19QT Frontend: Add a Loading screen with progressbarJames Rowe
With shader caches on the horizon, one requirement is to provide visible feedback for the progress. The shader cache reportedly takes several minutes to load for large caches that were invalidated, and as such we should provide a loading screen with progress. Adds a loading screen widget that will be shown until the first frame of the game is swapped. This was chosen in case shader caches are not being used, several games still take more than a few seconds to launch and could benefit from a loading screen.
2018-12-18yuzu, video_core: Screenshot functionalityzhupengfei
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-10-09implemented touch in Qt and SDLNeatNit
change TouchToPixelPos to return std::pair<int, int> static_cast (SDL) various minor style and code improvements style - PascalCase for function names made touch events private const pointer arg in touch events make TouchToPixelPos a const member function did I do this right? braces on barely-multiline if remove question comment (confirmed in Discord) fixed consts remove unused parameter from TouchEndEvent DRY - High-DPI scaled touch put in separate function also fixes a bug where if you start touching (with either mouse or touchscreen) and drag the mouse to the LEFT of the emulator window, the touch point jumps to the RIGHT side of the touchscreen; draggin to above the window would make it jump to the bottom. implicit conversion from QPoint to QPointF, apparently I have no idea what const even means but I'll put it here anyway remove unused or used-once variables make touch scaling functions const, and put their implementations together removed unused FingerID parameters QTouchEvent forward declaration; add comment to TouchBegin that was lost in an edit better DRY in SDL To do -> TODO(NeatNit) remove unused include
2018-08-11core: Namespace EmuWindowLioncash
Gets the class out of the global namespace.
2018-08-06qt: Add missing override specifiers where applicableLioncash
2018-01-17bootmanager: Minor tidiness/correctness changesLioncash
Moved over from #3266 in citra.
2018-01-12Massive removal of unused modulesJames Rowe