Refresh terminal after updating alpha

This commit is contained in:
Utkarsh Verma 2022-06-02 09:09:14 +05:30
parent 4e2347da12
commit 27f513920f
No known key found for this signature in database
GPG key ID: 817656CF818EFCCC
4 changed files with 16 additions and 12 deletions

View file

@ -15,8 +15,6 @@
#include "util.h"
#include "xmalloc.h"
#define clamp(x, lower, upper) (min(upper, max(x, lower)))
enum thickness {
LIGHT,
HEAVY,
@ -1281,17 +1279,17 @@ draw_box_drawings_light_arc(struct buf *buf, char32_t wc)
* The general idea here is to connect the two incoming lines using a
* circle, which is extended to the box-edges with vertical/horizontal
* lines.
*
*
* The radius of the quartercircle should be as big as possible, with some
* restrictions: The radius should be the same for all of at a
* given box-size (which won't be the case if we choose the biggest
* possible radius for a given box, consider the following:)
*
*
*
*
*
* a d
* x
*
* a d
* x
*
*
*
*
@ -1302,7 +1300,7 @@ draw_box_drawings_light_arc(struct buf *buf, char32_t wc)
* for it would be possible to center the circle on the upper right
* corner of d, but we have set it on x instead because can only use a
* 2px inner radius:
*
*
*
* a d
* x

View file

@ -1190,7 +1190,7 @@ parse_section_colors(struct context *ctx)
return false;
}
conf->colors.alpha = alpha * 65535.;
conf->colors.alpha = alpha * UINT16_MAX;
return true;
}

View file

@ -2005,17 +2005,22 @@ term_font_size_reset(struct terminal *term)
return load_fonts_from_conf(term);
}
#define ALPHA_STEP (0.05 * UINT16_MAX)
bool
term_alpha_increase(struct terminal *term)
{
term->colors.alpha += 0.05;
term->colors.alpha = clamp(term->colors.alpha + ALPHA_STEP, 0, UINT16_MAX);
term->render.last_buf = NULL;
render_refresh(term);
return true;
}
bool
term_alpha_decrease(struct terminal *term)
{
term->colors.alpha -= 0.05;
term->colors.alpha = clamp(term->colors.alpha - ALPHA_STEP, 0, UINT16_MAX);
term->render.last_buf = NULL;
render_refresh(term);
return true;
}

1
util.h
View file

@ -6,6 +6,7 @@
#define ALEN(v) (sizeof(v) / sizeof((v)[0]))
#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))
#define clamp(x, lower, upper) (min(upper, max(x, lower)))
static inline const char *
thrd_err_as_string(int thrd_err)