我正在使用OpenGL创建应用...
我有一个视网膜iPad,我使用的是存储@ 2x图像的纹理。当我的应用程序启动时,会创建OpenGL帧缓冲区并查询它的大小为1536x2048 - 到目前为止一直很好。
我还有非视网膜iPad显示屏(768x1024)的纹理,但我没有非视网膜iPad。我想强迫我的视网膜iPad使用非视网膜图形(即,使用scale == 1.0)。所以我想创建一个768x1024的OpenGL帧缓冲区。问题是它始终创建一个1536x2048帧缓冲区,并且scale始终为2.0。
有没有办法强制它使用1.0的比例,并创建一个更小的帧缓冲?该应用程序的基本iOS版本是8.0,但由于iOS8仍可在iPad2上运行,我也想测试该分辨率。
我尝试过使用UILaunchImages,但这似乎不起作用?在过去,当为非视网膜屏幕编写应用程序时,视网膜设备用于缩放较低分辨率以适应更高分辨率的屏幕,这就是我想要的 - 至少我可以测试。 ...
UILaunchImages是尝试让iOS认为只有低分辨率图形可用的正确方法吗?
答案 0 :(得分:0)
NSHighResolutionCapable
密钥,您可以尝试在plist中设置false。因此,请尝试从构建中删除所有@ 2x资源,并将该密钥设置为false。
另一种方法是更改glViewPort和/或Projection矩阵,将逻辑分辨率调整为1024x768。我有相反的问题,我需要将非视网膜图像缩放到视网膜背衬比例。我在我的堆栈中使用Scaling矩阵来解决这个问题。
问我如何混合和匹配视网膜和非视网膜图像!