diff options
Diffstat (limited to 'basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp')
-rw-r--r-- | basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp b/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp new file mode 100644 index 0000000..985a28c --- /dev/null +++ b/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp @@ -0,0 +1,50 @@ +#include "shaderfilereader.h" +#include <QtCore/QFile> +#include <QtCore/QTextStream> + +ShaderFileReader::ShaderFileReader(QObject* parent) + : QObject(parent) +{ + if (qEnvironmentVariableIsEmpty("QT_SHADER_PATH")) + setenv("QT_SHADER_PATH", "/data/user/qt/Qt5Everywhere/demos/shaders/",1); +} + +ShaderFileReader::~ShaderFileReader() +{ +} + +void ShaderFileReader::setFragmentShaderFilename(const QString &name) +{ + m_fragmentShaderFilename = name; + Q_EMIT fragmentShaderFilenameChanged(); +} + +void ShaderFileReader::setVertexShaderFilename(const QString &name) +{ + m_vertexShaderFilename = name; + Q_EMIT vertexShaderFilenameChanged(); +} + +QString ShaderFileReader::fragmentShader() const +{ + return readShaderFile(m_fragmentShaderFilename); +} + +QString ShaderFileReader::vertexShader() const +{ + return readShaderFile(m_vertexShaderFilename); +} + +QString ShaderFileReader::readShaderFile(const QString &fileName) const +{ + QString content; + QString path = qgetenv("QT_SHADER_PATH"); + QFile file(path.append(fileName)); + if (file.open(QIODevice::ReadOnly)) { + QTextStream stream(&file); + content = stream.readAll(); + file.close(); + } + return content; +} + |