From 74ab12010185735c6a1afa1029be3824fa56fc92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 10 Jul 2019 18:48:46 +0200 Subject: [PATCH] terminal: use floats instead of double for colors We don't need the full resolution a double gives us. Using floats reduces the size of cells greatly, which improves cache usage. --- terminal.h | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/terminal.h b/terminal.h index 16e53f22..fdb86a81 100644 --- a/terminal.h +++ b/terminal.h @@ -38,20 +38,13 @@ struct wayland { bool have_argb8888; }; -struct rgb { double r, g, b; } __attribute__((packed)); +struct rgb { float r, g, b; } __attribute__((packed)); +/* + * Note: we want the cells to be as small as possible. Larger cells + * means fewer scrollback lines (or performance drops due to cache + * misses) */ struct attributes { -#if 0 - bool bold; - bool italic; - bool underline; - bool strikethrough; - bool blink; - bool conceal; - bool reverse; - bool have_foreground; - bool have_background; -#else uint8_t bold:1; uint8_t italic:1; uint8_t underline:1; @@ -61,7 +54,7 @@ struct attributes { uint8_t reverse:1; uint8_t have_foreground:1; uint8_t have_background:1; -#endif + struct rgb foreground; /* Only valid when have_foreground == true */ struct rgb background; /* Only valid when have_background == true */ } __attribute__((packed));