14 #ifndef OSGVIEWER_GRAPHICWINDOW
15 #define OSGVIEWER_GRAPHICWINDOW 1
17 #include <osg/GraphicsContext>
20 #include <osgGA/EventQueue>
21 #include <osgGA/GUIActionAdapter>
23 #include <osgViewer/Export>
49 virtual const char*
libraryName()
const {
return "osgViewer"; }
50 virtual const char*
className()
const {
return "GraphicsWindow"; }
57 virtual bool checkEvents() {
return !(_eventQueue->empty()); }
62 if (setWindowRectangleImplementation(x ,y ,width, height) && _traits.valid())
64 resized(x,y,width,height);
72 virtual void getWindowRectangle(
int& x,
int& y,
int&
width,
int&
height) {
if (_traits.valid()) { x = _traits->x; y = _traits->y; width = _traits->width; height = _traits->height; } }
77 if (setWindowDecorationImplementation(flag) && _traits.valid())
79 _traits->windowDecoration = flag;
88 virtual bool getWindowDecoration()
const {
return _traits.valid() ? _traits->windowDecoration :
false; }
130 virtual std::string
getWindowName() {
return _traits.valid() ? _traits->windowName :
""; }
133 virtual void useCursor(
bool cursorOn) { setCursor(cursorOn ? InheritCursor : NoCursor); }
144 osg::notify(
osg::NOTICE) <<
"GraphicsWindow::setSyncToVBlank(" << on <<
") not implemented." << std::endl;
152 osg::notify(
osg::NOTICE) <<
"GraphicsWindow::setSwapGroup(" << on <<
" " << group <<
" " << barrier <<
") not implemented." << std::endl;
155 void getSwapGroup(
bool& on, GLuint& group, GLuint& barrier)
const { on = _traits->swapGroupEnabled; group = _traits->swapGroup; barrier = _traits->swapBarrier; }
195 typedef std::list<osgViewer::View*>
Views;
198 void getViews(Views& views);
201 virtual void requestRedraw();
231 _traits =
new GraphicsContext::Traits;
242 virtual const char*
className()
const {
return "GraphicsWindowEmbedded"; }
264 virtual bool valid()
const {
return true; }
281 #define USE_GRAPICSWINDOW_IMPLEMENTATION(ext) \
282 extern "C" void graphicswindow_##ext(void); \
283 static osgViewer::GraphicsWindowFunctionProxy graphicswindowproxy_##ext(graphicswindow_##ext);
286 #define USE_GRAPHICSWINDOW() USE_GRAPICSWINDOW_IMPLEMENTATION(Win32)
287 #elif defined(__APPLE__)
288 #define USE_GRAPHICSWINDOW() USE_GRAPICSWINDOW_IMPLEMENTATION(Carbon)
290 #define USE_GRAPHICSWINDOW() USE_GRAPICSWINDOW_IMPLEMENTATION(X11)
void setState(State *state)
virtual const char * libraryName() const
static void incrementContextIDUsageCount(unsigned int contextID)
virtual void grabFocusIfPointerInWindow()
virtual bool setWindowDecorationImplementation(bool)
virtual void setSwapGroup(bool on, GLuint group, GLuint barrier)
virtual void setSyncToVBlank(bool on)
virtual void setWindowName(const std::string &)
virtual bool realizeImplementation()
virtual const char * className() const
std::list< osgViewer::View * > Views
virtual void swapBuffersImplementation()
virtual bool makeCurrentImplementation()
void setGraphicsContext(osg::GraphicsContext *context)
virtual const char * libraryName() const
virtual void swapBuffersImplementation()
virtual bool makeCurrentImplementation()
ref_ptr< Traits > _traits
osgGA::EventQueue * getEventQueue()
virtual bool isRealizedImplementation() const
GraphicsWindowFunctionProxy(CGraphicsWindowFunction function)
void(* CGraphicsWindowFunction)(void)
virtual void raiseWindow()
void setEventQueue(osgGA::EventQueue *eventQueue)
virtual void requestContinuousUpdate(bool=true)
virtual void requestWarpPointer(float, float)
virtual void grabFocusIfPointerInWindow()
virtual void setCursor(MouseCursor)
GLint GLenum GLsizei width
void setGraphicsContext(GraphicsContext *context)
osg::ref_ptr< osgGA::EventQueue > _eventQueue
void setWindowDecoration(bool flag)
typedef void(GL_APIENTRY *GLTexImage3DProc)(GLenum target
GraphicsWindowEmbedded(osg::GraphicsContext::Traits *traits=0)
virtual void raiseWindow()
virtual std::string getWindowName()
static unsigned int createNewContextID()
virtual const char * className() const
virtual void useCursor(bool cursorOn)
virtual bool valid() const
virtual void closeImplementation()
virtual bool realizeImplementation()
void getSwapGroup(bool &on, GLuint &group, GLuint &barrier) const
GLint GLenum GLsizei GLsizei height
virtual bool checkEvents()
virtual void getWindowRectangle(int &x, int &y, int &width, int &height)
GraphicsWindowEmbedded(int x, int y, int width, int height)
void setWindowRectangle(int x, int y, int width, int height)
virtual bool getWindowDecoration() const
OSG_EXPORT std::ostream & notify(const NotifySeverity severity)
void setContextID(unsigned int contextID)
const osgGA::EventQueue * getEventQueue() const
virtual bool isRealizedImplementation() const
virtual void bindPBufferToTextureImplementation(GLenum)
virtual bool makeContextCurrentImplementation(GraphicsContext *)
virtual bool setWindowRectangleImplementation(int, int, int, int)
virtual bool valid() const
virtual bool releaseContextImplementation()
virtual void closeImplementation()
virtual bool isSameKindAs(const Object *object) const
virtual bool isSameKindAs(const Object *object) const
bool getSyncToVBlank() const
virtual bool releaseContextImplementation()