minimal.odin 1003 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package karl2d_minimal_example
  2. import k2 "../.."
  3. import "core:mem"
  4. import "core:log"
  5. import "core:fmt"
  6. main :: proc() {
  7. context.logger = log.create_console_logger()
  8. when ODIN_DEBUG {
  9. track: mem.Tracking_Allocator
  10. mem.tracking_allocator_init(&track, context.allocator)
  11. context.allocator = mem.tracking_allocator(&track)
  12. defer {
  13. if len(track.allocation_map) > 0 {
  14. for _, entry in track.allocation_map {
  15. fmt.eprintf("%v leaked: %v bytes\n", entry.location, entry.size)
  16. }
  17. }
  18. mem.tracking_allocator_destroy(&track)
  19. }
  20. }
  21. k2.init(1080, 1080, "Karl2D Minimal Program")
  22. k2.set_window_position(300, 100)
  23. for !k2.shutdown_wanted() {
  24. k2.process_events()
  25. k2.clear(k2.BLUE)
  26. k2.draw_rect({10, 10, 60, 60}, k2.GREEN)
  27. k2.draw_rect({20, 20, 40, 40}, k2.BLACK)
  28. k2.draw_circle({120, 40}, 30, k2.BLACK)
  29. k2.draw_circle({120, 40}, 20, k2.GREEN)
  30. k2.draw_text("Hellöpe!", {10, 100}, 64, k2.WHITE)
  31. k2.present()
  32. free_all(context.temp_allocator)
  33. }
  34. k2.shutdown()
  35. }