强制视网膜 iPad 使用非视网膜图像



我正在使用OpenGL创建一个应用程序...

我有一台视网膜iPad,我正在使用存储@2x图像的纹理。 当我的应用程序启动时,将创建 OpenGL 帧缓冲,并查询它的大小返回为 1536x2048 - 到目前为止一切顺利。

我也有非视网膜iPad显示屏(768x1024)的纹理,但我没有非视网膜iPad。 我想强制我的视网膜iPad使用非视网膜图形(即,让它使用比例== 1.0)。 所以我希望它创建一个768x1024 OpenGL帧缓冲。 问题是它总是创建一个 1536x2048 帧缓冲区,并且比例始终为 2.0。

有没有办法强制它使用 1.0 的比例,并创建一个更小的帧缓冲? 该应用程序的基本iOS版本是8.0,但由于iOS8.0仍然可以在iPad2上运行,我也想测试该分辨率。

我试过使用UILaunchImages,但这似乎不起作用? 过去,当一个应用程序是为非视网膜屏幕编写的时,一个视网膜设备用来缩放较低的分辨率以适应更高分辨率的屏幕,这就是我想要的 - 至少我可以测试......

UILaunchImages是尝试让iOS认为只有低分辨率图形可用的正确方法吗?

IIRC,只需使用@2x资源(启动、图标等)来向 iOS 发出信号,表明您正在运行支持 Retina 的应用程序。 我认为从那时起,Apple已经添加了一个NSHighResolutionCapable键,您可以尝试在plist中设置false。 因此,请尝试从构建中删除所有@2x资源,并将该键设置为 false。

另一种方法是更改 glViewPort 和/或投影矩阵,将逻辑分辨率缩放到 1024x768。 我有相反的问题,因为我需要将非视网膜图像放大到视网膜支持比例。 我在堆栈中使用缩放矩阵来解决此问题。

问我如何混合和匹配视网膜和非视网膜图像!

相关内容

  • 没有找到相关文章

最新更新