package karl2d_minimal_example import k2 "../.." import "core:mem" import "core:log" import "core:fmt" import "base:runtime" _ :: fmt _ :: mem tex: k2.Texture default_context: runtime.Context track: mem.Tracking_Allocator main :: proc() { when ODIN_DEBUG { mem.tracking_allocator_init(&track, context.allocator) context.allocator = mem.tracking_allocator(&track) } context.logger = log.create_console_logger() default_context = context k2.init(1080, 1080, "Karl2D Minimal Program") //7k2.set_window_position(300, 100) tex = k2.load_texture_from_bytes(#load("sixten.jpg"),) when ODIN_OS != .JS { for !k2.shutdown_wanted() { step(0) } k2.destroy_texture(tex) k2.shutdown() } } shutdown :: proc() { if len(track.allocation_map) > 0 { for _, entry in track.allocation_map { fmt.eprintf("%v leaked: %v bytes\n", entry.location, entry.size) } } mem.tracking_allocator_destroy(&track) } @export step :: proc(dt: f64) -> bool { context = default_context k2.process_events() k2.clear(k2.BLUE) k2.draw_rect({10, 10, 60, 60}, k2.GREEN) k2.draw_rect({20, 20, 40, 40}, k2.BLACK) k2.draw_circle({120, 40}, 30, k2.BLACK) k2.draw_circle({120, 40}, 20, k2.GREEN) k2.draw_text("Hellöpe!", {10, 100}, 64, k2.WHITE) k2.draw_texture_ex(tex, {0, 0, f32(tex.width), f32(tex.height)}, {10, 200, 900, 500}, {}, 0) k2.present() free_all(context.temp_allocator) return true }