summaryrefslogtreecommitdiffstats
path: root/basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp')
-rw-r--r--basicsuite/Qt5Everywhere/demos/shaders/import/shaderfilereader.cpp50
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;
+}
+