FRAGMENT
};
+ enum InterfaceFlags
+ {
+ NO_INTERFACE = 0,
+ INPUT = 1,
+ OUTPUT = 2,
+ PASSTHROUGH = INPUT|OUTPUT,
+ GOAL = 4
+ };
+
struct VariableDefinition
{
VariableScope scope;
void resolve_space(const std::string &);
void add_reference(ShaderVariable &);
void update_reference(ShaderVariable &, ShaderVariable &);
- void check_inline(bool);
+ void check_inline(bool, bool);
bool is_referenced_from(VariableScope) const;
- std::string get_expression() const;
+ InterfaceFlags get_interface_flags(VariableScope) const;
+ std::string create_declaration(char = 0) const;
+ std::string create_replacement(VariableScope) const;
+ std::string create_expression() const;
};
enum MatchLevel
bool optimize;
static const VariableDefinition standard_variables[];
+ static const char interfaces[];
public:
ProgramBuilder(const StandardFeatures &);