iphone - MonoTouch OpenGL 应用程序移动到后台时会丢失纹理数据

标签 iphone opengl-es xamarin.ios

我有一个包含大量纹理的 MonoTouch OpenGL 应用程序。当用户点击 iPhone 按钮将应用程序移至后台时,我所有的纹理数据似乎都消失了。我只看到纯色填充了我用最初加载的纹理绘制的三角形。

从后台状态恢复后加载的任何纹理都会正确显示。这只是在应用程序移动到背景之前加载的纹理显示为实体。

The docs声明当应用程序移动到后台时,“您的应用程序应将纹理、模型和其他资源保留在内存中”。我没有对我的纹理做任何事情,但有些东西正在迫使它们消失。

有什么想法吗?

最佳答案

我的解决方案是不使用 iPhoneOSGameView。这解决了当我的应用程序进入后台时与纹理消失相关的所有问题。自己管理帧缓冲区和更新计时器的代码非常简单,我发现额外的清晰度(以及从后台恢复的工作)值得付出努力。

不使用 iPhoneOSGameView 也让我对 application's timer actually running at full speed when the app is active 感觉更好:

关于iphone - MonoTouch OpenGL 应用程序移动到后台时会丢失纹理数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740980/

相关文章:

c# - Xamarin studio IDE 连接联网 MAC?

iphone - 本地化 Assets 目录

opengl - 在渲染期间设置glTexParameteri()是否不好?

iphone - 为什么我在启动 iPhone OS 应用程序时得到 "security policy error"?

Android 和 OpenGL : can't call glGetString(.。)

javascript - 用鼠标旋转地球仪

ios - 重叠的 Fade UICollectionViewCells 会出错

ios - 如何使用 Xamarin 在 iOS 的 NavigationController 中更改 1 个字符的标题文本颜色

iphone - 如何在按住 MenuItem 按钮时重复操作? (cocos2d)

c# - 从我的电脑发送信息到我的手机