mirror of
https://github.com/bevyengine/bevy
synced 2025-02-16 22:18:33 +00:00
Fix overflow scaling for images (#7142)
# Objective - Fixes #4057 - Do not multiply position by scale factor
This commit is contained in:
parent
76a4695f33
commit
9be47e3328
1 changed files with 8 additions and 13 deletions
|
@ -176,7 +176,6 @@ pub struct ExtractedUiNode {
|
|||
pub clip: Option<Rect>,
|
||||
pub flip_x: bool,
|
||||
pub flip_y: bool,
|
||||
pub scale_factor: f32,
|
||||
}
|
||||
|
||||
#[derive(Resource, Default)]
|
||||
|
@ -188,7 +187,6 @@ pub fn extract_uinodes(
|
|||
mut extracted_uinodes: ResMut<ExtractedUiNodes>,
|
||||
images: Extract<Res<Assets<Image>>>,
|
||||
ui_stack: Extract<Res<UiStack>>,
|
||||
windows: Extract<Res<Windows>>,
|
||||
uinode_query: Extract<
|
||||
Query<(
|
||||
&Node,
|
||||
|
@ -200,7 +198,6 @@ pub fn extract_uinodes(
|
|||
)>,
|
||||
>,
|
||||
) {
|
||||
let scale_factor = windows.scale_factor(WindowId::primary()) as f32;
|
||||
extracted_uinodes.uinodes.clear();
|
||||
for (stack_index, entity) in ui_stack.uinodes.iter().enumerate() {
|
||||
if let Ok((uinode, transform, color, maybe_image, visibility, clip)) =
|
||||
|
@ -236,7 +233,6 @@ pub fn extract_uinodes(
|
|||
clip: clip.map(|clip| clip.clip),
|
||||
flip_x,
|
||||
flip_y,
|
||||
scale_factor,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -364,7 +360,6 @@ pub fn extract_text_uinodes(
|
|||
clip: clip.map(|clip| clip.clip),
|
||||
flip_x: false,
|
||||
flip_y: false,
|
||||
scale_factor,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -500,20 +495,20 @@ pub fn prepare_uinodes(
|
|||
let atlas_extent = extracted_uinode.atlas_size.unwrap_or(uinode_rect.max);
|
||||
let mut uvs = [
|
||||
Vec2::new(
|
||||
uinode_rect.min.x + positions_diff[0].x * extracted_uinode.scale_factor,
|
||||
uinode_rect.min.y + positions_diff[0].y * extracted_uinode.scale_factor,
|
||||
uinode_rect.min.x + positions_diff[0].x,
|
||||
uinode_rect.min.y + positions_diff[0].y,
|
||||
),
|
||||
Vec2::new(
|
||||
uinode_rect.max.x + positions_diff[1].x * extracted_uinode.scale_factor,
|
||||
uinode_rect.min.y + positions_diff[1].y * extracted_uinode.scale_factor,
|
||||
uinode_rect.max.x + positions_diff[1].x,
|
||||
uinode_rect.min.y + positions_diff[1].y,
|
||||
),
|
||||
Vec2::new(
|
||||
uinode_rect.max.x + positions_diff[2].x * extracted_uinode.scale_factor,
|
||||
uinode_rect.max.y + positions_diff[2].y * extracted_uinode.scale_factor,
|
||||
uinode_rect.max.x + positions_diff[2].x,
|
||||
uinode_rect.max.y + positions_diff[2].y,
|
||||
),
|
||||
Vec2::new(
|
||||
uinode_rect.min.x + positions_diff[3].x * extracted_uinode.scale_factor,
|
||||
uinode_rect.max.y + positions_diff[3].y * extracted_uinode.scale_factor,
|
||||
uinode_rect.min.x + positions_diff[3].x,
|
||||
uinode_rect.max.y + positions_diff[3].y,
|
||||
),
|
||||
]
|
||||
.map(|pos| pos / atlas_extent);
|
||||
|
|
Loading…
Add table
Reference in a new issue