Index: trunk/src/gl/gl_vertex_buffer.cc
===================================================================
--- trunk/src/gl/gl_vertex_buffer.cc	(revision 98)
+++ trunk/src/gl/gl_vertex_buffer.cc	(revision 99)
@@ -25,4 +25,12 @@
 	glBindBuffer( GL_ARRAY_BUFFER, 0);
 }
+
+void gl_vertex_buffer::assign( void* data, int offset, int size )
+{
+	glBindBuffer( GL_ARRAY_BUFFER, m_name.get_value() );
+	glBufferSubData( GL_ARRAY_BUFFER, offset, size, data );
+	glBindBuffer( GL_ARRAY_BUFFER, 0);
+}
+
 
 void gl_vertex_buffer::bind()
@@ -54,4 +62,11 @@
 	glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, m_name.get_value() );
 	glBufferData( GL_ELEMENT_ARRAY_BUFFER, m_size, data, buffer_hint_to_enum( m_hint ) );
+	glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0);
+}
+
+void gl_index_buffer::assign( void* data, int offset, int size )
+{
+	glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, m_name.get_value() );
+	glBufferSubData( GL_ELEMENT_ARRAY_BUFFER, offset, size, data );
 	glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0);
 }
