diff options
Diffstat (limited to 'platform/ios/display_server_ios.mm')
| -rw-r--r-- | platform/ios/display_server_ios.mm | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/platform/ios/display_server_ios.mm b/platform/ios/display_server_ios.mm index 7d91274a0c..489894a135 100644 --- a/platform/ios/display_server_ios.mm +++ b/platform/ios/display_server_ios.mm @@ -103,7 +103,7 @@ DisplayServerIOS::DisplayServerIOS(const String &p_rendering_driver, WindowMode ERR_FAIL_MSG("Failed to create iOS OpenGLES rendering layer."); } - RasterizerGLES3::make_current(); + RasterizerGLES3::make_current(false); } #endif @@ -354,20 +354,32 @@ void DisplayServerIOS::tts_stop() { [tts stopSpeaking]; } -Rect2i DisplayServerIOS::get_display_safe_area() const { - if (@available(iOS 11, *)) { - UIEdgeInsets insets = UIEdgeInsetsZero; - UIView *view = AppDelegate.viewController.godotView; - if ([view respondsToSelector:@selector(safeAreaInsets)]) { - insets = [view safeAreaInsets]; - } - float scale = screen_get_scale(); - Size2i insets_position = Size2i(insets.left, insets.top) * scale; - Size2i insets_size = Size2i(insets.left + insets.right, insets.top + insets.bottom) * scale; - return Rect2i(screen_get_position() + insets_position, screen_get_size() - insets_size); +bool DisplayServerIOS::is_dark_mode_supported() const { + if (@available(iOS 13.0, *)) { + return true; + } else { + return false; + } +} + +bool DisplayServerIOS::is_dark_mode() const { + if (@available(iOS 13.0, *)) { + return [UITraitCollection currentTraitCollection].userInterfaceStyle == UIUserInterfaceStyleDark; } else { - return Rect2i(screen_get_position(), screen_get_size()); + return false; + } +} + +Rect2i DisplayServerIOS::get_display_safe_area() const { + UIEdgeInsets insets = UIEdgeInsetsZero; + UIView *view = AppDelegate.viewController.godotView; + if ([view respondsToSelector:@selector(safeAreaInsets)]) { + insets = [view safeAreaInsets]; } + float scale = screen_get_scale(); + Size2i insets_position = Size2i(insets.left, insets.top) * scale; + Size2i insets_size = Size2i(insets.left + insets.right, insets.top + insets.bottom) * scale; + return Rect2i(screen_get_position() + insets_position, screen_get_size() - insets_size); } int DisplayServerIOS::get_screen_count() const { |
