diff options
author | Mia Herkt <mia@0x0.st> | 2022-12-17 06:07:28 +0100 |
---|---|---|
committer | mia <652892+mia-0@users.noreply.github.com> | 2022-12-19 13:48:49 +0100 |
commit | 68ae603e75bcf74c59d398ebd3fc49d6077cd186 (patch) | |
tree | ed78062210fa789ab1d22754de67ae6803877a63 /video/out | |
parent | f1957ce9114b942418bdf34419e400b44442402e (diff) | |
download | mpv-68ae603e75bcf74c59d398ebd3fc49d6077cd186.tar.bz2 mpv-68ae603e75bcf74c59d398ebd3fc49d6077cd186.tar.xz |
vo_sixel: Add option to skip clear while drawing
Diffstat (limited to 'video/out')
-rw-r--r-- | video/out/vo_sixel.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/video/out/vo_sixel.c b/video/out/vo_sixel.c index bfeac60d6e..c096e6370b 100644 --- a/video/out/vo_sixel.c +++ b/video/out/vo_sixel.c @@ -59,7 +59,8 @@ struct priv { int opt_pad_x; int opt_rows; int opt_cols; - int opt_clear; + int opt_draw_clear; + int opt_exit_clear; // Internal data sixel_output_t *output; @@ -332,7 +333,8 @@ static int reconfig(struct vo *vo, struct mp_image_params *params) ret = update_sixel_swscaler(vo, params); } - printf(TERM_ESC_CLEAR_SCREEN); + if (priv->opt_draw_clear) + printf(TERM_ESC_CLEAR_SCREEN); vo->want_redraw = true; return ret; @@ -361,7 +363,8 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) // with a failed reconfig. update_sixel_swscaler(vo, vo->params); - printf(TERM_ESC_CLEAR_SCREEN); + if (priv->opt_draw_clear) + printf(TERM_ESC_CLEAR_SCREEN); resized = true; } @@ -464,7 +467,7 @@ static int preinit(struct vo *vo) sixel_output_set_encode_policy(priv->output, SIXEL_ENCODEPOLICY_FAST); - if (priv->opt_clear) + if (priv->opt_exit_clear) printf(TERM_ESC_SAVE_SCREEN); printf(TERM_ESC_HIDE_CURSOR); @@ -507,7 +510,7 @@ static void uninit(struct vo *vo) printf(TERM_ESC_RESTORE_CURSOR); - if (priv->opt_clear) + if (priv->opt_exit_clear) printf(TERM_ESC_RESTORE_SCREEN); fflush(stdout); @@ -545,7 +548,8 @@ const struct vo_driver video_out_sixel = { .opt_pad_x = -1, .opt_rows = 0, .opt_cols = 0, - .opt_clear = 1, + .opt_draw_clear = 1, + .opt_exit_clear = 1, }, .options = (const m_option_t[]) { {"dither", OPT_CHOICE(opt_diffuse, @@ -569,7 +573,8 @@ const struct vo_driver video_out_sixel = { {"pad-x", OPT_INT(opt_pad_x)}, {"rows", OPT_INT(opt_rows)}, {"cols", OPT_INT(opt_cols)}, - {"exit-clear", OPT_FLAG(opt_clear), }, + {"draw-clear", OPT_FLAG(opt_draw_clear), }, + {"exit-clear", OPT_FLAG(opt_exit_clear), }, {0} }, .options_prefix = "vo-sixel", |