mirror of
https://github.com/bevyengine/bevy
synced 2024-11-23 05:03:47 +00:00
98938a8555
Adds "hot reloading" of internal assets, which is normally not possible because they are loaded using `include_str` / direct Asset collection access. This is accomplished via the following: * Add a new `debug_asset_server` feature flag * When that feature flag is enabled, create a second App with a second AssetServer that points to a configured location (by default the `crates` folder). Plugins that want to add hot reloading support for their assets can call the new `app.add_debug_asset::<T>()` and `app.init_debug_asset_loader::<T>()` functions. * Load "internal" assets using the new `load_internal_asset` macro. By default this is identical to the current "include_str + register in asset collection" approach. But if the `debug_asset_server` feature flag is enabled, it will also load the asset dynamically in the debug asset server using the file path. It will then set up a correlation between the "debug asset" and the "actual asset" by listening for asset change events. This is an alternative to #3673. The goal was to keep the boilerplate and features flags to a minimum for bevy plugin authors, and allow them to home their shaders near relevant code. This is a draft because I haven't done _any_ quality control on this yet. I'll probably rename things and remove a bunch of unwraps. I just got it working and wanted to use it to start a conversation. Fixes #3660
2.1 KiB
2.1 KiB
Cargo Features
Default Features
feature name | description |
---|---|
bevy_audio | Audio support. Support for all audio formats depends on this. |
bevy_gilrs | Adds gamepad support. |
bevy_gltf | glTF support. |
bevy_winit | GUI support. |
render | The render pipeline and all render related plugins. |
png | PNG picture format support. |
hdr | HDR support. |
vorbis | Ogg Vorbis audio format support. |
x11 | Make GUI applications use X11 protocol. You could enable wayland feature to override this. |
filesystem_watcher | Enable watching the file system for asset hot reload |
Optional Features
feature name | description |
---|---|
bevy_dynamic_plugin | Plugin for dynamic loading (using libloading). |
dynamic | Forces bevy to be dynamically linked, which improves iterative compile times. |
trace | Enables system tracing. |
trace_chrome | Enables tracing-chrome as bevy_log output. This allows you to visualize system execution. |
trace_tracy | Enables Tracy as bevy_log output. This allows Tracy to connect to and capture profiling data as well as visualize system execution in real-time, present statistics about system execution times, and more. |
wgpu_trace | For tracing wgpu. |
dds | DDS picture format support. |
tga | TGA picture format support. |
jpeg | JPEG picture format support. |
bmp | BMP picture format support. |
flac | FLAC audio format support. It's included in bevy_audio feature. |
mp3 | MP3 audio format support. |
wav | WAV audio format support. |
serialize | Enables serialization of bevy_input types. |
wayland | Enable this to use Wayland display server protocol other than X11. |
subpixel_glyph_atlas | Enable this to cache glyphs using subpixel accuracy. This increases texture memory usage as each position requires a separate sprite in the glyph atlas, but provide more accurate character spacing. |
bevy_ci_testing | Used for running examples in CI. |
debug_asset_server | Enabling this turns on "hot reloading" of built in assets, such as shaders. |