7#include <ascii-chat/video/output_buffer.h>
8#include <ascii-chat/common.h>
9#include <ascii-chat/video/simd/ascii_simd.h>
28 while (ncap < ob->len + need)
29 ncap = (ncap * 3) / 2;
31 ob->buf = SAFE_REALLOC(ob->buf, ncap,
char *);
33 }
else if (ob->len + need > ob->cap) {
35 size_t ncap = ob->cap;
36 while (ncap < ob->len + need)
37 ncap = (ncap * 3) / 2;
38 ob->buf = SAFE_REALLOC(ob->buf, ncap,
char *);
47 ob->buf[ob->len++] = c;
50void ob_write(outbuf_t *ob,
const char *s,
size_t n) {
54 SAFE_MEMCPY(ob->buf + ob->len, ob->cap - ob->len, s, n);
65void ob_u8(outbuf_t *ob, uint8_t v) {
86void ob_u32(outbuf_t *ob, uint32_t v) {
92 tmp[i++] =
'0' + (v % 10u);
97 ob->buf[ob->len++] = tmp[i];
145 uint32_t k = runlen - 1;
146 uint32_t rep_cost = (uint32_t)(digits_u32(k) + 3);
char * get_sgr256_bg_string(uint8_t bg, uint8_t *len_out)
char * get_sgr256_fg_string(uint8_t fg, uint8_t *len_out)
void emit_set_256_color_bg(outbuf_t *ob, uint8_t color_idx)
void emit_set_bg(outbuf_t *ob, uint8_t r, uint8_t g, uint8_t b)
void ob_u32(outbuf_t *ob, uint32_t v)
void ob_u8(outbuf_t *ob, uint8_t v)
void emit_set_256_color_fg(outbuf_t *ob, uint8_t color_idx)
void ob_term(outbuf_t *ob)
void ob_putc(outbuf_t *ob, char c)
bool rep_is_profitable(uint32_t runlen)
void ob_reserve(outbuf_t *ob, size_t need)
void emit_set_truecolor_fg(outbuf_t *ob, uint8_t r, uint8_t g, uint8_t b)
void emit_rep(outbuf_t *ob, uint32_t extra)
void ob_write(outbuf_t *ob, const char *s, size_t n)
void emit_reset(outbuf_t *ob)
void emit_set_truecolor_bg(outbuf_t *ob, uint8_t r, uint8_t g, uint8_t b)
void emit_set_fg(outbuf_t *ob, uint8_t r, uint8_t g, uint8_t b)