[Mesa-dev] [PATCH 1/2] egl: add EGL_MESA_transparent_alpha extension

Jonny Lamb jonny.lamb at collabora.co.uk
Mon Feb 23 06:32:33 PST 2015


Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67676
Reviewed-by: Chad Versace <chad.versace at intel.com>
---
 docs/specs/EGL_MESA_transparent_alpha.txt | 120 ++++++++++++++++++++++++++++++
 1 file changed, 120 insertions(+)
 create mode 100644 docs/specs/EGL_MESA_transparent_alpha.txt

diff --git a/docs/specs/EGL_MESA_transparent_alpha.txt b/docs/specs/EGL_MESA_transparent_alpha.txt
new file mode 100644
index 0000000..f3d1fec
--- /dev/null
+++ b/docs/specs/EGL_MESA_transparent_alpha.txt
@@ -0,0 +1,120 @@
+Name
+
+    EGL_MESA_transparent_alpha
+
+Name Strings
+
+    EGL_MESA_transparent_alpha
+
+Contributors
+
+    Jonny Lamb <jonny.lamb at collabora.co.uk>
+
+Contacts
+
+    Jonny Lamb <jonny.lamb at collabora.co.uk>
+
+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:
-- 
2.1.4



More information about the mesa-dev mailing list