Name EGL_MESA_transparent_alpha Name Strings EGL_MESA_transparent_alpha Contributors Jonny Lamb Contacts Jonny Lamb Status Draft Version Version 3, 2015-02-17 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. 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 result in an 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." New Behavior To determine if the EGL implementation supports this extension, clients should query the EGL_EXTENSIONS string of the current active display. To obtain an EGL window surface with a meaningful alpha channel, use an EGLConfig with EGL_TRANSPARENT_TYPE set to EGL_TRANSPARENT_ALPHA_MESA. 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: Yes. Non-window surfaces created with EGL_TRANSPARENT_TYPE set to EGL_TRANSPARENT_ALPHA_MESA will generate an error. Revision History 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: