gpt4 book ai didi

Android eglSwapBuffers - 手动控制? (安卓)

转载 作者:搜寻专家 更新时间:2023-11-01 08:59:23 25 4
gpt4 key购买 nike

我的理解是,当使用 GLSurfaceview 时,eglSwapBuffers 会在每一帧自动调用,所以:

onDrawFrame()
{

//Your drawing code here

//system swaps buffers automatically

}

有什么办法可以禁用此行为并在每个 onDrawFrame() 结束时自己/手动调用 eglSwapBuffers 或在我需要时抑制它(即,让它在我想要的时候运行但停止它在我需要时停止运行)。

如果可能的话,如果有人可以解释在同时使用 RENDERMODE_CONTINUOUSLY 和 RENDERMODE_WHEN_DIRTY 时如何(如果可能)实现这一点,我将不胜感激

当然,我的理解可能有误,如有错误请指正:-)

最佳答案

GLSurfaceView 不是特别灵活。如果 onDrawFrame 返回一个“do draw” bool 值就好了;那么您在安排游戏循环方面会有更多的灵 active 。但是,GLSurfaceView 不能那样工作,所以您的选择是有限的。

如果你想避免渲染每一帧,你有两种基本方法:

(1) 使用RENDERMODE_WHEN_DIRTY,并且只有当您知道您想要在onDrawFrame 完成时交换缓冲区时才请求渲染。如果您的游戏逻辑不在渲染线程上运行并且您不尝试以 60fps 运行,这几乎就是您想要做的事情。

(2) 下载 GLSurfaceView 的源代码,将其合并到您的应用中,然后修改它以执行您想要的操作。

关于Android eglSwapBuffers - 手动控制? (安卓),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16399961/

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