#include <msp/gl/extensions/arb_vertex_array_object.h>
#include <msp/gl/extensions/arb_vertex_buffer_object.h>
#include <msp/gl/extensions/arb_vertex_shader.h>
+#include <msp/gl/extensions/khr_debug.h>
#include "buffer.h"
#include "error.h"
#include "mesh.h"
vertices.use_buffer(vbuf);
vtx_setup.set_vertex_array(vertices);
dirty |= VERTEX_BUFFER;
+
+#ifdef DEBUG
+ if(!debug_name.empty())
+ vbuf->set_debug_name(debug_name+" [VBO]");
+#endif
}
}
batches.front().change_buffer(ibuf);
vtx_setup.set_index_buffer(*ibuf);
dirty |= INDEX_BUFFER;
+
+#ifdef DEBUG
+ if(!debug_name.empty())
+ vbuf->set_debug_name(debug_name+" [IBO]");
+#endif
}
}
}
return;
}
+ if(batches.empty())
+ return;
+
if(dirty)
resize_buffers();
{
if(dirty&VERTEX_BUFFER)
vbuf->storage(vertices.get_required_buffer_size());
- if(dirty&INDEX_BUFFER)
+ if((dirty&INDEX_BUFFER) && !batches.empty())
ibuf->storage(batches.front().get_required_buffer_size());
dirty = 0;
}
ibuf = 0;
}
+void Mesh::set_debug_name(const string &name)
+{
+#ifdef DEBUG
+ debug_name = name;
+ if(vbuf)
+ vbuf->set_debug_name(name+" [VBO]");
+ if(ibuf)
+ ibuf->set_debug_name(name+" [IBO]");
+ vtx_setup.set_debug_name(name+" [VAO]");
+#else
+ (void)name;
+#endif
+}
+
Mesh::Loader::Loader(Mesh &m, bool g):
DataFile::ObjectLoader<Mesh>(m),