From 8e5806b6807df0d39f3bbd2a1c0ed590426e1aa0 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 12 Dec 2022 17:48:27 +0100 Subject: rhi: metal: Use scale from the layer we already have ...so that we do not need to call devicePixelRatio() again, which means one less UI Thread Checker warning in Xcode. Pick-to: 6.5 Task-number: QTBUG-97518 Change-Id: I01d54ea113788cd0b141e124a47940f5cd3efabb Reviewed-by: Laszlo Agocs Reviewed-by: Qt CI Bot --- src/gui/rhi/qrhimetal.mm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/gui/rhi/qrhimetal.mm') diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm index 445afa111e..7b7856ec54 100644 --- a/src/gui/rhi/qrhimetal.mm +++ b/src/gui/rhi/qrhimetal.mm @@ -5633,8 +5633,9 @@ bool QMetalSwapChain::createOrResize() int width = (int)d->layer.bounds.size.width; int height = (int)d->layer.bounds.size.height; CGSize layerSize = CGSizeMake(width, height); - layerSize.width *= d->layer.contentsScale; - layerSize.height *= d->layer.contentsScale; + const float scaleFactor = d->layer.contentsScale; + layerSize.width *= scaleFactor; + layerSize.height *= scaleFactor; d->layer.drawableSize = layerSize; m_currentPixelSize = QSizeF::fromCGSize(layerSize).toSize(); @@ -5673,12 +5674,13 @@ bool QMetalSwapChain::createOrResize() rtWrapper.setRenderPassDescriptor(m_renderPassDesc); // for the public getter in QRhiRenderTarget rtWrapper.d->pixelSize = pixelSize; - rtWrapper.d->dpr = float(window->devicePixelRatio()); + rtWrapper.d->dpr = scaleFactor; rtWrapper.d->sampleCount = samples; rtWrapper.d->colorAttCount = 1; rtWrapper.d->dsAttCount = ds ? 1 : 0; - qCDebug(QRHI_LOG_INFO, "got CAMetalLayer, size %dx%d", pixelSize.width(), pixelSize.height()); + qCDebug(QRHI_LOG_INFO, "got CAMetalLayer, pixel size %dx%d (scale %.2f)", + pixelSize.width(), pixelSize.height(), scaleFactor); if (samples > 1) { MTLTextureDescriptor *desc = [[MTLTextureDescriptor alloc] init]; -- cgit v1.2.3