#ifndef CORE_WINDOW_H #define CORE_WINDOW_H #include typedef bool (*CoreWindowRunHandler)(void* data); typedef void (*CoreWindowTickHandler)(void* data); typedef void (*CoreWindowRenderHandler)(void* data, float lag); typedef struct { CoreIntVector2 size; bool fullscreen; const char* name; } CoreWindowOptions; bool coreOpenWindow(const CoreWindowOptions* options); void coreCloseWindow(void); void coreShowWindow(void); void coreTrapWindowCursor(void); void coreFreeWindowCursor(void); bool coreIsWindowCursorTrapped(void); const CoreIntVector2* coreGetWindowSize(void); bool coreHasWindowSizeChanged(void); bool coreShouldWindowClose(void); void coreSetWindowRunHandler(CoreWindowRunHandler wr, void* data); void coreSetWindowTickHandler(CoreWindowTickHandler t, void* data); void coreSetWindowRenderHandler(CoreWindowRenderHandler r, void* data); void coreSetWindowNanosPerTick(i64 nanos); void coreRunWindow(void); float coreGetWindowTicksPerSecond(void); float coreGetWindowFramesPerSecond(void); // namespace Input { // void setLimit(int limit); // void reset(); // void enable(); // void disable(); // bool isEnabled(); // void fill(const char* s); // int getCursor(); // void setCursor(int index); // const List& getUnicode(); // // template // void toString(StringBuffer& s) { // for(uint32 c : getUnicode()) { // s.appendUnicode(c); // } // } // } typedef size_t CoreButton; CoreButton coreControlsAdd(const char* name); void coreControlsBindKey(CoreButton b, int key); void coreControlsBindGamepad(CoreButton b, int gamepadButton); void coreControlsBindMouse(CoreButton b, int mouseButton); CoreVector2 coreControlsLastMousePosition(void); CoreVector2 coreControlsMousePosition(void); CoreVector2 coreControlsLeftGamepadAxis(void); CoreVector2 coreControlsRightGamepadAxis(void); float coreControlsLeftGamepadTrigger(void); float coreControlsRightGamepadTrigger(void); bool coreControlsDown(CoreButton b); int coreControlsDownTime(CoreButton b); bool coreControlsReleased(CoreButton b); const char* coreControlsName(CoreButton b); #ifdef IMPORT_CORE #define WindowRunHandler CoreWindowRunHandler #define WindowTickHandler CoreWindowTickHandler #define WindowRenderHandler CoreWindowRenderHandler #define WindowOptions CoreWindowOptions #define openWindow coreOpenWindow #define closeWindow coreCloseWindow #define showWindow coreShowWindow #define trapWindowCursor coreTrapWindowCursor #define freeWindowCursor coreFreeWindowCursor #define isWindowCursorTrapped coreIsWindowCursorTrapped #define getWindowSize coreGetWindowSize #define hasWindowSizeChanged coreHasWindowSizeChanged #define shouldWindowClose coreShouldWindowClose #define setWindowRunHandler coreSetWindowRunHandler #define setWindowTickHandler coreSetWindowTickHandler #define setWindowRenderHandler coreSetWindowRenderHandler #define setWindowNanosPerTick coreSetWindowNanosPerTick #define runWindow coreRunWindow #define getWindowTicksPerSecond coreGetWindowTicksPerSecond #define getWindowFramesPerSecond coreGetWindowFramesPerSecond #define Button CoreButton #endif #endif