// 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
+// #define PU_USE_GLUT -- moved to configure.ac -- EMH
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
enum { MOUSE_BUTTON_LEFT,
MOUSE_BUTTON_MIDDLE,
//
void fgOSInit(int* argc, char** argv);
-void fgOSOpenWindow(int w, int h, bool alpha);
+void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool stencil,
+ bool fullscreen);
void fgOSFullScreen();
void fgOSMainLoop();
+void fgOSExit(int code);
void fgSetMouseCursor(int cursor);
int fgGetMouseCursor();
// 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);
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