diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2020-11-23 12:57:56 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2020-11-23 14:29:02 +0100 |
commit | ae1dc052b6b975b8a49d8d71d11d3051acd594c7 (patch) | |
tree | 73ddfbd54e55f7d4d36d8c9269301b77beb648d0 /src/quick/scenegraph | |
parent | 9f43ccc112b748ff79e175b7fec94ec60cf311ec (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.cpp | 17 |
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; |