Extract extract to bevy_extract#22852
Conversation
598daa2 to
0285ca3
Compare
|
You added a new feature but didn't update the readme. Please run |
463d2c8 to
c8866d1
Compare
atlv24
left a comment
There was a problem hiding this comment.
This is skipping a few steps but its roughly the goal. We need a few preparatory steps, each of these should be its own PR:
- The resource marker change to allow orphan rule circumvention on resource impls
- Making ExtractPlugin take the app label (RenderApp) as generic parameter instead of hardcode
- Making ExtractPlugin take a schedule to run and having its own internal extract schedule which handles the pre and post actions, running the user provided systemset/schedule in the middle
- improving the macro situation to hide existing complexity of implementations
- collapse manual implementations of extract into derive macro call or whatever
- Introducing an AppLabel marker to Extract impls to specify that they are RenderApp extract impls and tuck it away neatly into the macro
- Rename test terminology in extract_plugin.rs to not reference rendering
- finally, this PR
c8866d1 to
55d153b
Compare
|
New version, extending https://github.com/atlv24/bevy/tree/ad/extract-label ( #22855 )
|
| continue; | ||
| }; | ||
| let render_entity = commands.spawn(TemporaryRenderEntity).id(); | ||
| let render_entity = commands.spawn(TemporarySubEntity).id(); // using TemporaryRenderEntity fails with expected value, found type alias `TemporaryRenderEntity` |
There was a problem hiding this comment.
I tried aliasing TemporarySubEntity as TemporaryRenderEntity, but got this error when trying to spawn.
|
@atlv24 could you give a steer? |
|
Will do, looking into this now. |
# Objective - Uniform handling is an application of extract components, not part of its implementation - Step towards #22852 ## Solution - Move uniforms out of `extract_component.rs` ## Testing - CI
An example demonstrating automatic and manual extraction of components from the Main World to the Render World. This is a common point of confusion for new users that want to do custom rendering, and I don't think any of the current examples show how to manually extract components (or aren't at all focused on it at least). In the future this should probably be changed to be about extraction between two arbitrary worlds, instead of being specific to the Render World. Possibly after / if github.com//pull/22852 is merged. --------- Co-authored-by: Chris Biscardi <chris@christopherbiscardi.com>
|
this should make it possible to extract a component to multiple worlds I really appreciate you splitting stuff out to land independently btw, it really helps! |
# Objective - Uniform handling is an application of extract components, not part of its implementation - Step towards bevyengine#22852 ## Solution - Move uniforms out of `extract_component.rs` ## Testing - CI
An example demonstrating automatic and manual extraction of components from the Main World to the Render World. This is a common point of confusion for new users that want to do custom rendering, and I don't think any of the current examples show how to manually extract components (or aren't at all focused on it at least). In the future this should probably be changed to be about extraction between two arbitrary worlds, instead of being specific to the Render World. Possibly after / if github.com/bevyengine/pull/22852 is merged. --------- Co-authored-by: Chris Biscardi <chris@christopherbiscardi.com>
Objective
Solution
bevy_extractNote that this branch is a pathfinder, the actual implementation is as follows (commits will be sequentially PR'd):
AppLabel#23377bevy_extractmoveTesting
cargo run --example animated_mesh