aboutsummaryrefslogtreecommitdiff
path: root/src/main.odin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.odin')
-rw-r--r--src/main.odin28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/main.odin b/src/main.odin
index 41af6e3..95ddbcd 100644
--- a/src/main.odin
+++ b/src/main.odin
@@ -6,9 +6,12 @@ package demonchime
import "base:runtime"
+import "core:log"
+
import sg "shared:sokol/gfx"
import sapp "shared:sokol/app"
import sglue "shared:sokol/glue"
+import stime "shared:sokol/time"
import slog "shared:sokol/log"
import "draw"
@@ -23,8 +26,18 @@ state: struct {
input: Input,
}
+logger: log.Logger
+
+default_context :: proc "contextless" () -> runtime.Context {
+ ctx := runtime.default_context()
+ ctx.logger = logger
+ return ctx
+}
+
init :: proc "c" () {
- context = runtime.default_context()
+ context = default_context()
+
+ stime.setup()
sg.setup({
environment = sglue.environment(),
@@ -39,7 +52,7 @@ init :: proc "c" () {
}
frame :: proc "c" () {
- context = runtime.default_context()
+ context = default_context()
update_player(&state.player, f32(sapp.frame_duration()))
@@ -48,10 +61,12 @@ frame :: proc "c" () {
draw_player(state.player)
draw.end_frame(&state.renderer)
+
+ free_all(context.temp_allocator)
}
event :: proc "c" (event: ^sapp.Event) {
- context = runtime.default_context()
+ context = default_context()
if event.type == .KEY_DOWN && event.key_code == .ESCAPE {
sapp.quit()
@@ -61,11 +76,14 @@ event :: proc "c" (event: ^sapp.Event) {
}
cleanup :: proc "c" () {
- context = runtime.default_context()
+ context = default_context()
sg.shutdown()
}
main :: proc() {
+ logger = log.create_console_logger()
+ context.logger = logger
+
sapp.run({
init_cb = init,
frame_cb = frame,
@@ -77,4 +95,6 @@ main :: proc() {
icon = {sokol_default = true},
logger = {func=slog.func},
})
+
+ log.destroy_console_logger(logger)
}