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
@ -176,7 +176,6 @@ pub struct ExtractedUiNode {
|
|||||||
pub clip: Option<Rect>,
|
pub clip: Option<Rect>,
|
||||||
pub flip_x: bool,
|
pub flip_x: bool,
|
||||||
pub flip_y: bool,
|
pub flip_y: bool,
|
||||||
pub scale_factor: f32,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Resource, Default)]
|
#[derive(Resource, Default)]
|
||||||
@ -188,7 +187,6 @@ pub fn extract_uinodes(
|
|||||||
mut extracted_uinodes: ResMut<ExtractedUiNodes>,
|
mut extracted_uinodes: ResMut<ExtractedUiNodes>,
|
||||||
images: Extract<Res<Assets<Image>>>,
|
images: Extract<Res<Assets<Image>>>,
|
||||||
ui_stack: Extract<Res<UiStack>>,
|
ui_stack: Extract<Res<UiStack>>,
|
||||||
windows: Extract<Res<Windows>>,
|
|
||||||
uinode_query: Extract<
|
uinode_query: Extract<
|
||||||
Query<(
|
Query<(
|
||||||
&Node,
|
&Node,
|
||||||
@ -200,7 +198,6 @@ pub fn extract_uinodes(
|
|||||||
)>,
|
)>,
|
||||||
>,
|
>,
|
||||||
) {
|
) {
|
||||||
let scale_factor = windows.scale_factor(WindowId::primary()) as f32;
|
|
||||||
extracted_uinodes.uinodes.clear();
|
extracted_uinodes.uinodes.clear();
|
||||||
for (stack_index, entity) in ui_stack.uinodes.iter().enumerate() {
|
for (stack_index, entity) in ui_stack.uinodes.iter().enumerate() {
|
||||||
if let Ok((uinode, transform, color, maybe_image, visibility, clip)) =
|
if let Ok((uinode, transform, color, maybe_image, visibility, clip)) =
|
||||||
@ -236,7 +233,6 @@ pub fn extract_uinodes(
|
|||||||
clip: clip.map(|clip| clip.clip),
|
clip: clip.map(|clip| clip.clip),
|
||||||
flip_x,
|
flip_x,
|
||||||
flip_y,
|
flip_y,
|
||||||
scale_factor,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -364,7 +360,6 @@ pub fn extract_text_uinodes(
|
|||||||
clip: clip.map(|clip| clip.clip),
|
clip: clip.map(|clip| clip.clip),
|
||||||
flip_x: false,
|
flip_x: false,
|
||||||
flip_y: 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 atlas_extent = extracted_uinode.atlas_size.unwrap_or(uinode_rect.max);
|
||||||
let mut uvs = [
|
let mut uvs = [
|
||||||
Vec2::new(
|
Vec2::new(
|
||||||
uinode_rect.min.x + positions_diff[0].x * extracted_uinode.scale_factor,
|
uinode_rect.min.x + positions_diff[0].x,
|
||||||
uinode_rect.min.y + positions_diff[0].y * extracted_uinode.scale_factor,
|
uinode_rect.min.y + positions_diff[0].y,
|
||||||
),
|
),
|
||||||
Vec2::new(
|
Vec2::new(
|
||||||
uinode_rect.max.x + positions_diff[1].x * extracted_uinode.scale_factor,
|
uinode_rect.max.x + positions_diff[1].x,
|
||||||
uinode_rect.min.y + positions_diff[1].y * extracted_uinode.scale_factor,
|
uinode_rect.min.y + positions_diff[1].y,
|
||||||
),
|
),
|
||||||
Vec2::new(
|
Vec2::new(
|
||||||
uinode_rect.max.x + positions_diff[2].x * extracted_uinode.scale_factor,
|
uinode_rect.max.x + positions_diff[2].x,
|
||||||
uinode_rect.max.y + positions_diff[2].y * extracted_uinode.scale_factor,
|
uinode_rect.max.y + positions_diff[2].y,
|
||||||
),
|
),
|
||||||
Vec2::new(
|
Vec2::new(
|
||||||
uinode_rect.min.x + positions_diff[3].x * extracted_uinode.scale_factor,
|
uinode_rect.min.x + positions_diff[3].x,
|
||||||
uinode_rect.max.y + positions_diff[3].y * extracted_uinode.scale_factor,
|
uinode_rect.max.y + positions_diff[3].y,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
.map(|pos| pos / atlas_extent);
|
.map(|pos| pos / atlas_extent);
|
||||||
|
Loading…
Reference in New Issue
Block a user