While we try to keep the Unreleased
changes updated, it is often behind and does not include
all merged pull requests. To see a list of all changes since the latest release, you may compare
current changes on git with previous release tags.
- 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
PluginGroup
is 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::remove
for bundles - impl
Default
forTextureFormat
- Expose current_entity in ChildBuilder
AppBuilder::add_thread_local_resource
Commands::write_world_boxed
takes a pre-boxed world writer to the ECS's command queueFrameTimeDiagnosticsPlugin
now shows "frame count" in addition to "frame time" and "fps"- Add hierarchy example
WgpuPowerOptions
for choosing between low power, high performance, and adaptive power- Derive
Debug
for more types: #597, #632 - Index buffer specialization
- More instructions for system dependencies
- Suggest
-Zrun-dsymutil-no
for faster compilation on MacOS
- ecs: ergonomic query.iter(), remove locks, add QuerySets
query.iter()
is now a real iterator!QuerySet
allows working with conflicting queries and is checked at compile-time.
- Rename
query.entity()
andquery.get()
query.get::<Component>(entity)
is nowquery.get_component::<Component>(entity)
query.entity(entity)
is nowquery.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-reflect
onwasm32
target - Move dynamic plugin loading to its own optional crate
- Add field to
WindowDescriptor
on wasm32 targets to optionally provide an existing canvas element as winit window - Adjust how
ArchetypeAccess
tracks mutable & immutable deps - Use
FnOnce
inCommands
andChildBuilder
where 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::rgb
andColor::rgba
will be converted to linear sRGB. - New methods
Color::rgb_linear
andColor::rgba_linear
will 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
Mesh
overhaul 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.
- Added support for inserting custom initial values for
Local<T>
system resources #745
- 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
IndexFormat
as 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
- Task System for Bevy
- Replaces rayon with a custom designed task system that consists of several "TaskPools".
- Exports
IOTaskPool
,ComputePool
, andAsyncComputePool
inbevy_tasks
crate.
- Parallel queries for distributing work over with the
ParallelIterator
trait.- 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
Or
in ECS queries. - Added methods
unload()
andunload_sync()
onSceneSpawner
for unloading scenes.. - Custom rodio source for audio.
AudioOuput
is now able to play anythingDecodable
.
Color::hex
for creatingColor
from string hex values.- Accepts the forms RGB, RGBA, RRGGBB, and RRGGBBAA.
Color::rgb_u8
andColor::rgba_u8
.- Added
bevy_render::pass::ClearColor
to prelude. SpriteResizeMode
may choose howSprite
resizing should be handled.Automatic
by default.- Added methods on
Input<T>
for iterator access to keys.get_pressed()
,get_just_pressed()
,get_just_released()
- Derived
Copy
forMouseScrollUnit
. - Derived
Clone
for 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
- 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
render
feature, which makes the entire render pipeline optional.
- 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