class Module
{
-private:
- std::string prepared_source;
- SL::SourceMap source_map;
+public:
+ enum Format
+ {
+ GLSL,
+ };
+protected:
+ Module() { }
public:
- Module();
+ virtual ~Module() { }
+
+ virtual Format get_format() const = 0;
void set_source(const std::string &);
void load_source(IO::Base &, Resources *, const std::string &);
void load_source(IO::Base &, const std::string &);
private:
- void compile(SL::Compiler &);
+ virtual void compile(SL::Compiler &) = 0;
+};
+
+class GlslModule: public Module
+{
+private:
+ std::string prepared_source;
+ SL::SourceMap source_map;
+
+public:
+ virtual Format get_format() const { return GLSL; }
+
+private:
+ virtual void compile(SL::Compiler &);
public:
const std::string &get_prepared_source() const { return prepared_source; }