Log.mm 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2025 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #include <TestFramework.h>
  5. #include <Utils/Log.h>
  6. #include <cstdarg>
  7. #include <Cocoa/Cocoa.h>
  8. // Trace to TTY
  9. void TraceImpl(const char *inFMT, ...)
  10. {
  11. // Format the message
  12. va_list list;
  13. va_start(list, inFMT);
  14. char buffer[1024];
  15. vsnprintf(buffer, sizeof(buffer), inFMT, list);
  16. va_end(list);
  17. // Log to the console
  18. printf("%s\n", buffer);
  19. }
  20. void Alert(const char *inFMT, ...)
  21. {
  22. // Format the message
  23. va_list list;
  24. va_start(list, inFMT);
  25. char buffer[1024];
  26. vsnprintf(buffer, sizeof(buffer), inFMT, list);
  27. va_end(list);
  28. Trace("Alert: %s", buffer);
  29. NSAlert *alert = [[[NSAlert alloc] init] autorelease];
  30. alert.messageText = [NSString stringWithCString: buffer encoding: NSUTF8StringEncoding];
  31. [alert runModal];
  32. }
  33. void FatalError [[noreturn]] (const char *inFMT, ...)
  34. {
  35. // Format the message
  36. va_list list;
  37. va_start(list, inFMT);
  38. char buffer[1024];
  39. vsnprintf(buffer, sizeof(buffer), inFMT, list);
  40. va_end(list);
  41. Trace("Fatal Error: %s", buffer);
  42. NSAlert *alert = [[[NSAlert alloc] init] autorelease];
  43. alert.messageText = [NSString stringWithCString: buffer encoding: NSUTF8StringEncoding];
  44. [alert runModal];
  45. exit(1);
  46. }