【发布时间】:2011-11-01 22:52:57
【问题描述】:
我正在开发一个应用程序,它需要在执行时在特定时间为帧动画加载纹理,渲染线程需要继续运行,我需要在 bg 线程中加载纹理。有没有办法在android中做到这一点?我可以通过在使用相同共享组的另一个线程上创建一个单独的 opengl 上下文来在 ios 中,但不确定在 android 上是否有类似的设施?
【问题讨论】:
标签: android multithreading opengl-es
我正在开发一个应用程序,它需要在执行时在特定时间为帧动画加载纹理,渲染线程需要继续运行,我需要在 bg 线程中加载纹理。有没有办法在android中做到这一点?我可以通过在使用相同共享组的另一个线程上创建一个单独的 opengl 上下文来在 ios 中,但不确定在 android 上是否有类似的设施?
【问题讨论】:
标签: android multithreading opengl-es
是的,您可以在上下文之间共享纹理(只要您的驱动程序支持)。像这样创建你的后台加载上下文(意味着你想与 rendering_context 共享对象):
eglCreateContext(display, config, rendering_context, attrs);
然后在你的后台上下文中做这样的事情之后:
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexImage2D(...);
然后,您可以在渲染上下文中绑定和使用tex。
【讨论】: