10

我一直在玩 SDL 2.0,但搜索后我没有在网上找到任何关于如何支持视网膜 mac 的信息。使用以下代码创建窗口时。

gWindow = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED,
          SDL_WINDOWPOS_UNDEFINED, 500, 500, SDL_WINDOW_SHOWN);

它创建了一个实际大小为 1000 * 1000 的窗口。这并不是真正的问题,因为它是应用程序应该如何使用 hidpi 屏幕工作的。但是,在加载图像时,我似乎无法找到一种方法来加载 2 倍于视网膜屏幕的图像,而且我的图像总是看起来很模糊。

4

2 回答 2

18

当前版本的 SDL2 支持视网膜。

要创建视网膜窗口,请将标志传递SDL_WINDOW_ALLOW_HIGHDPISDL_CreateWindow().

在调整大小事件之后,您可以使用 API 调用检查实际的缓冲区分辨率SDL_GL_GetDrawableSize()

于 2014-10-20T20:51:53.220 回答
0

目前,SDL 不支持 Mac 上的视网膜显示器(或 Windows 机器上的高 DPI 显示器)。

讨论了如何最好地添加这些功能,以及 SDL 的错误跟踪器上的一些原型补丁,这里: https ://bugzilla.libsdl.org/show_bug.cgi?id=1934

大概我们会在 SDL2 的未来版本中看到官方的视网膜支持。或者,如果您愿意编译自己的 SDL 库,这些补丁对我有用。

于 2013-09-08T03:08:28.487 回答