Add the EGL_ANDROID_recordable spec.

Change-Id: I002177a68fafd6bb941aa64445c85fd5ff56223a
This commit is contained in:
Jamie Gennis 2011-07-08 18:11:49 -07:00
parent 34d3f3810d
commit bd3b6ef117
2 changed files with 125 additions and 0 deletions

View File

@ -0,0 +1,113 @@
Name
ANDROID_recordable
Name Strings
EGL_ANDROID_recordable
Contributors
Jamie Gennis
Contact
Jamie Gennis, Google Inc. (jgennis 'at' google.com)
Status
Draft.
Version
Version 1, July 8, 2011
Number
EGL Extension #XXX
Dependencies
Requires EGL 1.0
This extension is written against the wording of the EGL 1.4 Specification
Overview
Android supports a number of different ANativeWindow implementations that
can be used to create an EGLSurface. One implementation, which records the
rendered image as a video each time eglSwapBuffers gets called, may have
some device-specific restrictions. Because of this, some EGLConfigs may be
incompatible with these ANativeWindows. This extension introduces a new
boolean EGLConfig attribute that indicates whether the EGLConfig supports
rendering to an ANativeWindow that records images to a video.
New Types
None.
New Procedures and Functions
None.
New Tokens
Accepted by the <attribute> parameter of eglGetConfigAttrib and
the <attrib_list> parameter of eglChooseConfig:
EGL_RECORDABLE_ANDROID 0xXXXX
Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
Section 3.4, Configuration Management, add a row to Table 3.1.
Attribute Type Notes
---------------------- ------- --------------------------
EGL_RECORDABLE_ANDROID boolean whether video recording is
supported
Section 3.4, Configuration Management, add a row to Table 3.4.
Attribute Default Selection Sort Sort
Criteria Order Priority
---------------------- ------------- --------- ----- --------
EGL_RECORDABLE_ANDROID EGL_DONT_CARE Exact None
Section 3.4, Configuration Management, add a paragraph at the end of the
subsection titled Other EGLConfig Attribute Descriptions.
EGL_RECORDABLE_ANDROID is a boolean indicating whether the config may
be used to create an EGLSurface from an ANativeWindow that is a video
recorder as indicated by the NATIVE_WINDOW_IS_VIDEO_RECORDER query on
the ANativeWindow.
Section 3.4.1, Querying Configurations, change the last paragraph as follow
EGLConfigs are not sorted with respect to the parameters
EGL_BIND_TO_TEXTURE_RGB, EGL_BIND_TO_TEXTURE_RGBA, EGL_CONFORMANT,
EGL_LEVEL, EGL_NATIVE_RENDERABLE, EGL_MAX_SWAP_INTERVAL,
EGL_MIN_SWAP_INTERVAL, EGL_RENDERABLE_TYPE, EGL_SURFACE_TYPE,
EGL_TRANSPARENT_TYPE, EGL_TRANSPARENT_RED_VALUE,
EGL_TRANSPARENT_GREEN_VALUE, EGL_TRANSPARENT_BLUE_VALUE, and
EGL_RECORDABLE_ANDROID.
Issues
1. Should this functionality be exposed as a new attribute or as a bit in
the EGL_SURFACE_TYPE bitfield?
RESOLVED: It should be a new attribute. It does not make sense to use up a
bit in the limit-size bitfield for a platform-specific extension.
2. How should the new attribute affect the sorting of EGLConfigs?
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.
Revision History
#1 (Jamie Gennis, July 8, 2011)
- Initial draft.

12
opengl/specs/README Normal file
View File

@ -0,0 +1,12 @@
This directory contains OpenGL ES and EGL extension specifications that have
been or are being defined for Android.
The table below tracks usage of EGL enumerant values that have been reserved
for use by Android extensions.
Value Extension
---------------- ----------------------------------
0x3140 EGL_ANDROID_image_native_buffer
0x3141 (unused)
0x3142 EGL_ANDROID_recordable
0x3143 - 0x314F (unused)