Index: trunk/src/engine/material_manager.cc
===================================================================
--- trunk/src/engine/material_manager.cc	(revision 500)
+++ trunk/src/engine/material_manager.cc	(revision 501)
@@ -20,5 +20,5 @@
 	uint8 data[2 * 2 * 3];
 	nv::raw_fill_n( data, 2 * 2 * 3, 0 );
-	m_default = m_context->get_device()->create_texture( ivec2(2,2), nv::image_format( nv::RGB ), nv::sampler(), data );
+	m_default = m_context->create_texture( ivec2(2,2), nv::image_format( nv::RGB ), nv::sampler(), data );
 }
 
@@ -34,5 +34,5 @@
 				if ( auto data = m_image_manager->get( mat->paths[i] ).lock() )
 				{
-					result->textures[i] = m_context->get_device()->create_texture( &*data, smp );
+					result->textures[i] = m_context->create_texture( &*data, smp );
 				}
 			}
@@ -53,5 +53,5 @@
 	for ( const texture& t : m->textures )
 	{
-		m_context->get_device()->release( t );
+		m_context->release( t );
 	}
 }
Index: trunk/src/engine/particle_engine.cc
===================================================================
--- trunk/src/engine/particle_engine.cc	(revision 500)
+++ trunk/src/engine/particle_engine.cc	(revision 501)
@@ -320,5 +320,5 @@
 
 	data.quota   = table.get<uint32>("quota", 1024 );
-	data.local   = table.get<bool>("local_space", false );
+//	data.local   = table.get<bool>("local_space", false );
 	data.accurate_facing = table.get<bool>("accurate_facing", false );
 	data.emmiter_count   = 0;
@@ -467,7 +467,6 @@
 {
 	m_context       = a_context;
-	m_device        = a_context->get_device();
-	m_program_local = m_device->create_program( nv_particle_engine_vertex_shader_local, nv_particle_engine_fragment_shader );
-	m_program_world = m_device->create_program( nv_particle_engine_vertex_shader_world, nv_particle_engine_fragment_shader );
+	m_program_local = m_context->create_program( nv_particle_engine_vertex_shader_local, nv_particle_engine_fragment_shader );
+	m_program_world = m_context->create_program( nv_particle_engine_vertex_shader_world, nv_particle_engine_fragment_shader );
 
 	register_standard_emmiters();
@@ -533,5 +532,5 @@
 	info->count = 0;
 	info->quota = max_particles;
-	info->vtx_buffer = m_device->create_buffer( VERTEX_BUFFER, STREAM_DRAW, info->quota * sizeof( particle_quad )/*, info->quads_[0].data*/ );
+	info->vtx_buffer = m_context->create_buffer( VERTEX_BUFFER, STREAM_DRAW, info->quota * sizeof( particle_quad )/*, info->quads_[0].data*/ );
 	vertex_array_desc desc;
 	desc.add_vertex_buffers< particle_vtx >( info->vtx_buffer, true );
@@ -545,6 +544,6 @@
 {
 	clear();
-	m_device->release( m_program_world );
-	m_device->release( m_program_local );
+	m_context->release( m_program_world );
+	m_context->release( m_program_local );
 }
 
@@ -785,5 +784,5 @@
 	vec3 source;
 	mat3 orient;
-	bool local = info->data->local;
+//	bool local = info->data->local;
 // 	if ( !local ) 
 // 	{
Index: trunk/src/engine/program_manager.cc
===================================================================
--- trunk/src/engine/program_manager.cc	(revision 500)
+++ trunk/src/engine/program_manager.cc	(revision 501)
@@ -36,5 +36,5 @@
 	}
 
-	add( id, m_context->get_device()->create_program( vsource, fsource ) );
+	add( id, m_context->create_program( vsource, fsource ) );
 	return true;
 }
@@ -42,5 +42,5 @@
 void nv::program_manager::release( program p )
 {
-	m_context->get_device()->release( p );
+	m_context->release( p );
 }
 
