diff --git a/Cargo.lock b/Cargo.lock index 941b526..47a8c56 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -150,7 +150,7 @@ dependencies = [ [[package]] name = "app-surface" -version = "0.4.2" +version = "0.4.4" dependencies = [ "android_logger", "ash", diff --git a/app-surface/Cargo.toml b/app-surface/Cargo.toml index 8e4a61e..68ac84e 100644 --- a/app-surface/Cargo.toml +++ b/app-surface/Cargo.toml @@ -3,7 +3,7 @@ name = "app-surface" authors = ["jinleili"] description = "Integrate wgpu into your existing iOS and Android apps." edition = "2021" -version = "0.4.2" +version = "0.4.4" rust-version = "1.76" repository = "https://github.com/jinleili/wgpu-in-app" keywords = ["android", "SurfaceView", "ios", "macos", "wgpu"] diff --git a/app-surface/src/ios.rs b/app-surface/src/ios.rs index e7b2485..21b4522 100644 --- a/app-surface/src/ios.rs +++ b/app-surface/src/ios.rs @@ -97,6 +97,19 @@ impl AppSurface { } fn get_scale_factor(obj: *mut Object) -> f32 { - let s: CGFloat = unsafe { msg_send![obj, contentScaleFactor] }; - s as f32 + let mut scale_factor: CGFloat = 1.0; + #[cfg(target_os = "macos")] + unsafe { + let window: *mut Object = msg_send![obj, window]; + if !window.is_null() { + scale_factor = msg_send![window, backingScaleFactor]; + } + }; + + #[cfg(target_os = "ios")] + { + scale_factor = unsafe { msg_send![obj, contentScaleFactor] }; + } + + scale_factor as f32 }