我正在编写一个基于Android Java的SceneForm应用程序,该应用程序通过JNI接口使用c ++库,该接口会生成OpenGL纹理(GL_TEXTURE_2D)。 OpenGL纹理是有效的,我希望能够将OpenGL纹理设置为SceneForm ExternalTexture的源信息。
我已经看到一个新的ExternalTexture具有一些方法来获取Surface(通过.getSurface())和获取SurfaceTexture(通过.getSurfaceTexture())。从SurfaceTexture,可以使用SurfaceTexture.attachToGLContext(texName:int)将SurfaceTexture附加到OpenGL纹理。我相信这只会将流入SurfaceTexture的数据发送到OpenGL纹理。
不幸的是,我需要采取其他方法:我拥有有效的OpenGL 2D纹理,并希望更新ExternalTexture,以便可以使用OpenGL中的纹理绘制sceneForm图形对象。我认为分配类的编写可能会有所帮助,但是我真的不知道从哪里开始,因为我找不到任何相关示例:
https://developer.android.com/reference/android/renderscript/Allocation.html
任何帮助或建议都将受到欢迎。
请注意,OpenGL纹理正在迅速改变其内容(RGBA)。尺寸和颜色模型是固定不变的。