diff options
author | Jamie Gennis <jgennis@google.com> | 2011-07-17 18:42:09 -0700 |
---|---|---|
committer | Jamie Gennis <jgennis@google.com> | 2011-07-17 18:42:09 -0700 |
commit | 8fdb8a4dd3f73640f1295d98ae09eadb3e071653 (patch) | |
tree | 5f7af241a76562aefcb6e70b0a61e65ac0e68fe2 | |
parent | 755c7dc48d009914feae01ba8c79c3b0b911b932 (diff) | |
download | frameworks_base-8fdb8a4dd3f73640f1295d98ae09eadb3e071653.zip frameworks_base-8fdb8a4dd3f73640f1295d98ae09eadb3e071653.tar.gz frameworks_base-8fdb8a4dd3f73640f1295d98ae09eadb3e071653.tar.bz2 |
EGL: update EGL_ANDROID_recordable extension.
This change adds an enum value and a description of the expected
implementations to the EGL_ANDROID_recordable extension specification.
It also adds the new enum value to the 'eglext.h' header.
Change-Id: Ia0de2d5613708445ff83b85a7e550f9417531ee4
-rw-r--r-- | opengl/include/EGL/eglext.h | 7 | ||||
-rw-r--r-- | opengl/specs/EGL_ANDROID_recordable.txt | 35 |
2 files changed, 37 insertions, 5 deletions
diff --git a/opengl/include/EGL/eglext.h b/opengl/include/EGL/eglext.h index 1123e16..6a199db 100644 --- a/opengl/include/EGL/eglext.h +++ b/opengl/include/EGL/eglext.h @@ -226,7 +226,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGL #ifndef EGL_ANDROID_image_native_buffer #define EGL_ANDROID_image_native_buffer 1 struct ANativeWindowBuffer; -#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */ +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */ #endif #ifndef EGL_ANDROID_swap_rectangle @@ -237,6 +237,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSetSwapRectangleANDROID (EGLDisplay dpy, EGLSur typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSWAPRECTANGLEANDROIDPROC) (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height); #endif +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 +#define EGL_RECORDABLE_ANDROID 0x3142 /* EGLConfig attribute */ +#endif + #ifdef __cplusplus } #endif diff --git a/opengl/specs/EGL_ANDROID_recordable.txt b/opengl/specs/EGL_ANDROID_recordable.txt index cf44465..8dbd26f 100644 --- a/opengl/specs/EGL_ANDROID_recordable.txt +++ b/opengl/specs/EGL_ANDROID_recordable.txt @@ -55,7 +55,7 @@ New Tokens Accepted by the <attribute> parameter of eglGetConfigAttrib and the <attrib_list> parameter of eglChooseConfig: - EGL_RECORDABLE_ANDROID 0xXXXX + EGL_RECORDABLE_ANDROID 0x3142 Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) @@ -103,11 +103,38 @@ Issues RESOLVED: It should not affect sorting. Some implementations may not have any drawback associated with using a recordable EGLConfig. Such - implementations should not have to double-up some of their configs to one sort earlier than . - Implementations that do have drawbacks can use the existing caveat - mechanism to report this drawback to the client. + implementations should not have to double-up some of their configs to one + sort earlier than . Implementations that do have drawbacks can use the + existing caveat mechanism to report this drawback to the client. + + 3. How is this extension expected to be implemented? + + RESPONSE: There are two basic approaches to implementing this extension + that were considered during its design. In both cases it is assumed that a + color space conversion must be performed at some point because most video + encoding formats use a YUV color space. The two approaches are + distinguished by the point at which this color space conversion is + performed. + + One approach involves performing the color space conversion as part of the + eglSwapBuffers call before queuing the rendered image to the ANativeWindow. + In this case, the VisualID of the EGLConfig would correspond to a YUV + Android HAL pixel format from which the video encoder can read. The + EGLConfig would likely have the EGL_SLOW_CONFIG caveat because using that + config to render normal window contents would result in an RGB -> YUV color + space conversion when rendering the frame as well as a YUV -> RGB + conversion when compositing the window. + + The other approach involves performing the color space conversion in the + video encoder. In this case, the VisualID of the EGLConfig would + correspond to an RGB HAL pixel format from which the video encoder can + read. The EGLConfig would likely not need to have any caveat set, as using + this config for normal window rendering would not have any added cost. Revision History +#2 (Jamie Gennis, July 15, 2011) + - Added issue 3. + #1 (Jamie Gennis, July 8, 2011) - Initial draft. |