java - 在Android上执行长CPU进程时渲染opengl es

标签 java android opengl-es

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

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

非常感谢任何建议, 谢谢

最佳答案

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

关于java - 在Android上执行长CPU进程时渲染opengl es,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857295/

相关文章:

android - 围绕 Sphere OpenGL ES Android 映射纹理

Java 泛型类型删除 : when and what happens?

java - 如何在单元测试中模拟 REST API?

ios - Metal Compute 内核尺度图像

android - getPreferences 总是返回默认值

android - 将数据库从 Assets 文件夹复制到数据库文件夹

iphone - 如何在 openGLES 中创建新的 demon.model?

java - 试图在java中找到长数据类型的范围

java - test !"".equals(someString) 的值是多少

java - StringTokenizer、JSON 和逗号