namespace GLtk {
Resources::Resources():
- path("."),
default_font(0)
-{
- init();
-}
-
-Resources::Resources(const FS::Path &fn):
- path(FS::dirname(fn)),
- default_font(0)
-{
- init();
-
- DataFile::load(*this, fn.str());
-}
-
-void Resources::init()
{
add_type<Graphic>().keyword("graphic");
- add_type<GL::Texture2D>().keyword("texture").creator(&Resources::create_texture);
- add_type<GL::Font>().creator(&Resources::create_font);
-}
-
-void Resources::set_path(const FS::Path &p)
-{
- /* XXX bad, should change Collection API to allow creators to form paths
- relative to the datafile location */
- path = p;
+ add_type<GL::Texture2D>().keyword("texture");
+ add_type<GL::Font>().keyword("font");
}
const GL::Font &Resources::get_default_font() const
return *default_font;
}
-GL::Font *Resources::create_font(const string &name)
-{
- RefPtr<GL::Font> fnt = new GL::Font;
- DataFile::load(*fnt, (path/name).str(), *this);
- if(!default_font)
- default_font = fnt.get();
- return fnt.release();
-}
-
-GL::Texture2D *Resources::create_texture(const string &name)
-{
- RefPtr<GL::Texture2D> tex = new GL::Texture2D;
- tex->load_image((path/name).str());
- tex->set_min_filter(GL::LINEAR);
- return tex.release();
-}
-
Resources::Loader::Loader(Resources &r):
Collection::Loader(r),
void style(const std::string &);
};
+public:
Resources();
- Resources(const FS::Path &);
-private:
- void init();
-public:
- void set_path(const FS::Path &);
const GL::Font &get_default_font() const;
-private:
- GL::Font *create_font(const std::string &);
- GL::Texture2D *create_texture(const std::string &);
};
} // namespace GLtk