|
|
@@ -12,8 +12,8 @@ |
|
|
|
#include <xolatile/xlesses.h> |
|
|
|
|
|
|
|
char * blesses_window_title = "xolatile"; |
|
|
|
int blesses_window_width = 640; |
|
|
|
int blesses_window_height = 480; |
|
|
|
int blesses_window_width = 1800; |
|
|
|
int blesses_window_height = 900; |
|
|
|
int blesses_active = 1; |
|
|
|
int blesses_cursor_x = 0; |
|
|
|
int blesses_cursor_y = 0; |
|
|
@@ -126,7 +126,6 @@ void blesses_synchronize (void) { |
|
|
|
} |
|
|
|
} break; |
|
|
|
default: { |
|
|
|
echo ("--\n"); |
|
|
|
} break; |
|
|
|
} |
|
|
|
|
|
|
@@ -140,6 +139,16 @@ void blesses_synchronize (void) { |
|
|
|
log_out (); |
|
|
|
} |
|
|
|
|
|
|
|
void blesses_render_background_colour (int colour) { |
|
|
|
int x, y; |
|
|
|
|
|
|
|
for (y = 0; y != blesses_window_height / 2; ++y) { |
|
|
|
for (x = 0; x != blesses_window_width / 2; ++x) { |
|
|
|
blesses_sub_framebuffer [y * (blesses_window_width / 2) + x] = 0XFF000000 | colour; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void blesses_render_character (char character, int x, int y, int foreground, int background) { |
|
|
|
const unsigned long int font_code ['~' - ' ' + 1] = { |
|
|
|
0X0000000000000000, 0X00180018183C3C18, 0X0000000000363636, 0X006C6CFE6CFE6C6C, 0X00187ED07C16FC30, 0X0060660C18306606, 0X00DC66B61C36361C, 0X0000000000181818, |
|
|
@@ -156,11 +165,18 @@ void blesses_render_character (char character, int x, int y, int foreground, int |
|
|
|
0X00663C183C660000, 0X3C607C6666660000, 0X007E0C18307E0000, 0X003018180E181830, 0X0018181818181818, 0X000C18187018180C, 0X000000000062D68C, 0X0000000000000000 |
|
|
|
}; |
|
|
|
|
|
|
|
int offset = 0; |
|
|
|
int offset; |
|
|
|
|
|
|
|
log_in (LOG_WARNING, blesses_sub_framebuffer == NULL, "blesses : render_character : Sub framebuffer was not allocated."); |
|
|
|
log_in (LOG_WARNING, blesses_framebuffer == NULL, "blesses : render_character : Framebuffer was not allocated."); |
|
|
|
log_in (LOG_WARNING, character_is_invisible (character), "blesses : render_character : Character is not in visible ASCII range."); |
|
|
|
if ((x <= -1) || (x >= blesses_window_width / 2 - BLESSES_FONT_WIDTH)) return; |
|
|
|
if ((y <= -1) || (y >= blesses_window_height / 2 - BLESSES_FONT_HEIGHT)) return; |
|
|
|
|
|
|
|
log_in (LOG_WARNING, blesses_sub_framebuffer == NULL, "blesses : render_character : Sub framebuffer was not allocated."); |
|
|
|
log_in (LOG_WARNING, blesses_framebuffer == NULL, "blesses : render_character : Framebuffer was not allocated."); |
|
|
|
log_in (LOG_WARNING, character_is_invisible (character), "blesses : render_character : Character is not in visible ASCII range."); |
|
|
|
log_in (LOG_WARNING, x <= -1, "blesses : render_character : X position is under lower limit."); |
|
|
|
log_in (LOG_WARNING, y <= -1, "blesses : render_character : Y position is under lower limit."); |
|
|
|
log_in (LOG_WARNING, x >= blesses_window_width - BLESSES_FONT_WIDTH, "blesses : render_character : X position is above upper limit."); |
|
|
|
log_in (LOG_WARNING, y >= blesses_window_height - BLESSES_FONT_HEIGHT, "blesses : render_character : Y position is above upper limit."); |
|
|
|
|
|
|
|
for (offset = 0; offset != BLESSES_FONT_WIDTH * BLESSES_FONT_HEIGHT; ++offset) { |
|
|
|
int u = offset / BLESSES_FONT_WIDTH + y; |
|
|
@@ -172,21 +188,25 @@ void blesses_render_character (char character, int x, int y, int foreground, int |
|
|
|
log_out (); |
|
|
|
} |
|
|
|
|
|
|
|
void blesses_render_string (char * string, int x, int y, int foreground, int background) { |
|
|
|
int offset = 0; |
|
|
|
void blesses_render_string_limit (char * string, int limit, int * x, int * y, int foreground, int background) { |
|
|
|
int offset; |
|
|
|
|
|
|
|
do { |
|
|
|
for (offset = 0; offset != limit; ++offset) { |
|
|
|
if (string [offset] == '\t') { |
|
|
|
x += BLESSES_FONT_WIDTH * BLESSES_FONT_TABULATOR; |
|
|
|
* x += BLESSES_FONT_WIDTH * BLESSES_FONT_TABULATOR; |
|
|
|
} else if (string [offset] == '\n') { |
|
|
|
y += BLESSES_FONT_HEIGHT; |
|
|
|
x *= 0; |
|
|
|
* y += BLESSES_FONT_HEIGHT; |
|
|
|
* x *= 0; |
|
|
|
} else { |
|
|
|
blesses_render_character (string [offset], x, y, foreground, background); |
|
|
|
blesses_render_character (string [offset], * x, * y, foreground, background); |
|
|
|
|
|
|
|
* x += BLESSES_FONT_WIDTH; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
x += BLESSES_FONT_WIDTH; |
|
|
|
} while (++offset != string_length (string)); |
|
|
|
void blesses_render_string (char * string, int * x, int * y, int foreground, int background) { |
|
|
|
blesses_render_string_limit (string, string_length (string), x, y, foreground, background); |
|
|
|
} |
|
|
|
|
|
|
|
#endif |