• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - GLSurfaceView 渲染器,如何强制重新创建表面?

[复制链接]
菜鸟教程小白 发表于 2022-12-9 07:30:43 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 GLSurfaceView 渲染器,方法 onSurfaceCreated 只调用一次(基本上只在创建或重新创建 Activity 时)。

我需要测试在正常 Activity 生命周期中丢失 EGL 上下文并重新创建表面时的行为,但是无论我做什么,我都无法将应用置于这种情况。

我可以做些什么来模拟再次调用 onSurfaceCreated 的情况?如何让我的应用失去 EGL 上下文?

编辑:几天后,我注意到问题消失了,应用程序开始正常运行,如规范中所述:

public abstract void onSurfaceCreated (GL10 gl, EGLConfig config)
Called when the surface is created or recreated.
Called when the rendering thread starts and whenever the EGL context is lost.
The EGL context will typically be lost when the Android device awakes 
after going to sleep

在此之前,每次设备进入休眠状态时, Activity 都会被破坏并在唤醒时重新创建,这使我无法测试 OnSurfaceCreated 中的代码是否运行良好。

现在它在 sleep /唤醒时表现得更好 - 它通常不会破坏 Activity ,只是调用 OnSurfaceCreated 方法,这是我的目标。



Best Answer-推荐答案


我不确定,但我唯一能想到的就是使用相同的 GLSurfaceView.RendererGLSUrfaceView 切换为新的。 这应该会创建一个新的 EGL 上下文并再次调用 onSurfaceCreated()

关于android - GLSurfaceView 渲染器,如何强制重新创建表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046918/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap