WindowTests.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #define IMPORT_CORE
  2. #include <GLFW/glfw3.h>
  3. #include <core/Logger.h>
  4. #include <stdio.h>
  5. #include "../Tests.h"
  6. #include "core/Window.h"
  7. static int ticks = 200;
  8. static Button closeButton = 0;
  9. static Button testButton = 0;
  10. static bool isRunning(void*) {
  11. return !shouldWindowClose() && ticks > 0 && !coreControlsDown(closeButton);
  12. }
  13. static void tick(void*) {
  14. ticks -= ticks > 0;
  15. printf("TPS: %.3f\nFPS: %.3f\n", (double)getWindowTicksPerSecond(),
  16. (double)getWindowFramesPerSecond());
  17. printf("%12s | Down: %d | DownTime: %3d | Released: %d\n",
  18. coreControlsName(closeButton), coreControlsDown(closeButton),
  19. coreControlsDownTime(closeButton),
  20. coreControlsReleased(closeButton));
  21. printf("%12s | Down: %d | DownTime: %3d | Released: %d\n",
  22. coreControlsName(testButton), coreControlsDown(testButton),
  23. coreControlsDownTime(testButton), coreControlsReleased(testButton));
  24. Vector2 mouse = coreControlsLastMousePosition();
  25. printf("Mouse: %.2f %.2f\n", (double)mouse.data[0], (double)mouse.data[1]);
  26. }
  27. static void render(void*, float) {
  28. }
  29. void testWindow(void) {
  30. WindowOptions options = {{{800, 480}}, false, "Test"};
  31. if(openWindow(&options)) {
  32. return;
  33. }
  34. closeButton = coreControlsAdd("Close Button");
  35. coreControlsBindKey(closeButton, GLFW_KEY_Q);
  36. testButton = coreControlsAdd("Test Button");
  37. coreControlsBindKey(testButton, GLFW_KEY_T);
  38. showWindow();
  39. setWindowRunHandler(isRunning, nullptr);
  40. setWindowTickHandler(tick, nullptr);
  41. setWindowRenderHandler(render, nullptr);
  42. setWindowNanosPerTick(50000000);
  43. runWindow();
  44. closeWindow();
  45. }