1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-23 23:32:26 +00:00

mp_image: add helper for clearing regions outside of a rectangle

Not sure if generally useful; the following commit uses it.
This commit is contained in:
wm4 2020-05-22 14:18:35 +02:00
parent 1be32529b1
commit 77f730f63c
2 changed files with 16 additions and 0 deletions

View File

@ -678,6 +678,20 @@ void mp_image_clear(struct mp_image *img, int x0, int y0, int x1, int y1)
}
}
void mp_image_clear_rc(struct mp_image *mpi, struct mp_rect rc)
{
mp_image_clear(mpi, rc.x0, rc.y0, rc.x1, rc.y1);
}
// Clear the are of the image _not_ covered by rc.
void mp_image_clear_rc_inv(struct mp_image *mpi, struct mp_rect rc)
{
struct mp_rect clr[4];
int cnt = mp_rect_subtract(&(struct mp_rect){0, 0, mpi->w, mpi->h}, &rc, clr);
for (int n = 0; n < cnt; n++)
mp_image_clear_rc(mpi, clr[n]);
}
void mp_image_vflip(struct mp_image *img)
{
for (int p = 0; p < img->num_planes; p++) {

View File

@ -137,6 +137,8 @@ void mp_image_setrefp(struct mp_image **p_img, struct mp_image *new_value);
void mp_image_unrefp(struct mp_image **p_img);
void mp_image_clear(struct mp_image *mpi, int x0, int y0, int x1, int y1);
void mp_image_clear_rc(struct mp_image *mpi, struct mp_rect rc);
void mp_image_clear_rc_inv(struct mp_image *mpi, struct mp_rect rc);
void mp_image_crop(struct mp_image *img, int x0, int y0, int x1, int y1);
void mp_image_crop_rc(struct mp_image *img, struct mp_rect rc);
void mp_image_vflip(struct mp_image *img);