78 lines
1.8 KiB
Plaintext
78 lines
1.8 KiB
Plaintext
COLOR :: enum u32 {
|
|
FG_BLACK :: 0x0000;
|
|
FG_DARK_BLUE :: 0x0001;
|
|
FG_DARK_GREEN :: 0x0002;
|
|
FG_DARK_CYAN :: 0x0003;
|
|
FG_DARK_RED :: 0x0004;
|
|
FG_DARK_MAGENTA :: 0x0005;
|
|
FG_DARK_YELLOW :: 0x0006;
|
|
FG_GREY :: 0x0007;
|
|
FG_DARK_GREY :: 0x0008;
|
|
FG_BLUE :: 0x0009;
|
|
FG_GREEN :: 0x000A;
|
|
FG_CYAN :: 0x000B;
|
|
FG_RED :: 0x000C;
|
|
FG_MAGENTA :: 0x000D;
|
|
FG_YELLOW :: 0x000E;
|
|
FG_WHITE :: 0x000F;
|
|
BG_BLACK :: 0x0000;
|
|
BG_DARK_BLUE :: 0x0010;
|
|
BG_DARK_GREEN :: 0x0020;
|
|
BG_DARK_CYAN :: 0x0030;
|
|
BG_DARK_RED :: 0x0040;
|
|
BG_DARK_MAGENTA :: 0x0050;
|
|
BG_DARK_YELLOW :: 0x0060;
|
|
BG_GREY :: 0x0070;
|
|
BG_DARK_GREY :: 0x0080;
|
|
BG_BLUE :: 0x0090;
|
|
BG_GREEN :: 0x00A0;
|
|
BG_CYAN :: 0x00B0;
|
|
BG_RED :: 0x00C0;
|
|
BG_MAGENTA :: 0x00D0;
|
|
BG_YELLOW :: 0x00E0;
|
|
BG_WHITE :: 0x00F0;
|
|
}
|
|
|
|
PIXEL_TYPE :: enum u32 {
|
|
PIXEL_SOLID :: 0x2588;
|
|
PIXEL_THREEQUARTERS :: 0x2593;
|
|
PIXEL_HALF :: 0x2592;
|
|
PIXEL_QUARTER :: 0x2591;
|
|
}
|
|
|
|
Char_Info :: struct {
|
|
color: COLOR;
|
|
type : PIXEL_TYPE;
|
|
}
|
|
|
|
Screen :: struct {
|
|
width : s64;
|
|
height: s64;
|
|
buffer: [..] Char_Info;
|
|
}
|
|
|
|
init_screen :: (screen: *Screen, width: s64, height: s64) {
|
|
buffer : [..] Char_Info;
|
|
|
|
array_resize(*buffer, width * height);
|
|
|
|
screen.width = width;
|
|
screen.height = height;
|
|
screen.buffer = buffer;
|
|
}
|
|
|
|
resize_screen :: (screen: *Screen, width: s64, height: s64) {
|
|
screen.width = width;
|
|
screen.height = height;
|
|
|
|
array_resize(*screen.buffer, width * height);
|
|
}
|
|
|
|
#load "draw.jai";
|
|
#load "file_operations.jai";
|
|
|
|
#scope_module
|
|
|
|
#import "Basic";
|
|
#import "Math";
|