android opengl纹理加载线程
问题描述:
我正在处理一个应用程序,它需要在特定时间为帧动画加载纹理,而渲染线程需要继续运行,并且需要在bg线程中加载纹理。有没有办法在Android中做到这一点?我能够在ios中通过在使用相同sharegroup的另一个线程上创建单独的opengl上下文,但不确定在android上是否有类似的工具?android opengl纹理加载线程
答
是的,您可以在上下文之间共享纹理(只要您的驱动程序支持它)。创建你这样的背景下加载上下文(这意味着你要共享rendering_context对象):那么在你的背景情况下做这样的事情后
eglCreateContext(display, config, rendering_context, attrs);
:
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexImage2D(...);
然后可以结合和使用tex
从你的渲染上下文。
好的感谢您的快速反应,我不是超级熟悉android上的opengl,eglCreateContext是从ndk或java调用的方法吗?这就是我所要做的,创建上下文并加载纹理,然后杀死线程?谢谢 – marchinram
eglCreateContext()是如何在C/C++中创建上下文的。我无法告诉你关于Java的信息,但可能有类似的东西。所以你所要做的就是创建上下文,并为共享上下文传递渲染上下文。然后开始制作纹理,并使用相同的GLuint在渲染环境中使用它们。 – Chris