-/* $Id$
-
-This file is part of libmspgltk
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_GLTK_RESOURCES_H_
#define MSP_GLTK_RESOURCES_H_
#include <msp/gl/font.h>
+#include <msp/gl/module.h>
+#include <msp/gl/program.h>
+#include <msp/gl/sampler.h>
#include <msp/gl/texture.h>
#include <msp/datafile/collection.h>
-#include <msp/path/path.h>
+#include <msp/datafile/directorysource.h>
+#include <msp/fs/path.h>
#include "graphic.h"
+#include "mspgltk_api.h"
#include "style.h"
namespace Msp {
Stores resources such as styles and graphics. All widgets require a Resources
instance in constructor.
*/
-class Resources: public DataFile::Collection
+class MSPGLTK_API Resources: public DataFile::Collection
{
-private:
- Path path;
- GL::Font *default_font;
-
public:
class Loader: public Collection::Loader
{
private:
void default_font(const std::string &);
void font(const std::string &);
- void style(const std::string &);
};
+private:
+ FS::Path path;
+ GL::Font *default_font = nullptr;
+ DataFile::DirectorySource *dir_src = nullptr;
+
+public:
Resources();
+ Resources(const FS::Path &);
+ ~Resources();
- void set_path(const Path &);
const GL::Font &get_default_font() const;
+ const GL::Sampler &get_default_sampler() const;
+
private:
- GL::Font *create_font(const std::string &);
+ GL::Module *create_module(const std::string &);
+ GL::Program *create_program(const std::string &);
+ GL::Sampler *create_sampler(const std::string &);
GL::Texture2D *create_texture(const std::string &);
};