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

Opengl es 强制视网膜iPad使用非视网膜图像,opengl-es,textures,retina-display,retina,ipad-2,Opengl Es,Textures,Retina Display,Retina,Ipad 2,我正在使用OpenGL创建一个应用程序 我有一台视网膜iPad,我使用的纹理可以存储@2x图像。当我的应用程序启动时,OpenGL帧缓冲区被创建,查询它的大小返回到1536x2048-到目前为止还不错 我也有一个非视网膜iPad显示屏的纹理(768x1024),但我没有非视网膜iPad。我想强制我的retina iPad使用非retina图形(即,它使用scale==1.0)。所以我想创建一个768x1024 OpenGL帧缓冲区。问题是它总是创建一个1536x2048帧缓冲区,并且比例总是2.

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

我有一台视网膜iPad,我使用的纹理可以存储@2x图像。当我的应用程序启动时,OpenGL帧缓冲区被创建,查询它的大小返回到1536x2048-到目前为止还不错

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

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

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


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

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

另一种方法是更改视口和/或投影矩阵,以将逻辑分辨率缩放到1024x768。我有一个相反的问题,我需要将非视网膜图像缩放到视网膜背景比例。我在堆栈中使用缩放矩阵来修复此问题

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