aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickshadereffectnode.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2014-07-03 12:15:46 +0200
committerGunnar Sletta <gunnar.sletta@jollamobile.com>2014-07-04 17:39:45 +0200
commit92658ebb755bda136a7e4fa455b8d116c2dd0c6f (patch)
tree60c346fa4921a8be7448f550ebda033c07e21d49 /src/quick/items/qquickshadereffectnode.cpp
parent48dcabdb6f30d5e0c05fc1e56bb4ed4e3a96514c (diff)
Verbose fatal instead of crash when the scene graph state is invalid.
Change-Id: I9a55bcbf9e94084c0cadac561e4707d47f5f8744 Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Diffstat (limited to 'src/quick/items/qquickshadereffectnode.cpp')
-rw-r--r--src/quick/items/qquickshadereffectnode.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/quick/items/qquickshadereffectnode.cpp b/src/quick/items/qquickshadereffectnode.cpp
index f1422e4502..fcf5591d01 100644
--- a/src/quick/items/qquickshadereffectnode.cpp
+++ b/src/quick/items/qquickshadereffectnode.cpp
@@ -46,6 +46,7 @@
#include <QtQuick/qsgtextureprovider.h>
#include <QtQuick/private/qsgrenderer_p.h>
#include <QtQuick/private/qsgshadersourcebuilder_p.h>
+#include <QtQuick/private/qsgtexture_p.h>
QT_BEGIN_NAMESPACE
@@ -136,6 +137,12 @@ void QQuickCustomMaterialShader::updateState(const RenderState &state, QSGMateri
functions->glActiveTexture(GL_TEXTURE0 + idx);
if (QSGTextureProvider *provider = material->textureProviders.at(idx)) {
if (QSGTexture *texture = provider->texture()) {
+
+#ifndef QT_NO_DEBUG
+ if (!qsg_safeguard_texture(texture))
+ continue;
+#endif
+
if (loc >= 0) {
QRectF r = texture->normalizedTextureSubRect();
program()->setUniformValue(loc, r.x(), r.y(), r.width(), r.height());