Name ANDROID_image_native_buffer Name Strings EGL_ANDROID_image_native_buffer Contributors Mathias Agopian Jamie Gennis Jesse Hall Contact Jesse Hall, Google Inc. (jessehall 'at' google.com) Status Complete Version Version 1, November 28, 2012 Number EGL Extension #49 Dependencies EGL 1.2 is required. EGL_KHR_image_base is required. This extension is written against the wording of the EGL 1.2 Specification. Overview This extension enables using an Android window buffer (struct ANativeWindowBuffer) as an EGLImage source. New Types None. New Procedures and Functions None. New Tokens Accepted by the <target> parameter of eglCreateImageKHR: EGL_NATIVE_BUFFER_ANDROID 0x3140 Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors) Add to section 2.5.1 "EGLImage Specification" (as defined by the EGL_KHR_image_base specification), in the description of eglCreateImageKHR: "Values accepted for <target> are listed in Table aaa, below. +----------------------------+-----------------------------------------+ | <target> | Notes | +----------------------------+-----------------------------------------+ | EGL_NATIVE_BUFFER_ANDROID | Used for ANativeWindowBuffer objects | +----------------------------+-----------------------------------------+ Table aaa. Legal values for eglCreateImageKHR <target> parameter ... If <target> is EGL_NATIVE_BUFFER_ANDROID, <dpy> must be a valid display, <ctx> must be EGL_NO_CONTEXT, <buffer> must be a pointer to a valid ANativeWindowBuffer object (cast into the type EGLClientBuffer), and attributes other than EGL_IMAGE_PRESERVED_KHR are ignored." Add to the list of error conditions for eglCreateImageKHR: "* If <target> is EGL_NATIVE_BUFFER_ANDROID and <buffer> is not a pointer to a valid ANativeWindowBuffer, the error EGL_BAD_PARAMETER is generated. * If <target> is EGL_NATIVE_BUFFER_ANDROID and <ctx> is not EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated. * If <target> is EGL_NATIVE_BUFFER_ANDROID and <buffer> was created with properties (format, usage, dimensions, etc.) not supported by the EGL implementation, the error EGL_BAD_PARAMETER is generated." Issues 1. Should this extension define what combinations of ANativeWindowBuffer properties implementations are required to support? RESOLVED: No. The requirements have evolved over time and will continue to change with future Android releases. The minimum requirements for a given Android version should be documented by that version. Revision History #1 (Jesse Hall, November 28, 2012) - Initial draft.