openscenegraph
osgViewer::GraphicsWindow Class Reference

#include <GraphicsWindow>

Inheritance diagram for osgViewer::GraphicsWindow:
osg::GraphicsContext osgGA::GUIActionAdapter osg::Object osg::Referenced osgViewer::GraphicsWindowEmbedded osgViewer::GraphicsWindowWin32 osgViewer::GraphicsWindowX11

Public Types

enum  MouseCursor {
  InheritCursor , NoCursor , RightArrowCursor , LeftArrowCursor ,
  InfoCursor , DestroyCursor , HelpCursor , CycleCursor ,
  SprayCursor , WaitCursor , TextCursor , CrosshairCursor ,
  HandCursor , UpDownCursor , LeftRightCursor , TopSideCursor ,
  BottomSideCursor , LeftSideCursor , RightSideCursor , TopLeftCorner ,
  TopRightCorner , BottomRightCorner , BottomLeftCorner
}
typedef std::list< osgViewer::View * > Views
Public Types inherited from osg::GraphicsContext
typedef std::vector< ScreenSettingsScreenSettingsList
typedef std::vector< GraphicsContext * > GraphicsContexts
typedef std::list< ref_ptr< Operation > > GraphicsOperationQueue
typedef std::list< osg::Camera * > Cameras
Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

Public Member Functions

 GraphicsWindow ()
