iphone - 视网膜显示屏图像质量问题

标签 iphone opengl-es retina-display

我试图让我的 OPENGL ES 应用程序支持视网膜显示。我添加了带有 @2x 扩展名的图像,并将内容比例因子设置为 2。高分辨率图像正确地进入屏幕,但质量损失很大。边缘模糊,并且没有我添加到资源文件夹中的图像质量。

我该如何解决这个问题?

最佳答案

我的应用程序基于默认框架,在基于 Retina 的设备上运行时遇到此问题。具体来说,我的帧缓冲区是以 320x480 而不是我想要的 640x960 创建的。抱歉 James,但这不是自动的,因为问题出在 renderBufferStorage:fromDrawable: 创建的帧缓冲区上。 (它代表我们调用 glRenderbufferStorage,但默认指定布局像素而不是 native 设备像素的宽度和高度)。

我在 EAGLView.minitWithCoder: 中设置 eaglLayer.drawableProperties 的行下面添加了以下代码:

UIScreen *mainScreen = [UIScreen mainScreen];
if ([mainScreen respondsToSelector:@selector(scale)])
{
    // iOS 4.0 and up (further to simeon's comment)
    const CGFloat scale = mainScreen.scale;
    self.contentScaleFactor = scale;
    eaglLayer.contentsScale = scale;
}

感谢 David Amador 的 post为我指明了正确的方向。最近,感谢 simeon 的有用评论。

关于iphone - 视网膜显示屏图像质量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884176/

相关文章:

ios - 在 Xcode 中验证资源并为 iOS 应用程序生成 getter 代码

objective-c - 我有一个循环引用。如何在 Objective-C 中创建弱引用?

iphone - 第五行的 UITableViewCell : How do I update textLabel. 文本?

iOS webview 缩放以匹配视网膜显示

iphone - 如何防止iPhone应用程序在非视网膜设备上运行?

ios - 将 UIFont 转换为 CTFontRef 并在 Retina 显示屏上添加斜体

iphone - NSFetchedResultsController 错误 : 'NSInternalInconsistencyException' , 原因: 'no object at index 1 in section at index 0'

iPhone OpenGL - 如何渐变淡出纹理?

iphone - 使用 OpenGL 在 iPad 上从整数数据集中绘制图像数据

ios - glTexImage2D 读取超出缓冲区范围(iOS)