diff options
Diffstat (limited to 'video/out')
-rw-r--r-- | video/out/vo_gpu_next.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 3f9034b2b2..02fd0e595a 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -1289,16 +1289,23 @@ static void video_screenshot(struct vo *vo, struct voctrl_screenshot *args) int src_w = mpi->params.w; int src_h = mpi->params.h; + src = (struct mp_rect) {0, 0, src_w, src_h}; + dst = (struct mp_rect) {0, 0, w, h}; + + if (mp_image_crop_valid(&mpi->params)) + src = mpi->params.crop; + if (mpi->params.rotate % 180 == 90) { MPSWAP(int, w, h); MPSWAP(int, src_w, src_h); } - src = (struct mp_rect) {0, 0, src_w, src_h}; - dst = (struct mp_rect) {0, 0, w, h}; + mp_rect_rotate(&src, src_w, src_h, mpi->params.rotate); + mp_rect_rotate(&dst, w, h, mpi->params.rotate); + osd = (struct mp_osd_res) { .display_par = 1.0, - .w = w, - .h = h, + .w = mp_rect_w(dst), + .h = mp_rect_h(dst), }; } |