]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/program.h
Rename size to array_size in Program variable info structs
[libs/gl.git] / source / core / program.h
index 7038468b52ce048e27042a86e100807c4fe93ed2..33413eb01da23eb035fa0fc04e1fc5c488d7c323 100644 (file)
@@ -5,12 +5,14 @@
 #include <vector>
 #include <msp/datafile/objectloader.h>
 #include "bindable.h"
+#include "datatype.h"
 #include "gl.h"
 #include "vertexformat.h"
 
 namespace Msp {
 namespace GL {
 
+class GlslModule;
 class Module;
 class Shader;
 
@@ -63,10 +65,10 @@ public:
                std::string name;
                const UniformBlockInfo *block;
                unsigned location;
-               unsigned size;
+               unsigned array_size;
                unsigned array_stride;
                unsigned matrix_stride;
-               GLenum type;
+               DataType type;
        };
 
        struct UniformBlockInfo
@@ -82,8 +84,8 @@ public:
        {
                std::string name;
                unsigned location;
-               unsigned size;
-               GLenum type;
+               unsigned array_size;
+               DataType type;
        };
 
        typedef std::map<std::string, UniformInfo> UniformMap;
@@ -118,12 +120,11 @@ private:
 public:
        virtual ~Program();
 
-private:
-       unsigned add_stage(GLenum);
-public:
        void add_stages(const Module &, const std::map<std::string, int> & = std::map<std::string, int>());
 private:
-       void compile_stage(unsigned);
+       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);
@@ -137,7 +138,6 @@ public:
 
        void link();
 private:
-       static void require_type(GLenum);
        void query_uniforms();
        void query_uniform_blocks(const std::vector<UniformInfo *> &);
        void query_attributes();