From 3b5ee67114bf789c93db23b7a3611302dce7142e Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 29 May 2023 16:44:50 +0200 Subject: Add initial theming support --- src/renderer_m0.c | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 9 deletions(-) (limited to 'src/renderer_m0.c') diff --git a/src/renderer_m0.c b/src/renderer_m0.c index eb19718..9373b73 100644 --- a/src/renderer_m0.c +++ b/src/renderer_m0.c @@ -782,6 +782,48 @@ txt_drawc_small(char c, size_t x, size_t y, u8 clr) { // Initialization. // +Palette themes[] = { + { + COLOR_BLACK, // BG + COLOR_WHITE, // FG + COLOR_BLUE, // ACC_0 + COLOR_RED, // ACC_1 + COLOR_CYAN, // ACC_2 + COLOR_GREY, // COL_OFF + }, + { + RGB15(31, 31, 31), // BG + RGB15( 8, 8, 8), // FG + RGB15( 2, 17, 31), // ACC_0 + RGB15(31, 0, 10), // ACC_1 + RGB15( 0, 27, 30), // ACC_2 + RGB15(16, 17, 19), // COL_OFF + }, + { + RGB15( 0, 0, 31), // BG + RGB15(31, 31, 31), // FG + RGB15( 0, 31, 14), // ACC_0 + RGB15(24, 7, 19), // ACC_1 + RGB15(31, 17, 27), // ACC_2 + RGB15(22, 22, 31), // COL_OFF + }, + { + RGB15(11, 24, 31), // BG + RGB15(31, 31, 31), // FG + RGB15(8, 17, 22), // COL_OFF + RGB15(29, 17, 22), // ACC_1 + RGB15(29, 17, 22), // ACC_1 + RGB15(25, 27, 29), // COL_OFF + }, +}; + +void +swap_palette(int idx) { + for (size_t i = 0; i < 16; i++) { + PAL_BUFFER_BG[i] = themes[idx][i]; + } +} + void renderer_init(void) { // Initialize display mode and bg palette. @@ -815,15 +857,7 @@ renderer_init(void) { BG_H_SCROLL_1 = -240; // Initialize default palette. - PAL_BUFFER_BG[0] = COLOR_BLACK; - PAL_BUFFER_BG[1] = COLOR_WHITE; - PAL_BUFFER_BG[2] = COLOR_RED; - PAL_BUFFER_BG[3] = COLOR_BLUE; - PAL_BUFFER_BG[4] = COLOR_CYAN; - PAL_BUFFER_BG[5] = COLOR_GREY; - PAL_BUFFER_BG[6] = COLOR_WHITE; - PAL_BUFFER_BG[7] = COLOR_GREEN; - PAL_BUFFER_BG[8] = COLOR_PURPLE; + swap_palette(0); // Initialize text engine. txt_init(txt_drawc); -- cgit v1.2.1