| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Instead of checking a environment variable which may not actually
exist or is just wrong, ask QT if it's running on the wayland
platform.
|
|
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
|
|
[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
|
|
If a GraphicsContext is destroyed before its Scoped is destroyed, this
causes a crash as the Scoped tries to call a method in the destroyed
context on exit.
Add a way to Cancel the call when we know that calling the
GraphicsContext will not work.
|
|
|
|
|
|
This is only a 2-tuple, so it can be converted over to the std::pair
class.
|
|
This is more concise and consistent with the rest of the codebase.
|
|
|
|
|
|
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.
|
|
Ensures that callers make use of the constructor, preventing bugs from
silently occurring.
|
|
Create Vulkan instances and surfaces from the Vulkan backend.
|
|
|
|
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
|
|
|
|
|
|
|
|
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
|
|
There's no performance improvement in passing an unsigned pair by
reference.
|
|
This class is used in a polymorphic context, so destruction of the
context will lead to undefined behavior if the destructor isn't virtual.
|
|
This member function doesn't modify instance state, so it can have the
const specifier applied to it.
|
|
|
|
Previously we weren't always initializing all members of the struct.
Prevents potentially wonky behavior from occurring.
|
|
Gets the class out of the global namespace.
|
|
|
|
|
|
|
|
This removes a dependency inversion between core and common. It's also
the proper place for the file since it makes screen layout decisions
specific to the 3DS.
|
|
1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID
2. removed button handling in EmuWindow
3. removed key_map
4. cleanup #include
|
|
|
|
|
|
|
|
* Removes circular dependences (common should not depend on core)
|
|
Also minor style changes
|
|
Allows users to choose a single screen layout or a large screen layout.
Adds a configuration option to change the prominent screen.
|
|
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If the mouse position for a mouse move/drag would take it outside the emulated screen dimensions, clip the coordinates to
the emulated screen dimensions.
Qt and GLFW will report negative coordinates for mouse positions to the left, or above citra window. Added restriction
to mouse coordinates passed to touchmoved by Qt/GLFW to be greater or equal to zero.
|
|
in GetTouchState()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Implementing this function currently is not critical, as we don't perform any configuration changes, yet.
However, the interface is a good starting point for adding this functionality.
|
|
|
|
The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there.
Providing properly thread-safe window title getters and setters is a mess anyway.
|
|
|
|
|
|
|
|
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window.
On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
|
|
Gets rid of a warning on OSX.
|
|
|
|
Uses QSettings on citra-qt, and inih on citra-cli.
|
|
|
|
|
|
|
|
|
|
|
|
- cleaned up window title
- cleaned up emu_window_glfw/emu_window
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|