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

概述我有一个GLSurfaceView渲染器和onSurfaceCreated方法只被调用一次(基本上只在创建或重新创建活动时).我需要测试当EGL上下文丢失并且在正常活动生命周期中重新创建表面时的行为,但是无论我做什么,我都无法将应用程序放入这种情况.我可以做些什么来模拟onSurfaceCreated再次调用的

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

我需要测试当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

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

现在它在睡眠/清醒时表现得更好 – 它通常不会破坏活动,只是调用OnSurfaceCreated方法,这是我的目标.

解决方法:

根据文档,在创建或重新创建曲面时调用GLSurfaceView.Renderer.onSurfaceCreated.

在渲染线程启动时以及每当EGL上下文丢失时调用.当AndroID设备在进入睡眠状态后唤醒时,EGL上下文通常会丢失.

您是否尝试过锁定设备的屏幕并将其解锁?

总结

以上是内存溢出为你收集整理的android – GLSurfaceView渲染器,如何强制表面重新创建?全部内容,希望文章能够帮你解决android – GLSurfaceView渲染器,如何强制表面重新创建?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1106567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存