- if(vbuf && ibuf)
- return;
-
- if(!vbuf)
- vbuf = new Buffer(ARRAY_BUFFER);
- vertices.use_buffer(vbuf);
-
- if(!ibuf)
- ibuf = new Buffer(ELEMENT_ARRAY_BUFFER);
+ if(mask&VERTEX_BUFFER)
+ {
+ if(!vbuf)
+ {
+ vbuf = new Buffer(ARRAY_BUFFER);
+ vertices.use_buffer(vbuf);
+ vtx_setup.set_vertex_array(vertices);
+ }
+ unsigned req_size = vertices.get_required_buffer_size();
+ if(vbuf->get_size()<req_size)
+ {
+ dirty |= VERTEX_BUFFER;
+ vertices.buffer_resized();
+ }
+ }