summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-06-19 11:16:44 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-06-19 14:30:02 +0000
commit7b2d0fdba63c0aca5e37f59706455618787a44eb (patch)
tree726ce3861108cd44ee2dcd7f7c94fe6f8d6bece9
parent809c753359a6a6c5773b0494a46b1d82f3965db6 (diff)
parent06879a5cfca3bca23e8cdc22be48563a77fd15d9 (diff)
Merge "Merge remote-tracking branch 'origin/5.11.1' into 5.11" into refs/staging/5.11
-rw-r--r--dist/changes-5.11.129
-rw-r--r--src/render/backend/uniform_p.h2
-rw-r--r--src/render/frontend/qrenderaspect.cpp5
-rw-r--r--src/render/renderers/opengl/textures/gltexture.cpp9
-rw-r--r--src/render/texture/qpaintedtextureimage.cpp8
-rw-r--r--src/render/texture/qpaintedtextureimage_p.h1
-rw-r--r--tests/auto/render/uniform/tst_uniform.cpp9
7 files changed, 59 insertions, 4 deletions
diff --git a/dist/changes-5.11.1 b/dist/changes-5.11.1
new file mode 100644
index 000000000..04372ab01
--- /dev/null
+++ b/dist/changes-5.11.1
@@ -0,0 +1,29 @@
+Qt 5.11.1 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.11.0.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.11 series is binary compatible with the 5.10.x series.
+Applications compiled for 5.10 will continue to run with 5.11.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Qt 5.11.1 Changes *
+****************************************************************************
+
+****************************************************************************
+* UNSPECIFIED *
+****************************************************************************
+
+ - [QTBUG-68403] 2D samplers for multisample textures are now supported
+ on OpenGL ES 3.1 and newer
diff --git a/src/render/backend/uniform_p.h b/src/render/backend/uniform_p.h
index e31aaa609..7f273566e 100644
--- a/src/render/backend/uniform_p.h
+++ b/src/render/backend/uniform_p.h
@@ -181,7 +181,7 @@ public:
// For nodes which will later be replaced by a Texture or Buffer
UniformValue(Qt3DCore::QNodeId id)
- : UniformValue()
+ : m_data(sizeof(Qt3DCore::QNodeId) / sizeof(float))
{
m_valueType = NodeId;
memcpy(m_data.data(), &id, sizeof(Qt3DCore::QNodeId));
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 82cc5956a..f2b101012 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -249,7 +249,7 @@ void QRenderAspectPrivate::registerBackendTypes()
q->registerBackendType<QGeometry>(QSharedPointer<Render::NodeFunctor<Render::Geometry, Render::GeometryManager> >::create(m_renderer));
q->registerBackendType<QGeometryRenderer>(QSharedPointer<Render::GeometryRendererFunctor>::create(m_renderer, m_nodeManagers->geometryRendererManager()));
q->registerBackendType<Qt3DCore::QArmature>(QSharedPointer<Render::NodeFunctor<Render::Armature, Render::ArmatureManager>>::create(m_renderer));
- q->registerBackendType<Qt3DCore::QSkeletonLoader>(QSharedPointer<Render::SkeletonFunctor>::create(m_renderer, m_nodeManagers->skeletonManager(), m_nodeManagers->jointManager()));
+ q->registerBackendType<Qt3DCore::QAbstractSkeleton>(QSharedPointer<Render::SkeletonFunctor>::create(m_renderer, m_nodeManagers->skeletonManager(), m_nodeManagers->jointManager()));
q->registerBackendType<Qt3DCore::QJoint>(QSharedPointer<Render::JointFunctor>::create(m_renderer, m_nodeManagers->jointManager(), m_nodeManagers->skeletonManager()));
// Textures
@@ -324,6 +324,9 @@ void QRenderAspectPrivate::unregisterBackendTypes()
unregisterBackendType<QComputeCommand>();
unregisterBackendType<QGeometry>();
unregisterBackendType<QGeometryRenderer>();
+ unregisterBackendType<Qt3DCore::QArmature>();
+ unregisterBackendType<Qt3DCore::QAbstractSkeleton>();
+ unregisterBackendType<Qt3DCore::QJoint>();
// Textures
unregisterBackendType<QAbstractTexture>();
diff --git a/src/render/renderers/opengl/textures/gltexture.cpp b/src/render/renderers/opengl/textures/gltexture.cpp
index 4286a69b6..63b354a14 100644
--- a/src/render/renderers/opengl/textures/gltexture.cpp
+++ b/src/render/renderers/opengl/textures/gltexture.cpp
@@ -151,8 +151,15 @@ QOpenGLTexture* GLTexture::getOrCreateGLTexture()
int maxMipLevel = 0;
for (const Image &img : qAsConst(m_images)) {
const QTextureImageDataPtr imgData = m_textureImageDataManager->getData(img.generator);
+ // imgData may be null in the following cases:
+ // - Texture is created with TextureImages which have yet to be
+ // loaded (skybox where you don't yet know the path, source set by
+ // a property binding, queued connection ...)
+ // - TextureImage whose generator failed to return a valid data
+ // (invalid url, error opening file...)
+ if (imgData.isNull())
+ continue;
- Q_ASSERT(imgData);
m_imageData.push_back(imgData);
maxMipLevel = qMax(maxMipLevel, img.mipLevel);
diff --git a/src/render/texture/qpaintedtextureimage.cpp b/src/render/texture/qpaintedtextureimage.cpp
index 8d2dd1436..6e220f340 100644
--- a/src/render/texture/qpaintedtextureimage.cpp
+++ b/src/render/texture/qpaintedtextureimage.cpp
@@ -69,6 +69,7 @@ namespace Qt3DRender {
QPaintedTextureImagePrivate::QPaintedTextureImagePrivate()
: m_imageSize(256,256)
+ , m_devicePixelRatio(1.0)
, m_generation(0)
{
}
@@ -80,8 +81,13 @@ QPaintedTextureImagePrivate::~QPaintedTextureImagePrivate()
void QPaintedTextureImagePrivate::repaint()
{
// create or re-allocate QImage with current size
- if (m_image.isNull() || (m_image->size() != m_imageSize))
+ if (m_image.isNull()
+ || m_image->size() != m_imageSize
+ || m_image->devicePixelRatio() != m_devicePixelRatio)
+ {
m_image.reset(new QImage(m_imageSize, QImage::Format_RGBA8888));
+ m_image->setDevicePixelRatio(m_devicePixelRatio);
+ }
QPainter painter(m_image.data());
q_func()->paint(&painter);
diff --git a/src/render/texture/qpaintedtextureimage_p.h b/src/render/texture/qpaintedtextureimage_p.h
index 93705d96e..4e554f1c1 100644
--- a/src/render/texture/qpaintedtextureimage_p.h
+++ b/src/render/texture/qpaintedtextureimage_p.h
@@ -72,6 +72,7 @@ public:
Q_DECLARE_PUBLIC(QPaintedTextureImage)
QSize m_imageSize;
+ qreal m_devicePixelRatio;
QScopedPointer<QImage> m_image;
QTextureImageDataGeneratorPtr m_currentGenerator;
diff --git a/tests/auto/render/uniform/tst_uniform.cpp b/tests/auto/render/uniform/tst_uniform.cpp
index 213646369..c0e33f49b 100644
--- a/tests/auto/render/uniform/tst_uniform.cpp
+++ b/tests/auto/render/uniform/tst_uniform.cpp
@@ -143,6 +143,15 @@ private Q_SLOTS:
}
}
}
+ {
+ // GIVEN
+ const Qt3DCore::QNodeId nodeId = Qt3DCore::QNodeId::createId();
+ UniformValue v(nodeId);
+
+ // THEN
+ QCOMPARE(v.byteSize(), sizeof(Qt3DCore::QNodeId));
+ QCOMPARE(v.constData<Qt3DCore::QNodeId>()[0], nodeId);
+ }
}
void checkFromVariant()