aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2020-11-23 12:57:56 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2020-11-23 14:29:02 +0100
commitae1dc052b6b975b8a49d8d71d11d3051acd594c7 (patch)
tree73ddfbd54e55f7d4d36d8c9269301b77beb648d0 /src/quick/scenegraph
parent9f43ccc112b748ff79e175b7fec94ec60cf311ec (diff)
Use a single code path to load a QShader in QSGRhiShaderEffectNode
Pick-to: 6.0 Change-Id: I8fec25df83768883896d195c09489aeb23abdafd Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'src/quick/scenegraph')
-rw-r--r--src/quick/scenegraph/qsgrhishadereffectnode.cpp17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/quick/scenegraph/qsgrhishadereffectnode.cpp b/src/quick/scenegraph/qsgrhishadereffectnode.cpp
index 57d12a8cf3..8eb4aedceb 100644
--- a/src/quick/scenegraph/qsgrhishadereffectnode.cpp
+++ b/src/quick/scenegraph/qsgrhishadereffectnode.cpp
@@ -611,7 +611,7 @@ QRectF QSGRhiShaderEffectNode::updateNormalizedTextureSubRect(bool supportsAtlas
return srcRect;
}
-static QShader loadShader(const QString &filename)
+static QShader loadShaderFromFile(const QString &filename)
{
QFile f(filename);
if (!f.open(QIODevice::ReadOnly)) {
@@ -642,7 +642,7 @@ void QSGRhiShaderEffectNode::syncMaterial(SyncData *syncData)
m_material.m_vertexShader = syncData->vertex.shader->shaderInfo.rhiShader;
} else {
if (!defaultVertexShader.isValid())
- defaultVertexShader = loadShader(QStringLiteral(":/qt-project.org/scenegraph/shaders_ng/shadereffect.vert.qsb"));
+ defaultVertexShader = loadShaderFromFile(QStringLiteral(":/qt-project.org/scenegraph/shaders_ng/shadereffect.vert.qsb"));
m_material.m_vertexShader = defaultVertexShader;
}
@@ -651,7 +651,7 @@ void QSGRhiShaderEffectNode::syncMaterial(SyncData *syncData)
m_material.m_fragmentShader = syncData->fragment.shader->shaderInfo.rhiShader;
} else {
if (!defaultFragmentShader.isValid())
- defaultFragmentShader = loadShader(QStringLiteral(":/qt-project.org/scenegraph/shaders_ng/shadereffect.frag.qsb"));
+ defaultFragmentShader = loadShaderFromFile(QStringLiteral(":/qt-project.org/scenegraph/shaders_ng/shadereffect.frag.qsb"));
m_material.m_fragmentShader = defaultFragmentShader;
}
@@ -801,16 +801,7 @@ void QSGRhiGuiThreadShaderEffectManager::prepareShaderCode(ShaderInfo::Type type
m_fileSelector->setExtraSelectors(QStringList() << QStringLiteral("qsb"));
}
const QString fn = m_fileSelector->select(QQmlFile::urlToLocalFileOrQrc(src));
- QFile f(fn);
- if (!f.open(QIODevice::ReadOnly)) {
- qWarning("ShaderEffect: Failed to read %s", qPrintable(fn));
- m_status = Error;
- emit shaderCodePrepared(false, typeHint, src, result);
- emit logAndStatusChanged();
- return;
- }
- const QShader s = QShader::fromSerialized(f.readAll());
- f.close();
+ const QShader s = loadShaderFromFile(fn);
if (!s.isValid()) {
qWarning("ShaderEffect: Failed to deserialize QShader from %s", qPrintable(fn));
m_status = Error;