3
我正在處理一個應用程序,它需要在特定時間爲幀動畫加載紋理,而渲染線程需要繼續運行,並且需要在bg線程中加載紋理。有沒有辦法在Android中做到這一點?我能夠在ios中通過在使用相同sharegroup的另一個線程上創建單獨的opengl上下文,但不確定在android上是否有類似的工具?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