removed all dependence on NodeOutputs

If Nodes only have the one output, we don't need to do so much differentiation
between them. Previous iteration used outputs as like a distinct function
within a Node (e.g. length output would return one result, buffer output would
produce a different result - each run different code to produce their results).
Now in this iteration, it's more accurate to say a Node is just one function
(which seems more appropriate for a node system anyway).
This commit is contained in:
itsmattkc
2019-12-06 00:23:26 +11:00
parent f424d8b44e
commit d25dda5275
45 changed files with 253 additions and 407 deletions
+8 -21
View File
@@ -139,7 +139,7 @@ public:
/**
* @brief Generate OpenCL hardware accelerated code for this Node
*/
virtual QString Code(NodeOutput* output) const;
virtual QString Code() const;
/**
* @brief Returns the parameter with the specified ID (or nullptr if it doesn't exist)
@@ -264,6 +264,8 @@ public:
*/
bool HasParamWithID(const QString& id) const;
NodeOutput* output() const;
protected:
/**
* @brief Add a parameter to this node
@@ -274,16 +276,6 @@ protected:
*/
void AddParameter(NodeParam* param);
/**
* @brief Retrieve the last timecode Process() was called with
*/
rational LastProcessedTime();
/**
* @brief Retrieve the last parameter Process() was called from
*/
NodeOutput* LastProcessedOutput();
void ClearCachedValuesInParameters(const rational& start_range, const rational& end_range);
void SendInvalidateCache(const rational& start_range, const rational& end_range);
@@ -320,16 +312,6 @@ private:
QList<NodeParam *> params_;
/**
* @brief The last timecode Process() was called with
*/
rational last_processed_time_;
/**
* @brief The last parameter Process() was called from
*/
NodeOutput* last_processed_parameter_;
/**
* @brief Used for thread safety from main thread
*/
@@ -340,6 +322,11 @@ private:
*/
bool can_be_deleted_;
/**
* @brief Primary node output
*/
NodeOutput* output_;
private slots:
void InputChanged(rational start, rational end);