Window.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 coreWindowOpen(const CoreWindowOptions* options);
  13. void coreWindowClose(void);
  14. void coreWindowShow(void);
  15. void coreWindowTrapCursor(void);
  16. void coreWindowFreeCursor(void);
  17. bool coreWindowIsCursorTrapped(void);
  18. const CoreIntVector2* coreWindowGetSize(void);
  19. bool CoreWindowSizeChanged(void);
  20. bool coreWindowShouldClose(void);
  21. void coreWindowRunHandler(CoreWindowRunHandler wr, void* data);
  22. void coreWindowTickHandler(CoreWindowTickHandler t, void* data);
  23. void coreWindowRenderHandler(CoreWindowRenderHandler r, void* data);
  24. void coreWindowNanosPerTick(i64 nanos);
  25. void coreWindowRun(void);
  26. float coreWindowTicksPerSecond(void);
  27. float coreWindowFramesPerSecond(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. void coreInitButton(void);
  48. void coreDestroyButton(void);
  49. CoreButton coreButtonAdd(const char* name);
  50. void coreButtonBindKey(CoreButton b, int key);
  51. void coreButtonBindGamepad(CoreButton b, int gamepadButton);
  52. void coreButtonBindMouse(CoreButton b, int mouseButton);
  53. CoreVector2 coreButtonLastMousePosition(void);
  54. CoreVector2 coreButtonMousePosition(void);
  55. CoreVector2 coreButtonLeftGamepadAxis(void);
  56. CoreVector2 coreButtonRightGamepadAxis(void);
  57. float coreButtonLeftGamepadTrigger(void);
  58. float coreButtonRightGamepadTrigger(void);
  59. bool coreButtonDown(CoreButton b);
  60. int coreButtonDownTime(CoreButton b);
  61. bool coreButtonReleased(CoreButton b);
  62. const char* coreButtonName(CoreButton b);
  63. #endif