Before, streams were rewound when they stopped, so that next time they're played they're played from the start.
Instead, rewind on play instead, so that it's done when it's needed. This gets us a good point to make sure we're not rewinding raw streams too.
- Teach CMake how to compile binary resources to C headers, like xxd.
- Note: tup is already using xxd to do this.
- gitignore binary resource headers to reduce git noise and avoid problematic
interactions between git and build systems.
- Add config folder that contains tup config files. There is a default
config added to source control, but everything else in that folder is
gitignored so you can add your own custom configurations.
- Remove and gitignore tup.config.
- This results in the following setup:
- You can now create a tup.config symlink that points at the config
you want to use.
- Or, you can use the `tup variant` command to manage multiple build
configurations at the same time (e.g. debug, release, wasm).
I haven't been getting much value out of the emscripten CI, and having
two CI systems is kind of awkward. Also, travis doesn't let you change
the location of .travis.yml and it's cluttering up the root folder. It
is possible to add this back in the future if there's a need for it,
preferably using appveyor or some other system.
The OpenXR headset driver is not enabled by default, and it doesn't
seem like this will change soon, so let's omit the submodule
dependency to save the bytes/time.
This allows for headless operation. Currently GLFW throws an error
if you call glfwInit without an X server running, preventing lovr
from starting at all in that situation.
Because GLFW is currently used for time functions, those had to be
moved into the platform layer. There's lots of duplication here,
ideally the platform layer would just return raw timer values and the
timer module would handle the epoch logic, but it was too difficult to
coordinate that right now.
Also, lovrPlatformInit is guaranteed to set the time epoch to 0 now.