gpt4 book ai didi

android - Android 在 OpenGL ES 下闪烁黑屏

转载 作者:行者123 更新时间:2023-11-29 01:51:02 29 4
gpt4 key购买 nike

在某些android测试设备中,在opengl 2.0 ES中渲染时,屏幕闪烁。在调用“eglSwapBuffers”时,我能够将问题跟踪到 GLSurfaceView 类,因此每次迭代都会产生闪烁,屏幕变黑,下一个是我绘制的图像。因此,eglSwapBuffers 没有在每次产生这种闪烁行为的调用中保留后台缓冲区。

有没有办法保留后台缓冲区?我发现也许我可以使用 EGL_SWAP_BEHAVIOR_PRESERVED_BIT 标志,但我不知道如何将它放入 android 中,也不知道如何在 Gingerbread 等旧 API 中使用它。

谢谢

最佳答案

您应该不需要修改 GLSurfaceView。您的问题更有可能是由系统的驱动程序或配置引起的。我会尝试使用不同图形驱动程序的不同测试设备。当您在 AVD 上运行它时会发生什么?

可能是您的测试设备没有为底层 linux 帧缓冲设备提供足够的内存来获得正常的三重缓冲。在这种情况下,大多数系统将退回到单缓冲。我建议您检查这些 fb 设备参数。对于您正在使用的显示模式,virtual_size 应该足够大以容纳 2 或 3 个缓冲区:

cat /sys/class/graphics/fb0/mode
U:1024x768p-60
cat /sys/class/graphics/fb0/virtual_size
800,1440

关于android - Android 在 OpenGL ES 下闪烁黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18042893/

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