summaryrefslogtreecommitdiffstats
path: root/video/mp_image.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-05-22 14:18:35 +0200
committerwm4 <wm4@nowhere>2020-05-22 14:18:35 +0200
commit77f730f63c340fc88e8c3db0cb73cff1807d7432 (patch)
tree0e5c9491454fe367534837b5103455a4b977a016 /video/mp_image.c
parent1be32529b161d6c67d51004062ee4e6280036fb3 (diff)
downloadmpv-77f730f63c340fc88e8c3db0cb73cff1807d7432.tar.bz2
mpv-77f730f63c340fc88e8c3db0cb73cff1807d7432.tar.xz
mp_image: add helper for clearing regions outside of a rectangle
Not sure if generally useful; the following commit uses it.
Diffstat (limited to 'video/mp_image.c')
-rw-r--r--video/mp_image.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/video/mp_image.c b/video/mp_image.c
index 81d2b7e04f..0e95a59808 100644
--- a/video/mp_image.c
+++ b/video/mp_image.c
@@ -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++) {