Skip to content

Commit

Permalink
feat: add visionOS support (#2190)
Browse files Browse the repository at this point in the history
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)
  • Loading branch information
okwasniewski committed Dec 6, 2023
1 parent 2806bb2 commit 068820b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
4 changes: 2 additions & 2 deletions RNSVG.podspec
Expand Up @@ -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|
Expand All @@ -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
Expand Down
11 changes: 9 additions & 2 deletions apple/RNSVGRenderable.mm
Expand Up @@ -245,10 +245,17 @@ - (void)renderTo:(CGContextRef)context rect:(CGRect)rect
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;
Expand Down

0 comments on commit 068820b

Please sign in to comment.