Correctly flip texture src region

This commit is contained in:
David Sichma 2019-10-05 16:51:06 +02:00
parent f9e9cc94cd
commit f73e1fae37
2 changed files with 12 additions and 1 deletions

View file

@ -925,7 +925,7 @@ void ItemList::_notification(int p_what) {
current_columns = max_columns;
while (true) {
//repeat util all fits
//repeat until all fits
bool all_fit = true;
Vector2 ofs;
int col = 0;

View file

@ -680,11 +680,22 @@ void VisualServerCanvas::canvas_item_add_texture_rect_region(RID p_item, const R
rect->flags |= RasterizerCanvas::CANVAS_RECT_FLIP_H;
rect->rect.size.x = -rect->rect.size.x;
}
if (p_src_rect.size.x < 0) {
rect->flags ^= RasterizerCanvas::CANVAS_RECT_FLIP_H;
rect->source.size.x = -rect->source.size.x;
}
if (p_rect.size.y < 0) {
rect->flags |= RasterizerCanvas::CANVAS_RECT_FLIP_V;
rect->rect.size.y = -rect->rect.size.y;
}
if (p_src_rect.size.y < 0) {
rect->flags ^= RasterizerCanvas::CANVAS_RECT_FLIP_V;
rect->source.size.y = -rect->source.size.y;
}
if (p_transpose) {
rect->flags |= RasterizerCanvas::CANVAS_RECT_TRANSPOSE;
SWAP(rect->rect.size.x, rect->rect.size.y);