gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:09 27 4
gpt4 key购买 nike

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

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

我可以做些什么来模拟再次调用 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 方法,这正是我的目标。

最佳答案

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

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com