* If there's no replay context we can still use the live connection to
copy and delete captures remotely. Try to use that whenever possible
and warn the user when it's not possible (i.e if the program has been
closed and there's no replay context, we have no way to access the
files anymore).
* If the user tries to open a remote log without a replay context,
prompt them either to swithc to a replay context on that host or to
save the log locally.
* This can happen if the program is closed, and no remote replay context
is active. Unlikely locally, the UI cannot natively save or delete
temporary captures.
* In GL although the ARB_dsa extension allows binding of cubemap faces
as if they were a 2D array (you know, the sane way), it doesn't let
the queries return the cubemap face to the LAYER query. Instead it
needs a separate query of CUBE_MAP_FACE.
* This is similar to the button on the capture dialog of the windows UI,
except on linux the situation is a bit more complex as layers can be
registered in two different system locations (one for distro packages
and one for non-distro stuff), as well as in $HOME.
* On linux we make sure the json always contains an absolute path so we
can tell from any given build whether or not a json is our own or not.
* By default we now install the json to /etc since /usr is reserved for
proper distro packages, and shouldn't be written to by 'make install'.
There's a CMake variable for overriding this for anyone who wants to
make install into a custom folder (maybe for packaging).
* It seems like actually ppSOTargets can only be NULL if NumBuffers is
0, but the D3D runtime will happily accept a null pOffsets and just
act as if it's full of -1 (which means append)
* This suppresses lines like "RenderDoc v0.31 x64 (...) loaded in replay
application" which are only useful for the logfile and not for actual
user output.
* Distributions will just be a tarball with binaries and library, so if
the user doesn't install it somewhere in LD_LIBRARY_PATH, we want it
to still work.
* 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).
* Without this sleep, a second CheckStatus() could actually receive a
busy signal on localhost (or a sufficiently fast connection or slow
computer) because the last client hang-up hasn't completed by the time
the next connection comes in.