]> git.tdb.fi Git - libs/demoscene.git/blob - source/resources.cpp
Load any collection files from the data directory
[libs/demoscene.git] / source / resources.cpp
1 #include <msp/fs/dir.h>
2 #include <msp/fs/stat.h>
3 #include "resources.h"
4
5 using namespace std;
6 using namespace Msp;
7
8 Resources::Resources(const string &pack_name):
9         ui_font(0),
10         ui_text_technique(0)
11 {
12         set_default_texture_anisotropy(8);
13         set_srgb_conversion(true);
14
15         FS::Path data_dir = "data";
16         if(FS::exists(data_dir))
17         {
18                 dir_source.add_directory(data_dir);
19                 add_source(dir_source);
20                 for(const auto &c: FS::list_filtered(data_dir, "\\.mdc$"))
21                         load(*this, (data_dir/c).str());
22         }
23         else
24         {
25                 pack_source.add_pack_file(pack_name);
26                 add_source(pack_source);
27         }
28 }
29
30 const GL::Font &Resources::get_ui_font() const
31 {
32         if(!ui_font)
33                 throw runtime_error("no ui font");
34         return *ui_font;
35 }
36
37 const GL::Technique &Resources::get_ui_text_technique() const
38 {
39         if(!ui_text_technique)
40                 throw runtime_error("no ui text technique");
41         return *ui_text_technique;
42 }
43
44 void Resources::set_ui_text_resources(const string &font, const string &tech)
45 {
46         ui_font = &get<GL::Font>(font);
47         ui_text_technique = &get<GL::Technique>(tech);
48 }