Commit a7cadd6f authored by Bruno de Oliveira Abinader's avatar Bruno de Oliveira Abinader Committed by Paolo Angelelli
Browse files

Minimum texture size check for QSGMapboxGLTextureNode


Change-Id: I096a14f5f1e8f83d4671990d052ecfff8095e985
Reviewed-by: default avatarThiago Marcos P. Santos <tmpsantos@gmail.com>
Reviewed-by: default avatarPaolo Angelelli <paolo.angelelli@qt.io>
Showing with 7 additions and 4 deletions
......@@ -43,13 +43,15 @@
// QSGMapboxGLTextureNode
static const QSize minTextureSize = QSize(64, 64);
QSGMapboxGLTextureNode::QSGMapboxGLTextureNode(const QMapboxGLSettings &settings, const QSize &size, qreal pixelRatio, QGeoMapMapboxGL *geoMap)
: QSGSimpleTextureNode()
{
setTextureCoordinatesTransform(QSGSimpleTextureNode::MirrorVertically);
setFiltering(QSGTexture::Linear);
m_map.reset(new QMapboxGL(nullptr, settings, size, pixelRatio));
m_map.reset(new QMapboxGL(nullptr, settings, size.expandedTo(minTextureSize), pixelRatio));
QObject::connect(m_map.data(), &QMapboxGL::needsRendering, geoMap, &QGeoMap::sgNodeChanged);
QObject::connect(m_map.data(), &QMapboxGL::copyrightsChanged, geoMap,
......@@ -58,8 +60,9 @@ QSGMapboxGLTextureNode::QSGMapboxGLTextureNode(const QMapboxGLSettings &settings
void QSGMapboxGLTextureNode::resize(const QSize &size, qreal pixelRatio)
{
const QSize fbSize = size * pixelRatio;
m_map->resize(size, fbSize);
const QSize& minSize = size.expandedTo(minTextureSize);
const QSize fbSize = minSize * pixelRatio;
m_map->resize(minSize, fbSize);
m_fbo.reset(new QOpenGLFramebufferObject(fbSize, QOpenGLFramebufferObject::CombinedDepthStencil));
......@@ -75,7 +78,7 @@ void QSGMapboxGLTextureNode::resize(const QSize &size, qreal pixelRatio)
setOwnsTexture(true);
}
setRect(QRectF(QPointF(), size));
setRect(QRectF(QPointF(), minSize));
markDirty(QSGNode::DirtyGeometry);
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment