2016-12-20 3 views
5

Für die schnelle Übertragung von Texeln zu/von einer EGL Oberfläche haben wir GraphicBuffer Puffer erfolgreich eingesetzt, wie in diesem Thread beschrieben: How to use GraphicBuffer in android ndkWas ersetzt GraphicBuffer auf Android 7.0?

jedoch auf Android 7.0, das ist keine Option. Als GraphicBuffer verwendet die private Bibliothek libui.so. Also was ersetzt es? Was ist die von Google genehmigte Methode für eine schnelle Übertragung von/zu einer EGL-Oberfläche?

Antwort

2

In Android 8 (API-Ebene 26), die kommende Oreo-Version, haben sie eine Hardware Buffer wrapper eingeführt. Ich habe die HardwareBuffer- und GraphicBuffer-Klassen verglichen, beide bieten eine Schnittstelle zum Erstellen und Zugreifen auf ein freigegebenes Pufferobjekt, wobei der neue HardwareBuffer eine verallgemeinerte Version des GraphicBuffer ist. Daher müssen Sie nicht mehr mit den nicht öffentlichen Bibliotheken von API 26+ verlinken.

Die einzige Alternative, die ich für Android 7 gesehen habe, ist die manuelle Bereitstellung aller benötigten Bibliotheken mit der Apk für ein Projekt.

Wir werden warten müssen, bis Android 8 nach seiner Beta-Testphase veröffentlicht wird. The roadmap for release can be found here, wird voraussichtlich vor Ende 2017 veröffentlicht. Wenn Sie Ihr Projekt mit den neuen API-Funktionen vor dem Veröffentlichungsdatum aktualisieren möchten und es testen möchten, können Sie die Android O-Vorschauversion auf einem Google-Gerät verwenden.

+0

Danke, das ist gut zu wissen. In dieser neuen API entspricht das jedoch GraphicBuffer :: getNativeBuffer? Wie erhalten Sie etwas, das Sie an eglCreateImageKHR oder eine der GL/EGL-Funktionen zur Texturerstellung übergeben können? – griffin2000

+0

Gemäß der Dokumentation für das NDK: "Sie können eine AHardwareBuffer-Struktur zuweisen und verwenden, um einen EGLClientBuffer-Ressourcentyp über die Erweiterung EglGetNativeClientBufferANDROID zu erhalten. Sie können diesen Puffer an eglCreateImageKHR übergeben, um einen EGLImage-Ressourcentyp zu erstellen ..." Siehe: https : //developer.android.com/ndk/guides/stable_apis.html für weitere Details. Hoffe das hilft. – sparkplug

Verwandte Themen