openscenegraph
|
Classes | |
struct | ResizedCallback |
struct | ScreenIdentifier |
struct | ScreenSettings |
struct | SwapCallback |
struct | Traits |
struct | WindowingSystemInterface |
Public Types | |
typedef std::vector < ScreenSettings > | ScreenSettingsList |
typedef std::vector < GraphicsContext * > | GraphicsContexts |
typedef std::list< ref_ptr < Operation > > | GraphicsOperationQueue |
typedef std::list< osg::Camera * > | Cameras |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
Static Public Member Functions | |
static void | setWindowingSystemInterface (WindowingSystemInterface *wsInterface) |
static WindowingSystemInterface * | getWindowingSystemInterface () |
static GraphicsContext * | createGraphicsContext (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 GraphicsContext * | getOrCreateCompileContext (unsigned int contextID) |
static GraphicsContext * | getCompileContext (unsigned int contextID) |
Protected Member Functions | |
GraphicsContext () | |
GraphicsContext (const GraphicsContext &, const osg::CopyOp &) | |
virtual | ~GraphicsContext () |
virtual Object * | cloneType () const |
virtual Object * | clone (const CopyOp &) const |
void | addCamera (osg::Camera *camera) |
void | removeCamera (osg::Camera *camera) |
![]() | |
virtual | ~Object () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Static Protected Member Functions | |
static void | registerGraphicsContext (GraphicsContext *gc) |
static void | unregisterGraphicsContext (GraphicsContext *gc) |
Protected Attributes | |
Cameras | _cameras |
ref_ptr< Traits > | _traits |
ref_ptr< State > | _state |
Vec4 | _clearColor |
GLbitfield | _clearMask |
OpenThreads::Thread * | _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 |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Friends | |
class | osg::Camera |
Base class for providing Windowing API agnostic access to creating and managing graphics context.
typedef std::list< osg::Camera* > osg::GraphicsContext::Cameras |
typedef std::vector<GraphicsContext*> osg::GraphicsContext::GraphicsContexts |
typedef std::list< ref_ptr<Operation> > osg::GraphicsContext::GraphicsOperationQueue |
typedef std::vector<ScreenSettings> osg::GraphicsContext::ScreenSettingsList |
|
protected |
|
protected |
|
protectedvirtual |
Add operation to end of OperationQueue.
|
protected |
|
inline |
Bind the graphics context to associated texture.
|
pure virtual |
Pure virtual, Bind the graphics context to associated texture implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.
Implemented in osgViewer::GraphicsWindow, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
|
inlinevirtual |
return the name of the object's class type. Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindow, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
|
virtual |
Do an OpenGL clear of the full graphics context/window. Note, must only be called from a thread with this context current.
Clone an object, with Object* return type. Must be defined by derived classes.
Implements osg::Object.
|
inlineprotectedvirtual |
Clone the type of an object, with Object* return type. Must be defined by derived classes.
Implements osg::Object.
void osg::GraphicsContext::close | ( | bool | callCloseImplementation = true ) |
close the graphics context. close(bool) stops any associated graphics threads, releases the contextID for the GraphicsContext then optional calls closeImplementation() to do the actual deletion of the graphics. This call is made optional as there are times when the graphics context has already been deleted externally and only the OSG side of the its data need to be closed down.
|
pure virtual |
Close the graphics context implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
|
static |
Create a graphics context for a specified set of traits.
void osg::GraphicsContext::createGraphicsThread | ( | ) |
Create a graphics thread to the graphics context, so that the thread handles all OpenGL operations.
|
static |
Create a contextID for a new graphics context, this contextID is used to set up the osg::State associate with context. Automatically increments the usage count of the contextID to 1.
Referenced by osgViewer::GraphicsWindowX11::GraphicsWindowX11(), and osgViewer::GraphicsWindowEmbedded::init().
|
static |
Decrement the usage count associate with a contextID. Once the contextID goes to 0 the contextID is then free to be reused.
|
static |
Get all the registered graphics contexts.
|
inline |
Get the the list of cameras associated with this graphics context.
|
inline |
Get the the const list of cameras associated with this graphics context.
|
inline |
Returns the clear color.
|
inline |
Get the clear mask.
|
static |
Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID.
|
inline |
Get the current operations that is being run.
|
inline |
|
inline |
Get the graphics thread assigned the graphics context.
|
inline |
Get the const graphics thread assigned the graphics context.
|
static |
Get the current max ContextID.
|
inline |
Get the operations queue block used to mark an empty queue, if you end items into the empty queue you must release this block.
|
inline |
Get the operations queue mutex.
|
inline |
Get the operations queue, not you must use the OperationsMutex when accessing the queue.
|
static |
Get existing or create a new GraphicsContext to do background compilation for GraphicsContexts associated with specified contextID.
|
static |
Get all the registered graphics contexts associated with a specific contextID.
|
inline |
Get the resized callback which overrides the GraphicsConext::realizedImplementation().
|
inline |
Get the const resized callback which overrides the GraphicsConext::realizedImplementation().
|
inline |
Get the State object which tracks the current OpenGL state for this graphics context.
Referenced by osgViewer::GraphicsWindowEmbedded::init().
|
inline |
Get the const State object which tracks the current OpenGL state for this graphics context.
|
inline |
Get the swap callback which overrides the GraphicsContext::swapBuffersImplementation().
|
inline |
Get the const swap callback which overrides the GraphicsContext::swapBuffersImplementation().
|
inline |
References osg::Timer::delta_s(), and osg::Timer::instance().
|
inline |
Get the traits of the GraphicsContext.
|
static |
Get the WindowingSystemInterface
|
static |
Increment the usage count associate with a contextID. The usage count specifies how many graphics contexts a specific contextID is shared between.
Referenced by osgViewer::GraphicsWindowEmbedded::init().
|
inline |
Return true if the current thread has this OpenGL graphics context.
References OpenThreads::Thread::CurrentThread().
|
inline |
Return true if the graphics context has been realized and is ready to use.
|
pure virtual |
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.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
|
inlinevirtual |
Reimplemented from osg::Object.
|
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.
Implements osg::Object.
Reimplemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindow, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
bool osg::GraphicsContext::makeContextCurrent | ( | GraphicsContext * | readContext) |
Make this graphics context current with specified read context. Implemented by calling makeContextCurrentImplementation(). Returns true on success.
|
pure virtual |
Make this graphics context current with specified read context implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.
Implemented in osgViewer::PixelBufferX11.
bool osg::GraphicsContext::makeCurrent | ( | ) |
Make this graphics context current. Implemented by calling makeCurrentImplementation(). Returns true on success.
Referenced by osgViewer::ViewerBase::makeCurrent().
|
pure virtual |
Make this graphics context current implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
bool osg::GraphicsContext::realize | ( | ) |
Realize the GraphicsContext.
|
pure virtual |
Realize the GraphicsContext implementation, Pure virtual - must be implemented by concrete implementations of GraphicsContext.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
|
staticprotected |
Register a GraphicsContext.
bool osg::GraphicsContext::releaseContext | ( | ) |
Release the graphics context. Returns true on success.
|
pure virtual |
Release the graphics context implementation.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::PixelBufferWin32, osgViewer::PixelBufferX11, and osgViewer::GraphicsWindowWin32.
Remove operation from OperationQueue.
void osg::GraphicsContext::remove | ( | const std::string & | name) |
Remove named operation from OperationQueue.
void osg::GraphicsContext::removeAllOperations | ( | ) |
Remove all operations from OperationQueue.
|
protected |
|
inline |
resized method should be called when the underlying window has been resized and the GraphicsWindow and associated Cameras must be updated to keep in sync with the new size.
|
virtual |
resized implementation, by default resizes the viewports and aspect ratios the cameras associated with the graphics Window.
|
virtual |
Run the operations.
Reimplemented in osgQt::GraphicsWindowQt.
|
inline |
Set the clear mask used in glClear(..). Defaults to 0 - so no clear is done by default by the GraphicsContext, instead the Cameras attached to the GraphicsContext will do the clear. GraphicsContext::setClearMask() is useful for when the Camera Viewports don't cover the whole context, so the context will fill in the gaps.
|
static |
Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID.
|
inline |
set the default FBO-id, this id will be used when the rendering-backend is finished with RTT FBOs
void osg::GraphicsContext::setGraphicsThread | ( | GraphicsThread * | gt) |
Assign a graphics thread to the graphics context, so that the thread handles all OpenGL operations.
|
inline |
Set the resized callback which overrides the GraphicsConext::realizedImplementation(), allow developers to provide custom behavior in response to a window being resized.
Set the State object which tracks the current OpenGL state for this graphics context.
Referenced by osgViewer::GraphicsWindowEmbedded::init().
|
inline |
Set the swap callback which overrides the GraphicsContext::swapBuffersImplementation(), allowing developers to provide custom behavior for swap. The callback must call GraphicsContext::swapBuffersImplementation()
|
static |
Set the query the windowing system for screens and create graphics context - this functor should be supplied by the windows toolkit.
void osg::GraphicsContext::swapBuffers | ( | ) |
swap the front and back buffers.
|
inline |
convinience method for handling whether to call swapbuffers callback or the standard context swapBuffersImplementation. swapBuffersCallbackOrImplemenation() is called by swapBuffers() and osg::SwapBuffersOperation, end users should normally call swapBuffers() rather than swapBuffersCallbackOrImplemenation().
|
pure virtual |
Swap the front and back buffers implementation. Pure virtual - must be implemented by concrete implementations of GraphicsContext.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::PixelBufferX11, osgViewer::PixelBufferWin32, and osgViewer::GraphicsWindowWin32.
|
staticprotected |
Unregister a GraphicsContext.
|
pure virtual |
Return whether a valid and usable GraphicsContext has been created.
Implemented in osgViewer::GraphicsWindowEmbedded, osgViewer::GraphicsWindow, osgQt::GraphicsWindowQt, osgViewer::GraphicsWindowX11, osgViewer::GraphicsWindowWin32, osgViewer::PixelBufferWin32, and osgViewer::PixelBufferX11.
Referenced by osgViewer::ViewerBase::makeCurrent().
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |