X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fprogrambuilder.h;h=1f9bb846aa0b5729a0ffb3583d5d3e939861b2c1;hb=0687d51f638169ffe55ad27e71ae99508ef3c38c;hp=0883f6a74fd07a6479dc1b01fa62424882455042;hpb=70663ae97d5b70a6b468e07dd7e73475a175dc9b;p=libs%2Fgl.git diff --git a/source/programbuilder.h b/source/programbuilder.h index 0883f6a7..1f9bb846 100644 --- a/source/programbuilder.h +++ b/source/programbuilder.h @@ -56,6 +56,7 @@ private: enum VariableScope { NO_SCOPE, + TYPE, UNIFORM, ATTRIBUTE, VERTEX, @@ -84,6 +85,7 @@ private: { std::string name; const VariableDefinition *variable; + const VariableDefinition *type; std::string resolved_name; bool fuzzy_space; std::string resolved_space; @@ -100,6 +102,7 @@ private: void resolve(const VariableDefinition &); void resolve(ShaderVariable &); + void resolve_type(const VariableDefinition &); void resolve_space(const std::string &); void resolve_array(const StandardFeatures &, unsigned = 0); void add_reference(ShaderVariable &); @@ -107,6 +110,7 @@ private: void check_inline(bool, bool); bool is_referenced_from(VariableScope) const; InterfaceFlags get_interface_flags(VariableScope) const; + std::string create_type_declaration() const; std::string create_declaration(char = 0, bool = false) const; std::string create_replacement(VariableScope, const char * = 0) const; std::string create_expression(const char * = 0) const;