 98938a8555
			
		
	
	
		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
		
			
				
	
	
		
			40 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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](https://www.khronos.org/gltf/) support.|
 | |
| |bevy_winit|GUI support.|
 | |
| |render|The render pipeline and all render related plugins.|
 | |
| |png|PNG picture format support.|
 | |
| |hdr|[HDR](https://en.wikipedia.org/wiki/High_dynamic_range) 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](https://crates.io/crates/libloading)).|
 | |
| |dynamic|Forces bevy to be dynamically linked, which improves iterative compile times.|
 | |
| |trace|Enables system tracing.|
 | |
| |trace_chrome|Enables [tracing-chrome](https://github.com/thoren-d/tracing-chrome) as bevy_log output. This allows you to visualize system execution.|
 | |
| |trace_tracy|Enables [Tracy](https://github.com/wolfpld/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.|
 |