* Previously we were relying on the pipeline info create to initialise
the reflection for an entry point, now we do it on demand wherever it
is needed.
* This is a bit less ambiguous and less confusing in the case where
someone is expecting a "compile" type button instead of "save changes"
type button.
* If you have any questions about the analytics please contact me
directly at baldurk@baldurk.org
* Enabling this now to give realistic usage for anyone testing over the
next month, and also to pre-populate stats for the time 1.0 comes out.
* On windows it's strongly desired to be able to compile straight out of
a clean checkout or source download. This means anyone can download
the source and investigate something quickly, without having to worry
about the hassle of figuring out how the project downloads 3rd party
dependencies, fetching them, getting them registered in the right
place.
* This can't be put in a submodule as git submodules don't get
downloaded by default so people new to git will get confusing
compilation messages, and someone downloading the source from github
directly without cloning via git won't get submodules included.
* It does add some extra size to a fresh download/checkout which is
unfortunate, but absolutely worth the cost. Shallow checkouts still
aren't unfeasibly large, and it's only a one-off cost at clone time.
* It's already optional on linux due to distributions not necessarily
carrying packages for it yet. We also make it optional on windows
since by the same measure it's not a huge problem if it's missing, and
official builds will include it. This means we don't have to ship the
binary dependencies
* We don't consider anything else, this includes permissions or the
library being present. Since we no longer expect to patch in the
library we also don't check its version (however we leave the tag in
case it is useful in the future).
* If the user has root access we will never warn, assuming the injection
will work fine even without the debuggable flag.
* We also make the frame counting consistent: Frame 0 is the frame from
device initialisation to first present, Frame 1 is from first present
to second, and so on after that.