summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2017-01-03 10:52:49 +0100
committerPaul Lemire <paul.lemire@kdab.com>2017-01-09 14:36:14 +0000
commite18b9995784237dd87ca62fea88e56a00df9e102 (patch)
tree565a2a1da601d6c6aa5d57c820a82923bfb70521
parentea4c632e311c3ca9887fa683749e8e9c75044cfa (diff)
OpenGLVertexArrayObject: add a destroy method
Change-Id: I0fd40ace5234697a0d281cac7e0bdc1680d73558 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/backend/openglvertexarrayobject.cpp12
-rw-r--r--src/render/backend/openglvertexarrayobject_p.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/render/backend/openglvertexarrayobject.cpp b/src/render/backend/openglvertexarrayobject.cpp
index e64ab58c6..6120c7233 100644
--- a/src/render/backend/openglvertexarrayobject.cpp
+++ b/src/render/backend/openglvertexarrayobject.cpp
@@ -110,6 +110,18 @@ void OpenGLVertexArrayObject::create()
}
}
+void OpenGLVertexArrayObject::destroy()
+{
+ Q_ASSERT(m_ctx);
+ if (m_supportsVao) {
+ Q_ASSERT(!m_vao.isNull());
+ m_vao->destroy();
+ }
+ m_specified = false;
+ m_indexAttribute = GraphicsContext::VAOIndexAttribute();
+ m_vertexAttributes.clear();
+}
+
bool OpenGLVertexArrayObject::isCreated() const
{
if (m_supportsVao) {
diff --git a/src/render/backend/openglvertexarrayobject_p.h b/src/render/backend/openglvertexarrayobject_p.h
index 08acf32b7..4f21497f0 100644
--- a/src/render/backend/openglvertexarrayobject_p.h
+++ b/src/render/backend/openglvertexarrayobject_p.h
@@ -68,6 +68,7 @@ public:
void bind();
void release();
void create();
+ void destroy();
bool isCreated() const;
QOpenGLVertexArrayObject *vao() { return m_vao.data(); }