
[英]Proper setup for universal OpenGL ES iPhone/iPad app in XCode 4
[英]iPhone & iPad: Is an OpenGL ES Universal App a pain to write for multiple devices?
我曾经有过将可可触控应用程序编写为通用应用程序(适用于ipad,iphone)的经验,并不是太难。 我只需要为每个设备使用不同的.xib,但至少它是相同的二进制文件。
是否有可能拥有通用的opengl es应用程序? 难道我需要为每个设备(iphone 3gs,iphone 4,ipad)分辨率不同吗? 所以很可能我的代码对每个设备都不同???
虽然难度是一种主观衡量标准,但我认为,与基于更标准用户界面元素的设备相比,为各种设备开发以OpenGL-ES为中心的应用程序是一个更简单的过程。 iPad版标准iPhone应用程序可能需要完全不同的界面布局,如果您正在进行全屏OpenGL ES绘图,您只需要将渲染层缩放到适当的屏幕尺寸即可。
例如,看看我的Molecules应用程序的代码(它可以在BSD许可下获得)。 它是一个通用的iPhone / iPad应用程序,在两个界面之间共享大量代码。 实际上,几乎没有OpenGL ES部分基于该平台而改变。
当涉及Retina显示器之类的东西时,您只需在CAEAGLLayer主机视图的初始化中添加一些代码来考虑新的比例因子:
if ([self respondsToSelector:@selector(setContentScaleFactor:)])
{
self.contentScaleFactor = [[UIScreen mainScreen] scale];
}
没有其他任何东西需要改变,你的OpenGL ES内容现在将以更高的分辨率呈现。
您可能遇到的最大问题可能是,通过使用更高分辨率的显示器,您可能会发现自己的填充速率受限,而不是之前的旧iPhone。 如果您看到OpenGL ES仪器中的渲染器利用率接近100%,那就是正在发生的事情。 对于Retina显示器,您可能希望不以完整的2X比例因子渲染,而是稍微降低一些。
我不能说你的细节,但我有一个通用的应用程序,它使用OpenGL-ES。 出于我的目的,glViewport()调用会处理事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.