-
Notifications
You must be signed in to change notification settings - Fork 0
/
calm_console.h
78 lines (59 loc) · 22.4 KB
/
calm_console.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
enum buffer_type {
INPUT_BUFFER,
OUTPUT_BUFFER,
};
struct char_buffer {
//This is for the rolling buffer
s32 IndexAt;
//
s32 WriteIndexAt;
//Size of the buffer. Change this?
u32 Count;
char *Chars;
//This is to allocate from if we need more room; for non-rolling buffers
memory_arena *Arena;
//
};
enum view_mode {
VIEW_CLOSE,
VIEW_MID,
VIEW_FULL,
};
enum token_type {
Null,
Word,
Number,
Space,
Open_Parenthesis,
Close_Parenthesis,
Comma,
};
struct token {
token_type Type;
char *String;
s32 Length;
};
enum value_type {
VALUE_FLOAT,
VALUE_BOOL,
VALUE_INT,
VALUE_STRING,
};
struct value_data {
value_type Type;
s64 Value;
};
struct console {
font *InputFont;
font *OutputFont;
view_mode ViewMode;
char_buffer Output;
char_buffer Input;
timer InputTimer;
b32 InputIsActive;
b32 InputIsHot;
rect2 InputConsoleRect;
timer InputClickTimer;
render_group *RenderGroup;
};
static console DebugConsole;