bevy_tasks
system. It breaks the query up into 32 'batches' and runs each batch as a different task in the bevy task system. Translation
, Rotation
, and Scale
components as the 'source of truth'. Users modified with these components in their systems, after which they were synced to a LocalTransform
component, which was in turn synced to a global Transform
component, taking hierarchy into account. This was nice for a couple of reasons:Translation
(because less data needs to be accessed)Translation
won't block systems accessing Rotation
.LocalTransform
is out of date when user systems are running. If an up to date 'full transform' is needed, it must be manually constructed by accessing all three components.Mat4::look_at()
) was extremely cumbersome, and the value would be immediately overwritten unless the user explicitly disabled component syncing.Transform
component as the source of truth, and a computed GlobalTransform
component for world-space transforms. We think this api will be much easier to use and to reason about. Unity is also considering a similar Transform rework for their ECS and a lot of discussion on this topic happened in this Amethyst Forum Thread.Queries
in systems because a system could have multiple Queries
, which could be simultaneously accessed in a way that doesn't make mutable access unique. I think thats a solve-able problem, but it will take a bit more work. Fortunately 'for-each' systems don't have any collision risk, so we now use lock-less queries there.world.get::<T>(entity)
. query.get::<T>(entity)
should have results similar to the hecs
results because it still uses a lock. Eventually I'm hoping that we can remove locks from system queries too.IOTaskPool
, ComputePool
, and AsyncComputePool
in bevy_tasks
crate.ParallelIterator
trait.query.iter().par_iter(batch_size).for_each(/* .. */)
unload()
and unload_sync()
on SceneSpawner
for unloading scenes.AudioOuput
is now able to play anything Decodable
.Color::hex
for creating Color
from string hex values.Input<T>
for iterator access to keys.get_pressed()
, get_just_pressed()
, get_just_released()
render
feature, which makes the entire render pipeline optional.shape | |
stage | The names of the default App stages |
Added | |
Anchors | |
App | Containers of app logic and data |
AppBuilder | Configure Apps using the builder pattern |
AssetServer | Loads assets from the filesystem on background threads |
Assets | Stores Assets of a given type and tracks changes to them. |
AudioOutput | Used to play audio on the current 'audio device' |
AudioSource | A source of audio data |
Button | |
ButtonComponents | |
CalculatedSize | |
Camera2dComponents | Exposure x4 bundle 4 0 7 188 mph. A component bundle for '2d camera' entities |
Camera3dComponents | A component bundle for '3d camera' entities |
Changed | |
ChildBuilder | |
Children | |
Color | A RGBA color |
ColorMaterial | |
Commands | A queue of Commands to run on the current World and Resources |
CursorMoved | |
DespawnRecursive | |
Draw | A component that indicates how to draw an entity. |
DynamicProperties | |
Entity | Lightweight unique ID of an entity |
EntityLabels | Maintains a mapping from Entity ids to entity labels and entity labels to Entities. |
EventReader | Reads events of type T in order and tracks which events have already been read. |
Events | An event collection that represents the events that occurred within the last two Events::update calls. Events can be cheaply read usingan EventReader. This collection is meant to be paired with a system that calls Events::update exactly once per update/frame. Events::update_systemis a system that does this. EventReaders are expected to read events from this collection at least once per update/frame. If events are not handledwithin one frame/update, they will be dropped. |
Font | |
Handle | A handle into a specific Asset of type T |
ImageComponents | |
Input | A 'press-able' input of type T |
InsertChildren | |
Labels | A collection of labels |
Light | A point light |
LightComponents | A component bundle for 'light' entities |
Local | Local |
LocalTransform | |
Margins | |
Mat3 | A 3x3 column major matrix. |
Mat4 | A 4x4 column major matrix. |
Mesh | |
MeshComponents | A component bundle for 'mesh' entities |
Msaa | |
Mutated | |
Node | |
NodeComponents | |
NonUniformScale | |
Parent | |
PbrComponents | A component bundle for 'pbr mesh' entities |
PreviousParent | |
PushChildren | |
Quat | A quaternion representing an orientation. |
Query | Provides scoped access to a World according to a given [HecsQuery] |
Rect | A rect, as defined by its 'side' locations |
Ref | Shared borrow of an entity's component |
RefMut | Unique borrow of an entity's component |
RenderPipelines | |
Res | Shared borrow of a Resource |
ResMut | Unique borrow of a Resource |
Resources | A collection of resource instances identified by their type. |
Rotation | |
Scale | |
Scene | |
SceneSpawner | |
Shader | A shader, as defined by its ShaderSource and ShaderStage |
Size | A two dimensional 'size' as defined by a width and height |
Sprite | |
SpriteComponents | |
SpriteSheetComponents | |
StandardMaterial | A material with 'standard' properties used in PBR lighting |
Style | |
Text | |
TextComponents | |
TextStyle | |
Texture | |
TextureAtlas | |
TextureAtlasSprite | |
Time | Tracks elapsed time since the last update and since the App has started |
Timer | Tracks elapsed time. Enters the finished state once duration is reached. |
Transform | |
TransformPlugin | |
Translation | |
UiCameraComponents | |
Vec2 | A 2-dimensional vector. |
Vec3 | A 3-dimensional vector. |
Vec4 | A 4-dimensional vector. |
Window | |
WindowDescriptor | |
Windows | |
With | Query transformer skipping entities that do not have a T component |
Without | Query transformer skipping entities that have a T component |
World | An unordered collection of entities, each having any number of distinctly typed components |
WorldChildBuilder |
AlignContent | |
AlignItems | |
AlignSelf | |
AssetEvent | Events that happen on assets of type T |
Direction | |
Display | |
FlexDirection | |
FlexWrap | |
Interaction | |
JustifyContent | |
KeyCode | The key code of a keyboard input. |
MouseButton | A button on a mouse device |
PositionType | |
Val |
AddAsset | AppBuilder extension methods for adding new asset types |
AddDefaultPlugins | |
BuildChildren | |
BuildWorldChildren | |
Bundle | A statically typed collection of components |
Component | Types that can be components, implemented automatically for all Send + Sync + 'static types |
DespawnRecursiveExt | |
FaceToward | Generates a translation / rotation matrix that faces a given target |
FromResources | Creates Self using data from the Resources collection |
IntoForEachSystem | Converts Self into a For-Each system |
IntoQuerySystem | Converts Self into a Query System |
IntoThreadLocalSystem | Converts Self into a thread local system |
Plugin | A collection of Bevy App logic and configuration |
Properties | |
PropertiesVal | |
Property | |
PropertyVal | |
RegisterType | |
Resource | A Resource type |
System | An ECS system that can be added to a Schedule |
WorldBuilderSource | Converts a reference to Self to a WorldBuilder |
hierarchy_maintenance_systems |
missing_previous_parent_system |
parent_update_system |
run_on_hierarchy |
Bundle | Implement Bundle for a monomorphic struct |
DynamicPlugin | Generates a dynamic plugin entry point function for the given Plugin type. |
Properties | |
Property |