#include #include "GSEvents.h" #include "GameShell_stub.h" static HsPtr hsEventHandler; #if defined(linux) extern void GSMain(int *argc, char ***argv); void GSHaskellStart(HsPtr eventHandler) { hsEventHandler = eventHandler; int argc = 0; char **argv = NULL; GSMain(&argc, &argv); } #elif defined(__APPLE__) extern int NSApplicationMain(int argc, char **argv); void GSHaskellStart(HsPtr eventHandler) { hsEventHandler = eventHandler; int argc = 0; char **argv = NULL; NSApplicationMain(argc, argv); } #endif void GSEventInitialize(void) { hsEventHandler = eventInitialize(hsEventHandler); } void GSEventOpenGLContextCreated(void) { hsEventHandler = eventOpenGLContextCreated(hsEventHandler); } void GSEventOpenGLContextWillBeDestroyed(void) { hsEventHandler = eventOpenGLContextWillBeDestroyed(hsEventHandler); } void GSEventOpenGLContextStateInvalidated(void) { hsEventHandler = eventOpenGLContextStateInvalidated(hsEventHandler); } void GSEventOpenGLContextResized(unsigned int newWidth, unsigned int newHeight) { hsEventHandler = eventOpenGLContextResized(hsEventHandler, newWidth, newHeight); } void GSEventDisplay(float deltaT) { hsEventHandler = eventDisplay(hsEventHandler, deltaT); } void GSEventMousePressed(unsigned int button) { hsEventHandler = eventMousePressed(hsEventHandler, button); } void GSEventMouseReleased(unsigned int button) { hsEventHandler = eventMouseReleased(hsEventHandler, button); } void GSEventMouseMovedBy(float deltaX, float deltaY) { hsEventHandler = eventMouseMovedBy(hsEventHandler, deltaX, deltaY); } void GSEventMouseMovedTo(float x, float y) { hsEventHandler = eventMouseMovedTo(hsEventHandler, x, y); } void GSEventKeyPressed(unsigned int keyCode) { hsEventHandler = eventKeyPressed(hsEventHandler, keyCode); } void GSEventKeyReleased(unsigned int keyCode) { hsEventHandler = eventKeyReleased(hsEventHandler, keyCode); } void GSEventTextInput(const char *utf8Text) { hsEventHandler = eventTextInput(hsEventHandler, (HsPtr)utf8Text); }