X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fbatch.h;h=1e0b4c4703e74b09602575b6f3fa206bfc746bdf;hb=be6ffe96ecb4707599fe1a6f620c348760213d46;hp=0435feec29eb6ccfa874c44530823f53c564e3b7;hpb=efb45a6851563cdb8077b6aad3ab92d4006d8790;p=libs%2Fgl.git diff --git a/source/core/batch.h b/source/core/batch.h index 0435feec..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,12 +35,8 @@ public: private: PrimitiveType prim_type; DataType index_type; - GLenum gl_index_type; - std::vector data; + std::vector data; unsigned max_index; - bool restart; - - static unsigned restart_index; public: Batch(PrimitiveType t); @@ -49,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