Introduced new osg::discardDeletedOpenGLObjects() methods, and usage of it in

GrpahicsContext::close() to handle cases where deletingOpenGLObjects is no possible,
such as when GraphicsWindowEmbedded is used.
This commit is contained in:
Robert Osfield
2008-01-08 13:24:29 +00:00
parent f3448d3307
commit ff565128af
27 changed files with 216 additions and 29 deletions

View File

@@ -444,6 +444,12 @@ class OSG_EXPORT Drawable : public Object
* in the OpenGL context related to contextID.*/
static void flushAllDeletedDisplayLists(unsigned int contextID);
/** Flush all the cached display list which need to be deleted
* in the OpenGL context related to contextID.
* Note, unlike flush no OpenGL calls are made, instead the handles are all removed.
* this call is useful for when an OpenGL context has been destroyed. */
static void discardAllDeletedDisplayLists(unsigned int contextID);
/** Flush the cached display list which need to be deleted
* in the OpenGL context related to contextID.*/
static void flushDeletedDisplayLists(unsigned int contextID,double& availableTime);
@@ -458,6 +464,12 @@ class OSG_EXPORT Drawable : public Object
* in the OpenGL context related to contextID.*/
static void flushDeletedVertexBufferObjects(unsigned int contextID,double currentTime, double& availableTime);
/** Flush all the cached vertex buffer objects which need to be deleted
* in the OpenGL context related to contextID.
* Note, unlike flush no OpenGL calls are made, instead the handles are all removed.
* this call is useful for when an OpenGL context has been destroyed. */
static void discardDeletedVertexBufferObjects(unsigned int contextID);
typedef unsigned int AttributeType;
enum AttributeTypes