]> git.tdb.fi Git - libs/demoscene.git/blobdiff - source/resources.cpp
Put everything in namespace Msp::DemoScene
[libs/demoscene.git] / source / resources.cpp
index dac473ab2c11f1ff5438065f30c2d96d6039d371..1742f06d41694cdb689b2db6be0a3b17be617d5a 100644 (file)
@@ -1,18 +1,26 @@
+#include <msp/fs/dir.h>
 #include <msp/fs/stat.h>
 #include "resources.h"
 
 using namespace std;
-using namespace Msp;
 
-Resources::Resources(const string &pack_name)
+namespace Msp {
+namespace DemoScene {
+
+Resources::Resources(const string &pack_name):
+       ui_font(0),
+       ui_text_technique(0)
 {
        set_default_texture_anisotropy(8);
        set_srgb_conversion(true);
 
-       if(FS::exists("data"))
+       FS::Path data_dir = "data";
+       if(FS::exists(data_dir))
        {
-               dir_source.add_directory("data");
+               dir_source.add_directory(data_dir);
                add_source(dir_source);
+               for(const auto &c: FS::list_filtered(data_dir, "\\.mdc$"))
+                       load(*this, (data_dir/c).str());
        }
        else
        {
@@ -20,3 +28,26 @@ Resources::Resources(const string &pack_name)
                add_source(pack_source);
        }
 }
+
+const GL::Font &Resources::get_ui_font() const
+{
+       if(!ui_font)
+               throw runtime_error("no ui font");
+       return *ui_font;
+}
+
+const GL::Technique &Resources::get_ui_text_technique() const
+{
+       if(!ui_text_technique)
+               throw runtime_error("no ui text technique");
+       return *ui_text_technique;
+}
+
+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