virtual bool isSameKindAs (const Object *object) const
virtual const char * libraryName () const
virtual const char * className () const
void setEventQueue (osgGA::EventQueue *eventQueue)
osgGA::EventQueuegetEventQueue ()
const osgGA::EventQueuegetEventQueue () const
virtual bool checkEvents ()
void setWindowRectangle (int x, int y, int width, int height)
virtual bool setWindowRectangleImplementation (int, int, int, int)
virtual void getWindowRectangle (int &x, int &y, int &width, int &height)
void setWindowDecoration (bool flag)
virtual bool setWindowDecorationImplementation (bool)
virtual bool getWindowDecoration () const
virtual void grabFocus ()
virtual void grabFocusIfPointerInWindow ()
virtual void raiseWindow ()
virtual void setWindowName (const std::string &)
virtual std::string getWindowName ()
virtual void useCursor (bool cursorOn)
virtual void setCursor (MouseCursor)
virtual void setSyncToVBlank (bool on)
bool getSyncToVBlank () const
virtual void setSwapGroup (bool on, GLuint group, GLuint barrier)
void getSwapGroup (bool &on, GLuint &group, GLuint &barrier) const
virtual bool valid () const
virtual bool realizeImplementation ()
virtual bool isRealizedImplementation () const
virtual void closeImplementation ()
virtual bool makeCurrentImplementation ()
virtual bool makeContextCurrentImplementation (GraphicsContext *)
virtual bool releaseContextImplementation ()
virtual void bindPBufferToTextureImplementation (GLenum)
virtual void swapBuffersImplementation ()
void getViews (Views &views)
virtual void requestRedraw ()
virtual void requestContinuousUpdate (bool=true)
virtual void requestWarpPointer (float, float)
Public Member Functions inherited from osg::GraphicsContext
void add (Operation *operation)
void remove (Operation *operation)
void remove (const std::string &name)
void removeAllOperations ()
virtual void runOperations ()
GraphicsOperationQueuegetOperationsQueue ()
OpenThreads::MutexgetOperationsMutex ()
osg::RefBlockgetOperationsBlock ()
OperationgetCurrentOperation ()
const TraitsgetTraits () const
void setState (State *state)
StategetState ()
const StategetState () const
void setClearColor (const Vec4 &color)
const Vec4getClearColor () const
void setClearMask (GLbitfield mask)
GLbitfield getClearMask () const
virtual void clear ()
double getTimeSinceLastClear () const
bool realize ()
void close (bool callCloseImplementation=true)
void swapBuffers ()
bool isRealized () const
bool makeCurrent ()
bool makeContextCurrent (GraphicsContext *readContext)
bool releaseContext ()
bool isCurrent () const
void bindPBufferToTexture (GLenum buffer)
void createGraphicsThread ()
void setGraphicsThread (GraphicsThread *gt)
GraphicsThreadgetGraphicsThread ()
const GraphicsThreadgetGraphicsThread () const
virtual bool makeContextCurrentImplementation (GraphicsContext *readContext)=0
void setSwapCallback (SwapCallback *rc)
SwapCallbackgetSwapCallback ()
const SwapCallbackgetSwapCallback () const
void swapBuffersCallbackOrImplementation ()
void resized (int x, int y, int width, int height)
void setResizedCallback (ResizedCallback *rc)
ResizedCallbackgetResizedCallback ()
const ResizedCallbackgetResizedCallback () const
virtual void resizedImplementation (int x, int y, int width, int height)
CamerasgetCameras ()
const CamerasgetCameras () const
void setDefaultFboId (GLuint i)
GLuint getDefaultFboId () const
virtual bool isSameKindAs (const Object *object) const
Public Member Functions inherited from osg::Object
 Object ()
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
std::string getCompoundClassName () const
virtual NodeasNode ()
virtual const NodeasNode () const
virtual NodeVisitorasNodeVisitor ()
virtual const NodeVisitorasNodeVisitor () const
virtual StateSetasStateSet ()
virtual const StateSetasStateSet () const
virtual StateAttributeasStateAttribute ()
virtual const StateAttributeasStateAttribute () const
virtual UniformasUniform ()
virtual const UniformasUniform () const
virtual CameraasCamera ()
virtual const CameraasCamera () const
virtual DrawableasDrawable ()
virtual const DrawableasDrawable () const
virtual CallbackasCallback ()
virtual const CallbackasCallback () const
virtual CallbackObjectasCallbackObject ()
virtual const CallbackObjectasCallbackObject () const
virtual UserDataContainerasUserDataContainer ()
virtual const UserDataContainerasUserDataContainer () const
virtual ValueObjectasValueObject ()
virtual const ValueObjectasValueObject () const
virtual ImageasImage ()
virtual const ImageasImage () const
virtual void setThreadSafeRefUnref (bool threadSafe)
virtual void setName (const std::string &name)
void setName (const char *name)
const std::string & getName () const
void setDataVariance (DataVariance dv)
DataVariance getDataVariance () const
virtual void computeDataVariance ()
void setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainergetUserDataContainer ()
const osg::UserDataContainergetUserDataContainer () const
osg::UserDataContainergetOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
template<class T>
void setUserData (const ref_ptr< T > &ud)
virtual ReferencedgetUserData ()
virtual const ReferencedgetUserData () const
template<typename T>
bool getUserValue (const std::string &name, T &value) const
template<typename T>
void setUserValue (const std::string &name, const T &value)
virtual void resizeGLObjectBuffers (unsigned int)
virtual void releaseGLObjects (osg::State *=0) const
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const
Public Member Functions inherited from osgGA::GUIActionAdapter
virtual ~GUIActionAdapter ()
virtual osg::ViewasView ()
virtual bool computeIntersections (const osgGA::GUIEventAdapter &, osgUtil::LineSegmentIntersector::Intersections &, osg::Node::NodeMask=0xffffffff)
virtual bool computeIntersections (const osgGA::GUIEventAdapter &, const osg::NodePath &, osgUtil::LineSegmentIntersector::Intersections &, osg::Node::NodeMask=0xffffffff)

Protected Attributes

