]> git.tdb.fi Git - libs/gl.git/blobdiff - source/vertexarray.cpp
Use RAII binders in place of manual binding
[libs/gl.git] / source / vertexarray.cpp
index e453a3f12a569a70f7868288647dee37c6f45b33..e8fa36a030bf5991a89bf4ed8f79944543ced413 100644 (file)
@@ -3,6 +3,7 @@
 #include "buffer.h"
 #include "error.h"
 #include "gl.h"
+#include "mesh.h"
 #include "vertexarray.h"
 
 using namespace std;
@@ -10,8 +11,7 @@ using namespace std;
 namespace Msp {
 namespace GL {
 
-VertexArray::VertexArray(const VertexFormat &f):
-       dirty(false)
+VertexArray::VertexArray(const VertexFormat &f)
 {
        reset(f);
 }
@@ -112,6 +112,9 @@ void VertexArray::apply() const
 {
        if(format.empty())
                throw invalid_operation("VertexArray::apply");
+       // Don't mess up the vertex array object of a mesh
+       if(Mesh::current())
+               throw invalid_operation("VertexArray::apply");
 
        const VertexArray *old = current();
        /* If the array has been modified, apply it even if it was the last one to