diff --git a/main.odin b/main.odin index 12220cd..9772a41 100644 --- a/main.odin +++ b/main.odin @@ -1,6 +1,7 @@ package main import "core:fmt" +import vmem "core:mem/virtual" import "core:os" import SDL "vendor:sdl2" @@ -16,19 +17,24 @@ print_usage :: proc() { os.exit(1) } - main :: proc() { + arena: vmem.Arena + arena_err := vmem.arena_init_growing(&arena) + ensure(arena_err == nil) + arena_allocator := vmem.arena_allocator(&arena) + defer vmem.arena_destroy(&arena) //clean up everything! + file := Ppm_file{} if len(os.args) > 3 || len(os.args) < 2 { print_usage() } filename := os.args[1] - if ok, err := load_ppm(&file, filename); !ok { + if ok, err := load_ppm(&file, filename, arena_allocator); !ok { fmt.eprintfln("ERROR: Failed to load file '%s': %s ", filename, os.error_string(err)) os.exit(1) } - ppm_parse(&file) + ppm_parse(&file, arena_allocator) window_width: i32 = i32( file.width,