// copies the contents of the VertexArray into the buffer bool VertexBuffer::Populate(const VertexArray &va) { assert(va.GetNumVerts()>0); assert(va.GetNumVerts()==m_numVertices); bool result = false; const Graphics::AttributeSet as = va.GetAttributeSet(); switch( as ) { case Graphics::ATTRIB_POSITION: CopyPos(this, va); result = true; break; case Graphics::ATTRIB_POSITION | Graphics::ATTRIB_DIFFUSE: CopyPosCol(this, va); result = true; break; case Graphics::ATTRIB_POSITION | Graphics::ATTRIB_UV0: CopyPosUV0(this, va); result = true; break; case Graphics::ATTRIB_POSITION | Graphics::ATTRIB_DIFFUSE | Graphics::ATTRIB_UV0: CopyPosColUV0(this, va); result = true; break; case Graphics::ATTRIB_POSITION | Graphics::ATTRIB_NORMAL | Graphics::ATTRIB_UV0: CopyPosNormUV0(this, va); result = true; break; } return result; }