default UI camera extraction fix (#17100)
# Objective In UI extraction the default UI camera is queried for every UI node. It only needs to be retrieved once. ## Solution Query for the default UI camera once before iterating the UI nodes. ``` cargo run --example many_buttons --release --features "trace_tracy" ``` <img width="631" alt="default-camera-extract" src="https://github.com/user-attachments/assets/db712bce-6a0b-49a7-8e20-654baf588390" /> `extract_uinode_background_colors` yellow is this PR, red is main.
This commit is contained in:
		
							parent
							
								
									13deb3ed76
								
							
						
					
					
						commit
						b4b47d695b
					
				| @ -251,10 +251,11 @@ pub fn extract_shadows( | |||||||
|     >, |     >, | ||||||
|     mapping: Extract<Query<RenderEntity>>, |     mapping: Extract<Query<RenderEntity>>, | ||||||
| ) { | ) { | ||||||
|  |     let default_camera_entity = default_ui_camera.get(); | ||||||
|  | 
 | ||||||
|     for (entity, uinode, transform, view_visibility, box_shadow, clip, camera) in &box_shadow_query |     for (entity, uinode, transform, view_visibility, box_shadow, clip, camera) in &box_shadow_query | ||||||
|     { |     { | ||||||
|         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get()) |         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else { | ||||||
|         else { |  | ||||||
|             continue; |             continue; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -76,13 +76,14 @@ pub fn extract_debug_overlay( | |||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     let default_camera_entity = default_ui_camera.get(); | ||||||
|  | 
 | ||||||
|     for (entity, uinode, visibility, maybe_clip, transform, camera) in &uinode_query { |     for (entity, uinode, visibility, maybe_clip, transform, camera) in &uinode_query { | ||||||
|         if !debug_options.show_hidden && !visibility.get() { |         if !debug_options.show_hidden && !visibility.get() { | ||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get()) |         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else { | ||||||
|         else { |  | ||||||
|             continue; |             continue; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -267,11 +267,11 @@ pub fn extract_uinode_background_colors( | |||||||
|     >, |     >, | ||||||
|     mapping: Extract<Query<RenderEntity>>, |     mapping: Extract<Query<RenderEntity>>, | ||||||
| ) { | ) { | ||||||
|  |     let default_camera_entity = default_ui_camera.get(); | ||||||
|     for (entity, uinode, transform, view_visibility, clip, camera, background_color) in |     for (entity, uinode, transform, view_visibility, clip, camera, background_color) in | ||||||
|         &uinode_query |         &uinode_query | ||||||
|     { |     { | ||||||
|         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get()) |         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else { | ||||||
|         else { |  | ||||||
|             continue; |             continue; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
| @ -330,9 +330,9 @@ pub fn extract_uinode_images( | |||||||
|     >, |     >, | ||||||
|     mapping: Extract<Query<RenderEntity>>, |     mapping: Extract<Query<RenderEntity>>, | ||||||
| ) { | ) { | ||||||
|  |     let default_camera_entity = default_ui_camera.get(); | ||||||
|     for (entity, uinode, transform, view_visibility, clip, camera, image) in &uinode_query { |     for (entity, uinode, transform, view_visibility, clip, camera, image) in &uinode_query { | ||||||
|         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get()) |         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else { | ||||||
|         else { |  | ||||||
|             continue; |             continue; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
| @ -423,7 +423,7 @@ pub fn extract_uinode_borders( | |||||||
|     ui_children: UiChildren, |     ui_children: UiChildren, | ||||||
| ) { | ) { | ||||||
|     let image = AssetId::<Image>::default(); |     let image = AssetId::<Image>::default(); | ||||||
| 
 |     let default_camera_entity = default_ui_camera.get(); | ||||||
|     for ( |     for ( | ||||||
|         entity, |         entity, | ||||||
|         node, |         node, | ||||||
| @ -437,7 +437,7 @@ pub fn extract_uinode_borders( | |||||||
|     { |     { | ||||||
|         let Some(camera_entity) = maybe_camera |         let Some(camera_entity) = maybe_camera | ||||||
|             .map(TargetCamera::entity) |             .map(TargetCamera::entity) | ||||||
|             .or(default_ui_camera.get()) |             .or(default_camera_entity) | ||||||
|         else { |         else { | ||||||
|             continue; |             continue; | ||||||
|         }; |         }; | ||||||
|  | |||||||
| @ -264,9 +264,10 @@ pub fn extract_ui_texture_slices( | |||||||
|     >, |     >, | ||||||
|     mapping: Extract<Query<RenderEntity>>, |     mapping: Extract<Query<RenderEntity>>, | ||||||
| ) { | ) { | ||||||
|  |     let default_camera_entity = default_ui_camera.get(); | ||||||
|  | 
 | ||||||
|     for (entity, uinode, transform, view_visibility, clip, camera, image) in &slicers_query { |     for (entity, uinode, transform, view_visibility, clip, camera, image) in &slicers_query { | ||||||
|         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get()) |         let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else { | ||||||
|         else { |  | ||||||
|             continue; |             continue; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 ickshonpe
						ickshonpe