bevy v0.9.0 Release Notes
Release Date: 2022-11-12 // over 2 years ago-
β Added
- Bloom
- Add FXAA postprocessing
- Fix color banding by dithering image before quantization
- π Plugins own their settings. Rework PluginGroup trait.
- Add global time scaling
- add globals to mesh view bind group
- π» Add UI scaling
- Add FromReflect for Timer
- Re-add local bool
has_received_time
intime_system
- 0οΈβ£ Add default implementation of Serialize and Deserialize to Timer and Stopwatch
- add time wrapping to Time
- Stopwatch elapsed secs f64
- Remaining fn in Timer
- π Support array / cubemap / cubemap array textures in KTX2
- β Add methods for silencing system-order ambiguity warnings
- bevy_dynamic_plugin: make it possible to handle loading errors
- π can get the settings of a plugin from the app
- π Use plugin setup for resource only used at setup time
- β‘οΈ Add
TimeUpdateStrategy
resource for manualTime
updating - π dynamic scene builder
- Create a scene from a dynamic scene
- Scene example: write file in a task
- Add writing of scene data to Scene example
- π― can clone a scene
- Add "end of main pass post processing" render graph node
- Add
Camera::viewport_to_world
- Sprite: allow using a sub-region (Rect) of the image
- Add missing type registrations for bevy_math types
- Add
serialize
feature tobevy_core
- add serialize feature to bevy_transform
- Add associated constant
IDENTITY
toTransform
and friends. - bevy_reflect: Add
Reflect::into_reflect
- Add reflect_owned
Reflect
forTonemapping
andClusterConfig
- 0οΈβ£ add
ReflectDefault
to std types - Add FromReflect for Visibility
- π Register
RenderLayers
type inCameraPlugin
- Enable Constructing ReflectComponent/Resource
- π Support multiple
#[reflect]
/#[reflect_value]
+ improve error messages - 0οΈβ£ Reflect Default for GlobalTransform
- Impl Reflect for PathBuf and OsString
- 0οΈβ£ Reflect Default for
ComputedVisibility
andHandle<T>
- Register
Wireframe
type - Derive
FromReflect
forTransform
andGlobalTransform
- Make arrays behave like lists in reflection
- Implement
Debug
for dynamic types - Implemented
Reflect
for all the ranges - Add
pop
method forList
trait. - bevy_reflect:
GetTypeRegistration
forSmallVec<T>
- register missing reflect types
- bevy_reflect: Get owned fields
- bevy_reflect: Add
FromReflect
to the prelude - implement
Reflect
forInput<T>
, some misc improvements to reflect value derive - register
Cow<'static, str>
for reflection - bevy_reflect: Relax bounds on
Option<T>
- π remove
ReflectMut
in favor ofMut<dyn Reflect>
- add some info from
ReflectPathError
to the error messages - Added reflect/from reflect impls for NonZero integer types
- β‘οΈ bevy_reflect: Update enum derives
- Add
reflect(skip_serializing)
which retains reflection but disables automatic serialization - bevy_reflect: Reflect enums
- Disabling default features support in bevy_ecs, bevy_reflect and bevy
- expose window alpha mode
- Make bevy_window and bevy_input events serializable
- Add window resizing example
- feat: add GamepadInfo, expose gamepad names
- Derive
Reflect
+FromReflect
for input types - Make TouchInput and ForceTouch serializable
- Add a Gamepad Viewer tool to examples
- Derived
Copy
trait forbevy_input
events,Serialize
/Deserialize
for events inbevy_input
andbevy_windows
,PartialEq
for events in both, andEq
where possible in both. - π Support for additional gamepad buttons and axis
- Added keyboard scan input event
- π Add
set_parent
andremove_parent
toEntityCommands
- Add methods to
Query<&Children>
andQuery<&Parent>
to iterate over descendants and ancestors - Add
is_finished
toTask<T>
- Expose mint feature in bevy_math/glam
- Utility methods for Val
- Register missing bevy_text types
- Add additional constructors for
UiRect
to specify values for specific fields - Add AUTO and UNDEFINED const constructors for
Size
- Add Exponential Moving Average into diagnostics
- Add
send_event
and friends toWorldCell
- Add a method for accessing the width of a
Table
- Add iter_entities to World #6228
- β± Adding Debug implementations for App, Stage, Schedule, Query, QueryState, etc.
- Add a method for mapping
Mut<T>
->Mut<U>
- implemented #[bundle(ignore)]
- Allow access to non-send resource through
World::resource_scope
- Add get_entity to Commands
- Added the ability to get or set the last change tick of a system.
- Add a module for common system
chain
/pipe
adapters - SystemParam for the name of the system you are currently in
- β Warning message for missing events
- Add a change detection bypass and manual control over change ticks
- Add into_world_mut to EntityMut
- Add
FromWorld
bound toT
inLocal<T>
- π Add
From<EntityMut>
for EntityRef (fixes #5459) - Implement IntoIterator for ECS wrapper types.
- π― add
Res::clone
- Add CameraRenderGraph::set
- Use wgsl saturate
- Add mutating
toggle
method toVisibility
component - Add globals struct to mesh2d
- π add support for .comp glsl shaders
- Implement
IntoIterator
for&Extract<P>
- π― add Debug, Copy, Clone derives to Circle
- π Add TextureFormat::Rg16Unorm support for Image and derive Resource for SpecializedComputePipelines
- Add
bevy_render::texture::ImageSettings
to prelude - Add
Projection
component to prelude. - π Expose
Image
conversion functions (fixes #5452) - π± Macro for Loading Internal Binary Assets
- Add
From<String>
forAssetPath<'a>
- Add Eq & PartialEq to AssetPath
- add
ReflectAsset
andReflectHandle
- β Add warning when using load_folder on web
- Expose rodio's Source and Sample traits in bevy_audio
- Add a way to toggle
AudioSink
π Changed
- separate tonemapping and upscaling passes
- π Rework ViewTarget to better support post processing
- bevy_reflect: Improve serialization format even more
- bevy_reflect: Binary formats
- π Unique plugins
- π Support arbitrary RenderTarget texture formats
- Make
Resource
trait opt-in, requiring#[derive(Resource)]
V2 - Replace
WorldQueryGats
trait with actual gats - π» Change UI coordinate system to have origin at top left corner
- π Move the cursor's origin back to the bottom-left
- π» Add z-index support with a predictable UI stack
- TaskPool Panic Handling
- Implement
Bundle
forComponent
. UseBundle
tuples for insertion - Spawn now takes a Bundle
- make
WorldQuery
very flat - π Accept Bundles for insert and remove. Deprecate insert/remove_bundle
- Exclusive Systems Now Implement
System
. Flexible Exclusive System Params - bevy_scene: Serialize entities to map
- bevy_scene: Stabilize entity order in
DynamicSceneBuilder
- bevy_scene: Replace root list with struct
- bevy_scene: Use map for scene
components
- Start running systems while prepare_systems is running
- Extract Resources into their own dedicated storage
- get proper texture format after the renderer is initialized, fix #3897
- Add getters and setters for
InputAxis
andButtonSettings
- Clean up Fetch code
- Nested spawns on scope
- Skip empty archetypes and tables when iterating over queries
- Increase the
MAX_DIRECTIONAL_LIGHTS
from 1 to 10 - bevy_pbr: Normalize skinned normals
- π remove mandatory mesh attributes
- Rename
play
tostart
and add newplay
method that won't overwrite the existing animation if it's already playing - Replace the
bool
argument ofTimer
withTimerMode
- improve panic messages for add_system_to_stage and add_system_set_to_stage
- 0οΈβ£ Use default serde impls for Entity
- scenes: simplify return type of iter_instance_entities
- Consistently use
PI
to specify angles in examples. - Remove
Transform::apply_non_uniform_scale
- Rename
Transform::mul_vec3
totransform_point
and improve docs - make
register
onTypeRegistry
idempotent - do not set cursor grab on window creation if not asked for
- Make
raw_window_handle
field inWindow
andExtractedWindow
anOption
. - π Support monitor selection for all window modes.
Gamepad
type isCopy
; do not require / return references to it inGamepads
API- β‘οΈ Update tracing-chrome to 0.6.0
- β‘οΈ Update to ron 0.8
- β‘οΈ Update clap requirement from 3.2 to 4.0
- β‘οΈ Update glam 0.22, hexasphere 8.0, encase 0.4
- β‘οΈ Update
wgpu
to 0.14.0,naga
to0.10.0
,winit
to 0.27.4,raw-window-handle
to 0.5.0,ndk
to 0.7 - β‘οΈ Update to notify 5.0 stable
- β‘οΈ Update rodio requirement from 0.15 to 0.16
- π remove copyless
- Mark
Task
as#[must_use]
- Swap out num_cpus for std::thread::available_parallelism
- π» Cleaning up NodeBundle, and some slight UI module re-organization
- 0οΈβ£ Make the default background color of
NodeBundle
transparent - Rename
UiColor
toBackgroundColor
- changed diagnostics from seconds to milliseconds
- π Remove unnecesary branches/panics from Query accesses
debug_checked_unwrap
should track its caller- Speed up
Query::get_many
and add benchmarks - Rename system chaining to system piping
- π [Fixes #6059]
Entity
's βIDβ should be named βindexβ instead Query
filter types must beReadOnlyWorldQuery
- π Remove ambiguity sets
- relax
Sized
bounds around change detection types - π Remove ExactSizeIterator from QueryCombinationIter
- π Remove Sync bound from Command
- Make most
Entity
methodsconst
- Remove
insert_resource_with_id
- π― Avoid making
Fetch
sClone
- π Remove
Sync
bound fromLocal
- Replace
many_for_each_mut
withiter_many_mut
. - bevy_ecs: Use 32-bit entity ID cursor on platforms without AtomicI64
- π» Specialize UI pipeline on "hdr-ness"
- Allow passing
glam
vector types as vertex attributes - Add multi draw indirect draw calls
- Take DirectionalLight's GlobalTransform into account when calculating shadow map volume (not just direction)
- Respect mipmap_filter when create ImageDescriptor with linear()/nearest()
- 0οΈβ£ use bevy default texture format if the surface is not yet available
- π² log pipeline cache errors earlier
- Merge TextureAtlas::from_grid_with_padding into TextureAtlas::from_grid through option arguments
- Reconfigure surface on present mode change
- Use 3 bits of PipelineKey to store MSAA sample count
- π± Limit FontAtlasSets
- π Move
sprite::Rect
intobevy_math
- Make vertex colors work without textures in bevy_sprite
- 0οΈβ£ use bevy_default() for texture format in post_processing
- π» don't render completely transparent UI nodes
- make TextLayoutInfo a Component
- make
Handle::<T>
field id private, and replace with a getter - Remove
AssetServer::watch_for_changes()
- Rename Handle::as_weak() to cast_weak()
- π Remove
Sync
requirement inDecodable::Decoder
π Fixed
- β‘οΈ Optimize rendering slow-down at high entity counts
- bevy_reflect: Fix
DynamicScene
not respecting component registrations during serialization - π fixes the types for Vec3 and Quat in scene example to remove WARN from the logs
- Fix end-of-animation index OOB
- π bevy_reflect: Remove unnecessary
Clone
bounds - bevy_reflect: Fix
apply
method forOption<T>
- π Fix outdated and badly formatted docs for
WindowDescriptor::transparent
- disable window pre creation for ios
- π Remove unnecessary unsafe
Send
andSync
impl forWinitWindows
on wasm. - Fix window centering when scale_factor is not 1.0
- fix order of exit/close window systems
- bevy_input: Fix process touch event
- fix: explicitly specify required version of async-task
- Fix
clippy::iter_with_drain
- Use
cbrt()
instead ofpowf(1./3.)
- π Fix
RemoveChildren
command - Fix inconsistent children removal behavior
- tick local executor
- Fix panic when the primary window is closed
- π» UI scaling fix
- π» Fix clipping in UI
- π» Fixes scroll example after inverting UI Y axis
- π Fixes incorrect glyph positioning for text2d
- π Clean up taffy nodes when UI node entities are removed
- Fix unsound
EntityMut::remove_children
. AddEntityMut::world_scope
- Fix spawning empty bundles
- Fix query.to_readonly().get_component_mut() soundness bug
- #5817: derive_bundle macro is not hygienic
- drop old value in
insert_resource_by_id
if exists - Fix lifetime bound on
From
impl forNonSendMut
->Mut
- Fix
mesh.wgsl
error for meshes without normals - π Fix panic when using globals uniform in wasm builds
- Resolve most remaining execution-order ambiguities
- Call
mesh2d_tangent_local_to_world
with the right arguments - π Fixes Camera not being serializable due to missing registrations in core functionality.
- fix spot dir nan bug
- use alpha mask even when unlit
- π§ Ignore
Timeout
errors on Linux AMD & Intel - adjust cluster index for viewport origin
- β‘οΈ update camera projection if viewport changed
- Ensure 2D phase items are sorted before batching
- bevy_pbr: Fix incorrect and unnecessary normal-mapping code
- Add explicit ordering between
update_frusta
andcamera_system
- bevy_pbr: Fix tangent and normal normalization
- Fix shader syntax
- Correctly use as_hsla_f32 in
Add<Color>
andAddAssign<Color>
, fixes #5543 - Sync up bevy_sprite and bevy_ui shader View struct
- Fix View by adding missing fields present in ViewUniform
- Freeing memory held by visible entities vector
- π Correctly parse labels with '#'
Previous changes from v0.8.0
-
β Added
- Callable PBR functions
- Spotlights
- Camera Driven Rendering
- Camera Driven Viewports
- π Visibilty Inheritance, universal
ComputedVisibility
, andRenderLayers
support - π Better Materials:
AsBindGroup
trait and derive, simplerMaterial
trait - β‘οΈ Derive
AsBindGroup
Improvements: Better errors, more options, update examples - π Support
AsBindGroup
for 2d materials as well - Parallel Frustum Culling
- Hierarchy commandization
- Generate vertex tangents using mikktspace
- Add a
SpatialBundle
withVisibility
andTransform
components - Add
RegularPolygon
andCircle
meshes - Add a
SceneBundle
to spawn a scene - Allow higher order systems
- Add global
init()
andget()
accessors for all newtypedTaskPools
- Add reusable shader functions for transforming position/normal/tangent
- π Add support for vertex colors
- π Add support for removing attributes from meshes
- Add option to center a window
- Add
depth_load_op
configuration field toCamera3d
- π¨ Refactor
Camera
methods and add viewport rect - π Add
TextureFormat::R16Unorm
support forImage
- Add a
VisibilityBundle
withVisibility
andComputedVisibility
components - π Add ExtractResourcePlugin
- Add depth_bias to SpecializedMaterial
- Added
offset
parameter toTextureAtlas::from_grid_with_padding
- Add the possibility to create custom 2d orthographic cameras
- bevy_render: Add
attributes
andattributes_mut
methods toMesh
- Add helper methods for rotating
Transform
s - Enable wgpu profiling spans when using bevy's trace feature
- bevy_pbr: rework
extract_meshes
- Add
inverse_projection
andinverse_view_proj
fields to shader view uniform - Add
ViewRangefinder3d
to reduce boilerplate when enqueuing standard 3DPhaseItems
- Create
bevy_ptr
standalone crate - Add
IntoIterator
impls for&Query
and&mut Query
- Add untyped APIs for
Components
andResources
- Add infallible resource getters for
WorldCell
- π Add
get_change_ticks
method toEntityRef
andEntityMut
- Add comparison methods to
FilteredAccessSet
- Add
Commands::new_from_entities
- Add
QueryState::get_single_unchecked_manual
and its family members - Add
ParallelCommands
system parameter - Add methods for querying lists of entities
- Implement
FusedIterator
for eligibleIterator
types - Add
component_id()
function toWorld
andComponents
- Add ability to inspect entity's components
- Add a more helpful error to help debug panicking command on despawned entity
- Add
ExactSizeIterator
implementation forQueryCombinatonIter
- Added the
ignore_fields
attribute to the derive macros for*Label
types - Exact sized event iterators
- Add a
clear()
method to theEventReader
that consumes the iterator - Add helpers to send
Events
fromWorld
- π Add file metadata to
AssetIo
- Add missing audio/ogg file extensions: .oga, .spx
- π± Add
reload_asset
method toAssetServer
- Allow specifying chrome tracing file path using an environment variable
- Create a simple tool to compare traces between executions
- Add a tracing span for run criteria
- Add tracing spans for
Query::par_for_each
and its variants. - π Add a
release_all
method onInput
- Add a
reset_all
method onInput
- π Add a helper tool to build examples for wasm
- bevy_reflect: add a
ReflectFromPtr
type to create&dyn Reflect
from a*const ()
- 0οΈβ£ Add a
ReflectDefault
type and add#[reflect(Default)]
to all component types that implement Default and are user facing - Add a macro to implement
Reflect
for struct types and migrate glam types to use this for reflection - bevy_reflect: reflect arrays
- bevy_reflect: reflect char
- bevy_reflect: add
GetTypeRegistration
impl for reflected tuples - Add reflection for
Resources
- bevy_reflect: add
as_reflect
andas_reflect_mut
methods onReflect
- Add an
apply_or_insert
method toReflectResource
andReflectComponent
- bevy_reflect:
IntoIter
forDynamicList
andDynamicMap
- bevy_reflect: Add
PartialEq
to reflectedf32
s andf64
s - Create mutable versions of
TypeRegistry
methods - bevy_reflect: add a
get_boxed
method toreflect_trait
- 0οΈβ£ bevy_reflect: add
#[reflect(default)]
attribute forFromReflect
- bevy_reflect: add statically available type info for reflected types
- Add an
assert_is_exclusive_system
function - π bevy_ui: add a multi-windows check for
Interaction
(we dont yet support multiple windows)
π Changed
- Depend on Taffy (a Dioxus and Bevy-maintained fork of Stretch)
- Use lifetimed, type erased pointers in bevy_ecs
- Migrate to
encase
fromcrevice
- β‘οΈ Update
wgpu
to 0.13 - Pointerfication followup: Type safety and cleanup
- bevy_ptr works in no_std environments
- Fail to compile on 16-bit platforms
- Improve ergonomics and reduce boilerplate around creating text elements
- π» Don't cull
Ui
nodes that have a rotation - Rename
ElementState
toButtonState
- π Move
Size
tobevy_ui
- π Move
Rect
tobevy_ui
and rename it toUiRect
- Modify
FontAtlas
so that it can handle fonts of any size - Rename
CameraUi
- Remove
task_pool
parameter frompar_for_each(_mut)
- Copy
TaskPool
resoures to sub-Apps - π Allow closing windows at runtime
- π§ Move the configuration of the
WindowPlugin
to aResource
- Optionally resize
Window
canvas element to fit parent element - Change window resolution types from tuple to
Vec2
- β‘οΈ Update time by sending frame
Instant
through a channel - Split time functionality into
bevy_time
- Split mesh shader files to make the shaders more reusable
- Set
naga
capabilities corresponding towgpu
features - Separate out PBR lighting, shadows, clustered forward, and utils from pbr.wgsl
- Separate PBR and tonemapping into 2 functions
- Make
RenderStage::Extract
run on the render world - 0οΈβ£ Change default
FilterMode
ofImage
toLinear
- bevy_render: Fix KTX2 UASTC format mapping
- Allow rendering meshes without UV coordinate data
- Validate vertex attribute format on insertion
- Use
Affine3A
forGlobalTransform
to allow any affine transformation - Recalculate entity
AABB
s when meshes change - Change
check_visibility
to use thread-local queues instead of a channel - Allow unbatched render phases to use unstable sorts
- Extract resources into their target location
- Enable loading textures of unlimited size
- Do not create nor execute render passes which have no
PhaseItems
to draw - Filter material handles on extraction
- Apply vertex colors to
ColorMaterial
andMesh2D
- Make
MaterialPipelineKey
fields public - Simplified API to get NDC from camera and world position
- Set
alpha_mode
based on alpha value - Make
Wireframe
respectVisibleEntities
- Use const
Vec2
in lights cluster and bounding box when possible - Make accessors for mesh vertices and indices public
- Use
BufferUsages::UNIFORM
forSkinnedMeshUniform
- π Place origin of
OrthographicProjection
at integer pixel when usingScalingMode::WindowSize
- Make
ScalingMode
more flexible - π Move texture sample out of branch in
prepare_normal
- Make the fields of the
Material2dKey
public - π Use collect to build mesh attributes
- Replace
ReadOnlyFetch
withReadOnlyWorldQuery
- π Replace
ComponentSparseSet
's internals with aColumn
- π Remove QF generics from all
Query/State
methods and types - π Remove
.system()
- β‘οΈ Make change lifespan deterministic and update docs
- Make derived
SystemParam
readonly if possible - Merge
matches_archetype
andmatches_table
- Allows conversion of mutable queries to immutable queries
- Skip
drop
whenneeds_drop
isfalse
- π Use u32 over usize for
ComponentSparseSet
indicies - π Remove redundant
ComponentId
inColumn
- π Directly copy moved
Table
components to the target location SystemSet::before
andSystemSet::after
now takeAsSystemLabel
- Converted exclusive systems to parallel systems wherever possible
- Improve
size_hint
onQueryIter
- Improve debugging tools for change detection
- Make
RunOnce
a non-manualSystem
impl - Apply buffers in
ParamSet
- Don't allocate for
ComponentDescriptors
of non-dynamic component types - Mark mutable APIs under ECS storage as
pub(crate)
- β‘οΈ Update
ExactSizeIterator
impl to support archetypal filters (With
,Without
) - π Removed world cell from places where split multable access is not needed
- Add Events to
bevy_ecs
prelude - Improve
EntityMap
API - Implement
From<bool>
forShouldRun
. - Allow iter combinations on custom world queries
- Simplify design for
*Label
s - Tidy up the code of events
- 0οΈβ£ Rename
send_default_event
tosend_event_default
on world - enable optional dependencies to stay optional
- π Remove the dependency cycles
- Enforce type safe usage of Handle::get
- Export anyhow::error for custom asset loaders
- Update
shader_material_glsl
example to include texture sampling - π Remove unused code in game of life shader
- Make the contributor birbs bounce to the window height
- Improve Gamepad D-Pad Button Detection
- π bevy_reflect: support map insertio
- bevy_reflect: improve debug formatting for reflected types
- bevy_reflect_derive: big refactor tidying up the code
- π¨ bevy_reflect: small refactor and default
Reflect
methods - Make
Reflect
safe to implement bevy_reflect
: putserialize
into externalReflectSerialize
type- π Remove
Serialize
impl fordyn Array
and friends - Re-enable
#[derive(TypeUuid)]
for generics - π Move primitive type registration into
bevy_reflect
- Implement reflection for more
glam
types - Make
reflect_partial_eq
return more accurate results - Make public macros more robust with
$crate
- Ensure that the parent is always the expected entity
- π Support returning data out of
with_children
- π Remove
EntityMut::get_unchecked
- Diagnostics: meaningful error when graph node has wrong number of inputs
- π Remove redundant
Size
import - Export and register
Mat2
. - Implement
Debug
forGamepads
- β‘οΈ Update codebase to use
IntoIterator
where possible. - 0οΈβ£ Rename
headless_defaults
example tono_renderer
for clarity - π Remove dead
SystemLabelMarker
struct - π bevy_reflect: remove
glam
from a test which is active without the glam feature - β Disable vsync for stress tests
- Move
get_short_name
utility method frombevy_reflect
intobevy_utils
- 0οΈβ£ Derive
Default
for enums where possible - Implement
Eq
andPartialEq
forMouseScrollUnit
- Some cleanup for
bevy_ptr
- Move float_ord from
bevy_core
tobevy_utils
- π Remove unused
CountdownEvent
- Some minor cleanups of asset_server
- Use
elapsed()
onInstant
- β‘οΈ Make paused
Timers
updatejust_finished
on tick - π bevy_utils: remove hardcoded log level limit
- Make
Time::update_with_instant
public for use in tests - Do not impl Component for Task
- π Remove nonexistent
WgpuResourceDiagnosticsPlugin
- β‘οΈ Update ndk-glue requirement from 0.5 to 0.6
- β‘οΈ Update tracing-tracy requirement from 0.8.0 to 0.9.0
- β‘οΈ update image to 0.24
- β‘οΈ update xshell to 0.2
- β‘οΈ Update gilrs to v0.9
- β¬οΈ bevy_log: upgrade to tracing-tracy 0.10.0
- β‘οΈ update hashbrown to 0.12
- β‘οΈ Update
clap
to 3.2 in tools usingvalue_parser
- β‘οΈ Updated
glam
to0.21
. - β‘οΈ Update Notify Dependency
π Fixed
- bevy_ui: keep
Color
as 4f32
s - Fix issues with bevy on android other than the rendering
- π Update layout/style when scale factor changes too
- Fix
Overflow::Hidden
so it works correctly withscale_factor_override
- Fix
bevy_ui
touch input - Fix physical viewport calculation
- Minimally fix the known unsoundness in
bevy_mikktspace
- β‘οΈ Make
Transform
propagation correct in the presence of updated children StorageBuffer
uses wrong type to calculate the buffer size.- Fix confusing near and far fields in Camera
- Allow minimising window if using a 2d camera
- WGSL: use correct syntax for matrix access
- Gltf: do not import
IoTaskPool
in wasm - Fix skinned mesh normal handling in mesh shader
- Don't panic when
StandardMaterial
normal_map
hasn't loaded yet - Fix incorrect rotation in
Transform::rotate_around
- Fix
extract_wireframes
- Fix type parameter name conflicts of
#[derive(Bundle)]
- π Remove unnecessary
unsafe impl
ofSend+Sync
forParallelSystemContainer
- Fix line material shader
- Fix
mouse_clicked
check for touch - Fix unsoundness with
Or
/AnyOf
/Option
component access - Improve soundness of
CommandQueue
- Fix some memory leaks detected by miri
- Fix Android example icon
- β
Fix broken
WorldCell
test - π Bugfix
State::set
transition condition infinite loop - Fix crash when using
Duration::MAX
- π Fix release builds: Move asserts under
#[cfg(debug_assertions)]
- Fix frame count being a float
- β Fix "unused" warnings when compiling with
render
feature but withoutanimation
- π Fix re-adding a plugin to a
PluginGroup
- Fix torus normals
- Add
NO_STORAGE_BUFFERS_SUPPORT
shaderdef when needed