]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/program.h
Split Module into a base class and format-specific class
[libs/gl.git] / source / core / program.h
index f318c60639012ea66f9da3c43139003cae519202..9fa757479eacf11d09ca7880bbab83daeb74c6db 100644 (file)
@@ -11,6 +11,7 @@
 namespace Msp {
 namespace GL {
 
+class GlslModule;
 class Module;
 class Shader;
 
@@ -92,7 +93,7 @@ public:
 
 private:
        unsigned id;
-       std::vector<unsigned> shader_ids;
+       std::vector<unsigned> stage_ids;
        const Module *module;
        bool linked;
        UniformBlockMap uniform_blocks;
@@ -119,7 +120,12 @@ public:
        virtual ~Program();
 
        void add_stages(const Module &, const std::map<std::string, int> & = std::map<std::string, int>());
+private:
+       unsigned add_stage(GLenum);
+       void add_glsl_stages(const GlslModule &, const std::map<std::string, int> &);
+       void compile_glsl_stage(unsigned);
 
+public:
        DEPRECATED void attach_shader(Shader &shader);
        DEPRECATED void attach_shader_owned(Shader *shader);
        DEPRECATED void detach_shader(Shader &shader);