diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2024-03-18 19:35:52 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2024-04-18 05:00:57 +0200 |
commit | d5bf42f75b0ae35b7f02bb9211787ae1d44a98ba (patch) | |
tree | 3aa389137752dbe2bbaa7446e4ef0e2e1b8c55a5 /src/gui/platform/darwin | |
parent | bf2ed624091d0239bce91a84df59b7afc843298a (diff) |
Add preliminary support for Qt for visionOS
Qt already runs on Vision Pro as "Designed for iPad", using Qt
for iOS. This change enables building Qt for visionOS directly,
which opens the door to visionOS specific APIs and use-cases
such as volumes and immersive spaces.
The platform removes some APIs we depend on, notably UIScreen,
so some code paths have been disabled or mocked to get something
up and running.
As our current window management approach on UIKit platforms
depends on UIWindow and UIScreen there is currently no way to
bring up QWindows. This will improve once we refactor our
window management to use window scenes.
To configure for visionOS, pass -platform macx-visionos-clang,
and optionally add -sdk xrsimulator to build for the simulator.
Change-Id: I4eda55fc3fd06e12d30a188928487cf68940ee07
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Diffstat (limited to 'src/gui/platform/darwin')
-rw-r--r-- | src/gui/platform/darwin/qappleiconengine.mm | 8 | ||||
-rw-r--r-- | src/gui/platform/darwin/qappleiconengine_p.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/gui/platform/darwin/qappleiconengine.mm b/src/gui/platform/darwin/qappleiconengine.mm index 8300222dea..7e0ed184dc 100644 --- a/src/gui/platform/darwin/qappleiconengine.mm +++ b/src/gui/platform/darwin/qappleiconengine.mm @@ -5,7 +5,7 @@ #if defined(Q_OS_MACOS) # include <AppKit/AppKit.h> -#elif defined (Q_OS_IOS) +#elif defined(QT_PLATFORM_UIKIT) # include <UIKit/UIKit.h> #endif @@ -280,7 +280,7 @@ auto *loadImage(const QString &iconName) NSString *systemIconName = it != std::end(iconMap) ? it->second : iconName.toNSString(); #if defined(Q_OS_MACOS) return [NSImage imageWithSystemSymbolName:systemIconName accessibilityDescription:nil]; -#elif defined(Q_OS_IOS) +#elif defined(QT_PLATFORM_UIKIT) return [UIImage systemImageNamed:systemIconName]; #endif } @@ -374,7 +374,7 @@ auto *configuredImage(const NSImage *image, const QColor &color) return [image imageWithSymbolConfiguration:config]; } -#elif defined(Q_OS_IOS) +#elif defined(QT_PLATFORM_UIKIT) auto *configuredImage(const UIImage *image, const QColor &color) { auto *config = [UIImageSymbolConfiguration configurationWithPointSize:48 @@ -453,7 +453,7 @@ void QAppleIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode m [image drawInRect:iconRect fromRect:sourceRect operation:NSCompositingOperationSourceOver fraction:1.0 respectFlipped:YES hints:nil]; [NSGraphicsContext restoreGraphicsState]; -#elif defined(Q_OS_IOS) +#elif defined(QT_PLATFORM_UIKIT) UIGraphicsPushContext(ctx); const CGRect cgrect = CGRectMake(rect.x(), rect.y(), rect.width(), rect.height()); [image drawInRect:cgrect]; diff --git a/src/gui/platform/darwin/qappleiconengine_p.h b/src/gui/platform/darwin/qappleiconengine_p.h index 8f48e8e6fc..2a4ff7fc64 100644 --- a/src/gui/platform/darwin/qappleiconengine_p.h +++ b/src/gui/platform/darwin/qappleiconengine_p.h @@ -51,7 +51,7 @@ private: const QString m_iconName; #if defined(Q_OS_MACOS) const NSImage *m_image; -#elif defined(Q_OS_IOS) +#elif defined(QT_PLATFORM_UIKIT) const UIImage *m_image; #endif mutable QPixmap m_pixmap; |