| Name |
| |
| EXT_present_opaque |
| |
| Name Strings |
| |
| EGL_EXT_present_opaque |
| |
| Contributors |
| |
| Eric Engestrom |
| |
| Contacts |
| |
| Eric Engestrom (eric 'at' engestrom.ch) |
| |
| IP Status |
| |
| No known IP claims. |
| |
| Status |
| |
| Complete |
| |
| Version |
| |
| #1, August 8, 2021 |
| |
| Number |
| |
| EGL Extension #146 |
| |
| Extension Type |
| |
| EGL display extension |
| |
| Dependencies |
| |
| Requires EGL 1.4 and EGL_KHR_image_base extension |
| |
| This extension is written against the wording of the EGL 1.4 |
| specification, and EGL_KHR_image_base version 6. |
| |
| Overview |
| |
| This extension adds a new EGL surface attribute EGL_PRESENT_OPAQUE_EXT |
| to indicate that the surface should be presented as opaque, |
| disregarding any alpha channel if present. |
| If surface attribute EGL_PRESENT_OPAQUE_EXT is EGL_TRUE, then the |
| surface will be presented as opaque. |
| |
| New Types |
| |
| None |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| New EGLSurface attribute name: |
| |
| EGL_PRESENT_OPAQUE_EXT 0x31DF |
| |
| |
| Additions to Chapter 3 of the EGL 1.4 Specification (Rendering Surfaces) |
| |
| Change the second paragraph in section 3.5 on p. 28 (describing |
| eglCreateWindowSurface): |
| |
| "Attributes that can be specified in attrib list include EGL_RENDER_BUFFER, |
| EGL_PRESENT_OPAQUE_EXT, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT." |
| |
| Add the following paragraph in section 3.5 on p. 28 before |
| "EGL_VG_COLORSPACE specifies the color space used by OpenVG" |
| (describing eglCreateWindowSurface attrib_list): |
| |
| "EGL_PRESENT_OPAQUE_EXT specifies the presentation opacity mode |
| of the window surface. If its value is EGL_TRUE, then the |
| surface's alpha channel (if any) will be ignored and considered |
| fully opaque. If its value is EGL_FALSE, then the compositor |
| doesn't change its behaviour, and considers the surface's alpha |
| channel the same way as if the extension wasn't implemented. The |
| default value of EGL_PRESENT_OPAQUE_EXT is EGL_FALSE." |
| |
| Add to Table 3.5: Queryable surface attributes and types on p. 37 |
| |
| EGL_PRESENT_OPAQUE_EXT boolean Surface presentation opacity mode |
| |
| Add following the second paragraph in section 3.6 on p. 39 (describing |
| eglQuerySurface): |
| |
| "Querying EGL_PRESENT_OPAQUE_EXT returns the presentation |
| opacity mode of the surface. The presentation opacity mode of |
| window surfaces is specified in eglCreateWindowSurface. The |
| presentation opacity mode of pbuffer and pixmap surfaces is |
| always EGL_FALSE." |
| |
| Add following after "which must be a valid native pixmap handle." in section 3.9.2 on |
| p. 53 (describing eglCopyBuffers): |
| |
| "If attribute EGL_PRESENT_OPAQUE_EXT of surface has value of EGL_TRUE, then |
| an EGL_BAD_ACCESS error is returned." |
| |
| Issues |
| |
| None |
| |
| Revision History |
| |
| Version 2, 2021-08-17 (Eric Engestrom) |
| - Re-worded the compositor's behaviour for EGL_FALSE. |
| - Marked extension as Complete. |
| |
| Version 1, 2021-08-08 (Eric Engestrom) |
| - Initial draft |
| |