X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresources.cpp;h=c70e0a11308aee38929e053983bfa285ab51c04c;hb=08fa4d11a07a52e62eb4e30730d2a2b9cdcb568d;hp=1742f06d41694cdb689b2db6be0a3b17be617d5a;hpb=462cb9fc40ae7fec26615c652e95991be89ea8ae;p=libs%2Fdemoscene.git diff --git a/source/resources.cpp b/source/resources.cpp index 1742f06..c70e0a1 100644 --- a/source/resources.cpp +++ b/source/resources.cpp @@ -1,3 +1,4 @@ +#include #include #include #include "resources.h" @@ -7,13 +8,21 @@ using namespace std; namespace Msp { namespace DemoScene { -Resources::Resources(const string &pack_name): - ui_font(0), - ui_text_technique(0) +void init_data(DataFile::BuiltinSource &); + +Resources::Resources() { - set_default_texture_anisotropy(8); - set_srgb_conversion(true); + init(); +} + +Resources::Resources(const string &pack_name) +{ + init(); + init_sources(pack_name); +} +void Resources::init_sources(const string &pack_name) +{ FS::Path data_dir = "data"; if(FS::exists(data_dir)) { @@ -29,6 +38,37 @@ Resources::Resources(const string &pack_name): } } +void Resources::init() +{ + ui_font = 0; + ui_text_technique = 0; + + set_default_texture_anisotropy(8); + set_srgb_conversion(true); + + 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 { if(!ui_font)