diff options
author | Marvin Borner | 2020-08-16 00:44:53 +0200 |
---|---|---|
committer | Marvin Borner | 2020-08-16 00:44:53 +0200 |
commit | c4a0bc2571162ad83fc51eb823f1c535336041bf (patch) | |
tree | cba1169a027fea8884e882be601bf3cbaeaab654 /libgui/inc | |
parent | 9a827eb5f6ff58bf801bc98bcb653876428ebe69 (diff) |
Added psf/gui to libgui
...and some other things
Diffstat (limited to 'libgui/inc')
-rw-r--r-- | libgui/inc/gui.h | 23 | ||||
-rw-r--r-- | libgui/inc/psf.h | 48 |
2 files changed, 71 insertions, 0 deletions
diff --git a/libgui/inc/gui.h b/libgui/inc/gui.h new file mode 100644 index 0000000..52fe805 --- /dev/null +++ b/libgui/inc/gui.h @@ -0,0 +1,23 @@ +// MIT License, Copyright (c) 2020 Marvin Borner +// Some GUI functions + +#ifndef GUI_H +#define GUI_H + +#include <def.h> +#include <vesa.h> + +// Generalized font struct +struct font { + char *chars; + int height; + int width; + int char_size; +}; + +void gui_write(struct vbe *vbe, int x, int y, const u32 c[3], char *text); +void gui_term_write_char(struct vbe *vbe, char ch); +void gui_term_write(struct vbe *vbe, char *text); +void gui_init(char *font_path); + +#endif diff --git a/libgui/inc/psf.h b/libgui/inc/psf.h new file mode 100644 index 0000000..63a3d1e --- /dev/null +++ b/libgui/inc/psf.h @@ -0,0 +1,48 @@ +// MIT License, Copyright (c) 2020 Marvin Borner +// PSF parser + +#ifndef PSF_H +#define PSF_H + +#include <def.h> + +/** + * PSF version 1 + */ + +#define PSF1_MAGIC_0 0x36 +#define PSF1_MAGIC_1 0x04 +#define PSF1_MODE_256 0 +#define PSF1_MODE_512 1 +#define PSF1_MODE_256_UNICODE 2 +#define PSF1_MODE_512_UNICODE 3 + +struct psf1_header { + u8 magic[2]; + u8 mode; + u8 char_size; +}; + +/** + * PSF version 2 + */ + +#define PSF2_MAGIC_0 0x72 +#define PSF2_MAGIC_1 0xb5 +#define PSF2_MAGIC_2 0x4a +#define PSF2_MAGIC_3 0x86 + +struct psf2_header { + u8 magic[4]; + u32 version; + u32 size; + u32 flags; + u32 glyph_count; + u32 char_size; + u32 height; + u32 width; +}; + +struct font *psf_parse(char *data); + +#endif |