gpt4 book ai didi

iPhone 和 iPad : Is an OpenGL ES Universal App a pain to write for multiple devices?

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:36 26 4
gpt4 key购买 nike

我有编写 cocoa touch 应用程序作为通用应用程序(适用于 ipad、iphone)的经验,这并不难。我只需要为每个设备使用不同的 .xib,但至少它是相同的二进制文件。

是否也可以有一个通用的 opengl es 应用程序?鉴于我必须为每个设备(iphone 3gs、iphone 4、ipad)设置不同的分辨率,这很难吗?所以很可能我的代码对于每个设备都会不同???

最佳答案

虽然难度是一种主观衡量标准,但我认为,与基于更多标准用户界面元素的应用程序相比,为各种设备开发以 OpenGL-ES 为中心的应用程序是一个更简单的过程。标准 iPhone 应用程序的 iPad 版本可能需要完全不同的界面布局,如果您要进行全屏 OpenGL ES 绘图,则只需将渲染层缩放到适当的屏幕尺寸即可。

例如,看看我的 Molecules 的代码应用程序(它在 BSD 许可证下可用)。它是一个通用的 iPhone/iPad 应用程序,在两个界面之间共享大量代码。事实上,几乎没有任何 OpenGL ES 部分会根据平台发生变化。

当涉及到像 Retina 显示器这样的东西时,您只需要在 CAEAGLLayer 托管 View 的初始化中添加一点代码来考虑新的比例因子:

if ([self respondsToSelector:@selector(setContentScaleFactor:)])
{
self.contentScaleFactor = [[UIScreen mainScreen] scale];
}

无需更改任何其他内容,您的 OpenGL ES 内容现在将以更高分辨率呈现。

可能您会遇到的最大问题是,通过使用更高分辨率的显示器,您可能会发现自己的填充率受到限制,而这在以前的旧版 iPhone 上是没有的。如果您看到渲染器利用率在 OpenGL ES 仪器中接近 100%,这就是正在发生的事情。对于 Retina 显示器,您可能不希望以完整的 2X 比例因子进行渲染,而是以更低的比例进行渲染。

关于iPhone 和 iPad : Is an OpenGL ES Universal App a pain to write for multiple devices?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4169967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com