]> git.tdb.fi Git - libs/demoscene.git/blobdiff - source/resources.cpp
Add a builtin resource collection for storing necessary data
[libs/demoscene.git] / source / resources.cpp
index e5e893d58dc9e283ed35ffe33f88aab7c9e1d1c6..f44d8c1985d05ef1e45c3651bcaa0a8b77cb4d1f 100644 (file)
@@ -1,9 +1,19 @@
+#include <msp/datafile/builtinsource.h>
 #include <msp/fs/dir.h>
 #include <msp/fs/stat.h>
 #include "resources.h"
 
 using namespace std;
-using namespace Msp;
+
+namespace Msp {
+namespace DemoScene {
+
+void init_data(DataFile::BuiltinSource &);
+
+Resources::Resources()
+{
+       add_source(get_builtin_source());
+}
 
 Resources::Resources(const string &pack_name):
        ui_font(0),
@@ -25,6 +35,28 @@ Resources::Resources(const string &pack_name):
                pack_source.add_pack_file(pack_name);
                add_source(pack_source);
        }
+
+       add_source(get_builtin_source());
+}
+
+const DataFile::CollectionSource &Resources::get_builtin_source()
+{
+       static DataFile::BuiltinSource builtin_src;
+       bool init_done = false;
+
+       if(!init_done)
+       {
+               init_data(builtin_src);
+               init_done = true;
+       }
+
+       return builtin_src;
+}
+
+Resources &Resources::get_builtins()
+{
+       static Resources builtins;
+       return builtins;
 }
 
 const GL::Font &Resources::get_ui_font() const
@@ -46,3 +78,6 @@ void Resources::set_ui_text_resources(const string &font, const string &tech)
        ui_font = &get<GL::Font>(font);
        ui_text_technique = &get<GL::Technique>(tech);
 }
+
+} // namespace DemoScene
+} // namespace Msp