Index: trunk/tests/objload_test/objload_test.cc
===================================================================
--- trunk/tests/objload_test/objload_test.cc	(revision 214)
+++ trunk/tests/objload_test/objload_test.cc	(revision 224)
@@ -32,5 +32,5 @@
 	nv::vertex_array* m_va;
 	nv::program*      m_program;
-	nv::mesh*         m_mesh;
+	nv::mesh_data*    m_mesh;
 	nv::uint32        m_count;
 };
@@ -66,5 +66,5 @@
 	nv::mesh_loader* loader = new nv::obj_loader();
 	loader->load( *mesh_file );
-	m_mesh = loader->release_mesh();
+	m_mesh = loader->release_mesh_data();
 	m_count = loader->get_size();
 	delete mesh_file;
@@ -72,5 +72,13 @@
 
 	m_program = m_device->create_program( nv::slurp( "obj.vert" ), nv::slurp( "obj.frag" ) );
-	m_va      = m_device->create_vertex_array( m_mesh, &m_program->get_attributes(), nv::STATIC_DRAW );
+
+	nv::vertex_buffer* vb = nullptr;
+	m_va = m_device->create_vertex_array();
+	vb = m_device->create_vertex_buffer( nv::STATIC_DRAW, m_mesh->get_vertex_count() * sizeof( nv::vec3 ), m_mesh->get_positions().data() );
+	m_va->add_vertex_buffer( nv::slot::POSITION, vb, nv::FLOAT, 3 );
+	vb = m_device->create_vertex_buffer( nv::STATIC_DRAW, m_mesh->get_vertex_count() * sizeof( nv::vec3 ), m_mesh->get_normals().data() );
+	m_va->add_vertex_buffer( nv::slot::NORMAL, vb, nv::FLOAT, 3 );
+	vb = m_device->create_vertex_buffer( nv::STATIC_DRAW, m_mesh->get_vertex_count() * sizeof( nv::vec2 ), m_mesh->get_texcoords().data() );
+	m_va->add_vertex_buffer( nv::slot::TEXCOORD, vb, nv::FLOAT, 2 );
 	return true;
 }
