X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fbatch.h;h=1e0b4c4703e74b09602575b6f3fa206bfc746bdf;hb=be6ffe96ecb4707599fe1a6f620c348760213d46;hp=6f7e43d61be4e0ca0078e37c2032ab4c006de5b6;hpb=6065f6622cc275dc0b20baaf7c267e71169d18f3;p=libs%2Fgl.git diff --git a/source/core/batch.h b/source/core/batch.h index 6f7e43d6..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 @@ -33,9 +34,7 @@ public: private: PrimitiveType prim_type; - GLenum gl_prim_type; DataType index_type; - GLenum gl_index_type; std::vector data; unsigned max_index; @@ -44,10 +43,8 @@ public: ~Batch(); PrimitiveType get_type() const { return prim_type; } - GLenum get_gl_primitive_type() const { return gl_prim_type; } void set_index_type(DataType); DataType get_index_type() const { return index_type; } - GLenum get_gl_index_type() const { return gl_index_type; } Batch &append(unsigned); Batch &append(const std::vector &); @@ -55,14 +52,14 @@ public: 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