added support for multiple node iterations
Optimizes various effects, particularly blurs.
This commit is contained in:
@@ -50,7 +50,7 @@ bool AlphaOverBlend::IsAccelerated() const
|
||||
return true;
|
||||
}
|
||||
|
||||
QString AlphaOverBlend::CodeFragment() const
|
||||
QString AlphaOverBlend::AcceleratedCodeFragment() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/alphaover.frag");
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public:
|
||||
virtual QString Description() const override;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString CodeFragment() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ bool CrossDissolveTransition::IsAccelerated() const
|
||||
return true;
|
||||
}
|
||||
|
||||
QString CrossDissolveTransition::CodeFragment() const
|
||||
QString CrossDissolveTransition::AcceleratedCodeFragment() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/crossdissolve.frag");
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public:
|
||||
virtual QString Description() const override;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString CodeFragment() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
};
|
||||
|
||||
#endif // CROSSDISSOLVETRANSITION_H
|
||||
|
||||
@@ -29,7 +29,7 @@ bool DipToBlackTransition::IsAccelerated() const
|
||||
return true;
|
||||
}
|
||||
|
||||
QString DipToBlackTransition::CodeFragment() const
|
||||
QString DipToBlackTransition::AcceleratedCodeFragment() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/diptoblack.frag");
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public:
|
||||
virtual QString Description() const override;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString CodeFragment() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
};
|
||||
|
||||
#endif // DIPTOBLACKTRANSITION_H
|
||||
|
||||
@@ -70,7 +70,7 @@ bool OpacityNode::IsAccelerated() const
|
||||
return true;
|
||||
}
|
||||
|
||||
QString OpacityNode::CodeFragment() const
|
||||
QString OpacityNode::AcceleratedCodeFragment() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/opacity.frag");
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
virtual void Retranslate() override;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString CodeFragment() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
|
||||
NodeInput* texture_input() const;
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ bool SolidGenerator::IsAccelerated() const
|
||||
return true;
|
||||
}
|
||||
|
||||
QString SolidGenerator::CodeFragment() const
|
||||
QString SolidGenerator::AcceleratedCodeFragment() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/solid.frag");
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
virtual QString Description() const override;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString CodeFragment() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
|
||||
virtual void Retranslate() override;
|
||||
|
||||
|
||||
@@ -51,12 +51,12 @@ bool VideoInput::IsAccelerated() const
|
||||
return true;
|
||||
}
|
||||
|
||||
QString VideoInput::CodeVertex() const
|
||||
QString VideoInput::AcceleratedCodeVertex() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/videoinput.vert");
|
||||
}
|
||||
|
||||
QString VideoInput::CodeFragment() const
|
||||
QString VideoInput::AcceleratedCodeFragment() const
|
||||
{
|
||||
return ReadFileAsString(":/shaders/videoinput.frag");
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ public:
|
||||
NodeInput* matrix_input() const;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString CodeVertex() const override;
|
||||
virtual QString CodeFragment() const override;
|
||||
virtual QString AcceleratedCodeVertex() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
|
||||
virtual void Retranslate() override;
|
||||
|
||||
|
||||
+12
-2
@@ -370,16 +370,26 @@ bool Node::IsAccelerated() const
|
||||
return false;
|
||||
}
|
||||
|
||||
QString Node::CodeVertex() const
|
||||
QString Node::AcceleratedCodeVertex() const
|
||||
{
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString Node::CodeFragment() const
|
||||
QString Node::AcceleratedCodeFragment() const
|
||||
{
|
||||
return QString();
|
||||
}
|
||||
|
||||
int Node::AcceleratedCodeIterations() const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
NodeInput *Node::AcceleratedCodeIterativeInput() const
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
NodeParam *Node::GetParameterWithID(const QString &id) const
|
||||
{
|
||||
foreach (NodeParam* param, params_) {
|
||||
|
||||
+14
-2
@@ -137,12 +137,24 @@ public:
|
||||
/**
|
||||
* @brief Generate hardware accelerated code for this Node
|
||||
*/
|
||||
virtual QString CodeVertex() const;
|
||||
virtual QString AcceleratedCodeVertex() const;
|
||||
|
||||
/**
|
||||
* @brief Generate hardware accelerated code for this Node
|
||||
*/
|
||||
virtual QString CodeFragment() const;
|
||||
virtual QString AcceleratedCodeFragment() const;
|
||||
|
||||
/**
|
||||
* @brief Number of iterations to run the accelerated code
|
||||
*
|
||||
* Some code is faster if it's merely repeated on a resulting texture rather than run once on the same buffer.
|
||||
*/
|
||||
virtual int AcceleratedCodeIterations() const;
|
||||
|
||||
/**
|
||||
* @brief Parameter that should receive the buffer on an iteration past the first
|
||||
*/
|
||||
virtual NodeInput* AcceleratedCodeIterativeInput() const;
|
||||
|
||||
/**
|
||||
* @brief Returns the parameter with the specified ID (or nullptr if it doesn't exist)
|
||||
|
||||
Reference in New Issue
Block a user