14 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			14 KiB
		
	
	
	
	
	
	
	
Changelog
While we try to keep the Unreleased changes updated, it is often behind master and does not include
all merged pull requests. To see a list of all changes since the latest release, you may compare
master using the git tags for releases.
For example,
https://github.com/bevyengine/bevy/compare/v0.2.1...master
to view all changes since the 0.2.1 release.
Unreleased
Added
- Touch Input
- iOS XCode Project
- Android Example and use bevy-glsl-to-spirv 0.2.0
- Introduce Mouse capture API
- bevy_input::touch: implement touch input
- D-pad support on MacOS
- Support for Android file system
- app: PluginGroups and DefaultPlugins
- PluginGroupis a collection of plugins where each plugin can be enabled or disabled.
 
- Support to get gamepad button/trigger values using Axis<GamepadButton>
- Expose Winit decorations
- Enable changing window settings at runtime
- Expose a pointer of EventLoopProxy to process custom messages
- Add a way to specify padding/ margins between sprites in a TextureAtlas
- Add bevy_ecs::Commands::removefor bundles
- impl DefaultforTextureFormat
- Expose current_entity in ChildBuilder
- AppBuilder::add_thread_local_resource
- Commands::write_world_boxedtakes a pre-boxed world writer to the ECS's command queue
- FrameTimeDiagnosticsPluginnow shows "frame count" in addition to "frame time" and "fps"
- Add hierarchy example
- WgpuPowerOptionsfor choosing between low power, high performance, and adaptive power
- Derive Debugfor more types: #597, #632
- Index buffer specialization
- More instructions for system dependencies
- Suggest -Zrun-dsymutil-nofor faster compilation on MacOS
Changed
- ecs: ergonomic query.iter(), remove locks, add QuerySets
- query.iter()is now a real iterator!
- QuerySetallows working with conflicting queries and is checked at compile-time.
 
- Rename query.entity()andquery.get()- query.get::<Component>(entity)is now- query.get_component::<Component>(entity)
- query.entity(entity)is now- query.get(entity)
 
- Asset system rework and GLTF scene loading
- Introduces WASM implementation of AssetIo
- Move transform data out of Mat4
- Separate gamepad state code from gamepad event code and other customizations
- gamepad: expose raw and filtered gamepad events
- Do not depend on spirv-reflectonwasm32target
- Move dynamic plugin loading to its own optional crate
- Add field to WindowDescriptoron wasm32 targets to optionally provide an existing canvas element as winit window
- Adjust how ArchetypeAccesstracks mutable & immutable deps
- Use FnOnceinCommandsandChildBuilderwhere possible
- Runners explicitly call App.initialize()
- sRGB awareness for Color- Color is now assumed to be provided in the non-linear sRGB colorspace.
Constructors such as Color::rgbandColor::rgbawill be converted to linear sRGB.
- New methods Color::rgb_linearandColor::rgba_linearwill accept colors already in linear sRGB (the old behavior)
- Individual color-components must now be accessed through setters and getters.
 
- Color is now assumed to be provided in the non-linear sRGB colorspace.
Constructors such as 
- Meshoverhaul with custom vertex attributes- Any vertex attribute can now be added over mesh.attributes.insert().
- See example/shader/mesh_custom_attribute.rs
- Removed VertexAttribute,Vertex,AsVertexBufferDescriptor.
- For missing attributes (requested by shader, but not defined by mesh), Bevy will provide a zero-filled fallback buffer.
 
- Any vertex attribute can now be added over 
- Despawning an entity multiple times causes a debug-level log message to be emitted instead of a panic: #649, #651
- Migrated to Rodio 0.12
- New method of playing audio can be found in the examples.
 
Fixed
- Properly update bind group ids when setting dynamic bindings
- Properly exit the app on AppExit event
- Fix FloatOrd hash being different for different NaN values
- Fix Added behavior for QueryOne get
- Update camera_system to fix issue with late camera addition
- Register IndexFormatas a property
- Fix breakout example bug
- Fix PreviousParent lag by merging parent update systems
- Fix bug of connection event of gamepad at startup
- Fix wavy text
Version 0.2.1 (2020-9-20)
Fixed
Version 0.2.0 (2020-9-19)
Added
- Task System for Bevy
- Replaces rayon with a custom designed task system that consists of several "TaskPools".
- Exports IOTaskPool,ComputePool, andAsyncComputePoolinbevy_taskscrate.
 
- Parallel queries for distributing work over with the ParallelIteratortrait.- e.g. query.iter().par_iter(batch_size).for_each(/* ... */)
 
- e.g. 
- Added gamepad support using Gilrs
- Implement WASM support for bevy_winit
- Create winit canvas under WebAssembly
- Implement single threaded task scheduler for WebAssembly
- Support for binary glTF (.glb).
- Support for Orin ECS queries.
- Added methods unload()andunload_sync()onSceneSpawnerfor unloading scenes..
- Custom rodio source for audio.
- AudioOuputis now able to play anything- Decodable.
 
- Color::hexfor creating- Colorfrom string hex values.- Accepts the forms RGB, RGBA, RRGGBB, and RRGGBBAA.
 
- Color::rgb_u8and- Color::rgba_u8.
- Added bevy_render::pass::ClearColorto prelude.
- SpriteResizeModemay choose how- Spriteresizing should be handled.- Automaticby default.
- Added methods on Input<T>for iterator access to keys.- get_pressed(),- get_just_pressed(),- get_just_released()
 
- Derived CopyforMouseScrollUnit.
- Derived Clonefor UI component bundles.
- Some examples of documentation
- Update docs for Updated, Changed and Mutated
- Tips for faster builds on macOS: #312, #314, #433
- Added and documented cargo features
- Added more instructions for Linux dependencies
- Arch / Manjaro, NixOS, Ubuntu and Solus
 
- Provide shell.nix for easier compiling with nix-shell
- Add AppBuilder::add_startup_stage_|before/after
Changed
- Transform rewrite
- Use generational entity ids and other optimizations
- Optimize transform systems to only run on changes.
- Send an AssetEvent when modifying using get_id_mut
- Rename Assets::get_id_mut->Assets::get_with_id_mut
- Support multiline text in DrawableText
- iOS: use shaderc-rs for glsl to spirv compilation
- Changed the default node size to Auto instead of Undefined to match the Stretch implementation.
- Load assets from root path when loading directly
- Add renderfeature, which makes the entire render pipeline optional.
Fixed
- Properly track added and removed RenderResources in RenderResourcesNode.
- Fixes issues where entities vanished or changed color when new entities were spawned/despawned.
 
- Fixed sprite clipping at same depth
- Transparent sprites should no longer clip.
 
- Check asset path existence
- Fixed deadlock in hot asset reloading
- Fixed hot asset reloading on Windows
- Allow glTFs to be loaded that don't have uvs and normals
- Fixed archetypes_generation being incorrectly updated for systems
- Remove child from parent when it is despawned
- Initialize App.schedule systems when running the app
- Fix missing asset info path for synchronous loading
- fix font atlas overflow
- do not assume font handle is present in assets
