#include <vector>
#include <msp/datafile/objectloader.h>
+#include "batch_backend.h"
#include "bufferable.h"
#include "datatype.h"
#include "primitivetype.h"
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
{
- friend class Commands;
-
public:
class Loader: public DataFile::ObjectLoader<Batch>
{
private:
PrimitiveType prim_type;
- unsigned gl_prim_type;
DataType index_type;
- unsigned gl_index_type;
std::vector<std::uint8_t> data;
unsigned max_index;
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;
+ unsigned get_index(std::size_t) const;
};
} // namespace GL