X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fbatch.h;h=1e0b4c4703e74b09602575b6f3fa206bfc746bdf;hb=be6ffe96ecb4707599fe1a6f620c348760213d46;hp=2e4ad9ef3005d9d01c15dbdc4d119ce79f570460;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266;p=libs%2Fgl.git diff --git a/source/core/batch.h b/source/core/batch.h index 2e4ad9ef..1e0b4c47 100644 --- a/source/core/batch.h +++ b/source/core/batch.h @@ -3,6 +3,7 @@ #include #include +#include "batch_backend.h" #include "bufferable.h" #include "datatype.h" #include "primitivetype.h" @@ -20,7 +21,7 @@ the Batch. This is a pretty low-level class and mainly intended to be used by the Mesh class. */ -class Batch: public Bufferable +class Batch: public BatchBackend, public Bufferable { public: class Loader: public DataFile::ObjectLoader @@ -34,11 +35,8 @@ public: private: PrimitiveType prim_type; DataType index_type; - std::vector data; + std::vector data; unsigned max_index; - bool restart; - - static unsigned restart_index; public: Batch(PrimitiveType t); @@ -48,29 +46,20 @@ public: void set_index_type(DataType); DataType get_index_type() const { return index_type; } - DEPRECATED void set_data_type(DataType t) { set_index_type(t); } - DEPRECATED DataType get_data_type() const { return index_type; } - Batch &append(unsigned); Batch &append(const std::vector &); bool can_append(PrimitiveType); Batch &append(const Batch &); private: void append_index(unsigned); - virtual unsigned get_data_size() const { return data.size(); } + virtual std::size_t get_data_size() const { return data.size(); } virtual const void *get_data_pointer() const { return &data[0]; } - virtual unsigned get_alignment() const { return get_index_size(); } - unsigned get_index_size() const; + virtual std::size_t get_alignment() const { return get_index_size(); } + std::size_t get_index_size() const; public: - unsigned size() const { return data.size()/get_index_size(); } + std::size_t size() const { return data.size()/get_index_size(); } - unsigned get_index(unsigned) const; - - void draw() const; - void draw_instanced(unsigned) const; -private: - const void *setup_draw() const; - static void set_restart_index(unsigned); + unsigned get_index(std::size_t) const; }; } // namespace GL