* When transferring over the network, we keep texture data consistently
in GL origin-bottom-left order. This means we can just flip images on
display and otherwise have things consistently behaving, while still
preserving the behaviour of flipping on saving to disk to try and
mostly 'do the right thing' when saving an image.
* The behaviour should be the same as before except for remote proxying
which is fixed. The behaviour for GL is still that compressed images
saved as compressed will appear to flip vertically from what is
natively displayed in the UI, but I think this is the only sensible
way to behave (and anyway, flipping compressed images is far too
involved to be worthwhile).
* This is primarily for vulkan, which supports either xlib or xcb (and
not necessarily both). GL still only supports xlib, windows and
android only support one system regardless of API.
* This should also support xlib again for fetching keystates etc.
* Suggest users to use VS on Windows
* Add a top-level wrapper Makefile and disallow in-source builds
* Support clang
* Centralize compiler flags
* Remove all occurrences of "if(WIN32)..."
* Make qrenderdoc an external project
* When I went to explain to someone why the target was named Profile and
not Debug as you might expect, I realised the reasons were entirely
opaque and historical. So instead, rename it to Development since that
is really what it's for - any profiling would be done in Release mode.
* Two properties added - DisallowUserDocking which completely prevents
a toolwindow from being dragged or docked other than programmatically.
* HideCloseButton also hides the close button that normally appears on
the tabs created
* Also tabs now watch for title change signals and update the titles in
tabs.
* GUIInvoke helper changed to use QMetaObject::invokeMethod which works
on threads better.
* LambdaThread helper class now has a thread member, it doesn't derive
from thread (this seems to be recommended practice).