feat: add visionOS support (#2190)

This PR adds support for visionOS. I've migrated the `UIScreen` API to take `displayScale` from `currentTraitCollection` - same as I did in Core (https://github.com/facebook/react-native/pull/41214/files)
This commit is contained in:
Oskar Kwaśniewski
2023-12-06 14:37:54 +01:00
committed by GitHub
parent 2806bb2bee
commit 068820b3fa
2 changed files with 11 additions and 4 deletions

View File

@@ -19,7 +19,7 @@ Pod::Spec.new do |s|
s.requires_arc = true
if fabric_enabled
s.platforms = { :osx => "10.14", ios: '12.4', tvos: '11.0' }
s.platforms = { :osx => "10.14", :ios => "12.4", :tvos => "11.0", :visionos => "1.0" }
install_modules_dependencies(s)
s.subspec "common" do |ss|
@@ -28,7 +28,7 @@ Pod::Spec.new do |s|
ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/common/cpp\"" }
end
else
s.platforms = { :osx => "10.14", :ios => "10.0", :tvos => "9.2" }
s.platforms = { :osx => "10.14", :ios => "10.0", :tvos => "9.2", :visionos => "1.0" }
s.exclude_files = 'apple/Utils/RNSVGFabricConversions.h'
s.dependency 'React-Core'
end

View File

@@ -245,10 +245,17 @@ UInt32 saturate(CGFloat value)
CGSize boundsSize = bounds.size;
CGFloat height = boundsSize.height;
CGFloat width = boundsSize.width;
CGFloat scale = 0.0;
#if TARGET_OS_OSX
CGFloat scale = [[NSScreen mainScreen] backingScaleFactor];
scale = [[NSScreen mainScreen] backingScaleFactor];
#else
CGFloat scale = [[UIScreen mainScreen] scale];
if (@available(iOS 13.0, *)) {
scale = [UITraitCollection currentTraitCollection].displayScale;
} else {
#if !TARGET_OS_VISION
scale = [[UIScreen mainScreen] scale];
#endif
}
#endif // TARGET_OS_OSX
NSUInteger iheight = (NSUInteger)height;
NSUInteger iwidth = (NSUInteger)width;