#ifndef MSP_GLTK_RESOURCES_H_
#define MSP_GLTK_RESOURCES_H_
+#include <memory>
#include <msp/gl/font.h>
#include <msp/gl/module.h>
#include <msp/gl/program.h>
#include <msp/datafile/directorysource.h>
#include <msp/fs/path.h>
#include "graphic.h"
+#include "mspgltk_api.h"
#include "style.h"
namespace Msp {
namespace GLtk {
/**
-Stores resources such as styles and graphics. All widgets require a Resources
-instance in constructor.
+Stores resources such as styles and graphics. The Root widget requires a
+Resources instance as constructor parameter.
*/
-class Resources: public DataFile::Collection
+class MSPGLTK_API Resources: public DataFile::Collection
{
public:
class Loader: public Collection::Loader
public:
Loader(Resources &);
+
private:
void default_font(const std::string &);
void font(const std::string &);
private:
FS::Path path;
- GL::Font *default_font;
- DataFile::DirectorySource *dir_src;
+ GL::Font *default_font = nullptr;
+ std::unique_ptr<DataFile::DirectorySource> dir_src;
public:
Resources();
Resources(const FS::Path &);
-private:
- void init();
-public:
- ~Resources();
const GL::Font &get_default_font() const;
const GL::Sampler &get_default_sampler() const;