FrostWing
A lightweight raw-control operating system.
Loading...
Searching...
No Matches
fb.h
1
32
33#ifndef _FLANTERM_FB_H
34#define _FLANTERM_FB_H 1
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40#include <stdint.h>
41#include <stddef.h>
42#include <stdbool.h>
43
44#include <flanterm/flanterm.h>
45
46#include <unifont.h>
47
48#define FLANTERM_FB_FONT_GLYPHS 256
49
50extern const uint8_t builtin_font[];
51extern const uint8_t thin_font[];
52
58 uint32_t c;
59 uint32_t fg;
60 uint32_t bg;
61};
62
68 size_t x, y;
70};
71
77 struct flanterm_context term;
78
79 size_t font_width;
80 size_t font_height;
81 size_t glyph_width;
82 size_t glyph_height;
83
84 size_t font_scale_x;
85 size_t font_scale_y;
86
87 size_t offset_x, offset_y;
88
89 volatile uint32_t *framebuffer;
90 size_t pitch;
91 size_t width;
92 size_t height;
93 size_t bpp;
94
96 uint8_t *font_bits;
98 bool *font_bool;
99
100 uint32_t ansi_colours[8];
102 uint32_t default_fg, default_bg;
103 uint32_t default_fg_bright, default_bg_bright;
104
105#ifndef FLANTERM_FB_DISABLE_CANVAS
106 size_t canvas_size;
107 uint32_t *canvas;
108#endif
109
110 size_t grid_size;
111 size_t queue_size;
112 size_t map_size;
113
115
117 size_t queue_i;
118
120
121 uint32_t text_fg;
122 uint32_t text_bg;
123 size_t cursor_x;
124 size_t cursor_y;
125
130
133};
134
161struct flanterm_context *flanterm_fb_init(
162 void *(*_malloc)(size_t),
163 void (*_free)(void *, size_t),
164 uint32_t *framebuffer, size_t width, size_t height, size_t pitch,
165#ifndef FLANTERM_FB_DISABLE_CANVAS
166 uint32_t *canvas,
167#endif
168 uint32_t *ansi_colours, uint32_t *ansi_bright_colours,
169 uint32_t *default_bg, uint32_t *default_fg,
170 uint32_t *default_bg_bright, uint32_t *default_fg_bright,
171 void *font, size_t font_width, size_t font_height, size_t font_spacing,
172 size_t font_scale_x, size_t font_scale_y,
173 size_t margin
174);
175
176#ifndef FLANTERM_FB_DISABLE_BUMP_ALLOC
187static inline struct flanterm_context *flanterm_fb_simple_init(
188 uint32_t *framebuffer, size_t width, size_t height, size_t pitch
189) {
190 return flanterm_fb_init(
191 NULL,
192 NULL,
193 framebuffer, width, height, pitch,
194#ifndef FLANTERM_FB_DISABLE_CANVAS
195 NULL,
196#endif
197 NULL, NULL,
198 NULL, NULL,
199 NULL, NULL,
200 NULL, 0, 0, 1,
201 1, 1,
202 0
203 );
204}
205#endif
206
207#ifdef __cplusplus
208}
209#endif
210
211#endif
Represents a character with its foreground and background colors.
Definition fb.h:57
uint32_t bg
Definition fb.h:60
uint32_t c
Definition fb.h:58
uint32_t fg
Definition fb.h:59
Represents the context for framebuffer-based terminal rendering.
Definition fb.h:76
size_t glyph_width
Definition fb.h:81
struct flanterm_fb_char * grid
Definition fb.h:114
size_t font_height
Definition fb.h:80
uint32_t ansi_bright_colours[8]
Definition fb.h:101
uint32_t default_bg_bright
Definition fb.h:103
uint32_t default_bg
Definition fb.h:102
size_t pitch
Definition fb.h:90
size_t font_bool_size
Definition fb.h:97
size_t saved_state_cursor_x
Definition fb.h:128
uint8_t * font_bits
Definition fb.h:96
size_t cursor_x
Definition fb.h:123
uint32_t text_bg
Definition fb.h:122
size_t height
Definition fb.h:92
size_t grid_size
Definition fb.h:110
size_t canvas_size
Definition fb.h:106
size_t bpp
Definition fb.h:93
volatile uint32_t * framebuffer
Definition fb.h:89
size_t cursor_y
Definition fb.h:124
struct flanterm_fb_queue_item * queue
Definition fb.h:116
size_t old_cursor_x
Definition fb.h:131
size_t font_width
Definition fb.h:79
size_t queue_i
Definition fb.h:117
size_t glyph_height
Definition fb.h:82
size_t old_cursor_y
Definition fb.h:132
uint32_t ansi_colours[8]
Definition fb.h:100
struct flanterm_fb_queue_item ** map
Definition fb.h:119
size_t map_size
Definition fb.h:112
uint32_t * canvas
Definition fb.h:107
struct flanterm_context term
Definition fb.h:77
size_t font_scale_y
Definition fb.h:85
size_t saved_state_cursor_y
Definition fb.h:129
uint32_t saved_state_text_fg
Definition fb.h:126
size_t queue_size
Definition fb.h:111
bool * font_bool
Definition fb.h:98
size_t font_scale_x
Definition fb.h:84
size_t offset_y
Definition fb.h:87
uint32_t text_fg
Definition fb.h:121
uint32_t saved_state_text_bg
Definition fb.h:127
size_t width
Definition fb.h:91
size_t font_bits_size
Definition fb.h:95
Represents an item in the rendering queue.
Definition fb.h:67
struct flanterm_fb_char c
Definition fb.h:69
The font used in framebuffer.