bevy/crates
Patrick Walton e67d63aa79
Refactor the render instance logic in #9903 so that it's easier for other components to adopt. (#10002)
# Objective

Currently, the only way for custom components that participate in
rendering to opt into the higher-performance extraction method in #9903
is to implement the `RenderInstances` data structure and the extraction
logic manually. This is inconvenient compared to the `ExtractComponent`
API.

## Solution

This commit creates a new `RenderInstance` trait that mirrors the
existing `ExtractComponent` method but uses the higher-performance
approach that #9903 uses. Additionally, `RenderInstance` is more
flexible than `ExtractComponent`, because it can extract multiple
components at once. This makes high-performance rendering components
essentially as easy to write as the existing ones based on component
extraction.

---

## Changelog

### Added

A new `RenderInstance` trait is available mirroring `ExtractComponent`,
but using a higher-performance method to extract one or more components
to the render world. If you have custom components that rendering takes
into account, you may consider migration from `ExtractComponent` to
`RenderInstance` for higher performance.
2023-10-08 10:34:44 +00:00
..
bevy_a11y Various accessibility API updates. (#9989) 2023-10-02 21:22:52 +00:00
bevy_animation refactor: Change Option<With<T>> query params to Has<T> (#9959) 2023-10-02 01:21:41 +00:00
bevy_app Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_asset Removed anyhow (#10003) 2023-10-06 07:20:13 +00:00
bevy_audio Removed anyhow (#10003) 2023-10-06 07:20:13 +00:00
bevy_core Bevy Asset V2 (#8624) 2023-09-07 02:07:27 +00:00
bevy_core_pipeline Fix comment grammar (#9990) 2023-10-01 20:18:34 +00:00
bevy_derive bevy_derive: Fix #[deref] breaking other attributes (#9551) 2023-08-28 17:36:18 +00:00
bevy_diagnostic Improve doc formatting. (#9840) 2023-09-18 19:43:56 +00:00
bevy_dylib
bevy_dynamic_plugin
bevy_ecs Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_ecs_compile_fail_tests Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_encase_derive
bevy_gilrs Finish documenting bevy_gilrs (#10010) 2023-10-04 21:10:20 +00:00
bevy_gizmos Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_gltf Removed anyhow (#10003) 2023-10-06 07:20:13 +00:00
bevy_hierarchy Fix some warnings shown in nightly (#10012) 2023-10-05 05:41:09 +00:00
bevy_input Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_internal Allow Bevy to start from non-main threads on supported platforms (#10020) 2023-10-06 13:26:06 +00:00
bevy_log
bevy_macro_utils Moved fq_std from bevy_reflect_derive to bevy_macro_utils (#9956) 2023-10-02 00:22:57 +00:00
bevy_macros_compile_fail_tests bevy_derive: Fix #[deref] breaking other attributes (#9551) 2023-08-28 17:36:18 +00:00
bevy_math Automatic batching/instancing of draw commands (#9685) 2023-09-21 22:12:34 +00:00
bevy_mikktspace Fix erronenous glam version (#9653) 2023-08-31 12:55:17 +00:00
bevy_pbr Refactor the render instance logic in #9903 so that it's easier for other components to adopt. (#10002) 2023-10-08 10:34:44 +00:00
bevy_ptr
bevy_reflect Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_reflect_compile_fail_tests Improve TypeUuid's derive macro error messages (#9315) 2023-10-02 12:42:01 +00:00
bevy_render Refactor the render instance logic in #9903 so that it's easier for other components to adopt. (#10002) 2023-10-08 10:34:44 +00:00
bevy_scene Removed anyhow (#10003) 2023-10-06 07:20:13 +00:00
bevy_sprite fix example mesh2d_manual (#9941) 2023-10-06 20:13:09 +00:00
bevy_tasks add test for nested scopes (#10026) 2023-10-05 06:05:43 +00:00
bevy_text Removed anyhow (#10003) 2023-10-06 07:20:13 +00:00
bevy_time ignore time channel error (#9981) 2023-10-01 07:55:17 +00:00
bevy_transform Updates for rust 1.73 (#10035) 2023-10-06 00:31:10 +00:00
bevy_ui UI node outlines (#9931) 2023-10-05 12:10:32 +00:00
bevy_utils Use EntityHashMap<Entity, T> for render world entity storage for better performance (#9903) 2023-09-27 08:28:28 +00:00
bevy_window Various accessibility API updates. (#9989) 2023-10-02 21:22:52 +00:00
bevy_winit Allow Bevy to start from non-main threads on supported platforms (#10020) 2023-10-06 13:26:06 +00:00