Fix texture-based native child widget stretching
The new rhi-based approach to compositing has a difference in transform calculation which becomes relevant with native child widgets (so when the flush offset is > 0). This is incorrect, so restore how 6.3 and earlier did this calculation. Pick-to: 6.4 Fixes: QTBUG-107814 Change-Id: I98fe866d6c857343f25f39450ee60fd307bcdb63 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
This commit is contained in:
parent
65279d6e9d
commit
d59b2fde5e
@ -508,8 +508,7 @@ QPlatformBackingStore::FlushResult QBackingStoreDefaultCompositor::flush(QPlatfo
|
|||||||
if (m_texture) {
|
if (m_texture) {
|
||||||
// The backingstore is for the entire tlw.
|
// The backingstore is for the entire tlw.
|
||||||
// In case of native children offset tells the position relative to the tlw.
|
// In case of native children offset tells the position relative to the tlw.
|
||||||
const QRect textureRect = QRect(QPoint(), m_texture->pixelSize());
|
const QRect srcRect = toBottomLeftRect(deviceWindowRect.translated(deviceWindowOffset), m_texture->pixelSize().height());
|
||||||
const QRect srcRect = toBottomLeftRect(textureRect.translated(deviceWindowOffset), m_texture->pixelSize().height());
|
|
||||||
const QMatrix3x3 source = sourceTransform(srcRect, m_texture->pixelSize(), origin);
|
const QMatrix3x3 source = sourceTransform(srcRect, m_texture->pixelSize(), origin);
|
||||||
QMatrix4x4 target; // identity
|
QMatrix4x4 target; // identity
|
||||||
if (invertTargetY)
|
if (invertTargetY)
|
||||||
|
Loading…
Reference in New Issue
Block a user