diff options
-rw-r--r-- | src/gui/rhi/qrhimetal.mm | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm index 7ef200649f..ac372e1086 100644 --- a/src/gui/rhi/qrhimetal.mm +++ b/src/gui/rhi/qrhimetal.mm @@ -6105,9 +6105,12 @@ QSize QMetalSwapChain::surfacePixelSize() bool QMetalSwapChain::isFormatSupported(Format f) { -#ifdef Q_OS_MACOS - return f == SDR || f == HDRExtendedSrgbLinear; -#endif + if (f == HDRExtendedSrgbLinear) { + if (@available(macOS 10.11, iOS 16.0, *)) + return true; + else + return false; + } return f == SDR; } @@ -6189,13 +6192,13 @@ bool QMetalSwapChain::createOrResize() chooseFormats(); if (d->colorFormat != d->layer.pixelFormat) d->layer.pixelFormat = d->colorFormat; -#ifdef Q_OS_MACOS - // Can't enable this on iOS until wantsExtendedDynamicRangeContent is available + if (m_format == HDRExtendedSrgbLinear) { - d->layer.colorspace = CGColorSpaceCreateWithName(kCGColorSpaceExtendedLinearSRGB); - d->layer.wantsExtendedDynamicRangeContent = YES; + if (@available(macOS 10.11, iOS 16.0, *)) { + d->layer.colorspace = CGColorSpaceCreateWithName(kCGColorSpaceExtendedLinearSRGB); + d->layer.wantsExtendedDynamicRangeContent = YES; + } } -#endif if (m_flags.testFlag(UsedAsTransferSource)) d->layer.framebufferOnly = NO; |