Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What replaces GraphicBuffer on Android 7.0?

Tags:

For fast transfer of texels to/from an EGL surface, we have successfully used GraphicBuffer buffer as described in this thread: How to use GraphicBuffer in android ndk

However on Android 7.0 that is not an option. As GraphicBuffer uses the private libary libui.so. So what replaces it? What is the Google-approved method of doing a fast transfer to/from an EGL surface?

like image 265
griffin2000 Avatar asked Dec 20 '16 22:12

griffin2000


1 Answers

In Android 8 (API level 26), the upcoming Oreo release, they have introduced a Hardware Buffer wrapper. I've compared the HardwareBuffer and GraphicBuffer classes, both provide an interface to create and access a shared buffer object, where the new HardwareBuffer is a generalised version of the GraphicBuffer. Therefore you will no longer need to link against the non-public libraries from API 26+.

The only alternative I have seen for Android 7 is to manually provide all required libraries with the apk for a project.

We will have to wait until Android 8 is released following it's beta testing phase. The roadmap for release can be found here, anticipated release is some time before the end of 2017. If you plan on updating your project with the new API features before the release date and want to test it out, you can use the Android O preview version on a Google device.

like image 142
sparkplug Avatar answered Sep 25 '22 16:09

sparkplug