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>>,
|
||||
) {
|
||||
let default_camera_entity = default_ui_camera.get();
|
||||
|
||||
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())
|
||||
else {
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else {
|
||||
continue;
|
||||
};
|
||||
|
||||
|
||||
@ -76,13 +76,14 @@ pub fn extract_debug_overlay(
|
||||
return;
|
||||
}
|
||||
|
||||
let default_camera_entity = default_ui_camera.get();
|
||||
|
||||
for (entity, uinode, visibility, maybe_clip, transform, camera) in &uinode_query {
|
||||
if !debug_options.show_hidden && !visibility.get() {
|
||||
continue;
|
||||
}
|
||||
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get())
|
||||
else {
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else {
|
||||
continue;
|
||||
};
|
||||
|
||||
|
||||
@ -267,11 +267,11 @@ pub fn extract_uinode_background_colors(
|
||||
>,
|
||||
mapping: Extract<Query<RenderEntity>>,
|
||||
) {
|
||||
let default_camera_entity = default_ui_camera.get();
|
||||
for (entity, uinode, transform, view_visibility, clip, camera, background_color) in
|
||||
&uinode_query
|
||||
{
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_ui_camera.get())
|
||||
else {
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else {
|
||||
continue;
|
||||
};
|
||||
|
||||
@ -330,9 +330,9 @@ pub fn extract_uinode_images(
|
||||
>,
|
||||
mapping: Extract<Query<RenderEntity>>,
|
||||
) {
|
||||
let default_camera_entity = default_ui_camera.get();
|
||||
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())
|
||||
else {
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else {
|
||||
continue;
|
||||
};
|
||||
|
||||
@ -423,7 +423,7 @@ pub fn extract_uinode_borders(
|
||||
ui_children: UiChildren,
|
||||
) {
|
||||
let image = AssetId::<Image>::default();
|
||||
|
||||
let default_camera_entity = default_ui_camera.get();
|
||||
for (
|
||||
entity,
|
||||
node,
|
||||
@ -437,7 +437,7 @@ pub fn extract_uinode_borders(
|
||||
{
|
||||
let Some(camera_entity) = maybe_camera
|
||||
.map(TargetCamera::entity)
|
||||
.or(default_ui_camera.get())
|
||||
.or(default_camera_entity)
|
||||
else {
|
||||
continue;
|
||||
};
|
||||
|
||||
@ -264,9 +264,10 @@ pub fn extract_ui_texture_slices(
|
||||
>,
|
||||
mapping: Extract<Query<RenderEntity>>,
|
||||
) {
|
||||
let default_camera_entity = default_ui_camera.get();
|
||||
|
||||
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())
|
||||
else {
|
||||
let Some(camera_entity) = camera.map(TargetCamera::entity).or(default_camera_entity) else {
|
||||
continue;
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user