Changeset 504 for trunk/src/engine


Ignore:
Timestamp:
07/04/16 20:05:33 (9 years ago)
Author:
epyon
Message:
  • temporary add_base_path for image manager
  • random - warning fix
  • debug_draw - shader upgrade
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/engine/image_manager.cc

    r484 r504  
    1212using namespace nv;
    1313
     14void nv::image_manager::add_base_path( const string_view& path )
     15{
     16        m_paths.emplace_back( path );
     17}
     18
    1419bool image_manager::load_resource( const string_view& filename )
    1520{
    1621        png_loader loader;
    1722        c_file_system fs;
    18         stream* file = fs.open( filename );
    19         image_data* result = loader.load( *file );
    20         delete file;
    21         add( filename, result );
     23        image_data* result = nullptr;
     24        if ( fs.exists( filename ) )
     25        {
     26                stream* file = fs.open( filename );
     27                result = loader.load( *file );
     28                delete file;
     29        }
     30        else if ( m_paths.size() > 0 )
     31        {
     32                for ( const auto& path : m_paths )
     33                {
     34                        string128 fpath = path;
     35                        fpath.append( filename );
     36                        if ( fs.exists( fpath ) )
     37                        {
     38                                stream* file = fs.open( fpath );
     39                                result = loader.load( *file );
     40                                delete file;
     41                                break;
     42                        }
     43                }
     44        }
     45        if ( result )
     46                add( filename, result );
    2247        return result != nullptr;
    2348}
Note: See TracChangeset for help on using the changeset viewer.