+ if(defer_ibuf)
+ {
+ ibuf = new Buffer(ELEMENT_ARRAY_BUFFER);
+ defer_ibuf = false;
+ }
+
+ if(!batches.empty() && batches.back().can_append(b.get_type()))
+ batches.back().append(b);
+ else
+ {
+ Batch *prev = (batches.empty() ? 0 : &batches.back());
+ batches.push_back(b);
+ if(ibuf)
+ batches.back().use_buffer(ibuf, prev);
+ }