diff --git a/include/osg/GLExtensions b/include/osg/GLExtensions index 7388fa4f0..63e46538c 100644 --- a/include/osg/GLExtensions +++ b/include/osg/GLExtensions @@ -813,6 +813,9 @@ class OSG_EXPORT GLExtensions : public osg::Referenced /** convenience wrapper around glObjectLabel that calls glObjectLabel if it's supported and using std::string as a label parameter.*/ void debugObjectLabel(GLenum identifier, GLuint name, const std::string& label) const { if (glObjectLabel && !label.empty()) glObjectLabel(identifier, name, label.size(), label.c_str()); } + + protected: + virtual ~GLExtensions(); }; diff --git a/src/osg/GLExtensions.cpp b/src/osg/GLExtensions.cpp index ed0cd8d61..ead8a058f 100644 --- a/src/osg/GLExtensions.cpp +++ b/src/osg/GLExtensions.cpp @@ -1284,6 +1284,13 @@ GLExtensions::GLExtensions(unsigned int in_contextID): } +GLExtensions::~GLExtensions() +{ + // Remove s_gl*List + s_glExtensionSetList[contextID] = ExtensionSet(); + s_glRendererList[contextID] = std::string(); + s_glInitializedList[contextID] = 0; +} /////////////////////////////////////////////////////////////////////////// // C++-friendly convenience methods