mirror of https://github.com/mpv-player/mpv
vo_gpu_next: avoid 0x0 resizes
It is possible for vo_gpu_next to attempt a resize before the windowing backend is fully initialized. In practice, this can happen on wayland which means libplacebo attempts a 0x0 resize. Depending on the API, a 0x0 resize may be allowed (vulkan or d3d11), but libplacebo just returns a 0 in this case which mpv doesn't do anything with anyway. In the case of opengl, this usage is explictly forbidden and will result in a warning which may confuse users. Solve this by just not trying a resize if dwidth and dheight in the vo are not available. Fixes #10083.
This commit is contained in:
parent
9d133eb00b
commit
6407095871
|
@ -1021,8 +1021,10 @@ static void resize(struct vo *vo)
|
||||||
struct mp_rect src, dst;
|
struct mp_rect src, dst;
|
||||||
struct mp_osd_res osd;
|
struct mp_osd_res osd;
|
||||||
vo_get_src_dst_rects(vo, &src, &dst, &osd);
|
vo_get_src_dst_rects(vo, &src, &dst, &osd);
|
||||||
|
if (vo->dwidth && vo->dheight) {
|
||||||
gpu_ctx_resize(p->context, vo->dwidth, vo->dheight);
|
gpu_ctx_resize(p->context, vo->dwidth, vo->dheight);
|
||||||
vo->want_redraw = true;
|
vo->want_redraw = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (mp_rect_equals(&p->src, &src) &&
|
if (mp_rect_equals(&p->src, &src) &&
|
||||||
mp_rect_equals(&p->dst, &dst) &&
|
mp_rect_equals(&p->dst, &dst) &&
|
||||||
|
|
Loading…
Reference in New Issue