implemented external xml/shader loading for transitions as well as regular nodes
Transitions are nodes but have a few parameters that are programmatic and always required. This lets people write external code for transitions as well.
This commit is contained in:
@@ -19,6 +19,8 @@ add_subdirectory(diptoblack)
|
||||
|
||||
set(OLIVE_SOURCES
|
||||
${OLIVE_SOURCES}
|
||||
node/block/transition/externaltransition.h
|
||||
node/block/transition/externaltransition.cpp
|
||||
node/block/transition/transition.h
|
||||
node/block/transition/transition.cpp
|
||||
PARENT_SCOPE
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
#include "externaltransition.h"
|
||||
|
||||
ExternalTransition::ExternalTransition(const QString &xml_meta_filename) :
|
||||
meta_(xml_meta_filename)
|
||||
{
|
||||
foreach (NodeInput* input, meta_.inputs()) {
|
||||
AddInput(input);
|
||||
}
|
||||
}
|
||||
|
||||
Node *ExternalTransition::copy() const
|
||||
{
|
||||
return new ExternalTransition(meta_.filename());
|
||||
}
|
||||
|
||||
QString ExternalTransition::Name() const
|
||||
{
|
||||
return meta_.Name();
|
||||
}
|
||||
|
||||
QString ExternalTransition::id() const
|
||||
{
|
||||
return meta_.id();
|
||||
}
|
||||
|
||||
QString ExternalTransition::Category() const
|
||||
{
|
||||
return meta_.Category();
|
||||
}
|
||||
|
||||
QString ExternalTransition::Description() const
|
||||
{
|
||||
return meta_.Description();
|
||||
}
|
||||
|
||||
void ExternalTransition::Retranslate()
|
||||
{
|
||||
meta_.Retranslate();
|
||||
}
|
||||
|
||||
bool ExternalTransition::IsAccelerated() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
QString ExternalTransition::AcceleratedCodeVertex() const
|
||||
{
|
||||
return meta_.vert_code();
|
||||
}
|
||||
|
||||
QString ExternalTransition::AcceleratedCodeFragment() const
|
||||
{
|
||||
return meta_.frag_code();
|
||||
}
|
||||
|
||||
int ExternalTransition::AcceleratedCodeIterations() const
|
||||
{
|
||||
return meta_.iterations();
|
||||
}
|
||||
|
||||
NodeInput *ExternalTransition::AcceleratedCodeIterativeInput() const
|
||||
{
|
||||
return meta_.iteration_input();
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef EXTERNALTRANSITION_H
|
||||
#define EXTERNALTRANSITION_H
|
||||
|
||||
#include "transition.h"
|
||||
|
||||
#include "node/metareader.h"
|
||||
|
||||
class ExternalTransition : public TransitionBlock
|
||||
{
|
||||
public:
|
||||
ExternalTransition(const QString& xml_meta_filename);
|
||||
|
||||
virtual Node* copy() const override;
|
||||
|
||||
virtual QString Name() const override;
|
||||
virtual QString id() const override;
|
||||
virtual QString Category() const override;
|
||||
virtual QString Description() const override;
|
||||
|
||||
virtual void Retranslate() override;
|
||||
|
||||
virtual bool IsAccelerated() const override;
|
||||
virtual QString AcceleratedCodeVertex() const override;
|
||||
virtual QString AcceleratedCodeFragment() const override;
|
||||
virtual int AcceleratedCodeIterations() const override;
|
||||
virtual NodeInput* AcceleratedCodeIterativeInput() const override;
|
||||
|
||||
private:
|
||||
NodeMetaReader meta_;
|
||||
};
|
||||
|
||||
#endif // EXTERNALTRANSITION_H
|
||||
Reference in New Issue
Block a user