From 982b0250255624e6bdf8782dcd2e7cb512f0bd4d Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Tue, 20 Apr 2021 22:39:00 +0300 Subject: iOS: Fixed momentum scroll timing The scrolling stutters were being caused by timing and not slow text rendering. Now the momentum scroll is locked to display refresh rate. --- src/ios.m | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/ios.m') diff --git a/src/ios.m b/src/ios.m index 9aca5a19..58557ef5 100644 --- a/src/ios.m +++ b/src/ios.m @@ -33,11 +33,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ static iBool isSystemDarkMode_ = iFalse; static iBool isPhone_ = iFalse; -static UIViewController *viewController_(iWindow *window) { +static UIWindow *uiWindow_(iWindow *window) { SDL_SysWMinfo wm; SDL_VERSION(&wm.version); if (SDL_GetWindowWMInfo(window->win, &wm)) { - return wm.info.uikit.window.rootViewController; + return wm.info.uikit.window; + } + iAssert(false); + return NULL; +} + +static UIViewController *viewController_(iWindow *window) { + UIWindow *uiWin = uiWindow_(window); + if (uiWin) { + return uiWin.rootViewController; } iAssert(false); return NULL; @@ -248,6 +257,10 @@ iBool isPhone_iOS(void) { return isPhone_; } +int displayRefreshRate_iOS(void) { + return uiWindow_(get_Window()).screen.maximumFramesPerSecond; +} + void setupWindow_iOS(iWindow *window) { UIViewController *ctl = viewController_(window); isSystemDarkMode_ = isDarkMode_(window); -- cgit v1.2.3