Fix texture atlas generation when source sprite is larger than generated atlas

This commit is contained in:
Giwayume 2021-11-18 10:02:24 -05:00
parent b0f721283d
commit 0093bda767

View file

@ -131,7 +131,7 @@ static void _plot_triangle(Vector2 *vertices, const Vector2 &p_offset, bool p_tr
int max_y = MIN(y[2], height - p_offset.y - 1); int max_y = MIN(y[2], height - p_offset.y - 1);
for (int yi = y[0]; yi < max_y; yi++) { for (int yi = y[0]; yi < max_y; yi++) {
if (yi >= 0) { if (yi >= 0) {
for (int xi = (xf > 0 ? int(xf) : 0); xi < (xt < width ? xt : width - 1); xi++) { for (int xi = (xf > 0 ? int(xf) : 0); xi < (xt < src_width ? xt : src_width - 1); xi++) {
int px = xi, py = yi; int px = xi, py = yi;
int sx = px, sy = py; int sx = px, sy = py;
sx = CLAMP(sx, 0, src_width - 1); sx = CLAMP(sx, 0, src_width - 1);
@ -153,7 +153,7 @@ static void _plot_triangle(Vector2 *vertices, const Vector2 &p_offset, bool p_tr
p_image->set_pixel(px, py, color); p_image->set_pixel(px, py, color);
} }
for (int xi = (xf < width ? int(xf) : width - 1); xi >= (xt > 0 ? xt : 0); xi--) { for (int xi = (xf < src_width ? int(xf) : src_width - 1); xi >= (xt > 0 ? xt : 0); xi--) {
int px = xi, py = yi; int px = xi, py = yi;
int sx = px, sy = py; int sx = px, sy = py;
sx = CLAMP(sx, 0, src_width - 1); sx = CLAMP(sx, 0, src_width - 1);