Index: trunk/src/gfx/keyframed_mesh.cc
===================================================================
--- trunk/src/gfx/keyframed_mesh.cc	(revision 159)
+++ trunk/src/gfx/keyframed_mesh.cc	(revision 161)
@@ -21,7 +21,5 @@
 	, m_va( nullptr )
 	, m_loc_next_position( 0 )
-	, m_loc_last_position( 0 )
 	, m_loc_next_normal( 0 )
-	, m_loc_last_normal( 0 )
 	, m_last_frame( 0 )
 	, m_next_frame( 0 )
@@ -37,19 +35,17 @@
 
 	nv::vertex_buffer* vb;
-	m_loc_next_position = m_program->get_attribute( "next_position" )->get_location();
-	m_loc_last_position = m_program->get_attribute( "last_position" )->get_location();
-	m_loc_next_normal   = m_program->get_attribute( "next_normal" )->get_location();
-	m_loc_last_normal   = m_program->get_attribute( "last_normal" )->get_location();
+	m_loc_next_position = m_program->get_attribute( "nv_next_position" )->get_location();
+	m_loc_next_normal   = m_program->get_attribute( "nv_next_normal" )->get_location();
 
 	vb = m_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_data->get_vertex_count() * sizeof( nv::vec3 ) * m_data->get_frame_count(), (void*)m_data->get_positions().data() );
 	m_va->add_vertex_buffer( m_loc_next_position, vb, nv::FLOAT, 3, 0, 0, false );
-	m_va->add_vertex_buffer( m_loc_last_position, vb, nv::FLOAT, 3 );
+	m_va->add_vertex_buffer( nv::POSITION, vb, nv::FLOAT, 3 );
 
 	vb = m_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_data->get_vertex_count() * sizeof( nv::vec3 ) * m_data->get_frame_count(), (void*)m_data->get_normals().data() );
 	m_va->add_vertex_buffer( m_loc_next_normal, vb, nv::FLOAT, 3, 0, 0, false );
-	m_va->add_vertex_buffer( m_loc_last_normal, vb, nv::FLOAT, 3 );
+	m_va->add_vertex_buffer( nv::NORMAL, vb, nv::FLOAT, 3 );
 
 	vb = m_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_data->get_vertex_count() * sizeof( nv::vec2 ), (void*)m_data->get_texcoords().data() );
-	m_va->add_vertex_buffer( m_program->get_attribute( "texcoord" )->get_location(), vb, nv::FLOAT, 2 );
+	m_va->add_vertex_buffer( nv::slot::TEXCOORD, vb, nv::FLOAT, 2 );
 	nv::index_buffer* ib = m_context->get_device()->create_index_buffer( nv::STATIC_DRAW, m_data->get_index_count() * sizeof( nv::uint16 ), (void*)m_data->get_indices().data() );
 	m_va->set_index_buffer( ib, nv::USHORT, true );
@@ -129,6 +125,6 @@
 	if ( m_gpu_last_frame != m_last_frame )
 	{
-		m_va->update_vertex_buffer( m_loc_last_position, m_last_frame * vtx_count * sizeof( nv::vec3 ) );
-		m_va->update_vertex_buffer( m_loc_last_normal,   m_last_frame * vtx_count * sizeof( nv::vec3 ) );
+		m_va->update_vertex_buffer( slot::POSITION, m_last_frame * vtx_count * sizeof( nv::vec3 ) );
+		m_va->update_vertex_buffer( slot::NORMAL,   m_last_frame * vtx_count * sizeof( nv::vec3 ) );
 		m_gpu_last_frame = m_last_frame;
 	}
@@ -139,5 +135,5 @@
 		m_gpu_next_frame = m_next_frame;
 	}
-	m_program->set_uniform( "interpolate", m_interpolation );
+	m_program->set_uniform( "nv_interpolate", m_interpolation );
 	m_context->draw( nv::TRIANGLES, rstate, m_program, m_va, m_data->get_index_count() );
 }
