Remove the separate simple_image_modified field, instead, the image_modified value is updated if the simple image is changed while there is no RAM image.
This robustifies the tracking on the GSG end, which previously ended up repeatedly calling upload_texture() unnecessarily
The task is implemented with just a simple lambda, much more compact than a whole TextureReloadRequest task. The latter is now deprecated.
Since Loader can't be used within Texture, there's now a new task chain, configurable with texture-reload-num-threads and texture-reload-thread-priority. This does mean that it no longer happens on the same thread as model loads, but I think that's fine, and perhaps texture reloads should be higher priority than model loads anyway since a long texture reload delay with allow-incomplete-render directly and negatively affects user experience during gameplay.
The new name also better communicates that it just calls get_ram_image(), it doesn't force a reload, but we could add an async_reload() for that if we want.
It's unfortunate that we now have three maps on EventHandler for three different types of functions. I'd love to unify them all under std::function, but the fact that it doesn't support comparison means the behavior would be different.
Perhaps in the future we can create a new interface or deprecate the existing behaviors and unify everything under std::function.
This is wasteful (especially when the bam file already has the simple RAM images baked in if needed) since we are throwing away the texture data right away anyway. Just locate it on disk, it will be loaded later when it is needed.
Fixes#1208
In particular, these optimize the traversal of nodes that are not in view, which are discarded more efficiently.
This change affects both the cull and collision traversers.
The `play_rate` property invokes the underlying C++ `set_play_rate` method, which leads to a bug (#1202).
The property is now redefined to make it invoke the overriding `MetaInterval.set_play_rate` method instead.
Fixes#1202Closes#1204