首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在安卓系统上管理OpenGL资源

在安卓系统上管理OpenGL资源
EN

Stack Overflow用户
提问于 2011-07-15 17:51:07
回答 1查看 478关注 0票数 1

我有一个基本的Activity类,它创建了一个渲染器,并在其SetRenderer方法中传递了一个从GLSurfaceView派生的类。现在我意识到,当手机或平板电脑进入睡眠状态时(到目前为止,DirectX 9也是如此),OpenGL资源可能会丢失,当手机从睡眠状态返回时,必须重新创建这些资源。

我认为我的所有其他类、活动等都完全恢复为唤醒时的状态,这样想对吗?也就是说,我只需要在onSurfaceCreated方法中重新绑定纹理、着色器、GL状态等内容。我不需要重新创建视图或渲染器对象。

onSurfaceCreated方法是在电话唤醒时调用,还是只在启动时调用一次?我在onSurfaceCreated中收到的GL对象是否已被销毁(即在休眠/唤醒周期中存储和使用它是否安全)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-15 18:03:52

我是否正确地认为我的所有其他类、活动等都完全恢复为唤醒时的状态?

这取决于活动是否在这些“唤醒”之间被扼杀。如果在这两次暂停之间没有终止活动,则所有类都会恢复为离开活动时的状态。

我只需要在onSurfaceCreated方法中重新绑定纹理,着色器,GL状态等等。我不需要重新创建视图或渲染器对象。

对,是这样。

onSurfaceCreated方法是在手机唤醒时调用,还是只在启动时调用一次?

每当创建一个新的表面时,它都会被调用,这意味着每次你的应用程序从后台进入前台。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6705297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档