Main.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include <GLFW/glfw3.h>
  2. #include <core/Logger.h>
  3. #include <core/Utility.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include "Tests.h"
  7. #include "core/Window.h"
  8. static int ticks = 200;
  9. static CoreButton closeButton = 0;
  10. static CoreButton testButton = 0;
  11. static bool isRunning(void*) {
  12. return !coreWindowShouldClose() && ticks > 0 &&
  13. !coreControlsDown(closeButton);
  14. }
  15. static void tick(void*) {
  16. ticks -= ticks > 0;
  17. printf("TPS: %.3f\nFPS: %.3f\n", (double)coreWindowTicksPerSecond(),
  18. (double)coreWindowFramesPerSecond());
  19. printf("%12s | Down: %d | DownTime: %3d | Released: %d\n",
  20. coreControlsName(closeButton), coreControlsDown(closeButton),
  21. coreControlsDownTime(closeButton),
  22. coreControlsReleased(closeButton));
  23. printf("%12s | Down: %d | DownTime: %3d | Released: %d\n",
  24. coreControlsName(testButton), coreControlsDown(testButton),
  25. coreControlsDownTime(testButton), coreControlsReleased(testButton));
  26. CoreVector2 mouse = coreControlsLastMousePosition();
  27. printf("Mouse: %.2f %.2f\n", (double)mouse.data[0], (double)mouse.data[1]);
  28. }
  29. static void render(void*, float) {
  30. }
  31. static void testWindow(void) {
  32. CoreWindowOptions options = {{{800, 480}}, false, "Test"};
  33. if(coreWindowOpen(&options)) {
  34. return;
  35. }
  36. closeButton = coreControlsAdd("Close Button");
  37. coreControlsBindKey(closeButton, GLFW_KEY_Q);
  38. testButton = coreControlsAdd("Test Button");
  39. coreControlsBindKey(testButton, GLFW_KEY_T);
  40. coreWindowShow();
  41. coreWindowRunHandler(isRunning, nullptr);
  42. coreWindowTickHandler(tick, nullptr);
  43. coreWindowRenderHandler(render, nullptr);
  44. coreWindowNanosPerTick(50000000);
  45. coreWindowRun();
  46. coreWindowClose();
  47. }
  48. int main(int argAmount, char** args) {
  49. (void)args;
  50. if(argAmount < 3) {
  51. CORE_LOG_ERROR("missing path to images and/or mode");
  52. return 0;
  53. } else if(strcmp("test", args[2]) == 0) {
  54. testImageReader(args[1]);
  55. testNetwork();
  56. } else if(strcmp("window", args[2]) == 0) {
  57. testWindow();
  58. }
  59. coreFinalizeTests();
  60. corePrintMemoryReport();
  61. return 0;
  62. }