X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexarray.cpp;h=c166e98718338c55bcfb175dde856d7c44e41c74;hb=16f6f15328b3a6eec87b1b5e5822368966d44a38;hp=0d4fd919cffa8daa210c416414024357a07d9d59;hpb=99b656a7c44859a038156b82365122a5e336b1e8;p=libs%2Fgl.git diff --git a/source/vertexarray.cpp b/source/vertexarray.cpp index 0d4fd919..c166e987 100644 --- a/source/vertexarray.cpp +++ b/source/vertexarray.cpp @@ -71,11 +71,6 @@ void VertexArray::reset(VertexFormat f) stride=get_stride(format); } -RefPtr VertexArray::modify() -{ - return new VertexArrayBuilder(*this); -} - void VertexArray::apply() const { if(format==NODATA) @@ -118,7 +113,8 @@ void VertexArray::apply() const set_array(GL_TEXTURE_COORD_ARRAY, found&4, 4); set_array(GL_COLOR_ARRAY, found&8, 8); - VertexBuffer::unbind(); + if(vbuf) + VertexBuffer::unbind(); } /** @@ -127,7 +123,16 @@ Updates the VertexArray data to the VertexBuffer tied to the array, if any. void VertexArray::update_data() { if(vbuf) + { vbuf->data(data.size()*sizeof(float), &data[0]); + VertexBuffer::unbind(); + } +} + +float *VertexArray::append() +{ + data.insert(data.end(), stride, 0.0f); + return &*data.end()-stride; } void VertexArray::set_array(unsigned array, unsigned bit, unsigned mask) const