X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbatch.h;h=82d8fbcada662440e5374ec8504cb3106c4104ee;hp=dcc2168b312f7c6323442b7e2b52296639156ff7;hb=HEAD;hpb=50175b88e2f189e80881d292dcc32523c5b272fc diff --git a/source/batch.h b/source/batch.h deleted file mode 100644 index dcc2168b..00000000 --- a/source/batch.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef MSP_GL_BATCH_H_ -#define MSP_GL_BATCH_H_ - -#include -#include -#include "datatype.h" -#include "primitivetype.h" - -namespace Msp { -namespace GL { - -class Buffer; - -/** -Stores primitive type and element indices for a single GL draw call. Data -type for indices is automatically chosen to accommodate the largest index in -the Batch. - -This is a pretty low-level class and mainly intended to be used by the Mesh -class. -*/ -class Batch -{ -public: - class Loader: public DataFile::ObjectLoader - { - public: - Loader(Batch &); - private: - void indices(const std::vector &); - }; - -private: - PrimitiveType prim_type; - DataType data_type; - std::vector data; - unsigned min_index; - unsigned max_index; - bool restart; - Buffer *ibuf; - unsigned ibuf_offset; - Batch *next_in_ibuf; - Batch *prev_in_ibuf; - mutable bool dirty; - - static unsigned restart_index; - -public: - Batch(PrimitiveType t); - ~Batch(); - - PrimitiveType get_type() const { return prim_type; } - void set_data_type(DataType); - DataType get_data_type() const { return data_type; } - void use_index_buffer(Buffer *, Batch * = 0); -private: - void unlink_from_ibuf(); - void update_ibuf_offsets(); - -public: - Batch &append(unsigned); - void append(const std::vector &); - void append(const Batch &); -private: - unsigned get_index_size() const; -public: - unsigned size() const { return data.size()/get_index_size(); } - - unsigned get_index(unsigned) const; - - void draw() const; -}; - -} // namespace GL -} // namespace Msp - -#endif