gpt4 book ai didi

android - Opengl-es 手动调用 onDrawFrame

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

我正在创建一个游戏循环,我需要能够调用 onDrawFrame(从渲染器内部手动调用)以便在我发现我落后于进程时“跳过帧”。

目前我有一个调用的 GLSurfaceView 类

setRenderer(glSurfaceRenderer);

通过这个设置,我了解到 onDrawFrame 每次都被调用。

我试着将上面的调用放在一个方法中,这样我就可以从我的游戏循环中调用它,但是在游戏循环的第二次运行中我崩溃了,并显示了消息

setRenderer has already been called for this instance

有没有办法每帧手动调用渲染器

只会调用

onDrawFrame

方法正常工作。或者在使用 openGL 时以这种方式控制渲染器不是好的做法

最佳答案

我看不出在游戏循环中调用 setRenderer() 或手动调用 onDrawFrame() 如何解决任何问题。您应该重构您的渲染调用以考虑绘制所花费的时间,换句话说就是基于时间的动画。在任何情况下,在任何绘图调用之前手动调用 onDrawFrame() 而不调用 eglMakeCurrent() 将不起作用,因为您同时拥有渲染器和游戏循环线程绘图。

编辑:由于您使用的是 GLSurfaceView,如果您觉得 RENDERMODE_CONTINUOUSLY 对您来说太慢,您可以从游戏循环中调用 requestRender() 来触发渲染。

关于android - Opengl-es 手动调用 onDrawFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421976/

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