This commit is a culmination of many commits made in the upstream
repository at https://gitlab.com/jgemu/nestopia and fixes a number
of warnings, making the codebase far more robust:
-Wimplicit-fallthrough
-Wunused-local-typedefs
-Wunused-private-field
-Wmaybe-uninitialized
-Wunused-variable
-Warray-bounds
-Wdelete-non-virtual-dtor
-Wsequence-point
-Wparentheses
Although it is unfortunate, macOS support for the FLTK port is still
not up to par with Linux and BSD. Changes in recent versions of macOS
seem to completely break frame pacing in FLTK, and seemingly also Qt
after some basic testing. It could be that some workarounds are
necessary, since SDL has no problem here, but it could also be the
long term effects of Apple hating OpenGL and leaving it to die on the
vine. Until this can be sorted out, macOS can't really be considered
fully supported, even with all of the effort put into it recently.
The world has changed a lot in recent years. VSync is going to give a
superior result if you run your monitor at a multiple of 60Hz on
X11 or Windows, but macOS and Wayland pose problems even then. Timer
is going to handle Wayland better at any refresh rate, and X11 and
Windows better at refresh rates that are not a multiple of 60. The
out-of-the-box experience is what people judge the project on, and
with Wayland becoming the default for popular distros, this is just
the safer choice.
Since all FLTKUI related code is either written from scratch for the
upcoming release or taken from "The Jolly Good Reference Frontend", I
have chosen to relicense to align with the JGRF sources. This
codebase as a whole is still released under the GPLv2+, but the FLTKUI
portions may be useful for other JG frontends that may pop up in the
future and may need to link against non-GPL sources.