Index: trunk/nv/engine/image_manager.hh
===================================================================
--- trunk/nv/engine/image_manager.hh	(revision 503)
+++ trunk/nv/engine/image_manager.hh	(revision 504)
@@ -28,6 +28,8 @@
 	public:
 		image_manager() {}
+		void add_base_path( const string_view& path );
 	protected:
 		virtual bool load_resource( const string_view& id );
+		vector< string128 > m_paths;
 	};
 
Index: trunk/src/core/random.cc
===================================================================
--- trunk/src/core/random.cc	(revision 503)
+++ trunk/src/core/random.cc	(revision 504)
@@ -271,5 +271,5 @@
 nv::random_base::seed_type nv::random_xor128::set_seed( seed_type seed /*= 0 */ )
 {
-	uint32 s = 4294967296 - seed;
+	uint32 s = uint32( 4294967296 - seed );
 	m_state[0] = 123456789 * s;
 	m_state[1] = 362436069 * s;
Index: trunk/src/engine/image_manager.cc
===================================================================
--- trunk/src/engine/image_manager.cc	(revision 503)
+++ trunk/src/engine/image_manager.cc	(revision 504)
@@ -12,12 +12,37 @@
 using namespace nv;
 
+void nv::image_manager::add_base_path( const string_view& path )
+{
+	m_paths.emplace_back( path );
+}
+
 bool image_manager::load_resource( const string_view& filename )
 {
 	png_loader loader;
 	c_file_system fs;
-	stream* file = fs.open( filename );
-	image_data* result = loader.load( *file );
-	delete file;
-	add( filename, result );
+	image_data* result = nullptr;
+	if ( fs.exists( filename ) )
+	{
+		stream* file = fs.open( filename );
+		result = loader.load( *file );
+		delete file;
+	}
+	else if ( m_paths.size() > 0 )
+	{
+		for ( const auto& path : m_paths )
+		{
+			string128 fpath = path;
+			fpath.append( filename );
+			if ( fs.exists( fpath ) )
+			{
+				stream* file = fs.open( fpath );
+				result = loader.load( *file );
+				delete file;
+				break;
+			}
+		}
+	}
+	if ( result ) 
+		add( filename, result );
 	return result != nullptr;
 }
Index: trunk/src/gfx/debug_draw.cc
===================================================================
--- trunk/src/gfx/debug_draw.cc	(revision 503)
+++ trunk/src/gfx/debug_draw.cc	(revision 504)
@@ -11,8 +11,8 @@
 
 static const char *nv_debug_draw_vertex_shader = R"(
-#version 120
-attribute vec3 nv_position;
-attribute vec3 nv_color;
-varying vec3 v_color;
+#version 330
+in vec3 nv_position;
+in vec3 nv_color;
+out vec3 v_color;
 uniform mat4 nv_m_mvp;
 void main(void)
@@ -23,6 +23,6 @@
 )";
 static const char *nv_debug_draw_fragment_shader = R"(
-#version 120
-varying vec3 v_color;
+#version 330
+in  vec3 v_color;
 out vec4 o_frag_color;
 void main(void)
