- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当然,我在我的新 iPad (4g) 上尝试的第一件事就是旧的 GLGravity例子。我所做的唯一修改是将目标设备设置为“iPad”。
但是,当在设备上运行时,UIView 的边界设置为 768,1024,createFramebuffer 中的“backingWidth、backingHeight”也是如此。
目 View 像确认它仍在以 768x1024 分辨率呈现。我错过了什么 - 如何让它以原始分辨率呈现?
最佳答案
要启用对 Retina 图形的条件支持,就像我们对 iPhone 4 所做的那样,您需要在 OpenGL ES 托管 View (在本例中为 GLGravityView)的设置中某处有这样一行代码:
self.contentScaleFactor = [[UIScreen mainScreen] scale];
这可确保该 View 中的内容(例如 Quartz drawing)使用 iPhone 和 iPad 上当前 Retina 显示器中使用的每点 2 像素缩放比例呈现。
您的 View 边界将保持 768 x 1024 点大小,但渲染缓冲区将在 glGetRenderbufferParameterivOES()
查询时返回 1536 x 2048 作为其像素尺寸。这将允许您在 OpenGL ES 上下文中呈现 Retina 级别的图形。
请注意,Apple 的一些示例代码(如 GLGravity)uses the view bounds to size other display elements ,所以它们在场景中会显得太小。您可能需要将基于 View 边界(以点为单位)的计算替换为背景宽度(以像素为单位),以确保将 Retina 图形的 2.0 缩放比例考虑在内。
关于ios - 如何为 iPad Retina 示例 (GLGravity) 创建 1536x2048 帧缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763368/
我是一名优秀的程序员,十分优秀!