min_index(0),
max_index(0),
restart(false)
-{
- /* Make sure we have glEnable/DisableClientState to go with
- NV_primitive_restart */
- if(!MSP_primitive_restart && NV_primitive_restart)
- (bool)MSP_legacy_features;
-}
+{ }
Batch::~Batch()
{
return *this;
}
-void Batch::append(const vector<unsigned> &ind)
+Batch &Batch::append(const vector<unsigned> &ind)
{
if(ind.empty())
- return;
+ return *this;
data.reserve(data.size()+ind.size()*get_index_size());
for(vector<unsigned>::const_iterator i=ind.begin(); i!=ind.end(); ++i)
update_offset();
dirty = true;
+
+ return *this;
}
bool Batch::can_append(PrimitiveType other_type)
return true;
}
-void Batch::append(const Batch &other)
+Batch &Batch::append(const Batch &other)
{
if(other.prim_type!=prim_type)
throw invalid_argument("Batch::append");
if(prim_type==LINE_STRIP || prim_type==LINE_LOOP || prim_type==TRIANGLE_FAN)
{
if(!MSP_primitive_restart)
+ {
static Require _req(NV_primitive_restart);
+ // Make sure we have glEnable/DisableClientState as well
+ static Require _req2(MSP_legacy_features);
+ }
}
if(other.data.empty())
- return;
+ return *this;
if(prim_type==POINTS || prim_type==LINES || prim_type==TRIANGLES || prim_type==QUADS)
;
update_offset();
dirty = true;
+
+ return *this;
}
void Batch::append_index(unsigned i)