]> git.tdb.fi Git - libs/gl.git/blob - source/batch.h
Add a tool to convert a mesh into C code
[libs/gl.git] / source / batch.h
1 /* $Id$
2
3 This file is part of libmspgl
4 Copyright © 2007, 2009-2010 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #ifndef MSP_GL_BATCH_H_
9 #define MSP_GL_BATCH_H_
10
11 #include <vector>
12 #include <msp/datafile/loader.h>
13 #include "primitivetype.h"
14 #include "types.h"
15
16 namespace Msp {
17 namespace GL {
18
19 class Batch
20 {
21 public:
22         class Loader: public DataFile::Loader
23         {
24         public:
25                 Loader(Batch &);
26         private:
27                 Batch &batch;
28
29                 void indices(const std::vector<uint> &);
30         };
31
32 private:
33         PrimitiveType type;
34         std::vector<uint> indices;
35         uint min_index;
36         uint max_index;
37
38 public:
39         Batch(PrimitiveType t);
40         Batch &append(uint);
41         void append(const std::vector<uint> &);
42         PrimitiveType get_type() const { return type; }
43         unsigned size() const { return indices.size(); }
44         const std::vector<uint> &get_indices() const { return indices; }
45         void draw() const;
46         void draw_with_buffer(unsigned) const;
47 };
48
49 } // namespace GL
50 } // namespace Msp
51
52 #endif