From 248a0977f2eb42c308a2430b28b691b75ad1a10d Mon Sep 17 00:00:00 2001 From: Xander Swan Date: Fri, 5 Dec 2025 23:16:27 -0500 Subject: display some debug information --- src/main.odin | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) (limited to 'src/main.odin') diff --git a/src/main.odin b/src/main.odin index 48bf454..e58b94d 100644 --- a/src/main.odin +++ b/src/main.odin @@ -13,6 +13,7 @@ import sapp "shared:sokol/app" import sglue "shared:sokol/glue" import stime "shared:sokol/time" import slog "shared:sokol/log" +import sdtxt "shared:sokol/debugtext" import "draw" import "phys" @@ -33,6 +34,10 @@ state: struct { physics_world: phys.World, input: Input, + + fps: f32, + last_fps: f32, + frames_rendered: int, } logger: log.Logger @@ -53,6 +58,18 @@ init :: proc "c" () { logger = {func=slog.func}, }) + sdtxt.setup({ + fonts = { + 0 = sdtxt.font_kc853(), + // sdtxt.font_kc854(), + // sdtxt.font_z1013(), + // sdtxt.font_cpc(), + // sdtxt.font_c64(), + // sdtxt.font_oric(), + }, + logger = {func=slog.func}, + }) + init_keybinds(&state.input) draw.init(&state.renderer) @@ -72,10 +89,6 @@ init :: proc "c" () { }) i += 65 } - // make_platform(Rect{ - // start = {i, 340}, - // size = {20, 20} - // }) make_platform(Rect{ start = {160, 320}, @@ -123,6 +136,16 @@ frame :: proc "c" () { update_player(&state.player, f32(sapp.frame_duration())) + // sdtxt.canvas(f32(sapp.width()), f32(sapp.height())) + sdtxt.canvas(draw.SCREEN_WIDTH, draw.SCREEN_HEIGHT) + sdtxt.origin(0.1, 0.1) + sdtxt.home() + sdtxt.font(0) + + stats := sg.query_frame_stats() + sdtxt.printf("FPS: %f\n", state.fps) + sdtxt.printf("Draw calls: %d\n", stats.num_draw) + draw.new_frame(&state.renderer) draw_player(state.player) @@ -132,6 +155,14 @@ frame :: proc "c" () { draw.end_frame(&state.renderer) free_all(context.temp_allocator) + + state.frames_rendered += 1 + now := f32(stime.sec(stime.now())) + if now - state.last_fps > 1 { + state.fps = f32(state.frames_rendered) / (now - state.last_fps) + state.last_fps = now + state.frames_rendered = 0 + } } event :: proc "c" (event: ^sapp.Event) { @@ -147,6 +178,7 @@ event :: proc "c" (event: ^sapp.Event) { cleanup :: proc "c" () { context = default_context() sg.shutdown() + sdtxt.shutdown() delete_entity_list(state.platform_list) } @@ -169,3 +201,4 @@ main :: proc() { log.destroy_console_logger(logger) } + -- cgit v1.3-2-g0d8e