diff --git a/meson.build b/meson.build index d237739..44e785a 100644 --- a/meson.build +++ b/meson.build @@ -53,6 +53,7 @@ staging_protocols = { 'xdg-dialog': ['v1'], 'xdg-toplevel-drag': ['v1'], 'xwayland-shell': ['v1'], + 'alpha-modifier': ['v1'], } protocol_files = [] diff --git a/staging/alpha-modifier/README b/staging/alpha-modifier/README new file mode 100644 index 0000000..7388f94 --- /dev/null +++ b/staging/alpha-modifier/README @@ -0,0 +1,4 @@ +Alpha modifier protocol + +Maintainers: +Xaver Hugl diff --git a/staging/alpha-modifier/alpha-modifier-v1.xml b/staging/alpha-modifier/alpha-modifier-v1.xml new file mode 100644 index 0000000..932fa6f --- /dev/null +++ b/staging/alpha-modifier/alpha-modifier-v1.xml @@ -0,0 +1,103 @@ + + + + Copyright © 2024 Xaver Hugl + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + This interface allows a client to set a factor for the alpha values on a + surface, which can be used to offload such operations to the compositor, + which can in turn for example offload them to KMS. + + Warning! The protocol described in this file is currently in the testing + phase. Backward compatible changes may be added together with the + corresponding interface version bump. Backward incompatible changes can + only be done by creating a new major version of the extension. + + + + + Destroy the alpha modifier manager. This doesn't destroy objects + created with the manager. + + + + + + + + + + Create a new alpha modifier surface object associated with the + given wl_surface. If there is already such an object associated with + the wl_surface, the already_constructed error will be raised. + + + + + + + + + This interface allows the client to set a factor for the alpha values on + a surface, which can be used to offload such operations to the compositor. + The default factor is UINT32_MAX. + + This object has to be destroyed before the associated wl_surface. Once the + wl_surface is destroyed, all request on this object will raise the + no_surface error. + + + + + + + + + This destroys the object, and is equivalent to set_multiplier with + a value of UINT32_MAX, with the same double-buffered semantics as + set_multiplier. + + + + + + Sets the alpha multiplier for the surface. The alpha multiplier is + double-buffered state, see wl_surface.commit for details. + + This factor is applied in the compositor's blending space, as an + additional step after the processing of per-pixel alpha values for the + wl_surface. The exact meaning of the factor is thus undefined, unless + the blending space is specified in a different extension. + + This multiplier is applied even if the buffer attached to the + wl_surface doesn't have an alpha channel; in that case an alpha value + of one is used instead. + + Zero means completely transparent, UINT32_MAX means completely opaque. + + + + +