more gud ui
This commit is contained in:
@@ -576,22 +576,22 @@ S8 win_proc(void* hwnd, U4 msg, U8 wparam, S8 lparam)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case MS_WM_MOUSEMOVE: {
|
case MS_WM_MOUSEMOVE: {
|
||||||
mu_input_mousemove(&mu_ctx, lparam & 0xFFFF, (lparam >> 16) & 0xFFFF);
|
mu_input_mousemove(&mu_ctx, (S2)(lparam & 0xFFFF), (S2)((lparam >> 16) & 0xFFFF));
|
||||||
ms_invalidate_rect(hwnd, nullptr, true);
|
ms_invalidate_rect(hwnd, nullptr, true);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case MS_WM_LBUTTONDOWN: {
|
case MS_WM_LBUTTONDOWN: {
|
||||||
mu_input_mousedown(&mu_ctx, lparam & 0xFFFF, (lparam >> 16) & 0xFFFF, MU_MOUSE_LEFT);
|
mu_input_mousedown(&mu_ctx, (S2)(lparam & 0xFFFF), (S2)((lparam >> 16) & 0xFFFF), MU_MOUSE_LEFT);
|
||||||
ms_invalidate_rect(hwnd, nullptr, true);
|
ms_invalidate_rect(hwnd, nullptr, true);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case MS_WM_LBUTTONUP: {
|
case MS_WM_LBUTTONUP: {
|
||||||
mu_input_mouseup(&mu_ctx, lparam & 0xFFFF, (lparam >> 16) & 0xFFFF, MU_MOUSE_LEFT);
|
mu_input_mouseup(&mu_ctx, (S2)(lparam & 0xFFFF), (S2)((lparam >> 16) & 0xFFFF), MU_MOUSE_LEFT);
|
||||||
ms_invalidate_rect(hwnd, nullptr, true);
|
ms_invalidate_rect(hwnd, nullptr, true);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case MS_WM_MOUSEWHEEL: {
|
case MS_WM_MOUSEWHEEL: {
|
||||||
mu_input_scroll(&mu_ctx, 0, ((S4)(wparam >> 16)) / -30);
|
mu_input_scroll(&mu_ctx, 0, ((S2)((wparam >> 16) & 0xFFFF)) / -30);
|
||||||
ms_invalidate_rect(hwnd, nullptr, true);
|
ms_invalidate_rect(hwnd, nullptr, true);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -811,13 +811,14 @@ S8 win_proc(void* hwnd, U4 msg, U8 wparam, S8 lparam)
|
|||||||
y += spacing_y;
|
y += spacing_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
mu_ctx.style->colors[MU_COLOR_BUTTON] = mu_color(color_u32 & 0xFF, (color_u32 >> 8) & 0xFF, (color_u32 >> 16) & 0xFF, 255);
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(color_u32 & 0xFF, (color_u32 >> 8) & 0xFF, (color_u32 >> 16) & 0xFF, 255);
|
||||||
|
|
||||||
if (i == cursor_idx && editor_mode == MODE_EDIT) {
|
if (i == cursor_idx && editor_mode == MODE_EDIT) {
|
||||||
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(0,0,0,255);
|
mu_ctx.style->colors[MU_COLOR_BUTTON] = mu_color(0x56, 0x3B, 0x1E, 255); // Dark Orange
|
||||||
mu_ctx.style->colors[MU_COLOR_BUTTON] = mu_color(0x8E, 0x56, 0x3B, 255);
|
|
||||||
} else if (i == cursor_idx && editor_mode == MODE_NAV) {
|
} else if (i == cursor_idx && editor_mode == MODE_NAV) {
|
||||||
mu_ctx.style->colors[MU_COLOR_BUTTON] = mu_color(0x26, 0x2F, 0x3B, 255);
|
mu_ctx.style->colors[MU_COLOR_BUTTON] = mu_color(0x3B, 0x46, 0x56, 255); // Dark Blue
|
||||||
|
} else {
|
||||||
|
mu_ctx.style->colors[MU_COLOR_BUTTON] = mu_color(0x1E, 0x1E, 0x1E, 255); // Dark Gray
|
||||||
}
|
}
|
||||||
|
|
||||||
mu_layout_set_next(&mu_ctx, mu_rect(x, y, btn_w, 22), 1);
|
mu_layout_set_next(&mu_ctx, mu_rect(x, y, btn_w, 22), 1);
|
||||||
@@ -840,22 +841,21 @@ S8 win_proc(void* hwnd, U4 msg, U8 wparam, S8 lparam)
|
|||||||
mu_end_window(&mu_ctx);
|
mu_end_window(&mu_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mu_begin_window(&mu_ctx, "HUD / Memory", mu_rect(10, 500, 900, 200))) {
|
if (mu_begin_window(&mu_ctx, "Compiler & Status", mu_rect(10, 500, 350, 200))) {
|
||||||
char jit_str[64] = "Mode: Incremental | JIT Size: 0x000 bytes";
|
char jit_str[64] = "Mode: Incremental | JIT Size: 0x000 bytes";
|
||||||
if (run_full) mem_copy(u8_(jit_str + 6), u8_("Full "), 11);
|
if (run_full) mem_copy(u8_(jit_str + 6), u8_("Full "), 11);
|
||||||
u64_to_hex(code_arena.used, jit_str + 32, 3);
|
u64_to_hex(code_arena.used, jit_str + 32, 3);
|
||||||
mu_layout_row(&mu_ctx, 1, (int[]){-1}, 0);
|
mu_layout_row(&mu_ctx, 1, (int[]){-1}, 0);
|
||||||
mu_text(&mu_ctx, "x86-64 Machine Code Emitter | 2-Reg Stack | [F5] Toggle Run Mode | [PgUp/PgDn] Scroll");
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(170, 170, 170, 255);
|
||||||
|
mu_text(&mu_ctx, "2-Reg Stack x86-64 Emitter");
|
||||||
|
mu_text(&mu_ctx, "[F5] Toggle Run | [PgUp/PgDn] Scroll");
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(255, 255, 255, 255);
|
||||||
mu_text(&mu_ctx, jit_str);
|
mu_text(&mu_ctx, jit_str);
|
||||||
|
|
||||||
char state_str[64] = "RAX: 00000000 | RDX: 00000000";
|
|
||||||
u64_to_hex(vm_rax, state_str + 5, 8);
|
|
||||||
u64_to_hex(vm_rdx, state_str + 21, 8);
|
|
||||||
mu_text(&mu_ctx, state_str);
|
|
||||||
|
|
||||||
if (tape_count > 0 && cursor_idx < tape_count) {
|
if (tape_count > 0 && cursor_idx < tape_count) {
|
||||||
U4 cur_tag = unpack_tag(tape_ptr[cursor_idx]);
|
U4 cur_tag = unpack_tag(tape_ptr[cursor_idx]);
|
||||||
const char* tag_name = tag_names [cur_tag];
|
const char* tag_name = tag_names [cur_tag];
|
||||||
|
U4 cur_color = tag_colors[cur_tag];
|
||||||
char semantics_str[64] = "Current Tag: ";
|
char semantics_str[64] = "Current Tag: ";
|
||||||
U4 name_len = 0;
|
U4 name_len = 0;
|
||||||
while (tag_name[name_len]) {
|
while (tag_name[name_len]) {
|
||||||
@@ -863,8 +863,43 @@ S8 win_proc(void* hwnd, U4 msg, U8 wparam, S8 lparam)
|
|||||||
name_len ++;
|
name_len ++;
|
||||||
}
|
}
|
||||||
semantics_str[13 + name_len] = '\0';
|
semantics_str[13 + name_len] = '\0';
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(cur_color & 0xFF, (cur_color >> 8) & 0xFF, (cur_color >> 16) & 0xFF, 255);
|
||||||
mu_text(&mu_ctx, semantics_str);
|
mu_text(&mu_ctx, semantics_str);
|
||||||
}
|
}
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(230, 230, 230, 255);
|
||||||
|
mu_end_window(&mu_ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mu_begin_window(&mu_ctx, "Registers & Globals", mu_rect(370, 500, 350, 200))) {
|
||||||
|
char state_str[64] = "RAX: 00000000 | RDX: 00000000";
|
||||||
|
u64_to_hex(vm_rax, state_str + 5, 8);
|
||||||
|
u64_to_hex(vm_rdx, state_str + 21, 8);
|
||||||
|
mu_layout_row(&mu_ctx, 1, (int[]){-1}, 0);
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(161, 186, 148, 255); // #94BAA1 mapped roughly
|
||||||
|
mu_text(&mu_ctx, state_str);
|
||||||
|
|
||||||
|
for (int i=0; i < 4; i ++) {
|
||||||
|
char glob_str[32] = "[0]: 00000000";
|
||||||
|
glob_str[1] = '0' + i;
|
||||||
|
u64_to_hex(vm_globals[i], glob_str + 5, 8);
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(84, 164, 214, 255); // #D6A454 rough mapping to bgr?
|
||||||
|
// actually #D6A454 is R=D6(214) G=A4(164) B=54(84) but tag colors are 0x00BBGGRR, so 54(R) A4(G) D6(B).
|
||||||
|
// It was orange before, so 54, 164, 214.
|
||||||
|
mu_text(&mu_ctx, glob_str);
|
||||||
|
}
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(230, 230, 230, 255);
|
||||||
|
mu_end_window(&mu_ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mu_begin_window(&mu_ctx, "Print Log", mu_rect(730, 500, 250, 200))) {
|
||||||
|
mu_layout_row(&mu_ctx, 1, (int[]){-1}, 0);
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(161, 186, 148, 255);
|
||||||
|
for (int i = 0; i<log_count && i < 16; i ++) {
|
||||||
|
char log_str[32] = "00000000";
|
||||||
|
u64_to_hex(log_buffer[i], log_str, 8);
|
||||||
|
mu_text(&mu_ctx, log_str);
|
||||||
|
}
|
||||||
|
mu_ctx.style->colors[MU_COLOR_TEXT] = mu_color(230, 230, 230, 255);
|
||||||
mu_end_window(&mu_ctx);
|
mu_end_window(&mu_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user