Android 7.0中替代GraphicBuffer的是什么?

5
为了快速地将texels传输到/从EGL表面,我们已经成功地使用了GraphicBuffer缓冲区,如此线程所述: 如何在Android NDK中使用GraphicBuffer 然而,在Android 7.0上,这不是一个选项。因为GraphicBuffer使用私有库libui.so。那么它的替代品是什么?Google批准的在EGL表面上进行快速传输的方法是什么?
1个回答

4
在Android 8(API级别26)中,即将推出的Oreo版本中,他们引入了硬件缓冲区包装器。我已经比较了HardwareBuffer和GraphicBuffer类,两者都提供了一个接口来创建和访问共享缓冲区对象,其中新的HardwareBuffer是GraphicBuffer的通用版本。因此,您将不再需要链接到API 26+的非公共库。
我所看到的Android 7的唯一替代方法是手动为项目提供所有必需的库。
我们将不得不等待Android 8在测试阶段后发布。 发布路线图可以在此处找到,预计在2017年底之前发布。如果您计划在发布日期之前更新项目并想要进行测试,请在Google设备上使用Android O预览版。

谢谢,这很好知道。不过在这个新的API中,GraphicBuffer :: getNativeBuffer的等效物是什么?你如何获取可以传递给eglCreateImageKHR或任何GL / EGL纹理创建函数的内容? - griffin2000
根据NDK的文档:“您可以分配AHardwareBuffer结构并使用它通过eglGetNativeClientBufferANDROID扩展获取EGLClientBuffer资源类型。 您可以将该缓冲区传递给eglCreateImageKHR以创建EGLImage资源类型...”请参见:https://developer.android.com/ndk/guides/stable_apis.html了解更多详细信息。希望这可以帮助到您。 - sparkitny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接