-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Follow up on Retained Rendering #15459
Copy link
Copy link
Closed
1 / 11 of 1 issue completedLabels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsA-NetworkingSending data between clients, servers and machinesSending data between clients, servers and machinesA-RenderingDrawing game state to the screenDrawing game state to the screenC-Code-QualityA section of code that is hard to understand or changeA section of code that is hard to understand or changeC-UsabilityA targeted quality-of-life change that makes Bevy easier to useA targeted quality-of-life change that makes Bevy easier to useS-BlockedThis cannot move forward until something else changesThis cannot move forward until something else changesX-ContentiousThere are nontrivial implications that should be thought throughThere are nontrivial implications that should be thought through
Milestone
Metadata
Metadata
Assignees
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsA-NetworkingSending data between clients, servers and machinesSending data between clients, servers and machinesA-RenderingDrawing game state to the screenDrawing game state to the screenC-Code-QualityA section of code that is hard to understand or changeA section of code that is hard to understand or changeC-UsabilityA targeted quality-of-life change that makes Bevy easier to useA targeted quality-of-life change that makes Bevy easier to useS-BlockedThis cannot move forward until something else changesThis cannot move forward until something else changesX-ContentiousThere are nontrivial implications that should be thought throughThere are nontrivial implications that should be thought through
Merging #15320 leaves behind a couple of gaps that can be easily filled in a follow-up PR(s).
Implement
WorldQueryforRenderEntityandMainEntityWhen querying
&RenderEntitycurrently from within the main world (orExtractsystems in the render world), you constantly have to call.id()on every thing you query, becauseRenderEntityis a component that contains an entity. This indirection is annoying and makes the migration to 0.15 more cumbersome (more line changes), so we can implement a customWorldQueryso that this happens automatically (think of queryingEntity).The same is true for
MainEntity.Using required components
There are a couple of places, mainly in
bevy_render/src/extract_component.rswhereSyncToRenderWorldis automatically added to certain components. This is currently done with observers, but it's much better to do this with required components. This is being tackled in #15582.Deprecating
get_or_spawnget_or_spawnIs quite often used in extraction systems, given how things used to work. But with a retained rendering world, the entity should always already exist, so justgetshould suffice.