#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 <config.h>
#endif
+#include <string>
+#include <vector>
+
+#include <osg/ref_ptr>
+#include <osg/Camera>
+#include <osg/GraphicsContext>
+
enum { MOUSE_BUTTON_LEFT,
MOUSE_BUTTON_MIDDLE,
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
//
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 fgOSCloseWindow();
void fgOSFullScreen();
-void fgOSMainLoop();
+int fgOSMainLoop();
void fgOSExit(int code);
+void fgOSResetProperties();
void fgSetMouseCursor(int cursor);
int fgGetMouseCursor();
int fgGetKeyModifiers();
-void fgRequestRedraw();
-
//
// Callbacks and registration API
//
typedef void (*fgKeyHandler)(int key, int keymod, int mousex, int mousey);
typedef void (*fgMouseClickHandler)(int button, int updown, int x, int y, bool mainWindow, const osgGA::GUIEventAdapter*);
-typedef void (*fgMouseMotionHandler)(int x, int y);
+typedef void (*fgMouseMotionHandler)(int x, int y, const osgGA::GUIEventAdapter*);
void fgRegisterIdleHandler(fgIdleHandler func);
void fgRegisterDrawHandler(fgDrawHandler func);
void fgRegisterKeyHandler(fgKeyHandler func);
void fgRegisterMouseClickHandler(fgMouseClickHandler func);
void fgRegisterMouseMotionHandler(fgMouseMotionHandler func);
-
-void fgMakeCurrent();
-
-bool fgOSIsMainCamera(const osg::Camera* camera);
-bool fgOSIsMainContext(const osg::GraphicsContext* context);
-
#endif // _FG_OS_HXX