fonts.odin 1001 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package karl2d_fonts_example
  2. import k2 "../.."
  3. import "core:log"
  4. import "core:fmt"
  5. main :: proc() {
  6. context.logger = log.create_console_logger()
  7. init()
  8. run := true
  9. for run {
  10. run = step()
  11. }
  12. shutdown()
  13. }
  14. cat_and_onion_font: k2.Font_Handle
  15. init :: proc() {
  16. k2.init(1080, 1080, "Karl2D Fonts Example")
  17. cat_and_onion_font = k2.load_font_from_bytes(#load("cat_and_onion_dialogue_font.ttf"))
  18. }
  19. step :: proc() -> bool {
  20. k2.new_frame()
  21. k2.process_events()
  22. k2.clear(k2.BLUE)
  23. font := k2.get_default_font()
  24. if k2.key_is_held(.K) {
  25. font = cat_and_onion_font
  26. }
  27. msg := "Hellöpe! Hold K to swap font"
  28. k2.draw_text_ex(font, msg, {20, 20}, 64, k2.WHITE)
  29. size := k2.measure_text_ex(font, msg, 64)
  30. size_msg := fmt.tprintf("The text above takes %.1f x %.1f pixels of space", size.x, size.y)
  31. k2.draw_text(size_msg, {20, 100}, 32)
  32. k2.present()
  33. free_all(context.temp_allocator)
  34. return !k2.shutdown_wanted()
  35. }
  36. shutdown :: proc() {
  37. k2.destroy_font(cat_and_onion_font)
  38. k2.shutdown()
  39. }