aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXander Swan <no email>2025-12-05 23:16:27 -0500
committerXander Swan <no email>2025-12-05 23:16:27 -0500
commit248a0977f2eb42c308a2430b28b691b75ad1a10d (patch)
tree2bb764375a9fc71f07c49a6084648ed288a7948d
parent703100ed74e7655c266644dafb23e64ba79e5346 (diff)
display some debug information
-rwxr-xr-xsrc.binbin0 -> 6054296 bytes
-rw-r--r--src/draw/draw.odin9
-rw-r--r--src/main.odin41
3 files changed, 46 insertions, 4 deletions
diff --git a/src.bin b/src.bin
new file mode 100755
index 0000000..f80cc4a
--- /dev/null
+++ b/src.bin
Binary files differ
diff --git a/src/draw/draw.odin b/src/draw/draw.odin
index 1762b25..6c013de 100644
--- a/src/draw/draw.odin
+++ b/src/draw/draw.odin
@@ -5,6 +5,7 @@ import "core:math"
import sg "shared:sokol/gfx"
import sapp "shared:sokol/app"
+import sdtxt "shared:sokol/debugtext"
import sglue "shared:sokol/glue"
Vec2 :: [2]f32
@@ -92,6 +93,12 @@ init :: proc(r: ^Renderer) {
r.sampler = sg.make_sampler({})
r.tint = {1, 1, 1, 1}
+
+ sdtxt.set_context(sdtxt.make_context({
+ color_format = .RGBA8,
+ depth_format = .NONE,
+ sample_count = 1,
+ }))
}
deinit :: proc(r: ^Renderer) {
@@ -118,6 +125,8 @@ end_frame :: proc(r: ^Renderer) {
flush_current_batch(r)
clear(&r.current_batch.vertices)
+ sdtxt.draw()
+
framebuffer_draw_end(r.screen)
r.projection = linalg.matrix_ortho3d(
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)
}
+