diff options
author | wm4 <wm4@nowhere> | 2013-10-24 22:20:16 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-10-24 22:50:13 +0200 |
commit | 60aea74f4483661e34b12571add07f8e5e136660 (patch) | |
tree | c1b0c94cbb926785cec0e56d7bd50fa18e9f4457 /video/out/vo_opengl.c | |
parent | f6bceacaff0d2e1a1265d29372fcf7b34c57446c (diff) | |
download | mpv-60aea74f4483661e34b12571add07f8e5e136660.tar.bz2 mpv-60aea74f4483661e34b12571add07f8e5e136660.tar.xz |
m_config: refactor option defaults handling
Keep track of the default values directly, instead of creating a new
instance of the option struct just to get the defaults.
Also get rid of the special handling of m_obj_desc.init_options.
Instead, handle it purely by the option parser. Originally, I wanted to
handle --vo=opengl-hq and --vo=direct3d_shaders with this (by making
them aliases to the real VOs with a different preset), but since --vo
=opengl-hq=help prints the wrong values (as consequence of the
simplification), I'm not doing that, and instead use something
different.
Diffstat (limited to 'video/out/vo_opengl.c')
-rw-r--r-- | video/out/vo_opengl.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/video/out/vo_opengl.c b/video/out/vo_opengl.c index e1c07d8621..cf1b3b3400 100644 --- a/video/out/vo_opengl.c +++ b/video/out/vo_opengl.c @@ -200,9 +200,10 @@ static bool reparse_cmdline(struct gl_priv *p, char *args) if (strcmp(args, "-") == 0) { opts = p->renderer_opts; } else { - cfg = m_config_new(NULL, sizeof(*opts), gl_video_conf.defaults, - gl_video_conf.opts, - p->vo->driver->init_option_string); + const struct gl_priv *vodef = p->vo->driver->priv_defaults; + const struct gl_video_opts *def = + vodef ? vodef->renderer_opts : gl_video_conf.defaults; + cfg = m_config_new(NULL, sizeof(*opts), def, gl_video_conf.opts); opts = cfg->optstruct; r = m_config_parse_suboptions(cfg, "opengl", args); } @@ -376,6 +377,8 @@ const struct vo_driver video_out_opengl_hq = { .flip_page = flip_page, .uninit = uninit, .priv_size = sizeof(struct gl_priv), + .priv_defaults = &(const struct gl_priv){ + .renderer_opts = (struct gl_video_opts *)&gl_video_opts_hq_def, + }, .options = options, - .init_option_string = "lscale=lanczos2:dither-depth=auto:fbo-format=rgb16", }; |