nodes: made changes to the node system to allow for context sensitive shader code

Primarily implemented for the math node so a new shader can be generated and
compiled based on what inputs the node is receiving.
This commit is contained in:
itsmattkc
2020-03-29 03:11:30 +11:00
parent 52acb272bf
commit 7100d00060
20 changed files with 209 additions and 56 deletions
+19
View File
@@ -17,7 +17,26 @@ public:
virtual void Retranslate() override;
virtual Capabilities GetCapabilities(const NodeValueDatabase&) const override;
virtual QString ShaderID(const NodeValueDatabase&) const override;
virtual QString ShaderFragmentCode(const NodeValueDatabase&) const override;
virtual NodeValue InputValueFromTable(NodeInput* input, const NodeValueTable& table) const override;
private:
enum Operation {
kOpAdd,
kOpSubtrack,
kOpMultiply,
kOpDivide
};
static NodeParam::DataType GuessTypeFromTable(const NodeValueTable& table);
static QString GetUniformTypeFromType(const NodeParam::DataType& type);
static QString GetVariableCall(const QString& input_id, const NodeParam::DataType& type);
NodeInput* method_in_;
NodeInput* param_a_in_;