| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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(1000, 1000, "Karl2D Minimal Program", {.Resizable})
- //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
- }
|