osg::ref_ptr< osgGA::EventQueue_eventQueue
Protected Attributes inherited from osg::GraphicsContext
Cameras _cameras
ref_ptr< Traits_traits
ref_ptr< State_state
Vec4 _clearColor
GLbitfield _clearMask
size_t _threadOfLastMakeCurrent
OpenThreads::Mutex _operationsMutex
osg::ref_ptr< osg::RefBlock_operationsBlock
GraphicsOperationQueue _operations
osg::ref_ptr< Operation_currentOperation
ref_ptr< GraphicsThread_graphicsThread
ref_ptr< ResizedCallback_resizedCallback
ref_ptr< SwapCallback_swapCallback
Timer_t _lastClearTick
GLuint _defaultFboId
Protected Attributes inherited from osg::Object
std::string _name
DataVariance _dataVariance
osg::UserDataContainer_userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Additional Inherited Members

Static Public Member Functions inherited from osg::GraphicsContext
static osg::ref_ptr< WindowingSystemInterfaces > & getWindowingSystemInterfaces ()
static WindowingSystemInterfacegetWindowingSystemInterface (const std::string &name="")
static GraphicsContextcreateGraphicsContext (Traits *traits)
static unsigned int createNewContextID ()
static unsigned int getMaxContextID ()
static void incrementContextIDUsageCount (unsigned int contextID)
static void decrementContextIDUsageCount (unsigned int contextID)
static GraphicsContexts getAllRegisteredGraphicsContexts ()
static GraphicsContexts getRegisteredGraphicsContexts (unsigned int contextID)
static void setCompileContext (unsigned int contextID, GraphicsContext *gc)
static GraphicsContextgetOrCreateCompileContext (unsigned int contextID)
static GraphicsContextgetCompileContext (unsigned int contextID)
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()
Protected Member Functions inherited from osg::GraphicsContext
 GraphicsContext ()
 GraphicsContext (const GraphicsContext &, const osg::CopyOp &)
virtual ~GraphicsContext ()
virtual ObjectcloneType () const
virtual Objectclone (const CopyOp &) const
void addCamera (osg::Camera *camera)
void removeCamera (osg::Camera *camera)
Protected Member Functions inherited from osg::Object
virtual ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const
Static Protected Member Functions inherited from osg::GraphicsContext
static void registerGraphicsContext (GraphicsContext *gc)
static void unregisterGraphicsContext (GraphicsContext *gc)

Detailed Description

Base class for providing Windowing API agnostic access to creating and managing graphics window and events. Note, the GraphicsWindow is subclassed from osg::GraphicsContext, and to provide an implementation you'll need to implement its range of pure virtual functions, you'll find these all have naming convention methodNameImplementation(..). GraphicsWindow adds the event queue on top of the GraphicsContext, thereby adding a mechanism for adapting Windowing events as well as basics graphics context work, you should wire up custom GraphicsWindowImplementation to push their events through into the EventQueue.

Member Typedef Documentation

◆ Views

Member Enumeration Documentation

◆ MouseCursor

Mouse cursor types, the same ones already present with ancient glut ...

Enumerator
InheritCursor 
NoCursor 
RightArrowCursor 
LeftArrowCursor 
InfoCursor 
DestroyCursor 
HelpCursor 
CycleCursor 
SprayCursor 
WaitCursor 
TextCursor 
CrosshairCursor 
HandCursor 
UpDownCursor 
LeftRightCursor 
TopSideCursor 
BottomSideCursor 
LeftSideCursor 
RightSideCursor 
TopLeftCorner 
TopRightCorner 
BottomRightCorner 
BottomLeftCorner 

Constructor & Destructor Documentation

◆ GraphicsWindow()

osgViewer::GraphicsWindow::GraphicsWindow ( )
inline

References _eventQueue.

Referenced by isSameKindAs().

Member Function Documentation

◆ bindPBufferToTextureImplementation()

virtual void osgViewer::GraphicsWindow::bindPBufferToTextureImplementation ( GLenum )
inlinevirtual

Pure virtual, Bind the graphics context to associated texture implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.

Implements osg::GraphicsContext.

References osg::NOTICE, and osg::notify().

◆ checkEvents()

virtual bool osgViewer::GraphicsWindow::checkEvents ( )
inlinevirtual

Check events, return true if events have been received.

Reimplemented in osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References _eventQueue.

◆ className()

