From deb385d22b435ed5df368d6702b33d32122180fb Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 12 Jul 2021 18:31:55 -0500 Subject: [PATCH] added debug_log --- res/fonts/mononoki.fnt | 102 +++++++++++++++++++++++++++++++++++++++++ res/fonts/mononoki.png | Bin 0 -> 17298 bytes src/build.onyx | 1 + src/config.onyx | 1 + src/debug_log.onyx | 82 +++++++++++++++++++++++++++++++++ src/main.onyx | 42 +++++++++++++---- 6 files changed, 220 insertions(+), 8 deletions(-) create mode 100644 res/fonts/mononoki.fnt create mode 100644 res/fonts/mononoki.png create mode 100644 src/debug_log.onyx diff --git a/res/fonts/mononoki.fnt b/res/fonts/mononoki.fnt new file mode 100644 index 0000000..56ddbdd --- /dev/null +++ b/res/fonts/mononoki.fnt @@ -0,0 +1,102 @@ +info face="mononoki-Regular Nerd Font Complete" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2 +common lineHeight=37 base=29 scaleW=256 scaleH=256 pages=1 packed=0 +page id=0 file="mononoki.png" +chars count=97 +char id=0 x=52 y=108 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0 +char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=18 page=0 chnl=0 +char id=33 x=244 y=84 width=6 height=24 xoffset=6 yoffset=6 xadvance=18 page=0 chnl=0 +char id=34 x=146 y=132 width=14 height=13 xoffset=2 yoffset=4 xadvance=18 page=0 chnl=0 +char id=35 x=16 y=108 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=36 x=0 y=0 width=18 height=34 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0 +char id=37 x=116 y=108 width=18 height=21 xoffset=0 yoffset=9 xadvance=18 page=0 chnl=0 +char id=38 x=34 y=108 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=39 x=160 y=132 width=6 height=13 xoffset=6 yoffset=4 xadvance=18 page=0 chnl=0 +char id=40 x=18 y=0 width=15 height=32 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0 +char id=41 x=67 y=0 width=15 height=31 xoffset=2 yoffset=5 xadvance=18 page=0 chnl=0 +char id=42 x=116 y=132 width=18 height=17 xoffset=0 yoffset=12 xadvance=18 page=0 chnl=0 +char id=43 x=98 y=132 width=18 height=18 xoffset=0 yoffset=12 xadvance=18 page=0 chnl=0 +char id=44 x=134 y=132 width=12 height=14 xoffset=1 yoffset=24 xadvance=18 page=0 chnl=0 +char id=45 x=0 y=150 width=18 height=5 xoffset=0 yoffset=18 xadvance=18 page=0 chnl=0 +char id=46 x=234 y=132 width=8 height=6 xoffset=5 yoffset=24 xadvance=18 page=0 chnl=0 +char id=47 x=152 y=0 width=18 height=30 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=48 x=226 y=84 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=49 x=78 y=84 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=50 x=94 y=84 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=51 x=111 y=84 width=15 height=24 xoffset=2 yoffset=6 xadvance=18 page=0 chnl=0 +char id=52 x=126 y=84 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=53 x=142 y=84 width=15 height=24 xoffset=2 yoffset=6 xadvance=18 page=0 chnl=0 +char id=54 x=157 y=84 width=17 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=55 x=174 y=84 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=56 x=191 y=84 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=57 x=209 y=84 width=17 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=58 x=247 y=108 width=8 height=18 xoffset=5 yoffset=12 xadvance=18 page=0 chnl=0 +char id=59 x=133 y=34 width=12 height=26 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=60 x=84 y=108 width=16 height=22 xoffset=1 yoffset=10 xadvance=18 page=0 chnl=0 +char id=61 x=186 y=132 width=18 height=12 xoffset=0 yoffset=15 xadvance=18 page=0 chnl=0 +char id=62 x=100 y=108 width=16 height=22 xoffset=1 yoffset=10 xadvance=18 page=0 chnl=0 +char id=63 x=0 y=108 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=64 x=170 y=0 width=18 height=30 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=65 x=145 y=34 width=20 height=24 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=66 x=165 y=34 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=67 x=183 y=34 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=68 x=199 y=34 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=69 x=217 y=34 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=70 x=234 y=34 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=71 x=0 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=72 x=16 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=73 x=32 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=74 x=48 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=75 x=64 y=60 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=76 x=81 y=60 width=18 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=77 x=99 y=60 width=20 height=24 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=78 x=119 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=79 x=135 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=80 x=151 y=60 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=81 x=33 y=0 width=18 height=31 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=82 x=168 y=60 width=18 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=83 x=186 y=60 width=17 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=84 x=203 y=60 width=20 height=24 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=85 x=223 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=86 x=0 y=84 width=20 height=24 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=87 x=20 y=84 width=20 height=24 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=88 x=40 y=84 width=18 height=24 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=89 x=58 y=84 width=20 height=24 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=90 x=239 y=60 width=16 height=24 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 +char id=91 x=82 y=0 width=14 height=31 xoffset=3 yoffset=4 xadvance=18 page=0 chnl=0 +char id=92 x=188 y=0 width=18 height=30 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 +char id=93 x=96 y=0 width=14 height=31 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=94 x=166 y=132 width=20 height=12 xoffset=-1 yoffset=5 xadvance=18 page=0 chnl=0 +char id=95 x=18 y=150 width=18 height=5 xoffset=0 yoffset=27 xadvance=18 page=0 chnl=0 +char id=96 x=222 y=132 width=12 height=8 xoffset=2 yoffset=5 xadvance=18 page=0 chnl=0 +char id=97 x=134 y=108 width=15 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=98 x=206 y=0 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=99 x=149 y=108 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=100 x=222 y=0 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=101 x=165 y=108 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=102 x=238 y=0 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=103 x=0 y=34 width=19 height=26 xoffset=0 yoffset=12 xadvance=18 page=0 chnl=0 +char id=104 x=19 y=34 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=105 x=35 y=34 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=106 x=51 y=0 width=16 height=31 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=107 x=51 y=34 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=108 x=67 y=34 width=16 height=26 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=109 x=181 y=108 width=18 height=18 xoffset=0 yoffset=12 xadvance=18 page=0 chnl=0 +char id=110 x=199 y=108 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=111 x=215 y=108 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=112 x=83 y=34 width=16 height=26 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=113 x=99 y=34 width=16 height=26 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=114 x=231 y=108 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=115 x=0 y=132 width=14 height=18 xoffset=2 yoffset=12 xadvance=18 page=0 chnl=0 +char id=116 x=68 y=108 width=16 height=23 xoffset=1 yoffset=7 xadvance=18 page=0 chnl=0 +char id=117 x=14 y=132 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=118 x=30 y=132 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=119 x=46 y=132 width=20 height=18 xoffset=-1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=120 x=66 y=132 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=121 x=115 y=34 width=18 height=26 xoffset=-1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=122 x=82 y=132 width=16 height=18 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=0 +char id=123 x=110 y=0 width=18 height=31 xoffset=0 yoffset=4 xadvance=18 page=0 chnl=0 +char id=124 x=146 y=0 width=6 height=31 xoffset=6 yoffset=4 xadvance=18 page=0 chnl=0 +char id=125 x=128 y=0 width=18 height=31 xoffset=0 yoffset=4 xadvance=18 page=0 chnl=0 +char id=126 x=204 y=132 width=18 height=9 xoffset=0 yoffset=17 xadvance=18 page=0 chnl=0 +kernings count=0 diff --git a/res/fonts/mononoki.png b/res/fonts/mononoki.png new file mode 100644 index 0000000000000000000000000000000000000000..799ada9d285ad6ca746628b2b1e80b4c67b8575e GIT binary patch literal 17298 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 S{{YY0VDNPHb6Mw<&;$Tew0L6x literal 0 HcmV?d00001 diff --git a/src/build.onyx b/src/build.onyx index 5d96599..a651694 100644 --- a/src/build.onyx +++ b/src/build.onyx @@ -14,6 +14,7 @@ #load "src/main" #load "src/ui/window" + #load "src/debug_log" } #if (package runtime).Runtime == (package runtime).Runtime_Wasi { diff --git a/src/config.onyx b/src/config.onyx index fc36fac..260d83d 100644 --- a/src/config.onyx +++ b/src/config.onyx @@ -4,6 +4,7 @@ package config use package immediate_mode { Color4 } +color_scheme_file :: "/res/colors_dark.json" Colors : struct { dark_background : Color4; diff --git a/src/debug_log.onyx b/src/debug_log.onyx new file mode 100644 index 0000000..ca8b309 --- /dev/null +++ b/src/debug_log.onyx @@ -0,0 +1,82 @@ +package debug + +use package core +#private_file ui :: package ui +#private_file gfx :: package immediate_mode + +init :: () { + log_buffer.line_arena = alloc.arena.make(context.allocator, 4096); + log_buffer.lines = array.make(str); + + debug_log(.Debug, "Debug system initialized.", null); +} + +Severity :: enum { + Debug; + Info; + Warning; + Error; +} + +minimum_severity := Severity.Debug; + +debug_log :: (severity: Severity, format: str, args: ..any) { + if severity < minimum_severity do return; + + buffer1: [4096] u8; + s := conv.str_format_va(format, ~~buffer1, ~~args); + lines := string.split(s, #char "\n", context.temp_allocator); + + line_alloc := alloc.arena.make_allocator(^log_buffer.line_arena); + for l: lines { + if l.count == 0 do continue; + + buffer2: [4096] u8; + s = conv.str_format("[{}] {}\n", ~~buffer2, severity, l); + line := string.alloc_copy(s, line_alloc); + + array.push(^log_buffer.lines, line); + } +} + +draw_debug_log :: (r: ui.Rectangle, y_scroll: ^f32 = null, site := #callsite) { + hash := ui.get_site_hash(site); + + mx, my := ui.get_mouse_position(); + if ui.Rectangle.contains(r, mx, my) { + ui.set_hot_item(hash); + } + + line_spacing := 28.0f; + + if ui.is_hot_item(hash) && y_scroll != null { + if ui.mouse_state.dwheel > 0 do *y_scroll -= 20.0f; + if ui.mouse_state.dwheel < 0 do *y_scroll += 20.0f; + + if ui.is_key_down(38) do *y_scroll -= 20.0f; + if ui.is_key_down(40) do *y_scroll += 20.0f; + } + + x, y := ui.Rectangle.bottom_left(r); + w, h := ui.Rectangle.dimensions(r); + + gfx.push_scissor(x, y - h, w, h); + defer gfx.pop_scissor(); + + ui.draw_rect(r, color=.{0,0,0,0.8}); + + y_offset := line_spacing + *y_scroll; + + while i := log_buffer.lines.count - 1; cast(i32) i >= 0 { + defer i -= 1; + + ui.draw_text_raw(log_buffer.lines[i], x, y - y_offset, color=.{ 0.2, 1.0, 0.2 }); + y_offset += line_spacing; + } +} + +#private_file log_buffer : struct { + line_arena : alloc.arena.ArenaState; + lines : [..] str; +} + diff --git a/src/main.onyx b/src/main.onyx index 31945e4..d7f82bb 100644 --- a/src/main.onyx +++ b/src/main.onyx @@ -8,12 +8,18 @@ use package core #private_file config :: package config #private_file wasm :: package wasm_utils +use package debug { init as debug_init, debug_log, draw_debug_log } + search_buffer: string.String_Buffer; background_tile_texture : gfx.Texture; on_file_load_callbacks : map.Map(u32, (file_event: ^events.Event) -> void); wasm_data : [] u8; +debug_log_y_offset := 0.0f; +debug_log_y_scroll := 0.0f; +debug_log_y_offset_target := 0.0f; + main :: (args: [] cstr) { init(); @@ -22,6 +28,8 @@ main :: (args: [] cstr) { } init :: () { + debug_init(); + gl.init("main_canvas"); events.init(); gfx.immediate_renderer_init(); @@ -30,7 +38,7 @@ init :: () { map.init(^on_file_load_callbacks); - color_file := events.request_file("/res/colors_dark.json"); + color_file := events.request_file(config.color_scheme_file); map.put(^on_file_load_callbacks, color_file, load_colors); search_buffer = string.buffer_make(memory.make_slice(u8, 256)); @@ -50,7 +58,7 @@ init :: () { gl.bindTexture(gl.TEXTURE_2D, -1); } - test_window.size = .{ 800, 800 }; + test_window.size = .{ 800, 800 }; test_window.border_width = 8.0f; } @@ -121,6 +129,10 @@ poll_events :: () -> bool { refresh(); } + if event.keyboard->get_name() == "F7" { + debug_log_y_offset_target = 1 - debug_log_y_offset_target; + } + } else { ui.key_up(event.keyboard.keycode, modifiers); @KeycodeIsWrong // see above } @@ -144,7 +156,7 @@ poll_events :: () -> bool { } case .FileDropped { - printf("File with size {} and status {} was dropped.\n", event.file.size, event.file.status); + debug_log(.Info, "File with size {} and status {} was dropped.\n", event.file.size, event.file.status); if wasm_data.count > 0 do memory.free_slice(^wasm_data); @@ -155,12 +167,12 @@ poll_events :: () -> bool { defer wasm.free(^wasm_module); for ^entry: wasm_module.sections.entries { - printf("Section: {}\nOffset: {}\n", entry.key, entry.value); + debug_log(.Info, "Section: {}\nOffset: {}\n", entry.key, entry.value); } wasm_sections := wasm.parse_sections(^wasm_module); for instr: wasm.instruction_iterator(^wasm_module, ^wasm_sections.code_section[1]) { - printf("{}\n", instr); + debug_log(.Info, "{}\n", instr); } } } @@ -173,8 +185,10 @@ update :: (dt: f32) { t += dt; if ui.is_key_just_down(~~#char "L") { - color_file := events.request_file("/res/colors_dark.json"); + color_file := events.request_file(config.color_scheme_file); map.put(^on_file_load_callbacks, color_file, load_colors); + + debug_log(.Info, "Requested updated colorscheme.", null); } } @@ -214,6 +228,18 @@ draw :: () { draw_menu_bar(^menu_bar); } + { + ui.move_towards(^debug_log_y_offset, debug_log_y_offset_target, 0.07f); + + if debug_log_y_offset > 0.0f { + top_half, _ := ui.Flow.split_horizontal(window_rectangle, top_percent=.5); + height := ui.Rectangle.height(top_half); + top_half.y0 -= height * (1 - debug_log_y_offset); + top_half.y1 -= height * (1 - debug_log_y_offset); + draw_debug_log(top_half, ^debug_log_y_scroll); + } + } + gfx.flush(); ui.end_frame(); } @@ -273,8 +299,6 @@ load_colors :: (event: ^events.Event) { assert(event.kind == .FileRequest, "Bad event type"); assert(event.file.status == .Success, "Failed to load color file"); - println("Reloading colorscheme..."); - color_data := memory.make_slice(u8, event.file.size); defer if color_data.count > 0 do cfree(color_data.data); events.get_requested_file_data(event.file.file_id, color_data); @@ -314,4 +338,6 @@ load_colors :: (event: ^events.Event) { test_window.border_color = config.Colors.primary; test_window.background_color = config.Colors.dark_background; test_window.active_color = config.Colors.background; + + debug_log(.Info, "Successfully loaded colorscheme.", null); } -- 2.25.1