Skip to content

Commit f61755a

Browse files
ickshonpemockersf
authored andcommitted
Skip the UV calculations for untextured UI nodes (#7809)
1 parent 36b509d commit f61755a

File tree

1 file changed

+31
-27
lines changed
  • crates/bevy_ui/src/render

1 file changed

+31
-27
lines changed

crates/bevy_ui/src/render/mod.rs

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -496,34 +496,38 @@ pub fn prepare_uinodes(
496496
continue;
497497
}
498498
}
499+
let uvs = if current_batch_handle.id() == DEFAULT_IMAGE_HANDLE.id() {
500+
[Vec2::ZERO, Vec2::X, Vec2::ONE, Vec2::Y]
501+
} else {
502+
let atlas_extent = extracted_uinode.atlas_size.unwrap_or(uinode_rect.max);
503+
let mut uvs = [
504+
Vec2::new(
505+
uinode_rect.min.x + positions_diff[0].x,
506+
uinode_rect.min.y + positions_diff[0].y,
507+
),
508+
Vec2::new(
509+
uinode_rect.max.x + positions_diff[1].x,
510+
uinode_rect.min.y + positions_diff[1].y,
511+
),
512+
Vec2::new(
513+
uinode_rect.max.x + positions_diff[2].x,
514+
uinode_rect.max.y + positions_diff[2].y,
515+
),
516+
Vec2::new(
517+
uinode_rect.min.x + positions_diff[3].x,
518+
uinode_rect.max.y + positions_diff[3].y,
519+
),
520+
]
521+
.map(|pos| pos / atlas_extent);
499522

500-
let atlas_extent = extracted_uinode.atlas_size.unwrap_or(uinode_rect.max);
501-
let mut uvs = [
502-
Vec2::new(
503-
uinode_rect.min.x + positions_diff[0].x,
504-
uinode_rect.min.y + positions_diff[0].y,
505-
),
506-
Vec2::new(
507-
uinode_rect.max.x + positions_diff[1].x,
508-
uinode_rect.min.y + positions_diff[1].y,
509-
),
510-
Vec2::new(
511-
uinode_rect.max.x + positions_diff[2].x,
512-
uinode_rect.max.y + positions_diff[2].y,
513-
),
514-
Vec2::new(
515-
uinode_rect.min.x + positions_diff[3].x,
516-
uinode_rect.max.y + positions_diff[3].y,
517-
),
518-
]
519-
.map(|pos| pos / atlas_extent);
520-
521-
if extracted_uinode.flip_x {
522-
uvs = [uvs[1], uvs[0], uvs[3], uvs[2]];
523-
}
524-
if extracted_uinode.flip_y {
525-
uvs = [uvs[3], uvs[2], uvs[1], uvs[0]];
526-
}
523+
if extracted_uinode.flip_x {
524+
uvs = [uvs[1], uvs[0], uvs[3], uvs[2]];
525+
}
526+
if extracted_uinode.flip_y {
527+
uvs = [uvs[3], uvs[2], uvs[1], uvs[0]];
528+
}
529+
uvs
530+
};
527531

528532
let color = extracted_uinode.color.as_linear_rgba_f32();
529533
for i in QUAD_INDICES {

0 commit comments

Comments
 (0)