我正在使用C++为 macOS 构建 SDL2 应用程序。我需要对应用程序(例如Web浏览器)进行一些“基本”滚动。我通过使用 SDL_MouseWheel事件实现了这一点,这使我可以进行功能全面的“类似于Windows”的滚动。我正在使用Macbook Pro,并且想引入触控板的功能。

简而言之,我要求一种更好的滚动算法( Macbook的触控板滚动,惯性滚动)

我知道 SDL_MultiGesture事件,但是我真的不知道如何将它们放在一起以达到所需的结果。

最佳答案

我遇到了同样的问题,事实证明,通过在用户默认系统中关闭AppleMomentumScrollSupported默认值来实现SDL opts out of momentum scroll events

您可以使用下面的Objective-C++在应用程序中将其重新打开,然后SDL_MouseWheel事件将变得平滑。

NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:
                            [NSNumber numberWithBool:YES], @"AppleMomentumScrollSupported",
                            nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
[appDefaults release];

关于c++ - 使用SDL2平滑(惯性)滚动吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43335291/

10-09 18:08
查看更多