X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresources.cpp;h=06fa44cf0c502867a1ecb255bea5de9251cc6314;hb=6deafc9f236b90175a303944815f7c0eac1c95c1;hp=e83c1bb178e5adea2acc6525acfdc01c0b8b87f1;hpb=e5f9004b672b038e43cf2b20c3fc9327f2b55ffd;p=libs%2Fgltk.git diff --git a/source/resources.cpp b/source/resources.cpp index e83c1bb..06fa44c 100644 --- a/source/resources.cpp +++ b/source/resources.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include "resources.h" using namespace std; @@ -6,34 +8,38 @@ using namespace std; namespace Msp { namespace GLtk { -Resources::Resources(): - path("."), - default_font(0) +Resources::Resources() { init(); } -Resources::Resources(const FS::Path &fn): - path(FS::dirname(fn)), - default_font(0) +Resources::Resources(const FS::Path &fn) { init(); + dir_src = new DataFile::DirectorySource; + dir_src->add_directory(FS::dirname(fn)); + add_source(*dir_src); + DataFile::load(*this, fn.str()); } void Resources::init() { + default_font = 0; + dir_src = 0; add_type().keyword("graphic"); - add_type().keyword("texture").creator(&Resources::create_texture); - add_type().creator(&Resources::create_font); + add_type().creator([this](const string &n){ return create_module(n); }); + add_type().creator([this](const string &n){ return create_sampler(n); }); + add_type().creator([this](const string &n){ return create_program(n); }); + add_type().keyword("texture").creator([this](const string &n){ return create_texture(n); }); + add_type().keyword("font"); + add_type