diff options
author | Rostislav Pehlivanov <atomnuker@gmail.com> | 2017-10-09 02:08:36 +0100 |
---|---|---|
committer | Rostislav Pehlivanov <atomnuker@gmail.com> | 2017-10-09 02:23:04 +0100 |
commit | 4c7c8daf9ccea7ac6a9089be362d254771c50811 (patch) | |
tree | 38503f6ba9e44b36cd5cf74452b91e68aed495bf /video/out/opengl | |
parent | 318e2e53f0ff6c466f781378bbacea3e2b8dd8bb (diff) | |
download | mpv-4c7c8daf9ccea7ac6a9089be362d254771c50811.tar.bz2 mpv-4c7c8daf9ccea7ac6a9089be362d254771c50811.tar.xz |
wayland_common: implement output tracking, cleanups and bugfixes
This commit:
- Implements output tracking (e.g. monitor plug/unplug)
- Creates the surface during registry (no other dependencies)
- Queues the callback immediately after surface creation
- Cleaner and better event handling (functions return directly)
- Better reconfigure handling (resizes reduced to 1 during init)
- Don't unnecessarily resize (if dimensions match)
Apart from that fixes 2 potential memory leaks (mime type and window
title), 2 string ownership issues (output name and make need to be
dup'd), fixes some style issues (switches were indented) and finally
adds messages when disabling/enabling idle inhibition.
The callback setter function was removed in preparation for the commit
which will use the frame event cb because it was unnecessary.
Diffstat (limited to 'video/out/opengl')
-rw-r--r-- | video/out/opengl/context_wayland.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/video/out/opengl/context_wayland.c b/video/out/opengl/context_wayland.c index 2d3c22abc1..f686fcc4cf 100644 --- a/video/out/opengl/context_wayland.c +++ b/video/out/opengl/context_wayland.c @@ -39,7 +39,7 @@ static void resize(struct ra_ctx *ctx) struct priv *p = ctx->priv; struct vo_wayland_state *wl = ctx->vo->wl; - MP_VERBOSE(wl, "Handling resizing on the egl side\n"); + MP_VERBOSE(wl, "Handling resize on the egl side\n"); const int32_t width = wl->scaling*mp_rect_w(wl->geometry); const int32_t height = wl->scaling*mp_rect_h(wl->geometry); @@ -85,8 +85,6 @@ static bool egl_create_context(struct ra_ctx *ctx) if (!ra_gl_ctx_init(ctx, &p->gl, params)) return false; - vo_wayland_set_cb_exec(ctx->vo, NULL, NULL); - return true; } @@ -104,8 +102,6 @@ static void egl_create_window(struct ra_ctx *ctx) eglMakeCurrent(p->egl_display, p->egl_surface, p->egl_surface, p->egl_context); eglSwapInterval(p->egl_display, 0); - - wl_display_roundtrip(wl->display); } static bool wayland_egl_reconfig(struct ra_ctx *ctx) |