EXT_present_opaque

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