[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