Name EGL_MESA_transparent_alpha Name Strings EGL_MESA_transparent_alpha Contributors Jonny Lamb Contacts Jonny Lamb Status Draft Version Version 4, 2015-02-23 Number EGL Extension #XXX Extension Type EGL display extension Dependencies This extension is written against the wording of the 2014.08.17 revision of the EGL 1.5 Specification. Overview This extension defines how to create EGL window surfaces which respect their alpha channels. To obtain an EGL window surface with a meaningful alpha channel, use an EGLConfig with EGL_TRANSPARENT_TYPE set to EGL_TRANSPARENT_ALPHA_MESA. New Types None New Procedures and Functions None New Tokens Accepted as the value of the EGLConfig attribute EGL_TRANSPARENT_TYPE: EGL_TRANSPARENT_ALPHA_MESA 0xXXXX Additions to the EGL 1.5 Specification In section 3.4 "Configuration Management", under the "Other EGLConfig Attribute Descriptions" heading, append to the paragraph which begins with "EGL_TRANSPARENT_TYPE indicates" and ends with "and EGL_TRANSPARENT_BLUE_VALUE, respectively" the following: "If the attribute is EGL_TRANSPARENT_ALPHA_MESA then window surfaces created with the EGLConfig will have their alpha channel respected with pre-multiplied alpha implied. Creating non-window surfaces with the EGLConfig will generate an EGL_BAD_MATCH error." In the next paragraph replace the first sentence with: "If EGL_TRANSPARENT_TYPE is either EGL_NONE or EGL_TRANSPARENT_ALPHA_MESA, then the values for EGL_TRANSPARENT_RED_VALUE, EGL_TRANSPARENT_GREEN_VALUE, and EGL_TRANSPARENT_BLUE_VALUE are undefined." Before the paragraph which begins with "EGL_MAX_PBUFFER_WIDTH and EGL_MAX_PBUFFER_HEIGHT indicate" insert the following paragraph: "If EGL_TRANSPARENT_TYPE is EGL_TRANSPARENT_ALPHA_MESA and EGL_ALPHA_SIZE is 0, window surfaces created with the EGLConfig will be fully opaque, as if alpha were set to 1.0." Issues 1. Should non-window surfaces created with EGL_TRANSPARENT_TYPE set to EGL_TRANSPARENT_ALPHA_MESA generate an error or have no effect on the surface? RESOLUTION: Attempting to create a non-window surface with a config in which EGL_TRANSPARENT_TYPE is EGL_TRANSPARENT_ALPHA_MESA then an EGL_BAD_MATCH error is generated. Revision History Version 4, 2015-02-23 (Jonny Lamb) - Removed paragraph on how to determine whether the EGL implementation supports the extension. - Removed "New Behavior" section, moving its only paragraph into "Overview". - Reworded resolution to issue 1 and clarified which error is generated. Version 3, 2015-02-17 (Jonny Lamb) - Added pre-multiplied alpha implication. Version 2, 2015-02-16 (Jonny Lamb) - Resolved issue #1 to "Yes". - Changed extension type to "display extension" and removed dependency on EGL_EXT_client_extensions. - Added MESA suffix to the new token. Version 1, 2014-12-15 (Jonny Lamb) - Initial draft # vim:ai:et:sw=4:ts=4: