]> git.tdb.fi Git - libs/gl.git/blobdiff - source/batch.h
Inherit Loaders from the ObjectLoader classes
[libs/gl.git] / source / batch.h
index 237995dcd7698b60061836336524e9ce8181cdc0..bca541392832c3285b78ce97c8ea44cd75342e90 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of libmspgl
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2007, 2009-2010 Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
@@ -9,8 +9,7 @@ Distributed under the LGPL
 #define MSP_GL_BATCH_H_
 
 #include <vector>
-#include <GL/gl.h>
-#include <msp/datafile/loader.h>
+#include <msp/datafile/objectloader.h>
 #include "primitivetype.h"
 #include "types.h"
 
@@ -20,25 +19,29 @@ namespace GL {
 class Batch
 {
 public:
-       class Loader: public DataFile::Loader
+       class Loader: public DataFile::ObjectLoader<Batch>
        {
        public:
                Loader(Batch &);
        private:
-               Batch &batch;
-
                void indices(const std::vector<uint> &);
        };
 
-       Batch(PrimitiveType t);
-       Batch &append(uint);
-       void append(const std::vector<uint> &);
-       void draw() const;
 private:
        PrimitiveType type;
        std::vector<uint> indices;
        uint min_index;
        uint max_index;
+
+public:
+       Batch(PrimitiveType t);
+       Batch &append(uint);
+       void append(const std::vector<uint> &);
+       PrimitiveType get_type() const { return type; }
+       unsigned size() const { return indices.size(); }
+       const std::vector<uint> &get_indices() const { return indices; }
+       void draw() const;
+       void draw_with_buffer(unsigned) const;
 };
 
 } // namespace GL