WindowManager.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef CORE_WINDOW_MANAGER_H
  2. #define CORE_WINDOW_MANAGER_H
  3. #include <core/Vector.h>
  4. typedef bool (*WindowRunHandler)(void* data);
  5. typedef void (*WindowTickHandler)(void* data);
  6. typedef void (*WindowRenderHandler)(void* data, float lag);
  7. typedef struct {
  8. IntVector2 size;
  9. bool fullscreen;
  10. const char* name;
  11. } WindowOptions;
  12. bool openWindow(const WindowOptions* options);
  13. void closeWindow(void);
  14. void showWindow(void);
  15. void trapWindowCursor(void);
  16. void freeWindowCursor(void);
  17. bool isWindowCursorTrapped(void);
  18. const IntVector2* getWindowSize(void);
  19. bool hasWindowSizeChanged(void);
  20. bool shouldWindowClose(void);
  21. void setWindowRunHandler(WindowRunHandler wr, void* data);
  22. void setWindowTickHandler(WindowTickHandler t, void* data);
  23. void setWindowRenderHandler(WindowRenderHandler r, void* data);
  24. void setWindowNanosPerTick(i64 nanos);
  25. void runWindow(void);
  26. float getWindowTicksPerSecond(void);
  27. float getWindowFramesPerSecond(void);
  28. void setInputLimit(size_t limit);
  29. void resetInput(void);
  30. void enableInput(void);
  31. void disableInput(void);
  32. bool isInputEnabled(void);
  33. void fillInput(const char* s);
  34. size_t getInputCursor(void);
  35. void setInputCursor(size_t index);
  36. const char* getInputString(void);
  37. typedef size_t Button;
  38. Button addButton(const char* name);
  39. void bindKeyToButton(Button b, int key);
  40. void bindGamepadToButton(Button b, int gamepadButton);
  41. void bindMouseToButton(Button b, int mouseButton);
  42. Vector2 getLastMousePosition(void);
  43. Vector2 getMousePosition(void);
  44. Vector2 getLeftGamepadAxis(void);
  45. Vector2 getRightGamepadAxis(void);
  46. float getLeftGamepadTrigger(void);
  47. float getRightGamepadTrigger(void);
  48. bool isButtonDown(Button b);
  49. int getButtonDownTime(Button b);
  50. bool wasButtonReleased(Button b);
  51. const char* getButtonName(Button b);
  52. #endif