Loader(VertexArray &);
};
+private:
+ VertexFormat format;
+ std::vector<float> data;
+ uint stride;
+ VertexBuffer *vbuf;
+ bool own_vbuf;
+
+ VertexArray(const VertexArray &);
+ VertexArray &operator=(const VertexArray &);
+public:
VertexArray(VertexFormat);
~VertexArray();
unsigned size() const { return data.size()/stride; }
void clear();
void reset(VertexFormat);
- RefPtr<VertexArrayBuilder> modify();
void apply() const;
void update_data();
+ float *append();
+ float *operator[](unsigned i) { return &data[0]+i*stride; }
+ const float *operator[](unsigned i) const { return &data[0]+i*stride; }
private:
- VertexFormat format;
- std::vector<float> data;
- uint stride;
- VertexBuffer *vbuf;
- bool own_vbuf;
-
- VertexArray(const VertexArray &);
- VertexArray &operator=(const VertexArray &);
void set_array(unsigned, unsigned, unsigned) const;
static unsigned enabled_arrays;