diff options
Diffstat (limited to 'src/cmd/vterm/vterm.h')
-rw-r--r-- | src/cmd/vterm/vterm.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/cmd/vterm/vterm.h b/src/cmd/vterm/vterm.h new file mode 100644 index 0000000..026e71a --- /dev/null +++ b/src/cmd/vterm/vterm.h @@ -0,0 +1,39 @@ +#pragma once +#include <camellia/types.h> +#include <stdint.h> +#include <stdio.h> +#include <draw.h> + +#define eprintf(fmt, ...) fprintf(stderr, "vterm: "fmt"\n" __VA_OPT__(,) __VA_ARGS__) + + +struct psf1 { + uint16_t magic; + uint8_t mode; + uint8_t h; +} __attribute__((packed)); +struct psf2 { + uint32_t magic; + uint32_t version; + uint32_t glyph_offset; + uint32_t flags; + uint32_t glyph_amt; + uint32_t glyph_size; + uint32_t h; + uint32_t w; +} __attribute__((packed)); +extern struct psf2 font; +extern void *font_data; +void font_load(const char *path); +void font_blit(uint32_t glyph, int x, int y); + +extern struct framebuf fb; + +extern struct rect dirty; +void vdirty_mark(uint32_t x, uint32_t y); +void flush(void); +void scroll(void); + +struct point {uint32_t x, y;}; +extern struct point cursor; +void in_char(char c); |