Files
oak-editor/app/node/external.h
T
itsmattkc 61bb9fec6f added language support for externally loaded shaders
This includes adding a language entry to the config file.
2019-12-15 03:01:05 +11:00

57 lines
1.5 KiB
C++

#ifndef EXTERNALNODE_H
#define EXTERNALNODE_H
#include <QXmlStreamReader>
#include "node.h"
/**
* @brief A node generated from an external XML metadata file
*/
class ExternalNode : public Node
{
public:
ExternalNode(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:
void XMLReadLanguageString(QXmlStreamReader* reader, QMap<QString, QString>* map);
void XMLReadEffect(QXmlStreamReader *reader);
void XMLReadIterations(QXmlStreamReader* reader);
void XMLReadParam(QXmlStreamReader* reader);
void XMLReadShader(QXmlStreamReader* reader, QString& destination);
static QString GetStringForCurrentLanguage(const QMap<QString, QString> *language_map);
QString xml_filename_;
QMap<QString, QString> names_;
QMap<QString, QString> descriptions_;
QMap<QString, QString> categories_;
QMap<QString, QMap<QString, QString> > param_names_;
QString id_;
QString frag_code_;
QString vert_code_;
int iterations_;
NodeInput* iteration_input_;
};
#endif // EXTERNALNODE_H