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