138 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			138 KiB
		
	
	
	
	
	
	
	
Changelog
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.
Version 0.9.0 (2022-11-12)
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_timeintime_system
- 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 TimeUpdateStrategyresource for manualTimeupdating
- 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 serializefeature tobevy_core
- add serialize feature to bevy_transform
- Add associated constant IDENTITYtoTransformand friends.
- bevy_reflect: Add Reflect::into_reflect
- Add reflect_owned
- Reflectfor- Tonemappingand- ClusterConfig
- add ReflectDefaultto std types
- Add FromReflect for Visibility
- Register RenderLayerstype inCameraPlugin
- Enable Constructing ReflectComponent/Resource
- Support multiple #[reflect]/#[reflect_value]+ improve error messages
- Reflect Default for GlobalTransform
- Impl Reflect for PathBuf and OsString
- Reflect Default for ComputedVisibilityandHandle<T>
- Register Wireframetype
- Derive FromReflectforTransformandGlobalTransform
- Make arrays behave like lists in reflection
- Implement Debugfor dynamic types
- Implemented Reflectfor all the ranges
- Add popmethod forListtrait.
- bevy_reflect: GetTypeRegistrationforSmallVec<T>
- register missing reflect types
- bevy_reflect: Get owned fields
- bevy_reflect: Add FromReflectto the prelude
- implement ReflectforInput<T>, some misc improvements to reflect value derive
- register Cow<'static, str>for reflection
- bevy_reflect: Relax bounds on Option<T>
- remove ReflectMutin favor ofMut<dyn Reflect>
- add some info from ReflectPathErrorto 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+FromReflectfor input types
- Make TouchInput and ForceTouch serializable
- Add a Gamepad Viewer tool to examples
- Derived Copytrait forbevy_inputevents,Serialize/Deserializefor events inbevy_inputandbevy_windows,PartialEqfor events in both, andEqwhere possible in both.
- Support for additional gamepad buttons and axis
- Added keyboard scan input event
- Add set_parentandremove_parenttoEntityCommands
- Add methods to Query<&Children>andQuery<&Parent>to iterate over descendants and ancestors
- Add is_finishedtoTask<T>
- Expose mint feature in bevy_math/glam
- Utility methods for Val
- Register missing bevy_text types
- Add additional constructors for UiRectto specify values for specific fields
- Add AUTO and UNDEFINED const constructors for Size
- Add Exponential Moving Average into diagnostics
- Add send_eventand 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/pipeadapters
- 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 FromWorldbound toTinLocal<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 togglemethod toVisibilitycomponent
- Add globals struct to mesh2d
- add support for .comp glsl shaders
- Implement IntoIteratorfor&Extract<P>
- add Debug, Copy, Clone derives to Circle
- Add TextureFormat::Rg16Unorm support for Image and derive Resource for SpecializedComputePipelines
- Add bevy_render::texture::ImageSettingsto prelude
- Add Projectioncomponent to prelude.
- Expose Imageconversion functions (fixes #5452)
- Macro for Loading Internal Binary Assets
- Add From<String>forAssetPath<'a>
- Add Eq & PartialEq to AssetPath
- add ReflectAssetandReflectHandle
- 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 Resourcetrait opt-in, requiring#[derive(Resource)]V2
- Replace WorldQueryGatstrait 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 BundleforComponent. UseBundletuples for insertion
- Spawn now takes a Bundle
- make WorldQueryvery 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 InputAxisandButtonSettings
- Clean up Fetch code
- Nested spawns on scope
- Skip empty archetypes and tables when iterating over queries
- Increase the MAX_DIRECTIONAL_LIGHTSfrom 1 to 10
- bevy_pbr: Normalize skinned normals
- remove mandatory mesh attributes
- Rename playtostartand add newplaymethod that won't overwrite the existing animation if it's already playing
- Replace the boolargument ofTimerwithTimerMode
- improve panic messages for add_system_to_stage and add_system_set_to_stage
- Use default serde impls for Entity
- scenes: simplify return type of iter_instance_entities
- Consistently use PIto specify angles in examples.
- Remove Transform::apply_non_uniform_scale
- Rename Transform::mul_vec3totransform_pointand improve docs
- make registeronTypeRegistryidempotent
- do not set cursor grab on window creation if not asked for
- Make raw_window_handlefield inWindowandExtractedWindowanOption.
- Support monitor selection for all window modes.
- Gamepadtype is- Copy; do not require / return references to it in- GamepadsAPI
- 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 wgputo 0.14.0,nagato0.10.0,winitto 0.27.4,raw-window-handleto 0.5.0,ndkto 0.7
- Update to notify 5.0 stable
- Update rodio requirement from 0.15 to 0.16
- remove copyless
- Mark Taskas#[must_use]
- Swap out num_cpus for std:🧵:available_parallelism
- Cleaning up NodeBundle, and some slight UI module re-organization
- Make the default background color of NodeBundletransparent
- Rename UiColortoBackgroundColor
- changed diagnostics from seconds to milliseconds
- Remove unnecesary branches/panics from Query accesses
- debug_checked_unwrapshould track its caller
- Speed up Query::get_manyand add benchmarks
- Rename system chaining to system piping
- [Fixes #6059] Entity's “ID” should be named “index” instead
- Queryfilter types must be- ReadOnlyWorldQuery
- Remove ambiguity sets
- relax Sizedbounds around change detection types
- Remove ExactSizeIterator from QueryCombinationIter
- Remove Sync bound from Command
- Make most Entitymethodsconst
- Remove insert_resource_with_id
- Avoid making FetchsClone
- Remove Syncbound fromLocal
- Replace many_for_each_mutwithiter_many_mut.
- bevy_ecs: Use 32-bit entity ID cursor on platforms without AtomicI64
- Specialize UI pipeline on "hdr-ness"
- Allow passing glamvector 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()
- 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::Rectintobevy_math
- Make vertex colors work without textures in bevy_sprite
- 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 Syncrequirement inDecodable::Decoder
Fixed
- Optimize rendering slow-down at high entity counts
- bevy_reflect: Fix DynamicScenenot 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 Clonebounds
- bevy_reflect: Fix applymethod forOption<T>
- Fix outdated and badly formatted docs for WindowDescriptor::transparent
- disable window pre creation for ios
- Remove unnecessary unsafe SendandSyncimpl forWinitWindowson 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 RemoveChildrencommand
- 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_idif exists
- Fix lifetime bound on Fromimpl forNonSendMut->Mut
- Fix mesh.wgslerror for meshes without normals
- Fix panic when using globals uniform in wasm builds
- Resolve most remaining execution-order ambiguities
- Call mesh2d_tangent_local_to_worldwith 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 Timeouterrors 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_frustaandcamera_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 '#'
Version 0.8.0 (2022-07-30)
Added
- Callable PBR functions
- Spotlights
- Camera Driven Rendering
- Camera Driven Viewports
- Visibilty Inheritance, universal ComputedVisibility, andRenderLayerssupport
- Better Materials: AsBindGrouptrait and derive, simplerMaterialtrait
- Derive AsBindGroupImprovements: Better errors, more options, update examples
- Support AsBindGroupfor 2d materials as well
- Parallel Frustum Culling
- Hierarchy commandization
- Generate vertex tangents using mikktspace
- Add a SpatialBundlewithVisibilityandTransformcomponents
- Add RegularPolygonandCirclemeshes
- Add a SceneBundleto 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_opconfiguration field toCamera3d
- Refactor Cameramethods and add viewport rect
- Add TextureFormat::R16Unormsupport forImage
- Add a VisibilityBundlewithVisibilityandComputedVisibilitycomponents
- Add ExtractResourcePlugin
- Add depth_bias to SpecializedMaterial
- Added offsetparameter toTextureAtlas::from_grid_with_padding
- Add the possibility to create custom 2d orthographic cameras
- bevy_render: Add attributesandattributes_mutmethods toMesh
- Add helper methods for rotating Transforms
- Enable wgpu profiling spans when using bevy's trace feature
- bevy_pbr: rework extract_meshes
- Add inverse_projectionandinverse_view_projfields to shader view uniform
- Add ViewRangefinder3dto reduce boilerplate when enqueuing standard 3DPhaseItems
- Create bevy_ptrstandalone crate
- Add IntoIteratorimpls for&Queryand&mut Query
- Add untyped APIs for ComponentsandResources
- Add infallible resource getters for WorldCell
- Add get_change_ticksmethod toEntityRefandEntityMut
- Add comparison methods to FilteredAccessSet
- Add Commands::new_from_entities
- Add QueryState::get_single_unchecked_manualand its family members
- Add ParallelCommandssystem parameter
- Add methods for querying lists of entities
- Implement FusedIteratorfor eligibleIteratortypes
- Add component_id()function toWorldandComponents
- Add ability to inspect entity's components
- Add a more helpful error to help debug panicking command on despawned entity
- Add ExactSizeIteratorimplementation forQueryCombinatonIter
- Added the ignore_fieldsattribute to the derive macros for*Labeltypes
- Exact sized event iterators
- Add a clear()method to theEventReaderthat consumes the iterator
- Add helpers to send EventsfromWorld
- Add file metadata to AssetIo
- Add missing audio/ogg file extensions: .oga, .spx
- Add reload_assetmethod 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_eachand its variants.
- Add a release_allmethod onInput
- Add a reset_allmethod onInput
- Add a helper tool to build examples for wasm
- bevy_reflect: add a ReflectFromPtrtype to create&dyn Reflectfrom a*const ()
- Add a ReflectDefaulttype and add#[reflect(Default)]to all component types that implement Default and are user facing
- Add a macro to implement Reflectfor struct types and migrate glam types to use this for reflection
- bevy_reflect: reflect arrays
- bevy_reflect: reflect char
- bevy_reflect: add GetTypeRegistrationimpl for reflected tuples
- Add reflection for Resources
- bevy_reflect: add as_reflectandas_reflect_mutmethods onReflect
- Add an apply_or_insertmethod toReflectResourceandReflectComponent
- bevy_reflect: IntoIterforDynamicListandDynamicMap
- bevy_reflect: Add PartialEqto reflectedf32s andf64s
- Create mutable versions of TypeRegistrymethods
- bevy_reflect: add a get_boxedmethod toreflect_trait
- bevy_reflect: add #[reflect(default)]attribute forFromReflect
- bevy_reflect: add statically available type info for reflected types
- Add an assert_is_exclusive_systemfunction
- 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 encasefromcrevice
- Update wgputo 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 Uinodes that have a rotation
- Rename ElementStatetoButtonState
- Move Sizetobevy_ui
- Move Recttobevy_uiand rename it toUiRect
- Modify FontAtlasso that it can handle fonts of any size
- Rename CameraUi
- Remove task_poolparameter frompar_for_each(_mut)
- Copy TaskPoolresoures to sub-Apps
- Allow closing windows at runtime
- Move the configuration of the WindowPluginto aResource
- Optionally resize Windowcanvas element to fit parent element
- Change window resolution types from tuple to Vec2
- Update time by sending frame Instantthrough a channel
- Split time functionality into bevy_time
- Split mesh shader files to make the shaders more reusable
- Set nagacapabilities corresponding towgpufeatures
- Separate out PBR lighting, shadows, clustered forward, and utils from pbr.wgsl
- Separate PBR and tonemapping into 2 functions
- Make RenderStage::Extractrun on the render world
- Change default FilterModeofImagetoLinear
- bevy_render: Fix KTX2 UASTC format mapping
- Allow rendering meshes without UV coordinate data
- Validate vertex attribute format on insertion
- Use Affine3AforGlobalTransformto allow any affine transformation
- Recalculate entity AABBs when meshes change
- Change check_visibilityto 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 PhaseItemsto draw
- Filter material handles on extraction
- Apply vertex colors to ColorMaterialandMesh2D
- Make MaterialPipelineKeyfields public
- Simplified API to get NDC from camera and world position
- Set alpha_modebased on alpha value
- Make WireframerespectVisibleEntities
- Use const Vec2in lights cluster and bounding box when possible
- Make accessors for mesh vertices and indices public
- Use BufferUsages::UNIFORMforSkinnedMeshUniform
- Place origin of OrthographicProjectionat integer pixel when usingScalingMode::WindowSize
- Make ScalingModemore flexible
- Move texture sample out of branch in prepare_normal
- Make the fields of the Material2dKeypublic
- Use collect to build mesh attributes
- Replace ReadOnlyFetchwithReadOnlyWorldQuery
- Replace ComponentSparseSet's internals with aColumn
- Remove QF generics from all Query/Statemethods and types
- Remove .system()
- Make change lifespan deterministic and update docs
- Make derived SystemParamreadonly if possible
- Merge matches_archetypeandmatches_table
- Allows conversion of mutable queries to immutable queries
- Skip dropwhenneeds_dropisfalse
- Use u32 over usize for ComponentSparseSetindicies
- Remove redundant ComponentIdinColumn
- Directly copy moved Tablecomponents to the target location
- SystemSet::beforeand- SystemSet::afternow take- AsSystemLabel
- Converted exclusive systems to parallel systems wherever possible
- Improve size_hintonQueryIter
- Improve debugging tools for change detection
- Make RunOncea non-manualSystemimpl
- Apply buffers in ParamSet
- Don't allocate for ComponentDescriptorsof non-dynamic component types
- Mark mutable APIs under ECS storage as pub(crate)
- Update ExactSizeIteratorimpl to support archetypal filters (With,Without)
- Removed world cell from places where split multable access is not needed
- Add Events to bevy_ecsprelude
- Improve EntityMapAPI
- Implement From<bool>forShouldRun.
- Allow iter combinations on custom world queries
- Simplify design for *Labels
- Tidy up the code of events
- Rename send_default_eventtosend_event_defaulton 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_glslexample 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 Reflectmethods
- Make Reflectsafe to implement
- bevy_reflect: put- serializeinto external- ReflectSerializetype
- Remove Serializeimpl fordyn Arrayand friends
- Re-enable #[derive(TypeUuid)]for generics
- Move primitive type registration into bevy_reflect
- Implement reflection for more glamtypes
- Make reflect_partial_eqreturn 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 Sizeimport
- Export and register Mat2.
- Implement DebugforGamepads
- Update codebase to use IntoIteratorwhere possible.
- Rename headless_defaultsexample tono_rendererfor clarity
- Remove dead SystemLabelMarkerstruct
- bevy_reflect: remove glamfrom a test which is active without the glam feature
- Disable vsync for stress tests
- Move get_short_nameutility method frombevy_reflectintobevy_utils
- Derive Defaultfor enums where possible
- Implement EqandPartialEqforMouseScrollUnit
- Some cleanup for bevy_ptr
- Move float_ord from bevy_coretobevy_utils
- Remove unused CountdownEvent
- Some minor cleanups of asset_server
- Use elapsed()onInstant
- Make paused Timersupdatejust_finishedon tick
- bevy_utils: remove hardcoded log level limit
- Make Time::update_with_instantpublic 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 clapto 3.2 in tools usingvalue_parser
- Updated glamto0.21.
- Update Notify Dependency
Fixed
- bevy_ui: keep Coloras 4f32s
- Fix issues with bevy on android other than the rendering
- Update layout/style when scale factor changes too
- Fix Overflow::Hiddenso it works correctly withscale_factor_override
- Fix bevy_uitouch input
- Fix physical viewport calculation
- Minimally fix the known unsoundness in bevy_mikktspace
- Make Transformpropagation correct in the presence of updated children
- StorageBufferuses 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 IoTaskPoolin wasm
- Fix skinned mesh normal handling in mesh shader
- Don't panic when StandardMaterialnormal_maphasn't loaded yet
- Fix incorrect rotation in Transform::rotate_around
- Fix extract_wireframes
- Fix type parameter name conflicts of #[derive(Bundle)]
- Remove unnecessary unsafe implofSend+SyncforParallelSystemContainer
- Fix line material shader
- Fix mouse_clickedcheck for touch
- Fix unsoundness with Or/AnyOf/Optioncomponent access
- Improve soundness of CommandQueue
- Fix some memory leaks detected by miri
- Fix Android example icon
- Fix broken WorldCelltest
- Bugfix State::settransition 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 renderfeature but withoutanimation
- Fix re-adding a plugin to a PluginGroup
- Fix torus normals
- Add NO_STORAGE_BUFFERS_SUPPORTshaderdef when needed
Version 0.7.0 (2022-04-15)
Added
- Mesh Skinning
- Animation Player
- Gltf animations
- Mesh vertex buffer layouts
- Render to a texture
- KTX2/DDS/.basis compressed texture support
- Audio control - play, pause, volume, speed, loop
- Auto-label function systems with SystemTypeIdLabel
- Query::get_many
- Dynamic light clusters
- Always update clusters and remove per-frame allocations
- ParamSetfor conflicting- SystemParam:s
- default() shorthand
- use marker components for cameras instead of name strings
- Implement WorldQueryderive macro
- Implement AnyOf queries
- Compute Pipeline Specialization
- Make get_resource (and friends) infallible
- bevy_pbr: Support flipping tangent space normal map y for DirectX normal maps
- Faster view frustum culling
- Use storage buffers for clustered forward point lights
- Add &World as SystemParam
- Add text wrapping support to Text2d
- Scene Viewer to display glTF files
- Internal Asset Hot Reloading
- Add FocusPolicy to NodeBundle and ImageBundle
- Allow iter combinations on queries with filters
- bevy_render: Support overriding wgpu features and limits
- bevy_render: Use RenderDevice to get limits/features and expose AdapterInfo
- Reduce power usage with configurable event loop
- can specify an anchor for a sprite
- Implement len and is_empty for EventReaders
- Add more FromWorld implementations
- Add cart's fork of ecs_bench_suite
- bevy_derive: Add derives for DerefandDerefMut
- Add clear_schedule
- Add Query::contains
- bevy_render: Support removal of nodes, edges, subgraphs
- Implement init_resource for CommandsandWorld
- Added method to restart the current state
- Simplify sending empty events
- impl Command for impl FnOnce(&mut World)
- Useful error message when two assets have the save UUID
- bevy_asset: Add AssetServerSettings watch_for_changes member
- Add conversio from Color to u32
- Introduce SystemLabel's forRenderAssetPlugin, and changeImagepreparation system to run before others
- Add a helper for storage buffers similar to UniformVec
- StandardMaterial: expose a cull_mode option
- Expose draw indirect
- Add view transform to view uniform
- Add a size method on Image.
- add Visibility for lights
- bevy_render: Provide a way to opt-out of the built-in frustum culling
- use error scope to handle errors on shader module creation
- include sources in shader validation error
- insert the gltf mesh name on the entity if there is one
- expose extras from gltf nodes
- gltf: add a name to nodes without names
- Enable drag-and-drop events on windows
- Add transform hierarchy stress test
- Add TransformBundle
- Add Transform::rotate_around method
- example on how to create an animation in code
- Add examples for Transforms
- Add mouse grab example
- examples: add screenspace texture shader example
- Add generic systems example
- add examples on how to have a data source running in another thread / in a task pool thread
- Simple 2d rotation example
- Add move sprite example.
- add an example using UI & states to create a game menu
- CI runs cargo miri test -p bevy_ecs
- Tracy spans around main 3D passes
- Add automatic docs deployment to GitHub Pages
Changed
- Proper prehashing
- Move import_path definitions into shader source
- Make Systemresponsible for updating its own archetypes
- Some small changes related to run criteria piping
- Remove unnecessary system labels
- Increment last event count on next instead of iter
- Obviate the need for RunSystem, and remove it
- Cleanup some things which shouldn't be components
- Remove the config api
- Deprecate .system
- Hide docs for concrete impls of Fetch, FetchState, and SystemParamState
- Move the CoreStage::Startup to a seperate StartupSchedule label
- iter_muton Assets: send modified event only when asset is iterated over
- check if resource for asset already exists before adding it
- bevy_render: Batch insertion for prepare_uniform_components
- Change default ColorMaterialcolor to white
- bevy_render: Only auto-disable mappable primary buffers for discrete GPUs
- bevy_render: Do not automatically enable MAPPABLE_PRIMARY_BUFFERS
- increase the maximum number of point lights with shadows to the max supported by the device
- perf: only recalculate frusta of changed lights
- bevy_pbr: Optimize assign_lights_to_clusters
- improve error messages for render graph runner
- Skinned extraction speedup
- Sprites - keep color as 4 f32
- Change scaling mode to FixedHorizontal
- Replace VSync with PresentMode
- do not set cursor grab on window creation if not asked for
- bevy_transform: Use Changed in the query for much faster transform_propagate_system
- Split bevy_hierarchy out from bevy_transform
- Make transform builder methods const
- many_cubes: Add a cube pattern suitable for benchmarking culling changes
- Make many_cubes example more interesting
- Run tests (including doc tests) in cargo run -p cicommand
- Use more ergonomic span syntax
Fixed
- Remove unsound lifetime annotations on EntityMut
- Remove unsound lifetime annotations on Querymethods
- Remove World::components_mut
- unsafeify World::entities_mut
- Use ManuallyDrop instead of forget in insert_resource_with_id
- Backport soundness fix
- Fix clicked UI nodes getting reset when hovering child nodes
- Fix ui interactions when cursor disappears suddenly
- Fix node update
- Fix derive(SystemParam) macro
- SystemParam Derive fixes
- Do not crash if RenderDevice doesn't exist
- Fixed case of R == G, following original conversion formula
- Fixed the frustum-sphere collision and added tests
- bevy_render: Fix Quad flip
- Fix HDR asset support
- fix cluster tiling calculations
- bevy_pbr: Do not panic when more than 256 point lights are added the scene
- fix issues with too many point lights
- shader preprocessor - do not import if scope is not valid
- support all line endings in shader preprocessor
- Fix animation: shadow and wireframe support
- add AnimationPlayer component only on scene roots that are also animation roots
- Fix loading non-TriangleList meshes without normals in gltf loader
- gltf-loader: disable backface culling if material is double-sided
- Fix glTF perspective camera projection
- fix mul_vec3 transformation order: should be scale -> rotate -> translate
Version 0.6.0 (2022-01-08)
Added
- New Renderer
- Clustered forward rendering
- Frustum culling
- Sprite Batching
- Materials and MaterialPlugin
- 2D Meshes and Materials
- WebGL2 support
- Pipeline Specialization, Shader Assets, and Shader Preprocessing
- Modular Rendering
- Directional light and shadow
- Directional light
- Use the infinite reverse right-handed perspective projection
- Implement and require #[derive(Component)]on all component structs
- Shader Imports. Decouple Mesh logic from PBR
- Add support for opaque, alpha mask, and alpha blend modes
- bevy_gltf: Load light names from gltf
- bevy_gltf: Add support for loading lights
- Spherical Area Lights
- Shader Processor: process imported shader
- Add support for not casting/receiving shadows
- Add support for configurable shadow map sizes
- Implement the Overflow::Hiddenstyle property for UI
- SystemState
- Add a method iter_combinationson query to iterate over combinations of query results
- Add FromReflect trait to convert dynamic types to concrete types
- More pipelined-rendering shader examples
- Configurable wgpu features/limits priority
- Cargo feature for bevy UI
- Spherical area lights example
- Implement ReflectValue serialization for Duration
- bevy_ui: register Overflow type
- Add Visibility component to UI
- Implement non-indexed mesh rendering
- add tracing spans for parallel executor and system overhead
- RemoveChildren command
- report shader processing errors in RenderPipelineCache
- enable Webgl2 optimisation in pbr under feature
- Implement Sub-App Labels
- Added set_cursor_icon(...)toWindow
- Support topologies other than TriangleList
- Add an example 'showcasing' using multiple windows
- Add an example to draw a rectangle
- Added set_scissor_rect to tracked render pass.
- Add RenderWorld to Extract step
- re-export ClearPassNode
- add default standard material in PbrBundle
- add methods to get reads and writes of Access<T>
- Add despawn_children
- More Bevy ECS schedule spans
- Added transparency to window builder
- Add Gamepads resource
- Add support for #else for shader defs
- Implement iter() for mutable Queries
- add shadows in examples
- Added missing wgpu image render resources.
- Per-light toggleable shadow mapping
- Support nested shader defs
- use bytemuck crate instead of Byteable trait
- iter_mut()for Assets type
- EntityRenderCommand and PhaseItemRenderCommand
- add position to WindowDescriptor
- Add System Command apply and RenderGraph node spans
- Support for normal maps including from glTF models
- MSAA example
- Add MSAA to new renderer
- Add support for IndexFormat::Uint16
- Apply labels to wgpu resources for improved debugging/profiling
- Add tracing spans around render subapp and stages
- Add set_stencil_reference to TrackedRenderPass
- Add despawn_recursive to EntityMut
- Add trace_tracy feature for Tracy profiling
- Expose wgpu's StencilOperation with bevy
- add get_single variant
- Add builder methods to Transform
- add get_history function to Diagnostic
- Add convenience methods for checking a set of inputs
- Add error messages for the spooky insertions
- Add Deref implementation for ComputePipeline
- Derive thiserror::Error for HexColorError
- Spawn specific entities: spawn or insert operations, refactor spawn internals, world clearing
- Add ClearColor Resource to Pipelined Renderer
- remove_component for ReflectComponent
- Added ComputePipelineDescriptor
- Added StorageTextureAccess to the exposed wgpu API
- Add sprite atlases into the new renderer.
- Log adapter info on initialization
- Add feature flag to enable wasm for bevy_audio
- Allow Option<NonSend<T>>andOption<NonSendMut<T>>as SystemParam
- Added helpful adders for systemsets
- Derive Clone for Time
- Implement Clone for Fetches
- Implement IntoSystemDescriptor for SystemDescriptor
- implement DetectChanges for NonSendMut
- Log errors when loading textures from a gltf file
- expose texture/image conversions as From/TryFrom
- [ecs] implement is_empty for queries
- Add audio to ios example
- Example showing how to use AsyncComputeTaskPool and Tasks
- Expose set_changed() on ResMut and Mut
- Impl AsRef+AsMut for Res, ResMut, and Mut
- Add exit_on_esc_system to examples with window
- Implement rotation for Text2d
- Mesh vertex attributes for skinning and animation
- load zeroed UVs as fallback in gltf loader
- Implement direct mutable dereferencing
- add a span for frames
- Add an alias mouse position -> cursor position
- Adding WorldQueryforWithBundle
- Automatic System Spans
- Add system sets and run criteria example
- EnumVariantMeta derive
- Added TryFrom for VertexAttributeValues
- add render_to_texture example
- Added example of entity sorting by components
- calculate flat normals for mesh if missing
- Add animate shaders example
- examples on how to tests systems
- Add a UV sphere implementation
- Add additional vertex formats
- gltf-loader: support data url for images
- glTF: added color attribute support
- Add synonyms for transform relative vectors
Changed
- Relicense Bevy under the dual MIT or Apache-2.0 license
- [ecs] Improve Commandsperformance
- Merge AppBuilder into App
- Use a special first depth slice for clustered forward rendering
- Add a separate ClearPass
- bevy_pbr2: Improve lighting units and documentation
- gltf loader: do not use the taskpool for only one task
- System Param Lifetime Split
- Optional .system
- Optional .system(), part 2
- Optional .system(), part 3
- Optional .system(), part 4 (run criteria)
- Optional .system(), part 6 (chaining)
- Make the iter_combinatorsexamples prettier
- Remove dead anchor.rs code
- gltf: load textures asynchronously using io task pool
- Use fully-qualified type names in Label derive.
- Remove Bytes, FromBytes, Labels, EntityLabels
- StorageType parameter removed from ComponentDescriptor::new_resource
- remove dead code: ShaderDefs derive
- Enable Msaa for webgl by default
- Renamed Entity::new to Entity::from_raw
- bevy::scene::Entity renamed to bevy::scene::DynamicEntity.
- make sub_appreturn an&Appand addsub_app_mut() -> &mut App
- use ogg by default instead of mp3
- enable wasm-bindgenfeature on gilrs
- Use EventWriter for gilrs_system
- Add some of the missing methods to TrackedRenderPass
- Only bevy_render depends directly on wgpu
- Update wgpu to 0.12 and naga to 0.8
- Improved bevymark: no bouncing offscreen and spawn waves from CLI
- Rename render UiSystem to RenderUiSystem
- Use updated window size in bevymark example
- Enable trace feature for subfeatures using it
- Schedule gilrs system before input systems
- Rename fixed timestep state and add a test
- Port bevy_ui to pipelined-rendering
- update wireframe rendering to new renderer
- Allow Stringand&StringasIdforAssetServer.get_handle(id)
- Ported WgpuOptions to new renderer
- Down with the system!
- Update dependencies ronwinit& fixcargo-denylists
- Improve contributors example quality
- Expose command encoders
- Made Time::time_since_startup return from last tick.
- Default image used in PipelinedSpriteBundle to be able to render without loading a texture
- make texture from sprite pipeline filterable
- iOS: replace cargo-lipo, and update for new macOS
- increase light intensity in pbr example
- Faster gltf loader
- Use crevice std140_size_static everywhere
- replace matrix swizzles in pbr shader with index accesses
- Disable default features from bevy_assetandbevy_ecs
- Update tracing-subscriber requirement from 0.2.22 to 0.3.1
- Update vendored Crevice to 0.8.0 + PR for arrays
- change texture atlas sprite indexing to usize
- Update derive(DynamicPlugin) to edition 2021
- Update to edition 2021 on master
- Add entity ID to expect() message
- Use RenderQueue in BufferVec
- removed unused RenderResourceId and SwapChainFrame
- Unique WorldId
- add_texture returns index to texture
- Update hexasphere requirement from 4.0.0 to 5.0.0
- enable change detection for hierarchy maintenance
- Make events reuse buffers
- Replace .insert_resource(T::default())calls withinit_resource::<T>()
- Improve many sprites example
- Update glam requirement from 0.17.3 to 0.18.0
- update ndk-glue to 0.4
- Remove Need for Sprite Size Sync System
- Pipelined separate shadow vertex shader
- Sub app label changes
- Use Explicit Names for Flex Direction
- Make default near plane more sensible at 0.1
- Reduce visibility of various types and fields
- Cleanup FromResources
- Better error message for unsupported shader features Fixes #869
- Change definition of ScheduleRunnerPlugin
- Re-implement Automatic Sprite Sizing
- Remove with bundle filter
- Remove bevy_dynamic_plugin as a default
- Port bevy_gltf to pipelined-rendering
- Bump notify to 5.0.0-pre.11
- Add 's (state) lifetime to Fetch
- move bevy_core_pipeline to its own plugin
- Refactor ECS to reduce the dependency on a 1-to-1 mapping between components and real rust types
- Inline world get
- Dedupe move logic in remove_bundle and remove_bundle_intersection
- remove .system from pipelined code
- Scale normal bias by texel size
- Make Remove Command's fields public
- bevy_utils: Re-introduce with_capacity().
- Update rodio requirement from 0.13 to 0.14
- Optimize Events::extend and impl std::iter::Extend
- Bump winit to 0.25
- Improve legibility of RunOnce::run_unsafe param
- Update gltf requirement from 0.15.2 to 0.16.0
- Move to smallvec v1.6
- Update rectangle-pack requirement from 0.3 to 0.4
- Make Commands public?
- Monomorphize various things
- Detect camera projection changes
- support assets of any size
- Separate Query filter access from fetch access during initial evaluation
- Provide better error message when missing a render backend
- par_for_each: split batches when iterating on a sparse query
- Allow deriving SystemParamon private types
- Angle bracket annotated types to support generics
- More detailed errors when resource not found
- Moved events to ECS
- Use a sorted Map for vertex buffer attributes
- Error message improvements for shader compilation/gltf loading
- Rename Light => PointLight and remove unused properties
- Override size_hint for all Iterators and add ExactSizeIterator where applicable
- Change breakout to use fixed timestamp
Fixed
- Fix shadows for non-TriangleLists
- Fix error message for the Componentmacro'scomponentstorageattribute.
- do not add plugin ExtractComponentPlugin twice for StandardMaterial
- load spirv using correct API
- fix shader compilation error reporting for non-wgsl shaders
- bevy_ui: Check clip when handling interactions
- crevice derive macro: fix path to render_resource when importing from bevy
- fix parenting of scenes
- Do not panic on failed setting of GameOver state in AlienCakeAddict
- Fix minimization crash because of cluster updates.
- Fix custom mesh pipelines
- Fix hierarchy example panic
- Fix double drop in BlobVec::replace_unchecked (#2597)
- Remove vestigial derives
- Fix crash with disabled winit
- Fix clustering for orthographic projections
- Run a clear pass on Windows without any Views
- Remove some superfluous unsafe code
- clearpass: also clear views without depth (2d)
- Check for NaN in Camera::world_to_screen()
- Fix sprite hot reloading in new renderer
- Fix path used by macro not considering that we can use a sub-crate
- Fix torus normals
- enable alpha mode for textures materials that are transparent
- fix calls to as_rgba_linear
- Fix shadow logic
- fix: as_rgba_linear used wrong variant
- Fix MIME type support for glTF buffer Data URIs
- Remove wasm audio feature flag for 2021
- use correct size of pixel instead of 4
- Fix custom_shader_pipelined example shader
- Fix scale factor for cursor position
- fix window resize after wgpu 0.11 upgrade
- Fix unsound lifetime annotation on Query::get_component
- Remove double Events::update in bevy-gilrs
- Fix bevy_ecs::schedule::executor_parallel::system span management
- Avoid some format! into immediate format!
- Fix panic on is_resource_* calls (#2828)
- Fix window size change panic
- fix Defaultimplementation ofImageso that size and data match
- Fix scale_factor_override in the winit backend
- Fix breakout example scoreboard
- Fix Option<NonSend<T>>andOption<NonSendMut<T>>
- fix missing paths in ECS SystemParam derive macro v2
- Add missing bytemuck feature
- Update EntityMut's location in push_children() and insert_children()
- Fixed issue with how texture arrays were uploaded with write_texture.
- Don't update when suspended to avoid GPU use on iOS.
- update archetypes for run criterias
- Fix AssetServer::get_asset_loader deadlock
- Fix unsetting RenderLayers bit in without fn
- Fix view vector in pbr frag to work in ortho
- Fixes Timer Precision Error Causing Panic
- [assets] Fix AssetServer::get_handle_path
- Fix bad bounds for NonSend SystemParams
- Add minimum sizes to textures to prevent crash
- [assets] set LoadState properly and more testing!
- [assets] properly set LoadStatewith invalid asset extension
- Fix Bevy crashing if no audio device is found
- Fixes dropping empty BlobVec
- [assets] fix Assets being set as 'changed' each frame
- drop overwritten component data on double insert
- Despawn with children doesn't need to remove entities from parents children when parents are also removed
- reduce tricky unsafety and simplify table structure
- Use bevy_reflect as path in case of no direct references
- Fix Events::<drain/clear> bug
- small ecs cleanup and remove_bundle drop bugfix
- Fix PBR regression for unlit materials
- prevent memory leak when dropping ParallelSystemContainer
- fix diagnostic length for asset count
- Fixes incorrect PipelineCompiler::compile_pipeline()step_mode
- Asset re-loading while it's being deleted
- Bevy derives handling generics in impl definitions.
- Fix unsoundness in Query::for_each_mut
- Fix mesh with no vertex attributes causing panic
- Fix alien_cake_addict: cake should not be at height of player's location
- fix memory size for PointLightBundle
- Fix unsoundness in query component access
- fixing compilation error on macos aarch64
- Fix SystemParam handling of Commands
- Fix IcoSphere UV coordinates
- fix 'attempted to subtract with overflow' for State::inactives
Version 0.5.0 (2021-04-06)
Added
- PBR Rendering
- PBR Textures
- HIDPI Text
- Rich text
- Wireframe Rendering Pipeline
- Render Layers
- Add Sprite Flipping
- OrthographicProjection scaling mode + camera bundle refactoring
- 3D OrthographicProjection improvements + new example
- Flexible camera bindings
- Render text in 2D scenes
- Text2drender quality
- System sets and run criteria v2
- System sets and parallel executor v2
- Many-to-many system labels
- Non-string labels (#1423 continued)
- Make EventReaderaSystemParam
- Add EventWriter
- Reliable change detection
- Redo State architecture
- Query::get_unique
- gltf: load normal and occlusion as linear textures
- Add separate brightness field to AmbientLight
- world coords to screen space
- Experimental Frustum Culling (for Sprites)
- Enable wgpu device limits
- bevy_render: add torus and capsule shape
- New mesh attribute: color
- Minimal change to support instanced rendering
- Add support for reading from mapped buffers
- Texture atlas format and conversion
- enable wgpu device features
- Subpixel text positioning
- make more information available from loaded GLTF model
- use Nameon node when loading a gltf file
- GLTF loader: support mipmap filters
- Add support for gltf::Material::unlit
- Implement Reflectfor tuples up to length 12
- Process Asset File Extensions With Multiple Dots
- Update Scene Example to Use scn.ron File
- 3d game example
- Add keyboard modifier example (#1656)
- Count number of times a repeating Timer wraps around in a tick
- recycle Timerrefactor to duration.sparkles AddStopwatchstruct.
- add scene instance entity iteration
- Make CommandsandWorldapis consistent
- Add insert_childrenandpush_childrentoEntityMut
- Extend AppBuilderapi withadd_system_setand similar methods
- add labels and ordering for transform and parent systems in POST_UPDATEstage
- Explicit execution order ambiguities API
- Resolve (most) internal system ambiguities
- Change 'components' to 'bundles' where it makes sense semantically
- add Flags<T>as a query to get flags of component
- Rename add_resourcetoinsert_resource
- Update init_resourceto not overwrite
- Enable dynamic mutable access to component data
- Get rid of ChangedRes
- impl SystemParamforOption<Res<T>>/Option<ResMut<T>>
- Add Window Resize Constraints
- Add basic file drag and drop support
- Modify Derive to allow unit structs for RenderResources.
- bevy_render: load .spv assets
- Expose wgpu backend in WgpuOptions and allow it to be configured from the environment
- updates on diagnostics (log + new diagnostics)
- enable change detection for labels
- Name component with fast comparisons
- Support for !Sendtasks
- Add missing spawn_localmethod toScopein the single threaded executor case
- Add bmp as a supported texture format
- Add an alternative winit runner that can be started when not on the main thread
- Added use_dpisetting toWindowDescriptor
- Implement CopyforElementState
- Mutable mesh accessors: indices_mutandattribute_mut
- Add support for OTF fonts
- Add from_xyztoTransform
- Adding copy_texture_to_bufferandcopy_texture_to_texture
- Added set_minimizedandset_positiontoWindow
- Example for 2D Frustum Culling
- Add remove resource to commands
Changed
- Bevy ECS V2
- Fix Reflect serialization of tuple structs
- color spaces and representation
- Make vertex buffers optional
- add to lower case to make asset loading case insensitive
- Replace right/up/forward and counter parts with local_x/local_yandlocal_z
- Use valid keys to initialize AHasherinFixedState
- Change Nameto takeInto<String>instead ofString
- Update to wgpu-rs 0.7
- Update glam to 0.13.0.
- use std clamp instead of Bevy's
- Make Reflectimpls unsafe (Reflect::anymust returnself)
Fixed
- convert grayscale images to rgb
- Glb textures should use bevy_render to load images
- Don't panic on error when loading assets
- Prevent ImageBundles from causing constant layout recalculations
- do not check for focus until cursor position has been set
- Fix lock order to remove the chance of deadlock
- Prevent double panic in the Drop of TaksPoolInner
- Ignore events when receiving unknown WindowId
- Fix potential bug when using multiple lights.
- remove panics when mixing UI and non UI entities in hierarchy
- fix label to load gltf scene
- fix repeated gamepad events
- Fix iOS touch location
- Don't panic if there's no index buffer and call draw
- Fix Bug in Asset Server Error Message Formatter
- add_stage now checks Stage existence
- Fix Un-Renamed add_resource Compile Error
- Fix Interaction not resetting to None sometimes
- Fix regression causing "flipped" sprites to be invisible
- revert default vsync mode to Fifo
- Fix missing paths in ECS SystemParam derive macro
- Fix staging buffer required size calculation (fixes #1056)
Version 0.4.0 (2020-12-19)
Added
- add bevymark benchmark example
- gltf: support camera and fix hierarchy
- Add tracing spans to schedules, stages, systems
- add example that represents contributors as bevy icons
- Add received character
- Add bevy_dylib to force dynamic linking of bevy
- Added RenderPass::set_scissor_rect
- bevy_log- Adds logging functionality as a Plugin.
- Changes internal logging to work with the new implementation.
 
- cross-platform main function
- Controllable ambient light color
- Added a resource to change the current ambient light color for PBR.
 
- Added more basic color constants
- Add box shape
- Expose an EventId for events
- System Inputs, Outputs, and Chaining
- Expose an EventIdfor events
- Added set_cursor_positiontoWindow
- Added new Bevy reflection system
- Replaces the properties system
 
- Add support for Apple Silicon
- Live reloading of shaders
- Store mouse cursor position in Window
- Add removal_detection example
- Additional vertex attribute value types
- Added WindowFocused event
- Tracing chrome span names
- Allow windows to be maximized
- GLTF: load default material
- can spawn a scene from a ChildBuilder, or directly set its parent when spawning it
- add ability to load .dds,.tga, and.jpegtexture formats
- add ability to provide custom a AssetIoimplementation
Changed
- delegate layout reflection to RenderResourceContext
- Fall back to remove components one by one when failing to remove a bundle
- Port hecs derive macro improvements
- Use glyph_brush_layout and add text alignment support
- upgrade glam and hexasphere
- Flexible ECS Params
- Make Timer.tick return &Self
- FileAssetIo includes full path on error
- Removed ECS query APIs that could easily violate safety from the public interface
- Changed Query filter API to be easier to understand
- bevy_render: delegate buffer aligning to render_resource_context
- wasm32: non-spirv shader specialization
- Renamed XComponents to XBundle
- Check for conflicting system resource parameters
- Tweaks to TextureAtlasBuilder.finish()
- do not spend time drawing text with is_visible = false
- Extend the Texture asset type to support 3D data
- Breaking changes to timer API
- Created getters and setters rather than exposing struct members.
 
- Removed timer auto-ticking system
- Added an example of how to tick timers manually.
 
- When a task scope produces <= 1 task to run, run it on the calling thread immediately
- Breaking changes to Time API
- Created getters to get Timestate and made members private.
- Modifying Time's values directly is no longer possible outside of bevy.
 
- Created getters to get 
- Use mailboxinstead offifofor vsync on supported systems
- switch winit size to logical to be dpi independent
- Change bevy_input::Touch API to match similar APIs
- Run parent-update and transform-propagation during the "post-startup" stage (instead of "startup")
- Renderer Optimization Round 1
- ChangeTextureAtlasBuilderinto expected Builder conventions
- Optimize Text rendering / SharedBuffers
- hidpi swap chains
- optimize asset gpu data transfer
- naming coherence for cameras
- Schedule v2
- Use shaderc for aarch64-apple-darwin
- update Window'swidth&heightmethods to returnf32
- Break out Visible component from Draw
- Users setting Draw::is_visibleorDraw::is_transparentshould now setVisible::is_visibleandVisible::is_transparent
 
- Users setting 
- winitupgraded from version 0.23 to version 0.24
- set is_transparent to true by default for UI bundles
Fixed
- Fixed typos in KeyCode identifiers
- Remove redundant texture copies in TextureCopyNode
- Fix a deadlock that can occur when using scope() on ComputeTaskPool from within a system
- Don't draw text that isn't visible
- Use instant::Instantfor WASM compatibility
- Fix pixel format conversion in bevy_gltf
- Fixed duplicated children when spawning a Scene
- Corrected behaviour of the UI depth system
- Allow despawning of hierarchies in threadlocal systems
- Fix RenderResourcesindex slicing
- Run parent-update and transform-propagation during the "post-startup" stage
- Fix collision detection by comparing abs() penetration depth
- deal with rounding issue when creating the swap chain
- only update components for entities in map
- Don't panic when attempting to set shader defs from an asset that hasn't loaded yet
Version 0.3.0 (2020-11-03)
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.
 
- Added support for inserting custom initial values for Local<T>system resources #745
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
