Window.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #ifndef CORE_WINDOW_H
  2. #define CORE_WINDOW_H
  3. #include <core/Vector.h>
  4. typedef bool (*CoreWindowRunHandler)(void* data);
  5. typedef void (*CoreWindowTickHandler)(void* data);
  6. typedef void (*CoreWindowRenderHandler)(void* data, float lag);
  7. typedef struct {
  8. CoreIntVector2 size;
  9. bool fullscreen;
  10. const char* name;
  11. } CoreWindowOptions;
  12. bool coreOpenWindow(const CoreWindowOptions* options);
  13. void coreCloseWindow(void);
  14. void coreShowWindow(void);
  15. void coreTrapWindowCursor(void);
  16. void coreFreeWindowCursor(void);
  17. bool coreIsWindowCursorTrapped(void);
  18. const CoreIntVector2* coreGetWindowSize(void);
  19. bool coreHasWindowSizeChanged(void);
  20. bool coreShouldWindowClose(void);
  21. void coreSetWindowRunHandler(CoreWindowRunHandler wr, void* data);
  22. void coreSetWindowTickHandler(CoreWindowTickHandler t, void* data);
  23. void coreSetWindowRenderHandler(CoreWindowRenderHandler r, void* data);
  24. void coreSetWindowNanosPerTick(i64 nanos);
  25. void coreRunWindow(void);
  26. float coreGetWindowTicksPerSecond(void);
  27. float coreGetWindowFramesPerSecond(void);
  28. // namespace Input {
  29. // void setLimit(int limit);
  30. // void reset();
  31. // void enable();
  32. // void disable();
  33. // bool isEnabled();
  34. // void fill(const char* s);
  35. // int getCursor();
  36. // void setCursor(int index);
  37. // const List<uint32>& getUnicode();
  38. //
  39. // template<int N>
  40. // void toString(StringBuffer<N>& s) {
  41. // for(uint32 c : getUnicode()) {
  42. // s.appendUnicode(c);
  43. // }
  44. // }
  45. // }
  46. typedef size_t CoreButton;
  47. CoreButton coreControlsAdd(const char* name);
  48. void coreControlsBindKey(CoreButton b, int key);
  49. void coreControlsBindGamepad(CoreButton b, int gamepadButton);
  50. void coreControlsBindMouse(CoreButton b, int mouseButton);
  51. CoreVector2 coreControlsLastMousePosition(void);
  52. CoreVector2 coreControlsMousePosition(void);
  53. CoreVector2 coreControlsLeftGamepadAxis(void);
  54. CoreVector2 coreControlsRightGamepadAxis(void);
  55. float coreControlsLeftGamepadTrigger(void);
  56. float coreControlsRightGamepadTrigger(void);
  57. bool coreControlsDown(CoreButton b);
  58. int coreControlsDownTime(CoreButton b);
  59. bool coreControlsReleased(CoreButton b);
  60. const char* coreControlsName(CoreButton b);
  61. #ifdef IMPORT_CORE
  62. #define WindowRunHandler CoreWindowRunHandler
  63. #define WindowTickHandler CoreWindowTickHandler
  64. #define WindowRenderHandler CoreWindowRenderHandler
  65. #define WindowOptions CoreWindowOptions
  66. #define openWindow coreOpenWindow
  67. #define closeWindow coreCloseWindow
  68. #define showWindow coreShowWindow
  69. #define trapWindowCursor coreTrapWindowCursor
  70. #define freeWindowCursor coreFreeWindowCursor
  71. #define isWindowCursorTrapped coreIsWindowCursorTrapped
  72. #define getWindowSize coreGetWindowSize
  73. #define hasWindowSizeChanged coreHasWindowSizeChanged
  74. #define shouldWindowClose coreShouldWindowClose
  75. #define setWindowRunHandler coreSetWindowRunHandler
  76. #define setWindowTickHandler coreSetWindowTickHandler
  77. #define setWindowRenderHandler coreSetWindowRenderHandler
  78. #define setWindowNanosPerTick coreSetWindowNanosPerTick
  79. #define runWindow coreRunWindow
  80. #define getWindowTicksPerSecond coreGetWindowTicksPerSecond
  81. #define getWindowFramesPerSecond coreGetWindowFramesPerSecond
  82. #define Button CoreButton
  83. #endif
  84. #endif