Fixed for crashes on exit associaciated with VAO usage and vairous niche usage cases

This commit is contained in:
Robert Osfield
2019-01-08 19:32:50 +00:00
parent 1c65815f4e
commit f6b64afdfc
13 changed files with 161 additions and 7 deletions

View File

@@ -25,7 +25,6 @@
namespace osg {
// forward declare
class State;
class UserDataContainer;
class Node;
class NodeVisitor;

View File

@@ -30,6 +30,7 @@ namespace osg {
class DeleteHandler;
class Observer;
class ObserverSet;
class State;
/** template class to help enforce static initialization order. */
template <typename T, T M()>
@@ -115,7 +116,15 @@ class OSG_EXPORT Referenced
/** Remove Observer that is observing this object.*/
void removeObserver(Observer* observer) const;
public:
/** Resize any per context GLObject buffers to specified size. */
virtual void resizeGLObjectBuffers(unsigned int /*maxSize*/) {}
/** If State is non-zero, this function releases any associated OpenGL objects for
* the specified graphics context. Otherwise, releases OpenGL objects
* for all graphics contexts. */
virtual void releaseGLObjects(osg::State* = 0) const {}
public:
friend class DeleteHandler;

View File

@@ -161,6 +161,9 @@ class OSG_EXPORT View : public virtual osg::Object
void updateSlaves();
virtual void resizeGLObjectBuffers(unsigned int maxSize);
virtual void releaseGLObjects(osg::State* = 0) const;
protected :
virtual ~View();