102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    ANDROID_framebuffer_target
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_ANDROID_framebuffer_target
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContributors
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    Jamie Gennis
1202f4aeb0Sopenharmony_ci
1302f4aeb0Sopenharmony_ciContact
1402f4aeb0Sopenharmony_ci
1502f4aeb0Sopenharmony_ci    Jamie Gennis, Google Inc. (jgennis 'at' google.com)
1602f4aeb0Sopenharmony_ci
1702f4aeb0Sopenharmony_ciStatus
1802f4aeb0Sopenharmony_ci
1902f4aeb0Sopenharmony_ci    Complete
2002f4aeb0Sopenharmony_ci
2102f4aeb0Sopenharmony_ciVersion
2202f4aeb0Sopenharmony_ci
2302f4aeb0Sopenharmony_ci    Version 1, September 20, 2012
2402f4aeb0Sopenharmony_ci
2502f4aeb0Sopenharmony_ciNumber
2602f4aeb0Sopenharmony_ci
2702f4aeb0Sopenharmony_ci    EGL Extension #47
2802f4aeb0Sopenharmony_ci
2902f4aeb0Sopenharmony_ciDependencies
3002f4aeb0Sopenharmony_ci
3102f4aeb0Sopenharmony_ci    Requires EGL 1.0
3202f4aeb0Sopenharmony_ci
3302f4aeb0Sopenharmony_ci    This extension is written against the wording of the EGL 1.4 Specification
3402f4aeb0Sopenharmony_ci
3502f4aeb0Sopenharmony_ciOverview
3602f4aeb0Sopenharmony_ci
3702f4aeb0Sopenharmony_ci    Android supports a number of different ANativeWindow implementations that
3802f4aeb0Sopenharmony_ci    can be used to create an EGLSurface.  One implementation, which is used to
3902f4aeb0Sopenharmony_ci    send the result of performing window composition to a display, may have
4002f4aeb0Sopenharmony_ci    some device-specific restrictions.  Because of this, some EGLConfigs may
4102f4aeb0Sopenharmony_ci    be incompatible with these ANativeWindows.  This extension introduces a
4202f4aeb0Sopenharmony_ci    new boolean EGLConfig attribute that indicates whether the EGLConfig
4302f4aeb0Sopenharmony_ci    supports rendering to an ANativeWindow for which the buffers are passed to
4402f4aeb0Sopenharmony_ci    the HWComposer HAL as a framebuffer target layer.
4502f4aeb0Sopenharmony_ci
4602f4aeb0Sopenharmony_ciNew Types
4702f4aeb0Sopenharmony_ci
4802f4aeb0Sopenharmony_ci    None.
4902f4aeb0Sopenharmony_ci
5002f4aeb0Sopenharmony_ciNew Procedures and Functions
5102f4aeb0Sopenharmony_ci
5202f4aeb0Sopenharmony_ci    None.
5302f4aeb0Sopenharmony_ci
5402f4aeb0Sopenharmony_ciNew Tokens
5502f4aeb0Sopenharmony_ci
5602f4aeb0Sopenharmony_ci    Accepted by the <attribute> parameter of eglGetConfigAttrib and
5702f4aeb0Sopenharmony_ci    the <attrib_list> parameter of eglChooseConfig:
5802f4aeb0Sopenharmony_ci
5902f4aeb0Sopenharmony_ci        EGL_FRAMEBUFFER_TARGET_ANDROID         0x3147
6002f4aeb0Sopenharmony_ci
6102f4aeb0Sopenharmony_ciChanges to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
6202f4aeb0Sopenharmony_ci
6302f4aeb0Sopenharmony_ci    Section 3.4, Configuration Management, add a row to Table 3.1.
6402f4aeb0Sopenharmony_ci
6502f4aeb0Sopenharmony_ci              Attribute                    Type                  Notes
6602f4aeb0Sopenharmony_ci        ------------------------------    -------     ---------------------------
6702f4aeb0Sopenharmony_ci        EGL_FRAMEBUFFER_TARGET_ANDROID    boolean     whether use as a HWComposer
6802f4aeb0Sopenharmony_ci                                                      framebuffer target layer is
6902f4aeb0Sopenharmony_ci                                                      supported
7002f4aeb0Sopenharmony_ci
7102f4aeb0Sopenharmony_ci    Section 3.4, Configuration Management, add a row to Table 3.4.
7202f4aeb0Sopenharmony_ci
7302f4aeb0Sopenharmony_ci              Attribute                    Default     Selection  Sort   Sort
7402f4aeb0Sopenharmony_ci                                                       Criteria   Order  Priority
7502f4aeb0Sopenharmony_ci        ------------------------------  -------------  ---------  -----  --------
7602f4aeb0Sopenharmony_ci        EGL_FRAMEBUFFER_TARGET_ANDROID  EGL_DONT_CARE    Exact    None
7702f4aeb0Sopenharmony_ci
7802f4aeb0Sopenharmony_ci    Section 3.4, Configuration Management, add a paragraph at the end of the
7902f4aeb0Sopenharmony_ci    subsection titled Other EGLConfig Attribute Descriptions.
8002f4aeb0Sopenharmony_ci
8102f4aeb0Sopenharmony_ci        EGL_FRAMEBUFFER_TARGET_ANDROID is a boolean indicating whether the
8202f4aeb0Sopenharmony_ci        config may be used to create an EGLSurface from an ANativeWindow for
8302f4aeb0Sopenharmony_ci        which the buffers are to be passed to HWComposer as a framebuffer
8402f4aeb0Sopenharmony_ci        target layer.
8502f4aeb0Sopenharmony_ci
8602f4aeb0Sopenharmony_ci    Section 3.4.1, Querying Configurations, change the last paragraph as follow
8702f4aeb0Sopenharmony_ci
8802f4aeb0Sopenharmony_ci        EGLConfigs are not sorted with respect to the parameters
8902f4aeb0Sopenharmony_ci        EGL_BIND_TO_TEXTURE_RGB, EGL_BIND_TO_TEXTURE_RGBA, EGL_CONFORMANT,
9002f4aeb0Sopenharmony_ci        EGL_LEVEL, EGL_NATIVE_RENDERABLE, EGL_MAX_SWAP_INTERVAL,
9102f4aeb0Sopenharmony_ci        EGL_MIN_SWAP_INTERVAL, EGL_RENDERABLE_TYPE, EGL_SURFACE_TYPE,
9202f4aeb0Sopenharmony_ci        EGL_TRANSPARENT_TYPE, EGL_TRANSPARENT_RED_VALUE,
9302f4aeb0Sopenharmony_ci        EGL_TRANSPARENT_GREEN_VALUE, EGL_TRANSPARENT_BLUE_VALUE, and
9402f4aeb0Sopenharmony_ci        EGL_RECORDABLE_ANDROID.
9502f4aeb0Sopenharmony_ci
9602f4aeb0Sopenharmony_ciIssues
9702f4aeb0Sopenharmony_ci
9802f4aeb0Sopenharmony_ci
9902f4aeb0Sopenharmony_ciRevision History
10002f4aeb0Sopenharmony_ci
10102f4aeb0Sopenharmony_ci#1 (Jamie Gennis, September 20, 2012)
10202f4aeb0Sopenharmony_ci    - Initial draft.
103