* Truly, this is a sad day. But unfortunately many dependencies are just
not supported and it's increasingly difficult to stay on VS2010.
* In an ideal world, the IDE and compiler would be decoupled, but that's
not the case.
* A 64-bit install has an x86 subfolder to capture 32-bit programs. If
a 32-bit program then launches a 64-bit program we need to 'promote'
back to run the original bitness to capture it.
* It's still not supported to capture 64-bit in general from just a
32-bit install as the support files aren't included.
* Using OS-specific append writing functions instead of simple fopen/
fwrite/fclose we can guarantee that multiple processes writing to the
same log file won't trash or interleave their log output.
* To make the logs readable the PID is now included along with the
project/timestamp.
* After that, we make sure that when we launch a program we set the
output log to the same file as the parent UI. This keeps all the logs
together and removes user confusion over which logfile is needed.
* We also move all of RenderDoc's temporary files under a RenderDoc
folder in the temp folder, instead of scattering the files in the root
* This also fixes the problem of capturing 32-bit programs with 64-bit
RenderDoc failing to properly insert environment variables and
error'ing when it tries to do it directly.
* This allows qrenderdoc to link properly when opened directly in
qtcreator, as otherwise it doesn't know where to link to the generated
librenderdoc.so somewhere in CMake's build directory
* 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).
* 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.
* Also allow disabling GL a little better by removing the dependency in
renderdoccmd.
* Disabling them now completely removes all xcb and xlib build
dependencies. The resulting library/executable is only useful in
limited situations - e.g. replaying vulkan remotely which doesn't need
any window system interaction. Or capturing vulkan as well with the
KHR_display WSI extension which doesn't need any built-time includes
or libs.
* 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.