console.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. let console_message: string = "";
  2. let console_message_timer: f32 = 0.0;
  3. let console_message_color: i32 = 0x00000000;
  4. let console_last_traces: string[] = [""];
  5. let console_progress_text: string = null;
  6. function console_draw_toast(s: string) {
  7. g2_set_color(0x55000000);
  8. g2_fill_rect(0, 0, sys_width(), sys_height());
  9. let scale: f32 = zui_SCALE(base_get_uis()[0]);
  10. let x: f32 = sys_width() / 2;
  11. let y: f32 = sys_height() - 200 * scale;
  12. g2_fill_rect(x - 200 * scale, y, 400 * scale, 80 * scale);
  13. g2_set_font(base_font);
  14. g2_set_font_size(math_floor(22 * scale));
  15. g2_set_color(0xffffffff);
  16. g2_draw_string(s, x - g2_font_width(_g2_font, _g2_font_size, s) / 2, y + 40 * scale - g2_font_height(_g2_font, _g2_font_size) / 2);
  17. }
  18. function _console_toast_render(s: any) {
  19. console_draw_toast(s);
  20. krom_g4_swap_buffers();
  21. app_remove_render_2d(_console_toast_render);
  22. }
  23. function console_toast(s: string) {
  24. // Show a popup message
  25. app_notify_on_render_2d(_console_toast_render, s);
  26. console_trace(s);
  27. }
  28. function console_draw_progress() {
  29. console_draw_toast(console_progress_text);
  30. }
  31. function console_progress(s: string) {
  32. // Keep popup message displayed until s == null
  33. if (s == null) {
  34. app_remove_render_2d(console_draw_progress);
  35. }
  36. else if (console_progress_text == null) {
  37. app_notify_on_render_2d(console_draw_progress);
  38. }
  39. if (s != null) {
  40. console_trace(s);
  41. }
  42. console_progress_text = s;
  43. }
  44. function console_info(s: string) {
  45. console_message_timer = 5.0;
  46. console_message = s;
  47. console_message_color = 0x00000000;
  48. base_redraw_status();
  49. console_trace(s);
  50. }
  51. function console_error(s: string) {
  52. console_message_timer = 8.0;
  53. console_message = s;
  54. console_message_color = 0xffaa0000;
  55. base_redraw_status();
  56. console_trace(s);
  57. }
  58. function console_log(s: string) {
  59. console_trace(s);
  60. }
  61. function console_trace(v: any) {
  62. base_redraw_console();
  63. console_last_traces.unshift(any_to_string(v));
  64. if (console_last_traces.length > 100) {
  65. console_last_traces.pop();
  66. }
  67. }