virtual const char * osgViewer::GraphicsWindow::className ( ) const
inlinevirtual

return the name of the object's class type. Must be defined by derived classes.

Reimplemented from osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

◆ closeImplementation()

virtual void osgViewer::GraphicsWindow::closeImplementation ( )
inlinevirtual

Close the graphics context implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ getEventQueue() [1/2]

osgGA::EventQueue * osgViewer::GraphicsWindow::getEventQueue ( )
inline

References _eventQueue.

◆ getEventQueue() [2/2]

const osgGA::EventQueue * osgViewer::GraphicsWindow::getEventQueue ( ) const
inline

References _eventQueue.

◆ getSwapGroup()

void osgViewer::GraphicsWindow::getSwapGroup ( bool & on,
GLuint & group,
GLuint & barrier ) const
inline

◆ getSyncToVBlank()

bool osgViewer::GraphicsWindow::getSyncToVBlank ( ) const
inline

◆ getViews()

void osgViewer::GraphicsWindow::getViews ( Views & views)

Returns the list of views (osgViewer::View) attached to this GraphicsWindow. Internally, the method walks through all the cameras and collects all the views attached to the cameras.

◆ getWindowDecoration()

virtual bool osgViewer::GraphicsWindow::getWindowDecoration ( ) const
inlinevirtual

Set Window decoration.

References osg::GraphicsContext::_traits.

◆ getWindowName()

virtual std::string osgViewer::GraphicsWindow::getWindowName ( )
inlinevirtual

Return the name of the window

References osg::GraphicsContext::_traits.

◆ getWindowRectangle()

virtual void osgViewer::GraphicsWindow::getWindowRectangle ( int & x,
int & y,
int & width,
int & height )
inlinevirtual

Get the window's position and size.

References osg::GraphicsContext::_traits.

◆ grabFocus()

virtual void osgViewer::GraphicsWindow::grabFocus ( )
inlinevirtual

◆ grabFocusIfPointerInWindow()

virtual void osgViewer::GraphicsWindow::grabFocusIfPointerInWindow ( )
inlinevirtual

Get focus on if the pointer is in this window.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ isRealizedImplementation()

virtual bool osgViewer::GraphicsWindow::isRealizedImplementation ( ) const
inlinevirtual

Return true if the graphics context has been realized, and is ready to use, implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ isSameKindAs()

virtual bool osgViewer::GraphicsWindow::isSameKindAs ( const Object * object) const
inlinevirtual

◆ libraryName()

virtual const char * osgViewer::GraphicsWindow::libraryName ( ) const
inlinevirtual

return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.

Reimplemented from osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

◆ makeContextCurrentImplementation()

virtual bool osgViewer::GraphicsWindow::makeContextCurrentImplementation ( GraphicsContext * )
inlinevirtual

Make this graphics context current with specified read context implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.

References osg::GraphicsContext::GraphicsContext(), osg::NOTICE, and osg::notify().

◆ makeCurrentImplementation()

virtual bool osgViewer::GraphicsWindow::makeCurrentImplementation ( )
inlinevirtual

Make this graphics context current implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ raiseWindow()

virtual void osgViewer::GraphicsWindow::raiseWindow ( )
inlinevirtual

◆ realizeImplementation()

virtual bool osgViewer::GraphicsWindow::realizeImplementation ( )
inlinevirtual

Realize the GraphicsContext implementation, Pure virtual - must be implemented by concrete implementations of GraphicsContext.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ releaseContextImplementation()

virtual bool osgViewer::GraphicsWindow::releaseContextImplementation ( )
inlinevirtual

Release the graphics context.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ requestContinuousUpdate()

virtual void osgViewer::GraphicsWindow::requestContinuousUpdate ( bool needed = true)
inlinevirtual

