• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    EXT_present_opaque
4
5Name Strings
6
7    EGL_EXT_present_opaque
8
9Contributors
10
11    Eric Engestrom
12
13Contacts
14
15    Eric Engestrom (eric 'at' engestrom.ch)
16
17IP Status
18
19    No known IP claims.
20
21Status
22
23    Complete
24
25Version
26
27    #1, August 8, 2021
28
29Number
30
31    EGL Extension #146
32
33Extension Type
34
35    EGL display extension
36
37Dependencies
38
39    Requires EGL 1.4 and EGL_KHR_image_base extension
40
41    This extension is written against the wording of the EGL 1.4
42    specification, and EGL_KHR_image_base version 6.
43
44Overview
45
46    This extension adds a new EGL surface attribute EGL_PRESENT_OPAQUE_EXT
47    to indicate that the surface should be presented as opaque,
48    disregarding any alpha channel if present.
49    If surface attribute EGL_PRESENT_OPAQUE_EXT is EGL_TRUE, then the
50    surface will be presented as opaque.
51
52New Types
53
54    None
55
56New Procedures and Functions
57
58    None
59
60New Tokens
61
62    New EGLSurface attribute name:
63
64        EGL_PRESENT_OPAQUE_EXT                  0x31DF
65
66
67Additions to Chapter 3 of the EGL 1.4 Specification (Rendering Surfaces)
68
69    Change the second paragraph in section 3.5 on p. 28 (describing
70    eglCreateWindowSurface):
71
72        "Attributes that can be specified in attrib list include EGL_RENDER_BUFFER,
73        EGL_PRESENT_OPAQUE_EXT, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT."
74
75    Add the following paragraph in section 3.5 on p. 28 before
76    "EGL_VG_COLORSPACE specifies the color space used by OpenVG"
77    (describing eglCreateWindowSurface attrib_list):
78
79        "EGL_PRESENT_OPAQUE_EXT specifies the presentation opacity mode
80        of the window surface. If its value is EGL_TRUE, then the
81        surface's alpha channel (if any) will be ignored and considered
82        fully opaque. If its value is EGL_FALSE, then the compositor
83        doesn't change its behaviour, and considers the surface's alpha
84        channel the same way as if the extension wasn't implemented. The
85        default value of EGL_PRESENT_OPAQUE_EXT is EGL_FALSE."
86
87    Add to Table 3.5: Queryable surface attributes and types on p. 37
88
89        EGL_PRESENT_OPAQUE_EXT    boolean    Surface presentation opacity mode
90
91    Add following the second paragraph in section 3.6 on p. 39 (describing
92    eglQuerySurface):
93
94        "Querying EGL_PRESENT_OPAQUE_EXT returns the presentation
95        opacity mode of the surface. The presentation opacity mode of
96        window surfaces is specified in eglCreateWindowSurface. The
97        presentation opacity mode of pbuffer and pixmap surfaces is
98        always EGL_FALSE."
99
100    Add following after "which must be a valid native pixmap handle." in section 3.9.2 on
101    p. 53 (describing eglCopyBuffers):
102
103        "If attribute EGL_PRESENT_OPAQUE_EXT of surface has value of EGL_TRUE, then
104        an EGL_BAD_ACCESS error is returned."
105
106Issues
107
108    None
109
110Revision History
111
112    Version 2, 2021-08-17 (Eric Engestrom)
113      - Re-worded the compositor's behaviour for EGL_FALSE.
114      - Marked extension as Complete.
115
116    Version 1, 2021-08-08 (Eric Engestrom)
117      - Initial draft
118
119