【发布时间】:2014-01-12 21:36:34
【问题描述】:
我正在使用 SurfaceTexture 进行实时相机预览。这会将数据流作为纹理直接发送到 GPU。
每个新的相机帧都会覆盖此纹理。
现在 - 我想避免这种覆盖并在内存中保留最后几个 (n) 帧(这是我的最终目标)
来自相机的数据总是会覆盖 n 个可用纹理中最旧的纹理。我只需要在它们之间交替。
当数据进入时,这些纹理需要立即渲染。
我不需要:将捕获的数据保存为字节缓冲区并将其转换回新纹理 = 慢,所有这些都必须是实时的。性能是这里的关键。
我已经使用这个程序示例在surfaceTexture模式下运行相机:http://maninara.blogspot.co.uk/2012/09/render-camera-preview-using-opengl-es.html
我尝试使用 SurfaceTexture 类的 attachToGLContext(int texName) 方法附加一个新纹理,但它似乎不允许我在不破坏前一个的情况下这样做,似乎我必须在附加之前使用“detachFromGLContext()”一个新的..
http://developer.android.com/reference/android/graphics/SurfaceTexture.html
任何帮助表示赞赏。
【问题讨论】:
标签: android opengl-es camera textures