Fix TextureRect::flip_* when used with atlas texture

Fix #37526
This commit is contained in:
Guilherme Felipe 2020-04-05 17:43:02 -03:00
parent 94fab21348
commit fb2d2dd5d0
1 changed files with 9 additions and 0 deletions

View File

@ -95,6 +95,15 @@ void TextureRect::_notification(int p_what) {
} break;
}
Ref<AtlasTexture> p_atlas = texture;
if (p_atlas.is_valid() && region.has_no_area()) {
Size2 scale_size(size.width / texture->get_width(), size.height / texture->get_height());
offset.width += hflip ? p_atlas->get_margin().get_position().width * scale_size.width * 2 : 0;
offset.height += vflip ? p_atlas->get_margin().get_position().height * scale_size.height * 2 : 0;
}
size.width *= hflip ? -1.0f : 1.0f;
size.height *= vflip ? -1.0f : 1.0f;