bevy/crates
James Liu fe7ebd4326 Clean up Fetch code (#4800)
# Objective
Clean up code surrounding fetch by pulling out the common parts into the iteration code.

## Solution
Merge `Fetch::table_fetch` and `Fetch::archetype_fetch` into a single API: `Fetch::fetch(&mut self, entity: &Entity, table_row: &usize)`. This provides everything any fetch requires to internally decide which storage to read from and get the underlying data. All of these functions are marked as `#[inline(always)]` and the arguments are passed as references to attempt to optimize out the argument that isn't being used.

External to `Fetch`, Query iteration has been changed to keep track of the table row and entity outside of fetch, which moves a lot of the expensive bookkeeping `Fetch` structs had previously done internally into the outer loop.

~~TODO: Benchmark, docs~~ Done.

---

## Changelog
Changed: `Fetch::table_fetch` and `Fetch::archetype_fetch` have been merged into a single `Fetch::fetch` function.

## Migration Guide
TODO

Co-authored-by: Brian Merchant <bhmerchang@gmail.com>
Co-authored-by: Saverio Miroddi <saverio.pub2@gmail.com>
2022-10-28 09:25:50 +00:00
..
bevy_animation Rename play to start and add new play method that won't overwrite the existing animation if it's already playing (#6350) 2022-10-24 21:01:09 +00:00
bevy_app can get the settings of a plugin from the app (#6372) 2022-10-26 17:52:16 +00:00
bevy_asset Prepare for upcoming rustlang by fixing upcoming clippy warnings (#6376) 2022-10-26 19:15:15 +00:00
bevy_audio Expose rodio's Source and Sample traits in bevy_audio (#6374) 2022-10-27 12:34:38 +00:00
bevy_core Use plugin setup for resource only used at setup time (#6360) 2022-10-25 22:19:34 +00:00
bevy_core_pipeline Support arbitrary RenderTarget texture formats (#6380) 2022-10-26 23:12:12 +00:00
bevy_derive Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_diagnostic Add Exponential Moving Average into diagnostics (#4992) 2022-10-24 13:46:37 +00:00
bevy_dylib Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_dynamic_plugin Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_ecs Clean up Fetch code (#4800) 2022-10-28 09:25:50 +00:00
bevy_ecs_compile_fail_tests fix: specify required trybuild patch version (#6333) 2022-10-25 10:21:31 +00:00
bevy_encase_derive Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_gilrs feat: add GamepadInfo, expose gamepad names (#6342) 2022-10-24 14:33:50 +00:00
bevy_gltf Prepare for upcoming rustlang by fixing upcoming clippy warnings (#6376) 2022-10-26 19:15:15 +00:00
bevy_hierarchy Add set_parent and remove_parent to EntityCommands (#6189) 2022-10-24 14:33:49 +00:00
bevy_input Derive Reflect + FromReflect for input types (#6232) 2022-10-26 19:52:20 +00:00
bevy_internal Use plugin setup for resource only used at setup time (#6360) 2022-10-25 22:19:34 +00:00
bevy_log Use plugin setup for resource only used at setup time (#6360) 2022-10-25 22:19:34 +00:00
bevy_macro_utils Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_math Add Camera::viewport_to_world (#6126) 2022-10-05 22:16:26 +00:00
bevy_mikktspace Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_pbr Resolve most remaining execution-order ambiguities (#6341) 2022-10-27 12:56:03 +00:00
bevy_ptr Bump Version after Release (#5576) 2022-08-05 02:03:05 +00:00
bevy_reflect bevy_reflect: Fix DynamicScene not respecting component registrations during serialization (#6288) 2022-10-24 14:53:12 +00:00
bevy_render Resolve most remaining execution-order ambiguities (#6341) 2022-10-27 12:56:03 +00:00
bevy_scene Clean up Fetch code (#4800) 2022-10-28 09:25:50 +00:00
bevy_sprite separate tonemapping and upscaling passes (#3425) 2022-10-26 20:13:59 +00:00
bevy_tasks Prepare for upcoming rustlang by fixing upcoming clippy warnings (#6376) 2022-10-26 19:15:15 +00:00
bevy_text Resolve most remaining execution-order ambiguities (#6341) 2022-10-27 12:56:03 +00:00
bevy_time elaborate on Timer docs (#6385) 2022-10-27 15:48:29 +00:00
bevy_transform Fix documentation for looking_at/look_at (#4696) 2022-10-12 20:18:20 +00:00
bevy_ui Resolve most remaining execution-order ambiguities (#6341) 2022-10-27 12:56:03 +00:00
bevy_utils Remove Sync bound from Local (#5483) 2022-09-12 04:15:55 +00:00
bevy_window Plugins own their settings. Rework PluginGroup trait. (#6336) 2022-10-24 21:20:33 +00:00
bevy_winit Update wgpu to 0.14.0, naga to 0.10.0, winit to 0.27.4, raw-window-handle to 0.5.0, ndk to 0.7 (#6218) 2022-10-19 17:40:23 +00:00