X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbatch.cpp;h=86ad9435fd29b2072581a73d72df9ab5c10c98ea;hb=b617c5d7b5283ad260a77f01e42e6170cabbc03d;hp=385b4697085f6215e075344ac9a980007212e193;hpb=a4ec5410595ddf37bfbc0e85ad87d31a9cbf94f1;p=libs%2Fgl.git diff --git a/source/batch.cpp b/source/batch.cpp index 385b4697..86ad9435 100644 --- a/source/batch.cpp +++ b/source/batch.cpp @@ -7,7 +7,7 @@ Distributed under the LGPL #include "batch.h" #include "extension.h" -#include "version_1_2.h" +#include "vertexarray.h" using namespace std; @@ -18,46 +18,49 @@ Batch::Batch(PrimitiveType t): type(t), min_index(0), max_index(0) -{ - require_version(1, 2); -} +{ } -Batch &Batch::append(uint i) +Batch &Batch::append(unsigned i) { if(indices.empty()) - min_index=max_index=i; + min_index = max_index = i; else { - min_index=min(min_index, i); - max_index=max(max_index, i); + min_index = min(min_index, i); + max_index = max(max_index, i); } indices.push_back(i); return *this; } -void Batch::append(const vector &ind) +void Batch::append(const vector &ind) { indices.reserve(indices.size()+ind.size()); - for(vector::const_iterator i=ind.begin(); i!=ind.end(); ++i) + for(vector::const_iterator i=ind.begin(); i!=ind.end(); ++i) append(*i); } void Batch::draw() const { - glDrawRangeElements(type, min_index, max_index, indices.size(), GL_UNSIGNED_INT, &indices[0]); + draw_range_elements(type, min_index, max_index, indices.size(), &indices[0]); +} + +void Batch::draw_with_buffer(unsigned offset) const +{ + draw_range_elements(type, min_index, max_index, indices.size(), (unsigned *)0+offset); } Batch::Loader::Loader(Batch &b): - batch(b) + DataFile::ObjectLoader(b) { add("indices", &Loader::indices); } -void Batch::Loader::indices(const vector &ind) +void Batch::Loader::indices(const vector &ind) { - batch.append(ind); + obj.append(ind); } } // namespace GL