Added font renderer and terminal emulator
This commit is contained in:
parent
bc4ec556e2
commit
dd4fda27bb
22 changed files with 1921 additions and 5151 deletions
|
@ -20,10 +20,16 @@
|
|||
#ifndef _CONFIG_CONFIG_H
|
||||
#define _CONFIG_CONFIG_H
|
||||
|
||||
enum {
|
||||
UI_TEXT = 0,
|
||||
UI_MODERN = 1
|
||||
};
|
||||
|
||||
struct axboot_cfg {
|
||||
// overridable stuff
|
||||
int default_entry;
|
||||
int timeout;
|
||||
int ui_mode;
|
||||
|
||||
int entry_count;
|
||||
};
|
||||
|
@ -37,6 +43,10 @@ struct axboot_entry {
|
|||
|
||||
void config_init(void);
|
||||
|
||||
int config_get_timeout();
|
||||
int config_get_default();
|
||||
int config_get_entry_count();
|
||||
struct axboot_entry *config_get_entries();
|
||||
int config_get_ui_mode();
|
||||
|
||||
#endif /* _CONFIG_CONFIG_H */
|
||||
|
|
|
@ -30,6 +30,6 @@ void debug(const char *fmt, ...);
|
|||
|
||||
void printstr(const char *str);
|
||||
|
||||
void snprintf(char *buf, size_t size, const char *fmt, ...);
|
||||
void snprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
|
||||
#endif /* _PRINT_H */
|
|
@ -20,6 +20,14 @@
|
|||
#ifndef _UI_FONT_H
|
||||
#define _UI_FONT_H
|
||||
|
||||
void font_init(char *font_path, int initial_size);
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
struct ui_context;
|
||||
|
||||
bool font_init(struct ui_context *ctx, char *font_path, int size);
|
||||
void font_free(struct ui_context *ctx);
|
||||
|
||||
void font_write(struct ui_context *ctx, char *s, uint32_t cx, uint32_t cy);
|
||||
|
||||
#endif /* _UI_FONT_H */
|
||||
|
|
1604
boot/include/ui/ssfn.h
Normal file
1604
boot/include/ui/ssfn.h
Normal file
File diff suppressed because it is too large
Load diff
37
boot/include/ui/terminal.h
Normal file
37
boot/include/ui/terminal.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*********************************************************************************/
|
||||
/* Module Name: terminal.h */
|
||||
/* Project: AurixOS */
|
||||
/* */
|
||||
/* Copyright (c) 2024-2025 Jozef Nagy */
|
||||
/* */
|
||||
/* This source is subject to the MIT License. */
|
||||
/* See License.txt in the root of this repository. */
|
||||
/* All other rights reserved. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR */
|
||||
/* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, */
|
||||
/* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE */
|
||||
/* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER */
|
||||
/* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */
|
||||
/* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */
|
||||
/* SOFTWARE. */
|
||||
/*********************************************************************************/
|
||||
|
||||
#ifndef _UI_TERMINAL_H
|
||||
#define _UI_TERMINAL_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
struct terminal {
|
||||
uint32_t cx;
|
||||
uint32_t cy;
|
||||
|
||||
int font_size;
|
||||
};
|
||||
|
||||
struct ui_context;
|
||||
|
||||
void terminal_print(struct ui_context *ctx, char *fmt, ...);
|
||||
void terminal_setcur(struct ui_context *ui, uint32_t x, uint32_t y);
|
||||
|
||||
#endif /* _UI_TERMINAL_H */
|
|
@ -21,6 +21,21 @@
|
|||
#define _UI_UI_H
|
||||
|
||||
#include <ui/framebuffer.h>
|
||||
#include <ui/terminal.h>
|
||||
#include <ui/font.h>
|
||||
|
||||
// this is so hacky... but it works
|
||||
#ifdef FONT_IMPLEMENTATION
|
||||
#include <lib/string.h>
|
||||
#include <mm/mman.h>
|
||||
|
||||
#define SSFN_memcmp memcmp
|
||||
#define SSFN_memset memset
|
||||
#define SSFN_realloc mem_realloc
|
||||
#define SSFN_free mem_free
|
||||
#define SSFN_IMPLEMENTATION
|
||||
#endif
|
||||
#include <ui/ssfn.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
|
@ -29,6 +44,13 @@ struct ui_context {
|
|||
struct fb_mode *fb_modes;
|
||||
int total_modes;
|
||||
int current_mode;
|
||||
int ui;
|
||||
|
||||
struct terminal terminal;
|
||||
|
||||
ssfn_t font;
|
||||
ssfn_buf_t font_buf;
|
||||
char *font_file;
|
||||
};
|
||||
|
||||
void ui_init();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue