X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbatch.cpp;h=89b8f48f4d44920d4b63a3829a44f81f9c2f44e8;hp=3d7dfc720ad901d40832e77510d3159339910e29;hb=9319f1c8ed99866966f20fbab952da673af2257e;hpb=1ef3f6df6d85627190e311b4b09f56a4983ec797 diff --git a/source/batch.cpp b/source/batch.cpp index 3d7dfc72..89b8f48f 100644 --- a/source/batch.cpp +++ b/source/batch.cpp @@ -60,12 +60,7 @@ Batch::Batch(PrimitiveType t): 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() { @@ -108,10 +103,10 @@ Batch &Batch::append(unsigned i) return *this; } -void Batch::append(const vector &ind) +Batch &Batch::append(const vector &ind) { if(ind.empty()) - return; + return *this; data.reserve(data.size()+ind.size()*get_index_size()); for(vector::const_iterator i=ind.begin(); i!=ind.end(); ++i) @@ -119,6 +114,8 @@ void Batch::append(const vector &ind) update_offset(); dirty = true; + + return *this; } bool Batch::can_append(PrimitiveType other_type) @@ -131,18 +128,22 @@ 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) ; @@ -177,6 +178,8 @@ void Batch::append(const Batch &other) update_offset(); dirty = true; + + return *this; } void Batch::append_index(unsigned i)