aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2020-05-26 15:31:42 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2020-05-27 11:19:25 +0200
commit08f56c9830c12f6b443649e3e4f51b3cea69d79b (patch)
treee2a22208f67f064bcd753f6ec752819acd530c47 /src/plugins
parent16cb9dea7b915b50f4cb0f720eb5fbfa039076ff (diff)
Adjust QSGTexture comparisonKey type
The original choice was int, simply following textureId(). This was later deemed insufficient: instead of a GLuint, the value is now often a 64-bit value (on 64 bit systems), based on a pointer, since the identity of a texture in the RHI world is the QRhiTexture* itself. In a custom texture implementation it is likely that the value here is the value of a native object handle, either a pointer or some 32 or 64 bit integer. Inspired by the recent QSGTexture::NativeTexture struct change (void* -> quint64), switch to a qint64 which is big enough to hold all these without truncation. We choose a signed value here, in order to allow for the following pattern that is widespread in material compare() implementations: if (qint64 diff = m_texture->comparisonKey() - other->texture()->comparisonKey()) return diff; Fixes: QTBUG-83769 Change-Id: I8bdae8cd835282358ded53b3703142b8f26e4400 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/scenegraph/openvg/qsgopenvglayer.cpp2
-rw-r--r--src/plugins/scenegraph/openvg/qsgopenvglayer.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/plugins/scenegraph/openvg/qsgopenvglayer.cpp b/src/plugins/scenegraph/openvg/qsgopenvglayer.cpp
index b03168b334..3ecf0dcb31 100644
--- a/src/plugins/scenegraph/openvg/qsgopenvglayer.cpp
+++ b/src/plugins/scenegraph/openvg/qsgopenvglayer.cpp
@@ -313,7 +313,7 @@ void QSGOpenVGLayer::grab()
markDirtyTexture(); // Continuously update if 'live' and 'recursive'.
}
-int QSGOpenVGLayerPrivate::comparisonKey() const
+qint64 QSGOpenVGLayerPrivate::comparisonKey() const
{
return 0;
}
diff --git a/src/plugins/scenegraph/openvg/qsgopenvglayer.h b/src/plugins/scenegraph/openvg/qsgopenvglayer.h
index f2763463cd..1d52310f5c 100644
--- a/src/plugins/scenegraph/openvg/qsgopenvglayer.h
+++ b/src/plugins/scenegraph/openvg/qsgopenvglayer.h
@@ -116,7 +116,7 @@ class QSGOpenVGLayerPrivate : public QSGTexturePrivate
{
Q_DECLARE_PUBLIC(QSGOpenVGLayer)
public:
- int comparisonKey() const override;
+ qint64 comparisonKey() const override;
};
QT_END_NAMESPACE