]> git.tdb.fi Git - libs/gl.git/blobdiff - source/buffer.cpp
Move vertex array object management out of Mesh
[libs/gl.git] / source / buffer.cpp
index 2b18d7d7d7d3bf0a47611207850aec5aabc4cc9d..4b485ddad6cb266d1d96d2e844c40583cb9ace3a 100644 (file)
@@ -3,8 +3,8 @@
 #include <msp/gl/extensions/arb_map_buffer_range.h>
 #include "buffer.h"
 #include "error.h"
-#include "mesh.h"
 #include "misc.h"
+#include "vertexsetup.h"
 
 using namespace std;
 
@@ -127,10 +127,10 @@ void Buffer::bind_to(BufferType t) const
        if(t!=type)
                require_buffer_type(t);
        if(t==ELEMENT_ARRAY_BUFFER)
-               if(const Mesh *m = Mesh::current())
+               if(const VertexSetup *vs = VertexSetup::current())
                {
-                       // Don't change the binding in a mesh's vertex array object
-                       if(this==m->get_index_buffer())
+                       // Don't change the binding in a vertex array object
+                       if(this==vs->get_index_buffer())
                                return;
                        throw invalid_operation("Buffer::bind_to(ELEMENT_ARRAY_BUFFER)");
                }
@@ -141,14 +141,14 @@ void Buffer::bind_to(BufferType t) const
 const Buffer *Buffer::current(BufferType t)
 {
        if(t==ELEMENT_ARRAY_BUFFER)
-               if(const Mesh *m = Mesh::current())
-                       return m->get_index_buffer();
+               if(const VertexSetup *vs = VertexSetup::current())
+                       return vs->get_index_buffer();
        return binding(t);
 }
 
 void Buffer::unbind_from(BufferType type)
 {
-       if(type==ELEMENT_ARRAY_BUFFER && Mesh::current())
+       if(type==ELEMENT_ARRAY_BUFFER && VertexSetup::current())
                throw invalid_operation("Buffer::unbind_from(ELEMENT_ARRAY_BUFFER)");
        if(set_current(type, 0))
                glBindBuffer(type, 0);