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