requestContinuousUpdate(bool) is for en/disabling a throw or idle callback to be requested by a GUIEventHandler (typically a CameraManipulator, though other GUIEventHandler's may also provide functionality). GUI toolkits can respond to this immediately by registering an idle/timed callback, or can delay setting the callback and update at their own leisure.

Implements osgGA::GUIActionAdapter.

◆ requestRedraw()

virtual void osgViewer::GraphicsWindow::requestRedraw ( )
virtual

requestRedraw() requests a single redraw.

Implements osgGA::GUIActionAdapter.

◆ requestWarpPointer()

virtual void osgViewer::GraphicsWindow::requestWarpPointer ( float x,
float y )
inlinevirtual

requestWarpPointer(int,int) is requesting a repositioning of the mouse pointer to a specified x,y location on the window. This is used by some camera manipulators to initialise the mouse pointer when mouse position relative to a controls neutral mouse position is required, i.e when mimicking an aircraft joystick.

Implements osgGA::GUIActionAdapter.

Reimplemented in osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

◆ setCursor()

virtual void osgViewer::GraphicsWindow::setCursor ( MouseCursor )
inlinevirtual

Set mouse cursor to a specific shape.

Reimplemented in osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

Referenced by useCursor().

◆ setEventQueue()

void osgViewer::GraphicsWindow::setEventQueue ( osgGA::EventQueue * eventQueue)
inline

References _eventQueue.

◆ setSwapGroup()

virtual void osgViewer::GraphicsWindow::setSwapGroup ( bool on,
GLuint group,
GLuint barrier )
inlinevirtual

Set swap group.

Reimplemented in osgViewer::GraphicsWindowWin32.

References osg::NOTICE, and osg::notify().

◆ setSyncToVBlank()

virtual void osgViewer::GraphicsWindow::setSyncToVBlank ( bool on)
inlinevirtual

Create a new mouse cursor from the usual bitmap data. Set sync-to-vblank.

Reimplemented in osgViewer::GraphicsWindowWin32.

References osg::NOTICE, and osg::notify().

◆ setWindowDecoration()

void osgViewer::GraphicsWindow::setWindowDecoration ( bool flag)
inline

Set Window decoration.

References osg::GraphicsContext::_traits, and setWindowDecorationImplementation().

◆ setWindowDecorationImplementation()

virtual bool osgViewer::GraphicsWindow::setWindowDecorationImplementation ( bool )
inlinevirtual

implementation of setWindowDecoration, should be implemented by derived classes

Reimplemented in osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

Referenced by setWindowDecoration().

◆ setWindowName()

virtual void osgViewer::GraphicsWindow::setWindowName ( const std::string & )
inlinevirtual

Set the name of the window

Reimplemented in osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ setWindowRectangle()

void osgViewer::GraphicsWindow::setWindowRectangle ( int x,
int y,
int width,
int height )
inline

◆ setWindowRectangleImplementation()

virtual bool osgViewer::GraphicsWindow::setWindowRectangleImplementation ( int ,
int ,
int ,
int  )
inlinevirtual

implementation of setWindowRectangle, should be implemented by derived classes

Reimplemented in osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

Referenced by setWindowRectangle().

◆ swapBuffersImplementation()

virtual void osgViewer::GraphicsWindow::swapBuffersImplementation ( )
inlinevirtual

Swap the front and back buffers implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

◆ useCursor()

virtual void osgViewer::GraphicsWindow::useCursor ( bool cursorOn)
inlinevirtual

Switch on/off the cursor.

Reimplemented in osgViewer::GraphicsWindowWin32.

References InheritCursor, NoCursor, and setCursor().

◆ valid()

virtual bool osgViewer::GraphicsWindow::valid ( ) const
inlinevirtual

Return whether a valid and usable GraphicsContext has been created.

Implements osg::GraphicsContext.

Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowWin32, and osgViewer::GraphicsWindowX11.

References osg::NOTICE, and osg::notify().

Member Data Documentation

◆ _eventQueue

osg::ref_ptr<osgGA::EventQueue> osgViewer::GraphicsWindow::_eventQueue
protected

The documentation for this class was generated from the following file: