在Android上执行长cpu进程时渲染opengl

时间:2012-03-25 01:49:41

标签: java android opengl-es

我正在使用opengl es 1.x在Android平台上制作游戏(和游戏引擎)。在加载关卡的数据并构建它时,我想渲染另一个场景,以便玩家可以在关卡加载代码完成工作时查看。我想过使用一个钩子系统,其中级别加载代码会不时地调用一个可以进行渲染的回调函数。

问题是如何手动让OpenGL ES显示后备缓冲区的内容,因为级别加载代码在opengl线程上执行它的工作,因为它也使用opengl es调用来执行它的工作?

非常感谢任何建议, 感谢

1 个答案:

答案 0 :(得分:1)

您可以尝试执行相反的操作,让您的加载代码调用呈现代码(当呈现代码之间有一段时间时,让渲染代码调用加载代码)。将你的加载分成(和征服)尽可能小的分数(只读取100个字节的图像缓冲区等)并调用一般的load()方法,它将在返回之前完成尽可能少的工作,然后如果在渲染下一帧之前有时间再次调用,请再次调用它,然后迭代直到运行时间不足(保持一些目标fps)。 只有将几乎所有加载分成小块并为加载“任务”创建队列时,这才能正常工作。