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_