diff options
author | wm4 <wm4@nowhere> | 2013-09-10 18:33:43 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-09-16 13:45:33 +0200 |
commit | 2f165ee12ba2ebd64cb11224563faa08ecb83e17 (patch) | |
tree | 30d197e666c618a3901e5ab16cfd7581418dd13e /video/out/gl_common.c | |
parent | 6da11789ae51652445760369e1d61299fdbb81d8 (diff) | |
download | mpv-2f165ee12ba2ebd64cb11224563faa08ecb83e17.tar.bz2 mpv-2f165ee12ba2ebd64cb11224563faa08ecb83e17.tar.xz |
gl_common: signal to GL backend whether we are probing
This is supposed to reduce the amount of useless error messages shown
during initialization of vo_opengl. If multiple backends are compiled,
usually only one of them will work. For example, on Linux both X and
Wayland backends can be compiled, but usually either Wayland or X is
running. Then, if Wayland is not running, but X is, trying to initialize
the Wayland backend should not spam the terminal with error messages.
Signed-off-by: Andreas Sinz <andreas.sinz@aon.at>
Diffstat (limited to 'video/out/gl_common.c')
-rw-r--r-- | video/out/gl_common.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/video/out/gl_common.c b/video/out/gl_common.c index 648d4462e8..48b1089147 100644 --- a/video/out/gl_common.c +++ b/video/out/gl_common.c @@ -893,18 +893,21 @@ int mpgl_validate_backend_opt(const struct m_option *opt, struct bstr name, return mpgl_find_backend(s) >= -1 ? 1 : M_OPT_INVALID; } -static MPGLContext *init_backend(struct vo *vo, MPGLSetBackendFn set_backend) +static MPGLContext *init_backend(struct vo *vo, MPGLSetBackendFn set_backend, + bool probing) { MPGLContext *ctx = talloc_ptrtype(NULL, ctx); *ctx = (MPGLContext) { .gl = talloc_zero(ctx, GL), .vo = vo, }; + vo->probing = probing; set_backend(ctx); if (!ctx->vo_init(vo)) { talloc_free(ctx); ctx = NULL; } + vo->probing = false; return ctx; } @@ -914,12 +917,12 @@ MPGLContext *mpgl_init(struct vo *vo, const char *backend_name) int index = mpgl_find_backend(backend_name); if (index == -1) { for (const struct backend *entry = backends; entry->name; entry++) { - ctx = init_backend(vo, entry->init); + ctx = init_backend(vo, entry->init, true); if (ctx) - return ctx; + break; } } else if (index >= 0) { - ctx = init_backend(vo, backends[index].init); + ctx = init_backend(vo, backends[index].init, false); } return ctx; } |