]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.h
Refactor the interface of SL::Compiler
[libs/gl.git] / source / glsl / compiler.h
index 2afc2f560bb00c17ecbdbfbc10f501ef11ad2813..8e83990613343c0fdc8510053ffaac1617d4d283 100644 (file)
@@ -4,7 +4,6 @@
 #include <vector>
 #include "parser.h"
 #include "program.h"
-#include "resources.h"
 #include "syntax.h"
 
 namespace Msp {
@@ -14,7 +13,6 @@ namespace SL {
 class Compiler
 {
 private:
-       Resources *resources;
        Module *module;
        std::vector<std::string> imported_names;
 
@@ -22,16 +20,19 @@ public:
        Compiler();
        ~Compiler();
 
-       void compile(const std::string &, const std::string & = "<string>");
-       void compile(IO::Base &, Resources * = 0, const std::string & = "<file>");
-       void compile(IO::Base &, const std::string &);
+private:
+       void clear();
+public:
+       void set_source(const std::string &, const std::string & = "<string>");
+       void load_source(IO::Base &, DataFile::Collection * = 0, const std::string & = "<file>");
+       void load_source(IO::Base &, const std::string &);
+       void compile();
        void add_shaders(Program &);
 
 private:
-       void append_module(Module &);
+       void append_module(Module &, DataFile::Collection *);
        void append_stage(Stage &);
-       void process();
-       void import(const std::string &);
+       void import(DataFile::Collection *, const std::string &);
        void generate(Stage &);
        bool optimize(Stage &);
        void finalize(Stage &);