X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Ffg_os.hxx;h=74d2e468bc28b09d99d6b235c1018ed890736648;hb=3b6c2c426d8fa1b72b7563383cecbba8eb0ff018;hp=931dcb10fedf1780dd30ace7699ce29dd53f7412;hpb=7443b8b5e8419869e401f95af28cea8eac72450a;p=flightgear.git diff --git a/src/Main/fg_os.hxx b/src/Main/fg_os.hxx index 931dcb10f..74d2e468b 100644 --- a/src/Main/fg_os.hxx +++ b/src/Main/fg_os.hxx @@ -1,13 +1,17 @@ #ifndef _FG_OS_HXX #define _FG_OS_HXX -// Plib pui needs to know at compile time what toolkit is in use. -// Change this when we move to something other than glut. -// #define PU_USE_GLUT -- moved to configure.ac -- EMH #ifdef HAVE_CONFIG_H # include #endif +#include +#include + +#include +#include +#include + enum { MOUSE_BUTTON_LEFT, MOUSE_BUTTON_MIDDLE, @@ -20,14 +24,26 @@ enum { MOUSE_CURSOR_NONE, MOUSE_CURSOR_POINTER, MOUSE_CURSOR_WAIT, MOUSE_CURSOR_CROSSHAIR, - MOUSE_CURSOR_LEFTRIGHT }; + MOUSE_CURSOR_LEFTRIGHT, + MOUSE_CURSOR_TOPSIDE, + MOUSE_CURSOR_BOTTOMSIDE, + MOUSE_CURSOR_LEFTSIDE, + MOUSE_CURSOR_RIGHTSIDE, + MOUSE_CURSOR_TOPLEFT, + MOUSE_CURSOR_TOPRIGHT, + MOUSE_CURSOR_BOTTOMLEFT, + MOUSE_CURSOR_BOTTOMRIGHT, +}; enum { KEYMOD_NONE = 0, KEYMOD_RELEASED = 1, // Not a mod key, indicates "up" action KEYMOD_SHIFT = 2, KEYMOD_CTRL = 4, KEYMOD_ALT = 8, - KEYMOD_MAX = 16 }; + KEYMOD_META = 16, + KEYMOD_SUPER = 32, + KEYMOD_HYPER = 64, + KEYMOD_MAX = 128 }; // A note on key codes: none are defined here. FlightGear has no // hard-coded interpretations of codes other than modifier keys, so we @@ -42,10 +58,9 @@ enum { KEYMOD_NONE = 0, // void fgOSInit(int* argc, char** argv); -void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool stencil, - bool fullscreen); +void fgOSOpenWindow(bool stencil); void fgOSFullScreen(); -void fgOSMainLoop(); +int fgOSMainLoop(); void fgOSExit(int code); void fgSetMouseCursor(int cursor); @@ -54,18 +69,19 @@ void fgWarpMouse(int x, int y); int fgGetKeyModifiers(); -void fgRequestRedraw(); - // // Callbacks and registration API // +namespace osg { class Camera; class GraphicsContext; } +namespace osgGA { class GUIEventAdapter; } + typedef void (*fgIdleHandler)(); typedef void (*fgDrawHandler)(); typedef void (*fgWindowResizeHandler)(int w, int h); typedef void (*fgKeyHandler)(int key, int keymod, int mousex, int mousey); -typedef void (*fgMouseClickHandler)(int button, int updown, int x, int y); +typedef void (*fgMouseClickHandler)(int button, int updown, int x, int y, bool mainWindow, const osgGA::GUIEventAdapter*); typedef void (*fgMouseMotionHandler)(int x, int y); void fgRegisterIdleHandler(fgIdleHandler func); @@ -75,6 +91,4 @@ void fgRegisterWindowResizeHandler(fgWindowResizeHandler func); void fgRegisterKeyHandler(fgKeyHandler func); void fgRegisterMouseClickHandler(fgMouseClickHandler func); void fgRegisterMouseMotionHandler(fgMouseMotionHandler func); - -void fgMakeCurrent(); #endif // _FG_OS_HXX