Fix crash when trying to allocate in a filled atlas texture
Atlas::create returns null when allocating space in the atlas texture fails, including when the texture is full. Manager::create assumed that this function would never fail. Change-Id: I2ed8a1b94640d6a3cc65011e83b88f8bd42ca074 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
This commit is contained in:
parent
c849f3a7ef
commit
af9f8ffb47
|
@ -110,8 +110,9 @@ QSGTexture *Manager::create(const QImage &image, bool hasAlphaChannel)
|
|||
if (image.width() < m_atlas_size_limit && image.height() < m_atlas_size_limit) {
|
||||
if (!m_atlas)
|
||||
m_atlas = new Atlas(m_atlas_size);
|
||||
// t may be null for atlas allocation failure
|
||||
t = m_atlas->create(image);
|
||||
if (!hasAlphaChannel && t->hasAlphaChannel())
|
||||
if (t && !hasAlphaChannel && t->hasAlphaChannel())
|
||||
t->setHasAlphaChannel(false);
|
||||
}
|
||||
return t;
|
||||
|
|
Loading…
Reference in New Issue