| Name |
| |
| ANDROID_get_native_client_buffer |
| |
| Name Strings |
| |
| EGL_ANDROID_get_native_client_buffer |
| |
| Contributors |
| |
| Craig Donner |
| |
| Contact |
| |
| Craig Donner, Google Inc. (cdonner 'at' google.com) |
| |
| Status |
| |
| Complete |
| |
| Version |
| |
| Version 3, October 11, 2017 |
| |
| Number |
| |
| EGL Extension #123 |
| |
| Dependencies |
| |
| Requires EGL 1.2. |
| |
| EGL_ANDROID_image_native_buffer and EGL_KHR_image_base are required. |
| |
| This extension is written against the wording of the EGL 1.2 |
| Specification as modified by EGL_KHR_image_base and |
| EGL_ANDROID_image_native_buffer. |
| |
| Overview |
| |
| This extension allows creating an EGLClientBuffer from an Android |
| AHardwareBuffer object which can be later used to create an EGLImage. |
| |
| New Types |
| |
| struct AHardwareBuffer |
| |
| New Procedures and Functions |
| |
| EGLClientBuffer eglGetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer) |
| |
| New Tokens |
| |
| None |
| |
| Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors) |
| |
| Add the following to section 2.5.1 "EGLImage Specification" (as modified by |
| the EGL_KHR_image_base and EGL_ANDROID_image_native_buffer specifications), |
| below the description of eglCreateImageKHR: |
| |
| "The command |
| |
| EGLClientBuffer eglGetNativeClientBufferANDROID( |
| const struct AHardwareBuffer *buffer) |
| |
| may be used to create an EGLClientBuffer from an AHardwareBuffer object. |
| EGL implementations must guarantee that the lifetime of the returned |
| EGLClientBuffer is at least as long as the EGLImage(s) it is bound to, |
| following the lifetime semantics described below in section 2.5.2; the |
| EGLClientBuffer must be destroyed no earlier than when all of its associated |
| EGLImages are destroyed by eglDestroyImageKHR. |
| |
| Errors |
| |
| If eglGetNativeClientBufferANDROID fails, NULL will be returned, no |
| memory will be allocated, and the following error will be generated: |
| |
| * If the value of buffer is NULL, the error EGL_BAD_PARAMETER is |
| generated. |
| |
| Issues |
| |
| 1. Should this extension define what particular AHardwareBuffer formats EGL |
| implementations are required to support? |
| |
| RESOLVED: No. |
| |
| The set of valid formats is implementation-specific and may depend on |
| additional EGL extensions. The particular valid combinations for a given |
| Android version and implementation should be documented by that version. |
| |
| Revision History |
| |
| #3 (Jesse Hall, October 11, 2017) |
| - Assigned extension number, fixed minor issues for publication |
| |
| #2 (Craig Donner, February 17, 2017) |
| - Fix typographical errors. |
| |
| #1 (Craig Donner, January 27, 2017) |
| - Initial draft. |