The SDL backend crashes when you close a joystick after SDL_Quit has
been called. Some backends don't need to be shutdown and
re-initialized everytime, we can just ask to enumerate devices again.
It's questionable whether ES_LAUNCH should write *anything* to the
command structure at all, ever, given that it never actually returns
it back through the mailbox. But it *definitely* shouldn't write
anything to it if it has just launched a DOL, because otherwise it might
clobber code/data from the just-loaded application.
When booting "cooked" executables, BATs should already be set up and
enabled. They should only really be disabled when booting NAND contents
in real mode.
Should we ever introduce anything else that has to be done when a command
buffer is executed (e.g. invalidating constants from previous commit), we
don't have to update all the callers.
This could happen because the vertex memory was already committed, if a
uniform buffer allocation failed and caused a command buffer to be
executed, it would be associated with the previous command buffer rather
than the buffer containing the draw that consumed these vertices.
This was happening when a fence wait happened mid-frame. The data written
between the fence being queued and the allocation occuring was incorrectly
assumed to be consumed by the GPU.
Hotkeys
Make a new class that inherits from InputConfigDialog with a specialised constructor. The changes are mainly the top portion and it now uses tabs to categorise the hotkeys.
Redo the GCPad configuration dialog
The layout is similar, but it now allows flexibility to change it more easily.
Redo the GC Keyboard configuration dialog
Same layout.
Redo completely the Wiimote configuration dialog
Separated the controls into 2 tabs to make them less imposing overall.
Redo the Nunchuk configuration dialog
Similar layout, except for 2 control group sizers.
Redo the Classic controller configuration dialog
Same layout.
Redo the Guitar input configuration dialog
Stacked 2 sets of group together.
Redo the Turntable configuration dialog
More stacked groups and the window is much less wide.
Just setting up a switch on the type so that different dialogs can be instantiated. This also makes the extension type an enum because I don't see why not here and finally, it removes ControlGroupSizer. This removal allows to not dynamically generate the UI, but instead, let the specialised constructors do the layout.
Removed the unecessary forced tabbed layout, removed the layout part of the constructor and remade some method in preparation for tabbed styled input dialog such as the new hotkey configuration one. It breaks every inputconfigDialog, but this will get fixed in the next commits.
Also moved to a folder since there will be many more files created in the next commits so it gives better separation.
Making changes to ConfigManager.h has always been a pain, because
it means rebuilding half of Dolphin, since a lot of files depend on
and include this header.
However, it turns out some includes are unnecessary. This commit
removes ConfigManager includes from files which don't contain
SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the
ConfigManager include is not used).
(I've also had to get rid of some indirect includes.)