1 #include <msp/datafile/builtinsource.h>
2 #include <msp/fs/dir.h>
3 #include <msp/fs/stat.h>
11 void init_data(DataFile::BuiltinSource &);
13 Resources::Resources()
18 Resources::Resources(const string &pack_name)
21 init_sources(pack_name);
24 void Resources::init_sources(const string &pack_name)
26 FS::Path data_dir = "data";
27 if(FS::exists(data_dir))
29 dir_source.add_directory(data_dir);
30 add_source(dir_source);
31 for(const auto &c: FS::list_filtered(data_dir, "\\.mdc$"))
32 load(*this, (data_dir/c).str());
36 pack_source.add_pack_file(pack_name);
37 add_source(pack_source);
41 void Resources::init()
44 ui_text_technique = 0;
46 set_default_texture_anisotropy(8);
47 set_srgb_conversion(true);
49 add_source(get_builtin_source());
52 const DataFile::CollectionSource &Resources::get_builtin_source()
54 static DataFile::BuiltinSource builtin_src;
55 bool init_done = false;
59 init_data(builtin_src);
66 Resources &Resources::get_builtins()
68 static Resources builtins;
72 const GL::Font &Resources::get_ui_font() const
75 throw runtime_error("no ui font");
79 const GL::Technique &Resources::get_ui_text_technique() const
81 if(!ui_text_technique)
82 throw runtime_error("no ui text technique");
83 return *ui_text_technique;
86 void Resources::set_ui_text_resources(const string &font, const string &tech)
88 ui_font = &get<GL::Font>(font);
89 ui_text_technique = &get<GL::Technique>(tech);
92 } // namespace DemoScene