summaryrefslogtreecommitdiffstats
path: root/video/out
diff options
context:
space:
mode:
authorMia Herkt <mia@0x0.st>2022-12-17 06:07:28 +0100
committermia <652892+mia-0@users.noreply.github.com>2022-12-19 13:48:49 +0100
commit68ae603e75bcf74c59d398ebd3fc49d6077cd186 (patch)
treeed78062210fa789ab1d22754de67ae6803877a63 /video/out
parentf1957ce9114b942418bdf34419e400b44442402e (diff)
downloadmpv-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.c19
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",