-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
+#include "batch.h"
+#include "error.h"
#include "immediate.h"
namespace Msp {
Immediate::Immediate(VertexFormat f):
PrimitiveBuilder(array),
array(f)
-{ }
+{
+ array.use_buffer(0);
+}
-void Immediate::end_()
+void Immediate::reset()
{
- array.apply();
- draw_elements(type, indices.size(), &indices[0]);
+ if(in_batch)
+ throw invalid_operation("Immediate::reset");
array.clear();
+}
+
+void Immediate::begin_()
+{
indices.clear();
}
+void Immediate::end_()
+{
+ Batch batch(type);
+ batch.append(indices);
+ array.apply();
+ batch.draw();
+}
+
void Immediate::element_(unsigned i)
{
indices.push_back(i);