fix crash when zooming out on small images (#178)
When rendering images, destination image width and height may become zero due to float-to-int conversion after zoom calculation, later crashing when creating an image using those dimensions. This sets a minimum of 1 to both variables. Closes #82
This commit is contained in:
parent
3bc7082f4e
commit
127abbea77
4
image.c
4
image.c
|
@ -602,7 +602,7 @@ void img_render(img_t *img)
|
||||||
sx = 0;
|
sx = 0;
|
||||||
sw = img->w;
|
sw = img->w;
|
||||||
dx = img->x;
|
dx = img->x;
|
||||||
dw = img->w * img->zoom;
|
dw = MAX(img->w * img->zoom, 1);
|
||||||
}
|
}
|
||||||
if (img->y <= 0) {
|
if (img->y <= 0) {
|
||||||
sy = -img->y / img->zoom + 0.5;
|
sy = -img->y / img->zoom + 0.5;
|
||||||
|
@ -613,7 +613,7 @@ void img_render(img_t *img)
|
||||||
sy = 0;
|
sy = 0;
|
||||||
sh = img->h;
|
sh = img->h;
|
||||||
dy = img->y;
|
dy = img->y;
|
||||||
dh = img->h * img->zoom;
|
dh = MAX(img->h * img->zoom, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
win_clear(win);
|
win_clear(win);
|
||||||
|
|
Loading…
Reference in New Issue