rntviewer/src/render.h
2024-07-25 17:01:08 +02:00

79 lines
1.5 KiB
C

struct Viewer {
MemoryEditor mem_edit;
// Imgui colors
f32 col_section[Sec_COUNT][3];
f32 col_key[3];
f32 col_checksum[3];
f32 col_highlight[3];
f32 col_page_start[3];
u64 base_display_addr;
b8 highlight_cluster;
u64 highlighted_cluster;
u64 latest_page_gone_to;
u64 latest_key_gone_to;
u64 latest_checksum_gone_to;
u64 latest_page_list_gone_to;
};
struct Edit_Bg_Color_Data {
RNTuple_Data *rndata;
Viewer viewer;
};
// ----------------------------------------------------
// TERMINAL VIEW
// ----------------------------------------------------
enum Ansi_Color {
ACol_None,
ACol_Red,
ACol_Green,
ACol_Yellow,
ACol_Blue,
ACol_Magenta,
ACol_Cyan,
ACol_White,
ACol_Grey,
ACol_Bright_Red,
ACol_Bright_Green,
ACol_Bright_Yellow,
ACol_Bright_Blue,
ACol_Bright_Magenta,
ACol_Bright_Cyan,
ACol_Bright_White,
ACol_COUNT
};
const u64 ACOL_MAX_LEN = 6;
internal String8 ansi_color_table[ACol_COUNT] = {
str8("\033[0m"),
str8("\033[31m"),
str8("\033[32m"),
str8("\033[33m"),
str8("\033[34m"),
str8("\033[35m"),
str8("\033[36m"),
str8("\033[37m"),
str8("\033[90m"),
str8("\033[91m"),
str8("\033[92m"),
str8("\033[93m"),
str8("\033[94m"),
str8("\033[95m"),
str8("\033[96m"),
str8("\033[97m")
};
struct Term_Viewer {
Ansi_Color col_section[Sec_COUNT];
Ansi_Color col_key;
Ansi_Color col_checksum;
Ansi_Color col_highlight;
Ansi_Color col_page_start;
// How many bytes to render per line
u16 max_cols;
};