eqemu
annotate src/mesh.h @ 3:f9274bebe55e
adding 3d graphics stuff
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 17 Jul 2014 02:35:19 +0300 |
parents | |
children | 3d3656360a82 |
rev | line source |
---|---|
nuclear@3 | 1 #ifndef MESH_H_ |
nuclear@3 | 2 #define MESH_H_ |
nuclear@3 | 3 |
nuclear@3 | 4 enum { |
nuclear@3 | 5 MESH_ATTR_VERTEX, |
nuclear@3 | 6 MESH_ATTR_NORMAL, |
nuclear@3 | 7 MESH_ATTR_TEXCOORD, |
nuclear@3 | 8 |
nuclear@3 | 9 NUM_MESH_ATTRIBS |
nuclear@3 | 10 }; |
nuclear@3 | 11 |
nuclear@3 | 12 class Mesh { |
nuclear@3 | 13 private: |
nuclear@3 | 14 float *attr[NUM_MESH_ATTRIBS]; |
nuclear@3 | 15 int vcount; |
nuclear@3 | 16 unsigned int vbo[NUM_MESH_ATTRIBS]; |
nuclear@3 | 17 int attr_size[NUM_MESH_ATTRIBS]; |
nuclear@3 | 18 |
nuclear@3 | 19 mutable unsigned int buf_valid; /* bitmask */ |
nuclear@3 | 20 void update_buffers() const; |
nuclear@3 | 21 |
nuclear@3 | 22 public: |
nuclear@3 | 23 Mesh(); |
nuclear@3 | 24 ~Mesh(); |
nuclear@3 | 25 |
nuclear@3 | 26 float *set_attrib(int aidx, int count, int elemsz, float *data = 0); |
nuclear@3 | 27 float *get_attrib(int aidx); |
nuclear@3 | 28 const float *get_attrib(int aidx) const; |
nuclear@3 | 29 |
nuclear@3 | 30 void draw() const; |
nuclear@3 | 31 }; |
nuclear@3 | 32 |
nuclear@3 | 33 #endif // MESH_H_ |